/second-pass-review
Independent audit of sanitized specs in workspace/output/. Three parallel LLM-based reviewer roles check structural leakage, content contamination, and behavioral completeness. Run AFTER Layer 5 sanitization, BEFORE implementation handoff.
$ npx -y skills add prime-radiant-inc/greenfield --skill second-pass-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/second-pass-review
Context preview
The summary Claude sees to decide when to auto-load this skill.
Independent audit of sanitized specs in workspace/output/. Three parallel LLM-based reviewer roles check structural leakage, content contamination, and behavioral completeness. Run AFTER Layer 5 sanitization, BEFORE implementation handoff.
SKILL.md
second-pass-review.SKILL.mdname: second-pass-review
description: Independent audit of sanitized specs in workspace/output/. Three parallel LLM-based reviewer roles check structural leakage, content contamination, and behavioral completeness. Run AFTER Layer 5 sanitization, BEFORE implementation handoff.
Second-Pass Review (Layer 6)
Sanitization is necessary but insufficient. The author of a sanitized spec can't reliably catch their own leaks — the same assumptions that let implementation details slip in during the rewrite also let them slip past a self-review. A fresh read, with no access to the raw analysis, catches drift the author missed.
Why This Exists
Sanitization alone misses contamination in predictable categories:
- **Structural leakage:** Module names in Part headers, cross-module dependency tables, module counts carried into the output
- **Content contamination:** Minified identifiers, line number references, IPC channel names, state-store selectors, internal filenames
- **Behavioral completeness:** Usually passes, because completeness is the easiest dimension to check
Root causes: 1. Sanitization agents copy-paste instead of rewriting 2. Gate 2 flags "zero leakage" but never defines what to look for 3. Grep patterns can't catch descriptive English identifiers 4. Without a second-pass review, authors can't catch their own blind spots
Audit Pipeline
digraph audit_pipeline {
rankdir=TB;
compound=true;
"Layer 5 sanitization complete" [shape=doublecircle];
"Audit PASS — proceed to implementation" [shape=doublecircle];
"STOP: Audit failed after 3 remediation attempts" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
subgraph cluster_specialist {
label="Parallel Specialist Reviewers (read every file, apply semantic checklists)";
style=dashed;
"structural-leakage-reviewer" [shape=box];
"content-contamination-reviewer" [shape=box];
"behavioral-completeness-reviewer" [shape=box];
}
subgraph cluster_generalist {
label="Parallel Deep-Read Generalists (4-5 files each, full contextual judgment)";
style=dashed;
"deep-read-auditor-1" [shape=box];
"deep-read-auditor-2" [shape=box];
"deep-read-auditor-N" [shape=box];
}
"Merge all audit reports" [shape=box];
"Any FAIL?" [shape=diamond];
"Dispatch targeted fix agents" [shape=box];
"Re-audit failing files" [shape=box];
"Attempts < 3?" [shape=diamond];
"Layer 5 sanitization complete" -> "structural-leakage-reviewer";
"Layer 5 sanitization complete" -> "content-contamination-reviewer";
"Layer 5 sanitization complete" -> "behavioral-completeness-reviewer";
"Layer 5 sanitization complete" -> "deep-read-auditor-1";
"Layer 5 sanitization complete" -> "deep-read-auditor-2";
"Layer 5 sanitization complete" -> "deep-read-auditor-N";
"structural-leakage-reviewer" -> "Merge all audit reports";
"content-contamination-reviewer" -> "Merge all audit reports";
"behavioral-completeness-reviewer" -> "Merge all audit reports";
"deep-read-auditor-1" -> "Merge all audit reports";
"deep-read-auditor-2" -> "Merge all audit reports";
"deep-read-auditor-N" -> "Merge all audit reports";
"Merge all audit reports" -> "Any FAIL?";
"Any FAIL?" -> "Audit PASS — proceed to implementation" [label="all PASS"];
"Any FAIL?" -> "Dispatch targeted fix agents" [label="any FAIL"];
"Dispatch targeted fix agents" -> "Re-audit failing files";
"Re-audit failing files" -> "Attempts < 3?";
"Attempts < 3?" -> "structural-leakage-reviewer" [label="yes"];
"Attempts < 3?" -> "STOP: Audit failed after 3 remediation attempts" [label="no"];
}Scope Rules
- **READ ONLY from `workspace/output/`** — auditors check what reached the output without cross-referencing the raw analysis
- Detailed reports with per-finding evidence are written to `workspace/raw/audit/` alongside other analysis artifacts
- Top-level summaries with PASS/FAIL verdicts are written to `workspace/output/audit/` so downstream consumers see review outcomes
- Summaries describe *outcomes*, not *source-derived examples*: a category PASS or FAIL with counts, plus overall PASS/FAIL. Per-finding details live in the raw-side reports for remediation; they don't belong in the implementer-facing output.
---
Why This Is LLM-Based, Not Grep-Based
Pattern matching is fundamentally the wrong tool for contamination detection. It produces both false positives and false negatives at rates that make it unreliable as a primary mechanism.
**False positives are pervasive.** Patterns that detect minified identifiers also match regex character classes, priority levels (P0, P1), and standard technology names. Patterns for code structure language match natural English ("cannot function without"). Patterns for module counts match legitimate behavioral quantities ("supports 3 output formats"). An auditor drowning in false positives either wastes time on noise or starts ignoring real findings.
**Contextual contamination is invisible to patterns.** No regex can detect:
- A legitimate-looking constant name that is actually an internal implementation detail
- Behavioral prose that describes code structure rather than observable behavior
- Tables that mix clean behavioral content with contaminated source references
- Feature flags and telemetry events that look like ordinary string constants
**Semantic judgment catches everything patterns miss.** The core test is simple: "Would an implementor encounter this exact string without seeing the source code?" An LLM can apply this test to every identifier, name, and reference in a spec, using contextual understanding that patterns lack. This catches minified symbols, internal function names, vendor-specific flags, and structural leakage — all with a single semantic criterion rather than a brittle pattern library.
LLM-Based Audit Protocol
All auditors — specialist r
Read more
name: second-pass-review description: Independent audit of sanitized specs in workspace/output/. Three parallel LLM-based reviewer roles check structural leakage, content contamination, and behavioral completeness. Run AFTER Layer 5 sanitization, BEFORE implementation handoff.
Second-Pass Review (Layer 6)
Sanitization is necessary but insufficient. The author of a sanitized spec can't reliably catch their own leaks — the same assumptions that let implementation details slip in during the rewrite also let them slip past a self-review. A fresh read, with no access to the raw analysis, catches drift the author missed.
Why This Exists
Sanitization alone misses contamination in predictable categories:
- **Structural leakage:** Module names in Part headers, cross-module dependency tables, module counts carried into the output
- **Content contamination:** Minified identifiers, line number references, IPC channel names, state-store selectors, internal filenames
- **Behavioral completeness:** Usually passes, because completeness is the easiest dimension to check
Root causes: 1. Sanitization agents copy-paste instead of rewriting 2. Gate 2 flags "zero leakage" but never defines what to look for 3. Grep patterns can't catch descriptive English identifiers 4. Without a second-pass review, authors can't catch their own blind spots
Audit Pipeline
digraph audit_pipeline {
rankdir=TB;
compound=true;
"Layer 5 sanitization complete" [shape=doublecircle];
"Audit PASS — proceed to implementation" [shape=doublecircle];
"STOP: Audit failed after 3 remediation attempts" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
subgraph cluster_specialist {
label="Parallel Specialist Reviewers (read every file, apply semantic checklists)";
style=dashed;
"structural-leakage-reviewer" [shape=box];
"content-contamination-reviewer" [shape=box];
"behavioral-completeness-reviewer" [shape=box];
}
subgraph cluster_generalist {
label="Parallel Deep-Read Generalists (4-5 files each, full contextual judgment)";
style=dashed;
"deep-read-auditor-1" [shape=box];
"deep-read-auditor-2" [shape=box];
"deep-read-auditor-N" [shape=box];
}
"Merge all audit reports" [shape=box];
"Any FAIL?" [shape=diamond];
"Dispatch targeted fix agents" [shape=box];
"Re-audit failing files" [shape=box];
"Attempts < 3?" [shape=diamond];
"Layer 5 sanitization complete" -> "structural-leakage-reviewer";
"Layer 5 sanitization complete" -> "content-contamination-reviewer";
"Layer 5 sanitization complete" -> "behavioral-completeness-reviewer";
"Layer 5 sanitization complete" -> "deep-read-auditor-1";
"Layer 5 sanitization complete" -> "deep-read-auditor-2";
"Layer 5 sanitization complete" -> "deep-read-auditor-N";
"structural-leakage-reviewer" -> "Merge all audit reports";
"content-contamination-reviewer" -> "Merge all audit reports";
"behavioral-completeness-reviewer" -> "Merge all audit reports";
"deep-read-auditor-1" -> "Merge all audit reports";
"deep-read-auditor-2" -> "Merge all audit reports";
"deep-read-auditor-N" -> "Merge all audit reports";
"Merge all audit reports" -> "Any FAIL?";
"Any FAIL?" -> "Audit PASS — proceed to implementation" [label="all PASS"];
"Any FAIL?" -> "Dispatch targeted fix agents" [label="any FAIL"];
"Dispatch targeted fix agents" -> "Re-audit failing files";
"Re-audit failing files" -> "Attempts < 3?";
"Attempts < 3?" -> "structural-leakage-reviewer" [label="yes"];
"Attempts < 3?" -> "STOP: Audit failed after 3 remediation attempts" [label="no"];
}Scope Rules
- **READ ONLY from `workspace/output/`** — auditors check what reached the output without cross-referencing the raw analysis
- Detailed reports with per-finding evidence are written to `workspace/raw/audit/` alongside other analysis artifacts
- Top-level summaries with PASS/FAIL verdicts are written to `workspace/output/audit/` so downstream consumers see review outcomes
- Summaries describe *outcomes*, not *source-derived examples*: a category PASS or FAIL with counts, plus overall PASS/FAIL. Per-finding details live in the raw-side reports for remediation; they don't belong in the implementer-facing output.
---
Why This Is LLM-Based, Not Grep-Based
Pattern matching is fundamentally the wrong tool for contamination detection. It produces both false positives and false negatives at rates that make it unreliable as a primary mechanism.
**False positives are pervasive.** Patterns that detect minified identifiers also match regex character classes, priority levels (P0, P1), and standard technology names. Patterns for code structure language match natural English ("cannot function without"). Patterns for module counts match legitimate behavioral quantities ("supports 3 output formats"). An auditor drowning in false positives either wastes time on noise or starts ignoring real findings.
**Contextual contamination is invisible to patterns.** No regex can detect:
- A legitimate-looking constant name that is actually an internal implementation detail
- Behavioral prose that describes code structure rather than observable behavior
- Tables that mix clean behavioral content with contaminated source references
- Feature flags and telemetry events that look like ordinary string constants
**Semantic judgment catches everything patterns miss.** The core test is simple: "Would an implementor encounter this exact string without seeing the source code?" An LLM can apply this test to every identifier, name, and reference in a spec, using contextual understanding that patterns lack. This catches minified symbols, internal function names, vendor-specific flags, and structural leakage — all with a single semantic criterion rather than a brittle pattern library.
LLM-Based Audit Protocol
All auditors — specialist r
Showing the first part of this file.
Reverse engineer clean behavioral specs from any codebase. Greenfield reads source code, documentation, SDKs, runtime behavior, and binaries, then produces behavioral specifications, test vectors, acceptance criteria, and a full provenance trail.
Repo: prime-radiant-inc/greenfield
Other skills on greenfield.
- /analysis-pipeline
Reverse engineering - multi-source product intelligence analysis with provenance tracking. Master methodology for all analysis agents.
Open skill - /autonomous-discovery
Layer 1 intelligence source discovery - auto-detect available sources, search for public information, negotiate with user, produce inventory manifest
Open skill - /behavioral-spec-writing
Layer 3 deep documentation methodology. Per-module behavioral specifications, external and behavioral integration contracts, behavior documentation, end-to-end user journey analysis. Transforms Layer 2 synthesis into implementable behavioral specifications. Loaded by the
Open skill - /binary-analysis
Layer 1 methodology for extracting behavioral intelligence from compiled binaries, bytecode archives, managed assemblies, and bundled applications. Covers artifact identification, string extraction strategy, decompilation workflows, provenance requirements, and handoff to source
Open skill - /community-intelligence
Layer 1 skill for community intelligence gathering. Search channels, extraction methodology, consensus analysis, version-aware behavioral changes, structural contamination guard. Loaded by the analyzer agent for community intelligence gathering.
Open skill - /container-execution
Infrastructure skill for containerized target execution. Runtime detection, container lifecycle, security restrictions, interaction patterns.
Open skill

