joycraft
AGENTS.md15 starsChanged 51 days agoMITView on GitHub
What: The joycraft npm package. Its CLI installs and updates Joycraft, a skill bundle and small runtime for agent-led software work, in any project, for Claude Code, Codex, Pi, Oh My Pi, GitHub Copilot CLI and OpenCode. The skills and runtime it ships are vendored into payload/ from joycraft-prototype. Main merges automatically release to npm after required packaged checks. Do not introduce a second release PR, manual promotion approval, or new credential gate without Max’s explicit approval. See docs/guides/releasing.md. This…
- Installs packages
- Commits and pushes
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,700 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository70 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- joycraft-add-contextSkill
- joycraft-add-factSkill
- joycraft-bugfixSkill
- joycraft-collaborative-setupSkill
- joycraft-decideSkill
- joycraft-decomposeSkill
- joycraft-designSkill
- joycraft-gather-contextSkill
- joycraft-hardenSkill
- joycraft-implement-featureSkill
- joycraft-implement-level5Skill
- joycraft-implementSkill
- joycraft-interviewSkill
- joycraft-lockdownSkill
- joycraft-new-featureSkill
- joycraft-optimizeSkill
- joycraft-researchSkill
- joycraft-session-endSkill
- joycraft-setupSkill
- joycraft-spec-doneSkill
- joycraft-tuneSkill
- joycraft-verifySkill
- release-docs-syncSkill
- joycraft-add-contextSkill
- joycraft-add-factSkill
- joycraft-bugfixSkill
- joycraft-collaborative-setupSkill
- joycraft-decideSkill
- joycraft-decomposeSkill
- joycraft-designSkill
- joycraft-gather-contextSkill
- joycraft-hardenSkill
- joycraft-implement-featureSkill
- joycraft-implement-level5Skill
- joycraft-implementSkill
- joycraft-interviewSkill
- joycraft-lockdownSkill
- joycraft-new-featureSkill
- joycraft-optimizeSkill
- joycraft-researchSkill
- joycraft-session-endSkill
- joycraft-setupSkill
- joycraft-spec-doneSkill
- joycraft-tuneSkill
- joycraft-verifySkill
- release-docs-syncSkill
- joycraft-add-contextSkill
- joycraft-add-factSkill
- joycraft-bugfixSkill
- joycraft-collaborative-setupSkill
- joycraft-decideSkill
- joycraft-decomposeSkill
- joycraft-designSkill
- joycraft-gather-contextSkill
- joycraft-hardenSkill
- joycraft-implement-featureSkill
- joycraft-implement-level5Skill
- joycraft-implementSkill
- joycraft-interviewSkill
- The first 60 shown.
The file
We split this AGENTS.md into the rules it gives an agent
7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 10
Run pnpm test && pnpm typecheck before committing (pnpm test already runs once and exits — --run is not a valid pnpm flag here and fails)
- Very specific: line 11
Run pnpm sync-skills after editing anything under src/skills/ or src/local-skills/, and commit the regenerated + installed copies in the …
- Very specific: line 14
Test against multiple stack types (Node.js, Python, Rust, Go at minimum)
- Very specific: line 17
Run /release-docs-sync before gh pr create — a PR that touches src/, templates/, or scripts/ must change CHANGELOG.md or carry a Docs: none …
- Distinctive: line 18
Use descriptive branch names: feature/spec-name
- Distinctive: line 32
Add runtime dependencies that aren't strictly necessary
- Distinctive: line 76
Keep this file lean: link out, don't inline.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.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
Joycraft
What: The joycraft npm package. Its CLI installs and updates Joycraft, a skill bundle and small runtime for agent-led software work, in any project, for Claude Code, Codex, Pi, Oh My Pi, GitHub Copilot CLI and OpenCode. The skills and runtime it ships are vendored into payload/ from joycraft-prototype.
Behavioral Boundaries
ALWAYS
- Run
pnpm test && pnpm typecheckbefore committing (pnpm testalready runs once and exits —--runis not a valid pnpm flag here and fails) - Run
pnpm sync-skillsafter editing anything undersrc/skills/orsrc/local-skills/, and commit the regenerated + installed copies in the same commit — the installed trees are.claude/skills,.agents/skills,.pi/skills,.github/skills, and.omp/skills, and a stale one is what shipped twelve wrong copilot skills in 0.7.3 - Commit style:
verb: concise message - Reference atomic specs when implementing features — each spec is in
docs/features/<slug>/specs/ - Test against multiple stack types (Node.js, Python, Rust, Go at minimum)
- Push to feature branches after each commit
- Open a PR when all specs in a feature are complete
- Run
/release-docs-syncbeforegh pr create— a PR that touchessrc/,templates/, orscripts/must change CHANGELOG.md or carry aDocs: none — <reason>line in its body; a PreToolUse hook and the Docs Sync CI check both runscripts/check-docs-sync.mjsand block otherwise - Use descriptive branch names: feature/spec-name
- Show Max every document to read, review or answer (brief, plan, spec set, review, questions) as a rendered page, never only as Markdown in chat: the decision artifact (
node payload/.joycraft/runtime/artifacts/cli.mjs serve --brief <brief.md> --view <artifact.json>) for a brief or questions, an HTML artifact for anything else. Open it for Max.
ASK FIRST
- Adding dependencies — this is a CLI tool, keep it minimal
- Changing template content outside an approved spec — templates are the core product; a spec that names the change is the approval
- Changing skill content outside an approved spec — skills are the user-facing interface; a spec that names the change is the approval
- Modifying the CLAUDE.md merge/improve logic — this touches user files
- Publishing to npm
- Merging PRs to main/master
- Any destructive git operation (force-push, reset --hard, branch deletion)
NEVER
- Overwrite user files without explicit confirmation or
--forceflag. One approved exception: an explicitupdatereplaces an edited Joycraft-owned file (skill, template, hook, script) after saving the edited copy underdocs/.joycraft/local/replaced/; user-owned files (CLAUDE.md,AGENTS.md, settings,deny-patterns.txt) are never replaced this way - Add runtime dependencies that aren't strictly necessary
- Reference absolute paths — all templates and skills must use project-relative paths
- Include methodology research, project assessments, or personal notes in the tool
- Push directly to main/master (always use feature branches + PR)
<!-- origin: source AGENTS.md 2026-07-21, probation: claude-fable-5-1 --> - Amend commits that have been pushed to remote
- Access, read, or reference the scenarios repo (
joycraft-scenarios) - Mention scenario test names or contents
- Modify the scenarios dispatch workflow to leak test information
Release behavior
Main merges automatically release to npm after required packaged checks. Do not
introduce a second release PR, manual promotion approval, or new credential gate
without Max’s explicit approval. See docs/guides/releasing.md.
External Validation
This project uses holdout scenario tests in a separate private repo (joycraft-scenarios).
The scenarios repo is deliberately invisible to the coding agent. This is the holdout guarantee — like a validation set in machine learning. Do not attempt to circumvent this boundary.
Commands
From package.json scripts; all four ran green on 2026-11-02.
pnpm install && pnpm build && pnpm typecheck && pnpm test
pnpm build && node dist/cli.js init /tmp/test-project --yes # try the CLI as npx wouldExecution Profile
<!-- joycraft:execution-profile -->- claude: Swarms: decompose yes · implement yes · model opus 5.5 · effort high
- codex: Swarms: decompose yes · implement yes · model 5.6 terra · effort medium
- pi: Swarms: decompose yes · implement yes · model kimi-k3 · effort max
<!-- /joycraft:execution-profile -->Context Map
Keep this file lean: link out, don't inline. Read a document when its row applies.
| Document | Read it when… |
payload/.joycraft/references/artifacts.md | Showing Max a brief, plan, review or questions — render the decision artifact |
docs/context/architecture.md | Finding where code lives, the 1.x install flow, the legacy 0.7 updater, or the folder layout |
docs/context/decision-log.md | Making or revisiting a product or release decision — check why it was decided first |
docs/context/shipped.md | Checking what shipped in which release or PR |
docs/context/production-map.md | Touching npm publishing, CI release workflows or anything users install |
docs/context/institutional-knowledge.md | Looking for an unwritten convention or constraint |
docs/context/dangerous-assumptions.md | Something the agent believes about this repo turned out false — check and add |
docs/context/anchors.md | Scoring how sure you are of a claim in a brief, spec or review |
docs/templates/reference/model-profile-claude-fable-5-1.md | Working with Claude Fable 5.1 — finishing whole tasks, scope, progress updates, prose |
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.

