Direction
May 2, 2026 · View on GitHub
Status: Active (adopted 2026-04-21)
Source: docs/research/external/imports-20260421/CONTENT_MACHINE_FINDINGS_AND_PLAN_2026-04-12.md
Tracking: Beads epic content-machine-7tf (P0)
One-paragraph north star
Content Machine stops trying to be a monolithic "AI content agent" and becomes a harness-first content runtime and protocol. The durable value is not repo-owned orchestration; it is typed content contracts, deterministic media execution, evaluation and validation, reverse engineering of winning content, and reusable content playbooks that coding harnesses (Claude Code, Codex, OpenCode, and friends) load as skills. The CLI is demoted to a thin local compatibility shell. MCP is optional adapter infrastructure, not the center.
Product boundaries we are moving toward
| Layer | Role | Canonical location |
|---|---|---|
| Contracts | Typed content schema (scripts, scenes, renders) | src/contracts/ (to be extracted) |
| Runtime | Deterministic media execution core | src/runtime/ (to be extracted) |
| Scripts/hooks | Reproducible deterministic entry points | scripts/ |
| Skills | Harness-facing content intelligence | skills/ |
| Adapters | MCP and external-system bridges | connectors/, optional MCP adapter |
| CLI | Thin local compatibility shell over the runtime | src/cli/ |
See docs/direction/01-boundaries.md
for the full breakdown, including what stays in each layer and what
moves out.
Phase plan
Sequential. Each phase is a P0 bead and unblocks the next.
| Phase | Bead | Outcome |
|---|---|---|
| 0 | content-machine-7tf.1 | Freeze CLI, classify every surface keep/move/deprecate |
| 1 | content-machine-7tf.2 | Extract typed content contracts into their own package |
| 2 | content-machine-7tf.3 | Extract deterministic runtime/library core |
| 3 | content-machine-7tf.4 | Build deterministic script/hook surfaces |
| 4 | content-machine-7tf.5 | Ship first harness skills |
| 5 | content-machine-7tf.6 | Decide CLI fate with trial evidence |
| 6 | content-machine-7tf.7 | Rewrite product story + docs to harness-first |
Run bd list --priority 0 or bd show content-machine-7tf for live state.
Where to look next
- Full findings and plan:
docs/research/external/imports-20260421/CONTENT_MACHINE_FINDINGS_AND_PLAN_2026-04-12.md - Imported research bundle:
docs/research/external/imports-20260421/README.md - Direction folder:
docs/direction/ - Existing architecture docs:
docs/dev/architecture/ - Phase 0 synthesis (authoritative consolidation):
docs/direction/03-reorg-synthesis.md - Per-file classification (keep/move/archive/delete):
docs/direction/classification-20260422.md - TypeScript kernel cut line (what survives vs archives):
docs/direction/06-typescript-kernel-cut-line.md - Live skill catalogue:
skills/README.md - Historical skill planning snapshot:
docs/direction/04-skill-catalog.md - Flow catalogue (10 prompt-language flows):
docs/direction/05-flow-catalog.md - Archive policy and landing zone:
archive/README.md - Current short-form roadmap:
docs/direction/07-short-form-roadmap-20260424.md
Working agreement: no literal flow DSL in prose docs
Prose documentation that describes flows should use indented plain text or retype gate keywords (e.g. gate list: instead of the literal DSL word) to avoid triggering the prompt-language meta-prompt hook during authoring sessions. Executable .flow files under flows/ are unaffected.