openreachtech/hora-core/hora-accept

Claude Code and agent skill by openreachtech/hora-core

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Run acceptance and record what passed and what did not — the full unit suites every time, plus an acceptance review at the reach the invocation calls for. Invoked as checkpoint 18 of /hora-build, as the whole-version sweep, or directly as /hora-accept.

Install

npx vskill@latest install openreachtech/hora-core/hora-accept

SKILL.md

hora-accept

Acceptance. Run the unit suites in full, run the acceptance review at the reach this invocation calls for, and record the result — including what that reach was.

Read ../hora/references/structure.md first. This skill is strictly read-only on `specs/`, and it never fixes code. It finds and records; fixing is a checkpoint's job, in /hora-build.


What this skill does not contain

The content of an acceptance review, and the criteria it passes or fails on, are not in this file and must never be written into it. They live in the @openreachtech/hora-skills-ort-* packages, and this skill delegates the work.

What is neededWhose it is
whether the environment satisfies the prerequisite, and how to bring it upthe skills covering the local end-to-end container stack
what the review looks at, phase by phase, and what it fails onthe skills covering the acceptance review itself
the durable list of scenarios, and how coverage is derived from the API surfacethe skills covering end-to-end test specification
UX, interaction, accessibility and consent findings, with severitythe skills covering the UI/UX audit
the project context those two read (users, scope, tokens, rules)the skills covering the shared UI/UX project context
the kinds of defect a read-only security audit finds, and how it finds themthe skills covering a read-only security audit
driving a failing suite to green without weakening itthe skills covering test execution
whether a recorded result may stand in for an execution, and what a reused result must be reported withthe skills covering test caching
where a backend test lives, and how its run order is guaranteedthe skills covering backend test placement
how a unit test for a class is writtenthe skills covering how a unit test is written

What this skill decides is only three things: which features are in scope, in what order the delegates run, and where the result is recorded.

No name appears above, and none may

A skill's name belongs to the package, which is free to change it (../hora/references/structure.md, "No hora file ever names one of those skills"). A renamed skill does not disagree with this file — the name stops matching, and the step is skipped while the record says the run passed.

So this skill matches at run time, itself, against the equipped skills' own descriptions, before running the step. Record the names it picked in the run's own record — the Delegate column below is that record.

If nothing equipped covers a row, say so and continue without it. Record the gap by the work that went uncovered. Do not substitute a guess, and do not invent the missing criteria yourself.


What is in scope

Two invocations, two reaches — and the unit suites are the one thing that never shrinks.

Invoked asUnit suites (step 2)Review scope (steps 3–6)Written to
checkpoint 18 of /hora-build or /hora-fast — the feature gateevery repository, in fullthe feature at the gate. The live, browser-driven part of the review runs where "Whether a feature gate drives the product live", below, says yes.hora/acceptance/<version>/<feature-id>.md — a new block, whatever reach this run took
the whole-version sweep — _plan.md's ## Acceptance entryevery repository, in fullevery done feature — for every version in ascending order, every feature whose entry in _plan.md is [x], plus the one at the gate if any, plus — in a version the plan collapsed to one adoption sweep — every entry in that version's feature section whatever its box reads (below).hora/acceptance/<version>/_sweep.md — a new block

Step 6 is the one step whose scope is not a feature set. At the sweep it is pointed at the repository whole; at a gate it does not run, because checkpoint 8 already audited that feature's change set (../hora-build/references/checkpoints.md, checkpoint 8).

"Explicitly requested" means a person asked for it, in the run. That is the only widening there is, and the run records it with the requester named. Nothing here upgrades a gate run on its own judgment, and nothing downgrades the sweep.

A widening changes the reach and nothing else — least of all where the record lands. A gate run asked to reach every done feature is still that feature's acceptance, so it appends a block to that feature's own file and says reach: full inside it. There is no third kind of run and no third path.

The version's own acceptance criteria are a third thing in scope, and they are the sweep's alone. A behavior spanning several features reaches no gate at all (../hora/references/spec-format.md, "15. Version acceptance criteria"). _plan.md's ## Acceptance entry names how many there are and which rest on a feature nobody accepted.

Invoked asThe version's own criteria
checkpoint 18 of /hora-build or /hora-fast — the feature gatenot in scope, at any reach
the whole-version sweepin scope, all of them — including the ones earlier versions added, since they stand in the resolved document until somebody removes them

A widening does not reach them either. A widened gate run is still accepting one feature, and these criteria are a statement about the version. Judged at a gate, a criterion spanning three features would fail against a product holding one of them.

