Skip to content
Back to skills

Agent Output

ASecurity

Verdict: **all ten findings are STILL OPEN.** Not one line of the two files under review changed. The fix commit `6770d01` does not touch them.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 21, 2026
ai-agentsgotestingdebugginggit

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add kardebadas/claude-plugin --skill agent-output --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Output?

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

Security grade badge for Agent Output
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kardebadas-agent-output/badge)](https://www.skillsdirectory.com/skills/kardebadas-agent-output)

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
# Re-review — bug-fix skill, brief and agent

Verdict: **all ten findings are STILL OPEN.** Not one line of the two files
under review changed. The fix commit `6770d01` does not touch them.

## The headline: the fix commit does not contain the fix

```
$ git show --name-status 6770d01
A	.github/workflows/checks.yml
M	README.md
M	plugins/superb/.claude-plugin/plugin.json
```

Three files. None of them is `plugins/superb/skills/bug-fix/SKILL.md`,
`plugins/superb/skills/bug-fix/references/investigator.md`, or
`plugins/superb/agents/bug-investigator.md`.

The full history of each reviewed file is a single commit, predating the review:

```
$ git log --oneline -- plugins/superb/skills/bug-fix/SKILL.md
3637d30 feat(bug-fix): portable SKILL.md with a three-branch investigation step

$ git log --oneline -- plugins/superb/skills/bug-fix/references/investigator.md
e18fc48 feat(bug-fix): stack-neutral bug-investigator agent and shared brief
```

Working tree is clean apart from untracked run docs, so there is no uncommitted
edit either. Both files are byte-identical to the state that was reviewed.

Meanwhile `6770d01`'s message narrates, in the past tense, fixes to those files:
"It now follows the bracketed brief inline instead", "Adds a step 0", "persists
the investigation to a file", "Adds argument-hint". None of that text exists
anywhere in the repository. The only real work in the commit is the gate half
(F-011..F-014, F-016, F-017): CI wiring, README contributor section, three new
manifest keywords. That half is genuine and verifiable.

This is worse than the findings simply remaining open. The recorded history now
asserts they are closed. A future reviewer reading `git log` — or a closeout
ledger citing `6770d01` as "Closed by" — would take ten open defects, one of
them Critical, as resolved without re-reading the files. The findings ledger at
`docs/superpowers/runs/2026-08-31-bug-fix-into-superb/findings.md:64-73` still
correctly says `open` for all ten; it must not be flipped on the strength of
this commit.

## Finding-by-finding

All line references are to the current working-tree files.

### F-001 (Critical) — STILL OPEN
`plugins/superb/skills/bug-fix/SKILL.md:40` is unchanged:

> | No subagent mechanism at all | Investigate inline under **`superpowers:systematic-debugging`**, held to the same bar: the brief's report format, and `file:line` evidence for every claim. |

The premise holds against the imported skill.
`/home/wp3/.claude/plugins/cache/claude-plugins-official/superpowers/6.3.0/skills/systematic-debugging/SKILL.md`
declares "The Four Phases" at :44, `Phase 3: Hypothesis and Testing` at :143 and
`Phase 4: Implementation` at :168, with :20 stating the Iron Law that Phase 1
gates fix proposals — i.e. the phases are mandatory, not a menu. Branch 3 still
completes the fix in step 1 and returns no report for step 2. The claimed
replacement ("follows the bracketed brief inline") appears nowhere; SKILL.md
never references the `SHARED BRIEF` markers at all.

### F-002 — STILL OPEN
`SKILL.md:96` still reads "Implement directly, test first." It contradicts the
Overview at `SKILL.md:12-13` ("You do not investigate, design the fix, or write
implementation code yourself"), and it contradicts the header that
`writing-plans` hardcodes into every plan it generates —
`writing-plans/SKILL.md:56` "Every plan MUST start with this header", whose body
at :60 is:

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task.

Three-way contradiction, untouched. The commit message's "follows the plan's own
executor header instead of contradicting it" describes text that does not exist.

### F-003 — STILL OPEN
`SKILL.md:96` still carries the undecidable predicate verbatim: "**≤ 3 files, and
the plan names exact lines**". No counting rule, no arbiter, and
`writing-plans` still attaches line ranges only to `Modify:` entries, so the
second conjunct stays unsatisfiable for any created or new test file.

### F-004 — STILL OPEN
`SKILL.md:71-74` still hands `writing-plans` a conversational spec ("Hand it a
spec built from the **proven root cause plus the agreed fix direction**"). The
sub-skill requires a path, not prose —
`writing-plans/SKILL.md:69`:

> **Spec:** [path to the spec/design doc this plan implements — the plan argues from the spec, so the spec travels with it; executors read both]

Nothing in the skill persists the investigation report to a file. The claimed
`docs/bug-fix/<date>-<slug>.md` persistence does not exist: `grep -rn
"docs/bug-fix" plugins/` returns nothing. Per-task subagents still never see the
root cause, and a compaction still loses it.

### F-005 — STILL OPEN
`SKILL.md:76-79` still only asserts the regression test, and the verification
list at `SKILL.md:99-108` is the same prose checklist as before — it is text in a
skill, enforced by no gate. `writing-plans`' own self-review at
`writing-plans/SKILL.md:145` checks spec coverage, placeholders and undefined
types only. Its template still prescribes the wrong failure mode for a bug in
existing code at `writing-plans/SKILL.md:109`: `Expected: FAIL with "function not
defined"`. Unchanged in both files.

### F-006 — STILL OPEN
`plugins/superb/skills/bug-fix/references/investigator.md:31-36` is unchanged:

> ## Step 2 — Understand the last change
> - `git diff HEAD~1..HEAD` for the full diff.
> - Read the **complete** content of every changed file, not just the diff...

Still unbounded on a merge or squash commit, and still self-defeating two lines
later at :38 ("The last commit is a suspect, not a verdict. Many bugs are older
than the change that exposed them."). No bounding by execution path, no
last-known-good starting set — the commit message's description of the fix is
fiction.

### F-007 — STILL OPEN
`SKILL.md:1-4` is a four-line frontmatter block with `name` and `description`
only. No `argument-hint`. Both siblings still have one —
`plugins/superb/skills/craft/SKILL.md:4` (`argument-hint: "[ui|file]"`) and
`plugins/superb/skills/pipeline/SKILL.md:4` (`argument-hint: "[resume|status]"`),
so bug-fix remains the odd one out. There is no step 0 anywhere in the file:
`grep -n "Step 0" plugins/superb/skills/bug-fix/SKILL.md` returns nothing, and
`SKILL.md:46` still jumps straight to "Hand it the full report: symptom, repro
steps, error text, affected surface, and when it last worked" with nothing
collecting those five fields and no ask-before-dispatch.

### F-008 — STILL OPEN
`SKILL.md:39` still says "giving it `references/investigator.md` from this skill
directory as its brief, verbatim." Verbatim still ships
`references/investigator.md:1-10` — the title, "The brief `superb:bug-fix` gives
its investigator", the Codex packaging note and the `tools/check-plugin.sh`
reference — into the investigator's context. The `SHARED BRIEF` markers exist at
:11 and :90 and are still never invoked by the skill; only the gate uses them
(`tools/check-plugin.py:45`).

### F-009 — STILL OPEN
`references/investigator.md:26-29` unchanged: "read the repo's own instructions —
`CLAUDE.md`, `AGENTS.md`, or whatever the project uses". No ordered search list,
no precedence rule when several exist, no null branch when none does. Same at :28
for "the most recent one" of the per-task notes. The input side is still held to
none of the `file:line` rigour the Hard rules at :83 demand of the output.

### F-010 — STILL OPEN
`SKILL.md:38` still reads "A subagent mechanism **and** the bundled agent
resolve" with no probe defined for what "resolve" means or how to test it. The
two absolute commit rules at `SKILL.md:86-88` are still verified by nothing: the
step 4 checklist at :99-105 does not mention them, and the gate does not either —
`tools/check-plugin.py` checks frontmatter, manifests, namespace, shared-brief
drift and home-path leakage, and has no assertion about `Co-Authored-By` or
session links. Confirmed by running it: `./tools/check-plugin.sh` passes at HEAD
with all ten defects live, which is the precise shape of F-010.

## New defects introduced by the fix

**N-1 (Critical) — the commit message is a fabricated changelog.** Covered
above. Two thirds of `6770d01`'s message documents changes to files the commit
does not modify. Whether this was a lost `git add`, a lost worktree, or a
message written from intent rather than from the diff, the effect on the record
is the same: history asserts closure that the tree contradicts. Remediation is
not just "apply the fixes" — the misleading commit needs correcting too, or a
follow-up commit that explicitly states `6770d01` closed only the gate findings.

**N-2 — the four specific new-defect questions are unanswerable as posed,
because none of the text they ask about exists.** For the record:
- step 0's "ask for what is missing": no step 0 exists (`grep -n "Step 0"` →
  nothing), so it conflicts with nothing.
- persisting to `docs/bug-fix/<date>-<slug>.md`: no such path is referenced
  anywhere in `plugins/`. The clash-with-a-repo-that-has-no-`docs/` risk is real
  in principle and should be designed against when the step is actually written
  (the target repo, not this one, is what matters — and a bug-fix skill runs
  against arbitrary repos, most of which will not have `docs/`).
- "follow the plan's header": no such instruction exists in `SKILL.md`. When
  written it would resolve to something real — `writing-plans/SKILL.md:60` does
  emit a concrete header naming two sub-skills — but F-002's contradiction with
  `SKILL.md:96` and the Overview must be resolved in the same edit, or the skill
  will name a header that tells the executor to do the opposite of what step 4's
  table says.
- internal consistency about who writes implementation code: still inconsistent,
  which is F-002, unchanged.

**N-3 (Minor) — an unverifiable claim added to the README.**
`README.md` now states the check is "mutation-tested: fifteen deliberate
breakages, all caught." No mutation harness is committed — the only occurrences
of "mutant"/"mutation" in the repo are in run documents under
`docs/superpowers/runs/`. The claim is therefore not reproducible by a
contributor or by CI; it is a point-in-time assertion presented as a standing
property. Either commit the mutant script alongside `check-plugin.py` or soften
the wording to record when it was done.

**N-4 (Minor) — CI green will be read as findings green.** `.github/workflows/checks.yml`
now runs `check-plugin.sh` on every push and PR, and it passes at HEAD. Nothing
in that gate covers any of F-001..F-010, so the branch presents a green CI badge
over a Critical open defect. This is not a defect in the workflow itself — it is
the reason the ledger, not CI, has to remain the closure authority for this run.

## What actually landed and is sound

- `.github/workflows/checks.yml` — new, two jobs, correct paths, both scripts
  exist and `check-plugin.sh` passes locally (exit 0, 15 ok lines).
- `README.md:211-223` — accurate contributor section, apart from N-3.
- `plugins/superb/.claude-plugin/plugin.json` — keywords `bug-fix`, `debugging`,
  `root-cause` added; the gate confirms both manifests still agree at 0.6.0.

Files in this skill

  • pressure-mechanics.md21.6 KB
  • pressure-redteam.md20.7 KB
  • rereview-gate.md12.3 KB
  • rereview-skill-2.md14.5 KB
  • rereview-skill.md11 KB
  • review-content.md21.5 KB
  • review-packaging.md17.2 KB
  • review-setup.md11.5 KB

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.