[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0QWVFSMZT56VRMZNCMJ2H":3,"skill-same:01M6C0QWVFSMZT56VRMZNCMJ2H":107},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6C0QWVFSMZT56VRMZNCMJ2H","yeet",null,"Canonical repo-quality operator workflow for beep-effect. Use when repairing local changes, proving quality, committing, pushing, opening or monitoring a PR, or moving a branch toward mergeable GitHub state with `bun run beep yeet`.","beep-effect\u002Fbeep-effect","beep-effect","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F293012014?v=4","01M6C0KM5WSBFT39QDNXKH1JVY","Beep Effect","01M6C0KM9QBN9R26F3EHTSWR14",80,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"quality","bun","changes","with","use","for","canonical","when","local","operator","run","github","state","monitoring","workflow","repo","pr","branch","effect","2026-11-10 10:12:30",false,"---\nname: yeet\ndescription: Canonical repo-quality operator workflow for beep-effect. Use when repairing local changes, proving quality, committing, pushing, opening or monitoring a PR, or moving a branch toward mergeable GitHub state with `bun run beep yeet`.\n---\n\n# Yeet Quality Path\n\nUse this skill when a user asks to repair, verify, publish, push, open a PR, or\nmake a branch mergeable in this repository. Yeet is the canonical operator path\nfor End-to-End Green: deterministic local repair, reviewed commit, cheap-gates\nand `final-check` before the push, a PR opened ready for review at\ncontent-final, hosted checks and review as the authoritative proof, review\ncloseout, and merge readiness.\n\nFor multi-session coordination, use [the orchestrate skill](..\u002Forchestrate\u002FSKILL.md).\nClaude and Codex can both own that role. Its native and enrolled cross-provider\nmessage routes carry briefs and receipts; messages do not grant merge authority\nor bypass Yeet's exact-head checks and review window.\n\n## Ground First\n\n1. Inspect the current branch and worktree:\n\n```bash\ngit status --short --branch\n```\n\n```bash\ngit diff --name-status\n```\n\n2. If the checkout is on `main` or another protected\u002Fdefault branch, create a\n   feature branch from the intended base before editing or publishing.\n2b. Check base freshness before publish:\n\n```bash\ngit fetch origin main:refs\u002Fremotes\u002Forigin\u002Fmain --quiet\n```\n\n```bash\ngit rev-list --count \"$(git merge-base HEAD origin\u002Fmain)\"..origin\u002Fmain\n```\n\n   Yeet publish warns whenever the branch is behind `origin\u002Fmain` and refuses\n   when branch files overlap commits landed on the base since the merge-base\n   (a conflicted or stale PR is likely). Catch up by merging the base into the\n   feature branch — never by rebasing:\n\n```bash\ngit fetch origin && git merge origin\u002Fmain\n```\n\n   Resolve conflicts, re-run `bun run beep yeet verify`, then publish again.\n   A base-conflict P0 inbox row or a merge-gate \"sibling #N merged\" comment is\n   this same merge, now, whatever your brief says about acceptance or merge\n   authority (2026-11-05; [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md#base-conflict-rows-and-packet-siblings)).\n   A stack layer (2c) never merges `origin\u002Fmain`: it merges `origin\u002F\u003Cparent-branch>`,\n   or adopts GitHub's cascade once the parent merged; the row and comment say which.\n   Do not rebase a published branch: rebase implies a force-push, and this\n   repository denies `git push --force*`. GitHub squash-merge erases\n   feature-branch merge commits at land time anyway. `--allow-stale-base` is\n   the explicit override when proceeding despite overlap is intended.\n2c. Dependent lanes (`goals\u002Fyeet-async-merge-and-stacks`, 2026-11-13). When\n   the change needs another open PR's code, fold it into that PR while it is\n   open, or publish it as the second layer of a native stack on it: cut the\n   lane from the parent's branch, then run\n   `bun run beep yeet publish --stack-on \u003Cparent-pr> --message \"...\"`\n   (needs a green `main` and an unstacked parent on `main`). `yeet ready`\n   pushes nothing on a layer, `yeet merge-gate \u003Ctop-pr> \u003Csha>` gates and\n   merges both layers from the top, and `yeet sweep --retire` retires each\n   lane: [`references\u002Fstacks.md`](references\u002Fstacks.md). Never open a PR on a\n   non-`main` base any other way (no workflow fires on it), never force-push,\n   rebase or `gh stack rebase|sync|modify` a published branch (adopt a\n   GitHub rewrite with `git switch -C \u003Cbranch> origin\u002F\u003Cbranch>`), and never\n   merge an unlanded PR's branch into a lane that is not its layer. A lane\n   blocked by red `main` waits for the `unblocks-main` PR, then merges `main` once.\n3. If the worktree contains unrelated changes, stage only the intended files.\n   Never publish unrelated paths silently.\n4. Check for already-running heavyweight quality commands before starting a\n   Yeet lane. Use metadata-only columns (`comm` = executable name) and never the\n   full `cmd` column: process arguments routinely contain credentials (git\n   `http.extraHeader` bearer tokens, credentialed clone\u002Ffetch URLs, API keys),\n   and that output would leak into the agent transcript. Summarize matches by\n   pid\u002Fbinary; never copy full command lines verbatim:\n\n```bash\nps -eo pid,ppid,stat,etime,comm | rg 'bun|node|beep|turbo|gh|git' | rg -v 'rg|ps' || true\n```\n\n## Canonical Commands\n\nDurable jobs: `--detach` runs `verify`, `publish`, `monitor`, `repair`, and\n`closeout` as transient systemd user services that outlive the tool-call cap;\n`bun run beep yeet job wait \u003CjobId>` blocks on one and exits 0 green, 1 red,\n2 wave, 3 terminated. Flags, exit semantics, and the job journal:\n[`references\u002Fdetached-jobs.md`](references\u002Fdetached-jobs.md).\n\n- Repair local work:\n\n```bash\nbun run beep yeet repair\n```\n\n- Prove the branch without committing or pushing:\n\n```bash\nbun run beep yeet verify\n```\n\n- Run the collected cheap gates without starting heavy build, lint, check, tests, or\n  docgen:\n\n```bash\nbun run beep yeet verify --tier cheap-gates\n```\n\n- Run the targeted review-fix proof while iterating on PR comments:\n\n```bash\nbun run beep yeet verify --tier review-fix\n```\n\n- Open the PR at content-final (operator 2026-11-13). A PR opens ready for\n  review, labelled `ready-for-heavy`, and only on a head with a passing\n  `final-check` receipt, so hosted CI never runs on unfinished work and the\n  review window starts at the open. Commit, run `bun run beep yeet final-check`\n  on that head, then push the committed HEAD and open:\n\n```bash\nbun run beep yeet open\n```\n\n- Commit reviewed staged changes, run cheap-gates and the head-install\n  preflight, and push (push-first-publish D1–D8). On a branch whose PR is\n  already open this is the fix-push route, unchanged: it pushes, keeps the\n  PR's state and reuses its readiness monitor. With no PR open it opens one\n  ready, so it refuses before the push (the commit stays local) when the new\n  head has no passing receipt; run `final-check`, then `yeet open`:\n\n```bash\nbun run beep yeet publish --message \"type(scope): summary\"\n```\n\n- Open a draft instead, for work that needs a hosted run before it is final.\n  A draft needs no receipt and gets the cheap hosted tier only: no\n  `ready-for-heavy` label, no heavy runners. `yeet ready` flips it on the\n  head's passing receipt and applies the label. `yeet open --draft` is the\n  same for a committed head. A stack layer (`--stack-on`) and a worker\n  compute profile open a heavy-admitted draft without the flag:\n\n```bash\nbun run beep yeet publish --draft --message \"type(scope): summary\"\n```\n\n- Push without opening a pull request (no hosted checks run until one exists):\n\n```bash\nbun run beep yeet publish --no-pr --message \"type(scope): summary\"\n```\n\n- Run the full local proof and CI parity before the push (the pre-2026-10-05\n  order; use only when a local full proof is explicitly wanted first):\n\n```bash\nbun run beep yeet publish --prove-first --message \"type(scope): summary\"\n```\n\n- Before opening the PR, replay the hosted gates the cheap tier skips on the\n  committed head. It writes the head-pinned receipt the open and `yeet ready`\n  require; skip a gate only with a recorded reason\n  (`--skip coverage=\"\u003Cwhy>\"`), which the PR body then names:\n\n```bash\nbun run beep yeet final-check\n```\n\n- Flip this branch's opt-in draft PR to ready as soon as its content is final:\n  no further push planned, a passing `final-check` receipt for the head, every\n  review thread answered. The flip applies `ready-for-heavy`, so the heavy\n  matrix starts with it; only a required check that is already red holds the\n  flip (it refuses and names the blocker; there is no `--force`):\n\n```bash\nbun run beep yeet ready\n```\n\n  Under S11 (AGENTS.md \"Mergeable\"), when the refusing red is inherited from\n  `main`, call final and attribute each inherited red (repeatable). The flip\n  records them in a marked \"Inherited reds (S11)\" section of the PR body\n  first, refuses if that write fails, and still requires every review thread\n  to be answered:\n\n```bash\nbun run beep yeet ready --inherited \"\u003Ccheck name>=\u003Cattribution>\"\n```\n\n- Publish exactly the staged index from a dirty worktree (unstaged\u002Funtracked\n  residue is parked in a marked stash after the commit, the clean tree is\n  proven, and the stash is restored after push; on a restore conflict the stash\n  is kept and its marker reported):\n\n```bash\nbun run beep yeet publish --staged-only --message \"type(scope): summary\"\n```\n\n- Stay attached to hosted PR checks after the push instead of submitting the\n  detached readiness monitor (opt-in; the fleet default is detached):\n\n```bash\nbun run beep yeet publish --monitor --message \"type(scope): summary\"\n```\n\n- Reply to and resolve addressed review threads during closeout (explicit\n  per-thread flags; closeout never writes without them):\n\n```bash\nbun run beep yeet closeout --reply-thread \u003Cthread-id> --reply-body \"Fixed in \u003Csha>.\" --resolve-threads \u003Cthread-id>[,\u003Cthread-id>...]\n```\n\n- Retry after a separately verified amend without creating a new commit:\n\n```bash\nbun run beep yeet publish --amend --no-edit --reuse-verified\n```\n\n- Push a clean base-sync merge onto an already-published branch without a full\n  local proof. The first parent must equal the freshly fetched published tip,\n  the second must be on the configured base, and the tree must reproduce Git's\n  merge result. Cheap gates and the head-install preflight gate the push and a\n  normal publish verdict is recorded:\n\n```bash\nbun run beep yeet publish --push-only\n```\n\n  Unreproducible conflict resolutions or additional edits require the verified\n  reuse path below.\n\n- Push an already-verified clean commit without committing or rerunning local\n  proof:\n\n```bash\nbun run beep yeet publish --push-only --reuse-verified\n```\n\n- Monitor hosted PR checks for the current branch:\n\n```bash\nbun run beep yeet monitor\n```\n\n`yeet monitor` records the current agent and its branch's active packets, then\nre-asserts the registry-backed provenance footer once before polling, without\ntrusting the body's public JSON twin (`references\u002Fmonitor-and-inbox.md`).\n\n- Keep monitoring across pushes until the PR merges or closes. This announces\n  readiness once per head, writes the `pr-merge-ready` inbox row, and keeps\n  polling after the announcement:\n\n```bash\nbun run beep yeet monitor --until-merged\n```\n\n- Reset the clone after a merge (prune refs, fast-forward `main`, delete the\n  merged branch locally and remotely, return to `main`, then reinstall when\n  `bun.lock` moved). The checkout is moved to `main` only from the merged\n  branch itself; a clone standing on any other branch is a live checkout, so\n  `end-state` and `lockfile-install` skip with that HEAD named in the plan and\n  only the ref-only steps run. Inspect the plan before running it:\n\n```bash\nbun run beep yeet sweep --plan\n```\n\n```bash\nbun run beep yeet sweep\n```\n\n- From inside a linked worktree (a Claude Code `.claude\u002Fworktrees\u002F\u003Cname>` lane\n  or a sibling `-worktrees` lane) the plain sweep only fetch-prunes. `--retire`\n  is the post-merge closeout for that case: it archive-retires the worktree,\n  deletes the branch, then sweeps the owning clone. It refuses until the PR is\n  MERGED and heads this branch, so running it early is safe. Run it from inside\n  the lane, as the last command of the session:\n\n```bash\nbun run beep yeet sweep --retire --plan\n```\n\n```bash\nCLONE=\"$(git rev-parse --path-format=absolute --git-common-dir)\u002F..\" && bun run beep yeet sweep --retire && cd \"$CLONE\"\n```\n\n  Holder fences, the Claude Desktop Terminal panel shell, `--lane \u003Cpath>`,\n  running the lane's own CLI from an older clone, and the active-packet\n  warning: [`references\u002Fsweep-retire.md`](references\u002Fsweep-retire.md).\n\n- Post and resolve the drafted review-thread replies for this branch's PR:\n\n```bash\nbun run beep yeet reply\n```\n\n- Squash-merge this branch's PR through `PUT pulls\u002F{n}\u002Fmerge-async` (strict,\n  no rules bypass), wait for GitHub's terminal result (a `failed` result\n  fails with GitHub's sentence; a pending one is never read as merged),\n  confirm `MERGED` through the API, then sweep\n  the clone under the current task and `AGENTS.md` authority. Standing own-PR\n  authority requires the full merge gate; local-only fences forbid publication\n  and merging:\n\n```bash\nbun run beep yeet merge\n```\n\n- Read the local Yeet operator state before scanning logs. This is local-only\n  by default and reads branch\u002Fworktree state plus the latest Yeet artifacts:\n\n```bash\nbun run beep yeet status\n```\n\n```bash\nbun run beep yeet status --json\n```\n\n- Include live GitHub PR\u002Fcheck\u002Fmergeability data only when you need it:\n\n```bash\nbun run beep yeet status --remote\n```\n\n- Print compact operator summaries for hosted monitor or closeout flows:\n\n```bash\nbun run beep yeet monitor --summary\n```\n\n```bash\nbun run beep yeet closeout --summary --require-review-comments 0\n```\n\n- Inspect review threads and review-bot findings for the current branch PR:\n\n```bash\nbun run beep yeet closeout --require-review-comments 0\n```\n\n  Add `--require-greptile-score 5\u002F5 --require-greptile-issues 0` only when the\n  operator asks to wait on Greptile for this PR. Those gates set the closeout\n  command's own exit code and print as review-bot advisories in `yeet status`;\n  they never hold `merge-ready`.\n\n- Inspect local hardware profile guidance before choosing heavy parallel work:\n\n```bash\nbun run beep quality profile detect\n```\n\n```bash\nbun run beep quality profile config workstation\n```\n\n## Gates: cheap-gates before the push, hosted CI after\n\n`yeet publish` gates the push on the collected cheap-gates tier and\nthe head-install preflight (a frozen-lockfile install of committed `HEAD` in a\ntemporary worktree); opening a ready PR also needs the head's passing\n`final-check` receipt. Lane sets and waves are source-defined; see the detailed\nreference below. Hosted CI is the authoritative proof. `bun run beep yeet verify` (full tier) dispatches the hosted lane bodies locally and is on-demand:\nrun it to reproduce a hosted red, never to unblock a publish.\nPackage-scoped `turbo run check`, `docgen:local --reuse-proof-manifest`, and the cheap tier\nalone are inner-loop tools, not proof. `yeet final-check` is the content-final\ngate: the affected replay of Lint Policy, Lint, Check, Docgen, Repo Sanity,\nFallow, Coverage, and rewritten test expectations.\nDetails: [`references\u002Fgates-and-proof.md`](references\u002Fgates-and-proof.md).\n\n## Cache baseline after a script-word or root-config change\n\nRun `bun run beep cache audit`; review configuration-drift BLOCKs against the\nchanged inputs before requesting a baseline update. Follow\n[the reviewed baseline recipe](references\u002Fgates-and-proof.md#cache-baseline-after-a-script-word-or-root-config-change)\nfor S31b subject limits, exact-text hashes and main-merge changes.\n\n## Mergeable PR Workflow\n\n1. Run `bun run beep yeet repair` when local changes need deterministic fixers,\n   docgen, or affected feedback.\n2. Stage the reviewed files explicitly.\n3. Run `bun run beep yeet status` when you need a compact local readiness\n   snapshot before publishing.\n4. Commit, run `bun run beep yeet final-check` on the committed head, then\n   `bun run beep yeet open`. It pushes, opens the PR **ready for review**\n   labelled `ready-for-heavy` (docs-only diffs skip the label), requests the\n   reviewer, submits `monitor --until-ready --detach`, prints the PR URL and\n   job id, and exits. The review window starts at the open. Without a passing\n   receipt for the head it refuses before the push and names the next\n   command. `bun run beep yeet publish --message \"...\"` commits and runs\n   cheap-gates first; use it for every fix push to the open PR, where a\n   cheap-gates red blocks the push: read the gate line, run `yeet repair`,\n   publish again. Pass `--draft` to either command only for work that needs a\n   hosted run before it is final.\n5. Push budget (D6): one push per fully addressed wave of inbox rows or review\n   threads, never per file or per comment. Every push costs a hosted run.\n6. Block on the job publish submitted: `bun run beep yeet job wait \u003CjobId>`. The job survives session restarts and\n   the ten-minute tool-call cap, but not a reboot: re-submit it after one.\n   A required red or a base conflict does not end the monitor: it writes inbox\n   rows and keeps polling across your fix pushes, so do not re-submit it after\n   a red. A fix `publish` on the same branch reads the job registry and reuses\n   the running monitor (it prints the existing job id and `job wait` command\n   and records the submit step as skipped); it submits a new job only when no\n   `submitted` or `running` monitor follows the PR. `job wait` returns 0 for green (the loop ended `ready`), 2 for a wave\n   (new P0 rows or P1 thread and comment rows on this PR, or a required red\n   that came back red on a rerun: read the gate line, act on the rows, publish\n   any fix, then re-run `bun run beep yeet job wait \u003CjobId>` on the same job),\n   1 for red (`settle-timeout`, `closed`, or a spent poll-error budget), and 3\n   for a terminated job. When the user manager is unreachable, run\n   `bun run beep yeet monitor --until-ready` attached instead: it has no job,\n   so it ends itself with exit 2 on a wave (rows already in the inbox when it\n   started end it only when a rerun of their check comes back red); re-run it\n   after the fix push. Exit 0 with\n   `merge-ready: yes` means the review window has elapsed too: re-read the\n   review threads, then merge it yourself (`bun run beep yeet merge`), or\n   leave it to the orchestrator session at the gate; the monitor never merges on\n   its own.\n   On exit 1 or 3, read the summary line, fix the named blocker, publish, and\n   re-submit the monitor. The open applies the `ready-for-heavy` label when it\n   creates a ready PR, so a code PR is admitted to the heavy matrix from the\n   open. A `--draft` PR holds at `heavy-not-admitted` by design until\n   `yeet ready` flips it and applies the label; `yeet ready` also repairs a\n   ready PR whose label edit failed (see\n   [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md)). Act on unresolved review threads through the reply\n   flow while the loop waits. The loop runs read-first closeout automatically\n   after the required checks settle. `monitor --summary` remains a one-shot\n   compact read.\n7. Run `bun run beep yeet closeout --summary --require-review-comments 0`\n   to inspect unresolved actionable review threads and review-bot findings.\n8. While fixing PR comments, `bun run beep yeet verify --tier review-fix` is\n   optional local iteration; the fix wave still publishes through the default\n   push-first path.\n9. Address failed checks or actionable review comments with follow-up commits\n   through the same Yeet publish path.\n10. An opt-in draft is flipped at content-final: as soon as no further push is\n    planned and `bun run beep yeet final-check` passed on the pushed head, run\n    `bun run beep yeet ready`, without waiting for hosted CI. A PR opened\n    ready needs no flip. Reviewers start when the PR is ready and take 8–15\n    minutes, so the CI run is the review window (review-window ruling,\n    2026-10-06). The flip refuses on a missing or red final-check receipt, a\n    required check that is already red, or an unanswered thread. A job that\n    ends `ready-pending-flip` (exit 0) means a draft is green on the cheap\n    tier: flip it, then the heavy matrix and the full review window still run.\n    Mergeable means all of: required checks green; no outstanding review\n    thread — unresolved, or resolved by the author with a later human reviewer\n    comment nobody answered, outdated threads included until they are\n    explicitly resolved; GitHub reports the branch mergeable; and the review\n    window has elapsed — 20 minutes since the later of the open (or, for a\n    draft, the last ready-for-review event) and the last push to the head, so\n    a fix push restarts it. Never flip and merge in one step, and re-read the threads\n    right before merging. `bun run beep yeet status --remote` prints a\n    `merge-ready:` line that names the first failing criterion, with\n    `review window open: N min left` when the window is the last one.\n11. After the merge lands, run `bun run beep yeet sweep` — or, from a lane\n    worktree, `bun run beep yeet sweep --retire` — or let\n    `monitor --until-merged` run the sweep on merged detection — so the next\n    branch does not start from a stale clone and the lane does not linger.\n    If the merged change touched a systemd unit renderer, re-render the\n    installed units from the swept clone with\n    `bun run beep research install-timers --refresh` and\u002For\n    `bun run beep refs install-timer --refresh` (see\n    `docs\u002Frunbooks\u002Fsystemd-timers.md`). Do not hand any of this to the operator.\n\n`yeet closeout` is read-first. It classifies review threads and bot findings and\nwrites Yeet artifacts locally. It posts a Greptile rerun comment only when\n`--retrigger-greptile` is explicit, and it does not auto-resolve or auto-reply to\nreview threads. The default bot lineup is **greptile-only** (2026-07-05,\nagent-pipeline-velocity): the closeout artifact includes durable states for\nreview threads, Greptile, and hosted-check handoff. CodeRabbit\u002FChatGPT gates\nappear only with explicit opt-in via `--bots greptile,coderabbit,chatgpt`\n(CodeRabbit auto-reviews are live on this repo — it posted two summary reviews\non PR #1184 on 2026-09-22 — but its closeout thread gate stays opt-in behind\n`--bots`; ChatGPT has no app installed, so its gate reads \"unknown\" unless\ncomments exist). Deep review is on-demand:\n`\u002Fcode-review ultra` or an explicit `@codex review` mention.\n\n## Push-First Publish\n\n`yeet publish` is push-first by default (push-first-publish, 2026-10-05):\n\n- Gate before the push: cheap-gates + head-install preflight (the schema-catalog\n  scan holds weighted admission), plus the head's passing `final-check` receipt\n  when the push would open a ready PR. `yeet open` pushes the committed HEAD\n  with the same PR tail and no cheap gate. Admission or gates waiting ten\n  minutes: stop, record each gate that could not run with\n  `yeet final-check --skip \u003Cgate>=\u003Creason>`, and run `yeet open`.\n- After the push: ready PR (REST create; `--body-file \u003Cmd>` replaces the commit-log\n  summary; the body's \"Final check\" section names the receipt's gates and skips),\n  `ready-for-heavy` label (skipped on docs-only diffs, on `--draft` and on PRs that\n  already existed), provenance stamp, reviewer request, then\n  `monitor --until-ready --detach` is submitted and publish exits with the PR URL\n  and job id. `--monitor` stays\n  attached. Never `gh pr create` or `gh pr edit --body*` (footer lost): use\n  `yeet open`, `--body-file`, or `yeet gh pr body \u003Cn> --body-file \u003Cmd>`.\n- `--no-pr` pushes without a PR and warns: `check.yml` runs only on\n  `pull_request`, so no hosted checks run until a PR exists.\n- `--prove-first` (full proof + CI parity before the push) is the only way to\n  put the full proof on the publish path; `--push-only` pushes an\n  already-proven commit. Both share the default's open, label and monitor tail.\n- `bun run audit:github pre-push` remains the named full local fallback for\n  secrets, security, SAST, Nix, and any lane that must be proven outside Yeet.\n\n## Ready\n\n`bun run beep yeet ready` flips an opt-in draft at content-final once the head\nhas a passing `yeet final-check` receipt, no required check is red, and every\nthread is answered, then applies `ready-for-heavy`; refusals name `pr-open`, `no-required-red`, `threads-resolved` or\n`final-check`. A main-merge head that only refreshed inventories or packet files carries an\nancestor's receipt (`final \u003CF> #N receipt \u003CR>`); that rule, the reviewer request, the review window: [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md#ready).\n\n## References\n\nLoad these on demand; `SKILL.md` keeps the path, the references keep the depth.\n\n| Read | When |\n| --- | --- |\n| [`references\u002Fdetached-jobs.md`](references\u002Fdetached-jobs.md) | submitting or waiting on a `--detach` job |\n| [`references\u002Fgates-and-proof.md`](references\u002Fgates-and-proof.md) | a cheap gate is red, reproducing a hosted red locally, plan mode, a CI or security-gate change (CI token permissions) |\n| [`references\u002Fmonitor-and-inbox.md`](references\u002Fmonitor-and-inbox.md) | monitor exits, `--watch` rows, resume, settle rule, inbox rows and waves |\n| [`references\u002Freview-threads.md`](references\u002Freview-threads.md) | thread states, review bodies, comment replay, `yeet reply` drafts |\n| [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md) | heavy admission label, job triage, branch-deletion contract, base-conflict rows, `yeet siblings` |\n| [`references\u002Fgh-rest.md`](references\u002Fgh-rest.md) | any GitHub call: `yeet gh` instead of `gh pr` |\n| [`references\u002Fsweep-retire.md`](references\u002Fsweep-retire.md) | `sweep --retire` refusals and holders |\n| [`references\u002Fstacks.md`](references\u002Fstacks.md) | a two-layer stack: `--stack-on`, `stack-*` holds, adopting a rewritten layer |\n| [`references\u002Frun-artifacts.md`](references\u002Frun-artifacts.md) | verdict, packets, proof ledger, changeset gate |\n| [`references\u002Ffailure-handling.md`](references\u002Ffailure-handling.md) | any failed publish, proof, or hosted job, reading a red job's log mid-run |\n","# Yeet Quality Path\n\nUse this skill when a user asks to repair, verify, publish, push, open a PR, or\nmake a branch mergeable in this repository. Yeet is the canonical operator path\nfor End-to-End Green: deterministic local repair, reviewed commit, cheap-gates\nand `final-check` before the push, a PR opened ready for review at\ncontent-final, hosted checks and review as the authoritative proof, review\ncloseout, and merge readiness.\n\nFor multi-session coordination, use [the orchestrate skill](..\u002Forchestrate\u002FSKILL.md).\nClaude and Codex can both own that role. Its native and enrolled cross-provider\nmessage routes carry briefs and receipts; messages do not grant merge authority\nor bypass Yeet's exact-head checks and review window.\n\n## Ground First\n\n1. Inspect the current branch and worktree:\n\n```bash\ngit status --short --branch\n```\n\n```bash\ngit diff --name-status\n```\n\n2. If the checkout is on `main` or another protected\u002Fdefault branch, create a\n   feature branch from the intended base before editing or publishing.\n2b. Check base freshness before publish:\n\n```bash\ngit fetch origin main:refs\u002Fremotes\u002Forigin\u002Fmain --quiet\n```\n\n```bash\ngit rev-list --count \"$(git merge-base HEAD origin\u002Fmain)\"..origin\u002Fmain\n```\n\n   Yeet publish warns whenever the branch is behind `origin\u002Fmain` and refuses\n   when branch files overlap commits landed on the base since the merge-base\n   (a conflicted or stale PR is likely). Catch up by merging the base into the\n   feature branch — never by rebasing:\n\n```bash\ngit fetch origin && git merge origin\u002Fmain\n```\n\n   Resolve conflicts, re-run `bun run beep yeet verify`, then publish again.\n   A base-conflict P0 inbox row or a merge-gate \"sibling #N merged\" comment is\n   this same merge, now, whatever your brief says about acceptance or merge\n   authority (2026-11-05; [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md#base-conflict-rows-and-packet-siblings)).\n   A stack layer (2c) never merges `origin\u002Fmain`: it merges `origin\u002F\u003Cparent-branch>`,\n   or adopts GitHub's cascade once the parent merged; the row and comment say which.\n   Do not rebase a published branch: rebase implies a force-push, and this\n   repository denies `git push --force*`. GitHub squash-merge erases\n   feature-branch merge commits at land time anyway. `--allow-stale-base` is\n   the explicit override when proceeding despite overlap is intended.\n2c. Dependent lanes (`goals\u002Fyeet-async-merge-and-stacks`, 2026-11-13). When\n   the change needs another open PR's code, fold it into that PR while it is\n   open, or publish it as the second layer of a native stack on it: cut the\n   lane from the parent's branch, then run\n   `bun run beep yeet publish --stack-on \u003Cparent-pr> --message \"...\"`\n   (needs a green `main` and an unstacked parent on `main`). `yeet ready`\n   pushes nothing on a layer, `yeet merge-gate \u003Ctop-pr> \u003Csha>` gates and\n   merges both layers from the top, and `yeet sweep --retire` retires each\n   lane: [`references\u002Fstacks.md`](references\u002Fstacks.md). Never open a PR on a\n   non-`main` base any other way (no workflow fires on it), never force-push,\n   rebase or `gh stack rebase|sync|modify` a published branch (adopt a\n   GitHub rewrite with `git switch -C \u003Cbranch> origin\u002F\u003Cbranch>`), and never\n   merge an unlanded PR's branch into a lane that is not its layer. A lane\n   blocked by red `main` waits for the `unblocks-main` PR, then merges `main` once.\n3. If the worktree contains unrelated changes, stage only the intended files.\n   Never publish unrelated paths silently.\n4. Check for already-running heavyweight quality commands before starting a\n   Yeet lane. Use metadata-only columns (`comm` = executable name) and never the\n   full `cmd` column: process arguments routinely contain credentials (git\n   `http.extraHeader` bearer tokens, credentialed clone\u002Ffetch URLs, API keys),\n   and that output would leak into the agent transcript. Summarize matches by\n   pid\u002Fbinary; never copy full command lines verbatim:\n\n```bash\nps -eo pid,ppid,stat,etime,comm | rg 'bun|node|beep|turbo|gh|git' | rg -v 'rg|ps' || true\n```\n\n## Canonical Commands\n\nDurable jobs: `--detach` runs `verify`, `publish`, `monitor`, `repair`, and\n`closeout` as transient systemd user services that outlive the tool-call cap;\n`bun run beep yeet job wait \u003CjobId>` blocks on one and exits 0 green, 1 red,\n2 wave, 3 terminated. Flags, exit semantics, and the job journal:\n[`references\u002Fdetached-jobs.md`](references\u002Fdetached-jobs.md).\n\n- Repair local work:\n\n```bash\nbun run beep yeet repair\n```\n\n- Prove the branch without committing or pushing:\n\n```bash\nbun run beep yeet verify\n```\n\n- Run the collected cheap gates without starting heavy build, lint, check, tests, or\n  docgen:\n\n```bash\nbun run beep yeet verify --tier cheap-gates\n```\n\n- Run the targeted review-fix proof while iterating on PR comments:\n\n```bash\nbun run beep yeet verify --tier review-fix\n```\n\n- Open the PR at content-final (operator 2026-11-13). A PR opens ready for\n  review, labelled `ready-for-heavy`, and only on a head with a passing\n  `final-check` receipt, so hosted CI never runs on unfinished work and the\n  review window starts at the open. Commit, run `bun run beep yeet final-check`\n  on that head, then push the committed HEAD and open:\n\n```bash\nbun run beep yeet open\n```\n\n- Commit reviewed staged changes, run cheap-gates and the head-install\n  preflight, and push (push-first-publish D1–D8). On a branch whose PR is\n  already open this is the fix-push route, unchanged: it pushes, keeps the\n  PR's state and reuses its readiness monitor. With no PR open it opens one\n  ready, so it refuses before the push (the commit stays local) when the new\n  head has no passing receipt; run `final-check`, then `yeet open`:\n\n```bash\nbun run beep yeet publish --message \"type(scope): summary\"\n```\n\n- Open a draft instead, for work that needs a hosted run before it is final.\n  A draft needs no receipt and gets the cheap hosted tier only: no\n  `ready-for-heavy` label, no heavy runners. `yeet ready` flips it on the\n  head's passing receipt and applies the label. `yeet open --draft` is the\n  same for a committed head. A stack layer (`--stack-on`) and a worker\n  compute profile open a heavy-admitted draft without the flag:\n\n```bash\nbun run beep yeet publish --draft --message \"type(scope): summary\"\n```\n\n- Push without opening a pull request (no hosted checks run until one exists):\n\n```bash\nbun run beep yeet publish --no-pr --message \"type(scope): summary\"\n```\n\n- Run the full local proof and CI parity before the push (the pre-2026-10-05\n  order; use only when a local full proof is explicitly wanted first):\n\n```bash\nbun run beep yeet publish --prove-first --message \"type(scope): summary\"\n```\n\n- Before opening the PR, replay the hosted gates the cheap tier skips on the\n  committed head. It writes the head-pinned receipt the open and `yeet ready`\n  require; skip a gate only with a recorded reason\n  (`--skip coverage=\"\u003Cwhy>\"`), which the PR body then names:\n\n```bash\nbun run beep yeet final-check\n```\n\n- Flip this branch's opt-in draft PR to ready as soon as its content is final:\n  no further push planned, a passing `final-check` receipt for the head, every\n  review thread answered. The flip applies `ready-for-heavy`, so the heavy\n  matrix starts with it; only a required check that is already red holds the\n  flip (it refuses and names the blocker; there is no `--force`):\n\n```bash\nbun run beep yeet ready\n```\n\n  Under S11 (AGENTS.md \"Mergeable\"), when the refusing red is inherited from\n  `main`, call final and attribute each inherited red (repeatable). The flip\n  records them in a marked \"Inherited reds (S11)\" section of the PR body\n  first, refuses if that write fails, and still requires every review thread\n  to be answered:\n\n```bash\nbun run beep yeet ready --inherited \"\u003Ccheck name>=\u003Cattribution>\"\n```\n\n- Publish exactly the staged index from a dirty worktree (unstaged\u002Funtracked\n  residue is parked in a marked stash after the commit, the clean tree is\n  proven, and the stash is restored after push; on a restore conflict the stash\n  is kept and its marker reported):\n\n```bash\nbun run beep yeet publish --staged-only --message \"type(scope): summary\"\n```\n\n- Stay attached to hosted PR checks after the push instead of submitting the\n  detached readiness monitor (opt-in; the fleet default is detached):\n\n```bash\nbun run beep yeet publish --monitor --message \"type(scope): summary\"\n```\n\n- Reply to and resolve addressed review threads during closeout (explicit\n  per-thread flags; closeout never writes without them):\n\n```bash\nbun run beep yeet closeout --reply-thread \u003Cthread-id> --reply-body \"Fixed in \u003Csha>.\" --resolve-threads \u003Cthread-id>[,\u003Cthread-id>...]\n```\n\n- Retry after a separately verified amend without creating a new commit:\n\n```bash\nbun run beep yeet publish --amend --no-edit --reuse-verified\n```\n\n- Push a clean base-sync merge onto an already-published branch without a full\n  local proof. The first parent must equal the freshly fetched published tip,\n  the second must be on the configured base, and the tree must reproduce Git's\n  merge result. Cheap gates and the head-install preflight gate the push and a\n  normal publish verdict is recorded:\n\n```bash\nbun run beep yeet publish --push-only\n```\n\n  Unreproducible conflict resolutions or additional edits require the verified\n  reuse path below.\n\n- Push an already-verified clean commit without committing or rerunning local\n  proof:\n\n```bash\nbun run beep yeet publish --push-only --reuse-verified\n```\n\n- Monitor hosted PR checks for the current branch:\n\n```bash\nbun run beep yeet monitor\n```\n\n`yeet monitor` records the current agent and its branch's active packets, then\nre-asserts the registry-backed provenance footer once before polling, without\ntrusting the body's public JSON twin (`references\u002Fmonitor-and-inbox.md`).\n\n- Keep monitoring across pushes until the PR merges or closes. This announces\n  readiness once per head, writes the `pr-merge-ready` inbox row, and keeps\n  polling after the announcement:\n\n```bash\nbun run beep yeet monitor --until-merged\n```\n\n- Reset the clone after a merge (prune refs, fast-forward `main`, delete the\n  merged branch locally and remotely, return to `main`, then reinstall when\n  `bun.lock` moved). The checkout is moved to `main` only from the merged\n  branch itself; a clone standing on any other branch is a live checkout, so\n  `end-state` and `lockfile-install` skip with that HEAD named in the plan and\n  only the ref-only steps run. Inspect the plan before running it:\n\n```bash\nbun run beep yeet sweep --plan\n```\n\n```bash\nbun run beep yeet sweep\n```\n\n- From inside a linked worktree (a Claude Code `.claude\u002Fworktrees\u002F\u003Cname>` lane\n  or a sibling `-worktrees` lane) the plain sweep only fetch-prunes. `--retire`\n  is the post-merge closeout for that case: it archive-retires the worktree,\n  deletes the branch, then sweeps the owning clone. It refuses until the PR is\n  MERGED and heads this branch, so running it early is safe. Run it from inside\n  the lane, as the last command of the session:\n\n```bash\nbun run beep yeet sweep --retire --plan\n```\n\n```bash\nCLONE=\"$(git rev-parse --path-format=absolute --git-common-dir)\u002F..\" && bun run beep yeet sweep --retire && cd \"$CLONE\"\n```\n\n  Holder fences, the Claude Desktop Terminal panel shell, `--lane \u003Cpath>`,\n  running the lane's own CLI from an older clone, and the active-packet\n  warning: [`references\u002Fsweep-retire.md`](references\u002Fsweep-retire.md).\n\n- Post and resolve the drafted review-thread replies for this branch's PR:\n\n```bash\nbun run beep yeet reply\n```\n\n- Squash-merge this branch's PR through `PUT pulls\u002F{n}\u002Fmerge-async` (strict,\n  no rules bypass), wait for GitHub's terminal result (a `failed` result\n  fails with GitHub's sentence; a pending one is never read as merged),\n  confirm `MERGED` through the API, then sweep\n  the clone under the current task and `AGENTS.md` authority. Standing own-PR\n  authority requires the full merge gate; local-only fences forbid publication\n  and merging:\n\n```bash\nbun run beep yeet merge\n```\n\n- Read the local Yeet operator state before scanning logs. This is local-only\n  by default and reads branch\u002Fworktree state plus the latest Yeet artifacts:\n\n```bash\nbun run beep yeet status\n```\n\n```bash\nbun run beep yeet status --json\n```\n\n- Include live GitHub PR\u002Fcheck\u002Fmergeability data only when you need it:\n\n```bash\nbun run beep yeet status --remote\n```\n\n- Print compact operator summaries for hosted monitor or closeout flows:\n\n```bash\nbun run beep yeet monitor --summary\n```\n\n```bash\nbun run beep yeet closeout --summary --require-review-comments 0\n```\n\n- Inspect review threads and review-bot findings for the current branch PR:\n\n```bash\nbun run beep yeet closeout --require-review-comments 0\n```\n\n  Add `--require-greptile-score 5\u002F5 --require-greptile-issues 0` only when the\n  operator asks to wait on Greptile for this PR. Those gates set the closeout\n  command's own exit code and print as review-bot advisories in `yeet status`;\n  they never hold `merge-ready`.\n\n- Inspect local hardware profile guidance before choosing heavy parallel work:\n\n```bash\nbun run beep quality profile detect\n```\n\n```bash\nbun run beep quality profile config workstation\n```\n\n## Gates: cheap-gates before the push, hosted CI after\n\n`yeet publish` gates the push on the collected cheap-gates tier and\nthe head-install preflight (a frozen-lockfile install of committed `HEAD` in a\ntemporary worktree); opening a ready PR also needs the head's passing\n`final-check` receipt. Lane sets and waves are source-defined; see the detailed\nreference below. Hosted CI is the authoritative proof. `bun run beep yeet verify` (full tier) dispatches the hosted lane bodies locally and is on-demand:\nrun it to reproduce a hosted red, never to unblock a publish.\nPackage-scoped `turbo run check`, `docgen:local --reuse-proof-manifest`, and the cheap tier\nalone are inner-loop tools, not proof. `yeet final-check` is the content-final\ngate: the affected replay of Lint Policy, Lint, Check, Docgen, Repo Sanity,\nFallow, Coverage, and rewritten test expectations.\nDetails: [`references\u002Fgates-and-proof.md`](references\u002Fgates-and-proof.md).\n\n## Cache baseline after a script-word or root-config change\n\nRun `bun run beep cache audit`; review configuration-drift BLOCKs against the\nchanged inputs before requesting a baseline update. Follow\n[the reviewed baseline recipe](references\u002Fgates-and-proof.md#cache-baseline-after-a-script-word-or-root-config-change)\nfor S31b subject limits, exact-text hashes and main-merge changes.\n\n## Mergeable PR Workflow\n\n1. Run `bun run beep yeet repair` when local changes need deterministic fixers,\n   docgen, or affected feedback.\n2. Stage the reviewed files explicitly.\n3. Run `bun run beep yeet status` when you need a compact local readiness\n   snapshot before publishing.\n4. Commit, run `bun run beep yeet final-check` on the committed head, then\n   `bun run beep yeet open`. It pushes, opens the PR **ready for review**\n   labelled `ready-for-heavy` (docs-only diffs skip the label), requests the\n   reviewer, submits `monitor --until-ready --detach`, prints the PR URL and\n   job id, and exits. The review window starts at the open. Without a passing\n   receipt for the head it refuses before the push and names the next\n   command. `bun run beep yeet publish --message \"...\"` commits and runs\n   cheap-gates first; use it for every fix push to the open PR, where a\n   cheap-gates red blocks the push: read the gate line, run `yeet repair`,\n   publish again. Pass `--draft` to either command only for work that needs a\n   hosted run before it is final.\n5. Push budget (D6): one push per fully addressed wave of inbox rows or review\n   threads, never per file or per comment. Every push costs a hosted run.\n6. Block on the job publish submitted: `bun run beep yeet job wait \u003CjobId>`. The job survives session restarts and\n   the ten-minute tool-call cap, but not a reboot: re-submit it after one.\n   A required red or a base conflict does not end the monitor: it writes inbox\n   rows and keeps polling across your fix pushes, so do not re-submit it after\n   a red. A fix `publish` on the same branch reads the job registry and reuses\n   the running monitor (it prints the existing job id and `job wait` command\n   and records the submit step as skipped); it submits a new job only when no\n   `submitted` or `running` monitor follows the PR. `job wait` returns 0 for green (the loop ended `ready`), 2 for a wave\n   (new P0 rows or P1 thread and comment rows on this PR, or a required red\n   that came back red on a rerun: read the gate line, act on the rows, publish\n   any fix, then re-run `bun run beep yeet job wait \u003CjobId>` on the same job),\n   1 for red (`settle-timeout`, `closed`, or a spent poll-error budget), and 3\n   for a terminated job. When the user manager is unreachable, run\n   `bun run beep yeet monitor --until-ready` attached instead: it has no job,\n   so it ends itself with exit 2 on a wave (rows already in the inbox when it\n   started end it only when a rerun of their check comes back red); re-run it\n   after the fix push. Exit 0 with\n   `merge-ready: yes` means the review window has elapsed too: re-read the\n   review threads, then merge it yourself (`bun run beep yeet merge`), or\n   leave it to the orchestrator session at the gate; the monitor never merges on\n   its own.\n   On exit 1 or 3, read the summary line, fix the named blocker, publish, and\n   re-submit the monitor. The open applies the `ready-for-heavy` label when it\n   creates a ready PR, so a code PR is admitted to the heavy matrix from the\n   open. A `--draft` PR holds at `heavy-not-admitted` by design until\n   `yeet ready` flips it and applies the label; `yeet ready` also repairs a\n   ready PR whose label edit failed (see\n   [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md)). Act on unresolved review threads through the reply\n   flow while the loop waits. The loop runs read-first closeout automatically\n   after the required checks settle. `monitor --summary` remains a one-shot\n   compact read.\n7. Run `bun run beep yeet closeout --summary --require-review-comments 0`\n   to inspect unresolved actionable review threads and review-bot findings.\n8. While fixing PR comments, `bun run beep yeet verify --tier review-fix` is\n   optional local iteration; the fix wave still publishes through the default\n   push-first path.\n9. Address failed checks or actionable review comments with follow-up commits\n   through the same Yeet publish path.\n10. An opt-in draft is flipped at content-final: as soon as no further push is\n    planned and `bun run beep yeet final-check` passed on the pushed head, run\n    `bun run beep yeet ready`, without waiting for hosted CI. A PR opened\n    ready needs no flip. Reviewers start when the PR is ready and take 8–15\n    minutes, so the CI run is the review window (review-window ruling,\n    2026-10-06). The flip refuses on a missing or red final-check receipt, a\n    required check that is already red, or an unanswered thread. A job that\n    ends `ready-pending-flip` (exit 0) means a draft is green on the cheap\n    tier: flip it, then the heavy matrix and the full review window still run.\n    Mergeable means all of: required checks green; no outstanding review\n    thread — unresolved, or resolved by the author with a later human reviewer\n    comment nobody answered, outdated threads included until they are\n    explicitly resolved; GitHub reports the branch mergeable; and the review\n    window has elapsed — 20 minutes since the later of the open (or, for a\n    draft, the last ready-for-review event) and the last push to the head, so\n    a fix push restarts it. Never flip and merge in one step, and re-read the threads\n    right before merging. `bun run beep yeet status --remote` prints a\n    `merge-ready:` line that names the first failing criterion, with\n    `review window open: N min left` when the window is the last one.\n11. After the merge lands, run `bun run beep yeet sweep` — or, from a lane\n    worktree, `bun run beep yeet sweep --retire` — or let\n    `monitor --until-merged` run the sweep on merged detection — so the next\n    branch does not start from a stale clone and the lane does not linger.\n    If the merged change touched a systemd unit renderer, re-render the\n    installed units from the swept clone with\n    `bun run beep research install-timers --refresh` and\u002For\n    `bun run beep refs install-timer --refresh` (see\n    `docs\u002Frunbooks\u002Fsystemd-timers.md`). Do not hand any of this to the operator.\n\n`yeet closeout` is read-first. It classifies review threads and bot findings and\nwrites Yeet artifacts locally. It posts a Greptile rerun comment only when\n`--retrigger-greptile` is explicit, and it does not auto-resolve or auto-reply to\nreview threads. The default bot lineup is **greptile-only** (2026-07-05,\nagent-pipeline-velocity): the closeout artifact includes durable states for\nreview threads, Greptile, and hosted-check handoff. CodeRabbit\u002FChatGPT gates\nappear only with explicit opt-in via `--bots greptile,coderabbit,chatgpt`\n(CodeRabbit auto-reviews are live on this repo — it posted two summary reviews\non PR #1184 on 2026-09-22 — but its closeout thread gate stays opt-in behind\n`--bots`; ChatGPT has no app installed, so its gate reads \"unknown\" unless\ncomments exist). Deep review is on-demand:\n`\u002Fcode-review ultra` or an explicit `@codex review` mention.\n\n## Push-First Publish\n\n`yeet publish` is push-first by default (push-first-publish, 2026-10-05):\n\n- Gate before the push: cheap-gates + head-install preflight (the schema-catalog\n  scan holds weighted admission), plus the head's passing `final-check` receipt\n  when the push would open a ready PR. `yeet open` pushes the committed HEAD\n  with the same PR tail and no cheap gate. Admission or gates waiting ten\n  minutes: stop, record each gate that could not run with\n  `yeet final-check --skip \u003Cgate>=\u003Creason>`, and run `yeet open`.\n- After the push: ready PR (REST create; `--body-file \u003Cmd>` replaces the commit-log\n  summary; the body's \"Final check\" section names the receipt's gates and skips),\n  `ready-for-heavy` label (skipped on docs-only diffs, on `--draft` and on PRs that\n  already existed), provenance stamp, reviewer request, then\n  `monitor --until-ready --detach` is submitted and publish exits with the PR URL\n  and job id. `--monitor` stays\n  attached. Never `gh pr create` or `gh pr edit --body*` (footer lost): use\n  `yeet open`, `--body-file`, or `yeet gh pr body \u003Cn> --body-file \u003Cmd>`.\n- `--no-pr` pushes without a PR and warns: `check.yml` runs only on\n  `pull_request`, so no hosted checks run until a PR exists.\n- `--prove-first` (full proof + CI parity before the push) is the only way to\n  put the full proof on the publish path; `--push-only` pushes an\n  already-proven commit. Both share the default's open, label and monitor tail.\n- `bun run audit:github pre-push` remains the named full local fallback for\n  secrets, security, SAST, Nix, and any lane that must be proven outside Yeet.\n\n## Ready\n\n`bun run beep yeet ready` flips an opt-in draft at content-final once the head\nhas a passing `yeet final-check` receipt, no required check is red, and every\nthread is answered, then applies `ready-for-heavy`; refusals name `pr-open`, `no-required-red`, `threads-resolved` or\n`final-check`. A main-merge head that only refreshed inventories or packet files carries an\nancestor's receipt (`final \u003CF> #N receipt \u003CR>`); that rule, the reviewer request, the review window: [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md#ready).\n\n## References\n\nLoad these on demand; `SKILL.md` keeps the path, the references keep the depth.\n\n| Read | When |\n| --- | --- |\n| [`references\u002Fdetached-jobs.md`](references\u002Fdetached-jobs.md) | submitting or waiting on a `--detach` job |\n| [`references\u002Fgates-and-proof.md`](references\u002Fgates-and-proof.md) | a cheap gate is red, reproducing a hosted red locally, plan mode, a CI or security-gate change (CI token permissions) |\n| [`references\u002Fmonitor-and-inbox.md`](references\u002Fmonitor-and-inbox.md) | monitor exits, `--watch` rows, resume, settle rule, inbox rows and waves |\n| [`references\u002Freview-threads.md`](references\u002Freview-threads.md) | thread states, review bodies, comment replay, `yeet reply` drafts |\n| [`references\u002Fmerge-loop.md`](references\u002Fmerge-loop.md) | heavy admission label, job triage, branch-deletion contract, base-conflict rows, `yeet siblings` |\n| [`references\u002Fgh-rest.md`](references\u002Fgh-rest.md) | any GitHub call: `yeet gh` instead of `gh pr` |\n| [`references\u002Fsweep-retire.md`](references\u002Fsweep-retire.md) | `sweep --retire` refusals and holders |\n| [`references\u002Fstacks.md`](references\u002Fstacks.md) | a two-layer stack: `--stack-on`, `stack-*` holds, adopting a rewritten layer |\n| [`references\u002Frun-artifacts.md`](references\u002Frun-artifacts.md) | verdict, packets, proof ledger, changeset gate |\n| [`references\u002Ffailure-handling.md`](references\u002Ffailure-handling.md) | any failed publish, proof, or hosted job, reading a red job's log mid-run |\n",{"name":5,"description":7},"main","240f23d40b1cbf0f06f3b92ca1d201cb861728e3",".claude\u002Fskills\u002Fyeet",14,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect","https:\u002F\u002Fwww.oip.law","https:\u002F\u002Fgithub.com\u002Fbeep-effect","2026-11-14 03:18:53",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add beep-effect\u002Fbeep-effect --skill yeet",{"tool":57,"command":58},"bunx","bunx skills add beep-effect\u002Fbeep-effect --skill yeet",{"tool":60,"command":61},"pnpm","pnpm dlx skills add beep-effect\u002Fbeep-effect --skill yeet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002FSKILL.md",true,[65,71,75,79,83,87,91,95,99,103],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fdetached-jobs.md","REFERENCE","参考文档",4077,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fdetached-jobs.md",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Ffailure-handling.md",10391,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Ffailure-handling.md",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fgates-and-proof.md",15321,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fgates-and-proof.md",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fgh-rest.md",4742,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fgh-rest.md",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fmerge-loop.md",12716,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fmerge-loop.md",{"path":88,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fmonitor-and-inbox.md",17012,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fmonitor-and-inbox.md",{"path":92,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Freview-threads.md",11222,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Freview-threads.md",{"path":96,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Frun-artifacts.md",2171,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Frun-artifacts.md",{"path":100,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fstacks.md",8210,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fstacks.md",{"path":104,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fsweep-retire.md",6860,"https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fyeet\u002Freferences\u002Fsweep-retire.md",[108,132,142,152,189,214],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":38},"01M714DQT4JQHZ11X0RH0T8RQ7","auth-environments","Sign Claude Code in to a chosen Claude subscription on every linked T3 fleet host (grok-bot, beep-worker, dankserver, tbk-worker, tom-pc-1-wsl). Use when a Claude account hits its weekly limit, when `bun run beep accounts` shows the fleet's account used up, or on `\u002Fauth-environments`. Opens each host's OAuth page and a masked KDE code dialog together and verifies the admitted account.","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fauth-environments\u002FSKILL.md",[],[115,116,117,118,119,120,121,25,122,123,29,124,125,126,127,128,129,130,131,26],"auth","environments","auth environments","path","limit","page","python","dialog","fleet","active","weekly","bot","workstation","up","worker","host","code",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":38},"01M6C0RK94T5QGSZ0K9TA5Q2EF","shadcn","Fixture for immutable shadcn skill provenance.","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002Fpackages\u002Ftooling\u002Ftool\u002Fcli\u002Ftest\u002Ffixtures\u002Fskills-provenance\u002Fshadcn\u002Fupstream\u002FSKILL.md",[],[134,139,140,141,24],"immutable","provenance","fixture",{"skillNo":143,"name":144,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":38},"01M6C0RGPWMYM5KS62ZZPNAZ0W","qa-inventory-judge","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002Fpackages\u002Ftooling\u002Ftool\u002Fcli\u002Fskills\u002Fqa-inventory-judge\u002FSKILL.md",[],[148,149,150,151],"inventory","qa","qa inventory judge","judge",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":156,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":164,"publishedAt":38},"01M6C0RDVR0A6W6ZJCJMEYJT77","practice-onboarding","Set up a lawyer's computer for their practice through the practice gateway. Use when the lawyer asks to get set up, to connect their documents, mail, calendar or practice tools, or when the practice gateway reports that setup is incomplete. Interviews the lawyer one question at a time, saves a practice profile, then checks and repairs the computer until setup is complete.","MIT","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002Fapps\u002Fpractice-gateway\u002Fplugin\u002Fskills\u002Fpractice-onboarding\u002FSKILL.md",[159],{"categoryNo":160,"categoryName":161,"taxonomyType":162,"taxonomyTypeDesc":163},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[165,166,167,168,169,170,171,172,26,128,173,174,175,176,177,178,179,180,181,182,131,183,184,185,186,187,188],"onboarding","practice onboarding","at","guide","interviews","calendar","mail","reports","time","get","save","question","profile","Tools","setup","beep","status","desktop","documents","connect","computer","windows","gateway","SET",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":198,"publishedAt":38},"01M6C0RB09NRJN0E1W3ND9HDE6","triage-nda","Screen NDAs before inventor disclosures or client pitches at Oppold IP Law. Flag disclosure, residuals, marking, term, and hidden IP rights for attorney review.","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002Fapps\u002Fpractice-claude-mod\u002Fskills\u002Ftriage-nda\u002FSKILL.md",[195],{"categoryNo":196,"categoryName":197,"taxonomyType":162,"taxonomyTypeDesc":163},"01JBSEEDCAT000000000000037","律师与法务",[199,200,201,202,203,204,205,206,207,208,167,209,210,211,212,213,24],"nda","triage","triage nda","2026","screen","ip","plugins","work","review","knowledge","knowledge-work","legal","client","hidden","rights",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":221,"publishedAt":38},"01M6C0R8B5D35H50QY426AYR39","review-contract","Review IP agreements for Oppold IP Law. Use for assignments, licenses, inventor agreements, joint development, or NDAs involving inventions. Prepare cited issues and proposed revisions for attorney review.","https:\u002F\u002Fgithub.com\u002Fbeep-effect\u002Fbeep-effect\u002Fblob\u002Fmain\u002Fapps\u002Fpractice-claude-mod\u002Fskills\u002Freview-contract\u002FSKILL.md",[220],{"categoryNo":196,"categoryName":197,"taxonomyType":162,"taxonomyTypeDesc":163},[207,222,223,202,209,210,23,204,24,224,205,206,208,225,226],"review contract","contract","prepare","issues","development"]