ship
Create PRs from dripped entries. Human-gated. Only runs when invoked or when sweep is not in dry mode.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Create PRs from dripped entries. Human-gated. Only runs when invoked or when sweep is not in dry mode.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
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 | ship |
| description | Create PRs from dripped entries. Human-gated. Only runs when invoked or when sweep is not in dry mode. |
Take dripped entries (quality gates passed) and create PRs. This is the only skill that runs gh pr create. Everything upstream is autonomous; this step is human-gated.
The pipeline runs while you sleep. Gates pass, branches get validated, entries accumulate as dripped. Nothing goes public until you say so. /ship is the publish button.
| Input | Output | Valid alone? |
|---|---|---|
| Dripped entries (JSONL) | PRs created | Yes — ships from any dripped source |
Identity: ship on a queue with no dripped entries is a no-op.
Composition: ship; ship = ship — idempotent. Already-shipped entries stay shipped.
Pipeline composition: ship(drip(triage(repo))). Drip gates; ship publishes. Each is idempotent. The queue file is the checkpoint.
Ship the next dripped entry across all repos, respecting org gate (1 per org).
<repo>Ship the next dripped entry for a specific repo.
--listShow all dripped entries ready to ship. For each: repo, branch, issue, gate verdicts.
--allShip all dripped entries that pass the org gate. Use when you're watching and want to flush the queue.
gh auth status. Fail fast on auth issues.~/.sweep/drip-queue/*.jsonl for entries with status dripped.max_open_per_org defaults to 1.~/.sweep/bin/repo-status <owner/repo>. If verdict is not "clear", skip immediately. Do not create PR. Covers denylist, permanent eviction, cooldown, and rejection cooldown in one call. Learned from immich#28375/28377 — shipped twice to an evicted repo.~/.sweep/bin/ai-policy <owner/repo>. If detected: true, evict the repo and skip. Checks CONTRIBUTING.md, AGENTS.md, and org-level .github files. This is the last line of defense — actionable and triage should have caught it, but ship verifies.~/.sweep/banlist.txt is checked by the gate-pr-create.sh PreToolUse hook. If the repo is banned, gh pr create is blocked at the system level. Ship doesn't need to check — the hook is the enforcement. But ship should still skip banned repos early to avoid wasting time on push + gate file prep.~/.sweep/gates/<owner>-<repo>.gate. Check:
codex_verdict is "pass"test_attestation is present and non-empty"pass": mark entry back to triaged in the drip queue (so /qa and /drip re-run on the next tick), log the reason, skip. This is the feedback loop: ship validates what drip stamped.gh pr create --repo <repo> --title <title> --body <body> --head <user>:<branch>shipped, shipped_at -> now, pr_number -> result.--dry-run./drip. Ship trusts the gate attestation file.--head <user>:<branch>. Never push to upstream./ship twice ships at most one entry per org per run.triaged, report. /qa and /drip re-run on the next tick.status: "error", report the gh error. Don't retry.Sweep's --dry-run flag controls whether ship runs on the pipeline tick:
--dry-run (or sleeping mode): pipeline tick runs drip but skips ship. Entries accumulate as dripped.The user can always run /ship manually regardless of the sweep mode.