rail-align
Skill5 starsChanged 4 months agoMITView on GitHub
Align on a plan or design — light grilling with domain docs. Writes docs/monorail/<slug>/align.md then auto-continues the planning chain (spec, which stops for your go/no-go before slice).
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- rail-buildSkill
- rail-debugSkill
- rail-grillSkill
- rail-passSkill
- rail-reviewSkill
- rail-setupSkill
- railSkill
- rail-sliceSkill
- rail-specSkill
- rail-tddSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
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
- Very specific: line 19
When a hard-to-reverse decision crystallises, write an ADR under docs/monorail/adr/
- Very specific: line 20
Create docs/monorail/CONTEXT.md / docs/monorail/adr/ lazily when first needed — check with the shell first (ls).
- Distinctive: line 21
When the decision tree is resolved and the user confirms shared understanding, persist before continuing:
- Very specific: line 24
Write docs/monorail/<slug>/align.md using the template below (create the directory)
- Distinctive: line 32
Use these exact headings:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
Rail Align
Sharpen an idea before spec/build. One mode — grill it in this conversation until the decision tree is resolved, then persist align.md and continue the planning chain.
Confirm with the shell before concluding either file is missing (ls docs/monorail/work-tracker.md docs/monorail/domain.md, or read the paths directly) — search tools skip gitignored paths, so an empty Glob/Grep result is not evidence of absence. If a file is missing on disk, tell the user to run /rail-setup first and stop.
Process
- Interview one question at a time (same discipline as
/rail-grill, including its Question format — the hard**问题:**/**推荐:A**/- **A.**template, where A is always the recommended option), with recommended answers - Actively maintain domain docs (paths from
docs/monorail/domain.md):- Challenge terms against
docs/monorail/CONTEXT.md - Sharpen fuzzy language; propose canonical terms
- When a hard-to-reverse decision crystallises, write an ADR under
docs/monorail/adr/ - Create
docs/monorail/CONTEXT.md/docs/monorail/adr/lazily when first needed — check with the shell first (ls); search tools skip gitignored paths, and an existing glossary or ADR must never be replaced
- Challenge terms against
- When the decision tree is resolved and the user confirms shared understanding, persist before continuing:
- Pick a new feature slug (
docs/monorail/<slug>/) — agent chooses; never ask the user; never reuse an existingdocs/monorail/<slug>/work directory (related prior efforts stay separate; link them from Domain pointers if useful). If the user already named a free slug, use it as-is (no prefix). Otherwise invent a distinct unused slug:YYYY-MM-DD-NN-<kebab>whereNNis the day's global sequence (01,02, … — count today's existing date-prefixed effort dirs + 1 with the shell,ls docs/monorail/; search tools skip gitignored paths and can miss effort dirs, so never take the sequence or the "unused" check from Glob/Grep). Reserved names:CONTEXT.md,CONTEXT-MAP.md,adr,work-tracker.md,domain.md - Do not interview for slug (no A/B/C, no “new vs continue”) — slug is path bookkeeping, not a decision-tree branch
- Write
docs/monorail/<slug>/align.mdusing the template below (create the directory) - Domain docs alone are not enough —
/rail-specrequires this file
- Pick a new feature slug (
- Continue the planning chain for this same
<slug>: read and follow/rail-specin this same session (it writesspec.md, then stops for your go/no-go before/rail-slice). Do not stop and ask the user to type/rail-spec. Do not substitute/to-specor other foreign-pack equivalents.- Exceptions (stop instead): user asked to stop after align; context near limits →
/rail-pass - Budget check (before auto-continuing): the light grilling may have already spent a large share of this session's context. If so, stop here —
align.mdis durable, and/rail-specresumes it fresh next session (its code-grounding pass and single seam confirmation deserve a clean window). When in doubt prefer stopping withalign.mdwritten. This is a self-determined stop, not a new question for the user.
- Exceptions (stop instead): user asked to stop after align; context near limits →
align.md template
Use these exact headings:
## Intent— what we're building and why (user perspective)## Decisions settled— bulleted consensus from this align (trade-offs the user owned)## Deferred— explicitly parked; not blockers for spec (orNone)## Out of scope## Domain pointers— links/paths todocs/monorail/CONTEXT.mdterms and ADRs touched (orNone)
Completion
User confirms alignment; align.md written; domain docs updated as needed; then auto-continue into /rail-spec (unless an exception above applies).
Near context limits: stop and suggest /rail-pass instead of continuing degraded.
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.

