agentleFS
DnsQueenDnsQueen/orcinus-skills/skills/build/SKILL.md

build

Skill1 starsChanged 6 days agoMITView on GitHub

Build one slice at a time, test first, with the four checks and independent verification before commit. Use when a scaffolded project exists and a slice from the calibrated brief is next. Only invoke via the orcinus router.

156 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use backprop, finances and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JuliusBrusseeSkill

    backprop

    Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch recurrence, append to §B. This is the one non-obvious thing SDD does that plan-then-execute doesn't. Triggers on test failure, bug report, post-mortem, or explicit user ask.

    Also in 4 projects that use this

  • GerardoRdz96Skill

    finances

    Use when Gera talks about his money — logging an expense ("I spent X on Y"), checking where he stands this pay-period, closing a period, planning debt payoff, onboarding his financial picture, or asking for budgeting/finance opinions. Servy's financial brain. Triggers — "I spent", "log this expense", "where am I this period", "close the period", "how's my budget", "debt plan", "should I pay off", "finances onboard", "/finances".

    Also in 3 projects that use this

  • cpiprintSkill

    favicon

    Generate favicons from a source image

    Also in 3 projects that use this

  • madeehahassanSkill

    Go-Live

    Pre-launch checklist. Use before making any app public, sharing a link externally, or announcing a product launch. Adapts to Claude Code, claude.ai, and Cowork.

    Also in 3 projects that use this

  • JuliusBrusseeSkill

    deepen

    Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec touches, researches a deeper design, and proposes refactors that shrink interfaces and hide decisions — behavior held constant, tests green before and after. Proposes §I/§V/§T edits, never silent rewrites. Triggers when the user says "deepen this", "improve the design", "this module feels shallow", "pull complexity down", "use spare budget on the codebase", or invokes /ck:deepen. Leans on the codebase-design skill's deep-module vocabulary when present.

    Also in 3 projects that use this

  • synaptiaiSkill

    gate

    Create a BDSK review_gate artifact. Defines a checkpoint that controls whether generated output may proceed toward acceptance. Use when defining quality, security, or scope gates for execution plans.

    Also in 5 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. 0 are common, 13 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 143 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Test first. Red before green, always.

    line 15
  2. Distinctive:

    Test at seams. A seam is the public boundary where behaviour is observed, not internals.

    line 16
  3. Distinctive:

    No tautological tests. Expected values come from an independent source — a known literal, a worked example, the spec — never recomputed the …

    line 17
  4. Distinctive:

    No hard-coding for tests. The solution must work for all valid inputs, not just the test cases.

    line 18
  5. Distinctive:

    No test weakening. Never delete, weaken, or skip a test to make the suite pass.

    line 19
  6. Distinctive:

    No scope creep. Touch only the files the slice needs.

    line 20
  7. Distinctive:

    No one-shot implementation.

    line 21
  8. Distinctive:

    Write one test at the seam, with expected values as literals from the spec.

    line 31
  9. Distinctive:

    Run, in order, and record the real output and exit code for each:

    line 39
  10. Distinctive:

    All four must pass. If any fails, fix only the cause and re-run all four from the top.

    line 46
  11. Distinctive:

    Run orcinus-verify. It reads the code and the evidence, not your summary.

    line 56
  12. Distinctive:

    Do not guess. Use the diagnosing-bugs loop: first build a tight feedback loop that reproduces the failure (a failing test or a minimal …

    line 64
  13. Distinctive:

    Not a plan for the whole project.

    line 68

“Common” is measured: kept by at least 6 in 10 of the 143 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

BUILD — one slice at a time, test first

Build the next slice from the calibrated brief. One behaviour, one test, one minimal implementation, one commit. Do not build the whole project in one step. Do not claim done until orcinus-verify passes.

Rules

  • One slice at a time. A slice is one behaviour with acceptance criteria from the brief.
  • Test first. Red before green, always.
  • Test at seams. A seam is the public boundary where behaviour is observed, not internals.
  • No tautological tests. Expected values come from an independent source — a known literal, a worked example, the spec — never recomputed the way the code does it.
  • No hard-coding for tests. The solution must work for all valid inputs, not just the test cases.
  • No test weakening. Never delete, weaken, or skip a test to make the suite pass.
  • No scope creep. Touch only the files the slice needs.
  • No one-shot implementation. If you are about to write the whole feature at once, stop and cut a smaller slice.

Steps, in order

1. Pick one slice

Read the calibrated brief. Pick the smallest next slice with acceptance criteria. Write down the seam you will test at, in one line, and confirm it with the user before writing any test. No test at an unconfirmed seam. If there are no acceptance criteria, stop and ask for them.

2. Red: write one failing test

Write one test at the seam, with expected values as literals from the spec. Run it. Watch it fail. Record the failure. If it passes before any code exists, the test is wrong — fix the test, not the code.

3. Green: implement the minimum

Write the smallest code that makes the test pass. No speculative features, no extra files, no "for later" code. The smallest complete change — the ponytail rule, applied from build's own loop (ponytail itself is external-optional, not in this repo; see the router's rules.md). If the code needs a design decision the brief does not answer, ask the user instead of guessing.

4. Run the four checks

Run, in order, and record the real output and exit code for each:

  1. build
  2. lint
  3. typecheck (if the project has one — the ORCINUS scaffold always sets one up, so a missing typecheck in a scaffolded project is a finding)
  4. test (full suite, not only the new test)

All four must pass. If any fails, fix only the cause and re-run all four from the top. After 3 failed loops, stop and hand back to the user.

5. Check the tests themselves (mutation)

After the slice passes its tests, check the tests themselves with mutation-testing before calling it done. Run it on the slice's changed files (or the whole suite for a small project). If a mutant survives, the test suite has a gap — strengthen the test (never weaken it) and re-run. A slice is not done while its tests can be fooled.

Mutation tooling ships only for JavaScript/TypeScript (mutation-testing, Stryker) and Python (mutation-testing-python, mutmut). For any other language, the slice is INCOMPLETE with a recorded reason — name the language, state that no mutation tool is bundled for it, and record what was checked instead (for example, the new tests were each shown to fail when their assertion is inverted, or when the code they cover is reverted). Do not claim the tests are strong when no mutation run proved it. If the project is small or the slice is trivial, run mutation on the changed files only (Lite mode) instead of the whole suite — Stryker is slow, and a full run on every slice is not the point.

6. Verify independently

Run orcinus-verify. It reads the code and the evidence, not your summary. If it says FAIL, fix the finding and re-verify from step 4. Do not commit while verification is failing.

7. Commit one slice

One commit per slice, with a clear message naming the behaviour. Then record progress: what is done, what is next, what is blocked. End the session in a clean state.

If you get stuck

Do not guess. Use the diagnosing-bugs loop: first build a tight feedback loop that reproduces the failure (a failing test or a minimal command), and only then form a hypothesis. No hypothesis before the loop.

What build is not

Not a plan for the whole project. Not a place to add features the brief did not ask for. Not a shortcut around the four checks or verification.

Sources

Method, in our own words, inspired by: tdd (mattpocock/skills, MIT, external-optional — not in this repo; build's own test-first loop is the fallback, see the router's rules.md) for the red-green loop, seams, and anti-patterns; ponytail (external-optional, not in this repo — the "smallest complete change" rule is applied from build's own loop) for the smallest complete change; planning-and-task-breakdown (addyosmani/agent-skills, MIT) for cutting slices; clean-code (wondelai/skills, MIT) for readable code. No text was copied from those projects.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.