● Zion Boggan zionboggan.com ↗

Orchestration: recursive fan-out doctrine; wave-0 prompts

75b4241   Zion Boggan committed on Jun 26, 2026 (1 month ago)
_ops/wave0-codex-prompt.txt +17 -0
@@ -0,0 +1,17 @@
+You are Codex, the BACKEND builder for Docket. Be RAG-first: query homelab_context first; read ONLY the named files below; no full-tree reads. Read: PLAN.md, docs/DATA_SOURCES.md, docs/ARCHITECTURE.md, docs/NEUTRALITY.md, docs/ORCHESTRATION.md.
+
+WAVE 0 task: build the Python ingest service here under services/ingest.
+
+Create poller skeletons for: congress, govinfo, usaspending, treasury, votes_house, votes_senate, openstates.
+
+Make USAspending FULLY WORK end-to-end pulling REAL recent awards (no auth required) into a SQLite Phase-0 store. Make Congress.gov recent bill actions work IF env DOCKET_CONGRESS_KEY is set; otherwise log clearly that a free api.data.gov key is needed and skip gracefully.
+
+Implement the normalized schema (bills, actions, awards, events, raw_events) and a change-detection layer that dedupes on (source, externalId, updateDate).
+
+Implement the ranking function referencing ONLY actionDate, dollarAmount, affectedEstimate, actionType (neutrality rule #3). Add a unit test asserting no other field is referenced.
+
+Every stored fact MUST carry a source_url whose host is an allowlisted .gov (see docs/DATA_SOURCES.md).
+
+CLI entrypoint: python -m ingest.run --once. Use a venv + requirements.txt.
+
+Write INGEST_NOTES.md. Definition of done: `python -m ingest.run --once` populates SQLite with REAL USAspending awards; ranking + change-detection unit tests pass.
_ops/wave0-glm-prompt.txt +19 -0
@@ -0,0 +1,19 @@
+You are GLM-5.2, the FRONTEND builder for Docket. Be RAG-first: call homelab_context before reading; read ONLY the named files below; no full-tree reads. Read in this repo: PLAN.md, docs/BRAND.md, docs/NEUTRALITY.md, docs/ARCHITECTURE.md, docs/ORCHESTRATION.md.
+
+WAVE 0 task: scaffold a Next.js (app router) + Tailwind project IN PLACE in this repo and implement the Docket brand system from docs/BRAND.md EXACTLY: CSS custom-property tokens, the Tailwind theme mapped to them, and the fonts Archivo (display) + JetBrains Mono (data/labels) + Fraunces (prose).
+
+Build the static shell of EVERY page on FAKE data:
+- /register (the live Register feed - the signature hero, a real-time stamped ledger of official actions, mono rows, hairline separators, one pulsing brass live-dot)
+- /bill/[id]
+- /spending
+- /states
+- /how-we-pick
+- /who-pays
+
+Design rules (hard): dark-first; brass accent (#E0A53B) RATIONED to one signal per view; custody-stamp [D] mark; NO eagle/flag/dome/scales.
+
+Neutrality gate (enforce in all copy + UI): NO adjectives in copy; vote and party visualizations in MUTED tones (never vivid red vs blue, equal weight); a visible "Source" link on every fake fact; NO comment sections, reactions, or share buttons on bills anywhere.
+
+No real data fetching yet (fake/mock data only). Run npm install; ensure `npm run build` passes and the dev server starts. Write SCAFFOLD_NOTES.md describing what you built and the exact commands to run it.
+
+Definition of done: clean build, every page renders with the Docket brand applied, neutrality gate respected in the mock content.
docs/ORCHESTRATION.md +19 -0
@@ -2,6 +2,25 @@
Overseer method. Opus 4.8 coordinates; GLM-5.2 and Codex do the heavy app code. Pull out all the stops, don't settle.
+## Recursive fan-out (everyone can spawn)
+This is a **tree, not a flat hand-off.** Every node may spawn its own sub-agents, matched to task by model strength - depth is allowed wherever it raises quality or parallelism.
+
+```
+Opus 4.8 (overseer)
+├── GLM-5.2 (frontend lead, CT247) ──► spawns opencode sub-agents (GLM or any opencode-configured model)
+│ ├── component-builder, brand-QA, a11y-pass, perf-pass …
+├── Codex (backend lead, CT241) ──────► spawns its own GPT sub-agents (codex sub-tasks)
+│ ├── per-poller agent (one per source), schema agent, test agent …
+└── Opus ──► spawns Claude sub-agents (Explore/Plan/general-purpose) for review, neutrality-audit, integration
+```
+
+Rules for spawning:
+- **Match the model to the task.** Cheap mechanical work → cheapest capable model; hard reasoning/architecture/neutrality calls → strongest. Don't send a scalpel job to a sledgehammer or vice-versa.
+- A lead that splits its wave into independent sub-tasks SHOULD spawn (e.g. Codex spawns one sub-agent per poller; GLM spawns one per page/component) - parallel + isolated context.
+- Every spawned sub-agent inherits the same carry-on contract below (RAG-first, spec pointers, neutrality gate, DoD).
+- Keep each level's concurrency small (≤3-4) and have the parent review children before merging up. The tree must converge, not sprawl - parents own correctness of their subtree.
+- Depth is a tool, not a goal: spawn when it adds parallelism or specialization, not to add layers.
+
## Division of labor
| Agent | Host / driver | Owns |
|---|---|---|