Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Standalone Spec Kitty governance invocation: run Spec Kitty when the user indicates they want Spec Kitty involved, load governance context, open an Op, do the work under that context, and close the Op with the real outcome. Documents dispatch, profiles list, invocations list, and profile-invocation complete. Triggers: "use spec kitty to", "hey spec kitty", "spec kitty <anything>", ad-hoc requests that are not part of a running full mission workflow.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | -33% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 12% | 0% |
Use this skill when the user seems to want Spec Kitty involved and the request is not clearly a full mission workflow.
Spec Kitty does not spawn another LLM. You are the host. Spec Kitty routes the request, assembles governance context, opens an Op record, and returns. You then do the work under that governance context and close the Op with the real outcome.
If the user says anything like "use spec kitty to ...", "hey spec kitty ...", "spec kitty fix ...", or "spec kitty <anything>", treat it as a standalone governed invocation unless they clearly ask for a full mission.
Run:
bashspec-kitty dispatch "<request verbatim>" --json
If the user names a specific profile, or you have a strong reason to bypass routing, pass it explicitly:
bashspec-kitty dispatch "<request verbatim>" --profile <profile-id> --json
Do not answer directly before dispatching. The point is to load governance and record the Op before doing the work.
Every standalone invocation follows the same three-step lifecycle:
spec-kitty dispatch opens the Op and loads governance context.It does not do the work and it does not close the Op.
governance_context_text and do the work under that bindingcontext.
bash spec-kitty profile-invocation complete \ --invocation-id <id> \ --outcome <done|failed|abandoned> [--evidence <path>]
Failed work closes as failed; dropped work closes as abandoned. Never leave an Op open deliberately. spec-kitty doctor ops reports orphaned open Ops, and spec-kitty doctor ops --close-stale sweeps stale ones closed as abandoned with closed_by: doctor_sweep.
bashspec-kitty profiles list --json
Profiles are an optional routing escape hatch, not the primary UX.
bashspec-kitty dispatch "implement WP03" --json spec-kitty dispatch "review this migration" --profile reviewer --json
Response fields:
| Field | Type | Description | |-------|------|-------------| | invocation_id | string (ULID) | Unique ID for this Op | | profile_id | string | Resolved profile identifier | | action | string | Normalised action string | | governance_context_text | string | Full governance context assembled from the project DRG | | governance_context_hash | string | SHA-256 hash of governance_context_text | | governance_context_available | boolean | false when charter has not been synthesised | | router_confidence | string or null | Routing confidence score | | status | "open" | The Op is open until you close it | | close_contract | object | Exact close command, accepted outcomes, and flags |
After calling dispatch, the response includes governance_context_text.
You must inject this text into your working context before executing the task.
Steps:
governance_context_text from the JSON response.binding governance: follow any directives, constraints, and guidelines it contains when generating code, plans, or analyses.
governance_context_available is false, note it to the user("governance context unavailable — run spec-kitty charter synthesize to build the DRG") but proceed with the task. The Op trail is still recorded.
bashspec-kitty profile-invocation complete \ --invocation-id <id> \ --outcome <done|failed|abandoned>
--outcome is required and must reflect what actually happened: done for completed work, failed for work that did not succeed, abandoned for work that was dropped. Optional flags: --evidence <path>, --artifact <ref>, --commit <sha>.
bashspec-kitty invocations list --json spec-kitty invocations list --profile <profile-id> --json spec-kitty invocations list --limit 10 --json
Every dispatch call writes one JSONL file to kitty-ops/<invocation_id>.jsonl with a started event. Closing the Op appends a completed event carrying the real outcome and closed_by.
An Op without a completed event is an orphan: visible in spec-kitty invocations list as open, reported by spec-kitty doctor ops, and surfaced at session boundaries.
dispatch never spawns a separate LLM call.dispatch opens the Op and returns. The working agent closes it with thereal outcome.
governance_context_text is assembled from the project DRG; no network callsare made if the charter has already been synthesised.
governance_context_available is false, runspec-kitty charter synthesize to build the DRG before the next invocation.
Other measured skills in the registry, with their headline benchmark lift.