9.1 KiB
Scratchpad — RI-050 orchestrator (jarvis, dragon-lin)
Mission: alpha 0.0.50 release-integrity floor. Issue #1275. Base next @ 476db12b.
Design SSOT: jarvis-brain docs/plans/2026-08-16_mosaic-stack-sdlc-protocol.md (SDLC-D-033..038).
Mode (Jason's directives)
- Orchestrator: jarvis (this session, dragon-lin). NOT mos-claude; work stays on this host.
- Workers: local pi headless —
pi --model zai/glm-5.3:high -pin the card's worktree, tools read,bash,edit,write. - Delegation override of stack AGENTS.md
agentcolumn: rows carrypi-glm-5.3(outside cron table so no auto-claim). - Target branch:
next. Cards branch fromorigin/next, squash-merge via PR.
Operational constraints (measured this session)
- Main checkout at
/home/jwoltje/src/mosaic-stackis a dirty divergedmain(ahead 1139/behind 711) — NEVER touched. All work in/home/jwoltje/src/mosaic-stack-worktrees/<branch>. - Disk: /home 187G free. /tmp only 8.7G — keep pnpm stores/node_modules under /home.
mainandnexthave DIVERGED; PRs targetnext.- Identity: pin
GITEA_LOGIN=mosaicstack-jarvisfor all wrapper ops. Issue #1275 verified authored by @jarvis. ci-queue-wait.shon this host is fail-open (board: fix #1032 not installed) — substitute SHA-status checks via/commits/{sha}/statusand diff failing step names.- CI on PRs runs
pull_requestpipelines (any branch) incl. ci-postgres service. Push CI runs on main only; publish runs on push/tag to next + manual. - Wrapper gaps on this host per board (7 gaps; e.g. no pr-review-list, issue-assign broken, pr-merge makes no trailers): verify outcomes by reading back provider state, never trust rc alone.
- Publish pipeline currently: install → build → publish-npm/publish-next-npm (+image). No verify. CI steps: install, sanitization, upgrade-guard, typecheck, lint, format, test, ci-postgres.
Budget
Soft cap 250K. Projected 190K across 10 cards. Track per-card used vs estimate in TASKS.md notes.
Progress log
- 2026-08-16 23:52 — Issue #1275 created (@jarvis verified).
- 2026-08-16 23:5x — Bootstrap branch
docs/ri-050-mission-bootstrapfrom origin/next@476db12b; PRD section + TASKS.md + this scratchpad written. RI-0-001 in-progress.
Wave 1 dispatched (2026-08-17 00:35)
- RI-1-001 worker: pi glm-5.3:high, pid 2322125, worktree ri-1-001, log /var/tmp/ri-050/ri-1-001-run.log
- RI-2-001 worker: pi glm-5.3:high, pid 2322126, worktree ri-2-001, log /var/tmp/ri-050/ri-2-001-run.log
- Gotcha recorded: pi has no -f flag (that's pi-do.sh); pass brief as positional message. First launch died "Unknown option: -f" — relaunched.
- CI lane: PR #1276 (bootstrap) fails
testat base like every next PR — fred's green #1270 unblocks (comms sent 2026-08-17T05:21Z, comms/20260817T052148Z__from-jarvis__650fe8.md). Merge gate for all RI PRs queues behind #1270. - Live RI-N1 evidence posted to #1275 (comment 22915): pipeline 2439 publish-next-npm SUCCESS beside build-gateway FAILURE.
HANDOFF — RI-050 continuation (written 2026-08-17 ~08:45 UTC, jarvis/dragon-lin)
You are taking over the alpha 0.0.50 release-integrity workstream in place. Everything you
need is on the remote. Read this whole file, then docs/release-integrity/TASKS.md (same
branch), then the PRD section (docs/PRD.md § Release Integrity Workstream, same branch).
Identity / mode
- Orchestrator identity:
jarvis(dragon-lin). You continue as the RI-050 orchestrator under whatever identity Jason gives you — if you are NOT jarvis, say so in comms and PR bodies. - Jason's standing directives for this mission: work happens on THIS repo (mosaicstack/stack),
PRs target
next(NOT main), workers are local pi headless sessions onzai/glm-5.3:high. Do not hand this to mos-claude. Do not borrow other seats' lanes. - All wrapper ops: pin
GITEA_LOGIN=mosaicstack-jarvis(issue #1275 was verified authored by @jarvis; keep identity consistent or verify yours with issue-view and READ BACK user.login). - CI substitution rule (this host's ci-queue-wait.sh is fail-open; fix #1032 not installed):
judge CI by SHA-status via
/api/v1/repos/mosaicstack/stack/commits/{sha}/statusor the woodpecker API (pipeline-status.sh -r mosaicstack/stack -n N -f json), and DIFF THE FAILING STEP NAMES rather than trusting rc.
Mission state at handoff
Mission: alpha 0.0.50 release-integrity floor. Issue #1275 (open, has live-evidence comment).
Decisions SDLC-D-033..038 live in jarvis-brain
docs/plans/2026-08-16_mosaic-stack-sdlc-protocol.md (normative text also mirrored in the
PRD section on this branch, so this repo is self-sufficient).
Base: origin/next @ 476db12b. NOTE: main and next have DIVERGED — never base on main.
Branches (all pushed, all clean trees):
docs/ri-050-mission-bootstrap@5114faa2→ PR #1276 (open, mergeable) — bootstrap docs + this scratchpad + TASKS.md DAG. STATUS: CI red ontestonly, which is the known lane-wide failure (see blocker below); own prettier issue already fixed.feat/ri-050-publish-gate@0aa5ed35→ PR #1277 (open, mergeable) — RI-1-001 COMPLETE (worker reported success, orchestrator review PASSED: verify step asserts CI_COMMIT_SHA == git rev-parse HEAD then runs canonicalpnpm verify:release; every publish/image step depends_on verify directly, confirmed by parsing the DAG: publish-npm, publish-next-npm, build-gateway/appservice/web all -> [build, verify]; invariant test scripts/verify-release.test.mjs passes 7/7 locally with negative fixtures). CI: same known lane-redteststep only.fix/ri-050-forge-fail-closed@99b8f6ea→ PR #1278 (open, mergeable) — RI-2-001 worker reported success (typed FORGE_* capability errors, --simulate typed simulated everywhere, vacuous true/echo gates replaced, closed ForgeOutcome set, 116 tests green incl. 16 new). ORCHESTRATOR REVIEW NOT YET DONE — your first job. Review the diff (1391 insertions across forge src), check the fail-closed paths and that simulated results cannot satisfy any consumer, runpnpm --filter @mosaicstack/forge test.
The one blocker
Every next PR pipeline is red on ONE assertion:
packages/mosaic/framework/tools/fleet/test-start-agent-session.sh:103 ("host provides 'pi'
in the system path"). Pre-existing at base; affects PRs #1276/#1277/#1278 identically.
fred's PR #1270 ("unblocks every PR on next") is green and open — it is HIS to merge; do not
merge it yourself. jarvis sent comms (comms/20260817T052148Z__from-jarvis__650fe8.md in
jarvis-brain) asking merge timing; no reply yet as of handoff. Merge gates for ALL RI PRs
queue behind #1270 landing. Until then: review/develop freely, merge nothing that needs the
green gate (docs-only #1276 arguably could merge red-lane with Jason's explicit call — ask,
don't assume).
Remaining DAG (docs/release-integrity/TASKS.md is canonical)
Wave 2 (next): RI-2-002 MACP fail-closed (brief pattern: mirror RI-2-001 for
packages/macp/src/gate-runner.ts — empty commands, stub executors, unimplemented CI-provider
gates fail closed; explicit simulate) and RI-4-001 PRD authority (one PRD service;
@mosaicstack/prdy docs/prdy authoritative via mosaic mission --plan; mosaic prdy routes
or becomes named Markdown adapter; mission<->PRD linkage persists — see PRD RI-N3).
Wave 3: RI-3-001 probe inventory (docs), RI-5-001 web stale-safety.
Wave 4: RI-1-002 negative-control tests, RI-3-002 TS evaluator absorbs shell probes.
Final: RI-V-001 evidence pack (real green next publish run post-gate + all cards verified).
Worker mechanics (measured, reuse)
- Dispatch: create worktree
git -C /home/jwoltje/src/mosaic-stack worktree add /home/jwoltje/src/mosaic-stack-worktrees/<id> -b <branch> origin/next, write a brief to /var/tmp/ri-050/, then run from INSIDE the worktree:pi -p --no-session --model zai/glm-5.3:high --tools read,bash,edit,write "$(cat brief.md)"(pi has NO -f flag — pass the brief as a positional message; first dispatch died on that). - Briefs for 1-001/2-001 are at /var/tmp/ri-050/ on dragon-lin (may not survive; the pattern is fully described above and in TASKS.md).
- Briefs must carry: worktree path, branch, base, requirements, known base-red list (so the worker doesn't chase it), gates to run, PR creation command with GITEA_LOGIN pin, "do NOT merge, do NOT touch docs/TASKS.md", and the JSON report format.
- Verify worker claims: read the PR, run their tests yourself, parse pipeline step names.
Do-not-touch
- Main checkout at /home/jwoltje/src/mosaic-stack (dirty diverged main) — never touch.
- fred's open PRs (#1270 and others) — review evidence welcome, merging his is not yours.
- Other RI PRs' authors' lanes: #1277/#1278 are yours to gate and merge ONCE lane is green and review is recorded.
- Never
--no-verify; never bypass the wrapper-fails-closed rule (wrapper failure ⇒ blocked- report exact command + stop).
Session-restore command sequence
git -C /home/jwoltje/src/mosaic-stack-worktrees/ri-050 fetch origin --prune- Read this file +
docs/release-integrity/TASKS.md+ PRD section. - Check PR states (#1270, #1276, #1277, #1278) and lane CI (SHA-status per above).
- Review RI-2-001 (PR #1278) if not yet done; then dispatch wave 2.
— jarvis, 2026-08-17