openreachtech/hora-core/hora
Claude Code and agent skill by openreachtech/hora-core
- community
Checking that the SKILL.md file is still in the repository.
Implement an application from its spec. Decides where a project stands and runs the five skills that do the work — spec, setup, plan, build, accept — one feature at a time, each to acceptance before the next starts. Runs at the root of the hora repository. Started or restarted only by an explicit `/hora` invocation.
Install
npx vskill@latest install openreachtech/hora-core/horaSKILL.md
hora
The orchestrator. Decide where this project stands, run the skill that comes next, and own every git operation on the way.
/hora does no implementation of its own. Five skills do the work:
| Skill | Does | Runs | |
|---|---|---|---|
| `/hora-spec` | writes the version's spec, in conversation — stage 0 reads what already exists, then its own seven stages | once per version, until stage 7 passes | |
| `/hora-setup` | creates the repositories the spec declares, fills in the project's values, reads the real tree | once per version, idempotent | |
| `/hora-plan` | fixes the version, verifies the spec in conversation, writes the feature list | once per version, re-entered every run | |
| `/hora-build` | takes one feature through the eighteen checkpoints | once per feature | |
| `/hora-accept` | runs the full unit suites every time, and the acceptance review at the invocation's reach | at each feature's checkpoint 18 (scoped), and once as a whole-version sweep (full) |
An emergency fix is not one of the five. /hora-hotfix takes one defect to main on its own, gives up the acceptance review, and records what it gave up as a debt. /hora reports that debt; /hora-plan turns it back into work (../hora-hotfix/SKILL.md).
Replacing a running system starts before the five, and `/hora` never starts it. /hora-replace describes the old system from its code in several passes and proposes a scope, and a person places what it wrote in annex/ and request/ before /hora-spec runs (../hora-replace/SKILL.md).
Read references/structure.md before anything else — the repository layout, where a per-repository command runs, and the three invariants all come from there. references/commits.md holds every git rule.
The shape of a run
One feature goes all the way to acceptance before the next one starts. Backend, then frontend, then acceptance — per feature, not per layer. Building every backend task, then every frontend task, then testing, means the first time anyone finds out whether a feature works is after all of them are written.
Re-entrancy is the center. A single session does not run to the end. Each run decides where it is and continues from there. Nothing is ever redone because a session ended — every checkpoint's checkbox is written the moment it passes.
Serial down to the checkpoint. No feature ever runs alongside another, and no checkpoint alongside another checkpoint.
`/hora-fast` is the other scheduler. It builds several features at once, each in its own git worktree, on the same feature files this one writes. A person chooses it by invoking it instead of /hora (../hora-fast/SKILL.md).
Inside a checkpoint, its units do run together. Five of the eighteen divide into units whose files are exclusive — a table, a module, an operation, a component, a screen — and each gets an implementer of its own. The checkpoint stays one gate with one exit condition (../hora-build/SKILL.md, "Step 5 — splitting a checkpoint into units").
Whether hora can start at all
The procedures `/hora` orders are not in this repository, and /hora never puts them in place itself. They arrive as skills of their own, alongside these, and this is the one thing to confirm before deciding anything else.
`/hora-setup` is asked for here because it is not in this package either. What it does is one stack from beginning to end — which repositories exist, what fills them, what to read once they arrived — so it is written by the boilerplate that knows that stack, and equipped from there. /hora orders it like the rest, and a project whose boilerplate has not put it in place cannot get past step 2.
Nothing here checks the hora skills themselves. /hora is one of them, so a session that reached this line has already proved they are equipped. What cannot be known from the inside is the other package's state, and that is the whole of what this section asks.
A partial set is not a failure. Which of them a repository equips is its own decision, and a checkpoint that finds nothing covering its work says so and carries on (references/structure.md, "How the match is made"). Only the empty case stops, because there nothing is covered at all.
How they are equipped is not this file's business. Say what is missing, not what command to run — the route differs by repository, and naming one of them here would be wrong wherever the other is used.
Deciding where you are
With that settled, do this every time — a fresh start and a restart alike.
Step 0 is also what catches `release/<version>` up with a `hotfix/*`. /hora has no scheduler: this fetch and the one right after every merge into release/<version> are the only two occasions it gets to notice one landed on main.
An open hotfix debt is reported here, never acted on here. Step 3's /hora-plan is what turns it back into work (../hora-hotfix/SKILL.md, "Paying the debt back").
Step 4 stops only where `Whether the run may go on past an open blocking question` (`../hora-plan/SKILL.md`) says no. The decision lives in /hora-plan, beside the question file it reads, so /hora and /hora-plan never answer it differently.
`/hora` does not ask before running this check, or before acting on an ordinary result. It stops and asks once the check turns up something it cannot resolve on its own.
Step 1 is not "write the spec for them". /hora-spec writes nothing without somebody reading it first, and a run that reaches step 1 with nobody there to answer stops there.
Step 3 runs even when the feature list already exists. A spec keeps moving while implementation is under way. Only once /hora-plan's reconciliation shows no difference does a version move on.
Step 5 reads only the entries that carry a checkbox, so a listed feature is never a candidate. A feature listed under Baseline: inventoried sits under _plan.md's ## Not accepted with no box at all, so it is neither done nor unfinished. A version whose every remaining feature is listed passes step 5 and is swept at step 6 (references/spec-format.md, "baseline"). Paying the debt is a later version's ordinary work, scheduled by a person.
Step 5 also passes over an entry whose checkpoint 18 the `## Acceptance` sweep entry covers. Its [ ] means the sweep will close this, not hand this to `/hora-build` (../hora-plan/SKILL.md, "collapses to one sweep"; ../hora-build/SKILL.md, "Where to start").
Steps 6 and 7 read the newest block's own `reach:`, never whether `_sweep.md` exists. That sweep may be invoked before every feature is done, and every run appends a block, so the file's presence says only that it ran at least once. A sweep invoked at the eighth of twenty gates writes a truthful reach: scoped.
They read `version-criteria:` beside `reach:`, for the same reason one level up. reach: full says the run reached every feature acceptance could reach; the version's own criteria reach no feature's gate at all (references/spec-format.md, "15. Version acceptance criteria").
They read `tips:` because a pass describes the code it drove. Step 0's hotfix catch-up, a retake or an update/ merge after the sweep moves a tip, and the pass no longer covers what would merge (../hora-accept/SKILL.md, "Recording the result").
Keyed that way the two steps leave no gap. Whatever fails step 7's test — no record, reach: scoped, a failed verdict, a short version-criteria: line, a stale or missing tips: line — satisfies step 6's predicate, so the run goes back to /hora-accept.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingkit/skills/hora/SKILL.md
Popularity
- Repository stars
- 56
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/openreachtech/hora-core/hora)