Skip to content

v1.91.277.0 feat(preamble): office-hours stops copying the shared AskUserQuestion subsections (GSTA-96) - #3453

Merged
capy-ai[bot] merged 85 commits into
mainfrom
gsta-96-dedupe
Oct 27, 2026
Merged

capy-ai[bot] merged 85 commits into
mainfrom
gsta-96-dedupe

Conversation

@garrytan

@garrytan garrytan commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner
{
  "schema_version": 1,
  "pr": 3453,
  "head": "a78ce08af9815b7ed6bdef9b91ee2c3d0df418a3",
  "version": "1.91.274.0",
  "base": "main",
  "gate": {
    "tests": {
      "pass": 20029,
      "fail": 0,
      "skip": "unreported",
      "files": 707,
      "runner": "gstack-pregate --stage tests --remote (Ubicloud standard-16)",
      "tree": "d3e1949478eaf20ff5f86f36ee4663db01d43457",
      "evidence": "FRESH remote tree=d3e1949478ea tests=20029 failed=0 spent=0.11 (head a78ce08af)"
    },
    "free-tests.yml/cso-macos-launcher": {
      "status": "requires-remote, cleared from dispatched CI at a78ce08af",
      "tests": 2
    },
    "free-tests.yml/macos-named-regressions": {
      "status": "requires-remote, cleared from dispatched CI at a78ce08af",
      "tests": 5
    },
    "platform-qualification.yml/ios-swift-build": {
      "status": "requires-remote, cleared from dispatched CI at a78ce08af",
      "tests": 1
    },
    "windows-free-tests.yml/windows-free-shard": {
      "status": "requires-remote, cleared from dispatched CI at a78ce08af",
      "tests": 707
    },
    "windows-setup-e2e.yml/windows-setup": {
      "status": "requires-remote, cleared from dispatched CI at a78ce08af",
      "tests": 1
    },
    "evals": {
      "status": "eval:select profile pr (full-fallback). Focused paid at b40a000ab (later commits change only CHANGELOG and a carve-guards comment): office-hours-auto-mode PASS 1/1, office-hours-section-loading PASS 1/1, office-hours-forcing-energy PASS 3/3 ($0.32), judges plan-ceo-review/SKILL.md modes, plan-eng-review/SKILL.md sections, plan-design-review/SKILL.md passes PASS ($0.18). No flakes. At a78ce08af eval:select is still pr full-fallback; auq-format-gate (red in train 20, attributed to #3434) selects through generate-ask-user-format.ts and preamble-hoist.ts, but plan-ceo-review/** and every other file in its closure are byte-identical to #3434's head (the two resolvers render plan-ceo-review unchanged), so #3434's auq-format-gate evidence applies here. The full gate runs once per merge train (crew rule 5)."
    }
  },
  "session_kind": "unattended",
  "queue_mode": "stamp-at-merge",
  "pregate": "requires-remote cleared @d3e1949478ea (1 checks, current for a78ce08af981)",
  "requires_remote": [
    "free-tests.yml/cso-macos-launcher: https://github.com/garrytan/gstack/actions/runs/40495076896",
    "free-tests.yml/macos-named-regressions: https://github.com/garrytan/gstack/actions/runs/40495076896",
    "platform-qualification.yml/ios-swift-build: https://github.com/garrytan/gstack/actions/runs/40495080401",
    "windows-free-tests.yml/windows-free-shard: https://github.com/garrytan/gstack/actions/runs/40495085009",
    "windows-setup-e2e.yml/windows-setup: https://github.com/garrytan/gstack/actions/runs/40495088810",
    "pregate.json/remote_gate: remote-gate tree=d3e1949478ea tests=20029"
  ],
  "issues": {
    "fixes": [],
    "refs": [
      3425,
      3433,
      3434,
      3451,
      3453,
      3472
    ],
    "flakes": []
  },
  "review_loop": {
    "passes": 3,
    "blocking_found": 0,
    "deferred": 0,
    "noted": 0,
    "fixed": 0,
    "scope": "frozen"
  }
}

Stacked on #3434 (shared-preamble hoist), which is READY at b727a6d and fully merged into this branch. #3425 was closed without merging; its commits are in #3434. The base is main, so this diff includes all of #3434; this PR's own change is git diff b727a6d3c...HEAD.

What changed

office-hours AskUserQuestion section, before and after
office-hours/SKILL.md's AskUserQuestion section. Before, it carried full copies of two shared subsections only to add the Q<N> form. After, only the Q<N> form remains, as its own subsection, and the shared file supplies the rest.

  • office-hours dedupe. scripts/resolvers/preamble/generate-ask-user-format.ts moves office-hours' Q<N> open-question form, together with its "a free-text reply answers the most recent unanswered Q<N>" routing sentence, into one ### Open-ended questions subsection appended to the AskUserQuestion section. The wording of the form is unchanged, and every other skill renders byte-identically.
  • Hoist supports added subsections. In scripts/resolvers/preamble-hoist.ts, a variant may add subsections after the shared ones. It keeps only its changed and added subsections, under the note "Only these subsections replace the shared ones or, under a new heading, add to its end". Variants without additions keep the existing note, and v1.91.276.0 feat(preamble): tier 2+ skills load the shared preamble once per session (GSTA-96) #3434's empty-variant guard stays.
  • plan-eng-review keeps its versions of the shared text, because every one differs on purpose: the Scope gate in Tool resolution, D-numbering after the target menu, the em-dash rule for composed prose, the selected-report footer, its own self-check, and the plan-mode invocation. Its cap stays at 1.3290.
  • Harness pin. test/helpers/skill-startup.ts changed (readSkillEffective appends added subsections), so its scripts/harness-version.json blob is re-pinned, recorded non-behavioral at HARNESS_VERSION 6: readSkillStartup, readSharedSections and readSkillEffective return the same bytes as the pinned helper for every tier 2+ render without added subsections (735 across all hosts) and for office-hours' SKILL.md before this change. Only office-hours' fixture input changes, because its prompt changed. No pass-rate series resets.

Tokens (Anthropic count_tokens, claude-sonnet-4-5, measured at 5db328f before the main merges)

office-hours Before the hoist #3434 This PR
SKILL.md 27,100 23,085 21,355
First invocation in a session (plus the 5,960-token shared file) 27,100 29,038 (+1,938) 27,315 (+215)
Each later invocation 27,100 23,085 (−4,015) 21,355 (−5,745)

At this head office-hours/SKILL.md is 73,248 bytes, 6,328 fewer than at #3434's head; its parity union goes from 160,952 to 154,624 bytes.

Why

The hoist left office-hours paying almost 2,000 extra tokens on a session's first invocation, because it re-read two subsections it already had from the shared file. The approved follow-up was to remove the private copies that only duplicate shared text and keep the ones that differ on purpose.

Approvals

