forge
Turn a spec into a clean PR with no human intervention. Runs Volley (sharpen spec) → Merge (implement) → Hunt (verify) → Volley (clean PR) as a single pipeline.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Turn a spec into a clean PR with no human intervention. Runs Volley (sharpen spec) → Merge (implement) → Hunt (verify) → Volley (clean PR) as a single pipeline.
用 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 | forge |
| description | Turn a spec into a clean PR with no human intervention. Runs Volley (sharpen spec) → Merge (implement) → Hunt (verify) → Volley (clean PR) as a single pipeline. |
| argument-hint | <spec-or-path> [--build CMD] [--test CMD] |
| allowed-tools | Read, Edit, Write, Grep, Glob, Bash, Agent |
Volley → Merge → Hunt → Volley. No human checkpoint between steps.
Forge accepts a spec from any source:
soap/P.md or a path to any prescription document. Richest input: algorithm candidates, implementation sketches, substantiated claims..md file containing a spec, feature request, or problem statement.If no argument is given, forge checks for soap/P.md and uses it if present. Otherwise it fails with a usage hint.
Forge infers build and test commands from the project root unless overridden:
| Marker | Build | Test |
|---|---|---|
Makefile | make | make test |
package.json | pnpm build | pnpm test |
mix.exs | mix compile | mix test |
Cargo.toml | cargo build | cargo test |
go.mod | go build ./... | go test ./... |
pyproject.toml | uv build | uv run pytest |
Override with --build CMD and --test CMD in the argument. When overridden, use those commands verbatim — no inference.
Preflight. Before spending agent time, verify forge has everything it needs. Check each item and report a summary to the user. If any item is missing or ambiguous, ask — don't guess.
Checklist:
git status must be clean. Forge creates branches and commits; uncommitted work would get tangled.If all items pass, print the resolved config (spec source, build cmd, test cmd, scope strategy) and proceed. No confirmation needed — the checklist is the gate.
Volley (sharpen). Take the spec and sharpen it into testable claims. Converge in two rounds — if the spec doesn't stabilize, it was underspecified (fail back to human).
Hunt (spec). Before writing any code, hunt the spec itself with codex.
A spec bug that survives review propagates through every downstream step.
Merge (implement). Blind-blind-merge. Two models (opus + codex), same spec, separate directories. Compare implementations, pick the structurally stronger one per component, synthesize. See Merge Tactics below.
Hunt (code). Codex hunt against the merged implementation:
/bug-hunt): adversarial codex review iterated to convergence. See the bug-hunt skill for the full protocol.If a bug traces back to a spec defect that survived step 2, fix the spec first, then re-merge from the corrected spec rather than patching the implementation.
Volley (clean). Review the implementation against the spec. Clean up naming, remove dead code, ensure tests pass. Converge in two rounds. The output is a PR-ready branch.
Two agents (opus + codex), same spec, same scope. Each writes to a separate directory. Compare, pick the better design per component, synthesize into one.
opus ──→ dir-a/ ──┐
├──→ compare ──→ merge
codex ──→ dir-b/ ──┘
Opus and codex are the implementers.
When the spec has a clean boundary between scopes (e.g. server-side vs client-side, API vs UI), split into two independent specs and run blind-blind on each scope. Four agents total, two per model.
opus ──→ server (/tmp/…-opus-server) ──┐
codex ──→ server (/tmp/…-codex-server) ──┤──→ compare server ──┐
├──→ merge all
opus ──→ client (/tmp/…-opus-client) ──┤──→ compare client ──┘
codex ──→ client (/tmp/…-codex-client) ──┘
When to use split-scope: the spec defines distinct modules with a documented interface between them (PubSub topics, API endpoints, shared data structures). Each scope's agents can assume the other scope's API exists without implementing it.
Cross-scope bugs: the per-scope comparisons catch bugs within each scope (TOCTOU races, missing guards, wrong patterns). Bugs that only emerge at the integration boundary (mismatched return types, duplicate suffixes, defensive guards against missing functions) are caught during the merge step, which has context across all scopes.
Always use separate directories. Copy the repo to /tmp/project-{agent}-{scope} for each agent. Worktrees collapse — the second agent overwrites the first.
A clean branch with implementation, tests, and a PR description. Ready for gh pr create.
soap/P.md, a file path, or inline text. Must be specific enough for Volley to sharpen into testable claims in two rounds.