soap
Run the full diagnostic pipeline on a foreign system. Intake → Diagnose → Prescribe, with mandatory human gates between each step. Skipping a step is not allowed.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run the full diagnostic pipeline on a foreign system. Intake → Diagnose → Prescribe, with mandatory human gates between each step. Skipping a step is not allowed.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Filter recent Hacker News for live threads on June's topics and hand him the list. Separately, flag the rare subset where work he has already done settles a specific quoted claim, and draft that comment as a plain argument with no link to his own writing. Use when June asks to check HN or find threads worth reading or commenting on.
Scan blog posts for AI writing tics and missed opportunities for human voice. Reports subtractions (AI patterns to remove) and additions (wordplay, arc, and claims to strengthen).
Poll June's Hacker News feeds, report what is new since the last run, and idempotently arm a background watch for replies to his comments. State persists in ~/Documents/sweep/ so it survives across sessions. Use when June asks what is new on HN, whether anyone replied, or to start watching a thread.
Argument-level compression by a strengthened absence test (does the argument stand with the same force, clarity, evidence, scope, pacing, and misreading-resistance?). Removes passages that fail it (self-referential cruft, cross-section restatement, self-recap, re-derivation, scaffolding, expired reader-orientation, stakes inflation, inert hedges, redundant examples); grafts good rhetoric onto an adjacent essential point rather than deleting. Idempotent. The structural cousin of /tighten (word-level) and /not-but (negation).
Audit a technical candidate's resume/CV by verifying its claims against the public contribution graph instead of taking the text at face value. Sorts every claim onto the self/peer/world attestation lattice, applies a cost-and-stake filter so cheap proxies (stars, downloads, backlinks) don't count, runs LIVE checks (GitHub, arXiv, package registries, CVEs), and reports two separate axes — merit (staked acceptance of the candidate's specific work) and attention (timestamped output) — plus a verifiability score in [0,1]. For technical recruiters and hiring managers. Invoke when given a candidate — a GitHub handle, a resume/CV, an arXiv author, a personal site — and asked to verify, audit, vet, or check their claims. Runs at two depths — a quick triage scan or a deep per-claim audit — and elicits which. Checks the provenance of a personal site or self-hosted resume (Internet Archive + git history) as an un-backdatable anti-tailoring anchor. Needs tool access (Bash/curl or WebFetch).
Find and defuse "not X but Y" / "isn't X; it's Y" / "X — not Y" constructions. Deterministic grep for detection (no LLM blind spot), the not-but subagent for triage. Split-or-cut tail negations ("X, not Y") aggressively — promote the point to its own sentence or delete it; recast in place only mid-clause "not X but Y" that genuinely can't be split; keep just the rare iconic thesis line literal.
| name | soap |
| description | Run the full diagnostic pipeline on a foreign system. Intake → Diagnose → Prescribe, with mandatory human gates between each step. Skipping a step is not allowed. |
| argument-hint | <system-name-or-url> |
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash, Agent, Skill, WebFetch, WebSearch |
Run Intake → Diagnose → Prescribe on a foreign system. Each step produces a file. Each transition requires human judgment. The pipeline does not skip steps.
Run /intake <target>. Intake asks development stage first, then reads sources, translates vocabulary, fans out on thin coverage, files claims, and elicits human judgment on ambiguous mappings. Development stage and constraints recorded in S.md metadata propagate automatically to Diagnose and Prescribe — they are not re-elicited at each gate.
Gate: Intake includes its own elicitation. S.md is not complete until the human has answered the mapping questions. Do not proceed to Step 2 until S.md has an ## elicitation section with oracle reliability ≥ 50%.
Verify before advancing:
stage: (development stage)Run /diagnose. Diagnose reads S.md, builds the tower table, draws architecture SVGs, substantiates mappings against code, and identifies gaps. Produces O.md.
Gate: Diagnose stops after writing O.md and presents checkpoint questions to the human. The human's answers determine the causal chain direction, distinguish blind spots from design choices, and identify anything missing from the tower table.
Verify before advancing:
Diagnose writes A.md incorporating the human's answers from Step 2. Role-by-role assessment, causal chain, gap summary.
Gate: Present A.md to the human. Ask: "Does this assessment match your understanding? Is the root cause correctly identified?"
Verify before advancing:
Run /prescribe. Prescribe reads A.md, consults the Parts Bin, evaluates candidates, and triages by urgency (Critical / Structural / Rehabilitative).
Gate: Present P.md to the human. Ask: "Does the triage order match the system's actual constraints? Is the root intervention correct, or does it address a symptom?"
Verify before advancing:
SOAP complete. Four files in soap/: S.md, O.md, A.md, P.md. Each one traces back to the previous. Every human gate is recorded in the files (elicitation in S.md, checkpoint answers in A.md, triage confirmation in P.md).
No skipping. Step N does not start until Step N-1 is verified. If the human is unavailable, the pipeline stops at the current gate.
No backfilling. If Step 2 reveals that S.md is missing something, go back to Step 1 and update S.md. Do not patch O.md to compensate.
One question at a time at every gate. Don't dump the full checkpoint quiz.
Record everything. Every human answer goes into the relevant file. A reader should reconstruct the full decision trail from the SOAP files alone.
Log every skill run. Append a one-liner to soap/surprises.md when each skill completes, even if nothing surprising happened. This grounds the surprises in temporal order.
## Run log
- 2026-04-01 14:00 — /intake on Soar: 90 claims, 6 sources, 7 ambiguous mappings
- 2026-04-01 14:30 — /diagnose on Soar: 5 gaps across 3 stack levels, root cause found
- 2026-04-01 15:00 — /prescribe on Soar: 5 prescriptions, 3 triage tiers
Log surprises. Append to soap/surprises.md whenever anything unexpected happens: a skill spec that needed changing, a mapping that broke assumptions, a codex finding that contradicted the pipeline's output, a human answer that redirected the diagnosis. Format:
### [step] [timestamp] — [one-line summary]
**Expected:** what the skill/pipeline predicted
**Found:** what actually happened
**Action:** what changed (skill spec update, backtrack, new open question)
Surprises are the I-frames for a future consolidation pass. The run log provides the P-frames between them. Together they reconstruct the full episode.
Each skill converges individually (self-check loop, hard stop at 10 passes). Codex sniffs before every human gate, fixing obvious issues so the human only Attends ambiguities. If codex is unavailable, the agent performs a self-review pass applying the same criteria (framework leaks, weak provenance, miscalibrated confidence). Log which reviewer was used or skipped so the human knows the Filter strength. The composed pipeline converges because:
Running /soap twice on the same system with the same human answers produces the same four files.