A standing policy could not live in `_plan.md`, which is why the widening is a person and not a line. .hora/ holds derivations, written by skills and read by humans (../hora/references/structure.md, invariant 1). If a project wants "sweep live at every gate" as policy, it belongs in the spec.

A feature implemented before Hora Kit was adopted is in scope like any other. Its checkpoints are marked not-applicable up to the acceptance gate, never through it — so the first sweep after adoption is the run that says what the existing product actually does. Expect findings there.

A feature the spec only listed is the opposite case, and the derivation has already decided it. /hora-plan writes its entry under ## Not accepted, with no checkbox at all. Scope above is read off those checkboxes — a gate run takes the feature whose gate it is, a sweep takes every entry that is [x] — and an entry with no checkbox is neither. It is therefore out of scope at this version and at every later one, with nothing added here to keep it out.

No box at all and an unticked box are two states, and only the first one is this. [ ] says a run is going to close this entry (../hora-plan/SKILL.md, "collapses to one sweep"), which is why the row above takes a collapsed version's feature entries into scope whatever their boxes read. Absence of the box, never its state, is what puts a feature out of scope.

That section is taken by what it is, not by an exact heading string: the version's feature section, whatever its heading reads. A collapsed version's is written ## Features — adopted as built, so a selector matching a bare ## Features literally finds no section in precisely the version whose every feature it was supposed to cover. Match the section, then read its entries.

built: alonebuilt: with baseline: inventoried
Its entry in _plan.mda checkbox, under ## Featuresunder `## Not accepted`, with no checkbox
A gate runruns, as its checkpoint 18there is no gate — 18 stays [ ] and nothing marks it
A sweepin scope from the run that finished it onwardnever in scope
What a verdict says about itpassed, or a finding routed to a checkpointits id on the `not-accepted:` line, and nothing else

Deriving the exclusion rather than writing a rule for it is the point. A rule would have to hold at two reaches, three invocation forms and every version after this one, and the first place somebody forgot it would put a feature with no acceptance criteria in front of the review skills — which can only report that nothing failed. The checkbox is absent once, in the plan, and every reach reads the same absence.

Where the plan collapsed a version into a single adoption sweep, that sweep is one invocation with every adopted feature in scope, standing in for each one's checkpoint 18. It runs the same six steps as any sweep — only the number of repetitions shrinks. Its findings route to checkpoints per feature, and a feature a finding reopens gets its checkpoints back for real.

A feature whose acceptance was deferred by a listing runs at full live reach when it is finally accepted, whatever the invocation form. It is decided mechanically, from two facts together: no `.hora/acceptance/*/<feature-id>.md` holds a block whose verdict is a pass, in any version, and an earlier version's `_plan.md` names this feature under `## Not accepted`. Such a run is the only acceptance this code will ever have had, so a live-skipped pass would stand as the whole of what was ever said about it.

Both facts are needed, and the second is what keeps this from swallowing the gate's own default. Every feature's checkpoint 18 is its first acceptance, so the missing file alone would widen every gate run ever. A listing is what makes this run different: the deferral was declared, in the spec, and this is the run that pays for it.

It matters most where the missing record is years old. The invocation says nothing about the feature never having been accepted, and the person invoking it has no reason to know. The plan and the absent file are what say so, identically whether the listing is one version old or four.

The regression net at a feature gate is the unit suites plus the review's own static checks, and it is cumulative by construction. The suites run whole repositories, so a feature that breaks an earlier one fails here, in the run that broke it. What a gate run gives up is driving every earlier feature's screens end to end; that is the sweep's job, and the record says which reach its verdict was reached at.

[wing] Whether a feature gate drives the product live

Yes, where a person asked for it in the run, or where this run is paying a listed feature's deferred acceptance (both above). Otherwise the gate keeps the static checks and gives up the driven ones. The sweep always drives, so this section never reaches it.


The order to run in

Each step below states the work, not a name. Match it against the equipped skills' descriptions first, then run it, and write the names you matched into the record's Delegate column.

1. Confirm the environment — when the live sweep is going to run
as "How to confirm the environment", below, says
Not satisfied -> stop. Report `lacked-environment` (blocking: yes).
Do not review a frontend served on its own, and do not
"work around" a missing service
A gate run whose live sweep is skipped neither requires the stack nor
brings it up — the review's own capability note then records that
nothing in its verdict rests on a driven browser. A gate run paying a
listed feature's deferred acceptance drives, so it needs the stack

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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/openreachtech/hora-core/hora-accept/badge)](https://verified-skill.com/skills/openreachtech/hora-core/hora-accept)

Something wrong with this skill or its page? Tell us.