Date Asked Garry's words Covers Pending
2026-10-25 PR 3 dedupe: after #3434, remove office-hours' and plan-eng-review's copies of shared sections where they are equivalent, keep the ones that differ on purpose and say why, and lower their caps as far as the dedupe allows "do it" (via GStack Minder) This PR none
2026-10-25 Parity caps to measured size "do it" (applied by GStack Minder) ship parity cap 1.6768 (union 314,739 / 187,706, carried from main and #3434); office-hours cap 1.2279 → 1.1796 (lowered) none
2026-10-26 Crew rule 23: review passes converge, blocking floor "Ok set it at that" This /ship run's 3 passes and the deferred list below none

Tests and gate integrity

  • test/helpers/skill-startup.ts applies added subsections when it builds a skill's effective text, so the hoisted-equals-inline check (test/preamble-hoist.test.ts) covers office-hours' new layout. Two tests in test/preamble-hoist.test.ts pin the variant-note choice on every host and tier and the order of changed and added subsections.
  • test/helpers/carve-guards.ts lowers office-hours' parity cap from 1.2279 to 1.1796 (measured 154,653 before the main merge, 154,624 = 1.1793 now), below the pre-hoist 1.18. test/ceo-workflow-clarity.test.ts adds 'accepted scope' to the CEO completeness posture check.
  • Gate edits (own delta, gstack-gate-diff b727a6d3c): 6 eligible hunks, all read, none tagged. Each tightens or adds. They are one added assertion phrase, one lowered cap, two new tests, the helper extension and a comment on plan-eng-review's unchanged cap. No cap, pin, threshold, budget, trial count or assertion goes up or gets weaker.

/ship (crew rule 22, unattended)

  • Review (rule 23): 3 passes, at the cap, exit on a clean pass.
    • Pass 1 reviewed the whole own delta at b40a000: six specialists (testing, maintainability, security, performance, simplification, state machines), red team (delta 218 lines) and the Claude adversarial pass. 0 critical. Fix: the CHANGELOG's byte and union counts were measured before the main merge (0b878cf).
    • Pass 2 (range b40a000..0b878cf): adversarial only (6 lines, specialists skipped). One wording note, the post-merge ratio rounded to 1.1794 instead of 1.1793; fixed in 92ce208.
    • Pass 3 (range 0b878cf..92ce208): no findings. Codex is not installed, so there is no outside review.
  • QA smoke: 6 of 6 functional probes pass (generation fresh, helper byte identity, office-hours effective-text diff, regen and goldens fresh, version files unchanged, 103 focused tests). A first probe directory left one capture refused for a missing --allow-repo-commands flag; it was rerun whole with the corrected launch.
  • Coverage (audit-only, own delta): 14 of 17 paths (82%), all ★★ or better. The three untested paths are guards no current render reaches (declined, listed below).
  • Docs audit: current, no edits (attempt 2 of 2 after the rounding fix; attempt 1 also current).
  • Paid (focused, pre-approved): office-hours-auto-mode PASS 1/1, office-hours-section-loading PASS 1/1, office-hours-forcing-energy PASS 3/3, judges plan-ceo-review/SKILL.md modes, plan-eng-review/SKILL.md sections and plan-design-review/SKILL.md passes PASS (the only judges whose touchfiles name generate-ask-user-format.ts; none names office-hours/**). No flakes, no reruns.

Deferred (rule 23: advisory, informational, test gaps)

  • test/preamble-hoist.test.ts's new subheadings scanner repeats the fence loop of the file's own sections() splitter (testing and simplification, advisory). Part of the already-triaged splitter-duplication class.
  • variantSubsections would accept an added subsection that reuses a shared heading, which readSkillEffective would treat as a replacement. No skill does this, and the hoisted-equals-inline test turns red if one does.
  • No eval drives office-hours' prose fallback with an open-ended question since the Q<N> form moved after ### Self-check; the static text is pinned by test/office-hours-open-question-form.test.ts.
  • Three variantSubsections branches that no render reaches have no test. They are own shorter than shared, changed and added together on the generator side, and neither changed nor added.
  • Docs debt from the audit: ARCHITECTURE.md does not describe added-subsection variants, and no doc references test/helpers/skill-startup.ts.

Re-READY on #3434 d402d44 (84aa6dd)

#3434 re-READYed at d402d44 after its rule 19 merge of main v1.91.255.0 (context-budget.json resolved by hand). That head is merged into this branch with no conflicts; generated files and ship goldens are fresh. Focused: context-budget ratchet, size guard, parity, carve, preamble-hoist, harness version, gen-skill-docs checks, section manifest, host-config, AskUserQuestion resolver (382/0). Remote free tier at tree c7c1b54f189f: 19,734 tests, 0 failed ($0.06). Dispatched CI green; Windows Setup E2E crashed once in gstack-hook-check with exit 0xC0000142 (DLL init failed on the runner, not a test verdict; the same step passed at the two previous heads) and passed on its one rerun. #3453's own delta is unchanged since 92ce208, so no new review pass (rule 23: 3 of 3, last clean). The focused office-hours paid evidence at b40a000 stands.

Re-READY on #3434 62ec2e6 (2f6fdcc)

#3434 re-READYed at 62ec2e6 after its rule 19 merge of main v1.91.260.0 (#3433 GSTA-92 phase 2, #3481 review convergence). That head merged into this branch with no conflicts; generated files and ship goldens are fresh. One commit on top follows GStack Minder's direction. This PR's CHANGELOG entry corrects two wording advisories in #3434's post-merge bullet (31 allowlist raises, not 30; the gstack and alwaysOnTotal context-budget rows sit above main's unchanged ceilings by the measured growth). Focused: size guard, parity, carve, preamble-hoist, context-budget ratchet, catalog budget, touchfiles, gen-skill-docs checks, section manifest, harness version, host-config, skill-size budget, office-hours open-question form, CEO clarity, model overlays (1025/0). Remote free tier at tree 79d099359ee1: 19,839 tests, 0 failed ($0.06; earlier attempts were refused by the shared Ubicloud vCPU quota before any VM was billed). Dispatched CI green at 2f6fdcc (runs 40435520005, 40435523081, 40435525773, 40435528289). This PR's own diff is unchanged since 92ce208, so no new review pass (rule 23: 3 of 3, last clean); the focused office-hours paid evidence at b40a000 stands.

Re-READY on #3434 f45f1ad (af025a0)

#3434 re-READYed at f45f1ad after its rule 19 merge of main v1.91.265.0 (#3430 /design-motion, #3493 ETHOS; context-budget union, eval-plan raised by #3493's measured growth, gstack back to main's value). That head merged into this branch with no conflicts; generated files and ship goldens are fresh. One commit on top restates this PR's CHANGELOG corrections to #3434's post-merge bullets (per GStack Minder): 31 allowlist raises, alwaysOnTotal above main's unchanged ceiling by the measured growth, gstack now back at main's value, and the ratchet bill's 7,398.5 in place of the raw 7,542 for alwaysOnTotal. Focused guards 1032/0. Remote free tier at tree 67e02aaa9b1f: 19,918 tests, 0 failed ($0.07). Dispatched CI green at af025a0 (runs 40446706525, 40446709221, 40446712166, 40446714449). This PR's own diff is unchanged since 92ce208, so no new review pass (rule 23: 3 of 3, last clean); the focused office-hours paid evidence at b40a000 stands.

Re-READY after train 20 (a78ce08)

Train 20 (gate run 40454750574) went red on auq-format-gate. The red is attributed to #3434: its planted-skill fixture never let the model read the hoisted sections/preamble.md, and #3434 has repaired it. #3453 was pulled from the train with it. This branch has since merged four later #3434 heads. They are 191a44c (main v1.91.270.0), c8ed25f (the parallel-capture test for the mapped sections path), 6578bcb (GStack Minder's rule 19 merge of main v1.91.273.0) and now 234227f (main v1.91.274.0, where #3507 re-pins the design-review and design-html caps and sets design-html's context-budget row to 8,896). The 234227f merge was clean. A CHANGELOG sentence (efab108, at GStack Minder's direction) corrects #3434's post-v1.91.270.0 bullet: "every row that rises matches main's own recapture" holds only for the non-hoisted rows, and main measures the hoisted ones unhoisted (eval-plan 10,581 against this branch's 4,887). In the 6578bcb merge, the only conflict was the plan-eng-review ratio comment in test/helpers/carve-guards.ts: #3434's re-pinned 1.3532 stands, and this PR's sentence on why plan-eng-review keeps its own versions of shared sections is appended to it. The CHANGELOG merged clean, and its released part is byte-identical to main. The office-hours context-budget row is 19,139 on the merged tree (was 20,792 before the dedupe). This PR's own diff is the same 10 files, changed since the last review only in CHANGELOG wording and that context-budget row, so there is no new review pass (rule 23: 3 of 3, last clean). Remote free tier at tree d3e1949478ea: 20,029 tests, 0 failed ($0.11; a first attempt waited 10 minutes for Ubicloud capacity and never started, $0.10). It stays paired behind #3434.

Issues

Refs #3425
Refs #3434
Refs #3451
Refs #3453
Refs #3433
Refs #3472

Open in Capy

garrytan and others added 27 commits October 25, 2026 23:01
… (GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ion (GSTA-96)

Every tier 2+ SKILL.md inlined the same ~23 KB preamble. It now renders once
per host into sections/preamble.md beside each tier 2+ SKILL.md; the SKILL.md
keeps a pointer that asks for the Read only when the file's id is not already
in context. Only sections byte-identical to the shared render move, so every
skill keeps exactly its pre-hoist paragraphs (verified across all 41 skills).

Parity caps for ten skills raised to their measured unions (owner-approved,
Garry 2026-10-25: "do it"); 63 size pins lowered and 26 deleted.

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>

# Conflicts:
#	CHANGELOG.md
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

# Conflicts:
#	CHANGELOG.md
…mplate's identity in the PR planner (GSTA-96)

screen-summary failed on #3434 with 'PR profile requires full validation' for nine
skills whose only paid coverage is periodic: their new sections/preamble.md had no
dependency identity, while the SKILL.md beside it inherits its template's.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…the hoist resolver, not a section template (GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…odel-overlays guards the coverage half)

The completeness section shrank by 3 characters (5 bytes), matching the 89 pins lowered by 3. The default-copy test pinned only the minimal-code half; an expectMentions check now fails if the full-coverage or never-excuses-a-gap clause is dropped.

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>

# Conflicts:
#	CHANGELOG.md
#	test/fixtures/skill-md-size-allowlist.json
…qual coverage)

The default-copy check now also fails if 'on equal coverage' is dropped from the smaller-diff rule (which would tell models to prefer the smaller diff unconditionally) or if the no-impossible-state-checks clause is removed.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
The [Unreleased] Tests bullet now says the default-copy test checks both halves of the rule (full coverage of the requirement; smaller diff only at equal coverage; no impossible-state checks; never excuses a gap), matching 88e3cc0 and 44eacaf.

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

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…pe; tests bind each completeness rule)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Adds test/preamble-hoist.test.ts (tier 1 unchanged; tier 2+ SKILL.md plus
sections/preamble.md reproduces the pre-hoist preamble; pointer position and id)
and two gen-skill-docs-checks cases (one shared preamble per host, beside every
pointer and named by its id; preamble artifact kind).

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
- setup: follow a symlinked sections/ dir in the carved-pointer status check
- touchfiles: select preamble-hoist.ts alongside every preamble.ts entry
- section-manifest: exempt sections/preamble.md only for skills whose SKILL.md
  carries the shared-preamble pointer
- skill-size-budget: growth ceiling measures SKILL.md plus its shared preamble
- host-conformance: tolerate a missing sections/ dir, as setup does
- skill-validation: read bin/gstack-skill-start directly
- skill-fixture: error messages and docblocks name the actual boundary
  (harness-version non-behavioral note updated)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ep 9.4, pass 2)

The growth ceiling now measures SKILL.md plus the shared preamble, the same
measure as the shrink floor; the docblock said SKILL.md only.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
….md restates the new one

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…(ship Step 9.4)

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

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

# Conflicts:
#	CHANGELOG.md
#	test/fixtures/skill-md-size-allowlist.json
plan-ceo-review's parity cap moves 1.0999 -> 1.1006 for the approved COMPLETENESS IS
COVERAGE bullet (Garry 2026-10-25: "do it", parity caps to measured size; applied by
GStack Minder).

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…rule quote (ship Step 7)

host-conformance: --status still finds a broken bare sections/ pointer when a
carved Claude skill's installed sections/ is a directory symlink (fails at the
pre-repair 0e5d11f). gen-skill-docs: the house rule review/specialists/
simplification.md quotes from ETHOS.md still appears in ETHOS.md.

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>
…first-run intro say complete coverage, minimal code (GSTA-96)

The pointer skipped the shared file when any text carrying its id was in context, so a
page or file with that heading could stand in for the anti-spoofing rules (security,
red team and adversarial review, ship run 2). It now requires the skill's own earlier
Read. The digest's Boil the Ocean bullet and the first-run intro still said 'AI makes
completeness cheap, so do the complete thing' (docs audit blocker); both now carry
Garry's 'complete coverage, minimal code' (2026-10-25: '1/ yes fix this').

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ean wording (ship Step 7)

preamble-hoist: on every host, tier and render option the pointer allows the
skip only when the skill's own Read is in context. agents-digest and
gstack-skill-start: the digest bullet and the lake intro say complete
coverage, minimal code, never the retired phrasing. Each fails at 9af36d0.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…id-only one (ship Step 9.4)

The preamble-hoist.ts docblock and ARCHITECTURE.md still said the shared
preamble is re-read only when its id is absent; since 2acf1a4 the pointer
requires the skill's own earlier Read of the file.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ng tests (ship Step 13)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…head cannot change a release output (GSTA-96)

CI 'Check VERSION is not stale vs queue' classified #3434 as stamped because it touched
agents-digest/gstack-AGENTS.md (a release_outputs path), while regenerating only the
generator fails the digest freshness test. The first-run intro rewording stays.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…stops copying the shared AskUserQuestion subsections (GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@trunk-io

trunk-io Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

😎 This pull request was merged.

garrytan and others added 2 commits October 26, 2026 04:59
…plus-added order (ship Step 7, GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…subsections; office-hours cap history ends 'Before: 1.2279' (ship Step 9.4)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
garrytan and others added 6 commits October 27, 2026 01:17
…preamble-hoist

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

# Conflicts:
#	ARCHITECTURE.md
#	CHANGELOG.md
#	docs/PROJECT_STRUCTURE.md
#	test/fixtures/context-budget.json
#	test/fixtures/skill-md-size-allowlist.json
#	test/helpers/carve-guards.ts
#	test/helpers/touchfiles-data.ts
…wo context-budget rows above main (GSTA-96, per GStack Minder)

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

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

# Conflicts:
#	CHANGELOG.md
#	test/fixtures/context-budget.json
…s after its v1.91.265.0 merge (GSTA-96, per GStack Minder)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
garrytan and others added 17 commits October 27, 2026 05:58
… install (GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…vesting wording (GSTA-96)

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

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>
…dedupe

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…270.0 merge (GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ts sections path mapped (GSTA-96)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…d rows (GSTA-96)

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

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>
…ncated (GSTA-96)

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>
…dedupe

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

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

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
… base=origin/main@3e4240a policy=base origin/main@3e4240a76f30:.gstack/ship-policy.json)

ship, next in queue at 1.91.277.0
STAMP_VERSION: 1.91.277.0
claims: ignored (stamp-at-merge)
stage version: done (wrote 1.91.277.0)
stage release_tool: done (bun scripts/gen-agents-digest.ts)
stage changelog: done (Unreleased -> 1.91.277.0)
stage stamp_paths: done (1 mention(s) in 1 file(s) (1.91.270.0 -> 1.91.277.0))
stage mirror: skipped (no mirror in policy)
stage apply: done (5 file(s))
FILES: CHANGELOG.md VERSION agents-digest/gstack-AGENTS.md lib/ship-policy.ts package.json
MERGE_CONDITION: sha=a78ce08af9815b7ed6bdef9b91ee2c3d0df418a3
next: NEW_VERSION=1.91.277.0; commit and push only the stamp diff above (FILES), with no edit of your own: the train's verify accepts the CHANGELOG only as the base's plus this PR's entry re-headed; merge with the expected head a78ce08 and recompute on a stale queue.
GSTACK_RESULT: skill=restamp status=complete run=/workspace/gstack/.gstack/tmp/restamp-journal.json

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@github-actions github-actions Bot changed the title feat(preamble): office-hours stops copying the shared AskUserQuestion subsections (GSTA-96) v1.91.277.0 feat(preamble): office-hours stops copying the shared AskUserQuestion subsections (GSTA-96) Oct 27, 2026
@capy-ai
capy-ai Bot merged commit 6ff98c6 into main Oct 27, 2026
62 checks passed
garrytan added a commit that referenced this pull request Oct 27, 2026
…hat decided to freeze

freezeQueue took a second prState read per unverified slot and filed anything
but an exact MERGED under unmerged, so a slot that read MERGED at stopped()
and was unreadable a moment later was recorded as unmerged (the record half of
train 24's #3453 misfile). stopped() now reads each unverified slot once and
passes those states in; a MERGED slot stays merged, and a slot unreadable
beside a merged one is kept out of unmerged and named in the reason. The
fixture's gh shim gains a per-PR vanish count so a test can change GitHub's
answer between two reads.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
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