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

LayerRoleCanonical location
ContractsTyped content schema (scripts, scenes, renders)src/contracts/ (to be extracted)
RuntimeDeterministic media execution coresrc/runtime/ (to be extracted)
Scripts/hooksReproducible deterministic entry pointsscripts/
SkillsHarness-facing content intelligenceskills/
AdaptersMCP and external-system bridgesconnectors/, optional MCP adapter
CLIThin local compatibility shell over the runtimesrc/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.

PhaseBeadOutcome
0content-machine-7tf.1Freeze CLI, classify every surface keep/move/deprecate
1content-machine-7tf.2Extract typed content contracts into their own package
2content-machine-7tf.3Extract deterministic runtime/library core
3content-machine-7tf.4Build deterministic script/hook surfaces
4content-machine-7tf.5Ship first harness skills
5content-machine-7tf.6Decide CLI fate with trial evidence
6content-machine-7tf.7Rewrite product story + docs to harness-first

Run bd list --priority 0 or bd show content-machine-7tf for live state.

Where to look next

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.