sdlc-skills
AGENTS.md1 starsChanged 3 months agoMITView on GitHub
sdlc-skills is a library of SDLC skills for coding agents. Invoke writing-skills before authoring or editing a skill. Every skill rests on one idea: a claim leaves the agent through an external gate (an executable check, an accountable decision, or a review), never through confidence. Write instructions, not facts. "Invoke requesting-code-review before any push" gets obeyed; "review and integration are separate gates" gets read past. Put the hard stop, REQUIRED marker, red-flag list, or rationalization table at the step where…
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,774 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 repository49 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
13 rules. About 0 are common, 10 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 6
Every skill rests on one idea: a claim leaves the agent through an external
- Very specific: line 10
Write instructions, not facts.
- Distinctive: line 12
Put the hard stop, REQUIRED marker, red-flag list, or rationalization table at the step where the temptation hits.
- Distinctive: line 23
Search open and closed PRs and issues for the same problem.
- Distinctive: line 34
If any check fails, do not open the PR.
- Very specific: line 44
Every CI check that gates a merge is green.
- Distinctive: line 56
Only a maintainer closes a PR without merging, or an agent a maintainer has authorized to close it.
- Distinctive: line 79
No external references: Do not name other repositories, projects, articles, or authors, or cite issue/PR numbers or tracker links.
- Distinctive: line 95
Run before you commit; CI runs the first on every push and PR:
- Distinctive: line 124
Focus: write what the agent wouldn't know without the skill: project-specific conventions, domain-specific procedures, non-obvious edge …
- Distinctive: line 127
Cutting: ask of each section "would the agent get this wrong without this?" When unsure, keep it and say so in the PR.
- Distinctive: line 130
Discipline content: never reword a red-flag list, rationalization table, or hard stop without saying in the PR why the new wording holds …
- Very specific: line 134
Chain budgets: when a body edit pushes a chain over its budget_words in scripts/sh/data/chains.toml, cut the body first.
≈ “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
AGENTS.md
sdlc-skills is a library of SDLC skills for coding agents. Invoke
writing-skills before authoring or editing a skill.
Every skill rests on one idea: a claim leaves the agent through an external gate (an executable check, an accountable decision, or a review), never through confidence.
Write instructions, not facts. "Invoke requesting-code-review before any
push" gets obeyed; "review and integration are separate gates" gets read past.
Put the hard stop, REQUIRED marker, red-flag list, or rationalization table at
the step where the temptation hits. A handoff is a numbered, emphasized step
naming the skill to invoke, never a closing remark. Emphasis gets an agent to a
gate and never replaces one; keep it out of descriptions.
Before you open a PR
You MUST:
- Fill every section of
.github/PULL_REQUEST_TEMPLATE.mdwith specific, true answers. - Search open and closed PRs and issues for the same problem. If it exists or was rejected, stop and say so to whoever orchestrated the change. If a prior attempt was closed, say what is different.
- Confirm it belongs in core (What belongs here).
- Meet every bullet in Contributing.
- Review the complete diff yourself or with another agent, and report that review in the template's Human review section. Show a human the diff and wait for their approval only when one asked to see it first. Tick the box only once the person named in the table has said they read the diff at the commit it names; an authorization is not a read.
If any check fails, do not open the PR; explain why it would be rejected.
Merging or closing a PR
Anyone, human or agent, may open a PR. Only a maintainer (a person with
write access to this repository) merges one, or an agent a maintainer has
authorized to merge that PR. Orchestrating a change grants no merge right,
and green checks authorize nothing. Even then, merge into dev only when
all of these hold on the PR's current head commit, whoever merges:
- Every CI check that gates a merge is green. A job marked
continue-on-error, such as the reference validator, gates nothing. - Its Human review section reports a review of the complete diff at that commit, naming the commit, or a maintainer approved that commit in a GitHub review. Every finding is fixed or refuted with evidence; one left open needs a maintainer's answer, recorded in the PR.
- Anyone who asked to see the diff before merge has approved it.
A review covers only the commit it names: after a push, review the new diff
and update the section before merging. Merge into main only as
RELEASING.md says.
Only a maintainer closes a PR without merging, or an agent a maintainer has
authorized to close it; its author may also withdraw their own. Say why in
a comment: a closing condition in the template, a duplicate of an open PR,
or the author's or a maintainer's request. These rules grant no skill more
than it states: reviewing-a-pr still never merges or closes.
Local checkpoint commits on a task branch are authorized; using-git-worktrees
owns when to make one.
Authoring rules (non-negotiable)
Files under skills/ and docs/ ship to users.
docs/documents the current contract for users, in plain second person. Maintainer material (design reasons, gates, test notes, adapter internals) goes inCONTRIBUTING.md. Never put run transcripts, failure records, pass-rate anecdotes, superseded behavior, or investigation notes in either.- The Agent Skills standard (agentskills.io) outranks every rule here. A house
rule may be stricter; it may never permit what the standard forbids, forbid
what it requires, or redefine its terms. When editing
docs/reference/agent-skills-conformance.md, keep its matched phrases intact: the gate reads them.
- No external references. Do not name other repositories, projects, articles, or authors, or cite issue/PR numbers or tracker links. State the principle directly; never attribute it. This also applies to commit messages, PR descriptions, and release notes. Disclosing the authoring environment is not attribution.
- Model- and harness-agnostic. Name model tiers (
small | medium | large), never vendor models. Assume no harness's tooling or paths. writing-skillsowns the format. This file does not restate it.- Explain behavior-shaping changes. A change to what a skill makes an agent do names the failure or contract gap it answers.
- A body you touch meets the current
writing-skillsformat in full. Runcheck-skill.sh --stricton each skill you edit:validate-skills.shonly warns on those checks.
Checks
Run before you commit; CI runs the first on every push and PR:
bash scripts/sh/validate-skills.sh
bash skills/common/writing-skills/scripts/check-skill.sh --strict skills/{{phase}}/{{name}}check-skill.sh runs bundled scripts with --help: read CONTRIBUTING.md,
"Conformance checks", before running it on an unfamiliar skill.
Edit skills under skills/, then run
bash scripts/sh/sync-codex-plugin-skills.sh; never edit
plugins/sdlc-skills/skills/ by hand. Edit AGENTS.md, never GEMINI.md or
CLAUDE.md.
Evals
Behavior evals live in
sdlc-skills-evals:
bin/triggering scores whether a description triggers, and bin/behavior
runs a scenario against a live agent CLI and judges what it built. A behavior
claim backed by an eval record (its results/ path and pinned plugin commit)
is evidence; one argued from the skill text is not.
Adding or editing a skill
- New skill: name the failure it answers and say whether it is an observed
session, a contract gap, or an unmeasured candidate. Pick the phase folder
from
docs/reference/skills.md, orcommon/. - Focus: write what the agent wouldn't know without the skill: project-specific conventions, domain-specific procedures, non-obvious edge cases, and the particular tools or APIs to use.
- Cutting: ask of each section "would the agent get this wrong without this?" When unsure, keep it and say so in the PR. Hard stops and destructive-action guards are never cut.
- Discipline content: never reword a red-flag list, rationalization table, or hard stop without saying in the PR why the new wording holds the same line.
- Support files only: for a change under
references/orassets/alone, say the body is unchanged. - Chain budgets: when a body edit pushes a chain over its
budget_wordsinscripts/sh/data/chains.toml, cut the body first. Raise the budget only with a line in the PR naming the words added to the budget and what they buy, so the budget moves by decision, never by habit.
What belongs here
General-purpose SDLC guidance that would help someone on a completely different kind of project. A skill for one domain, tool, team, or workflow belongs in your own library.
Contributing
- Solve a real problem you hit. "My review agent flagged it" or "this could theoretically break" is not a problem statement.
- One change per PR.
- Identify yourself. Say whether a human, an agent, or both orchestrated the change, every model that wrote any of it and the part it wrote, and the harness and its version. Hiding it closes the PR; an empty human-review box does not. Plugins loaded during a run go in the PR template's Environments tested table.
- Target
devfrom a task branch.maintakes release PRs only. - Never bump versions or edit CHANGELOG version headings. See
RELEASING.md. - No third-party dependencies, except to add a harness and the non-blocking reference-validator CI job.
- "No skill is needed here" and an inconclusive result are valid outcomes; a fabricated one closes the PR.
New harness support
A harness must load and activate the skills, not only see the files: it needs
a session-start nudge (on Claude Code, hooks/). See CONTRIBUTING.md,
"Agent adapters". A PR adding a harness MUST add tests/harnesses/{{name}}.sh
for tests/run-plugin-smoke.sh and show a skill activating through that
harness's CLI on a representative opening.
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.

