Skip to content

ship-queue: stamped merge-train prefixes and train land (GSTA-154 PR B) - #3595

Open
garrytan wants to merge 15 commits into
gsta154-changelog-fragmentsfrom
gsta154-train-stamps
Open

garrytan wants to merge 15 commits into
gsta154-changelog-fragmentsfrom
gsta154-train-stamps

Conversation

@garrytan

@garrytan garrytan commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner
{
  "schema_version": 1,
  "pr": 3595,
  "head": "fa62ea355565f5e224659df9f06dcb1ef1b10358",
  "version": "1.91.312.0",
  "base": "gsta154-changelog-fragments",
  "gate": {
    "tests": {
      "pass": 23641,
      "fail": 0,
      "skip": 0
    }
  },
  "session_kind": "unattended",
  "head_tree": "04e1d1cc68aa9fd4b80b8ddd5f2cb6142486b3e0",
  "product_patch_id": "4100c73a59e93bdb7529676d22d8d2f40c6a8697",
  "gstack_version": "1.91.313.0",
  "review_depth": {
    "depth": "full",
    "class": "gate",
    "runtime_lines": 509,
    "rules": "9bc0e4d2f74ef6b4",
    "base": "b12d406573aef97a24be230c3a087c81dedbf1a4",
    "registry": "b12d406573aef97a24be230c3a087c81dedbf1a4",
    "gate_scan": {
      "tagged": 0,
      "head": "fa62ea355565f5e224659df9f06dcb1ef1b10358"
    },
    "reasons": [
      "gate-class",
      "runtime=509>50"
    ]
  },
  "pregate": "requires-remote cleared @04e1d1cc68aa (1 checks, current for fa62ea355565)",
  "requires_remote": [
    "free-tests.yml/cso-macos-launcher: https://github.com/garrytan/gstack/actions/runs/40854173484",
    "free-tests.yml/macos-named-regressions: https://github.com/garrytan/gstack/actions/runs/40854173484",
    "windows-free-tests.yml/windows-free-shard: https://github.com/garrytan/gstack/actions/runs/40854180721",
    "pregate.json/remote_gate: remote-gate tree=04e1d1cc68aa tests=23641"
  ],
  "issues": {
    "fixes": [],
    "refs": [
      3557,
      3567,
      3599,
      3603
    ],
    "flakes": []
  },
  "docs": {
    "status": "blocked",
    "scope": "docs/ (ship-policy, troubleshooting, recommended-harness, captain), captain/templates, captain/SKILL.md.tmpl against the b12d406..d414d9d diff",
    "exception": {
      "accepted_by": "GStack Minder for Garry",
      "date": "2026-10-29",
      "via": "GSTA-154",
      "reason": "/captain SKILL.md.tmpl Merge trains still teaches only the slot-call loop; the policy-flip PR teaches train land and changelog_fragments stays off until the pilot"
    }
  },
  "review_loop": {
    "passes": 1,
    "blocking_found": 7,
    "deferred": 4,
    "noted": 12,
    "fixed": 10,
    "scope": "frozen",
    "fix_checks": 6,
    "dispatches": {
      "specialist": 6,
      "red-team": 1
    }
  }
}

GSTA-154 PR B, stacked on #3594 (draft). /ship runs after PR A; the body is replaced by the /ship receipt and PR summary.

Open in Capy

What changed

gstack-ship-queue train gains land: under changelog_fragments a train builds stamped prefixes S_i and train land publishes each slot's S_i exactly

gstack-ship-queue train gains land: under changelog_fragments a train builds stamped prefixes S_i and train land publishes each slot's S_i exactly, so no lane stamps a slot by hand.

Before/after as text: train help
   train build --prs <n>@<sha>[,...] [--order <n>,...] [--urgent | --repair] [--dry-run [--stack-tests [--stack-tests-command "<cmd>"]]] [--free-timeout <s>]
+                                           [--allow-repo-commands]: changelog_fragments trains stamp S_1..S_k with the
+                                           base policy's restamp_command or release_tool
   ...
   train verdict --train <nonce>            read the gate run and its record: GREEN, RED, INCOMPLETE or PENDING
+  train land --train <nonce> --pr <n> [--no-wait] [--timeout <min>]
+                                           (changelog_fragments trains) publish slot n's stamped prefix S_i: commit its tree on
+                                           [pin, main], push under the pin's lease, wait for checks, squash, confirm main is S_i

Why

Stacked on #3594. With fragments, a PR no longer carries a version, so a train has to assign versions itself. Today the controller makes a slot call and the lane stamps, verifies and waits per slot (a median 14.5 minutes from stamp commit to merge over 30 slots, Oct 27-29). Here train build computes every slot's stamped tree S_i = stamp(merge(S_(i-1), pin_i)) up front and gates S_k, so the gate covers exactly the trees that land, and train land publishes them without a lane.

Blast radius

Everything new is reachable only from a train built under changelog_fragments, which gstack's own policy leaves off; plain trains, slot calls and verify --train behave as before. Shared with #3594 and other lanes: docs/ship-policy.md, docs/captain.md, docs/troubleshooting.md, docs/recommended-harness.md, captain/templates (READY.md, slot-call.md), lib/ship-queue*.ts, lib/restamp.ts, lib/ship-policy.ts, lib/changelog-fragments.ts, lib/version-gate-train.ts, lib/result-codes-release.ts, scripts/train-gate.ts, scripts/train-backstop.ts, scripts/lib/windows-curation.ts, bin/gstack-doctor-components.sh and CHANGELOG.md.

With fragments off. train build makes stamped prefixes only under changelog_fragments (lib/ship-queue-train.ts:428) and train land refuses a record without them (test "a plain train refuses train land"). train land does not read the policy key itself, so a hand-edited or forged train note could still reach its merge-confirm path with fragments off. #3603 tracks the record-trust follow-ups; until it lands, keep train land out of production trains.

Approvals

Date Asked Exact words Outcome Covers Still pending
2026-10-29 Approve GSTA-154: merge-time versioning as two stacked PRs “Do it” (Garry (via GStack Minder)) approved full scope; B's pretests and reuse speedup wait for GSTA-156 none
2026-10-29 Fourth fix cycle on B past the review cap “do it” (GStack Minder) approved rule 23 exception, one cycle none
2026-10-29 Redesign train land's record checks “Redesign” (GStack Minder) approved verify the whole chain once at the top of trainLand; one fix-check and one adversarial pass none
2026-10-29 Enforce REQUIRED_CHECKS in land “So land has to enforce it itself” (GStack Minder) approved changelog_fragments.required_checks none
2026-10-29 /captain §Merge trains docs debt; #3603 as follow-up “accept” (GStack Minder) approved named in this body and the READY none

Summary

train build (lib/ship-queue-train-stamp.ts) builds S_1..S_k on top of the plain prefixes, checks each S_i equals the plain prefix outside release paths and keeps every earlier release entry byte for byte (QUEUE_TRAIN_STAMP_MISMATCH), refuses a symlinked release file before stamping, and gates S_k. train land --train <nonce> --pr <n> (lib/ship-queue-train-land.ts) first verifies the whole record against git: T0 and S_1..S_k must be the gated head's first-parent chain, with each S_i's second parent equal to slot i's pin. Every later step uses only that verified chain. It makes a deterministic stamp commit of S_i on [pin, main] with a fixed identity and no signing, journals it, pushes under the pin's lease with evals-no-debounce, waits for checks, refuses unless every name in the new changelog_fragments.required_checks is present and green on that commit, squashes with --match-head-commit and confirms main's tree is S_i. A rerun adopts its own journaled stamp, a retargeted PR refuses, an earlier slot out of order refuses without freezing, and any other main freezes the queue as before. Train merges now resolve a package.json or lockfile conflict three-way; the main backstop covers a stamped prefix only by exact tree; train bisect of a stamped train tests T0 and S_1..S_k; Version Gate skips a stacked parent's already-released fragment.

Test Coverage

New tests: test/ship-queue-train-stamp.test.ts (S_i order and bumps, stacked child fold, four-part package.json, manifest edit survival, symlinked CHANGELOG, tampered earlier version), test/ship-queue-train-land.test.ts (exact publish with the label, foreign push never overwritten, merge outside the train freezes, failed stamp commit pushes nothing, rerun after push or journal resumes, retargeted PR, stamped bisect, plain train refused, forged chain entries, a required check that never reported), test/train-backstop.test.ts, test/version-gate-fragments.test.ts. Review fixes landed with failing-first tests (7/7 for the Codex batch; the required-check test fails on b1c6e9f).

Tests ran: remote free tier 23641 tests, 0 failed (tree 04e1d1cc); macOS and Windows lanes cleared by dispatched runs 40854173484 and 40854180721

Pre-Landing Review

Pass 1 (six specialists and the red team) found 7 blocking defects; the Codex outside voice and the native adversarial pass found more. Fixed: commit-tree failure pushing a branch deletion, push before journal freezing the queue, symlinked release files, manifest conflicts dropping pin edits, retargeted PRs, stacked-child double counting, failed base refresh, stamped bisect. Fix checks 2 to 4 each found a record field the per-slot guards left unverified; after the fourth cycle (GStack Minder's exception) the record checks were redesigned into one verified-chain pass. The redesign's fix-check raised two CRITICALs outside the verified-chain logic (slot↔PR binding and trust in t.merged), filed as #3603 under GStack Minder's ruling. The final pair on fa62ea3 bound clean.

REVIEW_LOOP: passes=1 blocking_found=7 deferred=4 noted=12 fixed=10 scope=frozen fix_checks=6 dispatches=7

Deferred: #3599 (train land skips the shared land lock; one controller merges under CREW rule 6) and #3603 (slot↔PR binding, t.merged, t.head validation, journal-resume tree, intermediate S_i, required_checks name matching).

Review notes

  • Without required_checks, the stamp commit can read green before every check has registered (the same class as ship-queue: assign VERSION/CHANGELOG at merge time (changelog fragments + gstack-ship-queue land) #3594's late-registering checks note). Set required_checks when turning fragments on.
  • required_checks is read from main's policy at land time, not pinned in the train record.
  • docs/ship-policy.md:398 says "here and again before the merge"; only the retarget check re-runs before the merge.
  • Informational (listed, not looped): simplification at lib/ship-queue-train-land.ts:26, performance and testing at lib/ship-queue-train-stamp.ts:66, testing at lib/ship-queue-train-land.ts:59 and lib/ship-queue-train.ts:418.
  • Pregate: the first remote run died in VM setup because this checkout's untracked node_modules symlink was shipped dangling; it was excluded locally (no tracked change) and the gate reran at the commit's own tree.

Exploratory QA

No separate probes. train land's gh-backed paths run in test/ship-queue-train-land.test.ts against a gh shim; the live pilot is one train with GStack Minder after READY.

Design Review

No frontend files changed — design review skipped.

Eval Results

No prompt or skill-template change; the paid gate runs on the train.

Plan Completion

Plan items 10-16 (stamped prefixes, gate S_k, train land, backstop by exact tree, stamped bisect) are built here. Deferred with approval: S_i pretests, the controller reuse check and train-prefix refs wait for GSTA-156; peer-repo opt-ins and gstack's policy flip come after the pilot train.

Issues

Refs #3557
Refs #3567
Refs #3599
Refs #3603

Verification Results

Focused suite: 268 green, none red; docs tests: 316 green, one E18 5 s timeout under load that passes alone; bun run gen:skill-docs && bun run build clean.

TODOS

No TODO items completed in this PR.

Documentation

Status: blocked. Factual edits to docs/ship-policy.md, docs/troubleshooting.md and docs/recommended-harness.md; the /captain skill's merge-train section is open.

Documentation exception: accepted by GStack Minder for Garry 2026-10-29 via GSTA-154: /captain SKILL.md.tmpl Merge trains still teaches only the slot-call loop; the policy-flip PR teaches train land and changelog_fragments stays off until the pilot

Scope: branch gsta154-train-stamps against gsta154-changelog-fragments: docs/ship-policy.md, docs/troubleshooting.md, docs/recommended-harness.md, docs/captain.md, captain/templates/READY.md, captain/templates/slot-call.md, captain/SKILL.md.tmpl, docs/skills.md.

Documentation health:

  • docs/ship-policy.md: Updated (train land steps, failed fetch, retarget refusal, journaled stamp, stamped bisect, three-way manifest merges, required_checks)
  • docs/troubleshooting.md: Updated (train land causes under QUEUE_NOT_READY, QUEUE_PROOF_MISSING, QUEUE_GATE_MISSING, QUEUE_TRAIN_UNTRUSTED, QUEUE_TRAIN_MOVED, QUEUE_TRAIN_TREE_MISMATCH)
  • docs/recommended-harness.md: Updated (fragment step; controller runs train land per slot)
  • docs/captain.md, captain/templates: Current
  • captain/SKILL.md.tmpl, docs/skills.md: Blocked (slot-call loop only)

Coverage debt: train land has no /captain skill or docs/skills.md coverage; required_checks has no worked policy example; the TRAIN_HELP bisect line still says T0..Tk.

Diagram drift: docs/recommended-harness.md's mermaid flow shows only the slot-call loop (still true for plain trains).

Test plan

  • Focused suite (train stamp, train land, backstop, Version Gate, fragments, ratchets, tripwires): 268 green, none red
  • Remote free tier: remote free tier 23641 tests, 0 failed (tree 04e1d1cc); macOS and Windows lanes cleared by dispatched runs 40854173484 and 40854180721
  • bun run typecheck, bun run gen:skill-docs freshness, bun run build

🤖 Generated with Claude Code

garrytan and others added 10 commits October 29, 2026 08:52
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…publishes S_i exactly; backstop covers exact trees (PR B)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…r stamped trains

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…; regenerate the doctor anchors

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ndows-safe subset (same gh shim as the train tests)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
- train land checks commit-tree and stamps with a fixed identity and date, journals before the push, and
  adopts its own stamp head on a rerun; a failed commit-tree never pushes a branch deletion
- a symlinked release file in the merged tree refuses before the train stamp writes
- mergeStep merges a conflicted manifest three-way with the predecessor's version (mergeManifest, shared with land)
- train land refuses a PR retargeted off the base and a failed base refresh
- Version Gate skips a released fragment carried in by a stacked pin instead of counting its bump
- bisect of a stamped train tests T0 and S_1..S_k

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…amp step after a journaled, unpushed stamp

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@garrytan
garrytan force-pushed the gsta154-train-stamps branch from 85b51f2 to 739a374 Compare October 29, 2026 08:52
garrytan and others added 4 commits October 29, 2026 09:01
…stamping; a merge main does not show yet pends

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…order slot refuses without freezing; stamps never sign

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…e PR never reads as a move; reruns of landed slots confirm; T0 in the out-of-order refusal

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ing; require changelog_fragments.required_checks green on the stamp commit

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ume and required checks; stamped bisect; three-way manifest merges

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@capy-ai capy-ai Bot changed the title ship-queue: stamped train prefixes and train land (GSTA-154 PR B, stacked on A) ship-queue: stamped merge-train prefixes and train land (GSTA-154 PR B) Oct 29, 2026
@capy-ai
capy-ai Bot marked this pull request as ready for review October 29, 2026 10:11
@github-actions

Copy link
Copy Markdown
Contributor

E2E Evals: ✅ PASS

[test:paid] VERDICT GREEN — lane gate/pr, attempt 1
  rule 112/112 · behavior 1/1 · judge 24/24 · quarantined 0 (0 failing the lane)
  SKIPPED 0 · INFRA 0 · INCOMPLETE 0 · unattributed 0 · ACTION REQUIRED 0
  wall 6m14s · cost $33.86 known + 32 of 139 trial(s) cost unknown

125 executed, 0 reused rule/judge records | 0 manual accepted (unscored; no score-cache credit) | $33.18 rule/judge cost | reconcile exit: 0

Profile: pr / mode full-fallback; selected behaviors: 113, judges: 24. Deferred to scheduled/release coverage: 143 behaviors and 0 changed prompt files. Deferred checks did not run and receive no PR-pass credit.

Full gate restored by:

  • test/size-ledger/ship/gsta154-changelog-fragments.json (real unknown dependency): register test/size-ledger/ship/gsta154-changelog-fragments.json under the cases that consume it in test/helpers/touchfiles-data.ts, add it to FREE_ONLY_PR_FILES in scripts/test-pr-profile.ts if no paid case reads it, or add its directory to DERIVABLE_PREFIXES so scripts/pr-dependencies.ts derives its consumers

Derived dependents (scripts/pr-dependencies.ts):

  • bin/gstack-doctor-components.sh: 255 case(s), 24 judge(s)
  • bin/gstack-ship-queue: 255 case(s), 24 judge(s)
  • lib/changelog-fragments.ts: 255 case(s), 24 judge(s)
  • lib/pregate/remote-receipt.ts: 255 case(s), 24 judge(s)
  • lib/restamp.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-land.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-cli.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-github.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-land.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-record.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-stamp.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-verdict.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train-verify.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue-train.ts: 255 case(s), 24 judge(s)
  • lib/ship-queue.ts: 255 case(s), 24 judge(s)
  • lib/tree-receipt.ts: 255 case(s), 24 judge(s)
  • lib/version-gate-train.ts: 255 case(s), 24 judge(s)
  • scripts/lib/windows-curation.ts: 255 case(s), 24 judge(s)
Rule and judge shards
Shard Automated result Manual/unscored Executed Reused Status Cost
llm-judge/skill-llm-eval 24/24 0 24 0 ✅ $1.44
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-current 1/1 0 1 0 ✅ $0.97
e2e/skill-e2e-coverage-audit 2/2 0 2 0 ✅ $0.34
e2e-deploy/skill-e2e-deploy--setup-deploy-workflow 1/1 0 1 0 ✅ $0.13
e2e-qa-functional-fix/skill-e2e-qa-functional-fix 2/2 0 2 0 ✅ $0.97
e2e/skill-e2e-plan--plan-review-report 1/1 0 1 0 ✅ $1.05
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-unavailable 1/1 0 1 0 ✅ $0.95
e2e-retro/skill-e2e-retro 1/1 0 1 0 ✅ $0.29
e2e/skill-e2e-shared-libs-paths--shared-libs-review-prior-coverage 1/1 0 1 0 ✅ $1
e2e-qa-workflow/skill-e2e-qa-workflow--qa-quick 1/1 0 1 0 ✅ $0.5
e2e-review-attribution/skill-e2e-review-attribution 3/3 0 3 0 ✅ $0.28
e2e/skill-e2e-ship-skip 1/1 0 1 0 ✅ $0.26
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-stale-before 1/1 0 1 0 ✅ $0.4
e2e/skill-e2e-shared-libs--shared-libs-review-lifecycle 1/1 0 1 0 ✅ $0.91
e2e-review-army/skill-e2e-review-army--review-army-migration-safety 1/1 0 1 0 ✅ $0.32
e2e-deploy/skill-e2e-deploy--land-and-deploy-first-run 1/1 0 1 0 ✅ $0.33
e2e/skill-e2e-shared-libs--shared-libs-read-only 1/1 0 1 0 ✅ $0.25
e2e-deploy/skill-e2e-deploy--land-and-deploy-review-gate 1/1 0 1 0 ✅ $0.21
e2e-docsync-spawned/skill-e2e-docsync-spawned 1/1 0 1 0 ✅ $0.43
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-stale-after 1/1 0 1 0 ✅ $0.42
e2e-safety-codex-consult/skill-e2e-safety-codex-consult 1/1 0 1 0 ✅ $0.27
e2e-deploy/skill-e2e-deploy--land-and-deploy-workflow 1/1 0 1 0 ✅ $0.55
e2e/skill-e2e-workflow 4/4 0 4 0 ✅ $0.9
e2e-review-army/skill-e2e-review-army--review-army-perf-n-plus-one 1/1 0 1 0 ✅ $0.23
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-late-result 1/1 0 1 0 ✅ $0.33
e2e/skill-e2e-shared-libs-paths--shared-libs-review-index-flags 1/1 0 1 0 ✅ $0.94
e2e-deploy/skill-e2e-deploy--benchmark-workflow 1/1 0 1 0 ✅ $0.26
e2e/skill-e2e-investigate-owned-completion 1/1 0 1 0 ✅ $0.07
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-small-cli 1/1 0 1 0 ✅ $0.98
e2e-review-army/skill-e2e-review-army--review-army-json-findings 1/1 0 1 0 ✅ $0.07
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-store 1/1 0 1 0 ✅ $0.95
e2e-triage/skill-e2e-triage 1/1 0 1 0 ✅ $0.11
e2e-review-army/skill-e2e-review-army--review-army-delivery-audit 1/1 0 1 0 ✅ $0.13
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-timeout-unsettled 1/1 0 1 0 ✅ $0.2
e2e-design/skill-e2e-design--design-review-detector-shim 1/1 0 1 0 ✅ $0.12
e2e-session-intelligence/skill-e2e-session-intelligence 4/4 0 4 0 ✅ $0.28
e2e-safety-pair-agent/skill-e2e-safety-pair-agent 1/1 0 1 0 ✅ $0.1
e2e-plan-tune/skill-e2e-plan-tune 1/1 0 1 0 ✅ $0.12
e2e-qa-workflow/skill-e2e-qa-workflow--qa-bootstrap 1/1 0 1 0 ✅ $0.08
e2e-deploy/skill-e2e-deploy--canary-workflow 1/1 0 1 0 ✅ $0.11
e2e/skill-e2e-investigate-owned-termination 2/2 0 2 0 ✅ $0.18
e2e/skill-e2e-ship-hook-refresh 1/1 0 1 0 ✅ $0.1
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-launch-failure 1/1 0 1 0 ✅ $0.16
e2e-design/skill-e2e-design--plan-design-review-no-ui-scope 1/1 0 1 0 ✅ $0.09
e2e-third-party-actions/skill-e2e-third-party-actions 5/5 0 5 0 ✅ $0.46
e2e/skill-e2e-ship-hook-consent 2/2 0 2 0 ✅ $0.25
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-recovery 1/1 0 1 0 ✅ $0.39
e2e/skill-e2e-shared-libs--shared-libs-review-revalidation 1/1 0 1 0 ✅ $1.96
e2e-review/skill-e2e-review 2/2 0 2 0 ✅ $0.33
e2e-cso/skill-e2e-cso 1/1 0 1 0 ✅ $0.39
e2e-qa-functional/skill-e2e-qa-functional 2/2 0 2 0 ✅ $0.78
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-late-input 1/1 0 1 0 ✅ $1.06
e2e-learnings/skill-e2e-learnings 1/1 0 1 0 ✅ $0.07
e2e-failure-routing/skill-e2e-failure-routing 4/4 0 4 0 ✅ $0.45
e2e-qa-workflow/skill-e2e-qa-workflow--qa-only-no-fix 1/1 0 1 0 ✅ $0.57
e2e-qa-callers/skill-e2e-qa-callers--review-exploratory-small-cli 1/1 0 1 0 ✅ $0.79
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-plan-checks 1/1 0 1 0 ✅ $0.84
e2e/skill-e2e-test-value 3/3 0 3 0 ✅ $0.7
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-failure 1/1 0 1 0 ✅ $0.71
e2e-skillify/skill-e2e-skillify 3/3 0 3 0 ✅ $0.81
e2e/skill-e2e-shared-libs-paths--shared-libs-review-path-eligibility 1/1 0 1 0 ✅ $1.4
e2e-hermetic/skill-e2e-hermetic-canary 2/2 0 2 0 ✅ $0.02
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-completion 1/1 0 1 0 ✅ $0.87
e2e-design/skill-e2e-design--design-review-plugin-handoff 1/1 0 1 0 ✅ $0.14
e2e-review-army/skill-e2e-review-army--review-army-quality-score 1/1 0 1 0 ✅ $0.11
e2e-design/skill-e2e-design--design-review-detector-shim-dom 1/1 0 1 0 ✅ $0.22
e2e-safety-ship-evidence/skill-e2e-safety-ship-evidence 1/1 0 1 0 ✅ $0.1
e2e-browse/skill-e2e-bws 6/6 0 6 0 ✅ $0.29
e2e/skill-e2e-shared-libs--shared-libs-unsupported-git 1/1 0 1 0 ✅ $0.18
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-missing-asset 1/1 0 1 0 ✅ $0.35
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-missing-marker 1/1 0 1 0 ✅ $0.16
Fail-closed reconciliation
-bws.test.ts
  slice 15  passed             27s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-missing-marker
  slice 15  passed             22s  test/skill-e2e-review-army.test.ts#review-army-quality-score
  slice 16  passed             55s  test/skill-e2e-third-party-actions.test.ts
  slice 16  passed             25s  test/skill-e2e-plan-tune.test.ts
  slice 16  passed             23s  test/skill-e2e-triage.test.ts
  slice 16  passed             38s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-timeout-unsettled
  slice 16  passed             38s  test/skill-e2e-ask-user-question-format-compliance.test.ts
  slice 16  passed             24s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-launch-failure
  slice 16  passed             40s  test/skill-e2e-session-intelligence.test.ts
  slice 16  passed             37s  test/skill-e2e-ship-hook-consent.test.ts
  slice 16  passed             25s  test/skill-e2e-investigate-owned-termination.test.ts
  slice 16  passed             23s  test/skill-e2e-design.test.ts#design-review-detector-shim
  slice 16  passed             21s  test/skill-e2e-deploy.test.ts#canary-workflow
  slice 16  passed             29s  test/skill-e2e-ship-hook-refresh.test.ts
  slice 16  passed             37s  test/skill-e2e-design.test.ts#plan-design-review-no-ui-scope
  slice 16  passed             26s  test/skill-e2e-review-army.test.ts#review-army-delivery-audit
  slice 16  passed             25s  test/skill-e2e-safety-pair-agent.test.ts
  slice 16  passed             27s  test/skill-e2e-qa-workflow.test.ts#qa-bootstrap
  slice 17  passed             12s  test/skill-e2e-learnings.test.ts
  slice 17  passed             16s  test/skill-e2e-diagram.test.ts
[test:paid] collector final outcomes: 125 executed, 0 reused; 125 passed, 0 failed, 0 manual accepted (unscored; no score-cache credit) (125 attempt records from 71 collectors; every record counts)
[test:paid] deselected testcases, zero credit (316):
[test:paid]    302  sibling case of a case shard (its own shard runs it)
[test:paid]      8  periodic-tier case (this lane runs gate)
[test:paid]      6  Bun hook placeholder of a skipped describe block (not a test)
[test:paid] VERDICT GREEN — lane gate/pr, attempt 1
  rule 112/112 · behavior 1/1 · judge 24/24 · quarantined 0 (0 failing the lane)
  SKIPPED 0 · INFRA 0 · INCOMPLETE 0 · unattributed 0 · ACTION REQUIRED 0
  wall 6m14s · cost $33.86 known + 32 of 139 trial(s) cost unknown
[test:paid] exercised-path map (shadow, non-blocking): 8 MAP_GAP line(s) over 106 executed case(s) with recorded commands
  MAP_GAP document-release bin/gstack-banned-terms: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP plan-review-report bin/gstack-plan-reality: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP plan-review-report browse/dist/browse: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP ship-exploratory-late-input bin/gstack-review-plan: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP ship-exploratory-plan-checks bin/gstack-review-plan: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP ship-exploratory-small-cli bin/gstack-review-plan: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP ship-exploratory-unavailable bin/gstack-review-plan: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
  MAP_GAP test-audit-report-only design/dist/design: non-blocking for this PR; the next census refresh widens the map (docs/TESTING_INTERNALS.md#exercised-path-map)
[test:paid] report: every planned shard accounted and passed

Sliced lane: planner → duration-packed executors → fail-closed report. Behavior cases run a pre-registered 3-trial panel (PASS at 2/3 with no contract violation); a PASS 2/3 is shown with its failed trial, never as a clean pass. Reused results retain their original provenance and expiry.

Dispatched narrow screen (gstack-ship-queue ready --screen) of merge commit ea95fba90d26ed006a46397c2f9f507e6f24cf85.

This branch has not been deployed

No deployments
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