rumo-coding-guidelines
Skill7 starsChanged 14 days agoMITView on GitHub
Use when writing, fixing, or refactoring code in a software repository, as the baseline discipline alongside more specific skills. Ground every edit in the real code path, do only the requested work and what it necessarily implies, avoid speculative abstraction and drive-by edits, apply the risk gate to changes touching money, auth, data, interfaces, or other high-risk areas, and close with verification. Do not use alone for review-only, diagnosis-only, or question-answering requests.
We split this skill into the rules it gives an agent
19 rules. About 0 are common, 16 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
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 8
Every change should trace back to the request, the code path it touches, and evidence that it works.
- Distinctive: line 10
When the user wants these rules active even when this skill is not loaded, offer the always-on block in references/agents-snippet.md.
- Distinctive: line 14
Read the repository's agent instructions (AGENTS.md, CLAUDE.md, nearby guidance) and follow them over these defaults.
- Distinctive: line 16
Check the dependencies, types, and documentation already in the project before writing replacement code or adding a package.
- Very specific: line 17
When the request has several reasonable readings, state the trade-off.
- Distinctive: line 18
When several repositories are involved, keep track of which ones were read, changed, and verified.
- Distinctive: line 32
Before adding anything the user did not name, answer three questions:
- Distinctive: line 43
Do not add generic abstractions, plugin points, configuration switches, or fallback frameworks for a single use.
- Distinctive: line 44
Do not reformat, rename, reorder, or refactor neighboring code.
- Distinctive: line 45
Remove only the dead code this change created.
- Distinctive: line 46
Do not keep obsolete paths alive with shims, dual writes, flags, or deprecation periods unless the current contract requires them.
- Very specific: line 47
Do not accept a stopgap whose stated purpose is to be replaced later.
- Distinctive: line 48
Keep internal risk notes out of deliverables.
- Distinctive: line 54
Treat review, explanation, and monitoring requests as read-only until the user asks for a change.
- Very specific: line 88
Prefer focused tests, builds, linters, script self-tests, git diff --check, or a real request or page check.
- Distinctive: line 89
When a check fails, report the command, the reason, and the remaining risk.
- Distinctive: line 94
Every changed file and hunk belongs to this task.
- Distinctive: line 95
No unrequested abstraction, option, or capability slipped in.
- Distinctive: line 97
When handing back changed work, the final message separates what changed, what was verified, and what remains unverified or blocked.
≈ “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 Coding Guidelines
Every change should trace back to the request, the code path it touches, and evidence that it works.
When the user wants these rules active even when this skill is not loaded, offer the always-on block in references/agents-snippet.md. Only after the user agrees, add it to their AGENTS.md or CLAUDE.md with scripts/baseline_block.py --target <file> --install, which changes nothing outside its markers.
Before Editing
- Read the repository's agent instructions (
AGENTS.md,CLAUDE.md, nearby guidance) and follow them over these defaults. - Find the real entry point, call chain, configuration, and the existing pattern for this kind of change. Do not locate code from memory, screenshots, error summaries, or file names alone.
- Check the dependencies, types, and documentation already in the project before writing replacement code or adding a package. Do not assume a library lacks a feature without checking its API.
- When the request has several reasonable readings, state the trade-off. Resolve high-risk ambiguity first;
rumo-clarifycovers how. - When several repositories are involved, keep track of which ones were read, changed, and verified.
- Apply the Risk Gate below before editing.
Risk Gate
Apply this gate on your own whenever you implement a change; the user does not need to name it.
- High at once: money (amounts, charges, refunds); authentication, authorization, secrets, and credentials; database migrations; irreversible effects such as deleting data, sending messages, or paying out.
- Rate first: durable data (writes, storage formats, bulk updates); concurrency; interfaces and formats other programs read (APIs, messages, configuration fields, exported files); untrusted input (uploads, SQL or shell commands built from input, deserialization, cryptography); personal data in storage, logs, or exports; deployment and infrastructure (CI, deploy scripts, permission policies, new or upgraded dependencies); and anything whose risk is unclear. Judge the consequence of a failure, how far it spreads, and whether it can be undone. Only a high rating enters the gate; explain a non-obvious rating in one line. A wording change in these areas does not qualify by location alone.
- When high: write a test that would catch this kind of failure and watch it fail before the change, such as an outsider being refused, a boundary amount, or an old reader loading the new format. Name the one fact the change is safe because of, and prove it by running code rather than by argument. After the last edit, run the checks once more and report that run. Read references/high-assurance.md in full before starting; it adds the spec, check selection, and evidence report.
- Review-only, read-only diagnosis, and test-planning requests keep their own boundaries: the rating informs the advice and authorizes no edit. Spec approval authorizes implementation and local checks only; commits, pushes, deployments, database writes, deletions, credential changes, dependency installs, and paid services keep their own approvals.
Scope Test
Before adding anything the user did not name, answer three questions:
- Did the user ask for it?
- Will the requested result fail without it?
- What concrete code, data, deployment fact, or user decision shows it is needed?
If the first two answers are no, leave it out and mention it only when the user would want to know. The goal is the smallest correct result, not the smallest diff: keep callers, tests, accessibility, security, existing-data migration, supported platforms, and deployment steps working whenever evidence shows they depend on the change.
While Editing
- Build the thinnest version that works end to end through the real entry point, then add capability in layers that each still work.
- Do not add generic abstractions, plugin points, configuration switches, or fallback frameworks for a single use.
- Do not reformat, rename, reorder, or refactor neighboring code. Match the surrounding style even when you would choose differently.
- Remove only the dead code this change created.
- Do not keep obsolete paths alive with shims, dual writes, flags, or deprecation periods unless the current contract requires them. Before deleting a path, confirm its callers, generated outputs, and deployment references. Contracts with external, persisted, or deployed consumers follow
rumo-interface. - Do not accept a stopgap whose stated purpose is to be replaced later. Record material architectural choices with
rumo-plan. - Keep internal risk notes out of deliverables. Add a disclaimer or warning only when the user asked, a decision depends on it, or leaving it out would make the result false or unsafe.
- Report unrelated problems you notice instead of fixing them.
- At these moments read the matching entry in references/principles.md: before adding to or restructuring code, after two failed fixes for one symptom, when a requirement only fits through special cases, before writing stateful or heavily branching logic, when writing validation or adapters, when a behavior spans more than three files, before a repetitive edit, and before reporting a measured number.
Authorization
Treat review, explanation, and monitoring requests as read-only until the user asks for a change. When the request changes mode or scope, re-read it rather than carrying old assumptions forward. Stop searching, testing, or reviewing once the evidence answers the question.
Working With Other Skills
- The user's task picks the main workflow; specialist skills add their checks to it rather than starting a workflow of their own.
- A subagent dispatched for a specific task follows its brief: it does not start another workflow or delegate further.
- Share one reading of the repository state, call chain, risk, and evidence across them, and close with one report that covers each skill's checks.
- Reuse a check result while the code, configuration, and target version it ran against are unchanged; after any of them changes, rerun the checks it affects.
- A high-assurance final run is always a fresh run after the last edit; earlier passes never replace it.
Task Flows
Match the task to one of these routes. For any route except a small edit or an investigation, whose rows below are complete, read references/task-flows.md for its steps and stop points before following it. A flow is a default route, not a checklist to copy; when you skip a step, say why in the final report. Tasks that fit none keep the rules above.
| Task | Route |
| Small edit | Read, edit, most relevant check, rumo-verify; no plan, no review |
| Defect fix | rumo-debug proves the cause, failing test, fix, verification recipe, rumo-verify |
| Feature | rumo-clarify if unclear, rumo-plan if multi-step, risk gate, thin slices, recipe, rumo-verify |
| Investigation | Read-only answer with evidence; how or why code works goes to rumo-explain |
| Resume | Read the handoff or decision record, check the actual repository state, continue |
| Refactor | Cover the behavior with tests, move in green steps, rerun the same tests |
| Performance problem | Baseline measurement, profile, fix, same measurement again; report both numbers |
| Metric improvement | Fixed measurement, one logged attempt at a time, keep or revert, never loosen the target |
| Runtime diagnosis | Capture the signal, narrow to one mechanism, confirm, map to source; diagnosis only |
| Prototype | Name the decision, throwaway build outside the product, switchable variants, recommend |
| Visual parity | Baseline screenshots, one component at a time, image comparison |
| Skill or prompt change | rumo-prose, repository validators, and the repository's acceptance policy |
| Pull request follow-up | On request: conflicts, review comments, then checks (rumo-git-commit); never merge |
| Pause | Stop at a safe boundary, nothing irreversible, resume note; commit only on request |
Close With Evidence
- Turn the task into a checkable goal, for example: reproduce, fix, run the focused test.
- Prefer focused tests, builds, linters, script self-tests,
git diff --check, or a real request or page check. Userumo-verifybefore claiming the change is ready. - When a check fails, report the command, the reason, and the remaining risk. When a check cannot run, say so; never substitute "should work".
- In answers, explanations, and reports, say where each factual claim comes from: a run you made, code you read (
file:line), or inference. Never state an inference as fact.
Before Handing Back
- Every changed file and hunk belongs to this task.
- No unrequested abstraction, option, or capability slipped in.
- Existing dependencies and patterns were checked before custom code was added.
- When handing back changed work, the final message separates what changed, what was verified, and what remains unverified or blocked. A read-only or planning turn reports what it found and what the user must decide next.
- When the user corrected you twice or more in this task, or the same kind of mistake recurred, end with a one-line offer to review the session for lessons, at most once per session. Do not start the review or edit any skill or instruction file unless the user accepts. Use the
rumo-reflectskill for the review when it is installed; otherwise list the lessons and change nothing without approval.
In this repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- rumo-agent-collaborationSkill
- rumo-clarifySkill
- 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-testSkill
- 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.

