ordo-init
Skill0 starsChanged 27 days agoMITView on GitHub
Set a repository up for the plan skills: draft .agents/plan.yaml from what the repository already has (the roadmap, the page that defines the checks, the change standard, the check commands its CI and build files run, one project or several), offer the pages it lacks, make git ignore the worktree root and keep the configuration tracked, and write nothing until the user approves. On a repository that already has .agents/plan.yaml it checks the file instead: required keys, unknown keys, values, the pages it names, the ignore rules. Triggers on: ordo-init, set up the plan skills, init plan.yaml, configure ordo, check plan.yaml.
In this repository16 other files it gives its agents.
- skills/repo-setup/templates/CLAUDE.mdCLAUDE.md
- code-commentsSkill
- diagnoseSkill
- grillSkill
- landSkill
- ordo-helpSkill
- paperSkill
- plan-orchestrationSkill
- plan-retroSkill
- planSkill
- refuteSkill
- repo-setupSkill
- roadmapSkill
- session-retroSkill
- specSkill
- writingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 12 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
When the skill runs alone under a quoted ruling that states whether it may commit, the commit rule is what the ruling states.
- Distinctive: line 46
No bullet of the Rulings section, or of the rulings file, has the name, or more than one has it.
- Distinctive: line 54
Run from the repository root.
- Distinctive: line 87
Ask the user for the keys the repository cannot give ("Stops").
- Distinctive: line 95
Leave each optional key out, so its default applies, unless the repository gives a reason.
- Very specific: line 107
When it does not, the draft adds /<worktree_root>/ to .gitignore.
- Distinctive: line 115
When the skill runs alone, the question whether it may commit.
- Distinctive: line 118
Stop for the approval ("Stops").
- Distinctive: line 127
Write what was approved.
- Distinctive: line 131
Commit the files written in one commit whose subject names the plan configuration.
- Distinctive: line 137
When no commit is made, the list of files written names the ruling the same way.
- Distinctive: line 176
After the fixes, run the check again.
- Distinctive: line 208
Every path is relative to the repository root.
≈ “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
Set a repository up for the plan skills
/ordo-init writes the one file the plan skills (plan, spec, refute, land, ordo-help, plan-orchestration) need in a repository, .agents/plan.yaml, and the pages that file names when the repository lacks them. It leaves behind that file, the pages the user approved, the .gitignore lines it needed, and one commit when the repository's commit rule allows it.
Quick start
/ordo-init draft .agents/plan.yaml and the pages it lacks for approval, or check the .agents/plan.yaml that is there
/ordo-init --ruling <ledger file> "<name>" the same, under a quoted ruling: a draft the ruling states is written without the stopUse instead
| When | Use |
| A new repository, set up from nothing | /repo-setup |
| The configuration exists and the roadmap needs an entry | /roadmap add <goal> |
| The configuration and the roadmap exist and a plan is to be opened | /plan <entry> |
What it reads
- The plan skill's
templates/plan.yaml(one project) andtemplates/plan.projects.yaml(several), in theplanfolder beside this skill's folder: the keys, which are required, each optional key's default, and the comment that says what the key is. .agents/plan.yaml, when it exists.- Then the skill checks instead of drafting ("Steps / Checking an existing file").
- The repository's commit rule: the answer to
repo-setup's question 5 when/repo-setupruns this skill, or, when it runs alone, the user's answer at the approval stop of Steps 11.- When the skill runs alone under a quoted ruling that states whether it may commit, the commit rule is what the ruling states.
- The repository:
git ls-files, the CI configuration (.github/workflows/,.gitlab-ci.ymland the like), the build and package files (package.jsonscripts,Makefile,CMakeLists.txtandCMakePresets.json,pyproject.toml,Cargo.toml,go.mod), the documentation folders,README.md,CONTRIBUTING.md,AGENTS.md,CLAUDE.md, and.gitignore. - The quoted ruling, when the invocation ends with
--ruling <ledger file> "<name>".<ledger file>is a plan'splan.mdor a rulings file, given by a path the skill can read from where it runs.- The quoted ruling is the bullet named
<name>in that file's Rulings section, or in the file itself when it is a rulings file, with every line under it: its sub-bullets and their fenced blocks. - The name is read as the
specskill's "What it reads" 4 reads a ruling's name. - It is matched against the bullet's text as written, a quotation mark in it included.
- A draft is the ruled change when each change it makes to a file has a sub-bullet that states it and equals that sub-bullet.
- What the skill shows beside the change, such as a gate's answer with its reason or the lines around a place, is not part of what is compared.
- A text of several lines is compared line for line with the fenced block under its sub-bullet.
- There is no ruling in any of these cases.
--rulingis not followed by the file and the name as the last two arguments of the invocation.- The file does not exist, or is neither of those two files.
- No bullet of the Rulings section, or of the rulings file, has the name, or more than one has it.
- The name is a placeholder in angle brackets, such as
<L>. - The bullet's first line does not end with "(the user)", with or without a full stop after it.
- With no ruling, the skill says which of these it found.
- With no ruling, every stop stands.
Steps
Run from the repository root.
- Choose the form.
- A repository whose tools each have their own build file and their own documentation under separate directories (
tools/<name>/,packages/<name>/) is drafted in theprojects:form, one project per directory, named by the directory and withworktree_pathsset to it. - Otherwise the one-project form.
- The draft says which form and why.
- Under a quoted ruling ("What it reads" 5), the draft takes the ruling's form, keys,
.gitignorechanges and page texts. - Steps 2 to 9 replace a ruled part only where a rule of this skill gives another result.
- The step is done when the draft names the form and why.
- A repository whose tools each have their own build file and their own documentation under separate directories (
- Draft
roadmap: the tracked file that lists the open work, one entry per piece of it.- Candidates are files named
roadmap,ROADMAP,execution-order,TODOorbacklogin any documentation folder. - A repository can keep an ordered build plan next to a capability map (a file per feature, or an index that the ordered plan walks through): the key names the ordered file, because
/planmatches<entry>against its entries. - The draft names the map in the key's comment.
- Several candidates are a stop ("Stops").
- Under a quoted ruling that states
roadmap, the key is the ruling's. - The stop of several candidates is then not raised.
- Under a quoted ruling that states
- None: the skill offers to write
docs/roadmap.mdfrom theroadmapskill'stemplates/roadmap.md(in theroadmapfolder beside this skill's folder), with no entries./roadmap addfills it.
- The step is done when the draft names the roadmap file, offers
docs/roadmap.md, or the stop of several candidates stands.
- Candidates are files named
- Draft
verification: the page that defines the green check, with the commands every step runs and the directory each runs from.- An existing page qualifies only when it states commands.
- None: the skill offers to write
docs/dev/building.mdfrom the commands the CI jobs and build files run (install, build, test, lint, type check). - Each command is run once from its directory before it is written.
- Its exit status and the last lines of its output are shown beside it.
- A command that fails is not written as a check.
- It is a stop ("Stops").
- Draft
rules: the page that says how a change is made (a change standard,CONTRIBUTING.md, or the rules section ofAGENTS.mdorCLAUDE.md).- None: the skill offers to write
docs/dev/change-standard.mdfrom therepo-setupskill'stemplates/docs/dev/change-standard.md(in therepo-setupfolder beside this skill's folder). - Its placeholders are filled from this repository: the standards pages, the folders a renamed name is grepped across, the verification commands with their filters.
- Each rule the repository already states elsewhere is added, citing the file it came from.
- None: the skill offers to write
- Draft
ledger_root,archive_rootandworktree_root.- An existing folder of plans (a folder whose subfolders hold
plan.mdandorchestrator-state.md) or of worktrees is kept. - Otherwise the values are the example's.
- An existing folder of plans (a folder whose subfolders hold
- Ask the user for the keys the repository cannot give ("Stops").
- A key whose value a quoted ruling states is not asked.
- Its value is the ruling's.
workerandreviewerare asked with the example's value as the offered answer.librariesis asked with its two values and what each means, and with no offered answer, since the example's value is only an example.checkmeans/speclooks for a library for every capability a step builds before it writes the brief.avoidmeans a step adds no new dependency.- The step is done when every key the repository cannot give has its value.
- Leave each optional key out, so its default applies, unless the repository gives a reason.
- A key that is written names that reason in its comment.
standardslists every standards page the repository has, wherever it is (design principles, coding standards, a UI standard, a layout or prose standard), anddocs/glossary.mdwhen the repository has one, so every brief names them.- The paths
/repo-setupinstalls by default aredocs/dev/design-principles.md, the pages underdocs/dev/coding-standards/anddocs/dev/ui-standard.md.
- The paths
worktree_pathsis the project's directory in theprojects:form.benchandlookare left out unless the user names binaries or a view.adris written only when the repository keeps its decision records (a folder ofNNNN-*.mdrecords) in a folder other thandocs/adr, and it names that folder.design_bar,design_references,worker_effort,reviewer_effort,self_rule,next_entryandrepair_reviewerare left out unless the user gives a value.- The step is done when each optional key is left out or written with its reason in its comment.
- Give every key written the example's comment for it, without the required/optional marker, in the example's order.
- Draft the ignore rules.
- The worktree root must be ignored:
git check-ignore -q --no-index <worktree_root>/probeexits 0. - When it does not, the draft adds
/<worktree_root>/to.gitignore. .agents/plan.yamlmust not be ignored:git check-ignore -q --no-index .agents/plan.yamlexits 1.- A rule that ignores the whole
.agents/folder is drafted as.agents/*with!.agents/plan.yamlafter it, since git cannot re-include a file whose parent folder is excluded.
- The worktree root must be ignored:
- Show, in this order:
- The form and why.
- The draft
.agents/plan.yamlin full. - Each page it would create, in full, with the commands' results for a verification page.
- The
.gitignorechanges, as Rules 5 says. - When the skill runs alone, the question whether it may commit.
- The commit question is left out when a quoted ruling states whether the skill may commit.
- The step is done when everything this item lists is shown.
- Stop for the approval ("Stops").
- Under a quoted ruling, compare the draft Steps 10 shows with the ruling.
- The comparison covers the form, each key of
.agents/plan.yamlwith its value, each change to.gitignore, and the full text of each page to create. - Under
/repo-setup, a key this skill derives from the tree/repo-setupwrote counts as stated. - A draft the ruling states in each of these is written without the stop.
- A commit question Steps 10 shows is then asked alone.
- A draft that differs in anything, or a page whose text the ruling does not hold, is shown whole with each difference named.
- The stop then stands with nothing written.
- The step is done when the draft is written, or it is shown and the stop stands with nothing written.
- Write what was approved.
- Run
python3 <this skill's folder>/templates/check_config.py ..- Show its output.
- The setup is done only when that exits 0.
- Commit the files written in one commit whose subject names the plan configuration.
- Each file is staged with
git add -- <path> .... - The commit names the same paths:
git commit -m <message> -- <path> .... - The commit is made only when the repository's commit rule ("What it reads" 3) allows it.
- Otherwise the skill stops ("Stops"), except under
/repo-setup, where the setup goes on andrepo-setup's Steps 12 raises the one stop. - A setup written under a quoted ruling names the ruling in the commit message, by its name and its ledger file.
- When no commit is made, the list of files written names the ruling the same way.
- That list is the one of the stop "No commit allowed", or under
/repo-setupthe one ofrepo-setup's Steps 12. - The step is done when the files written are in one commit, or the list of files written is shown.
- Each file is staged with
Checking an existing file
- With
.agents/plan.yamlpresent, write nothing.- Run
templates/check_config.py.
- Run
- It reports each of these.
- A key written twice.
- A key beside
projects:in theprojects:form. - A required key missing.
- An unknown key.
- A value of the wrong kind.
workerorreviewernotclaude:<model>or written with no value.repair_reviewernotclaude:<model>.self_ruleornext_entryneitheronnoroff.reviewneithereverynorearned.librariesneitherchecknoravoid.adrnot naming a folder under the repository root.design_baroutsideindustry,state-of-the-artandnovel.design_referencesnot a list of text.worker_effortorreviewer_effortoutsidelow,medium,high,xhighandmax.- A value whose kind differs from its default's.
- A page named by
roadmap,verification,rulesorstandardsthat does not exist. - A
worktree_pathsentry that does not exist. - A worktree root git does not ignore.
- A configuration file git ignores.
- The item is done when each of these that holds is reported.
- Optional keys left out are listed as notes with the default that applies, which for
repair_revieweris thereviewervalue.- The default ADR folder
docs/adris also listed as a note whenadrnames it and the folder does not exist yet. next_entryon whileself_ruleis off or left out is noted as acting only under self-rule, and not noted whenself_rulehas an error.- The item is done when each optional key left out, and the default ADR folder where it applies, has its note.
- The default ADR folder
- For each error, propose the fix ("Stops").
- A fix a quoted ruling states is made without the stop.
- A fix the skill proposes that differs from the ruled fix is shown with the difference.
- The stop then stands.
- The item is done when each error has its fix made under a quoted ruling, or proposed at the stop.
- Make each fix the user approved.
- After the fixes, run the check again.
- A fix made under a quoted ruling is listed with the check's output, with the ruling's name and its ledger file.
- The item is done when the check's output after the fixes is shown.
Stops
| Stop | When | What it shows | What resumes it |
| The draft | Every setup, at Steps 11, except a draft a quoted ruling states as Steps 11 says, where only a commit question the ruling leaves open is asked | What Steps 10 lists | The user's approval or correction, and, when the skill runs alone, the answer to the commit question |
| Several roadmaps | More than one roadmap candidate, and no quoted ruling states roadmap | The candidates | The user's pick |
| Worker, reviewer and libraries | Every setup, at Steps 6, for each key a quoted ruling does not state | The offered answer for worker and reviewer, and the two values of libraries with what each means, as Steps 6 names them | The user's answers |
| A failing command | A command meant for the verification page fails its one run | What Steps 3 shows beside it | The user's decision |
| A fix in the check | The check reports an error in an existing file, and no quoted ruling states its fix | The error and the proposed fix | The user's approval |
| No commit allowed | The repository's commit rule does not allow the commit, at Steps 14, when the skill runs alone | The files written, the quoted ruling named when the setup was written under one, and the command that shows them (git status --short) | The user's commit |
Anti-patterns
| Anti-pattern | Why it fails | Do instead |
| A rule the repository does not state, written into a page | The page then binds the builders to something nobody decided | Rules 2 and 3 |
Overwriting an existing page or .agents/plan.yaml | The user's text is lost without a decision | Rules 4 and 5 |
Rules
- The skill writes nothing until the user approves or corrects the draft, except that each verification command runs once at Steps 3 before the draft is shown.
- A quoted ruling that states the draft is that approval.
- The skill draws only from the repository and the user, for the file it drafts and for every page.
- A page the skill writes states what the repository already does or says.
- It cites where.
- The skill never overwrites an existing page or
.agents/plan.yaml. - A change to an existing file,
.gitignoreincluded, is shown as a diff and made after approval.- Under a quoted ruling that states the change, it is made without being shown for approval, as Steps 11 and "Steps / Checking an existing file" 4 say.
- Every path is relative to the repository root.
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.

