Skip to content

ISS-12135: fix(vibe): keep local paths out of tickets and pull requests - #322

Merged
shafty023 merged 1 commit into
mainfrom
fix/vibe-lessons-no-local-paths
Oct 20, 2026
Merged

shafty023 merged 1 commit into
mainfrom
fix/vibe-lessons-no-local-paths

Conversation

@shafty023

Copy link
Copy Markdown
Collaborator

Purpose

One release (vibe 1.0.67) for the vibe lessons ledger entries added on 2026-10-20 after #317 merged, headed by the operator's hard rule on local paths. Successor to #317; later lessons batch into this PR until it merges.

Lessons carried

Hard rule: no local paths in anything written for people (operator, 2026-10-20). Tickets, PR bodies, PR comments and review replies never reference a path on the operator's machine (home, temp, scratchpad, worktree or .control/ paths) or say something is on someone's laptop. Screenshots are uploaded and embedded (create-document-version inlineImages), text evidence is quoted inline, briefly. Extension: a plan the ticket references is attached, never pointed at by path; an implementation plan is the PLN linked with create-artifact-link (PRODUCES), and a QA plan or other working file is uploaded with upload-attachment and named by its attachment name.

  • fleet-orchestrator/SKILL.md: new "Artifacts people read" section.
  • fleet-orchestrator/references/templates.md: the worker preamble and the Codex resume prompt carry the rule, so every writer gets it.
  • vibe/references/ticket-template.md: the live ticket rules (owner for ticket and PLN text); Visual evidence and Running app checks now carry embedded captures instead of .control/ artifact paths, with the ticket worker and handoff SKILL.md updated to match.
  • agents/vibe-environment-worker.md: the PR body and review replies follow the same rule.
  • Mechanical check: publishable-text.mjs pointerProblems refuses a line naming a local absolute or home path, a .control/ capture or the local plans folder, never echoing the value. live-ticket-check.mjs reports each as a Body problem; pr-facts.mjs adds each to blocking.prBody. The new tests fail on a home-directory screenshot path, a tilde path, a .control/ capture and a local plan path.

Codex to Claude takeover (#8958 preview rebuild refused). The takeover preamble said vibe could not move a Codex session, so the Claude writer ran beside a ledger that still named the dead Codex writer and dispatch-inputs refused every environment request. vibe 1.0.66 already has the harnessSwitch migration; the orchestrator skill and takeover preamble now use it before any other step. A seeded or blank mode change for a rebuild is touch --mode plus a new environment request (environment.md).

Orchestrator rules (fleet-orchestrator SKILL.md and judgment.md).

  • Preview fixes: a fix merged to main reaches a preview only once the preview's deploy ref contains it (stage deploys from green); check ancestry first.
  • Stale pre-enqueue worker (#8959): stop the worker and its processes rather than messaging it, relaunch narrowly; before enqueue run only the lanes the diff can affect, not full suites.
  • Storybook version bump conflicts (#8900): the shared release bump is made only at enqueue, with auto-merge armed in the same minute.
  • ISS-12644: being on main is not evidence of the final design; ask the owner which side is scaffold.
  • #8900 announcer: when a worker's alternative is accepted, withdraw the instruction at once.

Not plugin changes (left out): the remote machine running vibe 1.0.54 (an upgrade, not a rule), and the #8953 drag-to-status note already encoded in #317.

Cost

  • Instruction text (vibe agents/*.md and skills/**/*.md): +46 / -20 lines, net +642 words, mostly the hard rule in its four owners.
  • Whole PR: 18 files, +108 / -26.

Commands run (final head)

  • uv run pytest plugins/vibe: 361 passed
  • node --test over all 48 vibe *.test.mjs files: 438 passed
  • uv run ruff check and uv run pyright on the changed Python test: clean

Version

vibe 1.0.66 to 1.0.67 (both plugin manifests and the README), one CHANGELOG entry.

- Hard rule: tickets, PR bodies, comments and replies never name a path on
  the operator's machine; screenshots are embedded, text is quoted inline,
  plans are linked or attached
- pointerProblems in publishable-text.mjs, enforced by live-ticket-check and
  the pull request body gate
- Fleet orchestrator: harness switch takeover, affected lanes before enqueue,
  release bump at enqueue, preview deploy ref, stale workers, scaffold on
  main, withdrawn instructions
- Seeded or blank mode change through touch --mode
@shafty023
shafty023 merged commit 455e877 into main Oct 20, 2026
10 checks passed
@shafty023
shafty023 deleted the fix/vibe-lessons-no-local-paths branch October 20, 2026 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant