agentsclimarketplace

Review spec

Skill 0xdeafcafe/skills/skills/review-spec

Use when the user says "review this spec", "/review-spec", "check for overlap", "is this spec consistent with our ADRs", or asks to validate a new Gherkin spec or ADR against the existing corpus before it lands. Searches all .feature files and ADRs in the repo, flags duplicate scenarios, conflicting decisions, overlapping feature areas, missing ADR cross-links, and contradictions with the base architecture. Read-only - produces a report, never modifies files.From its SKILL.md

Install
npx -y skills add 0xdeafcafe/skills --skill review-spec

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.7 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

review-spec - find overlap and conflicts before they ship

A spec or ADR is most useful when it's the only document making its claims. Two specs that cover the same feature area drift; two ADRs that contradict each other create silent ambiguity; a spec that ignores a relevant ADR ships behaviour that breaks an earlier decision.

review-spec reads a target spec or ADR (the one being reviewed) and audits the existing corpus around it. It surfaces:

  • Duplicates - scenarios already covered in another .feature file.
  • Overlaps - the new doc and an existing doc cover related ground in ways that will drift over time.
  • Conflicts - the new doc contradicts an existing ADR or another spec.
  • Missing cross-links - relevant ADRs not referenced; relevant specs not referenced.
  • Orphan decisions - the new doc relies on assumptions that should themselves be ADRs.

The skill is read-only. It writes nothing; it produces a report with file paths, line numbers, and quoted excerpts so the user can decide what to merge, split, or update.

Phase 0 - Identify the target

Resolve what's being reviewed. The skill accepts:

  • A path to a .feature file: /review-spec specs/order-cancellation.feature
  • A path to an ADR: /review-spec docs/adr/0042-order-cancellation.md
  • Nothing - review the most recently modified spec/ADR (git log -1 --name-only).
  • A PR context - review specs/ADRs added/modified in the current PR (gh pr diff --name-only).

For each target, read it in full first. You're going to compare every scenario, every keyword, every decision against the rest of the corpus - you need to know what's in scope.

Phase 1 - Build the corpus

Find every existing spec and ADR in the repo. These are what the target is compared against.

# All .feature files
fd --type f --extension feature . | grep -v node_modules

# All ADRs - broad search
fd --type f --extension md . docs/adr docs/architecture/decisions \
  docs/decisions docs/architecture adr 2>/dev/null \
  | grep -E '/[0-9]+|/ADR-' | head -100

# Fallback for non-standard locations
rg -l --type md '^# ADR-?\d+|^## *Status|^---\nstatus:' docs/ . 2>/dev/null | head -100

If the corpus is large (>100 docs), you do NOT need to read every one in full. Use targeted search (Phase 2) and only Read files that match a keyword from the target.

Phase 2 - Extract signals from the target

Pull out the things that anchor the comparison:

SignalHow to find it
Feature area / domain keywordsFeature: / Rule: titles, common nouns in scenarios.
Actor / roleAs a <role>, subjects of When steps.
External systemsSteps naming systems: "payment provider", "webhook", "queue".
State changesVerbs in Then steps: "is cancelled", "is refunded".

See references/finding-examples.md for the full signal table (incl. ADR-specific rows).

Build a list of 8-15 search keywords from these signals. These drive the corpus search.

Phase 3 - Search the corpus

For each keyword, find files that contain it:

rg -l --type md --type feature -i "<keyword>" \
  specs/ features/ docs/adr/ docs/architecture/ 2>/dev/null

Aggregate the hits. Files that hit multiple keywords are the most likely overlaps - prioritise reading those.

Read each candidate file (use tslsp outline if available, or Read selectively). Look for the five finding types below. See references/finding-examples.md for worked examples + report-quote formats for each.

Duplicates

A scenario in the target whose Given/When/Then shape matches a scenario in an existing file. Semantic match, not just textual.

Overlaps (feature-area drift)

Two files that cover the same feature area at different levels of abstraction or with subtly different terminology. They will drift.

Conflicts (with ADRs or other specs)

A scenario or decision that contradicts another (spec vs. ADR, ADR vs. ADR, or spec vs. spec). Highest severity. Surface with explicit quotes from both sides.

Missing cross-links

The target talks about things owned by an existing ADR / spec but doesn't link to it. Use the corpus to find ADRs that own the area the target touches; check whether the target references them.

Orphan decisions

The target makes an implicit architectural claim that isn't backed by an ADR (e.g. "customer can cancel via email" with no ADR for the channel choice).

Phase 4 - Build the report

Group findings by severity. Concrete, file-and-line specific, quotable.

review-spec audited <target> against <N> specs, <M> ADRs.

P0 Conflicts:        <quoted findings or "none">
P1 Duplicates:       <quoted findings or "none">
P2 Overlaps:         <quoted findings or "none">
P3 Missing links:    <file -> other-file pairs or "none">
P4 Orphan decisions: <line refs or "none">

Clean checks passed: <list>
Did not check:       <list with reason>

See references/finding-examples.md for the full template.

If there are zero findings, say so plainly. Don't fabricate findings to look thorough.

Phase 5 - Suggest follow-ups

For each finding, point at the fix-it skill: conflicts / orphan decisions -> /write-adr or /write-spec; duplicates -> consolidate; overlaps -> consolidate or clarify boundary; missing cross-links -> add manually (this skill doesn't edit).

Operating rules

  • Read-only. Never edits files; produces a report.
  • Don't fabricate. Findings need real quotes at real line numbers.
  • Severity is for prioritisation. P0 = correctness; P1-2 = maintainability; P3-4 = hygiene. Don't inflate.
  • Don't enforce taste. Different but reasonable verbs ("cancel" vs "abort") are a style note, not a P0.
  • Honour @deprecated tags. Skip from conflict checks; note as "deprecated, scheduled for removal".

Composing with other skills

  • /plan-change writes a fresh ADR + spec; run /review-spec after.
  • /backfill-feature writes a retroactive ADR + characterization spec; worth running /review-spec after that too to catch overlap with existing docs.
  • /write-spec, /write-adr - fix what review-spec surfaces.
  • /review-feature - run after /review-spec confirms the spec is coherent.

What ships with it: 1 file

5.4 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 326,750. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.