diff --git a/docs/cloud-messaging.md b/docs/cloud-messaging.md index ddfe5641..2621ebf9 100644 --- a/docs/cloud-messaging.md +++ b/docs/cloud-messaging.md @@ -1,94 +1,40 @@ -# Pilot Cloud: message strategy and landing copy +# Pilot: shared message strategy -Updated 25 October 2026. Audience confirmed by the founder: **people already using AI who want less coordination with friends and contacts.** Implemented as the warm preview at `/cloud-landing`; `/cloud` remains the comparison page. +Updated 25 October 2026. Audience: people already using AI who want less coordination with friends and contacts. `/cloud-teaser`, `/cloud-landing` (Learn more), and `/pilot-film` now follow the same narrative. `/cloud` remains the original comparison page. -## The decision +## Current narrative -Lead with **“Let your AI handle the back-and-forth.”** Explain the mechanism immediately: Pilot connects the AI someone already has to their people’s agents. State in the hero that both people sign in and connect an AI, and neither needs to install Pilot software. Demonstrate a familiar task, then show how to start with one person. Make the enduring identity a prominent supporting promise: **“New AI. Same handle.”** +1. **What would you do with 20% more time?** Begin with desire. Keep the complete hypothetical question visible around the number. It is not a measured share of life lost or a Pilot savings promise. +2. **“Quick question…”** Show coffee, an introduction, a group plan, and “What do you do?” together. The people are welcome; repeatedly handling the details is the problem. +3. **The last chore you’ll ever do.** The founder’s chosen campaign line follows the request pile. “One setup. Less back-and-forth.” defines its intended scope. +4. **Share your Pilot link.** Introduce Pilot and agents only now. The handle link gives someone a way to request a connection to your agent. You choose who connects. Both people sign in and connect an AI. +5. **Let the agents do the back-and-forth.** Show the inbound direction: Priya’s Dots reaches your Muse about coffee. Your agent returns a proposed time for your approval. +6. **Put your link everywhere.** The same handle appears in a bio, email signature and message. New AI. Same link. Your identity belongs to the same Pilot account across connected AI apps. +7. **Take your life back.** One emotional ending and one primary action: **Claim your handle**. Setup is explicit: claim a handle, connect your AI, share your link. The service is free and hosted for you. -This audience already understands the value of AI. The missing understanding is that their AI can reach someone else’s agent. They need a recognizable reason to connect, a clear first step, and confidence about who can reach them. A protocol explanation or five equally prominent benefits would make them assemble the proposition themselves. +The teaser presents seven scroll chapters. The film takes 26.917 seconds and uses the same ordering with drum-synced state changes. Learn more expands the mechanism with four inbound examples, compatible agents, permissions, setup, network/funding proof and FAQ. It does not return to an agent-first or dinner-only pitch. -The full narrative is: +## Learn more implementation -> Your AI can help with plans involving other people. Pilot gives it a way to reach their agents. Claim a handle, share your link, and approve a connection. Ask from your usual chat. Your handle and connections stay with you as your AI changes. We host Pilot for you. As the network grows, that connection can become useful in more places. +The header has no navigation and no play button. Its non-linked Pilot mark and signup action appear only when the product-reveal section enters view, keeping product branding out of the opening. The hero points into the request story. Signup links repeat “Claim your handle” in the reveal, closing and header, all to the Cloud app. The footer motion control remains available. -The opening sentences explain the current consumer offer. The last sentence is the bridge to the broader company story, rather than a second acquisition promise. The portable identity connects immediate usefulness to lasting value: someone can try a different AI without asking their people to find them again. +The examples are coffee, an introduction, a group plan and an informational question. They begin with the other person asking their AI, then show their agent contacting yours. Every outcome is illustrative. Introductions require checking with the people involved; proposed plans require approval; shared information depends on permissions. These examples neither send messages nor modify product data. -## Where each team narrative belongs +Muse, Grok Bot, OpenClaw, Hermes and Dots appear as recommended background agents. Other MCP-compatible chat apps are shown too. Background check-ins must be configured; a hosted Pilot node does not by itself run a user’s AI. “Both AIs connected” and the connection-acceptance step remain visible near the mechanism, rather than being hidden in FAQ. -| Narrative | Role | Treatment | -|---|---|---| -| Less coordination | Main benefit | Hero and first demonstration. Dinner, weekend plans, a contact’s update, and a file show useful range without changing the promise. | -| Just share a link | Mechanism and activation | Show an example handle link, the request/acceptance step, and the three circles. Sharing is the beginning; both people still need connected AI apps. | -| Your handle stays yours across agents | Distinctive, lasting benefit | Surface it beside AI compatibility and in a dedicated “New AI. Same handle.” section. The handle, link, and relationships belong to the same Pilot account as someone adds or switches supported AI apps. | -| Hosted Pilot Protocol | Convenience and category clarification | “We host it for you. Nothing to install.” Explain the relationship to Pilot Protocol in the FAQ and keep the self-hosting path in the footer. | -| Open-source adoption and investor backing | Credibility after the demo | Explain that Cloud builds on Pilot Protocol, the open-source network already in use. Show dated recent activity, cumulative registrations, and the public backers. These are network-wide measures, rather than a count of Cloud customers or a breakdown of self-hosted users. | -| Earn with Moonlit | Separate intent and acquisition story | Send people seeking paid research to Moonlit’s own experience. Consider a contextual recommendation after Pilot activation once the integration and eligible journey are verified. No competing earning CTA on this coordination page. | -| Pilot is an ecosystem | Expansion story | Show specific, working apps when they solve the next task. Explain the platform on product/developer surfaces. “Everything will be built here” is an ambition, not a reason to sign in today. | -| Reach US businesses | Roadmap and later use-case campaign | Introduce a business use case when a visitor can try verified coverage. Keep the nationwide ambition in the company roadmap until then. Do not imply millions of live, business-authorized agents or exclusive relationships without evidence. | - -These ideas connect through one product capability: letting an AI reach other agents. They serve different visitor intentions, so they should not receive equal space on the main landing page. - -## What the reference sites actually support - -These are observed patterns and expert frameworks, not evidence that Pilot will get a particular conversion lift. A successful company’s homepage cannot tell us which individual element caused its success. Pages were checked on 25 October 2026. - -| Source | Observation | Application to Pilot | -|---|---|---| -| [Calendly](https://calendly.com/) | Leads with work around meetings being handled, explains concrete tasks, and places signup and friction-reducing details together. Related products appear further down. | Lead with the job being taken off the visitor’s plate. Explain hosting near the CTA; introduce expansion after the main use case is understood. | -| [Partiful](https://partiful.com/) | Makes social plans desirable, then shows the invite-link → response → shared-details sequence. | Pair human warmth with a visible sharing mechanism. Pilot must state its own onboarding requirements; Partiful’s guest experience does not establish that Pilot works without setup on the other end. | -| [Copyhackers, 10x Landing Pages](https://school.copyhackers.com/courses/10x-landing-pages) | Organizes copy around one reader, big idea, promise, and offer, with audience research and awareness as inputs. | One reader: an existing AI user. One promise: less coordination. One offer: start free. Use cases supply evidence for that promise. The founder’s audience choice is a starting hypothesis; customer language should refine it. | -| [Nielsen Norman Group, Tagline Blues](https://www.nngroup.com/articles/tagline-blues-whats-the-site-about/) | Recommends making a company’s purpose and distinctiveness understandable. | The warm headline needs a direct explanation of agent-to-agent contact. “More time for what matters” alone would leave the product unidentified. | +The link-reveal example retains the AI-switch control, and a later distribution section shows the same handle in three placements. The social card is shared with the teaser and built with `node scripts/build-teaser-social.mjs`; it shows “Take your life back. One link to your agent.” with the existing reunion image. It does not turn the 20% question into an isolated statistical claim in link previews. -The dedicated landing page keeps the original no-navigation decision: the header contains a non-linked brand mark and a compact signup CTA. The motion setting is in the footer. There is no section menu, including after scrolling. Three full signup buttons repeat the same action in the hero, identity section, and closing section. The header CTA is an additional compact instance. Same-page demo controls explain the offer without introducing another signup path. +## Why this hierarchy -The resulting sequence is benefit and setup requirement → two-sided example and compatible apps → network and funding proof → setup steps → lasting identity and relationship control → remaining questions → action. The warm visual design helps express the social outcome; it cannot substitute for explaining the product. +The [BLS time-use table](https://www.bls.gov/news.release/atus.t01.htm) measures household activities, not coordination requests. [McKinsey’s social-economy research](https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/the-social-economy) estimates workweek email and information-search time, not 20% of life. Neither establishes the proposed percentage as a fact. The campaign therefore asks a question instead of claiming measured waste or savings. -## The implemented page +[Calendly](https://calendly.com/) demonstrates the value of leading with a familiar coordination job. [Partiful](https://partiful.com/) shows a desirable social result and a visible sharing mechanism. These are observed design patterns, not causal conversion evidence or proof that Pilot has their account-free guest flow. [NN/g’s tagline guidance](https://www.nngroup.com/articles/tagline-blues-whats-the-site-about/) supports making the product’s purpose clear: the emotional opening must lead to the concrete handle and agent exchange. The founder deliberately chose to delay the product introduction; comprehension testing should assess that tradeoff. -**Eyebrow:** Your AI, connected to your people +The team’s remaining narratives stay out of the acquisition story: earnings via Moonlit belong to a separate intent; ecosystem expansion and nationwide business coverage require specific available use cases and verified claims. Investor and open-source proof follow the product demonstration. The site does not claim that network nodes are people, customers or endorsements. -**Headline:** Let your AI handle the back-and-forth. +## Scope -**Description:** Keep the AI you already have. Pilot connects it to your people’s agents, so it can help make plans, get updates, and share files. - -**Primary action:** Start free — all four signup links, including the compact header. - -**Supporting line:** Free to start · No Pilot software to install - -**Visible setup:** Start with one friend. You both sign in and connect your AI. You can each use a different app. - -| Section | Visitor question answered | Intended effect to test | -|---|---|---| -| Hero and human photograph | What is this for? | Recognition of a familiar problem and a plausible result. | -| Four example conversations | What would I actually ask? | Lead with Muse asking Maria’s Grok Bot. The weekend example shows OpenClaw, Hermes, and Dots; the update and file examples retain Claude, ChatGPT, and Gemini to show broader MCP compatibility. Each participant has its own label and logo. Dinner leads; contacts and files show breadth. All are labeled illustrations with Pilot connected on both sides, not customer evidence or live transactions. | -| Compatible AI apps, inside the demo section | Does it fit how I already work, including when I switch AIs? | Explain that the handle stays yours across connected apps and reduce the assumption that Pilot requires a new assistant. Recommend Muse, Grok Bot, OpenClaw, Hermes, Dots, and other background agents first; show general MCP-compatible chat apps underneath. Explain that background check-ins must be enabled, while chat apps work during a chat. The strip carries a plan/settings caveat; logo presence does not imply every plan supports connectors. | -| Open-source foundation, network, and backing, after the demo | Is there an established project behind this? | “Built on Pilot Protocol.” explains that Cloud brings an existing open-source network to the visitor’s AI app with hosting handled. Show the rounded recent-activity count and cumulative registrations with their date and definitions, plus the actual logos of Version One, Pioneer, Night Capital, Todd & Rahul Capital, and Precursor. The funding announcement is linked; the logo label is “Seed investors.” | -| Three setup steps | What happens after I click? | Set accurate expectations: sign in and connect AI; invite and accept; ask. | -| “New AI. Same handle.”, link, and circles | Will people still find me if I change AI apps? Who gets in? | Make continuity of identity and relationships concrete, then show sharing and acceptance. The illustrative URL has no fake copy or share action. | -| Hosting and relationship reassurance | What do I have to manage? | Explain accepted connections, familiar AI apps, and managed hosting in ordinary language. | -| FAQ | What are the limits and requirements? | Clarify the role of Pilot, the friend’s setup, permissions, connector support, and the hosted product. | -| Closing invitation | What should I do first? | Connect an AI and invite one person. Repeat the same primary action. | - -Use Pilot the puppy as a recognizable companion and visual guide. Dialogue identifies each AI app and its owner; the section labels Pilot as the connection between them, so the mascot does not imply a separate general-purpose assistant. Keep the single Inter Tight family, cream background, clay accent, rounded shapes, and photography. Avoid making every sentence cute: clear setup instructions carry more weight than repeated “little,” “magic,” or “lend a paw.” - -## Research follow-up — 25 October 2026 - -Applied page changes 2–7 from the new audit; the founder explicitly chose “Landing page now; scope the invite flow next.” The [audit](../../research_notes/software-websites/audit.md), [copy research](../../research_notes/software-websites/copy-research.md), and [activation research](../../research_notes/software-websites/activation.md) inform the changes, but their third-party effect sizes are not a forecast for Pilot. - -- The product demonstration now follows the hero directly. App compatibility sits within that demonstration; network activity and the five investor logos follow it. -- Keep one Inter Tight family and no header navigation. The audit’s preference for serif emphasis conflicts with the founder’s explicit single-font preference. -- “Your agent handles the group chat” remains a headline hypothesis. This pass retains the current H1: the product has not been shown to take over an existing messaging-app group chat. Test an outcome-led headline against a mechanism-led headline only after checking comprehension, with the rest of the page held constant. -- Mature products’ account-free guest flows show a product direction, not an existing Pilot feature. “No Pilot software to install” does not mean “no account or setup.” Both requirements are now visible near the first CTA. -- The page-specific Open Graph and Twitter card uses `public/cloud/warm/cloud-social.jpg` (1200 × 630), rebuilt with `node scripts/build-cloud-social.mjs`. It shows two people, the puppy pair, and a clearly labeled example plan. This changes the marketing preview only. It does not change the live Cloud `/@handle` or `/i/token` cards, personalize a real invitation, or claim a plan has been confirmed. The new public asset URL becomes available when this preview is published; it is currently served locally. - -The [next invite-flow scope](cloud-invite-next.md) records the existing entry points and the smallest proposed account-free plan response. No Cloud application code or email behavior changed in this pass. - -### Background agents and MCP — founder clarification - -The founder recommends Muse, Grok Bot, OpenClaw, Hermes, Dots, and other background agents, with MCP as the common connection method. This recommendation now appears in the compatibility area, setup copy, FAQ, demo, and identity example. The identity control starts with Muse and can switch to Claude or ChatGPT while retaining the same handle. - -`hosted/control/web/index.html` already lists these agents, their connection paths, and a check-in/scheduling prompt. It describes Dots as using plugins connected in ChatGPT; the separate OpenClaw and Hermes MCP guides document the hosted endpoint. The founder requested the yellow dots character for visual identification; its page asset is a transparent-edged crop of their supplied screenshot, not the generic ChatGPT mark. The recommendation is the founder’s product guidance, not a tested ranking of third-party agents. Background processing depends on the connected agent’s configuration. Hosting Pilot alone does not run the user’s AI or guarantee instant replies. “No Pilot software to install” remains specific to Pilot Cloud; it does not claim OpenClaw or Hermes need no installation of their own. +This is a marketing-page and film change, not the Cloud app’s invitation flow. The account-free “Arranged Thing” remains scoped in [cloud-invite-next.md](cloud-invite-next.md). A handle URL is still a profile/connection entry point; it is not guest chat. No account creation, automatic acceptance, calendar access or new business-agent coverage is implemented by this campaign. ## Product claims and their boundaries @@ -130,3 +76,7 @@ The preview retains existing `cta_click` tracking with `target=cloud_signup` and After a useful first exchange, recommend the next capability in context. A person coordinating dinner may benefit from an available business agent. Someone explicitly interested in paid research may choose Moonlit after seeing its requirements. Developers need protocol and ecosystem documentation. Each entry point should make a concrete promise to the person arriving there and then reveal the larger network through useful actions. This strategy supersedes the message hierarchy in `cloud-landing-research.md`. The older brief contains third-party conversion figures; none are used here as an expected Pilot result. + +## Conversational release — revision 16 + +The approved teaser draft now asks “How does a ‘quick question’ turn into 30 minutes?” and shows eight everyday requests. “Let us help” leads to “One link. That’s it.” The handle is visibly part of the full shareable URL. “Put the back-and-forth on autopilot” is demonstrated with an accepted connection and an approved coffee plan. Distribution follows, then “Take your life back.” Agent portability remains in Learn more/FAQ, but the teaser and film no longer spend a beat on switching AIs. Thirty minutes is rhetorical, not measured. The opening 20% remains a hypothetical question. Both website pages and both video formats use this narrative. diff --git a/docs/cloud-motion.md b/docs/cloud-motion.md index 33eeaed0..ce130cd7 100644 --- a/docs/cloud-motion.md +++ b/docs/cloud-motion.md @@ -16,7 +16,7 @@ The particular amplitudes and timing below are design decisions for Pilot, not u ## Motion map -- **Hero:** a seven-pixel photo float over eight seconds, gentle puppy movement, and a short initial drawing/arrival for the plan and doodle. Headline, explanation, and main action stay still. +- **Hero:** a seven-pixel photo float over eight seconds. The complete hypothetical time question stays still. The earlier hero puppy/plan/doodle overlays were removed for the link narrative. - **Sections:** one entrance of up to 18px over 650ms. Parallel cards stagger by 85ms. Text stays at full opacity throughout; the underlying HTML is visible and no animation completion is required to reveal content. Entrances are skipped while the page is hidden. - **Demo:** the first example plays once when its conversation is in view. User-selected scenarios and replay remain explicit controls. The conversation reserves its height during playback to avoid moving surrounding content. Pause restores all messages immediately. - **Identity:** changing AI animates the changed connection and gives the puppy a small greeting. Handle, link, and circles stay unchanged. @@ -75,3 +75,7 @@ Updated the preview branch to the current main branch before publication. The st - Exercised all four example selectors, ChatGPT identity switching, and FAQ expansion. The footer motion control pauses the page, persists after reload, and resumes. Browser reduced-motion emulation pauses the page and disables the control. This was browser emulation, not a changed OS setting. - Strict TypeScript checking passes for all three new motion modules. The repository-wide TypeScript command still reports diagnostics in unchanged Cloudflare functions, analytics, and worker files, plus the local untracked film project. These files are outside this publication change. - The film project, its exports and music, and `.context/` are excluded from the website commit. + +### Link-story revision — 25 October 2026 + +Learn more now follows the teaser’s seven-part narrative. Its header stays hidden until the Pilot-link reveal enters the viewport; no navigation was added. The illustrative demo now shows inbound coffee, introduction, group-plan and informational requests. The existing pause/reduced-motion, height-reservation, identity selection and cleanup logic remains. Historical counts and browser checks above apply to their named earlier revisions; current release checks are recorded in `cloud-teaser.md` and `pilot-film.md`. diff --git a/docs/cloud-teaser.md b/docs/cloud-teaser.md index d4ac37f7..18136c12 100644 --- a/docs/cloud-teaser.md +++ b/docs/cloud-teaser.md @@ -2,23 +2,27 @@ Standalone route: `/cloud-teaser`. This noindex preview is excluded from the sitemap and does not replace `/cloud` or `/cloud-landing`. -## Five-scene story +## Seven-scene story -1. **The last chore you’ll ever do.** A full-screen café photograph and one line establish the promise: give the back-and-forth to your AI. -2. **Bring your AI.** Muse, Dots, Grok Bot, Hermes, and OpenClaw surround Pilot. MCP-compatible chat apps remain an explicit alternative. -3. **Your friend group, on autopilot.** Muse and Priya’s Dots arrange one dinner. The illustrative example labels both AIs as connected and requires human approval. -4. **New AI. Same handle.** The visitor can switch the example AI while the handle and link remain. The example is not a real profile. -5. **Less planning. More see you soon.** A reunion photograph closes on the human outcome. Claim your handle and invite a friend; Start now opens the Cloud app and Learn more opens `/cloud-landing`. Both people connect an AI. +1. **What would you do with 20% more time?** A complete hypothetical question over café photography. It is not a claim about measured time lost or Pilot savings. No product marks appear yet. +2. **How does a “quick question” turn into 30 minutes?** Eight conversational asks appear together: coffee, an introduction, availability, work, feedback, a plumber, a designer and a pitch. The question is rhetorical, not a measured average. +3. **Let us help.** “Make this the last time you do these chores.” The campaign turn follows the request wall. +4. **One link. That’s it.** The URL prefix and @maya share one visual container. Your handle gives people a way to reach your agent. You connect your AI, share the link and decide who gets in. Supported-agent marks and the both-people-connect qualification remain. +5. **Put the back-and-forth on autopilot.** Priya’s agent asks yours for coffee. You approve the proposal. This local illustration sends no messages and books nothing. +6. **Put your link everywhere.** Bio, email and a message show the same handle. The teaser no longer includes an AI-switching demonstration. +7. **Take your life back.** Claim a handle, connect your AI and share your link. Final links go to the Cloud app and Learn more. -Earnings, future business coverage, and ecosystem expansion are omitted. Their conditions need more room than a teaser affords. Product qualifications follow `docs/cloud-messaging.md`. +Pilot and agents enter only after the desire, request pile and last-chore turn. Earnings, future business coverage and ecosystem expansion are omitted. Product qualifications follow `docs/cloud-messaging.md`. The link is a profile and connection entry point, not account-free guest chat; connection acceptance and both AIs being connected remain explicit. + +The 20% figure is an imagined amount in a question, not an empirical statistic. The [BLS 2025 time-use table](https://www.bls.gov/news.release/atus.t01.htm) measures household activities, not these coordination requests. [McKinsey’s 2012 social-economy report](https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/the-social-economy) estimates workweek email/information-search time, not 20% of life. Neither supports the proposed factual hook. No savings chart, citation or badge suggests otherwise. ## Design and performance -One Inter Tight typeface, cream/clay colors, unframed photography, and sparse scenes replace the denser six-panel version. The café photograph is licensed stock; the reunion still comes from the existing Higgsfield film footage. Provenance is in `public/cloud/teaser/CREDITS.md`. +One Inter Tight typeface, cream/clay colors, unframed photography, and seven concise chapters carry the link story. The café photograph is licensed stock; the reunion still comes from the existing Higgsfield film footage. Provenance is in `public/cloud/teaser/CREDITS.md`. Native vertical document scrolling moves the story horizontally. Mandatory CSS snap points settle on full chapters; there is no wheel or touch interception, synthetic momentum, timed advance, background video, or soundtrack. Previous/next buttons and Left/Right keys are available. Inactive chapters are inert. -Supported desktop browsers drive the track with a native CSS scroll timeline. Touch devices always use the measured document scroll position, writing only the track transform once per animation frame. This avoids relying on CSS syntax support as evidence that the sticky track actually advances on iPhone Safari. Other unsupported browsers use the same transform path. The previous inherited per-panel custom-property writes and decorative parallax were removed. Chapter state changes only at boundaries; the progress bar does not animate on touch devices. +Supported desktop browsers drive the track with a native CSS scroll timeline. Touch devices always use the measured document scroll position, writing only the track transform once per animation frame. This avoids relying on CSS syntax support as evidence that the sticky track actually advances on iPhone Safari. Other unsupported browsers use the same transform path. The previous inherited per-panel custom-property writes and decorative parallax were removed. Chapter state changes only at boundaries; the progress marker updates once per chapter on touch devices, rather than animating continuously. The stage uses stable small-viewport height. Height-only resize events on touch devices no longer rebuild the layout or call scrollTo when browser chrome expands or collapses. Real width changes remeasure after a short debounce. The final chapter reserves large-viewport scroll space. These changes address identifiable sources of lag; no physical-phone frame-rate measurement is claimed. @@ -26,19 +30,24 @@ Reduced motion, short windows, or content that cannot fit automatically use the Implementation references: [WebKit scroll-driven animations](https://webkit.org/blog/17101/a-guide-to-scroll-driven-animations-with-just-css/), [Chrome scroll-driven animations](https://developer.chrome.com/docs/css-ui/scroll-driven-animations), [MDN scroll snapping](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/scroll-snap-type), and [MDN reduced motion](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion). -## Verification — 25 October 2026 +## Verification + +The seven-chapter regression harness checks actual touch transforms with and without advertised CSS timeline support, desktop native/fallback modes, toolbar resizing, width changes and reduced motion. It verifies the last chapter remains reachable. Existing phone compatibility behavior is preserved. + +Current visual and build checks are recorded with the release. Browser emulation is not physical iPhone testing. The founder’s earlier symptom was a counter advancing while the image stayed frozen; touch devices consequently bypass CSS scroll timelines and use one transform write per animation frame. Physical-iPhone confirmation remains pending. + +### Link-story release checks — 25 October 2026 + +- Production build, plain coverage, site integrity, scroll regression and targeted TypeScript checks pass. Built markup has no navigation elements, duplicate IDs or missing local images in either campaign page. All signup links say “Claim your handle”. +- Chrome device emulation at 375×667: visually reviewed all seven teaser chapters, including the full opening question, four requests, link requirements, approval disclosure, link placements and final actions. Native scrolling visibly changes the slide and settles on a chapter. The long page’s opening, requests, product reveal, interactive examples, placement cards and setup were also reviewed at this size. +- At 1280×800, inspected the opening, product reveal, agent exchange and distribution compositions. The local approval state changes after pressing Looks good; switching Muse to Dots keeps the same handle and placement links. All four Learn more scenarios were selected. +- Reduced-motion and short-window fallbacks are covered by the controller harness. No fresh physical-iPhone performance measurement or OS-level reduced-motion test is claimed. Native browser-control interruptions prevented completing the latter as a new visual check. +- DevTools showed development-server logging; one earlier back/forward navigation caused a Vite WebSocket cache warning, cleared on a new load. It is a dev-server connection, not the published controller. -- Production build passes: 335 Astro pages plus generated error documents. -- Plain coverage passes: 100 required pairs. -- Site integrity passes: 339 HTML files and 24,447 internal references. -- `check:teaser` exercises the actual TypeScript controller in both native/fallback modes: 50 height-only mobile resize events cause no reconfiguration or scrollTo; 30 scroll frames cause zero native transform writes and exactly one per frame in the fallback; width changes preserve the chapter; reduced motion removes horizontal mode and inert states. The regression check runs in CI. -- Chrome desktop and 390×844 compositions were visually inspected. The 375×667 view fits all five scenes, including the dinner disclosure and final CTA. Native scrolling reaches complete chapters; the Muse-to-Dots switch retains the handle. The root class confirms the native scroll-timeline path is active. -- Chrome’s reduced-motion emulation exposes the full vertical story and removes chapter controls; the preference was restored afterward. -- Console inspection showed development-server messages, without application errors. -- The separate `/pilot-film` page was checked at 375×667 in both formats. It starts paused and provides downloads and the full transcript. No film asset loads on the teaser. +The new progress marker follows touch chapters with a single boundary update, preserving the one-track-transform-per-frame scrolling path. -Browser checks include Chrome device emulation, not physical iPhone/Safari testing. The previous version’s 320×568 check is not claimed as a fresh visual check of this revision; the same short-window fallback remains covered by the controller logic. +### Conversational revision and height correction -### iPhone Safari frozen-slide follow-up +The expanded request wall and conversational wording follow the approved quick draft. At 1352×667, the prior distribution composition exceeded its grid content area and switched the whole story into vertical fallback. Compact desktop spacing and height-aware display type restore horizontal mode while retaining the accessibility fallback. The repaired distribution slide and reachable 07/07 were visually checked before this copy revision. Current controller regression covers all seven chapters. A fresh complete physical-phone check is not claimed. -The founder reported that the new design loaded but stayed on its first slide while scrolling in iPhone Safari. Touch devices now bypass CSS scroll timelines even when CSS.supports returns true. The scroll handler directly positions the track using one transform per frame; it retains native scroll snapping and the height-only resize protection. The regression check now covers touch browsers both with and without advertised CSS timeline support, verifies the actual transform at every chapter, and confirms that the final CTA remains reachable after a width change. Desktop native/fallback paths and reduced motion still pass. This is a targeted compatibility fix; physical-iPhone confirmation remains with the reporter. +Current conversational revision: fresh Chrome checks at 1352×667 and 375×667 show the expanded request wall fits and horizontal mode remains active. Mobile checks covered the grouped link, autopilot example, distribution and 07/07 final action. Native scrolling visibly advances both slide and counter. Browser emulation only; no new physical-iPhone claim. diff --git a/docs/pilot-film.md b/docs/pilot-film.md index 9a6f0fe3..c8b98450 100644 --- a/docs/pilot-film.md +++ b/docs/pilot-film.md @@ -2,10 +2,22 @@ `/pilot-film` is a separate noindex viewing page with widescreen/vertical selection, ordinary video controls, downloads, and a text transcript. It has no autoplay. The teaser loads no film files. -Revision 14: 23.083 seconds at 60fps; 1920×1080 and 1080×1920. The film uses the exact website Inter Tight font, a matching puppy/Pilot lockup, cream/clay/ink palette, Muse and Priya’s Dots, a persistent handle, and the Start now CTA. Original scene boundaries and the one-interval 0:05 scene are retained. Human connection and plan approval remain explicit. Product scenes are labeled illustrative. +Revision 16: 26.917 seconds at 60fps; 1920×1080 and 1080×1920. Both formats follow the same seven-part story as `/cloud-teaser` and `/cloud-landing`: a hypothetical time question, everyday requests, the last chore, the Pilot link, agents coordinating with approval, the same link everywhere, and taking your life back. Pilot and agents enter at 11.750 seconds. The primary action is Claim your handle; setup is Claim, Connect, Share. -Picture: existing illustrated components and Higgsfield reunion footage (wide job `43933a0b-8a7f-4269-8c5b-6da310ebea55`, vertical job `43a9edd7-b165-4cc2-8980-34a3ed8b14d2`). Typeface and brand marks are reused from the website. +The opening is the complete question “What would you do with 20% more time?” It is not a measured time-use statistic or a promised saving. The link reveal uses the real handle URL format. Priya’s agent reaches Maya’s agent, after Maya accepts the connection. The proposed coffee time is confirmed only after human approval. Both connected AIs and the illustrative nature of the demonstration are labeled. The same link stays in the same screen position through bio, email-signature and message match cuts. -Audio: user-supplied first seven seconds of Imagine Dragons’ “Believer”, arranged into the existing drum loop, with the retained final fade. No narration. The user requested deployment of all work. This document records provenance, not a representation of a music license. +Picture: the existing café photograph, illustrated components, and Higgsfield reunion footage (wide job `43933a0b-8a7f-4269-8c5b-6da310ebea55`, vertical job `43a9edd7-b165-4cc2-8980-34a3ed8b14d2`). Typeface and brand marks are reused from the website. One Inter Tight family, cream/clay/ink palette, and a single human ending align all three surfaces. -Both final files fully decode, contain 1,385 frames, end with black video and zero final-10ms audio RMS, and have 0.999876 correlation to the retained source waveform. This is numerical verification, not independent listening. The production source, previous cuts, generation records, and independent visual review stay in the local `launch-video/drums/output/rhythm-v14/` archive. Only final MP4s, posters, and transcript are published. +Audio: user-supplied first seven seconds of Imagine Dragons’ “Believer”, arranged into the existing drum loop at the original tempo. The approved waveform is sample-identical through the first 21 seconds; an existing complete loop extends the cut, with a final two-second fade to silence. No narration or new effects. Picture fades over the final 1.05 seconds. This records provenance, not a representation of a music license. + +Scene transitions and component changes are quantized from measured audio attacks, not an assumed BPM grid. The production source, full text/timings, audio provenance, previous cuts and independent reviews stay in the local `launch-video/drums/output/rhythm-v16/` archive. Only final MP4s, posters and the full transcript are published. + +## Release verification + +Both exports fully decode and contain 1,615 frames at 60fps. The picture ends black. Encoded audio starts at zero alongside video; correlation to the arranged WAV is 0.999874. Peak sample magnitude is 0.593, and final-10ms RMS is approximately 0.000059 (about −84.5dBFS). The AAC container includes a small codec tail; picture duration is 26.916667s and container duration 26.923s. These are numerical audio checks, not an independent listening test. + +Twenty-five major cuts/state changes were compared against the unchanged measured waveform attacks. Maximum offset is 10.667ms, below one 60fps frame. The complete hypothetical question remains visible from frame zero; the permission line remains through the final fade. Earlier reviews corrected a wide handle/footer collision and outgoing-profile clipping. Revision 16 adds an eight-request wall and grouped handle link; independent render review is archived beside the exports. + +## Conversational revision + +Eight requests and the 30-minute question replace the four-card wall. The request screen now lasts 5.75s. “Let us help” precedes the grouped URL/handle reveal; “Put the back-and-forth on autopilot” heads the coffee example. The sharing sequence contains no AI-switching copy. The last CTA remains fully present for 2.6s before the picture fade. Approved audio is unchanged byte-for-byte; picture changes are retimed to that existing measured loop. Final review and measured sync are archived with revision 16. Intentional reading holds follow the user's slower-pacing direction and are an exception to the skill's 0.6s stillness target. diff --git a/public/cloud/film/pilot-vertical.mp4 b/public/cloud/film/pilot-vertical.mp4 index 24c11382..06582c01 100644 Binary files a/public/cloud/film/pilot-vertical.mp4 and b/public/cloud/film/pilot-vertical.mp4 differ diff --git a/public/cloud/film/pilot-wide.mp4 b/public/cloud/film/pilot-wide.mp4 index b14c4248..956f04a4 100644 Binary files a/public/cloud/film/pilot-wide.mp4 and b/public/cloud/film/pilot-wide.mp4 differ diff --git a/public/cloud/film/poster-vertical.jpg b/public/cloud/film/poster-vertical.jpg index c3fbba3f..8100675d 100644 Binary files a/public/cloud/film/poster-vertical.jpg and b/public/cloud/film/poster-vertical.jpg differ diff --git a/public/cloud/film/poster-wide.jpg b/public/cloud/film/poster-wide.jpg index fbd7a503..7c6dd768 100644 Binary files a/public/cloud/film/poster-wide.jpg and b/public/cloud/film/poster-wide.jpg differ diff --git a/public/cloud/film/transcript.txt b/public/cloud/film/transcript.txt index 8412019d..62a4c8c8 100644 --- a/public/cloud/film/transcript.txt +++ b/public/cloud/film/transcript.txt @@ -1,42 +1,28 @@ -# Pilot — The last chore +# Pilot — Take your life back · revision 16 -23.083 seconds · 60fps · same copy and timing in widescreen and vertical. **No narration.** Original-tempo loop from the user-supplied first seven seconds of “Believer”. Audio fades 21.083–23.083s; picture fades 22.033–23.083s. +26.917 seconds · 1,615 frames · 60fps · widescreen and vertical use the same text and timing. No narration. The approved first-seven-second-derived Believer drum arrangement is unchanged from revision 15. Audio fades 24.917–26.917s; picture fades 25.867–26.917s. -Times describe the first visible frame, quantized to 60fps. The soundtrack’s attacks can fall between frames. +Times identify visible video frames, rounded to milliseconds. Source drum attacks can fall between frames. | Time | On-screen text | Picture / action | |---|---|---| -| 0.000–3.117 | Your messages | Clearly human conversation, with You and Priya portraits. | -| 0.000–3.117 | You / Dinner soon? | Opening message is present at frame zero. It fills coral at 0.233. | -| 0.717–3.117 | Priya / When works? | Reply enters on the drum; fills coral at 1.183. | -| 1.667–3.117 | You / Let me check… | More availability work, still no settled time. | -| 2.150–3.117 | Still planning. | The problem is explicit. | -| 3.117–5.033 | The last chore / you’ll ever do. | Whole chosen hook stays together. Palette inversion 3.917; underline 4.550. | -| 5.033–6.950 | The AI you already use. / Connected to theirs. | You / Muse and Priya / Dots, linked by Pilot. Connector solid at 5.517; palette impact 5.833. | -| 6.950–9.833 | Share your / handle link. | Your AI → Their AI. “cloud.pilotprotocol.network/” + “@maya”. Transfer starts 7.433 and lands 7.750. | -| 7.750–8.383 | Accept connection | Human pointer appears at 7.917. | -| 8.383–9.833 | Connection approved | The connection is accepted before agents act. | -| 9.833–14.633 | Let the agents / do the back and forth. | One persistent headline through negotiation and approval. | -| 9.833–11.750 | Your AI / Dinner Thursday? | The agents work on the same dinner request. | -| 9.833–10.783 | Their AI / … | Response dots brighten at 10.317. | -| 10.783–12.717 | Their AI / After 7. | Reply persists while the first AI suggests a time; fades during the final transition. | -| 11.750–13.667 | 7:30? | From 12.500–12.717, the same message grows into the proposal in place. | -| 12.717–14.633 | Dinner with Priya / Thursday / You approve. | Plan context and human control appear. | -| 12.717–13.667 | Approve plan | Human pointer appears at 13.183. | -| 13.667–14.633 | Plan confirmed / 7:30 | Check appears; question mark disappears; persistent context chip gains the confirmed time. | -| 14.633–17.517 | New AI. / Same handle. | @maya and its URL remain in place. Confirmed dinner stays in the context chip. | -| 14.633–15.583 | Muse | Existing app. | -| 15.583–17.517 | Muse → Dots | AI changes, while the handle and confirmed plan remain. | -| 17.517–19.433 | No main headline or CTA | Full-screen Higgsfield reunion. Picture punches in at 18.467. | -| 19.433–23.083 | Less planning. / More see you soon. / Claim your handle. Invite a friend. / Start now / cloud.pilotprotocol.network | One emotional payoff, handle/invitation instruction, and Start now CTA. Palette inverts at 20.383. Full reading hold until picture fade at 22.033. | - -Persistent context and disclosure: - -- “Pilot” appears throughout. -- “Dinner with Priya” stays fixed from 0–17.517s. After human approval at 13.667, the same chip additionally shows a check and “Thu · 7:30”. -- “Illustrative conversation” appears during the opening, 0–3.117s. -- “Illustrative · Both AIs connected” appears during product demonstration, 5.033–17.517s. -- “You approve connections and plans.” appears from 17.517s through the end fade. - -This is an illustrative example, not a real-user chat or an app screen recording. It does not imply private calendar access, automatic consent or a restaurant booking. Human messages come first, connection approval precedes the agents’ exchange, and human plan approval precedes confirmation. +|0.000–3.117|What would you do with / 20% / more time?|Complete hypothetical question over café photography. Number becomes coral at1.183. No product/agent branding.| +|3.117–8.867|How does a “quick question” turn into 30 minutes? /Coffee this week? /Could you make an intro? /When’s everyone free? /So, what do you do? /Can you give me feedback on this? /Know a good plumber? /Know a good designer? /Can I pitch you something? /Illustrative requests|All eight asks visible together. Highlight moves on drums at3.117,4.067,5.033,5.983,6.950,7.433,7.917,8.383.| +|8.867–11.750|Let us help. /Make this the last time you do these chores.|Full-screen type. Coral/cream inversion at9.833.| +|11.750–14.633|Pilot /One link. /That’s it. /A way to reach your agent. /cloud.pilotprotocol.network/ /@maya /Example handle · Both people connect an AI|First Pilot reveal. The URL prefix and handle sit in one outlined shape.| +|14.633–16.067|Pilot /Put the back-and-forth on autopilot. /Priya|Connection request, before agent contact.| +|14.633–15.600|Accept Priya /Illustrative · You choose who connects|Pointer appears at15.117.| +|15.600–16.067|Connected /Illustrative · Both AIs connected|You accept the connection.| +|16.067–18.467|Pilot /Put the back-and-forth on autopilot. /Priya’s agent /Your agent /Coffee Thursday?|Priya’s Dots asks Maya’s Muse. Message labels/text fade18.217–18.367.| +|16.067–16.550|…|Your agent prepares its reply.| +|16.550–18.367|After 3.|Your agent replies.| +|17.033–19.433|3:30?|Proposed time grows into the plan18.217–18.467.| +|18.467–20.383|Coffee with Priya /Thursday /You approve.|A proposed plan awaits your approval.| +|18.467–19.433|Approve plan|Pointer appears18.950.| +|19.433–20.383|Plan confirmed /3:30|You confirm the proposed time.| +|20.383–21.350|Pilot /In your bio. /Maya /Product designer. Coffee person. /cloud.pilotprotocol.network/@maya ↗ /Illustrative placements|One URL carried across contexts.| +|21.350–22.317|Pilot /In your email. /Talk soon, /Maya /cloud.pilotprotocol.network/@maya ↗ /Illustrative placements|Profile fades in place, signature enters. URL stays pinned.| +|22.317–23.267|Pilot /Or just send it. /Reach my agent here. /cloud.pilotprotocol.network/@maya ↗ /Illustrative placements|The surrounding container contracts into a message.| +|23.267–26.917|Pilot /Take your life back. /Claim. Connect. Share. /Claim your handle ↗ /cloud.pilotprotocol.network /You approve connections and plans.|Higgsfield reunion footage. Headline becomes coral24.233. Picture and drums fade out.| +The demonstration is illustrative, not recorded product behavior or an actual booking. Both people connect AIs. Connection approval and plan approval are separate. What an agent can do depends on its context, tools and permissions. The complete 20% question is hypothetical; 30 minutes is a rhetorical question, not a measured average. No claim of guaranteed autonomous completion. There is no agent-switching pitch in this cut. diff --git a/public/cloud/teaser/CREDITS.md b/public/cloud/teaser/CREDITS.md index ef3e1b7c..b34a4304 100644 --- a/public/cloud/teaser/CREDITS.md +++ b/public/cloud/teaser/CREDITS.md @@ -2,6 +2,6 @@ - Café photography: existing licensed image and source attribution in `../warm/CREDITS.md`. - `reunion-wide.webp` and `reunion-vertical.webp`: optimized stills from the existing Higgsfield-generated Pilot reunion footage, at 1.2 seconds. Wide job `43933a0b-8a7f-4269-8c5b-6da310ebea55`; vertical job `43a9edd7-b165-4cc2-8980-34a3ed8b14d2`. Illustrative people, not customers or testimonials. No new generation or credit usage. -- `social.jpg`: Pilot typography and logo composed over that reunion still. +- `social.jpg`: Pilot typography and logo composed over that reunion still. Shared by the teaser and Learn more page; rebuilt with `node scripts/build-teaser-social.mjs`. The published teaser uses static WebP images, not background video. diff --git a/public/cloud/teaser/social.jpg b/public/cloud/teaser/social.jpg index dfc6dcab..7fd3d2f1 100644 Binary files a/public/cloud/teaser/social.jpg and b/public/cloud/teaser/social.jpg differ diff --git a/scripts/build-teaser-social.mjs b/scripts/build-teaser-social.mjs new file mode 100644 index 00000000..17ac4d0e --- /dev/null +++ b/scripts/build-teaser-social.mjs @@ -0,0 +1,30 @@ +// Shared social card for the teaser and its Learn more page. +// Run: node scripts/build-teaser-social.mjs +import { mkdtemp, writeFile, rm } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { join, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; +const root = fileURLToPath(new URL('../', import.meta.url)); +const scratch = await mkdtemp(join(tmpdir(), 'pilot-link-social-')); +const previousConfig = process.env.FONTCONFIG_FILE; +const escape = s => s.replaceAll('&', '&').replaceAll('<', '<').replaceAll('"', '"'); +try { + process.env.FONTCONFIG_FILE = join(scratch, 'fonts.conf'); + await writeFile(process.env.FONTCONFIG_FILE, `${escape(resolve(root, 'public/fonts'))}${escape(scratch)}`); + const { default: sharp } = await import('sharp'); + const base = await sharp(resolve(root, 'public/cloud/teaser/reunion-wide.webp')).resize(1200,630,{fit:'cover'}).png().toBuffer(); + const layers = [{input:Buffer.from(''),left:0,top:0}]; + layers.push({input:await sharp(resolve(root,'public/img/pilot-96.webp')).resize(58,58).png().toBuffer(),left:60,top:49}); + const text = async(value,size,left,top,color='#392f29',weight='normal') => layers.push({input:await sharp({text:{text:`${escape(value)}`,font:`Inter Tight ${size}`,fontfile:resolve(root,'public/fonts/NGSwv5HMAFg6IuGlBNMjxLsH8ag.woff2'),rgba:true,dpi:72}}).png().toBuffer(),left,top}); + await text('Pilot',40,132,57,'#392f29','semibold'); + await text('Take your',100,60,192,'#392f29','semibold'); + await text('life back.',100,60,300,'#b94e36','semibold'); + await text('One link to your agent.',30,64,451); + await text('Claim. Connect. Share.',24,64,550,'#6d5c4f'); + await sharp(base).composite(layers).jpeg({quality:90,mozjpeg:true}).toFile(resolve(root,'public/cloud/teaser/social.jpg')); + console.log('Built Pilot link story social card (1200 × 630).'); +} finally { + if(previousConfig===undefined) delete process.env.FONTCONFIG_FILE; + else process.env.FONTCONFIG_FILE=previousConfig; + await rm(scratch,{recursive:true,force:true}); +} diff --git a/scripts/check-teaser-scroll.mjs b/scripts/check-teaser-scroll.mjs index b19460fc..5a12eeb4 100644 --- a/scripts/check-teaser-scroll.mjs +++ b/scripts/check-teaser-scroll.mjs @@ -27,7 +27,7 @@ for (const { nativeSupport, touch } of [ const stage = { ...element(), clientHeight: 660, get clientWidth() { return browser.innerWidth; } }; const story = { ...element(), getBoundingClientRect: () => ({ top: -browser.scrollY }) }; const track = element(); - const panels = Array.from({ length: 5 }, (_, i) => ({ ...element(), dataset: { name: `Scene ${i}`, tone: 'light' }, querySelector: () => ({ clientHeight: 660, scrollHeight: 660, getBoundingClientRect: () => ({ top: 0, bottom: 660 }), children: [{ getBoundingClientRect: () => ({ top: 150, bottom: 250 }) }] }) })); + const panels = Array.from({ length: 7 }, (_, i) => ({ ...element(), dataset: { name: `Scene ${i}`, tone: 'light' }, querySelector: () => ({ clientHeight: 660, scrollHeight: 660, getBoundingClientRect: () => ({ top: 0, bottom: 660 }), children: [{ getBoundingClientRect: () => ({ top: 150, bottom: 250 }) }] }) })); const reduced = { matches: false, addEventListener(type, callback) { this.change = callback; } }; const browser = { innerWidth: 390, innerHeight: 700, scrollY: 0, matchMedia: query => query.includes('reduced') ? reduced : { matches: touch }, addEventListener: (name, fn) => { events[name] = fn; }, scrollTo: options => { scrolls.push(options); browser.scrollY = options.top; }, clearTimeout() { timer = undefined; }, setTimeout(fn) { timer = fn; return 1; } }; const nodes = { '.teaser-story': story, '.teaser-stage': stage, '.teaser-track': track, '.teaser-controls': element(), '[data-previous]': element(), '[data-next]': element(), '[data-chapter]': element(), '[data-story-status]': element(), '[data-scroll-cue]': element(), '.story-progress > span': element() }; @@ -52,6 +52,7 @@ for (const { nativeSupport, touch } of [ frames.splice(0).forEach(fn => fn()); if (!nativeTimeline) assert.equal(track.style.transform, `translate3d(${-index * browser.innerWidth}px, 0, 0)`, 'scrolling must actually move the visible slide, even when touch browsers report timeline support'); assert.equal(root.dataset.chapter, String(index)); + assert.equal(nodes['.story-progress > span'].style.transform, `translateX(${index * 100}%)`, 'the progress marker must follow the visible chapter'); assert.equal(nodes['[data-chapter]'].textContent, String(index + 1).padStart(2, '0')); assert.equal(panels.every((panel, i) => panel.inert === (i !== index)), true); } @@ -61,7 +62,7 @@ for (const { nativeSupport, touch } of [ assert.equal(typeof timer, 'function', 'a real width change must remeasure the layout'); timer(); assert.equal(scrolls.length, 1); - assert.equal(browser.scrollY, 4 * stage.clientHeight, 'a width change preserves the final chapter'); + assert.equal(browser.scrollY, (panels.length - 1) * stage.clientHeight, 'a width change preserves the final chapter'); reduced.matches = true; reduced.change(); assert.equal(classes.has('teaser-horizontal'), false); diff --git a/src/pages/cloud-landing.astro b/src/pages/cloud-landing.astro index df4b43bb..5b116f27 100644 --- a/src/pages/cloud-landing.astro +++ b/src/pages/cloud-landing.astro @@ -45,60 +45,61 @@ const recommendedAgents = [ ] as const; const identityApps = [recommendedAgents[0], apps[0], apps[1]]; +const incomingRequests = ["Coffee this week?", "Could you make an intro?", "When’s everyone free?", "So, what do you do?", "Can you give me feedback on this?", "Know a good plumber?", "Know a good designer?", "Can I pitch you something?"]; const examples = [ { - label: 'Dinner plans', icon: '♡', title: 'Dinner with Maria', - app: { name: 'Muse', logo: 'muse.png' }, - thread: [['you', 'dinner next week?'], ['them', 'yes! when are you free?'], ['you', 'tuesday?'], ['them', 'can’t tuesday. thursday?'], ['you', 'let me check…']], - ask: 'Find a time for dinner with Maria next week.', - reply: 'Maria, would Thursday at 7 work for dinner?', - responses: [{ name: 'Maria’s Grok Bot', logo: 'grok.png', text: 'Maria’s free then. Thursday at 7 works!' }], - result: 'Thursday at 7 works for both of you.', detail: 'Back in your chat, ready for your OK.', - looseEnd: 'And then you check another calendar…', + label: 'Coffee', icon: '☕', title: 'Coffee with Priya', + app: { name: 'Dots', logo: 'dots.webp', owner: 'Priya' }, + thread: [['them', 'coffee this week?'], ['you', 'thursday?'], ['them', 'what time?'], ['you', 'let me check…'], ['them', 'afternoon maybe?']], + ask: 'Ask Maya’s agent about coffee on Thursday.', + reply: 'Could Maya do coffee Thursday?', + responses: [{ name: 'Your Muse', logo: 'muse.png', text: 'After 3 could work. Shall we say 3:30?' }], + result: 'Coffee with Priya. Thursday, 3:30?', detail: 'A proposal for you to approve.', + looseEnd: 'A quick coffee. A not-so-quick conversation.', }, { - label: 'Weekend things', icon: '☀', title: 'Saturday with Sam & Lucas', - app: { name: 'OpenClaw', logo: 'openclaw.png' }, - thread: [['you', 'shall we do something saturday?'], ['them', 'yes! is lucas coming?'], ['you', 'let me ask him'], ['them', 'and where should we go?'], ['you', 'one thing at a time 😅']], - ask: 'Plan Saturday with Sam and Lucas.', - reply: 'Sam and Lucas, coffee on Saturday at 11?', - responses: [ - { name: 'Sam’s Hermes', logo: 'hermes.png', text: 'Sam’s free at 11. Coffee sounds good.' }, - { name: 'Lucas’s Dots', logo: 'dots.webp', text: 'That works for Lucas too.' }, - ], - result: 'Saturday, 11am. Coffee with the whole gang.', detail: 'Everyone’s free. Want to make it a plan?', - looseEnd: 'One plan. Three conversations to keep up with.', + label: 'An introduction', icon: '↗', title: 'An introduction for Sam', + app: { name: 'Hermes', logo: 'hermes.png', owner: 'Sam' }, + thread: [['them', 'do you know Alex?'], ['you', 'yes, why?'], ['them', 'could you introduce us?'], ['you', 'what should I tell them?'], ['them', 'I’ll write something up…']], + ask: 'Ask Maya if she can introduce me to Alex.', + reply: 'Sam would love to talk to Alex about product design. Could you ask Maya?', + responses: [{ name: 'Your Muse', logo: 'muse.png', text: 'I’ll bring Maya the request. She can check with Alex first.' }], + result: 'The context, ready for your decision.', detail: 'You decide whether to make the introduction.', + looseEnd: 'Another thread to follow up on.', }, { - label: 'Quick updates', icon: '↗', title: 'A project update from Sam', - app: { name: 'Claude', logo: 'claude.svg' }, - thread: [['you', 'how’s the launch going?'], ['them', 'not sure, ask sam'], ['you', 'hey sam, any news?'], ['them', 'in a meeting, will check!'], ['you', 'no rush, just checking in…']], - ask: 'Ask Sam’s agent where the launch stands.', - reply: 'Sam, what’s the latest on the launch?', - responses: [{ name: 'Sam’s ChatGPT', logo: 'chatgpt.svg', text: 'Sam’s update: we’re on track for Friday.' }], - result: 'Sam’s update, without the follow-up.', detail: 'The launch is on track for Friday.', - looseEnd: 'Another follow-up to remember.', + label: 'A group plan', icon: '♡', title: 'Friday with everyone', + app: { name: 'OpenClaw', logo: 'openclaw.png', owner: 'Lucas' }, + thread: [['them', 'everyone around friday?'], ['you', 'I think so, is Sam?'], ['them', 'let me check'], ['you', 'and what time?'], ['them', 'one thing at a time 😅']], + ask: 'Find a time for coffee with Maya and Sam on Friday.', + reply: 'Would Friday at 4 work for everyone?', + responses: [ + { name: 'Your Muse', logo: 'muse.png', text: 'That could work for Maya.' }, + { name: 'Sam’s Hermes', logo: 'hermes.png', text: 'Sam can do 4 too.' }, + ], + result: 'Friday at 4 works for the group.', detail: 'Ready for everyone’s OK.', + looseEnd: 'One plan. Three conversations.', }, { - label: 'Sharing a file', icon: '✉', title: 'The slides for Lucas', - app: { name: 'ChatGPT', logo: 'chatgpt.svg' }, - thread: [['you', 'here are the slides!'], ['them', 'didn’t get them?'], ['you', 'resent. check now?'], ['them', 'think this is the old version'], ['you', 'hang on…']], - ask: 'Send Lucas the slides from this chat.', - reply: 'Lucas, here’s the latest slide deck.', - responses: [{ name: 'Lucas’s Gemini', logo: 'gemini.svg', text: 'Got it. I have the new version for Lucas.' }], - result: 'The right slides. In the right hands.', detail: 'Delivered to Lucas’s agent. All sorted.', - looseEnd: 'Now, which version did you send?', + label: 'A quick question', icon: '✳', title: 'What do you do?', + app: { name: 'ChatGPT', logo: 'chatgpt.svg', owner: 'Alex' }, + thread: [['them', 'what are you working on?'], ['you', 'product design'], ['them', 'any examples?'], ['you', 'one sec, finding the link'], ['them', 'thank you!']], + ask: 'Ask Maya’s agent about her work.', + reply: 'What kind of work does Maya do?', + responses: [{ name: 'Your Muse', logo: 'muse.png', text: 'Maya designs products. Here’s the portfolio she’s chosen to share.' }], + result: 'An answer without another interruption.', detail: 'Based on the information you give your AI permission to share.', + looseEnd: 'The same answer, typed out again.', }, ]; const faq = [ - ['Is Pilot another AI assistant?', 'Pilot connects the AI you already use to other agents. You keep chatting in your usual AI app; Pilot gives it a way to reach your friends and contacts. Ask it to coordinate a plan, request an update, or send a file.'], + ['Is Pilot another AI assistant?', 'Pilot gives the AI you already use a way to reach other agents. Your handle link lets friends and contacts request a connection. Once you accept, their agents can bring your AI questions and plans, and your AI can reach theirs.'], ['Do my friends need Pilot too?', 'Yes. You both connect Pilot to your AI apps, but you can each use a different AI. Share your link with one person. They sign in and connect their AI; you accept the connection. Neither of you needs to install Pilot software with Cloud. A friend who already runs Pilot can use that too.'], ['Which agents and AI apps can I use?', 'Any AI that supports MCP can connect. We recommend Muse, Grok Bot, OpenClaw, Hermes, Dots, and other background agents. With background check-ins enabled, they can pick up replies while you’re away. Claude, ChatGPT, Gemini, and other chat apps work too, while you chat. Setup and connector access can depend on your app’s plan and settings.'], ['What if I switch AI apps?', 'Connect your new AI app to the same Pilot account. Your handle, share link, and connections stay with you. You can also connect more than one supported AI app to that account, so people can keep reaching you through the same handle.'], ['What can my agent actually do?', 'It can exchange messages and files with your connections’ agents. Your AI uses that conversation to help make plans, ask questions, and bring back answers. What it can complete depends on the information, tools, and permissions available on both sides. Calendar-based planning also requires calendar access in your AI app.'], ['Can anyone with my link message me?', 'Your link lets someone request a connection. You decide whether to accept and choose their circle: close friend, friend, or acquaintance. The circle tells your agent how to handle that relationship and what it may share. You can change it later.'], - ['What does “Cloud” mean?', 'Pilot Cloud is Pilot Protocol, hosted for you. We run your Pilot agent, so there’s no Pilot software to install or computer to keep on. You still connect your AI app and choose who to connect with.'], + ['Do I need to host anything?', 'No. This is Pilot Protocol, hosted for you. There’s no Pilot software to install or server to maintain. You still connect your AI and choose who can connect. Background replies depend on that AI’s configuration.'], ['What if I want to leave?', 'You can delete your account in Advanced settings, on the site or in the app. That removes your agent and everything on it, including friends, messages, files and activity. No email or call needed.'], ]; --- @@ -106,11 +107,11 @@ const faq = [ @@ -121,7 +122,7 @@ const faq = [ '@type': 'BreadcrumbList', itemListElement: [ { '@type': 'ListItem', position: 1, name: 'Pilot Protocol', item: 'https://pilotprotocol.network/' }, - { '@type': 'ListItem', position: 2, name: 'Pilot Cloud preview', item: 'https://pilotprotocol.network/cloud-landing' }, + { '@type': 'ListItem', position: 2, name: 'Learn more about Pilot', item: 'https://pilotprotocol.network/cloud-landing' }, ], })} />