rumo-test
Skill7 starsChanged 14 days agoMITView on GitHub
Use when planning, writing, or assessing tests for a behavior change, including whether existing tests are enough, which evidence layers (unit, integration, browser, artifact, deployment, field) to use, and test-driven development. Do not use to find the root cause of an existing defect (use rumo-debug) or to check an already finished diff before handoff (use rumo-verify).
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 10 are distinctive, and 0 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.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Write each claim as an observable outcome under a condition.
- Distinctive: line 24
Keep source, built artifact, deployment, and field claims separate.
- Distinctive: line 29
Write a focused test for one behavior and watch it fail because the behavior is missing, not because of an import or setup error.
- Distinctive: line 30
If the test passes immediately, prove it can catch the problem: break the implementation temporarily in a restorable way, see the test …
- Distinctive: line 31
Write the smallest implementation that turns it green, then run the surrounding suite.
- Distinctive: line 33
Never edit the implementation and its assertion together to manufacture a pass.
- Distinctive: line 43
Use deterministic clocks, barriers, or recorded inputs instead of sleeps and live external services.
- Distinctive: line 44
Keep skips explicit and narrow.
- Distinctive: line 46
Keep secrets and unrestricted customer data out of fixtures, snapshots, and logs.
- Distinctive: line 47
Do not mock the unit under test, weaken a meaningful assertion, or lower a threshold to get green.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill 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
Rumo Test
Tests are evidence for claims. A large suite, a coverage number, an HTTP 200, or a screenshot proves nothing about behavior it never exercised.
Modes
| Mode | Use when |
| Evidence plan (default) | Deciding what to test, or whether existing tests are enough; works without writing code |
| Test-first | Implementing a behavior change or bug fix |
The risk gate for money, authentication, data, interfaces, and other high-risk changes, with its spec-and-evidence flow, lives in rumo-coding-guidelines.
Evidence Plan
- Write each claim as an observable outcome under a condition. Reject "works correctly".
- Name the production entry point, the source of truth, external dependencies, and supported platforms involved.
- Pick the lowest layer that can falsify each claim, then add layers only for behavior that assembly or environment introduces. Read references/evidence-layers.md when choosing layers or listing risks.
- Keep source, built artifact, deployment, and field claims separate; each needs its own evidence.
- For every planned check, name the claim and risk it covers. Drop a check only when another one exercises the same mechanism at least as strongly.
Test-First
- Write a focused test for one behavior and watch it fail because the behavior is missing, not because of an import or setup error. A bug fix starts with a test that reproduces the bug.
- If the test passes immediately, prove it can catch the problem: break the implementation temporarily in a restorable way, see the test fail, restore.
- Write the smallest implementation that turns it green, then run the surrounding suite.
- Refactor only while green, without touching behavioral assertions. An assertion change that alters accepted behavior goes back to step 1.
- Never edit the implementation and its assertion together to manufacture a pass.
Example, for a bug where an order placed just before local midnight lands in the next day's sales report:
- Strong:
daily_report_keeps_order_placed_at_2359_localstores an order through the real service at 23:59 in the shop's time zone, then asserts it appears in that day's report and not in the next. It failed before the fix, which grouped orders by UTC date. - Weak: a test that mocks
to_local_dateand asserts it was called. It passed before the fix, so it proves nothing about the bug.
Rules For Every Mode
- Exercise the same parser, route, serializer, migration, or launcher that production uses when the claim depends on it.
- Use deterministic clocks, barriers, or recorded inputs instead of sleeps and live external services.
- Keep skips explicit and narrow. A test that skips itself in a missing environment is not evidence that the environment passed.
- Confirm that negative tests fail at the intended rejection, not earlier for an unrelated reason.
- Keep secrets and unrestricted customer data out of fixtures, snapshots, and logs.
- Do not mock the unit under test, weaken a meaningful assertion, or lower a threshold to get green.
Report
For each claim: the layer, the exact command or scenario, the result, and what it does not prove. Distinguish tests written from tests run, local from CI, fake from real integration, artifact inspection from deployment, and deployment from field acceptance.
Shortcuts And Rebuttals
| Tempting shortcut | Why it fails |
| "Coverage is 90%, so it's tested." | Coverage shows lines ran, not that anything was asserted. |
| "The test passed first time, good." | A test that never failed may not test anything; prove it can fail. |
| "CI will run everything anyway." | A focused test catches the regression now and names the claim. |
| "The mock returns the right thing." | Then the mock is tested, not the integration. |
| "It's skipped on this machine, so it's fine." | A skip is missing evidence; report it. |
In this repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- rumo-agent-collaborationSkill
- rumo-clarifySkill
- rumo-coding-guidelinesSkill
- rumo-database-change-safetySkill
- rumo-debugSkill
- rumo-explainSkill
- rumo-filesystem-safetySkill
- rumo-frontendSkill
- rumo-git-commitSkill
- rumo-handoffSkill
- rumo-interfaceSkill
- rumo-lifecycle-safetySkill
- rumo-planSkill
- rumo-project-profileSkill
- rumo-proseSkill
- rumo-reflectSkill
- rumo-remote-opsSkill
- rumo-reviewSkill
- rumo-setupSkill
- rumo-verifySkill
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.

