@soleur/opencode 1.0.0 → 3.354.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/commands/go.md +6 -5
- package/commands/sync.md +2 -2
- package/install.js +6 -85
- package/lib/harness.ts +1 -1
- package/lib/heartbeat-manifest.ts +19 -0
- package/lib/pr-merge-poll.ts +2 -2
- package/lib/workflow-fidelity.ts +2 -2
- package/opencode/INSTRUCTIONS.md +19 -0
- package/opencode/plugin.ts +343 -18
- package/package.json +1 -1
- package/scripts/admin-merge-ready.sh +1 -1
- package/scripts/admin-merge-ready.test.sh +0 -0
- package/scripts/affected-tests.sh +0 -0
- package/scripts/alpha-metrics.sh +0 -0
- package/scripts/alpha-metrics.test.sh +0 -0
- package/scripts/check-red-on-main.sh +0 -0
- package/scripts/ci-head-verdict.sh +54 -6
- package/scripts/cloud-detect.sh +0 -0
- package/scripts/delegation-verify.sh +0 -0
- package/scripts/delegation-verify.test.sh +0 -0
- package/scripts/deploy-arm.sh +0 -0
- package/scripts/domain-model-drift.sh +0 -0
- package/scripts/emit-decision.sh +0 -0
- package/scripts/emit-decision.test.sh +0 -0
- package/scripts/ext-filter-divergence.sh +0 -0
- package/scripts/grok-fidelity-gate.sh +0 -0
- package/scripts/grok-pre-push-gate.sh +0 -0
- package/scripts/install-opencode-adapter.ts +118 -129
- package/scripts/lib/affected-tests/common.sh +0 -0
- package/scripts/lib/affected-tests/go.sh +0 -0
- package/scripts/lib/affected-tests/js.sh +0 -0
- package/scripts/lib/affected-tests/nx-turbo.sh +0 -0
- package/scripts/lib/affected-tests/python.sh +0 -0
- package/scripts/lib/session-state.sh +0 -0
- package/scripts/lib/tmp-classify.sh +0 -0
- package/scripts/monitor-pr-checks.sh +1 -1
- package/scripts/pipeline-tally.sh +0 -0
- package/scripts/plugin-version.sh +0 -0
- package/scripts/precommit-guard.sh +3 -1
- package/scripts/precommit-guard.test.sh +0 -0
- package/scripts/render-c4-model.sh +0 -0
- package/scripts/resolve-regenerable-conflicts.sh +0 -0
- package/scripts/run-in-pid-namespace.sh +0 -0
- package/scripts/setup-ralph-loop.sh +0 -0
- package/scripts/sync-npm-package.ts +74 -87
- package/scripts/sync-opencode-adapter.ts +19 -0
- package/scripts/sync-pr-behind.sh +183 -70
- package/scripts/taste-profile-update.sh +0 -0
- package/scripts/taste-profile-update.test.sh +0 -0
- package/scripts/write-budget-marker.sh +0 -0
- package/skills/deepen-plan/SKILL.md +1 -1
- package/skills/deploy/references/hetzner-setup.md +5 -3
- package/skills/drain-prs/SKILL.md +3 -2
- package/skills/fix-issue/SKILL.md +8 -8
- package/skills/fix-issue/references/agent-authored-exclusion.md +4 -2
- package/skills/fix-issue/references/exclude-label-jq-snippet.md +4 -3
- package/skills/merge-pr/SKILL.md +5 -3
- package/skills/model-launch-review/SKILL.md +4 -4
- package/skills/one-shot/SKILL.md +1 -1
- package/skills/plan/SKILL.md +1 -1
- package/skills/plan/references/plan-sharp-edges.md +7 -1
- package/skills/postmerge/SKILL.md +2 -2
- package/skills/postmerge/references/deploy-status-debugging.md +3 -0
- package/skills/review/SKILL.md +14 -15
- package/skills/review/references/review-evidence-comment.md +36 -0
- package/skills/review/references/risk-tier-and-fix-rounds.md +2 -0
- package/skills/ship/SKILL.md +14 -13
- package/skills/ship/references/cleanup-merged-archival.md +39 -0
- package/skills/ship/references/delegated-act-authoring-form.md +7 -0
- package/skills/ship/references/epic-close-sweep.md +62 -0
- package/skills/ship/references/merge-queue-dequeue.md +1 -1
- package/skills/ship/references/operator-holds.md +30 -0
- package/skills/ship/references/queue-mode.md +1 -1
- package/skills/ship/references/ready-run-wait.md +3 -3
- package/skills/test-fix-loop/SKILL.md +1 -1
- package/skills/verification-scaffold/SKILL.md +73 -0
- package/skills/verification-scaffold/references/gitleaks.toml.template +13 -0
- package/skills/verification-scaffold/references/guardrail-audit.md +156 -0
- package/skills/verification-scaffold/references/guards/block-stash-hook.sh.template +72 -0
- package/skills/verification-scaffold/references/guards/commit-on-main-hook.sh.template +82 -0
- package/skills/verification-scaffold/references/guards/orphan-test-check.sh.template +102 -0
- package/skills/verification-scaffold/references/guards/precommit-guard.sh.template +115 -0
- package/skills/verification-scaffold/references/guards/secret-scan-hook.sh.template +176 -0
- package/skills/verification-scaffold/references/guards/verification-gates.yml.template +49 -0
- package/skills/verification-scaffold/references/guards/wrapper-boundary.sh.template +47 -0
- package/skills/verification-scaffold/references/guards.tsv +21 -0
- package/skills/verification-scaffold/references/verification-readme.template +55 -0
- package/skills/verification-scaffold/scripts/verification-scaffold.sh +785 -0
- package/skills/verification-scaffold/test/bite-proof.test.sh +159 -0
- package/skills/verification-scaffold/test/generator.test.sh +319 -0
- package/skills/verification-scaffold/test/manifest.test.sh +144 -0
- package/skills/work/SKILL.md +2 -1
package/skills/work/SKILL.md
CHANGED
|
@@ -1475,5 +1475,6 @@ See [references/key-principles.md](${CLAUDE_PLUGIN_ROOT}/skills/work/references/
|
|
|
1475
1475
|
- **`VAR=$(<file) 2>/dev/null` does not suppress — bash expands before it redirects for an assignment-only command.** A simple command consisting *only* of assignments applies its redirections after the right-hand side is expanded, so a missing file still prints `No such file or directory` to the ORIGINAL stderr — and in a test harness that captures the subject's output (`cmd 2>&1`), that noise lands in the captured text every run, corrupting exactly the diagnostics you read when something fails. Brace it: `{ VAR=$(<file); } 2>/dev/null || VAR=0`. The trap is that this shape is usually introduced as an *optimization* over a correct `VAR=$(cat file 2>/dev/null || echo 0)` (dropping a fork on a hot path), so it reads as strictly better while being a regression. Same family: `x=$(cmd) 2>/dev/null` for any `cmd`. Sibling trap in the same class — a redirect that binds to the wrong thing: `VAR=$(tr a b < "$f" 2>/dev/null)` sends *`tr`'s* stderr to `/dev/null`, not the input redirection, so a missing `$f` makes the assignment non-zero and, under `set -euo pipefail`, aborts the WHOLE suite rather than failing one test — guard the read (`[[ -s "$f" ]] || VAR="<missing>"`) instead. **Why:** #6665 — both shipped into a test harness and were caught by two independent review agents. See `knowledge-base/project/learnings/2026-07-28-the-property-my-pr-existed-to-buy-was-pinned-by-nothing.md`.
|
|
1476
1476
|
- **Emitting a forward-looking sentence as the last thing in a turn.** "Continuing to compound → ship" at the end of a response is not a handoff, it is an abandoned pipeline — the operator has to ask whether it happened. A phase-complete marker (`## Work Phase Complete`, `## Review Phase Complete`) is a CHECKPOINT: the next tool call in the SAME response must be the successor skill invocation. Stating an intention is not performing it. **Why:** #6588/PR #6716 — review completed, the turn ended on "continuing", and the operator had to prompt for the rest of the pipeline.
|
|
1477
1477
|
- **A Monitor script must detect completion from rc/marker FILES, never `pgrep -f`.** The Bash hook blocks `pgrep -f` because it matches its own `bash -c` wrapper; a Monitor command is not covered, so a `pgrep -f "$D/run.sh" || echo GONE` arm silently never fires. And when stopping a multi-stage runner (`stage1; stage2` in one `setsid` script), kill the SCRIPT first — killing only the current `test-all.sh` lets the script advance and orphan the next stage onto `systemd --user`. **Why:** #8189.
|
|
1478
|
-
- **Relaunching a long-running background bash before verifying it died** -
|
|
1478
|
+
- **Relaunching a long-running background bash before verifying it died** - Do NOT relaunch until ALL three checks confirm death: (1) broad `ps -ef \| grep -E '<substring>' \| grep -v grep` (never `pgrep -fa 'pattern$'` — anchored patterns miss `doppler run -- bash` wrappers), (2) output size stopped growing over 30+ s, (3) the harness `<task-notification>` fired with a definitive `status`. Log `mtime` is NOT liveness — scripts buffer output. **Why:** PR #4156 — anchored `pgrep` + stale mtime launched a second bench (~$3 wasted). See `knowledge-base/project/learnings/workflow-issues/2026-05-20-long-running-bench-verify-process-before-relaunch.md`. **The inverse is as costly: STOPPING one means killing the tree, not the PIDs you launched.** `run-registered-suites.sh` fans out via `xargs -P 6`, so killing its wrapper and runner leaves the workers orphaned and running — measured 46 min still spawning containers. Resolve the root's descendants (`pstree -p <root>`), confirm each `/proc/<pid>/cwd` is YOUR worktree before killing, and re-probe afterwards — an unverified kill was never made. **A killed `test-all.sh` leaves its `flock -w 3600` lock waiter alive** — the orphaned `flock` holds a `lefthook` pre-commit open until killed; enumerate every process whose `/proc/<pid>/cwd` is the worktree, not only runner names (#7941/PR #8070).
|
|
1479
1479
|
- **Capture `git commit`'s rc on the very next line — a trailing command owns the call's exit status.** `git commit …; git log --oneline -1` in one background call reports exit 0 when lefthook REJECTED the commit, and the log line (showing the previous commit) reads as success. Write `git commit …; echo "COMMIT_RC=$?"` and read that line, then confirm HEAD moved. **Why:** #8474 — a failed gate (`🥊 bun-test`, 471/477) went unnoticed until the next step found the changes still staged. See `knowledge-base/project/learnings/2026-09-21-every-gate-this-pr-added-failed-open-on-the-input-it-could-not-measure.md`.
|
|
1480
|
+
- **A diff adding or renaming members an existing derived artifact enumerates owes the FULL regen sweep — the plan's list is a hypothesis, not the set.** Run every regenerator the touched paths can invalidate (regenerate-*, sync-*-counts, *baseline* scripts) — N reds on M surfaces is ONE gap. **Why:** #10404/PR #10744 — three committed-state reds from one incomplete sweep (0400ffe62a). See `knowledge-base/project/learnings/2026-10-21-one-regen-gap-three-committed-state-reds.md`.
|