Skip to content
Back to skills

Gz Intent Trace

ASecurity

Use when asking whether what shipped fulfils what was decided, or a capability "exists but doesn't really work".

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
toolsgobash

Works with

  • cli

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add tvproductions/gzkit --skill gz-intent-trace --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gz Intent Trace?

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

Security grade badge for Gz Intent Trace
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tvproductions-gz-intent-trace/badge)](https://www.skillsdirectory.com/skills/tvproductions-gz-intent-trace)

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

SKILL.md
---
name: gz-intent-trace
persona: spec-reviewer
description: Use when asking whether what shipped fulfils what was decided, or a capability "exists but doesn't really work".
category: adr-audit
lifecycle_state: active
owner: gzkit-governance
last_reviewed: 2026-10-17
metadata:
  skill-version: "1.0.3"
model: sonnet
---

# gz-intent-trace

Read an ADR's declared **Decision** and **Acceptance Criteria**, read the surface
that actually shipped, and answer one question per ADR:

> Does the shipped surface fulfil its original declared intent?

Every `no` is a **correction routed under the owning ADR** — never a fresh pool
ADR, never new-design ceremony, and never an "enhancement". That routing is
operator canon, verbatim:

> *"discovering that more is needed to fulfil the intent of a feature is not an
> enhancement, it is a correction."*

Enhancement means the surface works as designed and could merely be tighter.
"Capability not yet built" is never an enhancement.

## Why this is a skill and not a chore

Chores are **recurring maintenance** with a definite disposition per finding.
This is not that. It is an **on-demand deep procedure** producing judgments that
route to corrective work — the same shape as `gz-tech-debt-review` and
`gz-foundation-triage`. There is no per-run tidying it generates and no ratchet
it holds; forcing it into a chore would label design work as maintenance.

## Position in the health-audit method

The fourth and most expensive axis. Run it **after** the mechanical axes, never
before — they exist to aim it. See `gz-health-audit` for the ordering and why it
is load-bearing.

| Axis | Surface | Cost |
|---|---|---|
| Conformance + validator reachability | `control-surface-validator-reachability` chore | mechanical |
| Ledger vocabulary inertness | `ledger-vocabulary-inertness` chore | mechanical |
| Doctrine coherence | `control-surface-rule-conflicts` chore | medium |
| **Intent trace** | **this skill** | **deep, sampled, human judgment** |

## Do not trace the whole corpus

The ADR corpus is large enough that an exhaustive pass is not a budget anyone
will spend twice, and an unaimed pass spends it on whichever ADR happened to be
open. **Sample by risk signal**, drawn from the mechanical axes:

| Signal | Source | Why it predicts intent drift |
|---|---|---|
| Parked / withdrawn / repudiated / uncovered-accepted OBPIs | `uv run gz adr status <ADR-ID>` | a decomposition that did not complete is where declared intent most often outran delivery |
| A declared mechanism measured inert | Pass E and the ledger-inertness chore | the ADR shipped a surface; nothing exercises it |
| Heavily cited foundation ADRs | `rg` across `.gzkit/rules/**`, `docs/governance/**` | drift here propagates to everything citing it |
| Failing `gz validate --evaluation-justify-binding` | that scope | the ADR's own scorecard already says a dimension is below threshold |

Take the intersection first — an ADR carrying two or more signals is the
highest-yield trace in the corpus.

## Procedure

### 1. Build the sample

Gather candidates from the signals above. Record the sample and the signal that
selected each ADR **before** reading any of them — a sample chosen after reading
is not a sample, it is a conclusion.

### 2. Read the ADR's declared intent

For each ADR, read `## Decision` and `## Acceptance Criteria` (or its Feature
Checklist). Extract the intent as a list of claims about what will exist and
what it will do. Do not read the implementation yet.

```bash
uv run gz context <ADR-ID>          # body + OBPI briefs + covering tests + rules
uv run gz adr status <ADR-ID>       # Layer-2 lifecycle and landed count
```

### 3. Read what shipped

Read the actual surface — the code, the CLI output, the validator, the rule
file. **Run it.** DO IT RIGHT #4 and Invariant 6g both bind: verify observed
behaviour, not assumed behaviour; paste real output.

The most common false pass at this step is reading a *test* and concluding the
behaviour exists. A test that runs against a fixture proves the fixture, not the
repository — a failure mode this repo has already shipped (see Pass E's
§ Background, where three validators failed the live tree while their tests were
green).

### 4. Apply the intent test, claim by claim

For each extracted claim: does the shipped surface fulfil it?

| Verdict | Meaning | Route |
|---|---|---|
| **Fulfilled** | the claim is met, observed | nothing |
| **Correction** | the surface exists but does not fulfil the declared intent | corrective work **under the owning ADR** |
| **Enhancement** | the surface fulfils the intent and could merely be tighter | out of scope for this skill |

When uncertain between correction and enhancement, it is a **correction** — the
default the operator's canon sets, precisely because the opposite default is how
unfinished work gets relabelled as satisfactory.

### 5. Route

- **Correction, and it fits `AGENTS.md` § Defect-fix routing thresholds** —
  direct fix, `fix(<scope>): … (GHI #N)`, citing the owning ADR.
- **Correction, larger than the thresholds** — file through `/ghi-author`
  (never `gh issue create`), body naming the ADR, the declared claim verbatim,
  and the observed surface.
- **Never** author a new ADR from a trace finding. The owning ADR already exists;
  that is what makes the gap a correction.

## Boundaries

- **Diagnosis and routing only.** This skill does not implement the corrections
  it finds.
- **Never widens the sample mid-run.** A signal discovered while tracing goes on
  the next run's candidate list, not this one's. Widening mid-run is how a
  sampled audit becomes an unbounded one and stops finishing.
- **Never authors a new ADR, pool or otherwise.**
- **Quote the declared claim verbatim.** Invariant 6h — a narrative
  reconstruction of what an ADR "basically said" is exactly the drift this skill
  exists to detect, reproduced by the detector.

## Sequencing caution

A trace run is deliverable-bearing work and will compete with the active
campaign, which is Magna Carta (`AGENTS.md` § Operator Doctrine). The sample's
top entries are frequently the ADRs the campaign is already sequenced around.
**Surface the collision to the operator and get a ruling before running** — do
not resolve it unilaterally (Behavior Rule 9).

## Related

- `gz-health-audit` — the router that owns the ordering and the budget rule
- `gz-adr-audit` — Gate-5 audit of one ADR's own evidence chain (different question: does the evidence support closeout, not does the surface fulfil intent)
- `gz-tech-debt-review` — debt across probes; this skill is intent, not debt
- `AGENTS.md` § Operator Doctrine — correction vs enhancement, verbatim

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.