Repository navigation
fix(vibe): ship the 1.0.77 lessons release and prose trim - #339
Merged
Merged
Conversation
- board.mjs question, answered and ack take a question id; status prints QUESTION-UNANSWERED with the id and UNACKED for an answer not acknowledged in 15 minutes. Answers to writers in long turns had to be sent three times. - hooks/foreground-guard.mjs refuses a foreground Bash wait over 5 minutes in a vibe session's worktree; long runs go to the background. - The fleet skill's two pane-messaging bullets become one. Testing: board and foreground-guard suites; vibe contracts. Risks: vibe session worktrees refuse foreground commands with a timeout over 5 minutes.
- green-watch.mjs --state raises NEW-RED per finished lane while its batch still runs; mock-gap.mjs judges each vi.mock block on its own. - pre-pr-lanes.mjs refuses a pull request until every lane the lane report names has a passing run recorded at HEAD; the environment worker, handoff and fleet QA prep run it. - Trim: prose a script enforces keeps only its command, and repeated rules are stated once, in the fleet-orchestrator, monitor, handoff and vibe skills; Markdown is about 930 words under 1.0.75. - vibe 1.0.77 and its changelog. Testing: green-watch, mock-gap, pre-pr-lanes, board and foreground-guard suites; each new check shown failing with its fix removed; vibe contracts pass. Risks: opening a vibe pull request now needs recorded lane runs.
- snapshot.sh adds each open PR that PR_SEARCH lists or WATCH_PR_AUTHOR opened, on any branch prefix, to prs.txt, and drops a merged or closed PR after reporting it once; STALE-PR names the writer from an optional third column. A writer sat silent for 1h40m on two PRs a hand-kept list never held. - The monitor skill names STALE-PR as a Claude pane writer's liveness signal; the fleet skill adds the writer column at assignment. Testing: snapshot.test.mjs, failing on the old snapshot.sh and with the prune or owner removed; vibe contracts. Risks: watched repos now add every open PR by the gh account.
- hooks/away-protocol.mjs, a UserPromptSubmit hook, adds the fleet away checklist on away phrases (brb, stepping away, afk, going to bed, heading out, back in <time>) and the return checklist on back phrases. The written away protocol was skipped after a brb. Testing: away-protocol.test.mjs with phrase fixtures and negatives, failing with the away match removed; vibe contracts. Risks: every Claude session with the plugin gets the checklist on those phrases; it is worded for fleet orchestrators only.
Collaborator
Author
|
Local vitest check on tools/vibe-workers at 04dd1cc: 717 of 751 passed, 34 failed. Every failure was a timeout (a test timeout or a spawnSync ETIMEDOUT); none was an assertion failure. This machine was at load average 57 to 84 for the whole run. That means this run proves nothing either way, so the suite still has no clean local run. This PR changes nothing under tools/, and CI ran the same suite green (TypeScript (vibe-workers)). |
Collaborator
Author
|
The local vibe-workers rerun was abandoned under load (57 to 84); CI's green TypeScript (vibe-workers) run is the evidence for this suite. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
This PR ships the last 2026-10-22 lessons and an operator ruling as one vibe 1.0.77 release, plus a trim pass. Each lesson gets a mechanical check, proven to fail without its fix. The trim brings 1.0.76 and 1.0.77 together to less instruction text than 1.0.75 had.
Release metadata
plugins/vibe/tools/python/test_vibe_1077_lessons_contract.py.plugins/vibeis about 830 words shorter (7,276 added, 8,108 removed across 1.0.76 and 1.0.77). This PR alone removes about 2,400 net words.Affected files
plugins/vibe/hooks/foreground-guard.mjs(inhooks/hooks.json),fleet-orchestrator/scripts/mock-gap.mjs,vibe/scripts/pre-pr-lanes.mjs, and their tests.fleet-orchestrator/scripts/board.mjs,green-watch.mjs,codex-fleet-monitor/scripts/snapshot.shand their tests.SKILL.mdandreferences/(setup, state, templates), codex-fleet-monitorSKILL.md, handoffSKILL.md, vibeSKILL.md,references/quality-loop.mdandreferences/guardrails.md.agents/vibe-environment-worker.md.Prevention closeouts
Answers to Claude writers had to be sent three times
Prevention
fleet-orchestrator/scripts/board.mjs(question ids, answers, acknowledgements), newhooks/foreground-guard.mjs, fleetSKILL.md,references/templates.md.rg -n "busy worker|turn ends|Esc|run_in_background|question" plugins/vibe/skills/fleet-orchestratorquestion,answeredandacktake--id;statusprintsQUESTION-UNANSWERED <writer> <id>, and printsUNACKED <writer> <id>for an answer not acknowledged in 15 minutes.board.test.mjs.foreground-guard.test.mjs.The green watcher sat on finished red lanes while one lane was still running
Prevention
fleet-orchestrator/scripts/green-watch.mjs(--state,NEW-RED), newscripts/mock-gap.mjs, fleetSKILL.mdgreen watch practice.rg -n "importOriginal|vi\.mock|conclusion" plugins/vibe/skills--state, green-watch printsNEW-REDthe first time a lane fails, while the rest of its batch runs.mock-gap.mjsjudges eachvi.mockblock on its own: it must spread the real module or name every export the code reads.NEW-REDmarker failsgreen-watch.test.mjs. Dropping the per-block module match failsmock-gap.test.mjs.Run the Vitest suites CI would run before raising a PR (operator ruling)
Prevention
vibe/scripts/pre-pr-lanes.mjs. It is run byagents/vibe-environment-worker.md(pull-request mode), handoffSKILL.md(its PR-open gate) and fleetSKILL.md(QA prep).rg -n "gh pr create|test:lanes|opens the pull request" plugins/vibecheck --report <lane report output>reads each lane command the report names; e2e lanes are skipped by default.record, at the current head.pre-pr-lanes.test.mjs. Accepting a run from an older head fails it too.--jsonfrom the repository's lane report would remove the text parsing.The watcher never flagged a Claude writer silent for 1h40m on two open PRs
Prevention
codex-fleet-monitor/scripts/snapshot.sh, monitorSKILL.md, fleetSKILL.md.rg -n "prs.txt|PR_SEARCH|WATCH_NEW_PR_REPOS" plugins/vibe/skillsprs.txtplus every open PR inWATCH_NEW_PR_REPOSthatPR_SEARCHlists orWATCH_PR_AUTHOR(default the gh account) opened, on any branch prefix.STALE-PRnames the writer from an optional thirdprs.txtcolumn.STALE-PRon a Claude pane writer's PR as that writer's liveness signal.fix/PR that is not inprs.txtand a merged PR. It fails on the previoussnapshot.sh, and fails again with the prune or the owner name removed.The away protocol was skipped after "brb"
Prevention
plugins/vibe/hooks/away-protocol.mjs(UserPromptSubmit inhooks/hooks.json), and fleetSKILL.md.rg -n "steps away|attention.md|away" plugins/vibe/skills/fleet-orchestratoraway-protocol.test.mjs.Instruction text grew against fleet-orchestrator's own rule
Prevention
SKILL.mdand its references, codex-fleet-monitorSKILL.md, handoffSKILL.md, and vibeSKILL.md,quality-loop.mdandguardrails.md.Commands run
node --teston board, foreground-guard, green-watch, mock-gap and pre-pr-lanes, thenpython3 -m pytest plugins/vibe/tools/python(393 passed).npm ci, typecheck, test and build fortools/vibe-workers.