thevoidforge 21.0.11 → 21.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.claude/commands/ai.md +69 -0
- package/dist/.claude/commands/architect.md +121 -0
- package/dist/.claude/commands/assemble.md +201 -0
- package/dist/.claude/commands/assess.md +75 -0
- package/dist/.claude/commands/blueprint.md +135 -0
- package/dist/.claude/commands/build.md +116 -0
- package/dist/.claude/commands/campaign.md +201 -0
- package/dist/.claude/commands/cultivation.md +166 -0
- package/dist/.claude/commands/current.md +128 -0
- package/dist/.claude/commands/dangerroom.md +74 -0
- package/dist/.claude/commands/debrief.md +178 -0
- package/dist/.claude/commands/deploy.md +99 -0
- package/dist/.claude/commands/devops.md +143 -0
- package/dist/.claude/commands/gauntlet.md +140 -0
- package/dist/.claude/commands/git.md +104 -0
- package/dist/.claude/commands/grow.md +146 -0
- package/dist/.claude/commands/imagine.md +126 -0
- package/dist/.claude/commands/portfolio.md +50 -0
- package/dist/.claude/commands/prd.md +113 -0
- package/dist/.claude/commands/qa.md +107 -0
- package/dist/.claude/commands/review.md +151 -0
- package/dist/.claude/commands/security.md +100 -0
- package/dist/.claude/commands/test.md +96 -0
- package/dist/.claude/commands/thumper.md +116 -0
- package/dist/.claude/commands/treasury.md +100 -0
- package/dist/.claude/commands/ux.md +118 -0
- package/dist/.claude/commands/vault.md +189 -0
- package/dist/.claude/commands/void.md +108 -0
- package/dist/CHANGELOG.md +1918 -0
- package/dist/CLAUDE.md +250 -0
- package/dist/HOLOCRON.md +856 -0
- package/dist/VERSION.md +123 -0
- package/dist/docs/NAMING_REGISTRY.md +478 -0
- package/dist/docs/methods/AI_INTELLIGENCE.md +276 -0
- package/dist/docs/methods/ASSEMBLER.md +142 -0
- package/dist/docs/methods/BACKEND_ENGINEER.md +165 -0
- package/dist/docs/methods/BUILD_JOURNAL.md +185 -0
- package/dist/docs/methods/BUILD_PROTOCOL.md +426 -0
- package/dist/docs/methods/CAMPAIGN.md +568 -0
- package/dist/docs/methods/CONTEXT_MANAGEMENT.md +189 -0
- package/dist/docs/methods/DEEP_CURRENT.md +184 -0
- package/dist/docs/methods/DEVOPS_ENGINEER.md +295 -0
- package/dist/docs/methods/FIELD_MEDIC.md +261 -0
- package/dist/docs/methods/FORGE_ARTIST.md +108 -0
- package/dist/docs/methods/FORGE_KEEPER.md +268 -0
- package/dist/docs/methods/GAUNTLET.md +344 -0
- package/dist/docs/methods/GROWTH_STRATEGIST.md +466 -0
- package/dist/docs/methods/HEARTBEAT.md +168 -0
- package/dist/docs/methods/MCP_INTEGRATION.md +139 -0
- package/dist/docs/methods/MUSTER.md +148 -0
- package/dist/docs/methods/PRD_GENERATOR.md +186 -0
- package/dist/docs/methods/PRODUCT_DESIGN_FRONTEND.md +250 -0
- package/dist/docs/methods/QA_ENGINEER.md +337 -0
- package/dist/docs/methods/RELEASE_MANAGER.md +145 -0
- package/dist/docs/methods/SECURITY_AUDITOR.md +320 -0
- package/dist/docs/methods/SUB_AGENTS.md +335 -0
- package/dist/docs/methods/SYSTEMS_ARCHITECT.md +171 -0
- package/dist/docs/methods/TESTING.md +359 -0
- package/dist/docs/methods/THUMPER.md +175 -0
- package/dist/docs/methods/TIME_VAULT.md +120 -0
- package/dist/docs/methods/TREASURY.md +184 -0
- package/dist/docs/methods/TROUBLESHOOTING.md +265 -0
- package/dist/docs/patterns/README.md +52 -0
- package/dist/docs/patterns/ad-billing-adapter.ts +537 -0
- package/dist/docs/patterns/ad-platform-adapter.ts +421 -0
- package/dist/docs/patterns/ai-classifier.ts +195 -0
- package/dist/docs/patterns/ai-eval.ts +272 -0
- package/dist/docs/patterns/ai-orchestrator.ts +341 -0
- package/dist/docs/patterns/ai-router.ts +194 -0
- package/dist/docs/patterns/ai-tool-schema.ts +237 -0
- package/dist/docs/patterns/api-route.ts +241 -0
- package/dist/docs/patterns/backtest-engine.ts +499 -0
- package/dist/docs/patterns/browser-review.ts +292 -0
- package/dist/docs/patterns/combobox.tsx +300 -0
- package/dist/docs/patterns/component.tsx +262 -0
- package/dist/docs/patterns/daemon-process.ts +338 -0
- package/dist/docs/patterns/data-pipeline.ts +297 -0
- package/dist/docs/patterns/database-migration.ts +466 -0
- package/dist/docs/patterns/e2e-test.ts +629 -0
- package/dist/docs/patterns/error-handling.ts +312 -0
- package/dist/docs/patterns/execution-safety.ts +601 -0
- package/dist/docs/patterns/financial-transaction.ts +342 -0
- package/dist/docs/patterns/funding-plan.ts +462 -0
- package/dist/docs/patterns/game-entity.ts +137 -0
- package/dist/docs/patterns/game-loop.ts +113 -0
- package/dist/docs/patterns/game-state.ts +143 -0
- package/dist/docs/patterns/job-queue.ts +225 -0
- package/dist/docs/patterns/kongo-integration.ts +164 -0
- package/dist/docs/patterns/middleware.ts +363 -0
- package/dist/docs/patterns/mobile-screen.tsx +139 -0
- package/dist/docs/patterns/mobile-service.ts +167 -0
- package/dist/docs/patterns/multi-tenant.ts +382 -0
- package/dist/docs/patterns/oauth-token-lifecycle.ts +223 -0
- package/dist/docs/patterns/outbound-rate-limiter.ts +260 -0
- package/dist/docs/patterns/prompt-template.ts +195 -0
- package/dist/docs/patterns/revenue-source-adapter.ts +311 -0
- package/dist/docs/patterns/service.ts +224 -0
- package/dist/docs/patterns/sse-endpoint.ts +118 -0
- package/dist/docs/patterns/stablecoin-adapter.ts +511 -0
- package/dist/docs/patterns/third-party-script.ts +68 -0
- package/dist/scripts/thumper/gom-jabbar.sh +241 -0
- package/dist/scripts/thumper/relay.sh +610 -0
- package/dist/scripts/thumper/scan.sh +359 -0
- package/dist/scripts/thumper/thumper.sh +190 -0
- package/dist/scripts/thumper/water-rings.sh +76 -0
- package/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# /build — Execute the Build Protocol
|
|
2
|
+
|
|
3
|
+
## Context Setup
|
|
4
|
+
1. Read `/logs/build-state.md` — if it exists, resume from current phase
|
|
5
|
+
2. If no build state exists, this is a fresh build — start from Phase 0
|
|
6
|
+
|
|
7
|
+
## Phase 0 — Orient (Picard leads)
|
|
8
|
+
1. Read `/docs/PRD.md` — extract the YAML frontmatter block
|
|
9
|
+
2. Validate frontmatter values: `type` must be one of (full-stack, api-only, static-site, prototype, game). `auth` must be (yes, no). `payments` must be (stripe, lemonsqueezy, none). `deploy` must be (vps, vercel, railway, cloudflare, static, docker, ios, android, cross-platform). If `type: game`, check game-specific fields (game_engine, game_genre). If `deploy: ios|android|cross-platform`, check mobile fields (mobile_framework, bundle_id). See BUILD_PROTOCOL.md "Game Project Detection" and "Mobile Framework Detection" sections for phase adaptations.
|
|
10
|
+
3. Read `/docs/methods/BUILD_PROTOCOL.md` — check skip rules against frontmatter
|
|
11
|
+
4. Extract from PRD: tech stack, database schema, API routes, page routes, integrations, env vars
|
|
12
|
+
5. Read `/docs/LESSONS.md` — check for relevant lessons from previous projects. If any lessons match this project's tech stack (framework, database, auth, integrations), note them: "Lessons from prior builds: [list relevant ones]." These inform later phases — e.g., if a lesson says "React useEffect render loops escape review," trace render cycles proactively in Phase 4+.
|
|
13
|
+
6. Flag any gaps or ambiguities — list them explicitly, don't guess
|
|
14
|
+
7. **Troi confirms PRD extraction:** Troi reads the PRD prose and verifies the extraction matches — catches misinterpretations before 8+ build phases propagate them.
|
|
15
|
+
8. **Save PRD snapshot:** Copy `/docs/PRD.md` to `/docs/PRD-snapshot-phase0.md`. This is the baseline for drift detection — the Living PRD feature compares the evolving PRD against this snapshot at phase gates and at Victory.
|
|
16
|
+
9. Write initial ADRs to `/docs/adrs/`
|
|
17
|
+
10. Create `/logs/build-state.md` and `/logs/phase-00-orient.md` with extraction results + relevant lessons
|
|
18
|
+
11. **Gate:** ADRs written, all PRD sections accounted for, PRD snapshot saved, skip rules documented in build-state.md
|
|
19
|
+
|
|
20
|
+
## Phase 1 — Scaffold (Stark + Kusanagi)
|
|
21
|
+
1. Read `/docs/methods/BACKEND_ENGINEER.md` (Step 0 — Orient section only)
|
|
22
|
+
2. Initialize framework, configs, directory structure per PRD
|
|
23
|
+
3. Set up test runner per `/docs/methods/TESTING.md` (Setup Checklist section)
|
|
24
|
+
4. Log decisions to `/logs/phase-01-scaffold.md`
|
|
25
|
+
5. **Gate:** `npm run build` passes, directory structure matches architecture, test runner works
|
|
26
|
+
|
|
27
|
+
## Phase 2 — Infrastructure (Kusanagi)
|
|
28
|
+
1. Read `/docs/methods/DEVOPS_ENGINEER.md` (Senku section only)
|
|
29
|
+
2. Database setup (Banner assists), Redis if needed, environment config
|
|
30
|
+
3. Verify: dev server starts, DB connects, `npm test` passes
|
|
31
|
+
4. Log to `/logs/phase-02-infrastructure.md`
|
|
32
|
+
5. **Gate:** All verification commands pass
|
|
33
|
+
|
|
34
|
+
## Phase 3 — Auth (Stark + Galadriel, Kenobi reviews) [SKIP if `auth: no`]
|
|
35
|
+
1. Implement auth providers, login, signup, password reset, sessions, middleware, roles
|
|
36
|
+
2. Write auth integration tests — test all paths including failures
|
|
37
|
+
3. Kenobi reviews: session cookies, CSRF, password hashing, OAuth config
|
|
38
|
+
4. Log to `/logs/phase-03-auth.md`
|
|
39
|
+
5. **Gate:** Login/signup/logout work manually AND auth tests pass
|
|
40
|
+
|
|
41
|
+
## Phase 4 — Core Feature (Stark + Galadriel)
|
|
42
|
+
1. Identify the single most important user journey from the PRD
|
|
43
|
+
2. Build vertical slice: schema -> API -> UI -> wire up
|
|
44
|
+
3. Follow patterns: `/docs/patterns/api-route.ts`, `/docs/patterns/service.ts`
|
|
45
|
+
4. Write unit tests for core service logic, integration tests for API routes
|
|
46
|
+
5. Log to `/logs/phase-04-core.md`
|
|
47
|
+
6. **PRD alignment check (Living PRD):** Compare what was built against the PRD section for this feature. If the implementation deviates (different schema fields, different UI flow, different behavior), choose: fix the code to match the PRD, OR update the PRD to match reality. Never leave a silent contradiction. Log deviations in `/logs/phase-04-core.md`.
|
|
48
|
+
7. **Gate:** Core journey works end-to-end manually AND service tests pass (>80% coverage for core service). PRD alignment verified — no unresolved deviations. **"Works manually" means:** execute the happy path AND at least one error path against the running server. For file uploads, fetch the returned URL and verify it serves. For forms, submit invalid data and verify the error message is specific. Verify cross-module paths (generated URLs are accepted by their consumers).
|
|
49
|
+
|
|
50
|
+
## Phase 5 — Supporting Features (Stark + Galadriel) [1-3 features per session]
|
|
51
|
+
1. Build in dependency order: schema -> API -> UI -> verify per feature
|
|
52
|
+
2. After each feature batch: build passes, previous flows still work, new flow works, all tests pass
|
|
53
|
+
3. Log each feature batch to `/logs/phase-05-features.md`
|
|
54
|
+
4. **Gate:** All features work, no regressions, all tests pass. For each new feature: verify the happy path AND the primary error path against the running server. Verify cross-module integration (uploaded files serve correctly, error messages display in UI, generated URLs resolve).
|
|
55
|
+
|
|
56
|
+
## Phase 6 — Integrations (Stark/Romanoff, Kenobi reviews) [SKIP sections per frontmatter]
|
|
57
|
+
1. Each integration: client wrapper in /lib/, env vars, test mode, error handling
|
|
58
|
+
2. Follow `/docs/patterns/service.ts` for wrappers, `/docs/patterns/job-queue.ts` for async work
|
|
59
|
+
3. Kenobi reviews each integration's security
|
|
60
|
+
4. Log to `/logs/phase-06-integrations.md`
|
|
61
|
+
5. **PRD alignment check (Living PRD):** Compare each integration against the PRD's integration section. If the implementation uses a different provider, different API, or different behavior than the PRD specifies, choose: fix the code OR update the PRD. Log deviations.
|
|
62
|
+
6. **Gate:** Each integration tested in test mode, webhook handling verified. PRD alignment verified. For each integration: verify the full chain works (upload → URL → fetch, payment → webhook → state change, email → delivery confirmation). Submit data that triggers integration-specific errors and verify error messages are surfaced to the user.
|
|
63
|
+
|
|
64
|
+
## Phase 7 — Admin (Stark + Galadriel) [SKIP if `admin: no`]
|
|
65
|
+
1. Dashboard, user management, analytics views, audit logging
|
|
66
|
+
2. Log to `/logs/phase-07-admin.md`
|
|
67
|
+
3. **Gate:** Admin can view users/data, audit log records actions
|
|
68
|
+
|
|
69
|
+
## Phase 8 — Marketing (Galadriel) [SKIP if `marketing: no`]
|
|
70
|
+
1. Homepage, features, pricing, legal pages, SEO meta
|
|
71
|
+
2. Log to `/logs/phase-08-marketing.md`
|
|
72
|
+
3. **PRD alignment check (Living PRD):** Compare marketing pages against the PRD's marketing section. Verify copy claims (feature counts, pricing tiers, testimonial accuracy), visual treatments, and page structure match. Fix code OR update PRD for deviations.
|
|
73
|
+
4. **Gate:** Pages render, SEO present, mobile responsive, PRD alignment verified
|
|
74
|
+
|
|
75
|
+
## Phases 9-11 — Double-Pass Review Cycle (Batman + Galadriel + Kenobi)
|
|
76
|
+
|
|
77
|
+
### Pass 1 — Find (all three run in parallel)
|
|
78
|
+
1. **Batman (QA):** Read `/docs/methods/QA_ENGINEER.md`. Run Oracle + Red Hood + Alfred + Deathstroke + Constantine in parallel. Lucius reviews config separately. Log to `/logs/phase-09-qa-audit.md`
|
|
79
|
+
2. **Galadriel (UX)** [SKIP if `type: api-only`]: Read `/docs/methods/PRODUCT_DESIGN_FRONTEND.md`. Run Elrond + Arwen + Samwise in parallel, then Bilbo + Legolas + Gimli + Radagast sequentially. Log to `/logs/phase-10-ux-audit.md`
|
|
80
|
+
3. **Kenobi (Security):** Read `/docs/methods/SECURITY_AUDITOR.md`. Run Leia + Chewie + Rex + Maul in parallel, then Yoda → Windu → Ahsoka → Padmé sequentially. Log to `/logs/phase-11-security-audit.md`
|
|
81
|
+
|
|
82
|
+
### Fix Batch
|
|
83
|
+
4. Resolve all critical/high findings across all three audits
|
|
84
|
+
5. Where findings conflict between agents, apply conflict resolution from `/docs/methods/SUB_AGENTS.md`
|
|
85
|
+
|
|
86
|
+
### Pass 2 — Re-Verify (all three run in parallel)
|
|
87
|
+
6. **Batman:** Nightwing re-runs test suite + Red Hood re-probes fixed areas + Deathstroke re-tests boundaries
|
|
88
|
+
7. **Galadriel:** Samwise re-audits a11y on modified components + Radagast re-checks edge cases
|
|
89
|
+
8. **Kenobi:** Maul re-probes all remediated vulnerabilities
|
|
90
|
+
9. If Pass 2 finds new issues, fix and re-verify until clean
|
|
91
|
+
10. **Gate:** All agents sign off — test suite green, a11y clean, no critical/high security findings
|
|
92
|
+
|
|
93
|
+
## Phase 12 — Deploy (Kusanagi)
|
|
94
|
+
1. Read `/docs/methods/DEVOPS_ENGINEER.md` — execute full sequence
|
|
95
|
+
2. Run `npx voidforge deploy --headless` to provision infrastructure and deploy from the terminal (no browser needed — uses vault credentials and PRD frontmatter). If the vault isn't set up yet, generate deploy scripts per DEVOPS_ENGINEER.md instead.
|
|
96
|
+
3. Configure DNS/SSL, monitoring, backups
|
|
97
|
+
4. Log to `/logs/phase-12-deploy.md`
|
|
98
|
+
5. **Gate:** Health check passes in production, monitoring active, backup tested
|
|
99
|
+
|
|
100
|
+
## Phase 12.5 — Wong's Pattern Usage Log
|
|
101
|
+
After build and before launch, log which patterns were used: pattern name, framework adaptation, custom mods. Store in `docs/pattern-usage.json`. Feeds Wong's promotion analysis in `/debrief`.
|
|
102
|
+
|
|
103
|
+
## Phase 13 — Launch (All agents)
|
|
104
|
+
1. Full checklist: SSL, email, payments, analytics, monitoring, backups, security headers, legal, performance, mobile, accessibility, all tests passing
|
|
105
|
+
2. Log final status to `/logs/phase-13-launch.md`
|
|
106
|
+
3. Update `/logs/build-state.md` to "LAUNCHED"
|
|
107
|
+
|
|
108
|
+
## Flags
|
|
109
|
+
- `--blitz` — Autonomous execution: no confirmation between phases. Does NOT reduce quality.
|
|
110
|
+
- `--resume` — Resume from last completed phase in build-state.md.
|
|
111
|
+
- `--muster` — Full 9-universe review on every build phase. See `docs/methods/MUSTER.md`. **ENFORCEMENT: Must launch Agent tool sub-processes. Inline analysis is not a Muster.**
|
|
112
|
+
|
|
113
|
+
## At Every Phase
|
|
114
|
+
- Update `/logs/build-state.md` when starting and completing each phase
|
|
115
|
+
- Log non-obvious decisions to `/logs/decisions.md`
|
|
116
|
+
- If you notice context pressure symptoms (re-reading files, forgetting decisions), ask user to run `/context`. Only checkpoint if usage exceeds 70%.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
The Prophets have shown me the path. Time to execute the plan.
|
|
2
|
+
|
|
3
|
+
## Blitz Mode Check
|
|
4
|
+
|
|
5
|
+
**IMPORTANT: If `$ARGUMENTS` contains `--blitz`, this is BLITZ MODE.** In blitz mode:
|
|
6
|
+
- Do NOT ask for confirmation at mission briefs — proceed immediately
|
|
7
|
+
- Run full `/assemble` (do NOT imply `--fast` — blitz means autonomous, not reduced quality)
|
|
8
|
+
- Auto-continue to the next mission after each one completes
|
|
9
|
+
- Auto-debrief after each mission (`/debrief --submit`)
|
|
10
|
+
- Still run the Victory Gauntlet at Step 6 (non-negotiable)
|
|
11
|
+
- Still commit after each mission via `/git`
|
|
12
|
+
- Log mission briefs but do not wait for user input
|
|
13
|
+
|
|
14
|
+
**`--blitz` ≠ `--fast`.** Blitz skips human interaction. Fast skips review phases. They are independent flags and can be combined (`--blitz --fast`) if the user wants both.
|
|
15
|
+
|
|
16
|
+
**In blitz mode, make ALL decisions autonomously. Never ask the user a question. If uncertain, choose the option that preserves quality (e.g., run the Gauntlet, not skip it). The only human interaction in blitz mode is the final completion summary.**
|
|
17
|
+
|
|
18
|
+
**Blitz per-mission checklist** (verify ALL before continuing to next mission):
|
|
19
|
+
1. `/assemble` completed
|
|
20
|
+
2. `/git` committed
|
|
21
|
+
3. `/debrief --submit` filed (MANDATORY — not optional)
|
|
22
|
+
4. `campaign-state.md` updated with mission status + debrief issue number
|
|
23
|
+
5. Proceed to next mission
|
|
24
|
+
|
|
25
|
+
## Context Setup
|
|
26
|
+
1. Read `/logs/campaign-state.md` — if it exists, we're mid-campaign
|
|
27
|
+
2. Read `/docs/methods/CAMPAIGN.md` for operating rules
|
|
28
|
+
3. Read the PRD — check `/PRD-VOIDFORGE.md` first (VoidForge's own roadmap, root-level), fall back to `/docs/PRD.md` (user project PRD)
|
|
29
|
+
|
|
30
|
+
## Planning Mode (--plan)
|
|
31
|
+
|
|
32
|
+
If `$ARGUMENTS` contains `--plan`, skip execution and update the plan instead:
|
|
33
|
+
|
|
34
|
+
1. Read the current PRD (`/PRD-VOIDFORGE.md` or `/docs/PRD.md`) and `ROADMAP.md` (if it exists)
|
|
35
|
+
2. Parse what the user wants to add from `$ARGUMENTS` (everything after `--plan`)
|
|
36
|
+
3. **Dax analyzes** where it fits:
|
|
37
|
+
- Is it a new feature? → Add to the PRD under the right section (Core Features, Integrations, etc.)
|
|
38
|
+
- Is it a bug fix or improvement? → Add to ROADMAP.md under the appropriate version
|
|
39
|
+
- Is it a new version-worth of work? → Create a new version section in ROADMAP.md
|
|
40
|
+
- Does it change priorities? → Reorder the roadmap accordingly
|
|
41
|
+
4. **Odo checks** dependencies: does this new item depend on something not yet built? Flag it.
|
|
42
|
+
5. Present the proposed changes to the user for review before writing
|
|
43
|
+
6. On confirmation, write the updates to the PRD and/or ROADMAP.md
|
|
44
|
+
7. Do NOT start building — planning mode only updates the plan
|
|
45
|
+
|
|
46
|
+
After planning mode completes, the user can run `/campaign` (no flags) to start executing.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Execution Mode (default)
|
|
51
|
+
|
|
52
|
+
## Step 0 — Kira's Operational Reconnaissance
|
|
53
|
+
|
|
54
|
+
Check for unfinished business:
|
|
55
|
+
|
|
56
|
+
1. Read `/logs/campaign-state.md` — campaign progress
|
|
57
|
+
2. Read `/logs/build-state.md` — in-progress builds
|
|
58
|
+
3. Read `/logs/assemble-state.md` — in-progress assemblies
|
|
59
|
+
4. Run `git status` — uncommitted changes
|
|
60
|
+
5. Check auto-memory for project context
|
|
61
|
+
6. Check for VoidForge vault: `~/.voidforge/vault.enc`
|
|
62
|
+
- If vault exists → check provisioning state (`~/.voidforge/runs/*.json`)
|
|
63
|
+
- If vault exists + not provisioned → flag: "Run `voidforge deploy` before continuing."
|
|
64
|
+
- If vault exists + provisioned → verify `.env` is populated. If not, suggest re-running provisioner.
|
|
65
|
+
- If no vault → proceed normally
|
|
66
|
+
|
|
67
|
+
**Verdicts:**
|
|
68
|
+
- If assemble-state shows incomplete phases → run `/assemble --resume` first
|
|
69
|
+
- If build-state shows incomplete phases → resume `/build` first
|
|
70
|
+
- If uncommitted changes exist → ask: "Commit first, or continue?"
|
|
71
|
+
- If `/campaign --resume` was passed → resume from campaign-state's active mission
|
|
72
|
+
- If campaign-state has unresolved BLOCKED items → present them: "These items from previous missions are still blocked: [list]. Resolve now, skip, or continue?"
|
|
73
|
+
- If vault exists but `.env` is sparse → offer: "The vault has credentials but infrastructure isn't provisioned. Run `voidforge deploy` now?" In `--blitz` mode: auto-run provisioner.
|
|
74
|
+
- If clear → proceed to Step 0.5
|
|
75
|
+
|
|
76
|
+
## Step 0.5 — Vault Auto-Inject
|
|
77
|
+
|
|
78
|
+
If vault exists and `.env` is sparse (missing keys that the vault has):
|
|
79
|
+
1. Run `voidforge deploy --env-only` to write vault credentials to `.env`
|
|
80
|
+
2. In `--blitz` mode: auto-run without confirmation
|
|
81
|
+
3. In normal mode: show what will be written, ask for confirmation
|
|
82
|
+
4. This runs BEFORE Dax's full analysis so the populated `.env` is visible
|
|
83
|
+
|
|
84
|
+
## Step 1 — Dax's Strategic Analysis
|
|
85
|
+
|
|
86
|
+
Read the PRD and diff against the codebase:
|
|
87
|
+
|
|
88
|
+
1. Read the PRD fully (`/PRD-VOIDFORGE.md` if it exists at root, otherwise `/docs/PRD.md`) — extract every feature, route, schema, integration
|
|
89
|
+
2. Scan the codebase — what exists? Routes, schema files, components, tests
|
|
90
|
+
3. Read PRD Section 16 (Launch Sequence) for user-defined phases
|
|
91
|
+
4. Read YAML frontmatter for skip flags (`auth: no`, `payments: none`, etc.)
|
|
92
|
+
5. **Classify every requirement by type:** Code (buildable), Asset (needs external generation — images, illustrations, OG cards), Copy (text accuracy), Infrastructure (DNS, env vars, dashboards)
|
|
93
|
+
6. Diff: what the PRD describes vs. what's implemented — **structural AND semantic** (not just "does the route exist?" but "does the component render what the PRD describes?")
|
|
94
|
+
7. Produce the ordered mission list — each mission is 1-3 PRD sections, scoped to be buildable in one `/assemble` run
|
|
95
|
+
8. **Pike challenges the ordering:** "Should we attempt a harder mission first while context is fresh?" Bold counterbalance to Dax's dependency-based ordering. If Pike's argument is stronger, reorder.
|
|
96
|
+
9. **Separately list BLOCKED items** — asset/infrastructure requirements that code can't satisfy
|
|
97
|
+
|
|
98
|
+
**Priority cascade:**
|
|
99
|
+
1. Section 16 phases (if defined by user)
|
|
100
|
+
2. Dependency order: Auth → Core → Supporting → Integrations → Admin → Marketing
|
|
101
|
+
3. Complexity-first: within a dependency tier, build the hardest features first (most integrations, most edge cases, most schema relationships). Hard things when energy is fresh, polish later.
|
|
102
|
+
4. PRD section order as tiebreaker when complexity is equal
|
|
103
|
+
5. Skip sections flagged as no/none in frontmatter
|
|
104
|
+
6. Asset/infrastructure requirements → flag as BLOCKED, don't include in code missions
|
|
105
|
+
|
|
106
|
+
## Step 2 — Odo's Prerequisite Check
|
|
107
|
+
|
|
108
|
+
For the next mission on the list:
|
|
109
|
+
- Are dependencies met? (e.g., Payments needs Auth)
|
|
110
|
+
- Are credentials needed? (e.g., Stripe key for payments)
|
|
111
|
+
- Are schema changes needed before building?
|
|
112
|
+
- Any blockers from previous missions?
|
|
113
|
+
|
|
114
|
+
Flag blockers. Suggest resolutions. If blocked, check the mission after.
|
|
115
|
+
|
|
116
|
+
## Step 3 — Sisko's Mission Brief
|
|
117
|
+
|
|
118
|
+
Present to the user:
|
|
119
|
+
```
|
|
120
|
+
═══════════════════════════════════════════
|
|
121
|
+
MISSION BRIEF — [Mission Name]
|
|
122
|
+
═══════════════════════════════════════════
|
|
123
|
+
Objective: [What gets built]
|
|
124
|
+
PRD Scope: [Which sections]
|
|
125
|
+
Prereqs: [Met / Blocked]
|
|
126
|
+
BLOCKED: [Asset/infra items that won't be built — flag for user]
|
|
127
|
+
Est. Phases: [Which /build phases apply]
|
|
128
|
+
═══════════════════════════════════════════
|
|
129
|
+
Confirm? [Y/n/skip/override]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
If `$ARGUMENTS` contains `--blitz`, skip confirmation and proceed immediately. Otherwise, wait for user confirmation before proceeding.
|
|
133
|
+
|
|
134
|
+
## Step 4 — Deploy Fury
|
|
135
|
+
|
|
136
|
+
On confirmation (or immediately in `--blitz` mode):
|
|
137
|
+
1. Run `/assemble` with the scoped mission description
|
|
138
|
+
When running from within `/campaign`, use a reduced pipeline: architecture (quick) + build + 1 review round + security (if new endpoints). Defer UX, DevOps, QA, Test, Crossfire, and Council to the Victory Gauntlet. This keeps per-mission cost manageable across multi-mission campaigns.
|
|
139
|
+
2. If `$ARGUMENTS` includes `--fast`, pass `--fast` to assemble (skip Crossfire + Council). Note: `--blitz` does NOT imply `--fast`.
|
|
140
|
+
3. Monitor for context pressure symptoms (re-reading files, forgetting decisions). If noticed, ask user to run `/context` — only checkpoint if usage exceeds 70%.
|
|
141
|
+
|
|
142
|
+
## Step 4.5 — Gauntlet Checkpoint (Thanos)
|
|
143
|
+
|
|
144
|
+
After every 4th mission (missions 4, 8, 12, etc.), run a Gauntlet checkpoint before continuing:
|
|
145
|
+
|
|
146
|
+
1. **Count completed missions** in this campaign. If `completedMissions % 4 === 0`, trigger checkpoint.
|
|
147
|
+
|
|
148
|
+
**ENFORCEMENT:** After committing each mission, increment your mission counter. Check: if completedMissionsThisCampaign is divisible by 4, trigger the checkpoint. In blitz mode, this check is mandatory and automatic — do not skip or defer it. Log the count in campaign-state.md after each mission: "Missions completed: N. Next checkpoint at: N+X."
|
|
149
|
+
|
|
150
|
+
2. **Run `/gauntlet --fast`** (3 rounds: Discovery → First Strike → Second Strike). This catches cross-module integration bugs that individual `/assemble` runs miss — each `/assemble` only reviews its own changeset, but the Gauntlet reviews the **combined system**.
|
|
151
|
+
3. **Fix all Critical and High findings** before proceeding to the next mission.
|
|
152
|
+
4. **Commit fixes** via `/git` with message: `Gauntlet checkpoint after mission N: X fixes`
|
|
153
|
+
5. If `$ARGUMENTS` includes `--fast`, skip the checkpoint gauntlets (but NOT the final gauntlet in Step 6).
|
|
154
|
+
|
|
155
|
+
**Why every 4 missions:** Individual `/assemble` runs catch 95% of issues within their scope. The remaining 5% are cross-cutting: missing imports between modules, inconsistent auth enforcement across endpoints built in different missions, CORS/CSP gaps for new connection patterns. Catching these every 4 missions prevents compounding — a bug in mission 2 that affects mission 6 is caught at mission 4, not at the end.
|
|
156
|
+
|
|
157
|
+
## Step 5 — Debrief and Commit
|
|
158
|
+
|
|
159
|
+
After `/assemble` completes:
|
|
160
|
+
1. Run `/git` to commit and version the mission
|
|
161
|
+
2. Update `/logs/campaign-state.md` — mark mission complete, update stats. When updating, include the debrief issue number: "Debrief: #XX" or "Debrief: SKIPPED (not blitz)" or "Debrief: N/A (normal mode)".
|
|
162
|
+
3. **BLITZ GATE:** If `$ARGUMENTS` contains `--blitz`, run `/debrief --submit` NOW. Do not proceed to the next step until the debrief is filed. This is non-negotiable — blitz captures learnings while context is fresh. Log the debrief issue number in campaign-state.md.
|
|
163
|
+
**Lightweight alternative:** ONLY if `/context` shows actual usage above 70% (~700k tokens), append a 3-line summary to `/logs/campaign-debriefs.md` instead (mission name, finding counts, key lesson). You MUST report the actual context percentage to justify this. "Context is heavy" without a number is not valid justification.
|
|
164
|
+
4. **Collect BLOCKED items** from this mission (assets, infrastructure, copy issues). For each:
|
|
165
|
+
- If it's a future feature → append to `ROADMAP.md` under the appropriate version
|
|
166
|
+
- If it's a missing asset the user must provide → add to a `## Blocked Items` section in campaign-state.md with what's needed and who can unblock it
|
|
167
|
+
- If it's a PRD requirement that can't be satisfied by code → flag in the Prophecy Board as BLOCKED with the reason
|
|
168
|
+
5. Check: are all PRD requirements COMPLETE or BLOCKED?
|
|
169
|
+
- **No** → loop back to Step 1 (next mission)
|
|
170
|
+
- **Yes** → Step 6
|
|
171
|
+
|
|
172
|
+
**Context pressure check:** Do NOT checkpoint based on mission count. Check actual context usage via `/context`. Only checkpoint when usage exceeds 70% (~700k tokens). Never pause a blitz based on mission count alone.
|
|
173
|
+
|
|
174
|
+
## Step 6 — Victory Condition (Gauntlet + Troi's Compliance Check)
|
|
175
|
+
|
|
176
|
+
All PRD requirements are COMPLETE or explicitly BLOCKED:
|
|
177
|
+
|
|
178
|
+
1. **Run `/gauntlet` (full 5 rounds)** — mandatory final Gauntlet on the complete codebase. This is non-negotiable, even with `--fast`. The Gauntlet tests the combined system across all domains: architecture, code review, UX, security, QA, DevOps, adversarial crossfire, and council convergence. Individual `/assemble` runs review one mission at a time; the Gauntlet reviews everything together.
|
|
179
|
+
2. **Fix all Critical and High findings** from the Gauntlet.
|
|
180
|
+
3. **Troi reads the PRD section-by-section** (runs as part of the Gauntlet Council round) — verifies every prose claim against the implementation. Not just "does the route exist?" but "does the component render what the PRD describes?" Checks numeric claims, visual treatments, copy accuracy, asset gaps.
|
|
181
|
+
4. Fix code discrepancies. Flag asset requirements as BLOCKED.
|
|
182
|
+
5. Report: COMPLETE items, BLOCKED items (with reasons), deviations from PRD
|
|
183
|
+
6. Victory only if: Gauntlet Council signs off AND user acknowledges all BLOCKED items
|
|
184
|
+
7. Sisko signs off: *"The Prophets' plan is fulfilled. The campaign is complete."*
|
|
185
|
+
|
|
186
|
+
8. **Run `/debrief --submit`** — mandatory end-of-campaign post-mortem covering all missions together. Captures cross-cutting learnings that per-mission debriefs miss. In blitz mode, auto-submits per FIELD_MEDIC.md rule 2 exception. This is non-negotiable, like the Victory Gauntlet itself. (Field report #31)
|
|
187
|
+
|
|
188
|
+
**Victory ≠ "everything built." Victory = "everything buildable was built correctly, survived the Gauntlet, and everything unbuildable is explicitly acknowledged."**
|
|
189
|
+
|
|
190
|
+
## Arguments
|
|
191
|
+
- `--plan [description]` → planning mode: update PRD and/or ROADMAP.md with new ideas, don't build
|
|
192
|
+
- `--resume` → resume from campaign-state's active mission
|
|
193
|
+
- `--fast` → pass --fast to every /assemble call (skip Crossfire + Council per-mission). Minimum: 1 review round per mission even in --fast mode. Never 0.
|
|
194
|
+
- `--blitz` → full autonomous mode: skips mission confirmation prompts, auto-continues between missions, auto-debriefs after each mission. Does NOT imply `--fast` — full review quality is preserved. Combine with `--fast` explicitly if you want reduced reviews. Use when you want to walk away and come back to a built project.
|
|
195
|
+
- `--autonomous` → supervised autonomy: same as blitz PLUS `git tag` before each mission, critical-finding rollback, 5-mission human checkpoints. Safer for 10+ mission campaigns. See CAMPAIGN.md "Autonomous Mode" for full guardrails.
|
|
196
|
+
- `--continuous` → after Victory, auto-start the next roadmap version within the same major (v9.3→v9.4, stops before v10.0). Add `--major` to cross major boundaries and never stop cooking.
|
|
197
|
+
- `--mission "Name"` → jump to a specific PRD section
|
|
198
|
+
- `--muster` → Per-mission full-roster deployment. Every viable agent across all 9 universes reviews each mission in 3 waves. Expensive — use for critical missions. See `docs/methods/MUSTER.md`. **ENFORCEMENT: Must launch Agent tool sub-processes per MUSTER.md. Inline analysis is not a Muster.**
|
|
199
|
+
- No arguments → start fresh or auto-detect state
|
|
200
|
+
|
|
201
|
+
**VICTORY GAUNTLET IS NEVER SKIPPED.** Not for methodology-only campaigns. Not for "no code changes." The Gauntlet checks methodology consistency (cross-references, command↔doc sync, agent assignments, version drift) in addition to code. Five campaigns (v8.1-v9.2) shipped without Gauntlets — this is a protocol violation.
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# /cultivation — Install the Cultivation Growth Engine
|
|
2
|
+
|
|
3
|
+
> *"Cultivation is patient, strategic, and plays the longest game." — Koravellium Avast*
|
|
4
|
+
|
|
5
|
+
Read `/docs/methods/GROWTH_STRATEGIST.md` for operating rules.
|
|
6
|
+
Read PRD-VOIDFORGE.md §9.19 for the Cultivation architecture.
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
If `packages/voidforge/wizard/server.ts` does not exist (scaffold/core users):
|
|
10
|
+
1. Offer: "Cultivation's full install requires the wizard server for the heartbeat daemon and dashboard. Pull it from upstream? [Y/n] (Steps 1-3 work without it.)"
|
|
11
|
+
2. On yes: `git fetch voidforge main 2>/dev/null || git remote add voidforge https://github.com/tmcleod3/voidforge.git && git fetch voidforge main` then `git checkout voidforge/main -- packages/voidforge/` then `npm install`. Proceed with full install.
|
|
12
|
+
3. On no: proceed to Steps 1-3 (Financial Foundation, Revenue Tracking, Ad Platform deferral). Steps 4-8 will display skip messages. The partial install summary at Step 7 shows what was completed vs skipped.
|
|
13
|
+
|
|
14
|
+
## What Cultivation IS
|
|
15
|
+
|
|
16
|
+
Cultivation is VoidForge's autonomous growth engine — the ensemble of:
|
|
17
|
+
- Heartbeat daemon scheduled jobs (token refresh, spend monitoring, reconciliation, A/B evaluation)
|
|
18
|
+
- Growth tabs in the Danger Room dashboard (Growth Overview, Ad Campaigns, Treasury, Heartbeat)
|
|
19
|
+
- CLI commands (`/grow`, `/treasury`, `/portfolio`) for human-initiated strategy
|
|
20
|
+
- Deterministic optimization rules that run 24/7 (kill underperformers, evaluate A/B tests, rebalance budgets)
|
|
21
|
+
|
|
22
|
+
Cultivation is NOT a separate web application. The Danger Room is the single operational dashboard.
|
|
23
|
+
|
|
24
|
+
## /cultivation install
|
|
25
|
+
|
|
26
|
+
### Prerequisites
|
|
27
|
+
1. VoidForge must be initialized (CLAUDE.md exists, PRD exists)
|
|
28
|
+
2. Project does NOT need to be deployed — Cultivation now supports Day-0 setup (v14.0)
|
|
29
|
+
|
|
30
|
+
### Installation Steps — 7-Step Day-0 Onboarding
|
|
31
|
+
|
|
32
|
+
Growth infrastructure from the first commit, not the first customer. (Field report #131)
|
|
33
|
+
|
|
34
|
+
**Step 1 — Financial Foundation:**
|
|
35
|
+
- "Let's set up your growth treasury. Where will your ad spend come from?"
|
|
36
|
+
- Options: Mercury (API key), Brex (OAuth), existing bank account (manual), manual budget entry, **Stablecoin Treasury (USDC / approved stablecoins)**
|
|
37
|
+
- If Mercury/Brex: guide through API key/OAuth setup, test connection, store in financial vault
|
|
38
|
+
- If manual: enter monthly budget allocation ($X/month for growth)
|
|
39
|
+
- If **Stablecoin Treasury**:
|
|
40
|
+
1. **Provider selection:** Circle (recommended) / Bridge / Manual external off-ramp
|
|
41
|
+
2. **Destination bank:** Mercury (recommended) / External bank
|
|
42
|
+
3. **Treasury operating mode:** Maintain buffer (recommended — keep minimum USD balance) / Just-in-time funding (off-ramp only when obligation is imminent)
|
|
43
|
+
4. **Buffer threshold:** Minimum USD operating balance + minimum days of runway
|
|
44
|
+
5. **Freeze thresholds:**
|
|
45
|
+
- Stop off-ramp if reconciliation mismatch exceeds N bps
|
|
46
|
+
- Stop platform budget increases if bank balance below threshold
|
|
47
|
+
- Freeze all autonomous spend if provider connectivity fails for N consecutive cycles
|
|
48
|
+
6. **TOTP verification:** Required before enabling any write operations (off-ramp, invoice settlement, unfreeze)
|
|
49
|
+
- Store encrypted: provider credentials, source wallet/account IDs, destination bank mapping, approved networks and assets, funding mode and thresholds, TOTP metadata
|
|
50
|
+
- Create financial vault `~/.voidforge/treasury/vault.enc` (AES-256-GCM, scrypt — memory-hard, zero-dep)
|
|
51
|
+
- Set spending limits and circuit breakers from the start: pause if ROAS < 1.0x for 7 days, daily cap per platform
|
|
52
|
+
- TOTP 2FA setup: generate secret, display QR + copyable text, store in keychain
|
|
53
|
+
|
|
54
|
+
**Step 2 — Revenue Tracking:**
|
|
55
|
+
- "Where does your revenue come from?"
|
|
56
|
+
- Auto-detect: scan project for `stripe` dependency or `STRIPE_SECRET_KEY` in env/vault
|
|
57
|
+
- If Stripe found: "Stripe is already configured. Connect it to Treasury for revenue tracking?" → store read-only API key in vault
|
|
58
|
+
- If no payment processor: "Set up Stripe? Or track revenue manually?" → guide Stripe key setup or accept manual tracking
|
|
59
|
+
- Connect revenue source → Treasury starts tracking from day 0
|
|
60
|
+
- For pre-revenue projects: "No revenue yet? That's fine — Treasury will start tracking when your first payment arrives."
|
|
61
|
+
|
|
62
|
+
**Step 3 — Ad Platform Setup:** (deferred to Mission 2 — runs via `/grow --setup`)
|
|
63
|
+
- Flag: "Ad platforms can be configured later with `/grow --setup`. Continuing installation."
|
|
64
|
+
|
|
65
|
+
**Step 4 — Install heartbeat daemon:**
|
|
66
|
+
If `packages/voidforge/wizard/server.ts` exists:
|
|
67
|
+
- Create launchd plist (macOS) or systemd unit (Linux): `com.voidforge.heartbeat`
|
|
68
|
+
- Prompt for vault password to start daemon
|
|
69
|
+
- Daemon begins monitoring (token refresh, health checks, reconciliation)
|
|
70
|
+
|
|
71
|
+
If `packages/voidforge/wizard/server.ts` does NOT exist:
|
|
72
|
+
- Display: "Step 4 (Heartbeat daemon): Skipped — requires wizard server. To enable: answer Y to the wizard pull prompt at startup, or run: `git checkout origin/main -- packages/voidforge/ && npm install`"
|
|
73
|
+
|
|
74
|
+
**Step 5 — Install wizard server service** (for persistent dashboard):
|
|
75
|
+
If `packages/voidforge/wizard/server.ts` exists:
|
|
76
|
+
- Create launchd plist: `com.voidforge.server`
|
|
77
|
+
- Wizard server runs persistently (serves Danger Room with growth tabs)
|
|
78
|
+
|
|
79
|
+
If `packages/voidforge/wizard/server.ts` does NOT exist:
|
|
80
|
+
- Display: "Step 5 (Wizard server): Skipped — requires wizard server."
|
|
81
|
+
|
|
82
|
+
**Step 6 — Enable growth tabs in Danger Room:**
|
|
83
|
+
If `packages/voidforge/wizard/server.ts` exists:
|
|
84
|
+
- Growth tab: shows connected treasury + revenue data from Step 1-2
|
|
85
|
+
- Treasury tab: shows vault status, circuit breakers, budget allocation
|
|
86
|
+
- Campaigns tab: empty state with guidance ("Run `/grow --setup` to configure ad platforms")
|
|
87
|
+
- Heartbeat tab: daemon status, last refresh timestamp
|
|
88
|
+
|
|
89
|
+
If `packages/voidforge/wizard/server.ts` does NOT exist:
|
|
90
|
+
- Display: "Step 6 (Danger Room tabs): Skipped — requires wizard server."
|
|
91
|
+
|
|
92
|
+
**Step 7 — Confirm success:**
|
|
93
|
+
|
|
94
|
+
If wizard is present (full install):
|
|
95
|
+
```
|
|
96
|
+
═══════════════════════════════════════════
|
|
97
|
+
CULTIVATION INSTALLED — Day 0
|
|
98
|
+
═══════════════════════════════════════════
|
|
99
|
+
Financial vault: ✓ Created
|
|
100
|
+
TOTP 2FA: ✓ Configured
|
|
101
|
+
Treasury: ✓ Connected (Mercury | Manual: $X/mo)
|
|
102
|
+
Revenue: ✓ Connected (Stripe) | ○ Not yet
|
|
103
|
+
Heartbeat daemon: ✓ Running (PID XXXXX)
|
|
104
|
+
Danger Room: ✓ Growth tabs enabled
|
|
105
|
+
Dashboard: http://localhost:3141/danger-room#growth
|
|
106
|
+
═══════════════════════════════════════════
|
|
107
|
+
Next steps:
|
|
108
|
+
/grow --setup Configure ad platforms
|
|
109
|
+
/grow Start your first growth campaign
|
|
110
|
+
═══════════════════════════════════════════
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If wizard is NOT present (partial install):
|
|
114
|
+
```
|
|
115
|
+
═══════════════════════════════════════════
|
|
116
|
+
CULTIVATION INSTALLED — Day 0 (Partial)
|
|
117
|
+
═══════════════════════════════════════════
|
|
118
|
+
Financial vault: ✓ Created
|
|
119
|
+
TOTP 2FA: ✓ Configured
|
|
120
|
+
Treasury: ✓ Connected (Mercury | Manual: $X/mo)
|
|
121
|
+
Revenue: ✓ Connected (Stripe) | ○ Not yet
|
|
122
|
+
Heartbeat daemon: — Skipped (requires wizard)
|
|
123
|
+
Wizard server: — Skipped (requires wizard)
|
|
124
|
+
Danger Room: — Skipped (requires wizard)
|
|
125
|
+
═══════════════════════════════════════════
|
|
126
|
+
Steps 1-3 complete. Steps 4-6 require the wizard server.
|
|
127
|
+
To enable full Cultivation:
|
|
128
|
+
git checkout origin/main -- packages/voidforge/
|
|
129
|
+
npm install
|
|
130
|
+
Then re-run /cultivation install to complete Steps 4-6.
|
|
131
|
+
|
|
132
|
+
What works now:
|
|
133
|
+
/grow Phases 1-3 (SEO, analytics, content)
|
|
134
|
+
/grow --audit-only Full methodology audit
|
|
135
|
+
═══════════════════════════════════════════
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Step 8 — Offer Tier 3 opt-in:**
|
|
139
|
+
If `packages/voidforge/wizard/server.ts` exists:
|
|
140
|
+
- "Enable scheduled AI agents? These run weekly creative refresh and monthly strategy reviews. They consume Claude API credits. [Y/n]"
|
|
141
|
+
- If yes: configure `--auto-creative` and `--auto-strategy` flags
|
|
142
|
+
|
|
143
|
+
If `packages/voidforge/wizard/server.ts` does NOT exist:
|
|
144
|
+
- Display: "Step 8 (Scheduled AI agents): Skipped — requires heartbeat daemon."
|
|
145
|
+
|
|
146
|
+
## /cultivation status
|
|
147
|
+
|
|
148
|
+
Also available as `--status` flag for consistency.
|
|
149
|
+
|
|
150
|
+
Show current Cultivation state:
|
|
151
|
+
- Heartbeat daemon: running/stopped/degraded
|
|
152
|
+
- Growth tabs: enabled/disabled
|
|
153
|
+
- Active campaigns: count
|
|
154
|
+
- Platforms connected: list
|
|
155
|
+
- Vault session: active/expired
|
|
156
|
+
|
|
157
|
+
## /cultivation uninstall
|
|
158
|
+
|
|
159
|
+
1. Warn about active campaigns
|
|
160
|
+
2. Offer to pause all campaigns
|
|
161
|
+
3. Export financial data
|
|
162
|
+
4. Remove launchd/systemd services
|
|
163
|
+
5. NEVER auto-delete `~/.voidforge/treasury/`
|
|
164
|
+
|
|
165
|
+
## Arguments
|
|
166
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# /current — Tuvok's Deep Current (Autonomous Campaign Intelligence)
|
|
2
|
+
|
|
3
|
+
> *"Logic is the beginning of wisdom, not the end."*
|
|
4
|
+
|
|
5
|
+
Read `/docs/methods/DEEP_CURRENT.md` for operating rules.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
If `packages/voidforge/wizard/server.ts` does not exist and the mode requires it (`--scan`, `--propose`, default):
|
|
9
|
+
1. Offer: "Deep Current's site scanner and daemon integration require the wizard server. Pull it from upstream? [Y/n]" (Note: `--intake` works without wizard/ — it's a Claude Code interview, not a server feature.)
|
|
10
|
+
2. On yes: `git fetch voidforge main 2>/dev/null || git remote add voidforge https://github.com/tmcleod3/voidforge.git && git fetch voidforge main` then `git checkout voidforge/main -- packages/voidforge/` then `npm install`
|
|
11
|
+
3. On no: stop with "Run manually: `git checkout voidforge/main -- packages/voidforge/`"
|
|
12
|
+
|
|
13
|
+
## Context Setup
|
|
14
|
+
1. Read `/logs/deep-current/situation.json` — if exists, we have a situation model
|
|
15
|
+
2. Read `/logs/campaign-state.md` — campaign history
|
|
16
|
+
3. If no situation model: this is first run — classify project state
|
|
17
|
+
|
|
18
|
+
## Default Mode (scan → analyze → propose)
|
|
19
|
+
|
|
20
|
+
### Step 1 — SENSE (Torres + Vin + Marsh + Kira)
|
|
21
|
+
|
|
22
|
+
Torres scans the deployed site (if deployed):
|
|
23
|
+
- HTTP response times on main routes
|
|
24
|
+
- Meta tags (title, description, OG, JSON-LD)
|
|
25
|
+
- Security headers (HTTPS, HSTS, CSP, CORS)
|
|
26
|
+
- Cache headers, compression
|
|
27
|
+
- Analytics snippets detected (GA4, Plausible, PostHog)
|
|
28
|
+
- Mobile viewport, favicon, sitemap, robots.txt
|
|
29
|
+
|
|
30
|
+
Vin reads analytics (if connected):
|
|
31
|
+
- Traffic trends (7-day, 30-day)
|
|
32
|
+
- Top pages, referral sources
|
|
33
|
+
- Conversion rates by path
|
|
34
|
+
- Bounce rates
|
|
35
|
+
|
|
36
|
+
Marsh scans competitors (from PRD or user input):
|
|
37
|
+
- Pricing, features, positioning
|
|
38
|
+
- SEO comparison (meta tags, structured data)
|
|
39
|
+
|
|
40
|
+
Kira reads operational state:
|
|
41
|
+
- Campaign history, gauntlet history, build state
|
|
42
|
+
- Unresolved BLOCKED items
|
|
43
|
+
- Active heartbeat daemon status
|
|
44
|
+
|
|
45
|
+
### Step 2 — ANALYZE (Seven)
|
|
46
|
+
|
|
47
|
+
Seven scores 5 dimensions (0-100):
|
|
48
|
+
1. **Feature completeness** — PRD vs codebase diff (Dax's existing logic)
|
|
49
|
+
2. **Quality** — gauntlet findings + field report count + test coverage
|
|
50
|
+
3. **Performance** — Lighthouse scores + response times
|
|
51
|
+
4. **Growth readiness** — analytics presence + SEO + conversion paths + content
|
|
52
|
+
5. **Revenue potential** — pricing page + payment integration + funnel completeness
|
|
53
|
+
|
|
54
|
+
Lowest score = first priority.
|
|
55
|
+
|
|
56
|
+
### Step 3 — PROPOSE (Tuvok)
|
|
57
|
+
|
|
58
|
+
Generate campaign proposal:
|
|
59
|
+
```markdown
|
|
60
|
+
# Campaign Proposal — [Name]
|
|
61
|
+
## Generated by: The Deep Current (Tuvok)
|
|
62
|
+
## Trigger: [signal that caused this]
|
|
63
|
+
|
|
64
|
+
### The Case
|
|
65
|
+
[Data-backed reasoning for this campaign]
|
|
66
|
+
|
|
67
|
+
### Missions
|
|
68
|
+
[Ordered list, same format as Dax's Prophecy Board]
|
|
69
|
+
|
|
70
|
+
### Expected Impact
|
|
71
|
+
[Quantified prediction: "SEO fixes → +30% organic traffic"]
|
|
72
|
+
|
|
73
|
+
### Risk Assessment
|
|
74
|
+
[What could go wrong]
|
|
75
|
+
|
|
76
|
+
### Alternatives Considered
|
|
77
|
+
[What else was evaluated]
|
|
78
|
+
|
|
79
|
+
### Autonomy Recommendation
|
|
80
|
+
[Tier 1/2/3 with rationale]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Save to `/logs/deep-current/proposals/YYYY-MM-DD-[name].md`
|
|
84
|
+
|
|
85
|
+
### Step 4 — Present
|
|
86
|
+
|
|
87
|
+
Show the proposal. In Tier 1 (default): "Tuvok recommends this campaign. Launch? [Y/n/modify]"
|
|
88
|
+
|
|
89
|
+
## --intake Mode (Cold Start)
|
|
90
|
+
|
|
91
|
+
For greenfield or new projects:
|
|
92
|
+
1. Ask: "What problem are you solving? For whom?" (ONE paragraph)
|
|
93
|
+
2. Torres scans the site (if deployed)
|
|
94
|
+
3. Marsh scans competitors
|
|
95
|
+
4. Seven identifies gaps
|
|
96
|
+
5. Tuvok generates a draft PRD (via /prd internally)
|
|
97
|
+
6. User reviews PRD
|
|
98
|
+
7. Paris computes first campaign
|
|
99
|
+
8. Present proposal
|
|
100
|
+
|
|
101
|
+
## --scan Mode
|
|
102
|
+
|
|
103
|
+
Run SENSE step only. Update situation model. No proposal.
|
|
104
|
+
|
|
105
|
+
## --status Mode
|
|
106
|
+
|
|
107
|
+
Show current situation model:
|
|
108
|
+
```
|
|
109
|
+
═══════════════════════════════════════════
|
|
110
|
+
DEEP CURRENT — [Project Name]
|
|
111
|
+
═══════════════════════════════════════════
|
|
112
|
+
State: [GREENFIELD/PARTIAL/DEPLOYED/OPERATING]
|
|
113
|
+
Last scan: [timestamp]
|
|
114
|
+
|
|
115
|
+
Feature: ████████░░ 78/100
|
|
116
|
+
Quality: █████████░ 85/100
|
|
117
|
+
Performance: ██████░░░░ 62/100
|
|
118
|
+
Growth: ████░░░░░░ 45/100 ← lowest
|
|
119
|
+
Revenue: ███████░░░ 70/100
|
|
120
|
+
|
|
121
|
+
Recommendation: [one-line from latest proposal]
|
|
122
|
+
Prediction accuracy: XX% (N campaigns)
|
|
123
|
+
Autonomy tier: [1/2/3]
|
|
124
|
+
═══════════════════════════════════════════
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Arguments
|
|
128
|
+
$ARGUMENTS
|