tv-build-harness
CLAUDE.md4 starsChanged 4 months agoMIT-0View on GitHub
Use this guide to locate the right file before editing. This repo builds TV apps with a phase-based harness, local skills, and verification checks. This file is for contributors changing the repository. For agents driving tv-build as a CLI tool, read AGENTS.md. For CLI behavior changes, also run the affected command, for example: All three paths delegate phase ordering and retries to packages/harness/src/pipeline-engine.ts. Skill frontmatter must keep this contract: applies_to names phases that may load the skill. Keep skill changes…
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- 10ft-uiSkill
- amazon-devices-vega-app-performanceSkill
- amazon-devices-vega-best-practicesSkill
- amazon-devices-vega-setup-sdkSkill
- android-tv-testingSkill
- changelog-static-siteSkill
- creative-tv-uiSkill
- eas-buildSkill
- expo-tv-configSkill
- firetv-leanbackSkill
- kmp-build-commandsSkill
- kmp-compose-tvSkill
- kmp-data-layerSkill
- kmp-navigationSkill
- kmp-template-anatomySkill
- kmp-themingSkill
- kmp-verify-patternsSkill
- metaSkill
- rn-manifest-wiringSkill
- rn-shared-ui-catalogSkill
- rn-spatial-navigationSkill
- rn-template-anatomySkill
- rn-themingSkill
- vega-sdkSkill
- video-playerSkill
The file
Show its rules and text
We split this CLAUDE.md into the rules it gives an agent
15 rules. About 0 are common, 7 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 3
Use this guide to locate the right file before editing.
- Very specific: line 32
All three paths delegate phase ordering and retries to packages/harness/src/pipeline-engine.ts.
- Very specific: line 66
Add frontmatter with name and applies_to.
- Distinctive: line 67
Write concrete instructions, commands, file paths, and failure modes.
- Very specific: line 69
Update skills/README.md if the inventory is not generated by your task.
- Very specific: line 73
Add the phase spec in packages/harness/src/harness-config.ts.
- Very specific: line 74
Add dependencies or exported phase names in packages/harness/src/types.ts when needed.
- Very specific: line 75
Add prompt loading in packages/harness/src/phase-prompts.ts and prompt text under packages/harness/prompts/ when needed.
- Distinctive: line 76
Add verify checks to the phase spec if the phase has mechanical success criteria.
- Very specific: line 83
Add optional screens.json, design.json, run.json, or harness.config.json only when the example uses them.
- Distinctive: line 85
Document any required API key or local platform prerequisite.
- Distinctive: line 89
Do not add runtime dependencies without documenting why.
- Very specific: line 90
Do not edit packages/verification/src/stats/* or golden specs unless the task explicitly asks.
- Distinctive: line 91
Do not rewrite prompts or skills opportunistically.
- Distinctive: line 92
Keep docs second person, imperative, and concrete.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TV Build Harness
Use this guide to locate the right file before editing. This repo builds TV apps with a phase-based harness, local skills, and verification checks.
This file is for contributors changing the repository. For agents driving tv-build as a CLI tool, read AGENTS.md.
Repo Map
packages/harness/: CLI, orchestrators, phase engine, prompts, local doctor, and run reports.packages/verification/: statistical verification utilities and tests for harness quality.packages/web-ui/: experimental UI package; verify status before relying on it.packages/shared-types/: shared TypeScript types package.skills/: local skill library; each skill lives atskills/<name>/SKILL.md.examples/: runnable input sets such ascooking-shows,fitness-tv, and KMP examples.docs/: current docs plusdocs/archive/for historical planning docs from theIMPROVEMENT_PLAN.mdera.
Golden Commands
cd packages/harness && yarn typecheck && yarn testcd packages/verification && yarn testwhenpackages/verificationchanges.
For CLI behavior changes, also run the affected command, for example:
cd packages/harness && npx tsx src/index.ts --help
Run Modes
run: Anthropic API path backed bypackages/harness/src/orchestrator.ts.claude-run: Claude CLI subprocess path backed bypackages/harness/src/claude-orchestrator.ts.- Strands/provider path: multi-provider path backed by
packages/harness/src/strands-orchestrator.ts.
All three paths delegate phase ordering and retries to packages/harness/src/pipeline-engine.ts.
Where Things Live
| Need | File or directory |
| Add or change a phase | packages/harness/src/harness-config.ts |
| Add a verify check implementation | packages/harness/src/verification.ts |
| Add prompt text for a phase | packages/harness/prompts/ and packages/harness/src/phase-prompts.ts |
| Add or inspect skill loading | packages/harness/src/skill-library.ts |
| Add a skill | skills/<name>/SKILL.md |
| Change CLI commands | packages/harness/src/index.ts |
| Change report output | packages/harness/src/run-report.ts |
| Change phase dependencies/types | packages/harness/src/types.ts |
| Change Vega tooling checks | packages/harness/src/vega-tools.ts |
| Change Android CLI lifecycle behavior | packages/harness/src/platforms/android-tv.ts and packages/harness/src/commands/android.ts |
| Change Android phase knowledge | packages/harness/prompts/android_test_loop.md and skills/android-tv-testing/SKILL.md |
Skill frontmatter must keep this contract:
---
name: skill-name
applies_to: [phase_name]
---applies_to names phases that may load the skill. Keep skill changes additive unless a task explicitly asks for a rewrite.
Recipes
Add A Skill
- Create
skills/<name>/SKILL.md. - Add frontmatter with
nameandapplies_to. - Write concrete instructions, commands, file paths, and failure modes.
- Run
cd packages/harness && yarn test. - Update
skills/README.mdif the inventory is not generated by your task.
Add A Phase
- Add the phase spec in
packages/harness/src/harness-config.ts. - Add dependencies or exported phase names in
packages/harness/src/types.tswhen needed. - Add prompt loading in
packages/harness/src/phase-prompts.tsand prompt text underpackages/harness/prompts/when needed. - Add verify checks to the phase spec if the phase has mechanical success criteria.
- Run
cd packages/harness && yarn typecheck && yarn test.
Add An Example
- Create
examples/<name>/. - Include
content.json,brand.json, andprompt.txt. - Add optional
screens.json,design.json,run.json, orharness.config.jsononly when the example uses them. - Validate config with the harness CLI or run the example with
--generate-onlywhen model access is available. - Document any required API key or local platform prerequisite.
Editing Rules
- Do not add runtime dependencies without documenting why.
- Do not edit
packages/verification/src/stats/*or golden specs unless the task explicitly asks. - Do not rewrite prompts or skills opportunistically; they are load-bearing.
- Keep docs second person, imperative, and concrete.
- To add a verify check to the branding phase, edit
packages/harness/src/harness-config.ts.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

