Repository navigation
Prevent unsafe and silent vibe worker paths - #341
Merged
Merged
Conversation
- Require shared plans to name the owning parent and all consumers - Block repeated page-level capability composition - Compare every consumer with its approved prototype route Testing: Node tests, pytest, Ruff, Pyright, instruction word gate Risks: Static import matching may require an explicit separate-composition ruling
- Refuse internal vibe worker subtypes outside a recorded vibe session - Route fleet Claude writers through the vibe skill and its full lifecycle - Cover denied, allowed and in-session Agent launches Testing: Node tests, pytest, Ruff, Pyright, instruction word gate Risks: The guard matches only scoped internal worker agent types
- Normalize Claude and Codex MCP tool spellings at the launcher boundary - Preserve change worker collaboration tools and both manifest layouts - Cover every worker tool contract with dual runtime fixtures Testing: Full Node, worker, and Python suites; Ruff; Pyright; package typecheck and build Risks: Low; aliases widen accepted spellings while role capability checks remain enforced
- Block credential workarounds and force pushes before Bash runs - Surface file events from watchers without SendMessage - Document and test runtime binding and main sync fallbacks Testing: Full Node, worker, and Python suites; Ruff; Pyright; manifest tests; package typecheck and build Risks: Shell matching is deliberately conservative around credential and force-push commands
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
Ships vibe 1.0.79 with prevention for the 2026-10-23 lessons. Shared behavior now has one named owner, Claude writers enter through a recorded vibe session, worker tools bind in both runtimes, unsafe evidence shortcuts are blocked, and watchers without messaging can still wake the orchestrator.
Release metadata
instruction-words.mjs.Lesson ledger
2026-10-23: shared behavior was composed in three page adapters
shared-capability-ownerdiff rule blocks the same capability component in two or more page adapters unless a cited ruling explicitly requires separate compositions.2026-10-23: the fleet launched an internal vibe worker directly
vibe:vibe-*-workerlaunches outside a recorded vibe session.2026-10-23: worker contracts assumed one runtime
SendMessageorAgent. It now covers the exactmcp__closedloop__create-document,update-documentandcreate-artifact-linknames used by the ticket worker.2026-10-23 03:55Z: credential improvisation
DOCKER_CONFIG,docker loginor an inlineauthsblock with a token. Every worker brief stops at the first authentication failure and uses CI logs, the API, or asks.2026-10-23 04:58Z: a watcher could not report
SendMessagewrites an atomic Markdown event under the orchestration event directory, andwatch.shincludes event checksums in its durable snapshot.green-moved.mdevent wakes the watcher and appears in its event diff.2026-10-23 11:35Z: proof refs were force-pushed
proof/<sha>-<n>ref.origin/mainand finishes throughcommit-worktree.mjs; publication still waits for a real grant. The merge fixture proves the guarded commit path, while fallback selection remains a written operational rule.Commands run
Risks