Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3580c00fa1 | ||
|
|
0a2ae76f34 | ||
|
|
33c2af4359 |
+186
-160
@@ -1,197 +1,223 @@
|
|||||||
---
|
---
|
||||||
title: "AIBook.fun — Implementation Plan (CONSOLIDATED v1.0-DRAFT)"
|
title: "AIBook.fun — Implementation Plan"
|
||||||
type: implementation-plan
|
type: implementation-plan
|
||||||
tags: [aibook, weown-ai, prj-031, implementation, kickstarter, roadmap, responsible-agentic-ai, social-education]
|
|
||||||
status: draft
|
status: draft
|
||||||
created: 2026-08-22
|
owner: Patrick (Product)
|
||||||
source-of-truth: "https://github.com/CCCbotNet/fedarch/blob/main/_PROJECTS_/PRJ-031_WeOwnAI-Book.md"
|
launch-target: 2026-09-26
|
||||||
generated:
|
last-updated: 2026-08-26
|
||||||
by: "AI:CCC-MAIT-S004-PAT-DeepSeek (SEAT-1 governance/OKF) + ProductBuzz [PAT] (Product Ops) — merged v0.2, amended v0.3"
|
companions: [AiBook_PRD.md, AiBook_Spec.md]
|
||||||
at: "2026-08-22T15:36:00Z"
|
|
||||||
verified:
|
|
||||||
- by: "curl github.com/CCCbotNet/fedarch (PRJ-031 SOT v3.2.1.3)"
|
|
||||||
at: "2026-08-22"
|
|
||||||
- by: "buzz channels list (relay) — bMAIT AiBook.fun channel desc"
|
|
||||||
at: "2026-08-22"
|
|
||||||
sources:
|
|
||||||
- id: sot
|
|
||||||
resource: "https://github.com/CCCbotNet/fedarch/blob/main/_PROJECTS_/PRJ-031_WeOwnAI-Book.md"
|
|
||||||
note: "PRJ-031 v3.2.1.3 — pre-launch/launch/post phases, budget, risks, team"
|
|
||||||
- id: spec
|
|
||||||
resource: "PLANS/AIBOOK_SPEC.md"
|
|
||||||
- id: prd
|
|
||||||
resource: "PLANS/AIBOOK_PRD.md"
|
|
||||||
- id: pb-impl
|
|
||||||
resource: "PLANS/AIBOOK/AIBOOK_IMPLEMENTATION_PLAN.md (ProductBuzz draft v0.1)"
|
|
||||||
note: "Parallel draft merged into this canonical — 5-phase skeleton, gates, RACI"
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 📚 AIBook.fun — Implementation Plan
|
# 📚 AIBook.fun — Implementation Plan
|
||||||
**CONSOLIDATED v1.0-DRAFT** · 2026-08-22 · **ProductBuzz [PAT]** (Product Ops) + **CCC-MAIT-S004-PAT-DeepSeek** (SEAT-1 governance/OKF) · Owner: @pat · R-011 gates: @GTM · **⛔ DRAFT — not a live claim. No R-011.** (v1.0-final naming reserved for R-011'd freeze.)
|
|
||||||
> v1.0-DRAFT consolidation (2026-08-22T15:36:00Z, SEAT-1 after ProductBuzz self-review 15:22Z): trunk = v0.3. Folded F1 (gates G0–G3 kept; G4 dropped everywhere — the "G0–G4" lived only in the channel summary, not the file) · S4 (Phase 0.8 reworded: D-7 as @pat override review of DRI floor ruling). v0.3 amendment history below:
|
|
||||||
> v0.3 amendment (2026-08-22T13:36Z, Product Ops review): frontmatter timestamp corrected (v0.2 was future-dated) · floor references aligned to DRI ruling (see SPEC §P6).
|
|
||||||
|
|
||||||
**Anchors:** Today = 2026-08-22 (W34·D6) · **Kickstarter launch = 9/26/2026** (CONFIRMED, W39·D6) · Domain expiry **09-05** (auto-renew must confirm W35) · SOT campaign skeleton reused with refreshed dates.
|
> **Status: DRAFT.** The schedule below assumes decisions that aren't final yet (see "Do this
|
||||||
|
> week"). Dates, owners, and dollar figures are planning assumptions until signed off. This is a
|
||||||
|
> **living document** — update it weekly with actual dates and owners. See
|
||||||
|
> [Appendix — What changed](#appendix--what-changed-in-this-revision) for how this revision
|
||||||
|
> differs from the prior draft.
|
||||||
|
|
||||||
**Critical path:** G0 decisions → copy freeze → scrub gate → KS submit → **9/26** — ~34 days; every week counts.
|
**The clock:** today is late August 2026; **launch is 9/26/2026** — roughly **4–5 weeks out**.
|
||||||
|
Every week counts, and the critical path has little slack. The domain expires **09-05**, so
|
||||||
|
step one is non-negotiable and immediate.
|
||||||
|
|
||||||
|
**The critical path in one line:**
|
||||||
|
`renew domain + make the pricing decisions → seed the Minimum Lovable Library → freeze copy → no-crypto scrub → submit to Kickstarter → launch 9/26`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 0 — Decisions & hard gates (W34 now → W35, by 2026-09-01)
|
## Do this week (the real gate zero)
|
||||||
|
|
||||||
| # | Task | Owner | Due | Gate |
|
Before any copy or build locks, close these. Most are decisions or de-risking, not building.
|
||||||
|:--|:--|:--|:--|:--|
|
|
||||||
| 0.1 | **D-3: confirm aibook.fun auto-renew** (or renew manually now) | @GTM | **W35 (09-01)** | G0 🔴 |
|
|
||||||
| 0.2 | **D-1: lifetime tier decision** (yes/no, price, position vs $47/yr) | @GTM (R-011) | W35 | G0 🔴 |
|
|
||||||
| 0.3 | **D-2: royalty mechanics** (affiliate-only per SOT, or add royalty pool) | @GTM (R-011) | W35 | G0 🔴 |
|
|
||||||
| 0.4 | Ratify metric targets (PRD §6) — never quote DRAFT figures | ProductBuzz + team | W35 | G0 |
|
|
||||||
| 0.5 | Open claims-register entries (Spec §7) with promotion rules | ProductBuzz | W35 | G0 |
|
|
||||||
| 0.6 | Assign renewal owner (post-campaign) | @GTM | W35 | G0 |
|
|
||||||
| 0.7 | KS creator account + identity verification | @THY | W35 | G0 (SOT PL-1) |
|
|
||||||
| 0.8 | D-7: @pat override review of DRI floor ruling (F1 confidentiality · F2 cross-customer · F3 off-domain, all FLOOR 0) — closes override window (S4) | @pat | W35 | G0 |
|
|
||||||
| 0.9 | Workflow Recipe schema v0.1 + 3 example Recipes | SEAT-2 Laguna + PAT satellites | W35 | G0 |
|
|
||||||
|
|
||||||
**Gate G0 (09-01):** D-1/D-2/D-3 answered; targets ratified; claims entries open. Without D-3, downstream builds on a domain that may lapse — **pause production push, not content work.**
|
| # | Task | Owner | Why it's first |
|
||||||
|
|:--|:--|:--|:--|
|
||||||
|
| 0.1 | **Renew aibook.fun today.** It expires 09-05; launch is 09-26. | Whoever holds the registrar login | It's a chore, not a decision. A lapsed domain 3 weeks before launch is a self-inflicted disaster. |
|
||||||
|
| 0.2 | **Decide the pricing spine — lifetime *and* royalties together** (D-1 + D-2). | Commercial lead (@GTM) | Both block copy freeze; they're linked (see [Spec §6](AiBook_Spec.md)). |
|
||||||
|
| 0.3 | **Ratify the North-Star + product-health floors** (activation, submissions, renewal). | Product (@pat) + team | So we measure the right thing from Day 1, not just dollars. |
|
||||||
|
| 0.4 | **Ratify the Minimum Lovable Library number and assign every workflow an author.** | Product + co-authors | This is the #1 risk; turn it from hope into owned work. |
|
||||||
|
| 0.5 | **Confirm the two unconfirmed co-authors, or cut their verticals from v1** (D-3). | Commercial lead (@GTM) | Scope certainty before outline lock. |
|
||||||
|
| 0.6 | Open the claims register; assign a post-campaign renewal owner. | Product + Commercial | Truth-in-claims gate; don't leave renewal unstaffed. |
|
||||||
|
| 0.7 | Set up the Kickstarter creator account + identity verification. | Campaign lead (@THY) | Long lead time; do it early. |
|
||||||
|
|
||||||
|
**✅ Gate 0 — decisions closed.** Pricing spine decided · targets ratified · Minimum Lovable
|
||||||
|
Library scoped with authors · domain renewed · claims register open. *Until pricing is decided,
|
||||||
|
don't freeze copy. Until the domain is renewed, don't push anything live.*
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 1 — Build (W35–W37, 09-01 → 09-19)
|
## Phase 1 — Build (the ~3 weeks before launch)
|
||||||
|
|
||||||
### 1A · Content (critical path: sample chapters + workflow template)
|
Organized by the four workstreams. **The content workstream is the critical path** — a beautiful
|
||||||
| Task | Owner | Due |
|
campaign around an empty library fails.
|
||||||
|:--|:--|:--|
|
|
||||||
| Book outline locked (chapters per vertical, SOT §Co-Authors) | @THY + @CEO + @GTM | W35 |
|
### 1A · Content — seed the Minimum Lovable Library (critical path)
|
||||||
| Workflow document template v1 (Spec §4.1) published to contributors | ProductBuzz | W35 |
|
| Task | Owner |
|
||||||
| **3 learn-by-running kits** (clone-and-run; verified by running) | SEAT-2 Laguna + PAT-QA S4 | W36 |
|
|:--|:--|
|
||||||
| **Sample chapter 1** (flagship vertical) | @THY | W36 |
|
| Lock the chapter outline (chapters per vertical, a named owner each) | Co-authors |
|
||||||
| **Sample chapter 2** | @CEO | W36 |
|
| Publish the Workflow Recipe template + 3 filled examples | Product |
|
||||||
| Contributor onboarding doc + affiliate signup path | ProductBuzz + @GTM | W36 |
|
| **Seed the Minimum Lovable Library to its floor number** (team + co-authors write & test the workflows) | Co-authors + team |
|
||||||
| Workflow-of-the-Week #1 (showcase starter) | Curators | W37 |
|
| 3 "clone-and-run" kits, each **verified by actually running it** | Dev + QA support |
|
||||||
| Co-author outreach: B.W. Piper (Higher Ed), L. Kerner (Communities) | @GTM | W36 (D-6) |
|
| 2 sample chapters (the backer preview) | Two lead co-authors |
|
||||||
| OKF bundle scaffolding (Book as knowledge bundle, frontmatter/sources/trust tiers) | SEAT-1 DeepSeek | W37 |
|
| Contributor onboarding doc + affiliate signup path | Product + Commercial |
|
||||||
|
| Structured/versioned content format (so editions diff cleanly, and agents can read it later) | Format support |
|
||||||
|
|
||||||
### 1B · Site & domain
|
### 1B · Site & domain
|
||||||
| Task | Owner | Due |
|
| Task | Owner |
|
||||||
|:--|:--|:--|
|
|:--|:--|
|
||||||
| Framer POC review (`217fbfc` staged) → feedback | @pat + @GTM | W35 |
|
| Review the staged landing-page proof-of-concept → feedback | Product + Commercial |
|
||||||
| **Push to production** (only after G0); SSL cert; GA continuity (UA-59154711-35) | @GTM:ADMIN | W36 |
|
| Push landing to production (**only after Gate 0**) — working HTTPS, analytics continuity | Site admin (@GTM) |
|
||||||
| aibook.fun/affiliates page + Kickbooster widget | @GTM | W36 |
|
| Landing page runs as a **hook A/B test** ("run a workflow today" vs. "own a community guide") — learn which message converts before spending ad budget | Site admin + Product |
|
||||||
| Sample-chapter download flow (email-gated via FluentCRM `book-prelaunch`) | @LDC + @GTM | W37 |
|
| Affiliates page + Kickbooster widget | Commercial |
|
||||||
| **09-12 infra freeze** (DNS/SSL/registrar untouched after) | all | 09-12 ⚠️ |
|
| Email-gated sample-chapter download flow | Email lead (@LDC) + Site admin |
|
||||||
|
| **09-12 infra freeze** — DNS/SSL/registrar untouched after this date | All |
|
||||||
|
|
||||||
### 1C · Campaign assets
|
### 1C · Campaign assets
|
||||||
| Task | Owner | Due |
|
| Task | Owner |
|
||||||
|
|:--|:--|
|
||||||
|
| Kickstarter page copy (all sections, 9/26 dates) | Campaign lead + exec co-author |
|
||||||
|
| **Copy freeze — commercial terms locked** (lifetime/royalties per D-1/D-2) | Commercial lead (sign) |
|
||||||
|
| **No-crypto scrub gate on every asset** (translation table) | Campaign lead (owner) |
|
||||||
|
| Hero video: script → shoot → edit (2–3 min) | Creative lead (@LFG) + co-authors |
|
||||||
|
| Cover design + 3D mockups | Creative lead |
|
||||||
|
| Pre-launch email sequence (3 emails) built + tagged | Exec co-author + Email lead |
|
||||||
|
| LinkedIn organic pre-launch calendar | Creative lead |
|
||||||
|
|
||||||
|
### 1D · Community & the learning loop
|
||||||
|
| Task | Owner |
|
||||||
|
|:--|:--|
|
||||||
|
| Try-it feedback loop live in the community channel (pinned template) | Product |
|
||||||
|
| Book Circles playbook (1 page) + pilot cohort announced | Product + community |
|
||||||
|
| Affiliate program live: Kickbooster account, rates set, co-authors invited | Commercial |
|
||||||
|
| Workflow-of-the-Week showcase format + first few episodes planned | Product + WeOwn.FM |
|
||||||
|
|
||||||
|
**✅ Gate 1 — ready to rehearse.** Minimum Lovable Library seeded to its floor · site live with
|
||||||
|
working HTTPS · Kickstarter copy frozen · no-crypto scrub passed · pre-launch list on track to
|
||||||
|
500 · claims register current.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 2 — Launch rehearsal (the final week)
|
||||||
|
|
||||||
|
| Task | Owner |
|
||||||
|
|:--|:--|
|
||||||
|
| Full dry run: page live, access-key flow tested, all tracking + affiliate links, test email send | Exec co-author + Commercial |
|
||||||
|
| Day-1 playbook refreshed (hour-by-hour, 6am→9pm) | Exec co-author |
|
||||||
|
| Risk sweep: re-read the risk register against current reality | Product |
|
||||||
|
| Final pre-launch list push (target 500) | All |
|
||||||
|
| Final claims pass — no draft/open figure on any surface | Product |
|
||||||
|
|
||||||
|
**✅ Gate 2 — all green → LAUNCH 9/26/2026.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 3 — Campaign (~33 days)
|
||||||
|
|
||||||
|
The standard Kickstarter arc:
|
||||||
|
- **Day 1 (09-26):** live at 6am · launch email · all-team social · hourly backer monitoring ·
|
||||||
|
Day-1 goal ~30% funded + 100 backers.
|
||||||
|
- **Week 1:** reply to every comment within ~2h · early-bird urgency (cap 200) · "FUNDED in X
|
||||||
|
days" moment at $5K.
|
||||||
|
- **Week 2 (ads on):** LinkedIn A/B (3 creatives) → scale the winner · Meta retargeting · mid
|
||||||
|
emails.
|
||||||
|
- **Week 3 (mid-push):** anti-dead-zone tactics — signed/personalized tier, stretch-goal
|
||||||
|
announcements, guest posts, press, a live Workflow-of-the-Week episode.
|
||||||
|
- **Final 48h:** 24h / 3h / final-call emails.
|
||||||
|
- **Weekly ritual:** metrics vs. targets + a claims check; feed learnings into steering.
|
||||||
|
|
||||||
|
**✅ Gate 3 — campaign close.** ≥$5K minimum (mandatory) · report vs. $35K/$54K · affiliate share
|
||||||
|
vs. 20% target · begin the handoff of backers into the ecosystem funnel. *(Remember: hitting the
|
||||||
|
$5K floor proves people will pre-order — it does not prove renewal or contribution. Read the
|
||||||
|
product-health numbers with equal weight.)*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 4 — Fulfillment & the living book (post-campaign → 2027)
|
||||||
|
|
||||||
|
| # | Milestone | Target |
|
||||||
|:--|:--|:--|
|
|:--|:--|:--|
|
||||||
| KS page copy (SOT PL-3 sections) with refreshed dates | @THY + @CEO | W36 |
|
| 4.1 | Campaign final update + backer emails (funded / what's next) | +48h |
|
||||||
| **Copy freeze — commercial terms** (lifetime/royalties locked, D-1/D-2) | @GTM sign | **W37 (09-18)** |
|
| 4.2 | Manuscript complete (all verticals) | ~Day 60 |
|
||||||
| NFT-free scrub gate on ALL assets (translation table) | @THY (owner) | W37 |
|
| 4.3 | Professional editing | ~Day 75 |
|
||||||
| Hero video script → shoot → edit (2–3 min) | @LFG + co-authors | W37 |
|
| 4.4 | Layout + design | ~Day 85 |
|
||||||
| Cover design + 3D mockups (SOT PL-2) | @LFG | W37 |
|
| 4.5 | Final proof | ~Day 90 |
|
||||||
| Prelaunch email sequence (3) built + tagged | @CEO + @LDC | W37 |
|
| 4.6 | Print run (hardcopy upcharge) | ~Day 95 |
|
||||||
| LinkedIn organic prelaunch calendar (SOT W14–W15 pattern) | @LFG | W37 |
|
| 4.7 | Digital access keys issued (ledger + email; content format finalized) | ~Day 100 |
|
||||||
|
| 4.8 | Signed hardcopies shipped | ~Day 110 |
|
||||||
|
| 4.9 | All rewards fulfilled | ~Day 120 |
|
||||||
|
| 4.10 | **Subscription renewal system live** (year-2 $47/yr; lifetime honored per D-1) | Day 120+ |
|
||||||
|
| 4.11 | **Open contribution live** — with a real incentive (per D-2), *now* that the library exists | Day 120+ |
|
||||||
|
| 4.12 | Book Circles scale (pilot → several vertical cohorts); showcase becomes a regular series | 2027 Q1 |
|
||||||
|
| 4.13 | **Annual edition v1.1** (changelog; the "stays current" promise honored) | 2027 Q1 |
|
||||||
|
| 4.14 | Year-1 renewal cohort tracked against the 60% target | 2027 Q4 |
|
||||||
|
| 4.15 | Decide whether to build the standalone platform; funnel operational | 2027 Q2 |
|
||||||
|
|
||||||
### 1D · Community & education loop
|
> Note: the source plan's "NFT minting" step becomes, publicly, **"digital access key
|
||||||
| Task | Owner | Due |
|
> issuance."** Same fulfillment, no-crypto framing.
|
||||||
|:--|:--|:--|
|
|
||||||
| Book Circles playbook (1 page) + pilot cohort announced | ProductBuzz + bMAIT | W37 |
|
|
||||||
| Try-it feedback loop live in bMAIT AiBook channel (pinned template) | ProductBuzz | W37 |
|
|
||||||
| Affiliate program live: Kickbooster account, rates 15/10/10/5, invite co-authors | @GTM | W36 (SOT impl plan) |
|
|
||||||
| #FlowsBros episode format + 4-episode campaign slate (W39-W42) | ProductBuzz + WeOwn.FM | W37 |
|
|
||||||
| Two-tab (green/red) boundary UX spec for post-campaign member lane | PAT-Design S2 + PAT-Trust S5 | W38 (build = Ph4) |
|
|
||||||
|
|
||||||
**Gate G1 (09-19):** site production + SSL green · KS copy frozen · scrub gate passed · prelaunch list ≥ 300 (track → 500 by 09-25) · claims register current.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 2 — Launch rehearsal (W37→W38, 09-19 → 09-25)
|
## Budget (planning baseline — reforecast at Gate 1)
|
||||||
|
|
||||||
| Task | Owner | Due |
|
|
||||||
|:--|:--|:--|
|
|
||||||
| Full dry run: page live, keys workflow test, UTM links, affiliate links, email send test | @CEO + @GTM | 09-23 |
|
|
||||||
| Day-1 playbook (SOT W16 table, times 6:00→21:00) refreshed | @CEO | 09-23 |
|
|
||||||
| Risk sweep: re-read SOT risk matrix + PRD §7 against current state | ProductBuzz | 09-24 |
|
|
||||||
| Prelaunch list final push (target 500) | ALL | 09-25 |
|
|
||||||
| Final claims pass: no DRAFT/OPEN figure on any surface | ProductBuzz + SEAT-1 | 09-25 |
|
|
||||||
|
|
||||||
**Gate G2 (09-25):** all checks green → **LAUNCH 9/26/2026**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 3 — Campaign (9/26 → ~10/29, 33 days)
|
|
||||||
|
|
||||||
Reuse SOT W16–W20 skeleton with refreshed dates:
|
|
||||||
- **Day 1 (09-26):** KS live 6:00 AM · launch email · LinkedIn by all team · Signal · X · texts · hourly backer monitoring · Day-1 goal 30% + 100 backers (SOT).
|
|
||||||
- **Week 1:** reply-to-every-comment SLA (2h) · early bird urgency (200 cap) · "FUNDED in X days" at $5K.
|
|
||||||
- **Week 2 (ads on):** LinkedIn A/B (3 creatives, SOT B-01/B-02/B-03) → scale winner · Meta retargeting · mid emails.
|
|
||||||
- **Week 3 (mid push):** dead-zone tactics (SOT 7-item list): signed+personalized tier $68, stretch-goal announcements, guest posts, press outreach, **#FlowsBros episode** on WeOwn.FM.
|
|
||||||
- **Final 48h:** 24h/3h/final-emails per SOT W19–W20.
|
|
||||||
- **Weekly ritual (Ops):** metrics vs PRD §6 + claims check; feed learnings into steering; **hive-mind sync-back to 🎉💰📚🫶︱CCC︱MAITs** weekly (SEAT-1).
|
|
||||||
|
|
||||||
**Gate G3 (campaign close):** ≥$5K min (mandatory), report vs $35K/$54K; affiliate share ≥20% target; backers → AgencyPRO pipeline handoff begins.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 4 — Fulfillment & the living book (post-campaign, ~10/29 → 2027)
|
|
||||||
|
|
||||||
| # | Milestone | Target | Owner |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| 4.1 | Campaign final update + backer emails (funded/what's-next) | +48h | @CEO |
|
|
||||||
| 4.2 | Manuscript complete (all verticals) | Day 60 | @THY + @CEO + contributors |
|
|
||||||
| 4.3 | Professional editing | Day 75 | contractor |
|
|
||||||
| 4.4 | Layout + design | Day 85 | @LFG |
|
|
||||||
| 4.5 | Final proof | Day 90 | @THY |
|
|
||||||
| 4.6 | Digital access keys issued (ledger CSV + email; OKF bundle final) | Day 100 | @GTM + SEAT-2 |
|
|
||||||
| 4.7 | Print run (hardcopy upcharge) | Day 95 | @GTM |
|
|
||||||
| 4.8 | Signed hardcopies shipped | Day 110 | @THY |
|
|
||||||
| 4.9 | All rewards fulfilled | Day 120 | ALL |
|
|
||||||
| 4.10 | **Subscription renewal system live** ($47/yr year-2, lifetime tier honored per D-1) | Day 120+ | @GTM + @LDC |
|
|
||||||
| 4.11 | Workflow library open for submissions (affiliate income; royalty pool only if D-2 signed) | Day 120+ | Curators |
|
|
||||||
| 4.12 | Book Circles scale: pilot → 6 vertical cohorts; #FlowsBros regular season | 2027 Q1 | ProductBuzz + bMAIT |
|
|
||||||
| 4.13 | **Annual edition v1.1** (changelog; "updated as AI evolves" promise honored) | 2027 Q1 | SEAT-2 + curators |
|
|
||||||
| 4.14 | Year-1 renewal cohort tracked (PRD §6 target 60%) | 2027-10 | ProductBuzz |
|
|
||||||
| 4.15 | eBookNFT platform decision (build/shelve) + AgencyPRO pipeline operational | 2027 Q2 | @GTM |
|
|
||||||
|
|
||||||
> Fulfillment timeline mirrors SOT §Post-Campaign ("NFT minting" row becomes **"digital access key issuance"** in the public plan — NFT-free framing).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Budget (SOT baseline — reforecast at G1)
|
|
||||||
|
|
||||||
| Item | Cost |
|
| Item | Cost |
|
||||||
|:--|:--|
|
|:--|:--|
|
||||||
| LinkedIn Ads (campaign W2–W4) | $1,300 |
|
| LinkedIn ads (campaign wks 2–4) | $1,300 |
|
||||||
| Meta Ads | $700 |
|
| Meta ads | $700 |
|
||||||
| Google Ads (W3–W4) | $280 |
|
| Google ads | $280 |
|
||||||
| Cover design / video edit | $0–500 (@LFG) |
|
| Cover / video edit | $0–500 |
|
||||||
| eBookNFT domains | $216 (already spent) |
|
| Kickstarter fees (~8% on $35K) | ~$2,800 |
|
||||||
| Kickstarter fees (5% + 3% on $35K) | ~$2,800 |
|
| Kickbooster (~10% on referred pledges) | ~$700 |
|
||||||
| Kickbooster (10% on referred) | ~$700 |
|
| Domain renewal | ~$15–20 |
|
||||||
| **Pre-revenue total** | **~$5,996–$6,496** |
|
| **Pre-revenue total** | **~$6,000** |
|
||||||
| Projected revenue | $35,000–$54,000 |
|
| Projected revenue | $35,000–$54,000 |
|
||||||
| Projected net | $28,500–$48,000 |
|
| Projected net | ~$28,500–$48,000 |
|
||||||
|
|
||||||
> Add: aibook.fun renewal (~$15–20/yr — confirm at D-3). Reforecast at G1 (> W35).
|
---
|
||||||
|
|
||||||
## Workstream ownership (RACI-lite)
|
## Who owns what
|
||||||
|
|
||||||
|
Plain roles, with the internal handle in parentheses for traceability.
|
||||||
|
|
||||||
| Workstream | Lead | Support |
|
| Workstream | Lead | Support |
|
||||||
|:--|:--|:--|
|
|:--|:--|:--|
|
||||||
| Commercial + R-011 gates (D-1/D-2/D-3, pricing) | @GTM | @THY |
|
| Commercial + pricing sign-offs (D-1/D-2, domain) | Commercial lead (@GTM) | Campaign lead (@THY) |
|
||||||
| Campaign page + account + launch ops | @THY | @CEO, @LFG |
|
| Campaign page, account, launch ops | Campaign lead (@THY) | Exec co-author (@CEO), Creative (@LFG) |
|
||||||
| Content & curation | @THY + @CEO | contributors, ProductBuzz (template), SEAT-2 (kits) |
|
| Content & curation (incl. the Minimum Lovable Library) | Lead co-authors (@THY + @CEO) | Contributors, Product (template), dev/QA (kits) |
|
||||||
| Site/domain/affiliate tech | @GTM | @LDC (CRM), Laguna (dev, staged POC) |
|
| Site / domain / affiliate tech | Site admin (@GTM) | Email lead (@LDC), dev (staged POC) |
|
||||||
| Email/CRM | @LDC | @CEO (copy) |
|
| Email / CRM | Email lead (@LDC) | Exec co-author (copy) |
|
||||||
| Creative (cover/video/social) | @LFG | ALL |
|
| Creative (cover / video / social) | Creative lead (@LFG) | All |
|
||||||
| Social education (Circles, #FlowsBros, showcase) | ProductBuzz [PAT] | bMAIT AiBook channel, PAT-Design S2 |
|
| Community & learning loop (Circles, showcase) | Product (@pat) | Community channel, design support |
|
||||||
| **Spec/PRD/metrics/claims governance** | **ProductBuzz [PAT]** | DeepSeek SEAT-1 (governance review), @pat (owner) |
|
| **Spec / PRD / metrics / claims governance** | **Product (@pat)** | Format & governance support |
|
||||||
| OKF conformance + CCC-ID discipline + sync-back | 🧩 SEAT-1 DeepSeek (PAT) | FedArchBuzz (origin) |
|
|
||||||
| Trust floor (ZDR stance, NFT-free gate, two-tab UX) | PAT-Trust S5 | PAT-QA S4 co-verifies |
|
|
||||||
|
|
||||||
## What blocks what (dependencies in one line)
|
|
||||||
D-3 domain (W35) → site push (W36) → prelaunch list + affiliate live · D-1/D-2 terms (W35) → copy freeze (W37) → KS submit · sample chapters (W36) → hero video + backer preview (W37) → launch (09-26).
|
|
||||||
|
|
||||||
## Review loop
|
|
||||||
Living artifact. Weekly (Fridays, post-metrics): ProductBuzz updates it + SSOT (`RESEARCH/WEOWN_CHAT_SSOT.md` → add PRJ-031 section) with actual dates/owners; @pat reviews; deviations published to this thread. SEAT-1 keeps CCC-ID/OKF/claims conformance current.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
*CONSOLIDATED v1.0-DRAFT — single canonical version (v0.3 trunk + F1 + S4). Superseded drafts preserved at `PLANS/AIBOOK/` (v0.1 trio) pending @pat archive call. #LLMmodel: DeepSeek V4 Flash 0731.*
|
|
||||||
|
## Dependencies in one line
|
||||||
|
Renew domain (now) → push site → pre-launch list + affiliate live · Decide pricing (this week) →
|
||||||
|
freeze copy → submit to Kickstarter · Seed the library + sample chapters → hero video + backer
|
||||||
|
preview → launch 9/26.
|
||||||
|
|
||||||
|
## Review loop
|
||||||
|
Living artifact. Each week (post-metrics): Product updates this plan with actual dates and
|
||||||
|
owners; the team reviews; deviations are noted here. Keep the claims register and content-format
|
||||||
|
conformance current as you go.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Appendix — What changed in this revision
|
||||||
|
|
||||||
|
A plain-language rewrite with the product review folded in:
|
||||||
|
|
||||||
|
1. **Re-sorted around the core loop and the content risk.** The old "Phase 0 decisions" now open
|
||||||
|
with renewing the domain and seeding the **Minimum Lovable Library** — the two things most
|
||||||
|
likely to sink the launch — instead of a flat list of governance gates.
|
||||||
|
2. **Domain is a same-day chore, not a gated decision** (task 0.1).
|
||||||
|
3. **Added the Minimum Lovable Library as an explicit Phase-1 gate** — a beautiful campaign
|
||||||
|
around an empty library fails.
|
||||||
|
4. **Landing page is now a hook A/B test**, not just an email-capture gate — learn which message
|
||||||
|
converts before spending ad budget.
|
||||||
|
5. **Paid contribution (D-2) is on the critical path**, and "open contribution" in Phase 4 is
|
||||||
|
explicitly tied to having a real incentive.
|
||||||
|
6. **Product-health metrics get equal weight** at campaign close — "funded" isn't "validated."
|
||||||
|
7. **Governance ceremony trimmed** to the two gates that matter (no-crypto scrub, truth in
|
||||||
|
claims).
|
||||||
|
8. **Jargon translated out** — internal seat/role codes and merge-history removed; owners shown
|
||||||
|
as plain roles with handles kept for traceability.
|
||||||
|
|||||||
+377
-191
@@ -1,206 +1,392 @@
|
|||||||
---
|
---
|
||||||
title: "AIBook.fun — Product Requirements Document (CONSOLIDATED v1.0-DRAFT)"
|
title: "AIBook.fun — Product Requirements Document"
|
||||||
type: prd
|
type: prd
|
||||||
tags: [aibook, weown-ai, prj-031, prd, kickstarter, responsible-agentic-ai, social-education, okf, requirements]
|
|
||||||
status: draft
|
status: draft
|
||||||
created: 2026-08-22
|
owner: Patrick (Product)
|
||||||
source-of-truth: "https://github.com/CCCbotNet/fedarch/blob/main/_PROJECTS_/PRJ-031_WeOwnAI-Book.md"
|
launch-target: 2026-09-26
|
||||||
generated:
|
last-updated: 2026-08-26
|
||||||
by: "AI:CCC-MAIT-S004-PAT-DeepSeek (SEAT-1 governance/OKF) + ProductBuzz [PAT] (Product Ops) — merged v0.2, amended v0.3"
|
|
||||||
at: "2026-08-22T15:36:00Z"
|
|
||||||
verified:
|
|
||||||
- by: "curl github.com/CCCbotNet/fedarch (PRJ-031 SOT v3.2.1.3)"
|
|
||||||
at: "2026-08-22"
|
|
||||||
- by: "buzz channels list (relay) — bMAIT AiBook.fun channel desc"
|
|
||||||
at: "2026-08-22"
|
|
||||||
sources:
|
|
||||||
- id: sot
|
|
||||||
resource: "https://github.com/CCCbotNet/fedarch/blob/main/_PROJECTS_/PRJ-031_WeOwnAI-Book.md"
|
|
||||||
note: "PRJ-031 v3.2.1.3 — tiers, goals, affiliate %, team, timing"
|
|
||||||
- id: spec
|
|
||||||
resource: "PLANS/AIBOOK_SPEC.md"
|
|
||||||
note: "Companion spec (merged v0.3) — pillars, scope, open decisions D-1..D-7"
|
|
||||||
- id: pb-prd
|
|
||||||
resource: "PLANS/AIBOOK/AIBOOK_PRD.md (ProductBuzz draft v0.1)"
|
|
||||||
note: "Parallel draft merged into this canonical — goals, personas, FR-1..FR-8, metrics, risks"
|
|
||||||
- id: pat-manual
|
|
||||||
resource: "AGENTS.md (PAT squad) + Product-Op Manual refs"
|
|
||||||
note: "4 actors (§3-4) · 3 floors · flyer rule · two-tab UX · ZDR stance · §8 claims register · §6.3 isolation · launch gates"
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 📚 AIBook.fun — Product Requirements Document
|
# 📚 AIBook.fun — Product Requirements Document
|
||||||
**CONSOLIDATED v1.0-DRAFT** · 2026-08-22 · **ProductBuzz [PAT]** (Product Ops) + **CCC-MAIT-S004-PAT-DeepSeek** (SEAT-1 governance/OKF) · Owner: @pat · Commercial sign-offs: @GTM (R-011) · Companion: `AIBOOK_SPEC.md`, `AIBOOK_IMPLEMENTATION_PLAN.md`, PRJ-031 SOT v3.2.1.3 · **⛔ DRAFT — not a live claim. No R-011.** (v1.0-final naming reserved for R-011'd freeze.)
|
|
||||||
> v1.0-DRAFT consolidation (2026-08-22T15:36:00Z, SEAT-1 after ProductBuzz self-review 15:22Z): trunk = v0.3. Folded R2 (FR-4.7 affiliate payout milestone ≤ W-2 of campaign end — restored from ProductBuzz v0.1 FR-5.3) · R3 (FR-3.4 WeOwn Chat ledger dogfooding note, CSV stays floor) · F1 (G0–G3 kept; no G4) · F2 (15/10/10/5 everywhere) + SEAT-1 S2 (FR-1.1 Risk #9 → Risk #4, refreshed register) · S3 (verified-block parity). v0.3 amendment history below:
|
|
||||||
|
|
||||||
Legend: 🔴 must-have for 9/26 launch · 🟡 should-have (launch window) · 🟢 post-campaign.
|
> **Status: DRAFT.** Dollar figures, dates past today, and commercial terms in this
|
||||||
|
> document are planning assumptions, not commitments. Nothing here should be quoted
|
||||||
|
> to backers or the public until the specific line is signed off (see
|
||||||
|
> [§10 Open decisions](#10-open-decisions)). This revision rewrites the prior draft
|
||||||
|
> for plain language and folds in a product review — see
|
||||||
|
> [Appendix D](#appendix-d--what-changed-in-this-revision) for what moved and why.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. Background & problem
|
## TL;DR
|
||||||
WeOwnNet's Book pillar (PRJ-031, P0) lacked a product definition: what the Book *is*, whom it serves, how it educates, how it monetizes. SOT v3.2.1.3 (Mar 2026, APPROVED) carries the approved commercial skeleton and full campaign plan whose dates are superseded; the **9/26 relaunch** (relay-CONFIRMED) needs the product layer itself. This PRD keeps the SOT's approved commercial structure and adds content model, social education design, and requirements.
|
|
||||||
|
|
||||||
**Problem statement:** Professionals drowning in AI hype have no shared, practice-grounded, community-owned place to learn Responsible Agentic AI — and WeOwnNet has no common literacy base to onboard its own humans and agents.
|
AIBook.fun is a **crowd-written, practical field guide to using AI agents responsibly at
|
||||||
|
work** — sold as an annual subscription, launched on Kickstarter on **September 26, 2026**.
|
||||||
|
Its unit of content is not a chapter but a **workflow you can actually run**: a documented,
|
||||||
|
tested recipe for getting a real job done with AI, complete with the guardrails.
|
||||||
|
|
||||||
## 2. Goals & non-goals
|
The one thing that must work on day one: a reader opens a workflow, **runs it in ~15 minutes,
|
||||||
**Goals**
|
and shares the result** with other readers. Everything else — the contributor economy, the
|
||||||
- **G-1** Stand up aibook.fun + Kickstarter live **9/26/2026**, funding ≥ $5K min / $35K target (DRAFT planning figures).
|
cohort program, the agent-onboarding use case — is a layer we build *on top of* that loop
|
||||||
- **G-2** Define the Book as crowd-created, subscription, workflow-based artifact (Spec §4).
|
after we've proven the loop works.
|
||||||
- **G-3** Launch with a demonstrable social-education loop (Read → Do → Share; Book Circles; Workflow-of-the-Week).
|
|
||||||
- **G-4** Every external claim claims-governed: nothing DRAFT/OPEN presented as final (§8 register).
|
|
||||||
- **G-5** Every backer enters the ecosystem funnel (AgencyPRO/PRJ-002) — backer→webinar→demo pipeline.
|
|
||||||
|
|
||||||
**Non-goals (explicit)**
|
- **Who it's for:** busy professionals (real-estate, financial advisors, fractional
|
||||||
- No general-purpose AI chatbot or tool; this is a book/learning product.
|
executives, higher-ed, community leaders, technologists) who want to apply an AI workflow
|
||||||
- No regulated professional advice issued on the book's own authority.
|
*this week*, not read AI theory.
|
||||||
- No NFT/token/Web3/blockchain/crypto language on any kickstarter-facing surface (hard constraint, KS policy).
|
- **The ask:** fund the first edition on Kickstarter — **$5K minimum / $35K target**.
|
||||||
- No building the eBookNFT platform yet (4 domains held; IDEA per SOT).
|
- **The bet:** if the "run a workflow and share it" loop is genuinely useful, the same
|
||||||
- No private multi-tenant infrastructure of any kind (not applicable; boundary preserved).
|
people who read become the people who contribute — and the book stays alive.
|
||||||
|
|
||||||
## 3. Personas & actors (JTBD)
|
|
||||||
| Persona | Core job | Success metric |
|
|
||||||
|:--|:--|:--|
|
|
||||||
| Reader/subscriber | Apply a documented RAAI workflow at work this week | Activation: reads 1 chapter + completes 1 Try-it within 14 days of backing |
|
|
||||||
| Contributor | Publish a documented workflow, earn income/reputation | 1 accepted workflow within 90 days of joining |
|
|
||||||
| Curator/co-author | Keep the quality bar | Curation SLA ≤ 10 working days per submission |
|
|
||||||
| Affiliate | Refer backers, earn commission | First payout ≤ 1 cycle after referred payment (SOT/ops guardrail; dated milestone FR-4.7) |
|
|
||||||
| Ecosystem prospect | Learn + take a stake | Backer → community join rate ≥ 40% of backers (DRAFT target) |
|
|
||||||
| Agent (WeOwnNet-native) | Onboard via the Book corpus | Gate-0 completion = part of identity tier |
|
|
||||||
|
|
||||||
## 4. Epics & functional requirements
|
|
||||||
|
|
||||||
### EPIC 1 — Campaign system 🔴 (launch 9/26)
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-1.1 | KS page per SOT sections: hero video (2–3 min, co-authors), problem, book, co-authors, 6 tiers ($10→$4,888), retreats, 5 stretch goals, FAQ ≥10, risks | 🔴 | Page passes **NFT-free scrub** (translation table; zero token/Web3/crypto) + KS category rules; final team review before submit (Risk #4 gate — PRD §7 refreshed register) |
|
|
||||||
| FR-1.2 | Pre-launch engine: landing live on aibook.fun, email capture, 3-email sequence | 🔴 | **500+ emails before Day 1**; FluentCRM tags (`book-prelaunch`) via @LDC |
|
|
||||||
| FR-1.3 | Affiliate live via Kickbooster.me (co-author 15% / community 10% / podcast 10% / press 5%; 30-day cookie, last-click) | 🔴 | Public signup page; widget on landing; co-authors invited Day 1 |
|
|
||||||
| FR-1.4 | Launch playbook: Day-1 schedule, weekly cadence, dead-zone tactics, final-48h push (SOT) | 🔴 | Playbook reviewed @THY/@CEO pre-launch |
|
|
||||||
| FR-1.5 | Campaign analytics: raised, backers, avg pledge, email list, CPC, affiliate share | 🔴 | Daily pulse vs SOT targets (Day-1 30% / 100 backers) |
|
|
||||||
| FR-1.6 | Post-campaign: final update, backer comms, funds receipt (~14d), fulfillment announcement | 🟡 | Sequence staged pre-launch |
|
|
||||||
|
|
||||||
### EPIC 2 — Content system 🔴
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-2.1 | **Workflow Recipe schema** (Spec §4.1): problem/JTBD · actors · method with **visible tool returns** · safeguards · evidence · try-it · costs · author metadata | 🔴 | Schema + 3 filled examples pass QA + @pat review |
|
|
||||||
| FR-2.2 | Chapter structure per vertical: RE · FA · Fractional C-Suite · Higher Ed · Communities · Tech/RAAI (SOT co-authors) | 🔴 | Outline + chapter owners confirmed |
|
|
||||||
| FR-2.3 | Editorial pipeline: submission → co-author review → accept/revise → publish → updates tracked | 🔴 | Pipeline doc; first community submission processed end-to-end |
|
|
||||||
| FR-2.4 | **2 sample chapters pre-launch** (backer preview) | 🔴 | Written + edited + verified (SOT PL-2) |
|
|
||||||
| FR-2.5 | **3 learn-by-running kits** (clone-and-run; verified by actually running) | 🔴 | Kits run green before campaign |
|
|
||||||
| FR-2.6 | Book = **OKF v0.2 knowledge bundle**; versioned annual editions; changelog per workflow | 🟡 | Bundle validates; renders to markdown + web |
|
|
||||||
|
|
||||||
### EPIC 3 — Subscription & access 🔴/🟢
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-3.1 | Digital access key post-campaign (SOT FAQ wording = approved copy base): key → PDF + web reader, 12 months, renew annually | 🟢 | Process + templates staged pre-launch |
|
|
||||||
| FR-3.2 | Anchor tier $47/yr (DRAFT — @GTM relaunch re-sign) + hardcopy upcharge at cost | 🔴 | KS pricing row signed |
|
|
||||||
| FR-3.3 | Lifetime-access tier decision (D-1) before KS copy freeze (W37). If approved: distinct SKU, price, renewals-off flag | 🟡 | Decision recorded; SKU spec |
|
|
||||||
| FR-3.4 | Fulfillment ledger: backer ↔ key/upcharge tracked (CSV min; may reuse WeOwn Chat's ledger pattern — dogfooding, only if zero extra cost; CSV stays the floor) (R3) | 🟢 | Ledger template |
|
|
||||||
|
|
||||||
### EPIC 4 — Contributor economy 🔴/🟡
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-4.1 | Contribution intake (Recipe template + submit channel) | 🔴 | Public intake live at campaign |
|
|
||||||
| FR-4.2 | Curation workflow w/ verification checklist (tool returns only — "REAL" is not proof, #203) | 🔴 | First 5 community Recipes processed w/ named curators |
|
|
||||||
| FR-4.3 | Contributor credit + attribution (byline per Recipe; chapter credit; "Founding" page for VIP+) | 🔴 | Credit model published |
|
|
||||||
| FR-4.4 | Affiliate onboarding (Kickbooster signup, links, leaderboard) | 🔴 | 15/10/10/5% live; weekly leaderboard to @CEO |
|
|
||||||
| FR-4.5 | Royalty mechanics — **ONLY if @GTM signs D-2** | 🟡 blocked | Ledger spec + payout cadence; never assumed |
|
|
||||||
| FR-4.6 | Claims-register hygiene: every income claim logged safe-to-say (§8) before any outreach | 🔴 | Register entries for lifetime/royalties/$47/affiliate/9/26 |
|
|
||||||
| FR-4.7 | **Affiliate payout milestone**: payouts processed ≤ W-2 of campaign end (restored from ProductBuzz v0.1 FR-5.3 — R2) | 🟡 | Dated milestone in Ops calendar; maps to time-to-first-payout (Manual) |
|
|
||||||
|
|
||||||
### EPIC 5 — Community & social education 🔴/🟡
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-5.1 | Try-it feedback loop: readers post workflow results (bMAIT AiBook channel LIVE; Circle channels to create) | 🔴 | Loop documented + live |
|
|
||||||
| FR-5.2 | **Book Circles**: 6-week cohort format; facilitator playbook; 1 pilot Circle within first campaign fortnight | 🟡 | Circle kit drafted; pilot = first 6 opt-in backers |
|
|
||||||
| FR-5.3 | **Workflow-of-the-Week** showcase on aibook.fun + #FlowsBros/WeOwn.FM + email | 🟡 | Showcase cadence live W39+ |
|
|
||||||
| FR-5.4 | **#FlowsBros standing series**: weekly live Recipe dissection | 🟡 | Episode format doc; 4 episodes across campaign |
|
|
||||||
| FR-5.5 | Contributor onboarding doc (submit + affiliate signup) | 🔴 | Doc published |
|
|
||||||
| FR-5.6 | Ownership markers: progress framed read → own → contribute → govern | 🟢 | Marker copy; identity tier tie-in |
|
|
||||||
| FR-5.7 | Vertical learning paths (6 curated sets) | 🟢 | Structure published at launch |
|
|
||||||
|
|
||||||
### EPIC 6 — Site & domain 🔴
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-6.1 | aibook.fun production landing (Framer POC `217fbfc` → review → push by @GTM:ADMIN) | 🔴 | Hero, book, sample workflow, tiers, affiliate, CTA, FAQ |
|
|
||||||
| FR-6.2 | SSL (existing cert fails — verified 08-21); keep GA continuity (UA-59154711-35) | 🔴 | HTTPS green 2 wks pre-launch |
|
|
||||||
| FR-6.3 | **Auto-renew confirmation (exp 09-05) BEFORE any push — D-3, @GTM, W35** | 🔴 | Resolved W35; infra freeze 09-12 |
|
|
||||||
| FR-6.4 | Sample-chapter delivery pre-launch (email-gated PDF via FluentCRM `book-prelaunch`) | 🔴 | Flow tested |
|
|
||||||
|
|
||||||
### EPIC 7 — Email & CRM 🔴
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-7.1 | FluentCRM tags: `book-prelaunch`, `book-backed`, `book-subscriber`, `affiliate` (@LDC, INT-P05) | 🔴 | Tags live |
|
|
||||||
| FR-7.2 | 8-email sequence per SOT (3 pre, 1 launch, 2 mid, 2 final) — dates → 9/26 timeline; NFT-free scrubbed | 🔴 | Sequence staged |
|
|
||||||
| FR-7.3 | Post-campaign sequence (funded, what's-next, fulfillment, renewal nudge) | 🟢 | Staged |
|
|
||||||
|
|
||||||
### EPIC 8 — Ops, claims & metrics 🔴
|
|
||||||
| ID | Requirement | Pri | Acceptance |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| FR-8.1 | Claims register: lifetime/royalties/$47-affiliate/9/26 entries + promotion rules (§8) | 🔴 | ProductBuzz opens; DRI sign-offs @GTM |
|
|
||||||
| FR-8.2 | Metric events: `backer_signed`, `prelaunch_signup`, `affiliate_referral`, `sample_chapter_downloaded`, `workflow_submitted`, `workflow_published` — **instrument events, never content (§6.3)** | 🔴 | Events live |
|
|
||||||
| FR-8.3 | Weekly metrics review ritual → campaign steering | 🔴 | Ritual scheduled |
|
|
||||||
|
|
||||||
## 5. Non-functional requirements
|
|
||||||
| ID | Requirement | Acceptance |
|
|
||||||
|:--|:--|:--|
|
|
||||||
| NFR-1 | **Truth in status:** zero DRAFT/OPEN/NOT-LIVE claims in external assets | Hard gate before publish |
|
|
||||||
| NFR-2 | **KS compliance:** zero NFT/Web3/crypto terms on campaign surfaces | Translation table + scrub gate |
|
|
||||||
| NFR-3 | **Privacy:** mailing-list per FluentCRM norms; no confidential client data in book/campaign (instrument events, never content) | Review |
|
|
||||||
| NFR-4 | **Availability:** landing up through campaign; email on schedule; affiliate tracking live Day 1 (30-day cookie — every hour matters) | Monitoring |
|
|
||||||
| NFR-5 | **Content quality:** every workflow passes Recipe template + ≥1 co-author review (anti-hallucination guarantee) | Editorial checklist |
|
|
||||||
| NFR-6 | **Continuity:** aibook.fun must not lapse 09-05 (D-3); DNS/SSL before 09-12 (infra freeze) | D-3 resolved |
|
|
||||||
| NFR-7 | **OKF conformance:** bundle validates per OKF v0.2 (frontmatter, `type`, `sources`, trust tiers) | Validation pass |
|
|
||||||
| NFR-8 | **Trust posture:** ZDR claim stance ("documents stay on your instance" — never "ZDR is active"); 3-floor discipline per manual §5.3/§7.1 (F1 confidentiality · F2 cross-customer · F3 off-domain — DRI-ruled 08-22, all FLOOR 0); flyer rule + two-tab boundary UX | S5-Trust review |
|
|
||||||
| NFR-9 | **Accessibility:** reader + landing mobile-readable, WCAG AA target | Design review (S2) |
|
|
||||||
| NFR-10 | **Cost discipline:** launch burn ≤ SOT budget (~$6K pre-revenue); model spend tracked (W36 eval context) | Monthly review |
|
|
||||||
|
|
||||||
## 6. Success metrics (SOT baseline + new Ops metrics)
|
|
||||||
| Metric | Min | Target | Stretch | Owner |
|
|
||||||
|:--|:--|:--|:--|:--|
|
|
||||||
| Total raised | $5,000 | $35,000 | $54,000+ | @CEO dashboard |
|
|
||||||
| Total backers | 300 | 700 | 1,000+ | @CEO |
|
|
||||||
| Prelaunch email list | 500 | 1,000 | 2,000+ | @LDC |
|
|
||||||
| Funded in days | 7 | 3 | 1 | team |
|
|
||||||
| Ad ROAS | 3:1 | 5:1 | 10:1 | @CEO |
|
|
||||||
| → AgencyPRO pipeline | 50 | 150 | 300+ | @CEO |
|
|
||||||
| Affiliate % of total | — | ≥20% | 35% | @GTM |
|
|
||||||
| **Backer→activation** (ch.1 + Try-it in 14d) | 20% | 35% | 50% | ProductBuzz (NEW) |
|
|
||||||
| **Workflow submissions** (campaign window) | 10 | 25 | 50 | ProductBuzz (NEW) |
|
|
||||||
| **Curation SLA ≤10 working days** | 80% | 95% | 100% | Curators (NEW) |
|
|
||||||
| Renewal rate (year-1 cohort) | — | 60% | 75% | @GTM (NEW, post-campaign) |
|
|
||||||
|
|
||||||
DRAFT targets — ratify at W35 metrics review before quoting anywhere.
|
|
||||||
|
|
||||||
## 7. Dependencies & risk register
|
|
||||||
### Top dependencies
|
|
||||||
1. **D-1/D-2** (lifetime, royalties) → KS copy freeze (W37, 09-18). **Blocking.** @GTM R-011.
|
|
||||||
2. **D-3** (domain auto-renew) → production push (W36). **Blocking.** @GTM registrar.
|
|
||||||
3. @THY KS account + identity verification (SOT PL-1; W35).
|
|
||||||
4. Co-author confirmations (D-6: Piper, Kerner).
|
|
||||||
5. Sample chapters (FR-2.4): @THY + @CEO W36.
|
|
||||||
6. Hero video (@LFG ~250h committed, SOT): script W35, shoot W36, edit W37.
|
|
||||||
|
|
||||||
### Risks (SOT §Risk Matrix refreshed)
|
|
||||||
| # | Risk | P | I | Mitigation | New? |
|
|
||||||
|:--|:--|:--|:--|:--|:--|
|
|
||||||
| 1 | < $5K minimum | Low | High | Conservative goal + prelaunch ≥500 | — |
|
|
||||||
| 2 | Co-author manuscripts delayed | Med | High | Sample chapters pre-campaign; outline locked | — |
|
|
||||||
| 3 | Low Day-1 momentum | Med | High | 500 emails + personal outreach + early bird | — |
|
|
||||||
| 4 | KS rejection (NFT language) | Low | Crit | Translation table + scrub gate + final review | — |
|
|
||||||
| 5 | **Domain lapse 09-05** | Med | Crit | D-3 confirm W35; 09-12 infra freeze | NEW |
|
|
||||||
| 6 | **Commercial claims drift (lifetime/royalties)** | Med | High | Claims register + promotion rule | NEW |
|
|
||||||
| 7 | **Unratified targets quoted externally** | Med | Med | Metrics labeled DRAFT until W35 sign | NEW |
|
|
||||||
| 8 | Fulfillment delays | Med | Med | Print-on-demand; key issuance CSV | — |
|
|
||||||
| 9 | Early-bird cannibalization of $47 tier | Med | Med | Cap 200; laddered tiers | NEW |
|
|
||||||
| 10 | Post-campaign renewal work unstaffed | Med | High | Renewal owner assigned W35 (@GTM + @LDC) | NEW |
|
|
||||||
| 11 | **Content pipeline thin (RAAI workflows need practitioners)** | Med | High | Community intake live at campaign; circles recruit; co-authors recruit | NEW |
|
|
||||||
| 12 | Campaign-date confusion (SOT vintage vs 9/26) | Low | Med | All assets use 9/26; SOT note in every doc | NEW |
|
|
||||||
|
|
||||||
## 8. Open questions (tracked in Spec §8, D-1..D-7)
|
|
||||||
D-1 lifetime · D-2 royalties · D-3 domain auto-renew · D-4 SOT refresh → v3.3.0 · D-5 POC push · D-6 co-author confirmations · D-7 Product-Op Manual refs. **All are @GTM/@pat lanes; D-1/D-2/D-3 on the critical path to W37 copy freeze.**
|
|
||||||
|
|
||||||
## 9. Approval & next step
|
|
||||||
→ @pat: review Spec + PRD → @GTM: R-011 on D-1/D-2/D-3 (+ D-4 SOT refresh) — the only blockers to v1.0. Once signed: freeze v1.0, hand to implementation plan, open claims-register entries, brief KS copy writers.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
*CONSOLIDATED v1.0-DRAFT — single canonical version (v0.3 trunk + R2 + R3 + F1 + F2 + S2 + S3). Superseded drafts preserved at `PLANS/AIBOOK/` (v0.1 trio) pending @pat archive call. #LLMmodel: DeepSeek V4 Flash 0731.*
|
|
||||||
|
## 1. The core loop and the one metric
|
||||||
|
|
||||||
|
Everything in this product either serves this loop or waits its turn:
|
||||||
|
|
||||||
|
```
|
||||||
|
READ a workflow → RUN the Try-it (~15 min) → SHARE the result
|
||||||
|
▲ │
|
||||||
|
└────────── see others' results, come back ──────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
**North-Star metric — Activation:** *a backer reads at least one workflow and completes at
|
||||||
|
least one Try-it within 14 days of getting access.*
|
||||||
|
|
||||||
|
If activation is healthy, the product is alive and the rest (renewal, contribution,
|
||||||
|
community) becomes possible. If activation is weak, no amount of funding, community
|
||||||
|
scaffolding, or governance saves it. We report activation **first**, above the fundraising
|
||||||
|
numbers, from the first day backers have access.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Background & problem
|
||||||
|
|
||||||
|
**The problem:** Professionals are drowning in AI hype and have nowhere practical, trustworthy,
|
||||||
|
and current to learn how to *actually use* AI agents in their real work — safely. Books go
|
||||||
|
stale in months. Courses are generic. Twitter threads aren't accountable. And nobody's guide
|
||||||
|
is written by, and kept current by, the practitioners doing the work.
|
||||||
|
|
||||||
|
**Why us, why now:** WeOwnNet needs a shared, practical AI-literacy base for the people (and,
|
||||||
|
later, the AI agents) it works with. A living book of *tested workflows* — contributed by
|
||||||
|
practitioners, curated for quality — is that base. The Kickstarter both funds the first
|
||||||
|
edition and assembles the founding community.
|
||||||
|
|
||||||
|
**What makes it different (the claim we have to earn):** every workflow is *grounded in
|
||||||
|
practice* — it shows the real steps and the real tool output, not a plausible-sounding
|
||||||
|
description. "It works" is not a claim we make; it's something the reader can verify by
|
||||||
|
running the Try-it themselves.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. What the product is — and what it is *not yet*
|
||||||
|
|
||||||
|
The prior draft treated five different products as one launch. They are not one product. Here
|
||||||
|
is the honest layering:
|
||||||
|
|
||||||
|
| Layer | What it is | When |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **Core (v1 — launch)** | A subscription book of tested AI workflows + the read→run→share loop | **9/26 launch** |
|
||||||
|
| Layer 2 (post-launch) | Community contribution — readers submit their own workflows | After core loop proven |
|
||||||
|
| Layer 3 (post-launch) | Cohort learning — "Book Circles," Workflow-of-the-Week showcase | After first content proves demand |
|
||||||
|
| Layer 4 (later) | Agent onboarding — the same content, read by AI agents to onboard | Deliberate future use of the format |
|
||||||
|
| Layer 5 (later) | Funnel into the wider WeOwnNet ecosystem (AgencyPRO) | Ongoing, low-effort |
|
||||||
|
|
||||||
|
**This matters because** each layer has a different success metric and a different failure
|
||||||
|
mode. Trying to build all five for 9/26 is how a small team ships none of them well. v1 is the
|
||||||
|
**core loop, done excellently.** The other layers are designed-for but not built-for launch.
|
||||||
|
|
||||||
|
### Explicit non-goals
|
||||||
|
- Not a general-purpose AI chatbot or tool. It's a learning product.
|
||||||
|
- Not regulated professional advice on the book's own authority.
|
||||||
|
- No crypto / token / Web3 / NFT language on any public or Kickstarter-facing surface.
|
||||||
|
*(This is a hard Kickstarter-policy constraint — see [Appendix A](#appendix-a--kickstarter-compliance-the-nft-scrub).)*
|
||||||
|
- Not building a separate "eBookNFT platform" — that's a future idea; this book is the first product.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Who it's for
|
||||||
|
|
||||||
|
Personas are written as **jobs-to-be-done**. Note the buyer's job is *utility* ("help me do a
|
||||||
|
thing this week"), which is how we should lead the pitch — ownership and community come later,
|
||||||
|
as reasons to *stay*, not reasons to *buy*.
|
||||||
|
|
||||||
|
| Persona | The job they're hiring us for | We've succeeded when… |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **Reader / subscriber** | "Apply one documented AI workflow in my real job this week." | They complete a Try-it within 14 days of getting access. |
|
||||||
|
| **Contributor** *(Layer 2)* | "Publish a workflow I've proven, earn recognition (and, if we build it, income)." | Their first workflow is accepted within 90 days. |
|
||||||
|
| **Curator / co-author** | "Keep the quality bar high; own a vertical." | Reviews turned around within ~10 working days. |
|
||||||
|
| **Affiliate** | "Refer backers, earn commission." | First payout lands within one cycle of a referred pledge. |
|
||||||
|
| **Ecosystem prospect** | "Learn responsible AI; maybe get more involved." | ≥40% of backers join the community *(draft target)*. |
|
||||||
|
| **AI agent** *(Layer 4)* | "Onboard by reading the corpus." | *Designed-for, not a launch requirement — see §6.4.* |
|
||||||
|
|
||||||
|
**Who it's *not* for:** people who want AI theory with no practice behind it; anyone seeking
|
||||||
|
regulated professional advice from the book itself; teams wanting private hosted
|
||||||
|
infrastructure (out of scope).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. The content model — where the real risk is
|
||||||
|
|
||||||
|
### 5.1 The unit of content: a Workflow Recipe
|
||||||
|
Every entry follows one template. This template *is* the product's quality guarantee — it's
|
||||||
|
the structural answer to "how do I know this AI advice isn't hallucinated?"
|
||||||
|
|
||||||
|
| Field | What it captures |
|
||||||
|
|:--|:--|
|
||||||
|
| **Problem (the job)** | The real task or pain this solves |
|
||||||
|
| **Actors** | Who runs it — a person, a role, or an AI agent |
|
||||||
|
| **Method** | Ordered, reproducible steps — **showing the actual tool output**, not a description of it |
|
||||||
|
| **Safeguards** | The responsible-AI guardrails: data handling, human oversight, failure modes, escalation |
|
||||||
|
| **Evidence** | The documented result — artifacts or metrics |
|
||||||
|
| **Try-it** | A ~15-minute exercise so the reader learns by doing |
|
||||||
|
| **Costs** | Model/tool costs where known — honesty about the economics |
|
||||||
|
| **Author & sources** | Who wrote it, when, for which vertical, with citations |
|
||||||
|
|
||||||
|
**Chapters** are curated collections of these recipes, one set per vertical: Real Estate ·
|
||||||
|
Financial Advisors · Fractional C-Suite · Higher Ed · Communities · Technology. **Editions**
|
||||||
|
refresh annually — which is the honest justification for a *subscription* rather than a
|
||||||
|
one-time purchase: the content genuinely goes stale as AI changes.
|
||||||
|
|
||||||
|
### 5.2 The cold-start problem (this is the #1 product risk)
|
||||||
|
The value proposition is "a rich living library." At launch, the prior plan has us with **2
|
||||||
|
sample chapters and 3 runnable kits** — a pamphlet, not a library — and a hope that the crowd
|
||||||
|
fills the rest. **Crowd-sourced libraries reliably die at cold-start.** We must not bet the
|
||||||
|
launch on strangers showing up to write content for free.
|
||||||
|
|
||||||
|
**Requirement — "Minimum Lovable Library":** before we ask anyone to pay, the founding
|
||||||
|
co-authors and team produce a floor of **15–20 fully-tested workflows across at least 3
|
||||||
|
verticals** *(recommended number — team to ratify)*. This is a **launch gate**, not a
|
||||||
|
post-launch aspiration. Community contribution is **Layer 2** — an experiment we run *after*
|
||||||
|
we've seeded a library worth subscribing to.
|
||||||
|
|
||||||
|
### 5.3 Be honest: v1 is an *authored* book, not yet a *crowd* book
|
||||||
|
The prior draft's "contributor economy" pays co-authors **15% affiliate commission** — which
|
||||||
|
is a reward for *referring backers*, not for *writing workflows*. Writing a workflow currently
|
||||||
|
earns a byline and nothing else. The mechanic that would actually pay contributors — royalties
|
||||||
|
— is unresolved (see [D-2](#10-open-decisions)).
|
||||||
|
|
||||||
|
So for v1, we state plainly: **the first edition is written by a founding set of co-authors and
|
||||||
|
the team.** Open community contribution — with a real incentive attached — is the very next
|
||||||
|
thing we build, and its incentive design ([D-2](#10-open-decisions)) is a **launch-blocking
|
||||||
|
decision, not a nice-to-have**, because the entire "living book" thesis depends on it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Requirements
|
||||||
|
|
||||||
|
Priorities: 🔴 must-have for 9/26 · 🟡 should-have (launch window) · 🟢 post-launch.
|
||||||
|
Requirements are grouped by the layer they serve; **most 🔴 items serve the core loop.**
|
||||||
|
|
||||||
|
### 6.1 Campaign (Kickstarter) — 🔴
|
||||||
|
| ID | Requirement | Pri |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| C-1 | Kickstarter page: hero video (2–3 min), problem, the book, co-authors, 6 pledge tiers ($10→$4,888), stretch goals, FAQ (≥10), risks — **passes the NFT-language scrub** and Kickstarter category rules | 🔴 |
|
||||||
|
| C-2 | Pre-launch landing page on aibook.fun with email capture + a 3-email warm-up sequence. **Target: 500+ emails before Day 1.** | 🔴 |
|
||||||
|
| C-3 | Affiliate program live (Kickbooster): co-author 15% / community 10% / podcast 10% / press 5%; 30-day cookie, last-click | 🔴 |
|
||||||
|
| C-4 | Launch playbook: Day-1 hour-by-hour schedule, weekly cadence, mid-campaign tactics, final-48h push | 🔴 |
|
||||||
|
| C-5 | Campaign analytics dashboard: raised, backers, avg pledge, email list, cost-per-click, affiliate share — reviewed daily | 🔴 |
|
||||||
|
| C-6 | Post-campaign comms staged before launch: final update, backer sequence, fulfillment announcement | 🟡 |
|
||||||
|
|
||||||
|
### 6.2 Content (the core loop) — 🔴
|
||||||
|
| ID | Requirement | Pri |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| K-1 | Workflow Recipe template (§5.1), published, with **3 filled, reviewed examples** | 🔴 |
|
||||||
|
| K-2 | **Minimum Lovable Library: 15–20 tested workflows, ≥3 verticals** (§5.2) — team/co-author authored | 🔴 |
|
||||||
|
| K-3 | Chapter outline per vertical, with a named owner for each | 🔴 |
|
||||||
|
| K-4 | 2 sample chapters delivered pre-launch as the backer preview | 🔴 |
|
||||||
|
| K-5 | 3 "clone-and-run" kits, each **verified by actually running it** | 🔴 |
|
||||||
|
| K-6 | Editorial pipeline: submit → co-author review → accept/revise → publish → track updates | 🔴 |
|
||||||
|
| K-7 | Content stored in a structured, versioned, machine-readable format (frontmatter + provenance + trust tiers) so editions are diffable and, later, agent-readable | 🟡 |
|
||||||
|
|
||||||
|
### 6.3 Access & subscription — 🔴 / 🟢
|
||||||
|
| ID | Requirement | Pri |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| A-1 | Post-campaign access: a digital key unlocks PDF + web reader for 12 months, renews annually | 🟢 |
|
||||||
|
| A-2 | Anchor price **$47/yr** *(draft — needs commercial re-sign)* + hardcopy at-cost upcharge | 🔴 |
|
||||||
|
| A-3 | Lifetime tier — **decision required before copy freeze** (see [D-1](#10-open-decisions)) | 🟡 |
|
||||||
|
| A-4 | Fulfillment ledger: backer ↔ key/upcharge tracked (a spreadsheet is fine for v1) | 🟢 |
|
||||||
|
|
||||||
|
### 6.4 The other layers — mostly 🟡 / 🟢
|
||||||
|
| ID | Requirement | Pri |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| L-1 | *(Layer 3)* Try-it feedback loop: readers post results in the community channel (pinned template) | 🔴 |
|
||||||
|
| L-2 | *(Layer 3)* "Book Circles" — 6-week cohort format + facilitator playbook; **1 pilot cohort** post-launch | 🟡 |
|
||||||
|
| L-3 | *(Layer 3)* Workflow-of-the-Week showcase (site + community + email) | 🟡 |
|
||||||
|
| L-4 | *(Layer 2)* Public contribution intake + curation checklist — opens **after** the Minimum Lovable Library exists | 🟡 |
|
||||||
|
| L-5 | *(Layer 4)* Agent-onboarding: the same content, structured for machine ingestion — **a property of the K-7 format, not a separate build for launch** (see decision in [D-5](#10-open-decisions)) | 🟢 |
|
||||||
|
| L-6 | *(Layer 5)* Ecosystem funnel: backers flow into the wider WeOwnNet programs | 🟢 |
|
||||||
|
|
||||||
|
### 6.5 Site, email, ops — 🔴
|
||||||
|
| ID | Requirement | Pri |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| S-1 | aibook.fun production landing (hero, the book, a sample workflow, tiers, affiliate, CTA, FAQ) | 🔴 |
|
||||||
|
| S-2 | Working HTTPS (current cert fails — verified 08-21); keep existing analytics continuity | 🔴 |
|
||||||
|
| S-3 | Email/CRM tags for the funnel: `prelaunch`, `backed`, `subscriber`, `affiliate` | 🔴 |
|
||||||
|
| S-4 | 8-email campaign sequence (3 pre-launch, 1 launch, 2 mid, 2 final), dates aligned to 9/26, NFT-scrubbed | 🔴 |
|
||||||
|
| S-5 | Instrument **events, not content** — track that a workflow was downloaded/submitted, never the confidential content itself (see [Appendix B](#appendix-b--trust--privacy-posture)) | 🔴 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Non-functional requirements
|
||||||
|
|
||||||
|
| ID | Requirement |
|
||||||
|
|:--|:--|
|
||||||
|
| NFR-1 | **Truth in status:** no draft/unconfirmed figure appears in any external asset. Hard gate before publish. |
|
||||||
|
| NFR-2 | **Kickstarter compliance:** zero crypto/Web3/NFT terms on any campaign surface ([Appendix A](#appendix-a--kickstarter-compliance-the-nft-scrub)). |
|
||||||
|
| NFR-3 | **Privacy:** no confidential client data in any workflow or campaign asset; track events, not content. |
|
||||||
|
| NFR-4 | **Availability:** landing page up through the campaign; emails on schedule; affiliate tracking live from Day 1 (the 30-day cookie means every hour of Day 1 counts). |
|
||||||
|
| NFR-5 | **Content quality:** every workflow passes the Recipe template + at least one co-author review. |
|
||||||
|
| NFR-6 | **Domain continuity:** aibook.fun must not lapse (it currently expires 09-05 — see [§9](#9-immediate-next-steps)). |
|
||||||
|
| NFR-7 | **Accessibility:** reader and landing page are mobile-readable, targeting WCAG AA. |
|
||||||
|
| NFR-8 | **Cost discipline:** pre-revenue burn stays within the ~$6K budget ([Appendix C](#appendix-c--budget)). |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Success metrics
|
||||||
|
|
||||||
|
**Product health first, fundraising second.** The prior draft led with fundraising vanity
|
||||||
|
metrics; those measure the *campaign*, not the *product.* A funded campaign can still hide a
|
||||||
|
dead product if nobody activates, renews, or contributes.
|
||||||
|
|
||||||
|
### Product health (report these first)
|
||||||
|
| Metric | Floor | Target | Why it matters |
|
||||||
|
|:--|:--|:--|:--|
|
||||||
|
| **Activation** — read 1 workflow + do 1 Try-it in 14 days | 20% | 35% | The North-Star. Is the core loop actually useful? |
|
||||||
|
| **Workflow submissions** during campaign window | 10 | 25 | Early signal that Layer 2 (contribution) is real |
|
||||||
|
| **Renewal rate** — year-1 cohort | — | 60% | Is a *subscription* the right model at all? |
|
||||||
|
| **Curation turnaround** ≤ 10 working days | 80% | 95% | Can we keep quality without becoming the bottleneck? |
|
||||||
|
|
||||||
|
### Campaign performance (the fundraise)
|
||||||
|
| Metric | Min | Target | Stretch |
|
||||||
|
|:--|:--|:--|:--|
|
||||||
|
| Total raised | $5,000 | $35,000 | $54,000+ |
|
||||||
|
| Total backers | 300 | 700 | 1,000+ |
|
||||||
|
| Pre-launch email list | 500 | 1,000 | 2,000+ |
|
||||||
|
| Days to fund | 7 | 3 | 1 |
|
||||||
|
| Ad return on spend | 3:1 | 5:1 | 10:1 |
|
||||||
|
| Affiliate share of total | — | ≥20% | 35% |
|
||||||
|
| Backers → ecosystem pipeline | 50 | 150 | 300+ |
|
||||||
|
|
||||||
|
> ⚠️ **Two bars, not one.** Hitting the **$5K funding floor** (~106 backers) proves people will
|
||||||
|
> *pre-order*. It does **not** prove they'll *renew* or *contribute* — the two things this
|
||||||
|
> business actually depends on. Treat the **product-health floors above as a separate,
|
||||||
|
> equally-weighted validation bar.** "Funded" is not "validated."
|
||||||
|
|
||||||
|
*All draft targets must be ratified before being quoted anywhere.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Immediate next steps
|
||||||
|
|
||||||
|
**This week — decisions and de-risking (before any copy or build locks):**
|
||||||
|
1. **Renew aibook.fun today.** It expires 09-05; launch is 09-26. This is a chore, not a
|
||||||
|
strategic decision — do it now and delete it from the risk list. *(Owner: whoever holds the
|
||||||
|
registrar login.)*
|
||||||
|
2. **Resolve the pricing spine together — lifetime ([D-1](#10-open-decisions)) *and* royalties
|
||||||
|
([D-2](#10-open-decisions)).** They're linked, and both block copy freeze.
|
||||||
|
3. **Ratify the North-Star + the product-health floors** (§8) so we're measuring the right
|
||||||
|
thing from Day 1.
|
||||||
|
4. **Ratify the Minimum Lovable Library number and assign every workflow an author** (§5.2).
|
||||||
|
5. **Confirm the two unconfirmed co-authors** (Higher Ed, Communities) or re-scope those
|
||||||
|
verticals out of v1.
|
||||||
|
|
||||||
|
**Build phase (weeks to launch):**
|
||||||
|
6. Landing page ships as a **hook A/B test** ("run this AI workflow today" vs. "own a
|
||||||
|
community-built AI guide") — we should *learn which message converts* before we spend ad
|
||||||
|
budget, not just capture emails.
|
||||||
|
7. Author the Minimum Lovable Library to its floor number.
|
||||||
|
8. Standard campaign build — hero video, email sequence, Kickstarter page — **after** 1–5.
|
||||||
|
9. Keep two governance gates sharp and drop the ceremony from the rest ([Appendix B](#appendix-b--trust--privacy-posture)):
|
||||||
|
the **NFT-language scrub** (existential — Kickstarter will reject us otherwise) and
|
||||||
|
**truth-in-claims** (no draft figures go public).
|
||||||
|
|
||||||
|
**Launch → fulfillment:** run the campaign, then fulfill (manuscript → edit → layout → proof →
|
||||||
|
issue access keys → print/ship hardcopies), then turn on the renewal system and open Layer 2
|
||||||
|
contribution. Detailed timeline lives in the Implementation Plan.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Open decisions
|
||||||
|
|
||||||
|
These are the *genuinely open* strategic decisions. Each carries a **recommendation** so the
|
||||||
|
decision-maker has a starting point — but the recommendation is not yet a decision.
|
||||||
|
|
||||||
|
| # | Decision | Recommendation | Blocks |
|
||||||
|
|:--|:--|:--|:--|
|
||||||
|
| **D-1** | **Lifetime tier — offer it, and at what price?** A ~$97–147 lifetime breaks even against $47/yr in ~2–3 years, which *undercuts the recurring-revenue thesis.* | **Pick a spine.** Keep $47/yr as the anchor. If you want a lifetime option, frame it *only* as a bounded early-bird instrument to capitalize the community fund (capped quantity), not the default SKU. Don't ship recurring + lifetime as equals. | KS copy freeze |
|
||||||
|
| **D-2** | **Contributor payment — how do people earn for *writing workflows* (not just referring)?** Today the only paid mechanic is affiliate referral. | **Resolve before launch.** This is the engine of the "living book." Decide: royalty pool, per-accepted-workflow bounty, or an explicit "v1 is authored, paid contribution ships in Q1" — but decide, don't leave blank. | The core value prop |
|
||||||
|
| **D-3** | **Co-author confirmations** (Higher Ed, Communities verticals). | Confirm within the week or cut those verticals from v1 and add post-launch. | Chapter outline, scope |
|
||||||
|
| **D-4** | **Refresh the source-of-truth plan** to the 9/26 dates and re-signed terms (depends on D-1/D-2). | Do after D-1/D-2 land. | Copy freeze |
|
||||||
|
| **D-5** | **Human-first or agent-first for v1?** Writing for human motivation and for machine ingestion are different jobs. | **Human-first.** Build the content format so agents *can* read it later (K-7), but optimize v1 for human learners. Agent onboarding is Layer 4. | Content design |
|
||||||
|
| **D-6** | **Does "you own a stake" survive the NFT-scrub as a *true* claim?** If the ownership model was fundamentally token mechanics, stripping them for Kickstarter may leave "ownership" as marketing over an ordinary subscription. | **Audit the claim.** Either define what ownership concretely means without tokens (governance rights? revenue share? credited authorship?) or stop using the word publicly. Add it to the claims register. | Public messaging integrity |
|
||||||
|
|
||||||
|
> *Resolved and removed from this list:* the domain "decision" — it's a chore (renew it, §9),
|
||||||
|
> not a strategic gate.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Appendix A — Kickstarter compliance (the NFT scrub)
|
||||||
|
|
||||||
|
Kickstarter bans NFT/crypto/Web3 language. Any internal terms rooted in that model must be
|
||||||
|
translated on every public surface **before** submission, e.g. an internal "subscription NFT"
|
||||||
|
becomes, publicly, an **"annual digital subscription."** A single scrub gate reviews *every*
|
||||||
|
asset (page, emails, landing, video captions) against a translation table before anything
|
||||||
|
ships. **This is the single most existential compliance requirement** — a rejection here kills
|
||||||
|
the launch date.
|
||||||
|
|
||||||
|
## Appendix B — Trust & privacy posture
|
||||||
|
|
||||||
|
Kept deliberately lightweight for this stage; two rules are load-bearing, the rest is
|
||||||
|
proportionate:
|
||||||
|
- **Confidential material never appears in public content.** Workflows are illustrative and
|
||||||
|
use non-confidential examples.
|
||||||
|
- **Instrument events, not content.** We record *that* a workflow was downloaded or submitted —
|
||||||
|
never the private content of what a user did.
|
||||||
|
- **Honest data-handling language.** Describe what's actually true ("your documents stay on
|
||||||
|
your instance"); never claim a security property we haven't verified is switched on.
|
||||||
|
- Heavier governance ceremony (formal sign-off registers, isolation-floor audits, corpus
|
||||||
|
conformance) scales up *with the product* — it doesn't precede a pre-revenue, unvalidated
|
||||||
|
launch.
|
||||||
|
|
||||||
|
## Appendix C — Budget
|
||||||
|
|
||||||
|
Pre-revenue, ~$6K, matching the source plan:
|
||||||
|
|
||||||
|
| Item | Cost |
|
||||||
|
|:--|:--|
|
||||||
|
| LinkedIn ads (campaign wks 2–4) | $1,300 |
|
||||||
|
| Meta ads | $700 |
|
||||||
|
| Google ads | $280 |
|
||||||
|
| Cover / video edit | $0–500 |
|
||||||
|
| Kickstarter fees (~8% on $35K) | ~$2,800 |
|
||||||
|
| Kickbooster (10% on referred pledges) | ~$700 |
|
||||||
|
| Domain renewal | ~$15–20 |
|
||||||
|
| **Pre-revenue total** | **~$6,000** |
|
||||||
|
| Projected revenue | $35,000–$54,000 |
|
||||||
|
|
||||||
|
## Appendix D — What changed in this revision
|
||||||
|
|
||||||
|
This revision is a **plain-language rewrite with a product review folded in.** Substantive
|
||||||
|
changes from the prior draft, and the reasoning:
|
||||||
|
|
||||||
|
1. **Named one core loop + one North-Star** (read→run→share; activation). The prior draft
|
||||||
|
marked ~half of 40 requirements "must-have" — no real prioritization.
|
||||||
|
2. **Layered the product** (§3) so v1 = the core loop; contribution, cohorts, agents, and the
|
||||||
|
funnel are explicitly later layers.
|
||||||
|
3. **Elevated the content cold-start** to the #1 risk and added the *Minimum Lovable Library*
|
||||||
|
launch gate (§5.2).
|
||||||
|
4. **Told the truth about incentives** (§5.3): v1 is an authored book; the "contributor
|
||||||
|
economy" is currently a referral scheme; paid contribution (D-2) is now launch-blocking.
|
||||||
|
5. **Forced the subscription-vs-lifetime tension** into a real decision (D-1).
|
||||||
|
6. **Split the validation bar from the funding floor** (§8) so a funded-but-dead outcome can't
|
||||||
|
hide.
|
||||||
|
7. **Reframed the pitch as utility-first** (§4, §9 hook test) — the buyer wants a workflow, not
|
||||||
|
an ownership philosophy.
|
||||||
|
8. **Demoted governance to proportionate** (Appendix B), keeping only the NFT-scrub and
|
||||||
|
truth-in-claims as active gates.
|
||||||
|
9. **Turned the domain "decision" into a same-day chore** (§9).
|
||||||
|
10. **Translated the jargon out.** Internal codes, handles, and merge-history are gone from the
|
||||||
|
body; a who's-who / glossary can be maintained separately if the team wants traceability
|
||||||
|
back to the source-of-truth IDs.
|
||||||
|
|
||||||
|
*(A field-by-field mapping from the old FR-x IDs to these can be produced on request.)*
|
||||||
|
|||||||
+265
-152
@@ -1,190 +1,303 @@
|
|||||||
---
|
---
|
||||||
title: "AIBook.fun — Product Specification (CONSOLIDATED v1.0-DRAFT)"
|
title: "AIBook.fun — Product Specification"
|
||||||
type: spec
|
type: spec
|
||||||
tags: [aibook, weown-ai, prj-031, kickstarter, spec, product, responsible-agentic-ai, social-education, okf]
|
|
||||||
status: draft
|
status: draft
|
||||||
created: 2026-08-22
|
owner: Patrick (Product)
|
||||||
source-of-truth: "https://github.com/CCCbotNet/fedarch/blob/main/_PROJECTS_/PRJ-031_WeOwnAI-Book.md"
|
launch-target: 2026-09-26
|
||||||
generated:
|
last-updated: 2026-08-26
|
||||||
by: "AI:CCC-MAIT-S004-PAT-DeepSeek (SEAT-1 governance/OKF) + ProductBuzz [PAT] (Product + Branding SME) — merged v0.2, amended v0.3"
|
companions: [AiBook_PRD.md, AiBook_Implementation_Plan.md]
|
||||||
at: "2026-08-22T15:36:00Z"
|
|
||||||
verified:
|
|
||||||
- by: "buzz channels list (relay) — bMAIT AiBook.fun channel desc"
|
|
||||||
at: "2026-08-22"
|
|
||||||
- by: "curl github.com/CCCbotNet/fedarch (PRJ-031 SOT v3.2.1.3)"
|
|
||||||
at: "2026-08-22"
|
|
||||||
sources:
|
|
||||||
- id: sot
|
|
||||||
resource: "https://github.com/CCCbotNet/fedarch/blob/main/_PROJECTS_/PRJ-031_WeOwnAI-Book.md"
|
|
||||||
note: "PRJ-031 v3.2.1.3 · GTM_2026-W10_203 · APPROVED · $47/yr + Kickbooster affiliate · 6 tiers · $5K/$35K/$54K · Season-003 dates superseded"
|
|
||||||
- id: gtm-learn
|
|
||||||
resource: "buzz://channel/4ed06d1f-a01a-4c73-b61e-0353d4cd8e87 (event b8531f38)"
|
|
||||||
note: "@GTM LEARN 2026-08-16 · GTM_2026-W33_6089 · common denominator + 5-tier ownership barriers"
|
|
||||||
- id: gtm-deepseek-5017
|
|
||||||
resource: "buzz://channel/4ed06d1f-a01a-4c73-b61e-0353d4cd8e87 (event f22c2e59)"
|
|
||||||
note: "🧩 LEARN 5017 · GTM_2026-W34_5017 · model + date + affiliate verification"
|
|
||||||
- id: channel-desc
|
|
||||||
resource: "buzz channels list 2026-08-22 (relay)"
|
|
||||||
note: "🎭bMAIT🤖AiBook.fun 📚[.OCA] — common denominator; Kickstarter 9/26/2026"
|
|
||||||
- id: pat-concept
|
|
||||||
resource: "buzz://channel/4ed06d1f-a01a-4c73-b61e-0353d4cd8e87 (event a05e44b2)"
|
|
||||||
note: "@pat 2026-08-21: open book of RAAI workflows; lifetime buy; curator royalties (DRAFT — R-011 pending)"
|
|
||||||
- id: pb-spec
|
|
||||||
resource: "PLANS/AIBOOK/AIBOOK_SPEC.md (ProductBuzz draft v0.1)"
|
|
||||||
note: "Parallel draft merged into this canonical — vision, principles, actors, social methods, KS package"
|
|
||||||
- id: workspace-note
|
|
||||||
resource: "RESEARCH/AIBOOK_FUN_NOTE.md"
|
|
||||||
note: "Project note + alignment verdicts (2026-08-21)"
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 📚 AIBook.fun — Product Specification
|
# 📚 AIBook.fun — Product Specification
|
||||||
**CONSOLIDATED v1.0-DRAFT** · 2026-08-22 · Authors: **ProductBuzz [PAT]** (Product + Branding SME, Product Ops) + **CCC-MAIT-S004-PAT-DeepSeek** (SEAT-1 governance/OKF) · Owner: @pat → @GTM (R-011 sign-offs) · Companion: `AIBOOK_PRD.md`, `AIBOOK_IMPLEMENTATION_PLAN.md` · **⛔ DRAFT — not a live claim. No R-011.** (v1.0-final naming reserved for the R-011'd freeze, PRD §9.)
|
|
||||||
> v1.0-DRAFT consolidation (2026-08-22T15:36:00Z, SEAT-1 after ProductBuzz self-review 15:22Z): trunk = v0.3. Folded R1 (affiliate zero-cost entry + Kickbooster 10% fee, §4.5) · R2 (affiliate payout milestone → PRD FR-4.7) · R3 (WeOwn Chat ledger dogfooding option → PRD FR-3.4) · F1 (gates G0–G3 kept; G4 dropped everywhere) · F2 (15/10/10/5 everywhere) + SEAT-1 deltas S1 (claims-register affiliate row corrected 15/10/5 → 15/10/10/5) · S2 (Risk #9 → Risk #4, PRD §7 refreshed register) · S3 (verified-block parity). v0.3 amendment history below:
|
|
||||||
> v0.3 amendment (2026-08-22T13:36Z, Product Ops review): marker vocabulary corrected (9/26 = CONFIRMED, not LIVE) · floor numbering per DRI ruling (F1 confidentiality / F2 cross-customer / F3 off-domain, all FLOOR 0 — manual §5.3/§7.1) · D-7 resolved at DRI level · frontmatter timestamps corrected to real write time (v0.2 stamp was future-dated ~2h — fixed).
|
|
||||||
|
|
||||||
Status markers (Product Ops Manual vocab): LIVE / PARTIAL / NOT LIVE / DRAFT / OPEN / CONFIRMED / FLOOR. Anything DRAFT is not to be presented externally as final.
|
> **Status: DRAFT.** This spec is the *thinking* behind the product — the vision, the
|
||||||
|
> principles, the model. The [PRD](AiBook_PRD.md) turns it into requirements; the
|
||||||
|
> [Implementation Plan](AiBook_Implementation_Plan.md) turns it into a schedule. Commercial
|
||||||
|
> figures and unconfirmed terms here are planning assumptions, not commitments, and must not be
|
||||||
|
> quoted externally until signed off ([§8](#8-open-decisions)). See
|
||||||
|
> [Appendix — What changed](#appendix--what-changed-in-this-revision) for how this revision
|
||||||
|
> differs from the prior draft.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. Vision
|
## TL;DR
|
||||||
|
|
||||||
> **AIBook.fun turns "the Book" from an artifact into an engine.** It is the 📚 Learning pillar of ♾️ WeOwnNet — the *common denominator* every human and agent passes through to onboard into the ecosystem (`🎭bMAIT🤖AiBook.fun 📚[.OCA]`, relay-verified channel desc). It is a **living, crowd-created, subscription book of well-documented Responsible Agentic AI (RAAI) workflows** — open for contribution, owned by its readers-as-members, launched via Kickstarter on **9/26/2026** (CONFIRMED, relay-verified).
|
AIBook.fun is a **living, crowd-written field guide to using AI agents responsibly at work.**
|
||||||
|
Its unit of value is a **workflow you can run** — a documented, tested recipe for doing a real
|
||||||
|
job with AI, including the guardrails. It launches as an annual subscription via Kickstarter on
|
||||||
|
**September 26, 2026**.
|
||||||
|
|
||||||
The product is hired for four jobs:
|
The product does four jobs, in priority order:
|
||||||
1. **Educate** — teach practitioners (humans *and* agents) RAAI from well-documented, battle-tested workflows, not hype.
|
|
||||||
2. **Onboard** — be the shared literacy base / Gate 0 for the ecosystem (knowledge denominator everyone owns together).
|
|
||||||
3. **Incentivize** — give contributors (co-authors, curators, affiliate community) a real economic stake, so the book stays fed and current.
|
|
||||||
4. **Funnel** — top of the AgencyPRO (= PRJ-002) funnel: every backer is a qualified lead.
|
|
||||||
|
|
||||||
**One-sentence pitch:** *"Professionals wrote the book on AI — together. A crowd-created, living guide to Responsible Agentic AI that you own a stake in, taught as workflows you can actually run."*
|
1. **Teach** practitioners how to actually use AI — from tested workflows, not hype. *(This is
|
||||||
|
v1.)*
|
||||||
|
2. **Fund & assemble** a founding community through the Kickstarter. *(This is v1.)*
|
||||||
|
3. **Reward contribution** so the book stays current — the "living" part. *(Design it now,
|
||||||
|
prove it just after launch.)*
|
||||||
|
4. **Connect** readers into the wider WeOwnNet ecosystem. *(Ongoing, low-effort.)*
|
||||||
|
|
||||||
## 2. Product principles (hard boundaries) + pillars
|
The hard truth this spec insists on: **jobs 1–2 are the launch; jobs 3–4 are layers we build on
|
||||||
|
top of a proven core.** Trying to ship all four at once is how a small team ships none well.
|
||||||
|
|
||||||
**Gates, not preferences** — inherited from ecosystem + PRJ-031 SOT:
|
**One-sentence pitch (utility-first):** *"Steal 20 tested AI workflows you can run this week —
|
||||||
1. **Grounded in practice** — every workflow documents real method: problem → constraints → steps → safeguards → evidence. No theory without a runnable shape.
|
from a living guide that practitioners keep current, and that you can help write."*
|
||||||
2. **Responsible by design** — RAAI guardrails are part of every workflow template (data handling, human oversight, failure modes), not an appendix.
|
|
||||||
3. **Open contribution, curated quality** — anyone can propose a workflow; curators/co-authors review. Incentive = affiliate income per SOT; royalty variant OPEN (@GTM R-011).
|
|
||||||
4. **Ownership, not access** — 5-tier barrier model (GTM_2026-W33_6089): Knowledge → Identity → Brand surface → **Economic stake** → Governance. Owning the denominator = real common base.
|
|
||||||
5. **The boundary is the product** — no general-purpose AI chatbot claims, no regulated advice on the book's own authority, one honest set of claims (§8).
|
|
||||||
|
|
||||||
| # | Pillar | Design consequence |
|
---
|
||||||
|
|
||||||
|
## 1. Vision & the core loop
|
||||||
|
|
||||||
|
The prior draft's slogan was *"turn the Book from an artifact into an engine."* That's the right
|
||||||
|
ambition — but an engine needs one cylinder firing before you add the rest. Here is the cylinder:
|
||||||
|
|
||||||
|
```
|
||||||
|
READ a workflow → RUN the Try-it (~15 min) → SHARE the result → (come back)
|
||||||
|
```
|
||||||
|
|
||||||
|
Everything else the product wants to be — a contributor economy, a cohort program, an
|
||||||
|
onboarding corpus for AI agents — is a **layer built on top of this loop**, and only worth
|
||||||
|
building once the loop demonstrably works. We measure that with one number, **Activation**: *did
|
||||||
|
a reader run at least one workflow within 14 days?* (Full metric set in [PRD §8](AiBook_PRD.md).)
|
||||||
|
|
||||||
|
### The product in layers
|
||||||
|
| Layer | What | When |
|
||||||
|:--|:--|:--|
|
|:--|:--|:--|
|
||||||
| P6 | **Trust-floored** | 3 floors per manual §5.3/§7.1 (all FLOOR 0): **F1** confidentiality · **F2** cross-customer exposure · **F3** off-domain (DRI-ruled 08-22, @pat override window); flyer rule + two-tab (green/red) boundary UX; ZDR stance: "documents stay on your instance", NEVER "ZDR is active" |
|
| **Core (v1)** | Subscription book of tested workflows + read→run→share loop | **Launch** |
|
||||||
| P7 | **OKF-native** | Book = Google OKF v0.2 knowledge bundle (frontmatter, `type`, `sources` provenance, trust tiers: unverified → machine-confirmed → human-reviewed) — versionable, renderable, auditable, agent-native |
|
| Contribution | Readers submit their own workflows (needs a real incentive — see [§3](#3-actors--the-contributor-question)) | Just after launch |
|
||||||
| P8 | **NFT-free public face** | Translation table enforced on all KS-facing surfaces; zero token/Web3/crypto language publicly |
|
| Cohorts | "Book Circles," Workflow-of-the-Week showcase | After content proves demand |
|
||||||
|
| Agent-native | Same content, read by AI agents to onboard | Deliberate future use of the format |
|
||||||
|
| Ecosystem funnel | Backers flow into wider WeOwnNet programs | Ongoing |
|
||||||
|
|
||||||
## 3. Actors & jobs
|
---
|
||||||
|
|
||||||
| Actor | Who | Job | Key boundary |
|
## 2. Principles (the hard boundaries)
|
||||||
|
|
||||||
|
These are gates, not preferences — a workflow or a claim either clears them or it doesn't ship.
|
||||||
|
|
||||||
|
1. **Grounded in practice.** Every workflow documents a real method: problem → constraints →
|
||||||
|
steps → safeguards → evidence. No theory without a runnable shape. The steps **show the
|
||||||
|
actual tool output**, because "it works" is something the reader verifies, not something we
|
||||||
|
assert.
|
||||||
|
2. **Responsible by design.** The responsible-AI guardrails (data handling, human oversight,
|
||||||
|
failure modes) are part of *every* workflow template — not an appendix, not an afterthought.
|
||||||
|
3. **Open contribution, curated quality.** Anyone can propose a workflow; curators and
|
||||||
|
co-authors review before it's published. *(The incentive that makes people actually
|
||||||
|
contribute is still an open decision — see [§3](#3-actors--the-contributor-question) and
|
||||||
|
[D-2](#8-open-decisions).)*
|
||||||
|
4. **Ownership as a reason to stay, not the reason to buy.** The buyer's job is utility ("help
|
||||||
|
me do a thing this week"). Community and ownership are what turn a reader into a member —
|
||||||
|
they're the retention layer, not the opening pitch.
|
||||||
|
5. **The boundary is the product.** No general-purpose-chatbot claims, no regulated advice on
|
||||||
|
the book's own authority, and one honest set of claims (nothing draft presented as final).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Actors & the contributor question
|
||||||
|
|
||||||
|
| Actor | Who | Their job | The boundary |
|
||||||
|:--|:--|:--|:--|
|
|:--|:--|:--|:--|
|
||||||
| **Reader / Subscriber** | Practitioner (RE, FA, fractional C-suite, higher ed, communities, tech) | Get current, trustworthy RAAI workflows to apply this week | Pays for access ($47/yr baseline — DRAFT until relaunch sign) |
|
| **Reader / subscriber** | Practitioners (real estate, financial advisors, fractional execs, higher ed, communities, tech) | Get current, trustworthy AI workflows to apply this week | Pays for access (~$47/yr — *draft*) |
|
||||||
| **Contributor / Co-author** | Confirmed: @THY (RE/FA) · @CEO (C-suite) · @GTM (tech/RAAI); potential: B.W. Piper (higher ed), L. Kerner (communities) | Publish a documented workflow; earn income + reputation | Content curated; workflow template enforced |
|
| **Co-author** | Confirmed: three founders across RE/FA, C-suite, and tech. Potential: two more for Higher Ed & Communities | Own a vertical; write and curate its workflows | Content follows the template; curated |
|
||||||
| **Curator** | Co-authors + community editors | Keep quality bar; run editorial pipeline | Curation ≠ platform ownership |
|
| **Curator / editor** | Co-authors + community editors | Keep the quality bar; run the editorial pipeline | Curating ≠ owning the platform |
|
||||||
| **Affiliate** | Community / podcast / press | Refer backers; earn commission | Kickbooster 15/10/10/5% (SOT) |
|
| **Affiliate** | Community, podcast, press | Refer backers; earn commission | Commission rates below |
|
||||||
| **Ecosystem prospect** | Anyone not yet in WeOwnNet | Learn responsible AI; take a stake | Becomes AgencyPRO funnel |
|
| **Ecosystem prospect** | Anyone not yet in WeOwnNet | Learn responsible AI; maybe get involved | Becomes a funnel lead |
|
||||||
| **Agents (WeOwnNet-native)** | Every agent in the ecosystem | Read the Book as onboarding corpus (AGENTS.md → Book) | Book = machine-readable markdown; workflow schema |
|
| **AI agent** | Ecosystem agents *(future layer)* | Read the book as an onboarding corpus | Optimized-for-later, not a launch requirement |
|
||||||
|
|
||||||
**Anti-personas:** people wanting a general AI book with no practice behind it; anyone seeking regulated professional advice from the book's own authority; teams wanting private multi-tenant infra (not applicable — but the claim stays).
|
**Who it's not for:** people wanting AI theory with no practice behind it; anyone seeking
|
||||||
|
regulated professional advice from the book itself; teams wanting private hosted infrastructure
|
||||||
|
(out of scope).
|
||||||
|
|
||||||
### Contributor economy (Reader → Owner → Contributor)
|
### The contributor economy — say what it actually is
|
||||||
| Tier | Role | Documented income |
|
This is the most important honesty correction in the spec. The prior draft presented a
|
||||||
|:--|:--|:--|
|
"Reader → Owner → Contributor → Governance" ownership ladder and a table of contributor income.
|
||||||
| Reader / backer | Subscribes, reads, learns | access |
|
Read the mechanics closely and the income is **affiliate commission for *referring backers*** —
|
||||||
| Community affiliate | Shares via Kickbooster | **10%** (documented) |
|
not payment for *writing workflows.*
|
||||||
| Co-author (vertical) | Owns a chapter | **15%** affiliate (documented) |
|
|
||||||
| Curator / editor | Reviews, structures, maintains | OPEN — royalty variant → @GTM R-011 |
|
|
||||||
| Podcast / press | Amplifies | **10% / 5%** (documented) |
|
|
||||||
|
|
||||||
## 4. The product: a living book, built from workflows
|
| Role | What they actually earn today |
|
||||||
|
|
||||||
### 4.1 Content model (the heart)
|
|
||||||
Crowd-created from a **library of workflow documents** (SOT: "crowd-created", multi-vertical). Each workflow:
|
|
||||||
|
|
||||||
| Field | Purpose |
|
|
||||||
|:--|:--|
|
|:--|:--|
|
||||||
| **Problem (JTBD)** | The job/user pain the workflow solves |
|
| Reader / backer | Access |
|
||||||
| **Actors** | Who runs it (person, role, or agent) |
|
| Community affiliate | 10% commission — for *referring backers* |
|
||||||
| **Method** | Ordered, reproducible steps — with **visible tool returns** as evidence (L-406: first request = first output = tools) |
|
| Co-author | 15% commission — for *referring backers* (plus a byline for writing) |
|
||||||
| **Safeguards** | RAAI guardrails: data handling, oversight, failure modes, escalation |
|
| Podcast / press | 10% / 5% commission — for *referring backers* |
|
||||||
| **Evidence** | Documented result, artifacts, or metrics |
|
| Curator / editor | **Nothing documented** — royalty mechanic is unresolved |
|
||||||
| **Try-it** | A 15-minute exercise so readers learn by doing |
|
|
||||||
| **Costs** | Model/tool costs where known — openness about economics |
|
|
||||||
| **Author metadata** | Identity (CCC-ID where applicable), date, vertical; every claim cites sources |
|
|
||||||
|
|
||||||
**Chapters** = curated workflow collections per vertical: Real Estate · Financial Advisors · Fractional C-Suite · Higher Ed · Communities · Technology/RAAI (SOT §Co-Authors). **Editions** = annual refresh (subscription rationale: "content stays current with rapidly evolving Agentic AI"). **The Book as training corpus** = same markdown feeds agent onboarding (Gate 0) — the first **agent-native** book in the ecosystem.
|
So today, **writing a workflow earns a byline; referring a backer earns money.** That's a
|
||||||
|
referral program, not a contributor economy. For the "living book" thesis to be real, writing
|
||||||
|
good content has to pay — and *how* it pays is [decision D-2](#8-open-decisions), which this spec
|
||||||
|
argues is **launch-blocking**, not a later nicety. Until it's resolved, v1 is honestly an
|
||||||
|
**authored book** (a founding set of co-authors), with open paid contribution as the very next
|
||||||
|
thing built.
|
||||||
|
|
||||||
### 4.2 Social education methods (how people actually learn)
|
---
|
||||||
Beautifully simple, deliberately social:
|
|
||||||
1. **Read → Do → Share.** Every chapter ends in a Try-it. Readers post results back to the community. Learning = applied, visible, contagious.
|
|
||||||
2. **Book Circles (cohorts).** Small groups read one chapter/week and meet (online or agent-moderated) to review each other's Try-its — the echo of the IRL retreats (BurnedOut CO/FL, SOT §Retreats).
|
|
||||||
3. **Practice-to-Publish pipeline.** Try-it results that survive curation become micro-contributions → affiliate income path. Reader → contributor → stakeholder.
|
|
||||||
4. **The weekly showcase.** "Community Workflow of the Week" on aibook.fun + #FlowsBros on WeOwn.FM / email / LinkedIn — the public classroom that makes the book feel alive.
|
|
||||||
5. **Agents as co-learners.** Book is agent-native; onboarding agents read it too — operationalizing "no human or agent inside the wall without the Book" (GTM directive 08-16).
|
|
||||||
6. **The Kickstarter as lesson one.** Rewards include learning experiences (group Q&A, webinar, retreat seat); every campaign update ships a mini-lesson — "funded ≠ finish line; here's Chapter 1."
|
|
||||||
|
|
||||||
### 4.3 Subscription & the "lifetime" question
|
## 4. The product: a book built from workflows
|
||||||
- **Documented baseline (SOT v3.2.1.3, APPROVED):** `$47/yr` annual digital subscription + hardcopy upcharge. Rationale: freshness as AI evolves; ongoing community; recurring revenue; affirmative ownership stake. **DRAFT for the 9/26 relaunch until @GTM re-signs.**
|
|
||||||
- **pat's variant (08-21):** "buy for a lifetime." Compatible as a **Lifetime Access tier** (~3× annual ≈ $97–$147 one-time — **DRAFT figures, do not quote**): a *stronger* Tier-4 economic stake. **OPEN — @GTM (R-011).** Spec recommends: keep $47/yr as the anchor (recurring, fresh content); offer lifetime as a premium/early-bird option that capitalizes the community fund — not a replacement.
|
|
||||||
|
|
||||||
### 4.4 Digital surface (2026)
|
### 4.1 The unit of content — a Workflow Recipe
|
||||||
| Surface | What | Status |
|
One template, used for every entry. The template *is* the quality guarantee — the structural
|
||||||
|
answer to "how do I know this isn't hallucinated AI advice?"
|
||||||
|
|
||||||
|
| Field | What it captures |
|
||||||
|
|:--|:--|
|
||||||
|
| **Problem (the job)** | The real task the workflow solves |
|
||||||
|
| **Actors** | Who runs it — person, role, or AI agent |
|
||||||
|
| **Method** | Ordered, reproducible steps — **showing real tool output**, not describing it |
|
||||||
|
| **Safeguards** | Data handling, human oversight, failure modes, escalation |
|
||||||
|
| **Evidence** | The documented result — artifacts or metrics |
|
||||||
|
| **Try-it** | A ~15-minute do-it-yourself exercise |
|
||||||
|
| **Costs** | Model/tool costs where known — honesty about economics |
|
||||||
|
| **Author & sources** | Who, when, which vertical, with citations |
|
||||||
|
|
||||||
|
**Chapters** are curated collections of these per vertical. **Editions** refresh annually —
|
||||||
|
which is the honest justification for a *subscription*: AI moves fast enough that a static book
|
||||||
|
goes stale, so the value is in staying current.
|
||||||
|
|
||||||
|
### 4.2 Seed the shelf before you sell tickets (the cold-start rule)
|
||||||
|
The value proposition is a rich library. The failure mode is a near-empty one. Crowd-sourced
|
||||||
|
libraries reliably die at cold-start: nobody contributes to an empty library (no readers yet),
|
||||||
|
and nobody pays for an empty one (no value yet), so both sides wait forever.
|
||||||
|
|
||||||
|
**The rule:** before we ask anyone to pay, the team and co-authors seed a **Minimum Lovable
|
||||||
|
Library** — a floor of tested workflows (recommended **15–20 across ≥3 verticals**, team to
|
||||||
|
ratify) — themselves. This is a launch gate. Community contribution is what happens *after* the
|
||||||
|
shelf is worth browsing. *(This is the single biggest risk in the whole plan; see
|
||||||
|
[PRD §5.2](AiBook_PRD.md).)*
|
||||||
|
|
||||||
|
### 4.3 How people actually learn (the social layer — mostly post-launch)
|
||||||
|
These methods are what make the book feel alive. They are **Layer 3** — designed now, switched on
|
||||||
|
around and after launch, not gating it:
|
||||||
|
|
||||||
|
1. **Read → Do → Share.** Every workflow ends in a Try-it; readers post results back. Learning
|
||||||
|
becomes applied, visible, and contagious.
|
||||||
|
2. **Book Circles.** Small cohorts read one workflow a week and review each other's Try-its — the
|
||||||
|
online echo of the in-person retreats.
|
||||||
|
3. **Practice-to-publish.** A reader's Try-it result, once curated, can become a
|
||||||
|
micro-contribution — the on-ramp from reader to contributor.
|
||||||
|
4. **Workflow of the Week.** A public showcase (site + community + email) — the "open classroom"
|
||||||
|
that makes the book visible to non-subscribers.
|
||||||
|
5. **The Kickstarter as lesson one.** Every campaign update ships a mini-lesson — "funded isn't
|
||||||
|
the finish line; here's Chapter 1" — so the campaign itself teaches.
|
||||||
|
|
||||||
|
### 4.4 Digital surface (current state)
|
||||||
|
| Surface | What it is | Status |
|
||||||
|:--|:--|:--|
|
|:--|:--|:--|
|
||||||
| `aibook.fun` domain | Public home: pitch, sample workflows, affiliate signup, campaign link | 🔴 parked, **expires 2026-09-05** — auto-renew OPEN (@GTM) |
|
| `aibook.fun` domain | Public home: pitch, sample workflows, affiliate signup, campaign link | Parked — **expires 09-05, renew immediately** |
|
||||||
| Framer landing (POC) | Staged `217fbfc` (8 files: index, styles, affiliate.js, content.json, NFT-free mapping, layout spec) | 🟡 staged-local, not pushed (stage-never-push → @GTM:ADMIN) |
|
| Landing page (built) | A staged proof-of-concept, ready to review and push live | Staged locally, not yet public |
|
||||||
| Subscription access | Digital access key → PDF + web reader + annual updates (SOT FAQ wording) | NOT LIVE (post-campaign) |
|
| Subscription access | Digital key → PDF + web reader + annual updates | Not built yet (post-campaign) |
|
||||||
| Community | WeOwn Chat (bMAIT AiBook channel + Circles), Signal, FluentCRM | PARTIAL — channel LIVE; Circles not built |
|
| Community | Team channel live; cohort spaces not built | Partial |
|
||||||
| Kickstarter page | Hero video, 6 tiers, stretch goals, FAQ, risks | NOT LIVE — build W35–W37 |
|
| Kickstarter page | Hero video, tiers, stretch goals, FAQ, risks | Not built — build in the weeks before launch |
|
||||||
|
|
||||||
### 4.5 Kickstarter package (SOT-derived, dates refreshed)
|
### 4.5 The Kickstarter package
|
||||||
- **Launches 9/26/2026** (CONFIRMED; SOT Apr–May = Season-003 vintage, superseded).
|
- **Launches 9/26/2026.** *(The source plan's earlier spring dates are superseded.)*
|
||||||
- Goals: `$5K` min / `$35K` target / `$54K` stretch · 706-backer projection ≈ $53.6K.
|
- **Goals:** $5K min · $35K target · $54K stretch (≈706-backer projection).
|
||||||
- Tiers: ☕ $10 Supporter · 📚 **$47 THE BOOK** · 🎯 $88 Advisor Bundle · 🏆 $248 VIP · 🤝 $488 Cooperative Patron · 🏛️ $4,888 Founding Sponsor.
|
- **Pledge tiers:** ☕ $10 Supporter · 📚 **$47 The Book** · 🎯 $88 Advisor Bundle · 🏆 $248 VIP ·
|
||||||
- Stretches: audiobook $20K · workbook $30K · video course $40K · community $50K.
|
🤝 $488 Cooperative Patron · 🏛️ $4,888 Founding Sponsor.
|
||||||
- **NFT-free mandatory** (KS bans NFT/Web3/crypto — translation table exists; Risk #4 Critical — PRD §7 refreshed register). "Subscription NFT" internally → **"annual digital subscription"** publicly.
|
- **Stretch goals:** audiobook ($20K) · workbook ($30K) · video course ($40K) · community ($50K).
|
||||||
- **Affiliate (Kickbooster.me):** co-author 15% · community 10% · podcast 10% · press 5% · 30-day cookie · native KS integration · **~$0 upfront to join; Kickbooster fee = 10% on referred amount (R1 — restored from ProductBuzz v0.1).**
|
- **Affiliate (via Kickbooster):** co-author 15% · community 10% · podcast 10% · press 5% ·
|
||||||
|
30-day cookie · ~$0 to join · ~10% platform fee on referred pledges.
|
||||||
|
- **Hard constraint — no crypto/Web3/NFT language anywhere public.** Kickstarter bans it; a
|
||||||
|
single scrub gate reviews every asset before submission. *(See [PRD Appendix A](AiBook_PRD.md).)*
|
||||||
|
|
||||||
## 5. Ecosystem integration map
|
---
|
||||||
| PRJ | Connection | Use |
|
|
||||||
|:--|:--|:--|
|
## 5. Where it fits in the ecosystem
|
||||||
| PRJ-002 AgencyPRO | Book = top of funnel; Sponsors get BUNDLE | Backer → AgencyPRO pipeline |
|
|
||||||
| PRJ-012 BurnedOutAdvisor | Primary sales/distribution | Retreat + media synergy |
|
| Connected program | The connection |
|
||||||
| PRJ-019 Webinar | Backers → webinar → AgencyPRO | Supporter-tier follow-up |
|
|:--|:--|
|
||||||
| PRJ-029 WeOwn.Events | #FlowsBros + Luma scheduling | Showcase + retreats |
|
| AgencyPRO | The book is the top of its funnel; sponsors get a bundle |
|
||||||
| PRJ-030 Email Infrastructure | FluentCRM on INT-P05 (@LDC) | Pre-launch list + sequences |
|
| BurnedOutAdvisor | Primary sales/distribution; retreat + media synergy |
|
||||||
| WeOwn.FM | #FlowsBros | Public classroom |
|
| Webinar program | Backers → webinar → AgencyPRO follow-up |
|
||||||
|
| WeOwn.Events | Showcase + retreats scheduling |
|
||||||
|
| Email infrastructure | Pre-launch list + campaign sequences |
|
||||||
|
| WeOwn.FM | The public "open classroom" broadcast |
|
||||||
|
|
||||||
|
*Keep these as low-effort connections in v1 — the funnel is real value but shouldn't pull focus
|
||||||
|
from the core loop.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Commercial model (one honest table)
|
||||||
|
|
||||||
## 6. Commercial model (one table, honest status)
|
|
||||||
| Item | Value | Status |
|
| Item | Value | Status |
|
||||||
|:--|:--|:--|
|
|:--|:--|:--|
|
||||||
| Anchor subscription | $47/yr digital + hardcopy upcharge | DRAFT (SOT-documented; needs 9/26 relaunch re-sign @GTM) |
|
| Anchor subscription | $47/yr digital + hardcopy upcharge | **Draft** — needs commercial re-sign for the 9/26 relaunch |
|
||||||
| Lifetime access (pat's proposal) | TBD — recommended premium tier (~$97–147 DRAFT) | OPEN — @GTM (R-011) |
|
| Lifetime access | Proposed; ~$97–147 one-time *(figures illustrative — do not quote)* | **Open decision** ([D-1](#8-open-decisions)) |
|
||||||
| Curator royalties (pat's proposal) | TBD — none documented; current mechanic = affiliate | OPEN — @GTM (R-011) |
|
| Contributor royalties | None documented today; current mechanic is affiliate referral only | **Open decision** ([D-2](#8-open-decisions)) |
|
||||||
| Projected revenue (SOT) | $53,628 @ 706 backers | DRAFT planning figure |
|
| Projected revenue | ~$53,600 at 706 backers | Draft planning figure |
|
||||||
| Budget (SOT) | Ads $2,280 · KS fees ~$2,800 · Kickbooster ~$700 · pre-revenue ~$6K | DRAFT planning figure |
|
| Pre-revenue budget | ~$6,000 (ads + KS fees + affiliate fee) | Draft planning figure |
|
||||||
| eBookNFT platform | 4 domains held ($216.16); first product = this book | IDEA — not live |
|
| "eBookNFT platform" | A future idea; this book is the first product | Not in scope |
|
||||||
|
|
||||||
**Claims-governance rule (§8):** nothing in this table may be quoted externally until the row is signed. Never present a DRAFT/OPEN commercial figure as final.
|
**The rule:** no row in this table may be quoted externally until it's signed. Never present a
|
||||||
|
draft or open figure as final. *(This is one of the two governance gates worth keeping — see
|
||||||
|
[§7](#7-trust--governance-kept-proportionate).)*
|
||||||
|
|
||||||
## 7. Trust, governance & incident posture
|
### The subscription-vs-lifetime tension (worth reasoning through, not deferring)
|
||||||
- **Claims register entries to open:** "lifetime access available" (DRAFT) · "contributors earn royalties" (DRAFT) · "$47/yr subscription" (DRAFT-until-relaunch-sign) · "affiliate rates 15/10/10/5" (DRAFT-until-relaunch-sign) · "launches 9/26" (**CONFIRMED** — relay + operator-verified fact; not LIVE = not yet running in production).
|
A ~$97–147 lifetime tier breaks even against $47/yr in about 2–3 years. That directly undercuts
|
||||||
- **KS rejection risk** (Risk #4 Critical — PRD §7 refreshed register): translation table enforced on every surface; scrub gate before submit.
|
the recurring-revenue thesis: either the content genuinely stays valuable (and you're actively
|
||||||
- **Content quality:** curation pipeline + "grounded in practice" template = answer to hallucination anxiety. "REAL" is not proof — visible tool returns are (#203).
|
selling a money-loser) or it doesn't (and the annual-renewal logic is false). **Recommendation:**
|
||||||
- **3-Floor discipline (manual §5.3/§7.1):** F1 = confidential material never in public chapters (flyer-rule analog) · F2 = paid/subscriber content isolation · F3 = off-domain widget (Book's boundary floor = §8 claims-never-run-ahead-of-capability) · instrument events, never document content (§6.3); breach of any floor = Sev-1 + growth pause (§7.2).
|
keep $47/yr as the anchor; if you want a lifetime option, bound it as an early-bird instrument to
|
||||||
- **Domain continuity:** expiry 09-05 = Sev-2-class risk for a 09-26 launch if auto-renew is off. Owner: @GTM (registrar access). This spec cannot clear it.
|
capitalize the community fund (capped quantity), and say so plainly — don't ship recurring and
|
||||||
|
lifetime as equals on vibes.
|
||||||
## 8. Open decisions (blocking spec → v1.0)
|
|
||||||
| # | Decision | Lane | Blocked by |
|
|
||||||
|:--|:--|:--|:--|
|
|
||||||
| **D-1** | Lifetime tier: yes/no, price, position | @GTM (R-011) | pat's proposal vs SOT $47/yr |
|
|
||||||
| **D-2** | Royalty mechanics (fixed split? pool? affiliates only?) | @GTM (R-011) | none documented; SOT = affiliate |
|
|
||||||
| **D-3** | Domain auto-renew aibook.fun | @GTM (registrar) | registrar console — **CRITICAL PATH** |
|
|
||||||
| **D-4** | SOT refresh → v3.3.0 (9/26 dates, relaunch re-sign) | @GTM + @THY | D-1/D-2 first |
|
|
||||||
| **D-5** | Framer POC → production push | @GTM:ADMIN | D-3 (don't build on a domain that may lapse) |
|
|
||||||
| **D-6** | Co-author confirmations (Piper, Kerner) | @GTM outreach | their reply |
|
|
||||||
| **D-7** | Product-Op Manual §3-4/§6.3/§8 + 3-floor numbering | RESOLVED (DRI) — ProductBuzz ruling 2026-08-22 → SSOT §5: F1 confidentiality · F2 cross-customer · F3 off-domain (all FLOOR 0, manual §5.3/§7.1); @pat override window open |
|
|
||||||
|
|
||||||
## 9. Sources
|
|
||||||
PRJ-031 SOT v3.2.1.3 (curl-verified 2026-08-22) · bMAIT AiBook.fun channel desc (relay 08-22) · FedArchBuzz LEARN GTM_2026-W33_6089 · 🧩 GTM LEARN 5017 · @pat concept post 08-21 (a05e44b2) · ProductBuzz draft `PLANS/AIBOOK/` (merged) · `RESEARCH/AIBOOK_FUN_NOTE.md` · RDAP/DNS/HTTP checks 08-21.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
*CONSOLIDATED v1.0-DRAFT — single canonical version (v0.3 trunk + R1–R3 + F1–F2 + SEAT-1 S1–S3). Superseded drafts preserved at `PLANS/AIBOOK/` (v0.1 trio) pending @pat archive call. #LLMmodel: DeepSeek V4 Flash 0731.*
|
|
||||||
|
## 7. Trust & governance (kept proportionate)
|
||||||
|
|
||||||
|
The prior draft carried heavy governance machinery for a pre-revenue, unvalidated launch. Two
|
||||||
|
gates prevent real harm and stay sharp; the rest scales up later, with the product.
|
||||||
|
|
||||||
|
**Keep sharp (active gates):**
|
||||||
|
- **No-crypto scrub.** Kickstarter will reject crypto/Web3/NFT language. Every public asset is
|
||||||
|
scrubbed against a translation table before submission. This is existential.
|
||||||
|
- **Truth in claims.** No draft/unconfirmed figure appears on any external surface. A short
|
||||||
|
claims register tracks each commercial claim and whether it's signed.
|
||||||
|
|
||||||
|
**Proportionate (plain rules, not ceremony):**
|
||||||
|
- Confidential material never appears in public workflows; examples are non-confidential.
|
||||||
|
- Instrument **events, not content** — record *that* a workflow was used/submitted, never the
|
||||||
|
private content itself.
|
||||||
|
- Describe data-handling honestly ("your documents stay on your instance") — never claim a
|
||||||
|
security property we haven't verified is on.
|
||||||
|
|
||||||
|
**One integrity question to resolve** ([D-6](#8-open-decisions)): if the "ownership" story was
|
||||||
|
originally token/NFT mechanics, and all of that is stripped for Kickstarter, does *"you own a
|
||||||
|
stake"* still describe something real — governance rights? revenue share? credited authorship? —
|
||||||
|
or is it now marketing over an ordinary subscription? Define it concretely or drop the word.
|
||||||
|
|
||||||
|
**Domain continuity:** aibook.fun expires 09-05, three weeks before launch. This isn't a
|
||||||
|
strategic decision — it's a chore. Renew it now. *(See [Implementation Plan](AiBook_Implementation_Plan.md), "Do this week.")*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Open decisions
|
||||||
|
|
||||||
|
The genuinely-open strategic calls (the domain "decision" is gone — it's a same-day chore). Each
|
||||||
|
carries a recommendation as a starting point, not a settled answer.
|
||||||
|
|
||||||
|
| # | Decision | Recommendation |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **D-1** | Lifetime tier — offer it, at what price/position? | Keep $47/yr as the anchor; a lifetime option only as a bounded early-bird capitalization play, not the default. |
|
||||||
|
| **D-2** | Contributor payment — how do people earn for *writing* workflows, not just referring? | **Resolve before launch** — it's the engine of the "living book." Royalty pool, per-workflow bounty, or an explicit "v1 authored, paid contribution in Q1." |
|
||||||
|
| **D-3** | Confirm the two unconfirmed co-authors (Higher Ed, Communities) | Confirm this week, or cut those verticals from v1 and add post-launch. |
|
||||||
|
| **D-4** | Refresh the source-of-truth plan to the 9/26 dates & re-signed terms | Do after D-1/D-2 land. |
|
||||||
|
| **D-5** | Human-first or agent-first for v1? | Human-first. Build the format so agents *can* read it later; optimize v1 for human learners. |
|
||||||
|
| **D-6** | Does "you own a stake" survive as a *true* claim without token mechanics? | Define ownership concretely, or stop saying it publicly. Add to the claims register. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Appendix — What changed in this revision
|
||||||
|
|
||||||
|
A plain-language rewrite with a product review folded in. The substance that moved:
|
||||||
|
|
||||||
|
1. **Core loop + layered model** (§1) — v1 is the read→run→share loop; the contributor economy,
|
||||||
|
cohorts, agent-onboarding, and funnel are explicit later layers, not co-equal launch goals.
|
||||||
|
2. **Told the truth about the contributor economy** (§3) — it's currently a referral scheme;
|
||||||
|
writing workflows earns a byline, not money. Paid contribution (D-2) is now launch-blocking.
|
||||||
|
3. **Added the cold-start / Minimum Lovable Library rule** (§4.2) as the #1 risk and a launch
|
||||||
|
gate.
|
||||||
|
4. **Forced the subscription-vs-lifetime tension** into a reasoned recommendation (§6, D-1).
|
||||||
|
5. **Reframed principle 4** — ownership is a reason to *stay*, not the opening *pitch* (utility
|
||||||
|
sells; ownership retains).
|
||||||
|
6. **Cut governance to proportionate** (§7) — kept the no-crypto scrub and truth-in-claims;
|
||||||
|
dropped the ceremony. Added the "does ownership survive the scrub" integrity question (D-6).
|
||||||
|
7. **Domain demoted** from a gated decision to a same-day chore.
|
||||||
|
8. **Translated the jargon out** — internal codes, seat/role labels, and merge-history removed
|
||||||
|
from the body. Old cross-references can be mapped back on request.
|
||||||
|
|||||||
@@ -1,2 +1,68 @@
|
|||||||
# aibook-fun
|
# 📚 AIBook.fun
|
||||||
|
|
||||||
|
**A living, crowd-written field guide to using AI agents responsibly at work.**
|
||||||
|
|
||||||
|
AIBook.fun's unit of content isn't a chapter — it's a **workflow you can actually run**: a
|
||||||
|
documented, tested recipe for getting a real job done with AI, guardrails included. It's written
|
||||||
|
and kept current by the practitioners who use it, and it launches as an annual subscription,
|
||||||
|
crowdfunded on Kickstarter.
|
||||||
|
|
||||||
|
> **Status: planning stage.** This repository holds the product's planning documents. The product
|
||||||
|
> is not yet live, and everything here is a working draft — figures, dates, and commercial terms
|
||||||
|
> are planning assumptions, not commitments. Public launch is **targeted for September 26, 2026**.
|
||||||
|
|
||||||
|
## The idea in one loop
|
||||||
|
|
||||||
|
The one thing the product must do well:
|
||||||
|
|
||||||
|
```
|
||||||
|
READ a workflow → RUN the Try-it (~15 min) → SHARE the result → (come back)
|
||||||
|
```
|
||||||
|
|
||||||
|
If readers run workflows and share results, the guide is alive. Everything else — community
|
||||||
|
contribution, cohort learning, onboarding for AI agents — is a layer built on top of that loop.
|
||||||
|
|
||||||
|
## Who it's for
|
||||||
|
|
||||||
|
Busy professionals — in real estate, financial advice, fractional executive roles, higher
|
||||||
|
education, community leadership, and technology — who want to **apply an AI workflow this week**,
|
||||||
|
not read AI theory.
|
||||||
|
|
||||||
|
## What's in this repository
|
||||||
|
|
||||||
|
This is a documentation and planning repo. Three companion documents define the product:
|
||||||
|
|
||||||
|
| Document | What it covers |
|
||||||
|
|:--|:--|
|
||||||
|
| [Product Requirements (PRD)](AiBook_PRD.md) | What we're building and why — scope, requirements, success metrics, open decisions |
|
||||||
|
| [Product Specification (Spec)](AiBook_Spec.md) | The thinking behind it — vision, principles, content model, business model |
|
||||||
|
| [Implementation Plan](AiBook_Implementation_Plan.md) | How and when — the path from now to launch and fulfillment |
|
||||||
|
|
||||||
|
New here? Start with the **[Spec](AiBook_Spec.md)** for the vision, then the **[PRD](AiBook_PRD.md)**
|
||||||
|
for the specifics.
|
||||||
|
|
||||||
|
## How it works (the short version)
|
||||||
|
|
||||||
|
- **Content:** every entry follows one *Workflow Recipe* template — problem, method (showing the
|
||||||
|
real tool output), safeguards, evidence, a ~15-minute Try-it, and costs. The template is the
|
||||||
|
quality guarantee — the structural answer to "how do I know this AI advice isn't made up?"
|
||||||
|
- **Editions:** the guide refreshes annually — which is why it's a subscription. AI moves fast,
|
||||||
|
and stale advice is worthless.
|
||||||
|
- **Contribution:** the first edition is written by a founding set of co-authors; open community
|
||||||
|
contribution follows once the library is worth browsing.
|
||||||
|
- **Responsible by design:** the guardrails (data handling, human oversight, failure modes) are
|
||||||
|
part of every workflow, not an appendix.
|
||||||
|
|
||||||
|
## Project status & roadmap
|
||||||
|
|
||||||
|
| Stage | Focus |
|
||||||
|
|:--|:--|
|
||||||
|
| **Now → launch** | Seed the founding library, build the campaign, crowdfund the first edition |
|
||||||
|
| Post-launch | Fulfill the first edition; open community contribution |
|
||||||
|
| Later | Cohort learning, annual editions, deeper ecosystem integration |
|
||||||
|
|
||||||
|
AIBook.fun is part of the **WeOwnNet** ecosystem.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Released under the [MIT License](LICENSE) · © 2026 WeOwnAI.
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
|
||||||
|
# next.js build output
|
||||||
|
/.next/
|
||||||
|
/out/
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug logs
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env*.local
|
||||||
|
|
||||||
|
# vercel
|
||||||
|
.vercel
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
*.tsbuildinfo
|
||||||
|
next-env.d.ts
|
||||||
|
|
||||||
|
# Next.js auto-generated agent rule files (agentRules)
|
||||||
|
AGENTS.md
|
||||||
|
CLAUDE.md
|
||||||
|
|
||||||
|
# scratch / superseded single-file previews
|
||||||
|
preview.html
|
||||||
|
redesign-preview.html
|
||||||
|
node_modules/
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# AIBook.fun Marketing Site
|
||||||
|
|
||||||
|
Scaffolded for Framer import and Next.js (Cloudflare Pages / DigitalOcean).
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
- React 18 + JSX
|
||||||
|
- Tailwind CSS (v4 with @import)
|
||||||
|
- shadcn/ui-ready component structure
|
||||||
|
- SendGrid (email) + Twilio (optional SMS)
|
||||||
|
- Hosting: Cloudflare Pages / DigitalOcean
|
||||||
|
|
||||||
|
## Framer Compatibility
|
||||||
|
These components are standard React + Tailwind. To use in Framer:
|
||||||
|
1. Copy any `.jsx` component file.
|
||||||
|
2. In Framer, add a new Code Component and paste the file contents.
|
||||||
|
3. Ensure your Framer project has Tailwind CSS configured in settings if classes don't render.
|
||||||
|
4. Import `globals.css` or copy Tailwind directives into Framer's CSS settings.
|
||||||
|
|
||||||
|
Note: Framer Sites don't run Next.js natively. For a live site with routing (A/B tests, CMS integrations, analytics events), deploy via Next.js on Cloudflare Pages.
|
||||||
|
|
||||||
|
## Pages scaffolded
|
||||||
|
- `pages/index.jsx` — landing (hero, the book, workflows, tiers, FAQ)
|
||||||
|
- `components/Header.jsx`
|
||||||
|
- `components/Hero.jsx`
|
||||||
|
- `components/Workflows.jsx`
|
||||||
|
- `components/Tiers.jsx`
|
||||||
|
- `components/FAQ.jsx`
|
||||||
|
- `components/Footer.jsx`
|
||||||
|
|
||||||
|
## Key design references (from PRD / Spec)
|
||||||
|
- Utility-first pitch: "run a workflow today" (A/B test hook ready)
|
||||||
|
- 6 verticals listed in Workflows
|
||||||
|
- 3 sample tiers shown ($10 / $47yr / $4,888)
|
||||||
|
- No NFT/crypto/Web3 language (Kickstarter compliance scrubbed)
|
||||||
|
- Event tracking only (not content) — PostHog/Cloudflare Analytics slot available
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
const AUTHORS = [
|
||||||
|
{ tile: "RE", name: "Real Estate & Finance", role: "Market briefs, compliant summaries", status: "confirmed", label: "Co-author confirmed" },
|
||||||
|
{ tile: "CS", name: "Fractional C-Suite", role: "Strategy & board workflows", status: "confirmed", label: "Co-author confirmed" },
|
||||||
|
{ tile: "TE", name: "Technology & RAAI", role: "Agent patterns & safe defaults", status: "confirmed", label: "Co-author confirmed" },
|
||||||
|
{ tile: "HE", name: "Higher Education", role: "Teaching & research integrity", status: "tba", label: "To be announced" },
|
||||||
|
{ tile: "CO", name: "Communities", role: "Moderation & member programs", status: "tba", label: "To be announced" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function Authors() {
|
||||||
|
return (
|
||||||
|
<section className="section authors" id="authors">
|
||||||
|
<div className="wrap">
|
||||||
|
<span className="spec reveal">Who’s writing this</span>
|
||||||
|
<h2 className="reveal">Practitioners, one per vertical.</h2>
|
||||||
|
<p className="lede reveal">
|
||||||
|
Each chapter is owned by someone who does the work — not a generalist writing about
|
||||||
|
it. Names are announced as co-authors confirm.
|
||||||
|
</p>
|
||||||
|
<div className="auth-grid">
|
||||||
|
{AUTHORS.map((a) => (
|
||||||
|
<div className="auth reveal" key={a.tile}>
|
||||||
|
<div className="mono-tile">{a.tile}</div>
|
||||||
|
<h3>{a.name}</h3>
|
||||||
|
<div className="role">{a.role}</div>
|
||||||
|
<div className={`status ${a.status}`}>
|
||||||
|
<i></i>
|
||||||
|
{a.label}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
<div className="auth auth-join reveal">
|
||||||
|
<div>
|
||||||
|
<div className="spec" style={{ marginBottom: "8px" }}>Your name?</div>
|
||||||
|
<p>Contribute a workflow after launch and earn a byline in the guide.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Pure-CSS 3D book styled as the field guide. Decorative, so aria-hidden.
|
||||||
|
* Faces (cover / spine / fore-edge / top / back) are assembled with
|
||||||
|
* transform-style: preserve-3d; see `.book3d` in globals.css.
|
||||||
|
*/
|
||||||
|
export default function Book3D() {
|
||||||
|
return (
|
||||||
|
<div className="book3d" aria-hidden="true">
|
||||||
|
<div className="book3d__inner">
|
||||||
|
<div className="book3d__face book3d__back" />
|
||||||
|
<div className="book3d__face book3d__pages" />
|
||||||
|
<div className="book3d__face book3d__top" />
|
||||||
|
<div className="book3d__face book3d__spine">
|
||||||
|
<span>AIBook.fun · Responsible Agentic AI</span>
|
||||||
|
</div>
|
||||||
|
<div className="book3d__face book3d__cover">
|
||||||
|
<span className="book3d__kicker">The Field Guide</span>
|
||||||
|
<h3 className="book3d__title">
|
||||||
|
Responsible
|
||||||
|
<br />
|
||||||
|
Agentic AI
|
||||||
|
</h3>
|
||||||
|
<span className="book3d__line" />
|
||||||
|
<span className="book3d__sub">Tested workflows you can actually run</span>
|
||||||
|
<svg className="book3d__mark" viewBox="0 0 40 40" fill="none">
|
||||||
|
<circle cx="20" cy="20" r="17.5" stroke="#efe9db" strokeWidth="1" opacity="0.7" />
|
||||||
|
<path d="M20 5 L22.6 20 L20 35 L17.4 20 Z" fill="#efe9db" />
|
||||||
|
<path d="M5 20 L20 17.4 L35 20 L20 22.6 Z" fill="#efe9db" opacity="0.55" />
|
||||||
|
</svg>
|
||||||
|
<span className="book3d__brand">AIBook.fun</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import EmailForm from "./EmailForm";
|
||||||
|
|
||||||
|
export default function Capture() {
|
||||||
|
return (
|
||||||
|
<section className="section capture" id="get">
|
||||||
|
<div className="capture-in">
|
||||||
|
<span className="spec reveal">Be first</span>
|
||||||
|
<h2 className="reveal">Get the preview chapter free.</h2>
|
||||||
|
<p className="reveal">
|
||||||
|
Join the pre-launch list. You’ll get one full workflow to keep, a heads-up the morning
|
||||||
|
we launch on Kickstarter, and early-backer pricing. Three emails. No spam, ever.
|
||||||
|
</p>
|
||||||
|
<div className="reveal">
|
||||||
|
<EmailForm cta="Send it to me" />
|
||||||
|
</div>
|
||||||
|
<p className="fine reveal">
|
||||||
|
Launching Sept 26, 2026 · unsubscribe anytime · we track sign-ups, never your work
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
const ITEMS = [
|
||||||
|
{ num: "01", name: "Real Estate", desc: "Market briefs & listings, without leaking client data" },
|
||||||
|
{ num: "02", name: "Financial Advisors", desc: "Portfolio summaries that stay compliant & reviewed" },
|
||||||
|
{ num: "03", name: "Fractional C-Suite", desc: "Board updates & plans with real escalation paths" },
|
||||||
|
{ num: "04", name: "Higher Education", desc: "Course & research workflows with academic integrity" },
|
||||||
|
{ num: "05", name: "Communities", desc: "Moderation & programming that respects members" },
|
||||||
|
{ num: "06", name: "Technology", desc: "Agent patterns, evals & the responsible defaults" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function Contents() {
|
||||||
|
return (
|
||||||
|
<section className="section contents" id="contents">
|
||||||
|
<div className="wrap">
|
||||||
|
<span className="spec reveal">The founding library</span>
|
||||||
|
<h2 className="reveal">Six practices. Written by people who do the work.</h2>
|
||||||
|
<div className="toc reveal">
|
||||||
|
{ITEMS.map((x) => (
|
||||||
|
<a href="#get" key={x.num}>
|
||||||
|
<span className="num">{x.num}</span>
|
||||||
|
<span className="name">{x.name}</span>
|
||||||
|
<span className="desc">{x.desc}</span>
|
||||||
|
<span className="arrow" aria-hidden="true">→</span>
|
||||||
|
</a>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pre-launch email capture. Front-end demo only: on submit it shows a success
|
||||||
|
* state. Wire `postEmail` to the real CRM endpoint (FluentCRM tag `prelaunch`)
|
||||||
|
* when the backend is ready.
|
||||||
|
*/
|
||||||
|
export default function EmailForm({ className = "", cta = "Send it to me" }) {
|
||||||
|
const [email, setEmail] = useState("");
|
||||||
|
const [done, setDone] = useState(false);
|
||||||
|
|
||||||
|
async function onSubmit(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
if (!email) return;
|
||||||
|
// TODO: await postEmail(email) — POST to CRM, then setDone(true)
|
||||||
|
setDone(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (done) {
|
||||||
|
return (
|
||||||
|
<p className="ok-msg" role="status">
|
||||||
|
✓ You’re on the list — check your inbox for the preview chapter.
|
||||||
|
</p>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<form className={className} onSubmit={onSubmit} noValidate>
|
||||||
|
<input
|
||||||
|
className="field"
|
||||||
|
type="email"
|
||||||
|
required
|
||||||
|
placeholder="you@work.com"
|
||||||
|
aria-label="Email address"
|
||||||
|
value={email}
|
||||||
|
onChange={(e) => setEmail(e.target.value)}
|
||||||
|
/>
|
||||||
|
<button className="btn btn-primary" type="submit">
|
||||||
|
{cta}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
const QA = [
|
||||||
|
{
|
||||||
|
q: "Is this AI theory, or something I can actually run?",
|
||||||
|
a: "Something you run. Every workflow shows the real tool output, lists the real steps, and ends in a ~15-minute Try-it on non-confidential sample data. If you can’t run it, it doesn’t ship.",
|
||||||
|
open: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "How is this different from a course?",
|
||||||
|
a: "A course teaches concepts; this is a field guide of tested recipes you apply to your real job this week. It refreshes annually because AI moves fast — stale advice is worthless.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "What does “responsible by design” actually mean?",
|
||||||
|
a: "Every recipe includes data-handling rules, human-oversight steps, failure modes, and escalation paths. They’re part of the template — not an appendix, not an afterthought.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "Can I contribute a workflow after backing?",
|
||||||
|
a: "Yes — open contribution opens once the founding library is live. We’re finalizing how contributors get paid (not just a byline) before launch.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "Why subscribe instead of buy once?",
|
||||||
|
a: "Because a static AI book is out of date in months. The subscription is what keeps every workflow current — and it’s what funds the practitioners keeping them that way.",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function FAQ() {
|
||||||
|
return (
|
||||||
|
<section className="section faq" id="faq">
|
||||||
|
<div className="wrap" style={{ maxWidth: "760px" }}>
|
||||||
|
<h2 className="reveal">Frequently asked.</h2>
|
||||||
|
<div className="qa reveal">
|
||||||
|
{QA.map((x, i) => (
|
||||||
|
<details key={i} open={x.open || undefined}>
|
||||||
|
<summary>
|
||||||
|
{x.q}
|
||||||
|
<span className="pl" aria-hidden="true">+</span>
|
||||||
|
</summary>
|
||||||
|
<div className="ans">{x.a}</div>
|
||||||
|
</details>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
const NOTES = [
|
||||||
|
{
|
||||||
|
n: "01 / Stays current",
|
||||||
|
h: "A subscription, not a static book",
|
||||||
|
p: "AI moves too fast for a book you buy once. Each annual edition is refreshed so the workflows still work when you open them.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
n: "02 / Authored, then open",
|
||||||
|
h: "Written by practitioners first",
|
||||||
|
p: "The first edition is seeded by co-authors — a real founding library, not an empty shelf. Open, paid contribution opens once it’s worth browsing.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
n: "03 / Responsible by design",
|
||||||
|
h: "Guardrails in every recipe",
|
||||||
|
p: "Data handling, human oversight, failure modes, escalation — part of the template on every workflow, never an appendix.",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function FieldNotes() {
|
||||||
|
return (
|
||||||
|
<section className="notes">
|
||||||
|
<div className="wrap">
|
||||||
|
<div className="notes-grid">
|
||||||
|
{NOTES.map((x) => (
|
||||||
|
<div className="note reveal" key={x.n}>
|
||||||
|
<div className="n">{x.n}</div>
|
||||||
|
<h3>{x.h}</h3>
|
||||||
|
<p>{x.p}</p>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
export default function Footer() {
|
||||||
|
return (
|
||||||
|
<footer className="footer">
|
||||||
|
<div className="foot-in">
|
||||||
|
<div className="foot-top">
|
||||||
|
<div>
|
||||||
|
<div className="logo">
|
||||||
|
AIBook<b>.</b>
|
||||||
|
<span className="dot">fun</span>
|
||||||
|
</div>
|
||||||
|
<p className="foot-blurb">
|
||||||
|
A living, crowd-written field guide to using AI agents responsibly at work. Part
|
||||||
|
of the WeOwnNet ecosystem.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="foot-links">
|
||||||
|
<a href="#recipe">A recipe</a>
|
||||||
|
<a href="#contents">Contents</a>
|
||||||
|
<a href="#get">Preview</a>
|
||||||
|
<a href="#faq">FAQ</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="colophon">
|
||||||
|
© 2026 WeOwnAI · MIT-licensed docs · Launching on Kickstarter, Sept 26, 2026
|
||||||
|
<br />
|
||||||
|
Set in Fraunces, Hanken Grotesk & JetBrains Mono. This is a pre-launch page — pledge
|
||||||
|
tiers and pricing are finalized at launch.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import EmailForm from "./EmailForm";
|
||||||
|
import Book3D from "./Book3D";
|
||||||
|
|
||||||
|
export default function Hero() {
|
||||||
|
return (
|
||||||
|
<section className="hero" id="top">
|
||||||
|
<div className="hero-tabs" aria-hidden="true">
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
</div>
|
||||||
|
<div className="wrap hero-grid">
|
||||||
|
<div className="hero-visual">
|
||||||
|
<Book3D />
|
||||||
|
</div>
|
||||||
|
<div className="hero-copy">
|
||||||
|
<div className="eyebrow">
|
||||||
|
<span className="tick"></span>
|
||||||
|
<span className="spec">
|
||||||
|
Field guide · Edition 001 · Kickstarter Sept 26, 2026
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<h1>
|
||||||
|
The field guide to using AI agents{" "}
|
||||||
|
<span className="serif-it">responsibly</span> at work.
|
||||||
|
</h1>
|
||||||
|
<p className="hero-sub">
|
||||||
|
Not theory. Not hype. A subscription guide of{" "}
|
||||||
|
<span className="hl">tested workflows you can actually run</span> — each with the
|
||||||
|
real tool output, the guardrails, and a 15-minute exercise so you learn by doing.
|
||||||
|
</p>
|
||||||
|
<EmailForm className="hero-form" cta="Send me the preview chapter" />
|
||||||
|
<p className="hero-note">
|
||||||
|
Free preview + first access at launch · <b>3 emails, no spam</b>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
export default function Letter() {
|
||||||
|
return (
|
||||||
|
<section className="section letter" id="letter">
|
||||||
|
<div className="letter-in">
|
||||||
|
<span className="spec reveal">A note on why</span>
|
||||||
|
<p className="letter-body reveal">
|
||||||
|
Most AI advice is either hype or theory — and neither survives contact with real
|
||||||
|
work. We’re writing the guide we wish we’d had: workflows that <em>actually run</em>,
|
||||||
|
with the <span className="mark">guardrails built in</span>, kept honest by the people
|
||||||
|
who use them every day. Fund the first edition, and you don’t just get the book — you
|
||||||
|
help decide what goes in it.
|
||||||
|
</p>
|
||||||
|
<div className="sign reveal">
|
||||||
|
<span className="scrawl">The co-authors</span>
|
||||||
|
<span className="who">
|
||||||
|
AIBook.fun founding team
|
||||||
|
<br />
|
||||||
|
Real estate · finance · leadership · tech
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
import { useEffect, useRef, useState } from "react";
|
||||||
|
|
||||||
|
const LINKS = [
|
||||||
|
{ href: "#recipe", label: "A recipe" },
|
||||||
|
{ href: "#contents", label: "Contents" },
|
||||||
|
{ href: "#letter", label: "Why" },
|
||||||
|
{ href: "#faq", label: "FAQ" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function Nav() {
|
||||||
|
const [scrolled, setScrolled] = useState(false);
|
||||||
|
const [open, setOpen] = useState(false);
|
||||||
|
const navRef = useRef(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const onScroll = () => setScrolled(window.scrollY > 12);
|
||||||
|
onScroll();
|
||||||
|
window.addEventListener("scroll", onScroll, { passive: true });
|
||||||
|
return () => window.removeEventListener("scroll", onScroll);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// While the mobile menu is open: close on Escape or an outside tap.
|
||||||
|
useEffect(() => {
|
||||||
|
if (!open) return;
|
||||||
|
const onKey = (e) => e.key === "Escape" && setOpen(false);
|
||||||
|
const onDown = (e) => {
|
||||||
|
if (navRef.current && !navRef.current.contains(e.target)) setOpen(false);
|
||||||
|
};
|
||||||
|
document.addEventListener("keydown", onKey);
|
||||||
|
document.addEventListener("pointerdown", onDown);
|
||||||
|
return () => {
|
||||||
|
document.removeEventListener("keydown", onKey);
|
||||||
|
document.removeEventListener("pointerdown", onDown);
|
||||||
|
};
|
||||||
|
}, [open]);
|
||||||
|
|
||||||
|
const close = () => setOpen(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<nav ref={navRef} className={`nav${scrolled ? " scrolled" : ""}${open ? " open" : ""}`}>
|
||||||
|
<div className="nav-in">
|
||||||
|
<a className="logo" href="#top" onClick={close}>
|
||||||
|
AIBook<b>.</b>
|
||||||
|
<span className="dot">fun</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div className="nav-links">
|
||||||
|
{LINKS.map((l) => (
|
||||||
|
<a key={l.href} href={l.href}>
|
||||||
|
{l.label}
|
||||||
|
</a>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="#get" className="btn btn-primary nav-cta">
|
||||||
|
Get the preview
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="nav-toggle"
|
||||||
|
aria-label={open ? "Close menu" : "Open menu"}
|
||||||
|
aria-expanded={open}
|
||||||
|
aria-controls="mobile-menu"
|
||||||
|
onClick={() => setOpen((v) => !v)}
|
||||||
|
>
|
||||||
|
<span className="bars" aria-hidden="true"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="nav-menu" id="mobile-menu">
|
||||||
|
{LINKS.map((l) => (
|
||||||
|
<a key={l.href} href={l.href} onClick={close}>
|
||||||
|
{l.label}
|
||||||
|
</a>
|
||||||
|
))}
|
||||||
|
<a href="#get" className="btn btn-primary" onClick={close}>
|
||||||
|
Get the preview
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
function ShieldCheck() {
|
||||||
|
return (
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||||
|
<path
|
||||||
|
d="M8 1.5 2.5 4v3.5c0 3 2.3 5.4 5.5 7 3.2-1.6 5.5-4 5.5-7V4L8 1.5Z"
|
||||||
|
stroke="#1C5D4C"
|
||||||
|
strokeWidth="1.3"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m5.6 8 1.7 1.7L10.6 6"
|
||||||
|
stroke="#1C5D4C"
|
||||||
|
strokeWidth="1.3"
|
||||||
|
strokeLinecap="round"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Recipe() {
|
||||||
|
return (
|
||||||
|
<section className="section" id="recipe">
|
||||||
|
<div className="wrap">
|
||||||
|
<div className="recipe-head reveal">
|
||||||
|
<span className="spec">Read an actual recipe</span>
|
||||||
|
<h2>Every entry is a workflow you can run.</h2>
|
||||||
|
<p>
|
||||||
|
Here’s a real one from the founding library — the whole thing, exactly as it
|
||||||
|
appears in the guide. This is the format behind every workflow.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="recipe reveal">
|
||||||
|
<div className="recipe-top">
|
||||||
|
<span className="recipe-id">
|
||||||
|
recipe <b>RE-04</b> · v1.2 · ~15 min
|
||||||
|
</span>
|
||||||
|
<span className="recipe-vert">Real Estate</span>
|
||||||
|
</div>
|
||||||
|
<div className="recipe-body">
|
||||||
|
<h3 className="recipe-title">
|
||||||
|
Draft a property-market brief with an AI agent — without leaking client data.
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div className="row">
|
||||||
|
<div className="k">Problem</div>
|
||||||
|
<div className="v">
|
||||||
|
You need a sharp neighborhood market brief for a client meeting, fast — but
|
||||||
|
the listing sheet and client notes can’t go into a public model.{" "}
|
||||||
|
<span className="sub">
|
||||||
|
Job: turn messy local data into a credible one-pager in minutes, safely.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="row">
|
||||||
|
<div className="k">Method</div>
|
||||||
|
<div className="v">
|
||||||
|
<ol className="steps">
|
||||||
|
<li>Strip identifiers from the source data locally (a provided script does this).</li>
|
||||||
|
<li>Prompt the agent with the anonymized sample and a fixed brief template.</li>
|
||||||
|
<li>Review the draft against the checklist before anything leaves your machine.</li>
|
||||||
|
</ol>
|
||||||
|
<div className="term" role="img" aria-label="Sample terminal output from the workflow">
|
||||||
|
<div className="term-bar">
|
||||||
|
<i></i>
|
||||||
|
<i></i>
|
||||||
|
<i></i>
|
||||||
|
<span>agent — property-brief · sample dataset (non-confidential)</span>
|
||||||
|
</div>
|
||||||
|
<pre>
|
||||||
|
<span className="c-dim">{"$ "}</span>
|
||||||
|
<span className="c-user">{"brief"}</span>
|
||||||
|
{" --input "}
|
||||||
|
<span className="c-key">{"sample_listings.csv"}</span>
|
||||||
|
{" --template market-1pager\n\n"}
|
||||||
|
<span className="c-dim">{"✓ redacted 3 fields (owner_name, phone, exact_address)\n✓ 41 comps in radius · median $/sqft computed\n\n"}</span>
|
||||||
|
<span className="c-ok">{"MARKET BRIEF — Maple Heights (sample)\n"}</span>
|
||||||
|
{" · Median list: $420/sqft (▲ 4.1% QoQ)\n · Days on market: 22 (was 31)\n · Inventory: 1.8 mo — seller-leaning\n · Read: price to comp, expect <2 wks at ask\n\n"}
|
||||||
|
<span className="c-dim">{"# cost this run: $0.03 · model: claude · 2,140 tokens"}</span>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="row">
|
||||||
|
<div className="k">Safeguards</div>
|
||||||
|
<div className="v">
|
||||||
|
<div className="guard">
|
||||||
|
<ShieldCheck />
|
||||||
|
<span>
|
||||||
|
Redaction runs <b style={{ color: "var(--color-ink)" }}>on your machine</b> —
|
||||||
|
raw client data never reaches the model.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className="guard">
|
||||||
|
<ShieldCheck />
|
||||||
|
<span>
|
||||||
|
A human review step is required before the brief is shared. The checklist
|
||||||
|
is part of the recipe.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="row">
|
||||||
|
<div className="k">Try it</div>
|
||||||
|
<div className="v">
|
||||||
|
Run the same brief on the included sample dataset (no real client data) in
|
||||||
|
about 15 minutes — then swap in your own, safely.{" "}
|
||||||
|
<span className="chip">◷ cost to try ≈ $0.03</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
export default function Tiers() {
|
||||||
|
return (
|
||||||
|
<section className="section" id="back">
|
||||||
|
<div className="wrap">
|
||||||
|
<div className="tiers-head">
|
||||||
|
<div className="reveal">
|
||||||
|
<span className="spec">When we launch</span>
|
||||||
|
<h2>What backing will look like.</h2>
|
||||||
|
</div>
|
||||||
|
<p className="tiers-note reveal">
|
||||||
|
Preview of planned pledge tiers. Final pricing is confirmed at the Kickstarter
|
||||||
|
launch — nothing here is a live checkout yet.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="tier-grid">
|
||||||
|
<div className="tier reveal">
|
||||||
|
<div className="t-name">Supporter</div>
|
||||||
|
<div className="t-price">$10</div>
|
||||||
|
<div className="t-unit">one-time</div>
|
||||||
|
<div className="t-desc">
|
||||||
|
The preview chapter, community updates, and an early look at the founding library
|
||||||
|
as it’s written.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="tier feature reveal">
|
||||||
|
<div className="t-tag">The one to get</div>
|
||||||
|
<div className="t-name">The Book</div>
|
||||||
|
<div className="t-price">
|
||||||
|
$47 <small>/yr</small>
|
||||||
|
</div>
|
||||||
|
<div className="t-unit">annual subscription</div>
|
||||||
|
<div className="t-desc">
|
||||||
|
The full guide — PDF + web reader — and every annual update while you’re
|
||||||
|
subscribed. Recurring value, no lifetime gimmick.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="tier reveal">
|
||||||
|
<div className="t-name">Founding Sponsor</div>
|
||||||
|
<div className="t-price">Founding</div>
|
||||||
|
<div className="t-unit">limited · final terms at launch</div>
|
||||||
|
<div className="t-desc">
|
||||||
|
A named acknowledgment in the guide, a private cohort seat, and a hand in shaping
|
||||||
|
the first edition.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import { useEffect } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scroll-reveal for elements with the `.reveal` class.
|
||||||
|
* Above-the-fold content should NOT use `.reveal` (it must be visible instantly);
|
||||||
|
* this is for sections below the fold. A failsafe guarantees nothing stays hidden.
|
||||||
|
*/
|
||||||
|
export default function useReveal() {
|
||||||
|
useEffect(() => {
|
||||||
|
const els = document.querySelectorAll(".reveal");
|
||||||
|
if (!("IntersectionObserver" in window)) {
|
||||||
|
els.forEach((el) => el.classList.add("in"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const io = new IntersectionObserver(
|
||||||
|
(entries) => {
|
||||||
|
entries.forEach((e) => {
|
||||||
|
if (e.isIntersecting) {
|
||||||
|
e.target.classList.add("in");
|
||||||
|
io.unobserve(e.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
{ rootMargin: "0px 0px -8% 0px", threshold: 0.08 }
|
||||||
|
);
|
||||||
|
els.forEach((el) => io.observe(el));
|
||||||
|
const failsafe = setTimeout(
|
||||||
|
() => els.forEach((el) => el.classList.add("in")),
|
||||||
|
1600
|
||||||
|
);
|
||||||
|
return () => {
|
||||||
|
io.disconnect();
|
||||||
|
clearTimeout(failsafe);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
/** @type {import('next').NextConfig} */
|
||||||
|
const nextConfig = {
|
||||||
|
reactStrictMode: true,
|
||||||
|
// A stray package-lock.json sits at the repo root; pin the workspace root here
|
||||||
|
// so Turbopack doesn't infer the wrong one.
|
||||||
|
turbopack: {
|
||||||
|
root: import.meta.dirname,
|
||||||
|
},
|
||||||
|
// Don't auto-generate AGENTS.md / CLAUDE.md into the project.
|
||||||
|
agentRules: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default nextConfig;
|
||||||
Generated
+1644
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"name": "aibook-fun-marketing",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "AIBook.fun — pre-launch marketing site (field-guide design)",
|
||||||
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "next dev -p 3000",
|
||||||
|
"build": "next build",
|
||||||
|
"start": "next start -p 3000",
|
||||||
|
"lint": "next lint"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.weown.tools/WeOwnAI/aibook-fun.git"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"next": "^16.3.3",
|
||||||
|
"react": "^19.2.8",
|
||||||
|
"react-dom": "^19.2.8"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@tailwindcss/postcss": "^4.3.3",
|
||||||
|
"postcss": "^8.5.26",
|
||||||
|
"tailwindcss": "^4.3.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import "../styles/globals.css";
|
||||||
|
|
||||||
|
export default function App({ Component, pageProps }) {
|
||||||
|
return <Component {...pageProps} />;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import { Html, Head, Main, NextScript } from "next/document";
|
||||||
|
|
||||||
|
export default function Document() {
|
||||||
|
return (
|
||||||
|
<Html lang="en">
|
||||||
|
<Head>
|
||||||
|
{/* Mark JS as available before paint so `.reveal` only hides when it can also un-hide
|
||||||
|
(no-JS users and crawlers see all content). */}
|
||||||
|
<script
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: "document.documentElement.classList.add('js')",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
|
||||||
|
<link
|
||||||
|
href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,900;1,9..144,400;1,9..144,500&family=Hanken+Grotesk:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
</Head>
|
||||||
|
<body>
|
||||||
|
<Main />
|
||||||
|
<NextScript />
|
||||||
|
</body>
|
||||||
|
</Html>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
import Head from "next/head";
|
||||||
|
import useReveal from "../lib/useReveal";
|
||||||
|
import Nav from "../components/Nav";
|
||||||
|
import Hero from "../components/Hero";
|
||||||
|
import FieldNotes from "../components/FieldNotes";
|
||||||
|
import Recipe from "../components/Recipe";
|
||||||
|
import Contents from "../components/Contents";
|
||||||
|
import Letter from "../components/Letter";
|
||||||
|
import Authors from "../components/Authors";
|
||||||
|
import Capture from "../components/Capture";
|
||||||
|
import Tiers from "../components/Tiers";
|
||||||
|
import FAQ from "../components/FAQ";
|
||||||
|
import Footer from "../components/Footer";
|
||||||
|
|
||||||
|
export default function Home() {
|
||||||
|
useReveal();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Head>
|
||||||
|
<title>AIBook.fun — a field guide to AI agents at work</title>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="A living, crowd-written field guide to using AI agents responsibly at work. Tested workflows you can run — launching on Kickstarter, Sept 26, 2026."
|
||||||
|
/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
</Head>
|
||||||
|
|
||||||
|
<Nav />
|
||||||
|
<main>
|
||||||
|
<Hero />
|
||||||
|
<FieldNotes />
|
||||||
|
<Recipe />
|
||||||
|
<Contents />
|
||||||
|
<Letter />
|
||||||
|
<Authors />
|
||||||
|
<Capture />
|
||||||
|
<Tiers />
|
||||||
|
<FAQ />
|
||||||
|
</main>
|
||||||
|
<Footer />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// Tailwind CSS v4 runs as a PostCSS plugin (separate package from `tailwindcss`).
|
||||||
|
// Without this, `@import "tailwindcss"` in globals.css is inert.
|
||||||
|
export default {
|
||||||
|
plugins: {
|
||||||
|
"@tailwindcss/postcss": {},
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -0,0 +1,410 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
AIBook.fun — "field guide" design system
|
||||||
|
Tokens live in @theme so they're available BOTH as CSS vars
|
||||||
|
(var(--color-pine)) and as Tailwind utilities (bg-pine, font-display).
|
||||||
|
============================================================ */
|
||||||
|
@theme {
|
||||||
|
--color-paper: #fcfbf8; /* warm near-white ground (chosen, not cream cliché) */
|
||||||
|
--color-paper-2: #f6f4ee; /* recessed band */
|
||||||
|
--color-card: #ffffff; /* raised surfaces */
|
||||||
|
--color-ink: #1a1613; /* warm near-black text */
|
||||||
|
--color-muted: #6e675e; /* warm stone secondary */
|
||||||
|
--color-line: #e7e1d7; /* warm hairline */
|
||||||
|
--color-line-2: #d8d1c4; /* stronger hairline */
|
||||||
|
--color-pine: #1c5d4c; /* THE accent — field-guide green */
|
||||||
|
--color-pine-deep: #12463a;
|
||||||
|
--color-pine-tint: rgba(28, 93, 76, 0.1);
|
||||||
|
--color-pine-wash: rgba(28, 93, 76, 0.06);
|
||||||
|
--color-amber: #b4791f;
|
||||||
|
|
||||||
|
--font-display: "Fraunces", Georgia, "Times New Roman", serif;
|
||||||
|
--font-body: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
||||||
|
--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--sh-sm: 0 1px 2px rgba(26, 22, 19, 0.05), 0 1px 3px rgba(26, 22, 19, 0.04);
|
||||||
|
--sh-md: 0 4px 10px rgba(26, 22, 19, 0.06), 0 2px 4px rgba(26, 22, 19, 0.04);
|
||||||
|
--sh-lg: 0 18px 40px -12px rgba(26, 22, 19, 0.12), 0 6px 14px rgba(26, 22, 19, 0.05);
|
||||||
|
--ease: cubic-bezier(0.16, 1, 0.3, 1);
|
||||||
|
--wrap: 1080px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============ BASE ============ */
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background: var(--color-paper);
|
||||||
|
color: var(--color-ink);
|
||||||
|
font-family: var(--font-body);
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.65;
|
||||||
|
letter-spacing: -0.005em;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
::selection {
|
||||||
|
background: var(--color-pine-tint);
|
||||||
|
color: var(--color-pine-deep);
|
||||||
|
}
|
||||||
|
a { color: inherit; text-decoration: none; }
|
||||||
|
h1, h2, h3 { text-wrap: balance; margin: 0; }
|
||||||
|
@media (max-width: 720px) { body { font-size: 16px; } }
|
||||||
|
|
||||||
|
/* ============ LAYOUT PRIMITIVES ============ */
|
||||||
|
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 28px; }
|
||||||
|
.section { padding: 104px 0; }
|
||||||
|
@media (max-width: 900px) { .section { padding: 84px 0; } }
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
.wrap { padding: 0 20px; }
|
||||||
|
.section { padding: 64px 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.spec {
|
||||||
|
font-family: var(--font-mono);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
letter-spacing: 0.14em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: var(--color-pine);
|
||||||
|
}
|
||||||
|
.serif-it { font-family: var(--font-display); font-style: italic; font-weight: 500; }
|
||||||
|
.hl {
|
||||||
|
background: linear-gradient(transparent 62%, var(--color-pine-tint) 62%);
|
||||||
|
padding: 0 0.06em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============ BUTTONS ============ */
|
||||||
|
.btn {
|
||||||
|
display: inline-flex; align-items: center; gap: 0.5em;
|
||||||
|
font-family: var(--font-body); font-weight: 700; font-size: 15px; letter-spacing: -0.01em;
|
||||||
|
border-radius: 999px; padding: 15px 26px; cursor: pointer; border: 1px solid transparent;
|
||||||
|
transition: transform 0.14s var(--ease), box-shadow 0.14s var(--ease), background 0.18s var(--ease);
|
||||||
|
}
|
||||||
|
.btn-primary { background: var(--color-pine); color: #f7fbf9; box-shadow: 0 6px 18px -6px rgba(28, 93, 76, 0.5); }
|
||||||
|
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 12px 26px -8px rgba(28, 93, 76, 0.55); }
|
||||||
|
.btn-primary:active { transform: translateY(0) scale(0.99); }
|
||||||
|
.btn-ghost { background: var(--color-card); color: var(--color-ink); border-color: var(--color-line-2); }
|
||||||
|
.btn-ghost:hover { transform: translateY(-1px); box-shadow: var(--sh-md); }
|
||||||
|
.btn:focus-visible { outline: 2px solid var(--color-pine); outline-offset: 3px; }
|
||||||
|
|
||||||
|
/* ============ REVEAL (only hides when JS can un-hide) ============ */
|
||||||
|
.js .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.7s var(--ease), transform 0.7s var(--ease); }
|
||||||
|
.js .reveal.in { opacity: 1; transform: none; }
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.js .reveal { opacity: 1; transform: none; }
|
||||||
|
html { scroll-behavior: auto; }
|
||||||
|
* { animation: none !important; transition: none !important; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============ NAV ============ */
|
||||||
|
.nav {
|
||||||
|
position: sticky; top: 0; z-index: 50;
|
||||||
|
background: color-mix(in srgb, var(--color-paper) 82%, transparent);
|
||||||
|
backdrop-filter: blur(14px) saturate(1.3); -webkit-backdrop-filter: blur(14px) saturate(1.3);
|
||||||
|
border-bottom: 1px solid transparent; transition: border-color 0.3s, box-shadow 0.3s;
|
||||||
|
}
|
||||||
|
.nav.scrolled { border-bottom-color: var(--color-line); box-shadow: var(--sh-sm); }
|
||||||
|
.nav-in {
|
||||||
|
max-width: var(--wrap); margin: 0 auto; padding: 0 28px; height: 68px;
|
||||||
|
display: flex; align-items: center; justify-content: space-between; gap: 20px;
|
||||||
|
}
|
||||||
|
.logo { display: flex; align-items: baseline; gap: 2px; font-family: var(--font-display); font-weight: 900; font-size: 21px; letter-spacing: -0.02em; }
|
||||||
|
.logo b { color: var(--color-pine); }
|
||||||
|
.logo .dot { color: var(--color-muted); font-weight: 500; }
|
||||||
|
.nav-links { display: flex; align-items: center; gap: 30px; font-size: 14.5px; font-weight: 600; color: var(--color-muted); }
|
||||||
|
.nav-links a { transition: color 0.18s; }
|
||||||
|
.nav-links a:hover { color: var(--color-ink); }
|
||||||
|
.nav-cta { font-size: 14px; padding: 10px 18px; }
|
||||||
|
|
||||||
|
/* mobile hamburger toggle (hidden on desktop) */
|
||||||
|
.nav-toggle {
|
||||||
|
display: none; width: 44px; height: 44px; align-items: center; justify-content: center;
|
||||||
|
padding: 0; border: 1px solid var(--color-line-2); border-radius: 12px;
|
||||||
|
background: var(--color-card); cursor: pointer; flex: none;
|
||||||
|
}
|
||||||
|
.nav-toggle:focus-visible { outline: 2px solid var(--color-pine); outline-offset: 3px; }
|
||||||
|
.nav-toggle .bars, .nav-toggle .bars::before, .nav-toggle .bars::after {
|
||||||
|
content: ""; display: block; width: 18px; height: 2px; border-radius: 2px;
|
||||||
|
background: var(--color-ink); transition: transform 0.25s var(--ease), opacity 0.2s;
|
||||||
|
}
|
||||||
|
.nav-toggle .bars { position: relative; }
|
||||||
|
.nav-toggle .bars::before { position: absolute; left: 0; top: -6px; }
|
||||||
|
.nav-toggle .bars::after { position: absolute; left: 0; top: 6px; }
|
||||||
|
.nav.open .nav-toggle .bars { background: transparent; }
|
||||||
|
.nav.open .nav-toggle .bars::before { transform: translateY(6px) rotate(45deg); }
|
||||||
|
.nav.open .nav-toggle .bars::after { transform: translateY(-6px) rotate(-45deg); }
|
||||||
|
|
||||||
|
/* mobile dropdown menu (rendered on desktop as display:none) */
|
||||||
|
.nav-menu { display: none; }
|
||||||
|
|
||||||
|
@media (max-width: 860px) {
|
||||||
|
.nav-links { display: none; }
|
||||||
|
.nav-cta { display: none; } /* CTA moves into the menu */
|
||||||
|
.nav-toggle { display: inline-flex; }
|
||||||
|
.nav-menu {
|
||||||
|
display: flex; flex-direction: column; gap: 2px;
|
||||||
|
position: absolute; top: 100%; left: 0; right: 0;
|
||||||
|
background: var(--color-paper); border-bottom: 1px solid var(--color-line);
|
||||||
|
box-shadow: var(--sh-lg); padding: 10px 20px 20px;
|
||||||
|
opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none;
|
||||||
|
transition: opacity 0.2s var(--ease), transform 0.25s var(--ease), visibility 0.2s;
|
||||||
|
}
|
||||||
|
.nav.open .nav-menu { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
|
||||||
|
.nav-menu a:not(.btn) {
|
||||||
|
font-family: var(--font-body); font-weight: 600; font-size: 1.05rem; color: var(--color-ink);
|
||||||
|
padding: 15px 6px; border-bottom: 1px solid var(--color-line);
|
||||||
|
}
|
||||||
|
.nav-menu a:not(.btn):hover { color: var(--color-pine); }
|
||||||
|
.nav-menu .btn { margin-top: 14px; justify-content: center; width: 100%; }
|
||||||
|
}
|
||||||
|
@media (max-width: 600px) { .nav-in { padding: 0 20px; } }
|
||||||
|
|
||||||
|
/* ============ HERO ============ */
|
||||||
|
.hero { padding: 78px 0 72px; position: relative; overflow: hidden; }
|
||||||
|
.hero-tabs { position: absolute; top: 0; right: max(28px, calc(50% - var(--wrap) / 2 + 28px)); display: flex; gap: 6px; opacity: 0.5; }
|
||||||
|
.hero-tabs span { width: 34px; height: 8px; border-radius: 0 0 4px 4px; background: var(--color-line-2); }
|
||||||
|
.hero-tabs span:first-child { background: var(--color-pine); opacity: 0.85; }
|
||||||
|
.eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 26px; }
|
||||||
|
.eyebrow .tick { width: 7px; height: 7px; border-radius: 999px; background: var(--color-pine); flex: none; }
|
||||||
|
.hero h1 { font-family: var(--font-display); font-weight: 900; font-size: clamp(2.7rem, 6.4vw, 5.1rem); line-height: 0.98; letter-spacing: -0.028em; max-width: 15ch; margin-bottom: 26px; }
|
||||||
|
.hero-sub { font-size: clamp(1.1rem, 1.7vw, 1.35rem); color: var(--color-muted); line-height: 1.62; max-width: 33rem; margin-bottom: 16px; }
|
||||||
|
.hero-form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 30px; max-width: 34rem; }
|
||||||
|
.field {
|
||||||
|
flex: 1; min-width: 220px; font-family: var(--font-body); font-size: 15.5px; color: var(--color-ink);
|
||||||
|
background: var(--color-card); border: 1px solid var(--color-line-2); border-radius: 999px; padding: 15px 22px;
|
||||||
|
transition: border-color 0.18s, box-shadow 0.18s;
|
||||||
|
}
|
||||||
|
.field::placeholder { color: #a49c90; }
|
||||||
|
.field:focus { outline: none; border-color: var(--color-pine); box-shadow: 0 0 0 4px var(--color-pine-wash); }
|
||||||
|
.hero-note { font-family: var(--font-mono); font-size: 12px; color: var(--color-muted); margin-top: 16px; }
|
||||||
|
.hero-note b { color: var(--color-pine); font-weight: 600; }
|
||||||
|
@media (max-width: 720px) { .hero-tabs { display: none; } .hero { padding: 56px 0 56px; } }
|
||||||
|
@media (max-width: 600px) { .spec { letter-spacing: 0.1em; font-size: 11px; } }
|
||||||
|
|
||||||
|
/* ============ HERO TWO-COLUMN + 3D BOOK ============ */
|
||||||
|
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 72px; align-items: center; }
|
||||||
|
.hero-visual { display: flex; justify-content: center; order: 2; } /* book on the right */
|
||||||
|
.hero-copy { min-width: 0; order: 1; } /* text on the left */
|
||||||
|
|
||||||
|
.book3d { --bw: 300px; --bh: 420px; --bt: 54px; position: relative; perspective: 2000px; flex: none; padding: 6px 0 40px; }
|
||||||
|
.book3d__inner {
|
||||||
|
position: relative; width: var(--bw); height: var(--bh); margin: 0 auto;
|
||||||
|
transform-style: preserve-3d; transform: rotateX(7deg) rotateY(-34deg);
|
||||||
|
animation: book-float 8s ease-in-out infinite; will-change: transform;
|
||||||
|
}
|
||||||
|
.book3d:hover .book3d__inner { transform: rotateX(5deg) rotateY(-22deg); transition: transform 0.7s var(--ease); animation-play-state: paused; }
|
||||||
|
@keyframes book-float {
|
||||||
|
0%, 100% { transform: rotateX(7deg) rotateY(-34deg) translateY(0); }
|
||||||
|
50% { transform: rotateX(5deg) rotateY(-30deg) translateY(-12px); }
|
||||||
|
}
|
||||||
|
.book3d__face { position: absolute; top: 0; left: 0; }
|
||||||
|
.book3d__cover, .book3d__back { width: var(--bw); height: var(--bh); }
|
||||||
|
.book3d__cover {
|
||||||
|
transform: translateZ(calc(var(--bt) / 2)); border-radius: 3px 8px 8px 3px; overflow: hidden;
|
||||||
|
background: linear-gradient(125deg, #23745f, #1a5748 48%, #123f34);
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07), inset 8px 0 16px -8px rgba(0, 0, 0, 0.5), 0 32px 46px -22px rgba(18, 63, 52, 0.55);
|
||||||
|
padding: 32px 27px 27px; display: flex; flex-direction: column;
|
||||||
|
}
|
||||||
|
.book3d__back { transform: rotateY(180deg) translateZ(calc(var(--bt) / 2)); border-radius: 8px 3px 3px 8px; background: #0f3b30; }
|
||||||
|
.book3d__pages {
|
||||||
|
width: var(--bt); height: calc(var(--bh) - 6px); top: 3px; left: calc((var(--bw) - var(--bt)) / 2);
|
||||||
|
transform: rotateY(90deg) translateZ(calc(var(--bw) / 2));
|
||||||
|
background: repeating-linear-gradient(to left, #efe9db 0, #efe9db 1px, #d6cdba 1px, #d6cdba 3px);
|
||||||
|
}
|
||||||
|
.book3d__spine {
|
||||||
|
width: var(--bt); height: var(--bh); left: calc((var(--bw) - var(--bt)) / 2);
|
||||||
|
transform: rotateY(-90deg) translateZ(calc(var(--bw) / 2));
|
||||||
|
background: linear-gradient(#174f41, #0f3b30); display: flex; align-items: center; justify-content: center;
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
|
||||||
|
}
|
||||||
|
.book3d__spine span {
|
||||||
|
writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;
|
||||||
|
font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(239, 233, 219, 0.72);
|
||||||
|
}
|
||||||
|
.book3d__top {
|
||||||
|
width: var(--bw); height: var(--bt); top: calc((var(--bh) - var(--bt)) / 2);
|
||||||
|
transform: rotateX(90deg) translateZ(calc(var(--bh) / 2));
|
||||||
|
background: repeating-linear-gradient(to right, #efe9db 0, #efe9db 1px, #d6cdba 1px, #d6cdba 3px);
|
||||||
|
}
|
||||||
|
.book3d__kicker { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(239, 233, 219, 0.62); }
|
||||||
|
.book3d__title { font-family: var(--font-display); font-weight: 600; font-size: 2.25rem; line-height: 1.02; letter-spacing: -0.02em; color: #f3eee2; margin-top: 16px; }
|
||||||
|
.book3d__line { width: 34px; height: 2px; background: rgba(239, 233, 219, 0.5); margin: 15px 0; }
|
||||||
|
.book3d__sub { font-family: var(--font-body); font-size: 13px; color: rgba(239, 233, 219, 0.68); line-height: 1.45; max-width: 16ch; }
|
||||||
|
.book3d__mark { width: 44px; height: 44px; margin-top: auto; }
|
||||||
|
.book3d__brand { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; color: rgba(239, 233, 219, 0.85); margin-top: 12px; }
|
||||||
|
.book3d::after {
|
||||||
|
content: ""; position: absolute; left: 50%; bottom: 6px; width: 60%; height: 24px; transform: translateX(-50%);
|
||||||
|
background: radial-gradient(ellipse, rgba(18, 60, 50, 0.3), transparent 70%); filter: blur(7px); z-index: -1;
|
||||||
|
}
|
||||||
|
@media (max-width: 900px) {
|
||||||
|
.hero-grid { grid-template-columns: 1fr; gap: 44px; }
|
||||||
|
.hero-visual { order: 2; }
|
||||||
|
.hero-copy { order: 1; }
|
||||||
|
.book3d { --bw: 256px; --bh: 358px; --bt: 48px; }
|
||||||
|
}
|
||||||
|
@media (max-width: 420px) { .book3d { --bw: 210px; --bh: 294px; --bt: 40px; } }
|
||||||
|
@media (prefers-reduced-motion: reduce) { .book3d__inner { animation: none; } }
|
||||||
|
|
||||||
|
/* ============ FIELD NOTES (even gutters, aligned to container edges) ============ */
|
||||||
|
.notes { background: var(--color-paper-2); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
|
||||||
|
.notes-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
|
||||||
|
.note { padding: 48px 36px; border-left: 1px solid var(--color-line); }
|
||||||
|
.note:first-child { border-left: none; padding-left: 0; }
|
||||||
|
.note:last-child { padding-right: 0; }
|
||||||
|
.note .n { font-family: var(--font-mono); font-size: 12px; color: var(--color-pine); letter-spacing: 0.12em; margin-bottom: 16px; }
|
||||||
|
.note h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; letter-spacing: -0.02em; margin-bottom: 12px; line-height: 1.15; }
|
||||||
|
.note p { font-size: 15px; color: var(--color-muted); line-height: 1.6; }
|
||||||
|
@media (max-width: 760px) {
|
||||||
|
.notes-grid { grid-template-columns: 1fr; }
|
||||||
|
.note { padding: 32px 0; border-left: none; border-top: 1px solid var(--color-line); }
|
||||||
|
.note:first-child { border-top: none; padding-top: 0; }
|
||||||
|
.note:last-child { padding-bottom: 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============ RECIPE (value centerpiece) ============ */
|
||||||
|
.recipe-head { max-width: 40rem; margin-bottom: 44px; }
|
||||||
|
.recipe-head h2 { font-family: var(--font-display); font-weight: 900; font-size: clamp(2rem, 4.3vw, 3.3rem); letter-spacing: -0.025em; line-height: 1.02; margin: 16px 0 18px; }
|
||||||
|
.recipe-head p { color: var(--color-muted); font-size: 1.08rem; }
|
||||||
|
.recipe { background: var(--color-card); border: 1px solid var(--color-line); border-radius: 20px; box-shadow: var(--sh-lg); overflow: hidden; }
|
||||||
|
.recipe-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 28px; border-bottom: 1px solid var(--color-line); background: linear-gradient(var(--color-card), var(--color-paper)); }
|
||||||
|
.recipe-id { font-family: var(--font-mono); font-size: 12.5px; color: var(--color-muted); letter-spacing: 0.04em; }
|
||||||
|
.recipe-id b { color: var(--color-pine); }
|
||||||
|
.recipe-vert { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--color-pine); background: var(--color-pine-wash); border: 1px solid var(--color-pine-tint); padding: 5px 11px; border-radius: 999px; white-space: nowrap; }
|
||||||
|
.recipe-body { padding: 34px 28px; }
|
||||||
|
.recipe-title { font-family: var(--font-display); font-weight: 600; font-size: 1.55rem; letter-spacing: -0.02em; line-height: 1.15; margin-bottom: 26px; max-width: 34rem; }
|
||||||
|
.row { display: grid; grid-template-columns: 118px 1fr; gap: 20px; padding: 18px 0; border-top: 1px dashed var(--color-line-2); }
|
||||||
|
.row:first-of-type { border-top: none; padding-top: 0; }
|
||||||
|
.row .k { font-family: var(--font-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-pine); padding-top: 3px; }
|
||||||
|
.row .v { font-size: 15.5px; color: var(--color-ink); line-height: 1.6; }
|
||||||
|
.row .v .sub { color: var(--color-muted); font-size: 14.5px; }
|
||||||
|
/* Let grid items shrink below their content width so the terminal's own
|
||||||
|
overflow-x:auto engages (scrolls) instead of the row expanding + being clipped. */
|
||||||
|
.row > * { min-width: 0; }
|
||||||
|
.term { max-width: 100%; }
|
||||||
|
.steps { counter-reset: s; display: flex; flex-direction: column; gap: 11px; margin: 0; padding: 0; }
|
||||||
|
.steps li { list-style: none; display: flex; gap: 12px; font-size: 15px; color: var(--color-ink); }
|
||||||
|
.steps li::before {
|
||||||
|
counter-increment: s; content: counter(s);
|
||||||
|
font-family: var(--font-mono); font-size: 11px; font-weight: 600; color: var(--color-pine);
|
||||||
|
background: var(--color-pine-wash); width: 22px; height: 22px; border-radius: 6px;
|
||||||
|
display: grid; place-items: center; flex: none; margin-top: 1px;
|
||||||
|
}
|
||||||
|
.term { margin-top: 14px; background: #14110e; border-radius: 12px; overflow: hidden; border: 1px solid #2a241d; }
|
||||||
|
.term-bar { display: flex; align-items: center; gap: 7px; padding: 11px 14px; border-bottom: 1px solid #2a241d; }
|
||||||
|
.term-bar i { width: 11px; height: 11px; border-radius: 999px; background: #3a342b; display: block; }
|
||||||
|
.term-bar span { font-family: var(--font-mono); font-size: 11px; color: #8a8175; margin-left: 8px; letter-spacing: 0.03em; }
|
||||||
|
.term pre { margin: 0; padding: 16px 18px; overflow-x: auto; font-family: var(--font-mono); font-size: 12.5px; line-height: 1.7; color: #d8d0c4; }
|
||||||
|
.term .c-user { color: #7fc8a9; }
|
||||||
|
.term .c-key { color: #e0b96b; }
|
||||||
|
.term .c-dim { color: #8a8175; }
|
||||||
|
.term .c-ok { color: #7fc8a9; }
|
||||||
|
.chip { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 12px; color: var(--color-amber); background: rgba(180, 121, 31, 0.08); border: 1px solid rgba(180, 121, 31, 0.2); padding: 4px 10px; border-radius: 999px; }
|
||||||
|
.guard { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; color: var(--color-muted); padding: 8px 0; }
|
||||||
|
.guard svg { flex: none; margin-top: 2px; }
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.row { grid-template-columns: 1fr; gap: 8px; }
|
||||||
|
.recipe-body { padding: 26px 20px; }
|
||||||
|
.recipe-top { padding: 16px 20px; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============ CONTENTS (table-of-contents) ============ */
|
||||||
|
.contents { background: var(--color-paper-2); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
|
||||||
|
.contents h2 { font-family: var(--font-display); font-weight: 900; font-size: clamp(1.9rem, 4vw, 3rem); letter-spacing: -0.025em; margin: 14px 0 34px; max-width: 20ch; }
|
||||||
|
.toc { border-top: 1px solid var(--color-line-2); }
|
||||||
|
.toc a { display: grid; grid-template-columns: 52px 1fr auto auto; align-items: center; gap: 20px; padding: 22px 8px; border-bottom: 1px solid var(--color-line); transition: background 0.2s, padding 0.2s; }
|
||||||
|
.toc a:hover { background: var(--color-pine-wash); padding-left: 16px; }
|
||||||
|
.toc .num { font-family: var(--font-mono); font-size: 13px; color: var(--color-muted); }
|
||||||
|
.toc .name { font-family: var(--font-display); font-weight: 600; font-size: 1.32rem; letter-spacing: -0.02em; }
|
||||||
|
.toc .desc { font-size: 14px; color: var(--color-muted); justify-self: end; text-align: right; max-width: 24rem; }
|
||||||
|
.toc .arrow { color: var(--color-pine); opacity: 0; transition: opacity 0.2s, transform 0.2s; font-family: var(--font-mono); }
|
||||||
|
.toc a:hover .arrow { opacity: 1; transform: translateX(3px); }
|
||||||
|
@media (max-width: 720px) { .toc .desc { display: none; } .toc a { grid-template-columns: 40px 1fr auto; } }
|
||||||
|
|
||||||
|
/* ============ LETTER (human) ============ */
|
||||||
|
.letter { background: var(--color-pine-deep); color: #eaf1ec; position: relative; overflow: hidden; }
|
||||||
|
.letter::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 90% at 85% 0%, rgba(255, 255, 255, 0.06), transparent 60%); pointer-events: none; }
|
||||||
|
.letter-in { max-width: 720px; margin: 0 auto; padding: 0 28px; position: relative; }
|
||||||
|
.letter .spec { color: #8fbeae; }
|
||||||
|
.letter-body { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.4rem, 2.6vw, 1.95rem); line-height: 1.42; letter-spacing: -0.01em; margin: 22px 0 30px; }
|
||||||
|
.letter-body em { font-style: italic; color: #fff; }
|
||||||
|
.letter-body .mark { background: rgba(143, 190, 174, 0.18); padding: 0 0.08em; border-radius: 2px; }
|
||||||
|
.sign { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
|
||||||
|
.sign .scrawl { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 1.5rem; color: #fff; }
|
||||||
|
.sign .who { font-family: var(--font-mono); font-size: 12px; color: #8fbeae; letter-spacing: 0.04em; line-height: 1.5; }
|
||||||
|
@media (max-width: 600px) { .letter-in { padding: 0 20px; } }
|
||||||
|
|
||||||
|
/* ============ AUTHORS ============ */
|
||||||
|
.authors h2 { font-family: var(--font-display); font-weight: 900; font-size: clamp(1.9rem, 3.6vw, 2.7rem); letter-spacing: -0.025em; margin: 14px 0 10px; }
|
||||||
|
.authors .lede { color: var(--color-muted); max-width: 38rem; margin-bottom: 38px; }
|
||||||
|
.auth-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
|
||||||
|
.auth { background: var(--color-card); border: 1px solid var(--color-line); border-radius: 16px; padding: 24px; box-shadow: var(--sh-sm); transition: box-shadow 0.2s, transform 0.2s; }
|
||||||
|
.auth:hover { box-shadow: var(--sh-md); transform: translateY(-2px); }
|
||||||
|
.auth .mono-tile { width: 46px; height: 46px; border-radius: 11px; display: grid; place-items: center; font-family: var(--font-mono); font-weight: 600; font-size: 16px; color: var(--color-pine); background: var(--color-pine-wash); border: 1px solid var(--color-pine-tint); margin-bottom: 16px; }
|
||||||
|
.auth h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; letter-spacing: -0.02em; margin-bottom: 4px; }
|
||||||
|
.auth .role { font-size: 13.5px; color: var(--color-muted); margin-bottom: 12px; }
|
||||||
|
.auth .status { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 6px; }
|
||||||
|
.auth .status.confirmed { color: var(--color-pine); }
|
||||||
|
.auth .status.tba { color: var(--color-muted); }
|
||||||
|
.auth .status i { width: 6px; height: 6px; border-radius: 999px; background: currentColor; display: block; }
|
||||||
|
.auth-join { display: grid; place-content: center; text-align: center; background: var(--color-pine-wash); border-style: dashed; border-color: var(--color-pine-tint); }
|
||||||
|
.auth-join p { font-size: 14px; color: var(--color-muted); max-width: 15rem; }
|
||||||
|
@media (max-width: 900px) { .auth-grid { grid-template-columns: repeat(2, 1fr); } }
|
||||||
|
@media (max-width: 600px) { .auth-grid { grid-template-columns: 1fr; } }
|
||||||
|
|
||||||
|
/* ============ EMAIL CAPTURE ============ */
|
||||||
|
.capture { background: var(--color-paper-2); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
|
||||||
|
.capture-in { max-width: 640px; margin: 0 auto; text-align: center; padding: 0 28px; }
|
||||||
|
.capture h2 { font-family: var(--font-display); font-weight: 900; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -0.025em; line-height: 1.02; margin: 16px 0 14px; }
|
||||||
|
.capture p { color: var(--color-muted); font-size: 1.06rem; margin-bottom: 28px; }
|
||||||
|
.capture form { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
|
||||||
|
.capture .fine { font-family: var(--font-mono); font-size: 11.5px; color: var(--color-muted); margin-top: 18px; }
|
||||||
|
.ok-msg { font-family: var(--font-mono); font-size: 14px; color: var(--color-pine); }
|
||||||
|
@media (max-width: 600px) { .capture-in { padding: 0 20px; } }
|
||||||
|
|
||||||
|
/* ============ TIERS PREVIEW ============ */
|
||||||
|
.tiers-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 34px; }
|
||||||
|
.tiers-head h2 { font-family: var(--font-display); font-weight: 900; font-size: clamp(1.9rem, 3.6vw, 2.7rem); letter-spacing: -0.025em; margin: 12px 0 0; }
|
||||||
|
.tiers-note { font-family: var(--font-mono); font-size: 12px; color: var(--color-muted); max-width: 22rem; text-align: right; line-height: 1.6; }
|
||||||
|
.tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
|
||||||
|
.tier { background: var(--color-card); border: 1px solid var(--color-line); border-radius: 18px; padding: 30px 26px; display: flex; flex-direction: column; transition: box-shadow 0.2s, transform 0.2s; }
|
||||||
|
.tier:hover { box-shadow: var(--sh-md); transform: translateY(-2px); }
|
||||||
|
.tier.feature { background: var(--color-pine); color: #eaf1ec; border-color: var(--color-pine); }
|
||||||
|
.tier .t-name { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 16px; }
|
||||||
|
.tier .t-price { font-family: var(--font-display); font-weight: 900; font-size: 2.4rem; letter-spacing: -0.03em; line-height: 1; margin-bottom: 6px; }
|
||||||
|
.tier .t-price small { font-family: var(--font-body); font-size: 1rem; font-weight: 600; color: var(--color-muted); }
|
||||||
|
.tier.feature .t-price small { color: #9dc4b5; }
|
||||||
|
.tier .t-unit { font-size: 13px; color: var(--color-muted); margin-bottom: 18px; }
|
||||||
|
.tier.feature .t-unit { color: #9dc4b5; }
|
||||||
|
.tier .t-desc { font-size: 14.5px; color: var(--color-muted); line-height: 1.6; }
|
||||||
|
.tier.feature .t-desc { color: #cfe0d6; }
|
||||||
|
.tier .t-tag { align-self: flex-start; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; background: #eaf1ec; color: var(--color-pine-deep); padding: 4px 10px; border-radius: 999px; margin-bottom: 16px; }
|
||||||
|
@media (max-width: 820px) { .tier-grid { grid-template-columns: 1fr; } .tiers-note { text-align: left; } }
|
||||||
|
|
||||||
|
/* ============ FAQ ============ */
|
||||||
|
.faq h2 { font-family: var(--font-display); font-weight: 900; font-size: clamp(1.9rem, 3.6vw, 2.7rem); letter-spacing: -0.025em; margin-bottom: 34px; }
|
||||||
|
.qa { border-top: 1px solid var(--color-line); }
|
||||||
|
.qa details { border-bottom: 1px solid var(--color-line); padding: 6px 0; }
|
||||||
|
.qa summary { cursor: pointer; list-style: none; padding: 20px 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-family: var(--font-display); font-weight: 600; font-size: 1.2rem; letter-spacing: -0.02em; }
|
||||||
|
.qa summary::-webkit-details-marker { display: none; }
|
||||||
|
.qa summary .pl { font-family: var(--font-mono); color: var(--color-pine); font-size: 1.1rem; transition: transform 0.2s var(--ease); flex: none; }
|
||||||
|
.qa details[open] summary .pl { transform: rotate(45deg); }
|
||||||
|
.qa .ans { padding: 0 40px 22px 0; color: var(--color-muted); font-size: 16px; line-height: 1.65; }
|
||||||
|
@media (max-width: 600px) { .qa .ans { padding-right: 0; } }
|
||||||
|
|
||||||
|
/* ============ FOOTER ============ */
|
||||||
|
.footer { background: var(--color-ink); color: #d8d0c4; }
|
||||||
|
.foot-in { max-width: var(--wrap); margin: 0 auto; padding: 64px 28px 48px; }
|
||||||
|
.foot-top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; padding-bottom: 40px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
|
||||||
|
.foot-top .logo { color: #f7f5f0; font-size: 24px; }
|
||||||
|
.foot-top .logo b { color: #7fc8a9; }
|
||||||
|
.foot-top .logo .dot { color: #8a8175; }
|
||||||
|
.foot-blurb { max-width: 24rem; font-size: 14.5px; color: #9a9184; margin-top: 14px; line-height: 1.6; }
|
||||||
|
.foot-links { display: flex; gap: 28px; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.03em; color: #9a9184; flex-wrap: wrap; }
|
||||||
|
.foot-links a:hover { color: #f7f5f0; }
|
||||||
|
.colophon { padding-top: 26px; font-family: var(--font-mono); font-size: 11.5px; color: #7a7266; letter-spacing: 0.02em; line-height: 1.8; }
|
||||||
|
@media (max-width: 600px) { .foot-in { padding: 48px 20px 40px; } }
|
||||||
Reference in New Issue
Block a user