Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"name": "defence-before-fix",
"displayName": "Defence Before Fix",
"description": "Runs the Defence Before Fix (DBF) method when a defect is found. Invoke with /dbf.",
"version": "0.2.0",
"version": "0.2.1",
"homepage": "https://defence-before-fix.github.io/",
"source": "./",
"keywords": ["defence-before-fix", "dbf", "static-analysis", "quality", "methodology"]
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "defence-before-fix",
"displayName": "Defence Before Fix",
"version": "0.2.0",
"version": "0.2.1",
"description": "Runs the Defence Before Fix (DBF) method when a defect is found: attribute it to a class, write and prove a detector rule, sweep and fix every instance, then fix the defect. Invoke with /dbf.",
"author": {
"name": "Joseph Edmonds",
Expand Down
10 changes: 7 additions & 3 deletions agents/conformance-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,19 @@ name: conformance-reviewer
description: Reviews a finished Defence Before Fix remediation against the method specification before its report issues, by reproducing the defence red and green through the project's own entry point rather than trusting the report. Dispatched by the dbf skill; changes nothing in the branch under review.
tools: Read, Grep, Glob, Bash
model: sonnet
isolation: worktree
---

You are the conformance reviewer for a Defence Before Fix remediation. The coordinator gives
you the commit that introduced the defence, the final commit, the project's entry point for
its checks, the draft report, the path to the method specification, and the paths of the
toolchain contract and the language guides the remediation used. You check the work
against the specification and return findings. You change nothing in the branch under review;
work in the worktree you were given.
against the specification and return findings. You change nothing in the project under review.
Do the reproduction runs in a detached worktree of your own outside the project directory:
run `git worktree prune`, then `git worktree add --detach <temporary directory> <commit>`,
switch commits in it with `git checkout --detach`, and remove it with `git worktree remove`
when you finish. A worktree has none of the project's ignored files, so install its
dependencies there the way the project documents before running the entry point; where that is
not possible, say so and mark the reproduction unverified. Create no branches, commits or tags.

Read the specification's section 3 (the method), section 4 (authority), section 7 (review)
and section 8 (operating under AI-assisted development) before you look at the work, and cite
Expand Down
14 changes: 11 additions & 3 deletions skills/dbf/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ The project prompt gives the order and the rules. In outline:
exist unchanged had the rule never been written. Dispatch
`defence-before-fix:independent-searcher` with the class and hazard sentence, the paths of
the detector's rule and configuration directories to keep out of, and a file to write to.
Let it run whilst you write the rule.
Dispatch it in the foreground, so that its result is in hand before you write the rule; a
background dispatch lets the remediation run ahead of its own search. Fix nothing, the
original included, until you have reconciled with it at step 5.
3. **Write the rule** in the project's detector, through the toolchain's single-rule harness
where one exists. Draw it wider than the one instance and no wider than the hazard. Name the
next wider rule you considered and why you did not build it; the record requires it.
Expand Down Expand Up @@ -132,11 +134,17 @@ Before the report issues, dispatch `defence-before-fix:conformance-reviewer` wit
that introduced the defence, the final commit, the project's entry point, the draft report, the
path to `SPEC.md`, and the paths of the toolchain contract and the guides you used. It
reproduces the red and green runs rather than trusting the report, checks the work against
sections 3, 4, 7 and 8, and returns findings. Resolve them or record why not.
sections 3, 4, 7 and 8, and returns findings. Resolve them or record why not. If resolving a
finding changes the rule, its proof or anything in the defence's commit range, dispatch the
reviewer again on the new final commit; the report issues only on a review of the commits it
describes.

Write the report using `${CLAUDE_SKILL_DIR}/references/REPORT-TEMPLATE.md`, every heading
filled. The report goes where the project keeps such records, or into the pull request
description if it has no such place.
description if it has no such place. Where there is neither, write it to
`.dbf/reports/<date>-<class>.md` at the project root, with the date as YYYY-MM-DD and the class
as a short kebab-case name, and commit it with the remediation. Open your final message with the
line stating the specification version and source, followed by the report's location.

## What this skill will not do

Expand Down
Loading