Borrowing it
Nothing to install: this file belongs to nicolasmelo1/software-factory. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/nicolasmelo1/software-factory/main/AGENTS.mdgit clone --depth 1 https://github.com/nicolasmelo1/software-factoryWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/nicolasmelo1/software-factory/agents-md)<a href="https://agentmods.dev/instructions/nicolasmelo1/software-factory/agents-md"><img src="https://agentmods.dev/badge/instructions/nicolasmelo1/software-factory/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/nicolasmelo1/software-factory/agents-md"><img src="https://agentmods.dev/badge/instructions/nicolasmelo1/software-factory/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.02050 | $0.02050 |
| Opus 5.5 | $0.00820 | $0.00820 |
| Sonnet 5.5 | $0.00410 | $0.00410 |
| Haiku 4.5 | $0.00205 | $0.00205 |
Grade A, and why
software-factory AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent instructions
This repository is a software factory harness. It holds itself to the method it ships.
Before changing anything
- Read
docs/method.md. The layering is not arbitrary and the ordering (L1/L4/L5 first, L0 after the third occurrence of a pattern) is the load-bearing advice. - Run
sf verifybeforesf check. A check that no longer fires makes every green run meaningless, and it is the cheaper failure to find.
Hard rules
- A rule needs
whyandfix. The catalog refuses to load without them, andL4.EVERY_RULE_HAS_A_WHYfails when enforcement and prose come apart. A new rule means a new section indocs/rules.mdin the same commit. - A rule needs a mutation fixture, in every language it claims. Add it to
src/fixtures.rsin the same change, thensf fixtures.L5.EVERY_CHECK_HAS_A_MUTATION_TESTfails without one, andsf verifyfails both if the fixture does not trip the rule and if it trips it in only some of the languages the rule declares a query for. - A rule must be pointed at something, or switched off in writing.
L5.NO_INERT_RULEfails an enabled lock with no scope, a hazard rule with no tools, a structural rule with no query for any language this repository declares, or an instance whosewhennames a dependency version the manifest no longer declares. Disabled with a reason indocs/rules.mdis honest; enabled and inert is a rule lying about its own coverage. - Prose may only name commands this
sfaccepts.L4.RULE_PROSE_NAMES_A_REAL_COMMANDreads everysf ...a rule's statement, why or fix quotes and compares it with the clap definition insrc/main.rs, so a fix written against a subcommand that does not exist yet fails the check. Ship the command in the same change, or name the one that exists. A unit test does the same sweep over the whole shipped catalog, including the rules this repository has switched off. - Never widen a rule to make a finding disappear. If a rule is wrong, argue it in the prose and change it deliberately. Silently loosening a glob is indistinguishable from a fix at the diff level, which is exactly the failure mode this repository exists to catch.
- Never hand-edit a digest or a lock. Run
sf lockorsf seal <gate>. That now includes.software-factory/catalog.lock.json, which records the reach of every enabled rule so thatL2.CATALOG_ONLY_TIGHTENScan tell an upgrade that strengthened a rule from one that weakened it. Re-locking to clear that finding without reading it is the move the rule exists to make expensive. - Never weaken the policy to go green.
L2.FACTORY_CONFIG_IS_LOCKEDwill notice the edit andL2.POLICY_ONLY_TIGHTENSwill notice its direction. If a rule genuinely needs loosening, that is a pull request about the rule, with the reasoning in the body — not a line inside a change about something else. - Order of operations after touching the guardrail:
sf fixtures,sf docs,sf ratchet, thensf locklast. The lock covers the ratchet, so locking before re-seeding leaves the build red. - Rule ids are a public contract. Every repository that adopted this tool pinned them. Renaming one is a breaking change.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago Changed · +1 lines · +17 tokens per session fdd7ccec3124
- 2mo ago First seen · 147 lines · 2,033 tokens per session scan A 718fcbccf8b2
software-factory AGENTS.md is an instructions file published in the GitHub repository nicolasmelo1/software-factory (33 stars, last pushed 2d ago), licensed MIT. It adds 2,050 tokens to every session, about $0.0082 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
software-factory AGENTS.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| software-factory AGENTS.mdnicolasmelo1/software-factory | Instructions file | 33 | 2d ago | MIT | A | 2,050 | Codex, OpenCode |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |