agent-ready-repo / tools
AGENTS.md27 starsChanged yesterdayApache-2.0View on GitHub
Applies to tools/. Inherits the root AGENTS.md. Scope-specific deltas only. - New additions to tools/ must be pure-stdlib Python .py files. Existing .sh files stay; this rule applies forward. - Path triggers in .github/workflows/docs.yml must invoke matching scripts as python3 <script>. - The repo-only hook implementation and wiring guide is tools/hooks/README.md. Keep this pointer out of shipped pack content because adopters do not receive the maintainer guide. - A hyphenated tools/test-lint-*.py is a standalone entry point. A directory sweep collects…
Files
Tools instructions
Applies to tools/. Inherits the root AGENTS.md. Scope-specific deltas only.
- New additions to
tools/must be pure-stdlib Python.pyfiles. Existing.shfiles stay; this rule applies forward. - Path triggers in
.github/workflows/docs.ymlmust invoke matching scripts aspython3 <script>. - The repo-only hook implementation and wiring guide is
tools/hooks/README.md. Keep this pointer out of shipped pack content because adopters do not receive the maintainer guide. - A hyphenated
tools/test-lint-*.pyis a standalone entry point. A directory sweep collects none of them: the defaultpython_filesglob istest_*.py, the hyphen fails it, andpyproject.tomlsets no override — so a gate list assembled frompytest tools/omits them in silence. Naming one explicitly does collect whatevertest_*functions it defines, so the two routes disagree; do not read a green sweep as covering them. Some of these files also define notest_*function at all and collect zero nodes either way (tools/test-lint-ci-parity.pyruns its 143 cases frommain()). Run them directly after changing what they govern. Underscoredtools/test_*.pyfiles are ordinary pytest suites. - A new single-rule lint belongs on the shared drivers, not in a fresh copy of
the plumbing:
tools/lint_harness.pyowns the file walk, the report and the exit status, andtools/selftest_harness.pyowns the self-test loader and case runners. Each rule keeps its own predicate, messages and rationale. tools/lint-catalogue-curation-guard.pyfails closed when git or its diff base is unavailable, so verify it with--base origin/mainafter fetching.--local-skip-path-gateskips only the path gate for a local checkout that lacks the base; CI must never pass it. It protectspackages/agentbundle/andpacks/credential-brokers/: a commit touching either needs anEngine-Change-RFC:trailer, conventionallyn/a — <justification>when no RFC governs the change.tools/lint-ci-parity.pyholds two rosters, one per direction, and the step roster carries two axes. Editing any of these surfaces obliges its entry:- Adding a step to
.github/workflows/build-check.ymlrequires aSTEP_DISPOSITIONentry naming either the make target that covers it locally or why none can. - Declaring that step's phase and dependencies requires the same
STEP_DISPOSITIONentry to name eitherPROVISIONING(id=...)orCHECK(needs=(...), evidence=...)on its phase-and-dependency axis. - Adding or moving a line in the Makefile's
run-test-suitedefine requires aSUITE_DISPOSITIONentry per target on that line, naming the pull-request check that gates the suite (PR_GATED), the condition under which one does (PR_GATED_IF), or why none does (NO_PR_GATE). Spell a path in the workflow exactly as the define spells it: both directions compare written paths, so a parent directory matches neither and reports a real gate as absent. Neither roster's reasons are machine-checked for truth, only for presence — that is a human-review control, and the module docstring says so.
- Adding a step to
In this repository75 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- docs-site/AGENTS.mdAGENTS.md
- guides/AGENTS.mdAGENTS.md
- packages/AGENTS.mdAGENTS.md
- packs/AGENTS.mdAGENTS.md
- profiles/AGENTS.mdAGENTS.md
- tests/AGENTS.mdAGENTS.md
- web/AGENTS.mdAGENTS.md
- docs/CLAUDE.mdCLAUDE.md
- guides/CLAUDE.mdCLAUDE.md
- packages/CLAUDE.mdCLAUDE.md
- packs/CLAUDE.mdCLAUDE.md
- profiles/CLAUDE.mdCLAUDE.md
- tests/CLAUDE.mdCLAUDE.md
- tools/CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- adapt-to-projectSkill
- assimilate-primitiveSkill
- assimilate-repoSkill
- author-briefSkill
- author-delivery-briefSkill
- author-product-docsSkill
- bug-fixSkill
- close-workSkill
- compile-okfSkill
- contract-acquisitionSkill
- explain-diffSkill
- init-projectSkill
- intake-intentSkill
- navigate-decisionsSkill
- navigate-intentsSkill
- new-adrSkill
- new-rfcSkill
- new-specSkill
- operational-safetySkill
- project-knowledgeSkill
- propose-catalogue-packSkill
- receive-briefSkill
- repository-explorationSkill
- repository-groundingSkill
- security-checklists-referenceSkill
- security-checklistsSkill
- work-intakeSkill
- work-loopSkill
- workspace-statusSkill
- adapt-to-projectSkill
- assimilate-primitiveSkill
- assimilate-repoSkill
- author-briefSkill
- author-delivery-briefSkill
- author-product-docsSkill
- bug-fixSkill
- close-workSkill
- compile-okfSkill
- contract-acquisitionSkill
- explain-diffSkill
- init-projectSkill
- intake-intentSkill
- navigate-decisionsSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

