Skip to content
Back to skills

Govkit Fix Record

ASecurity

Author a fix record for a defect that restores already-established behavior. Use when the user reports a bug, asks to fix a defect, or invokes /govkit-fix-record.

  • 20 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
developmentgosecurity

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add Accelerated-Innovation/governed-ai-delivery --skill govkit-fix-record --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Govkit Fix Record?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Govkit Fix Record
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/accelerated-innovation-govkit-fix-record/badge)](https://www.skillsdirectory.com/skills/accelerated-innovation-govkit-fix-record)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: govkit-fix-record
description: Author a fix record for a defect that restores already-established behavior. Use when the user reports a bug, asks to fix a defect, or invokes /govkit-fix-record.
---

# Fix Record

Author the fix record for a reported defect. When invoked, determine the defect from the user's request; if it is not described, ask before proceeding.

A defect that restores behavior something already established carries one record — `fixes/<id>/fix.yaml` — instead of the feature-artifact contract. A change that introduces behavior does not qualify, however small it looks.

## Check eligibility first

All four conditions must hold. Decide this **before** writing any code or any record — a change that fails one belongs in the feature lane, and finding that out after the fix is written wastes the work.

1. **It restores established behavior.** Name the requirement, contract, ADR, or spec that established it. If nothing did, this is new behavior.
2. **A reproduction test is possible.** You will write a test that fails before the fix and passes after.
3. **It introduces no new intended behavior.** Fixing a defect by adding a capability is not a fix.
4. **It does not change** architecture, security or auth, data handling, a public contract, an NFR, or cross-service ownership.

If any condition fails, stop and say which one, then direct the user to `/{{architecture_preflight_skill}}` and the feature lane. Do not author a fix record for a change that does not qualify — the lane is narrow on purpose, and widening it by assertion is the failure mode it exists to prevent.

## Inputs to read

Feature specs (to find what established the behavior):
- `features/<feature_name>/acceptance.feature`
- `features/<feature_name>/nfrs.md`

Architecture standards:
- `docs/{{docs_area}}/architecture/` (all files)
- `docs/{{docs_area}}/architecture/ADR/` — an accepted ADR is a valid source

Repository facts:
- `.govkit/skill_context.yaml` — read `architecture.layers` for the folder hints in this repo, and `architecture.source_root` / `architecture.services` for where source lives. Do not assume a folder shape; read the recorded one.

## Multi-service repos

Read `.govkit/skill_context.yaml` before planning. When it lists more than
one entry under `architecture.services`, this repo holds several services
and every path in your output has to land inside one of them:

```yaml
architecture:
  source_root: ''
  services:
    - name: billing
      root: src/billing
    - name: orders
      root: src/orders
```

1. Work out which service the feature belongs to. Take it from the request
   when it names one — by service name, or by a path under that service's
   `root`.
2. If the request names none, **ask which service to plan for** and list the
   names. Do not guess, and do not plan across all of them at once.
3. Prefix every file path in your output with that service's `root`. A task
   touching `services/pricing.py` in the `orders` service is
   `src/orders/services/pricing.py`.
4. Name the chosen service in the plan summary, so a reader knows which part
   of the repo the plan applies to.

When `architecture.services` is absent, the repo holds a single service.
Use `architecture.source_root` as the prefix instead — an empty value means
the layer folders sit at the repo root and paths need no prefix.

## Instructions

1. Reproduce the defect. Identify the smallest change that restores the established behavior.
2. Write the reproduction test **first**, and confirm it fails. Tests define the specification; a fix whose test never failed has not been shown to fix anything.
3. Run `govkit fix init <id>` to scaffold the record. Use a short slug naming the defect, not the fix.
4. Complete every field. `expectation.source` and `reproduction.test` must be real repo-relative paths — `govkit validate` resolves them, and an unresolvable source means condition 1 was asserted rather than met.
5. Set every `risk` flag honestly. A `true` is not a waiver; it moves the change to the feature lane. If you find yourself wanting to set one `false` to stay in the lane, that is the signal you are in the wrong lane.
6. Implement the fix. Confirm the reproduction test now passes and no other test broke.
7. Run `govkit validate --target .` and resolve anything it reports.

## Output

Write `fixes/<id>/fix.yaml` with:

- `summary` — the defect in the language of the affected behavior, not the language of the code
- `expectation.source` + `reference` — what established the behavior, and where in it
- `failure.observed` — what actually happens, and `reported_in` if there is a report
- `surface.paths` — the files the fix changes. Not the test; that is `reproduction.test`.
- `reproduction.test` + `scenario` — the test and the case within it
- `risk.*` — all six flags
- `introduces_new_behavior: false`

Two of these are declarations the tooling cannot verify: that the fix restores established behavior, and that it introduces none. `govkit validate` checks that the source path resolves, not that it says what you claim. State them precisely so a reviewer can check them quickly — that is what the record buys, and it is worth being straight about the limit rather than treating a green validate as proof.

Write the test before the fix, and the record before the implementation. No implementation code in this step beyond the failing test.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.