mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-12 16:08:59 +02:00
Merge remote-tracking branch 'origin/main' into prompt-token-load-reduction
# Conflicts: # CHANGELOG.md # VERSION # package.json # test/helpers/carve-guards.ts
This commit is contained in:
@@ -116,18 +116,42 @@ export const CARVE_GUARDS: Record<string, CarveGuard> = {
|
||||
// The PR-title-version invariant MUST stay always-loaded: the v1.54.0.0
|
||||
// carve stranded it in pr-body.md and PRs started landing with bare titles
|
||||
// (CI backstop: test/pr-title-sync-workflow-safety.test.ts).
|
||||
mustStayInSkeleton: ['v$NEW_VERSION', 'gstack-pr-title-rewrite'],
|
||||
// Same carve also stranded the Step 18 /document-release dispatch out of
|
||||
// sight — the skeleton never named it and the handoff "got lost" (#2666
|
||||
// follow-up). Three NON-OVERLAPPING anchors pin the restored visibility,
|
||||
// one per touchpoint (no anchor is a substring of another, so each is
|
||||
// independently enforced — a subsumed anchor adds zero enforcement):
|
||||
// gerund form → manifest trigger (renders 2x: section index + STOP)
|
||||
// imperative → Step 17 handoff line
|
||||
// 3rd person → hoisted doc-sync invariant
|
||||
// Matching is case-sensitive String.includes — "dispatching the" does NOT
|
||||
// contain "dispatch the" — so update anchors in lockstep with any
|
||||
// touchpoint rewording.
|
||||
mustStayInSkeleton: [
|
||||
'v$NEW_VERSION',
|
||||
'gstack-pr-title-rewrite',
|
||||
'dispatching the /document-release subagent to sync docs',
|
||||
'dispatch the /document-release subagent to sync docs',
|
||||
'dispatches the /document-release subagent',
|
||||
],
|
||||
// ...while the full create/update procedure stays carved into pr-body.md
|
||||
// (out of the skeleton, present in the union). Asserts BOTH PR paths
|
||||
// survive: the create path and the idempotent update path.
|
||||
mustMoveToSection: ['gh pr create --base', 'gh pr edit --title'],
|
||||
// survive: the create path and the idempotent update path. The Step 18
|
||||
// dispatch imperative stays carved too — pasting that literal into the
|
||||
// skeleton (correctly) fails this guard; the skeleton speaks of "the
|
||||
// /document-release subagent", never the carved imperative.
|
||||
mustMoveToSection: [
|
||||
'gh pr create --base',
|
||||
'gh pr edit --title',
|
||||
'Dispatch /document-release as a subagent',
|
||||
],
|
||||
// ship is operational (multi-STOP, not a plan review); no single post-STOP gate.
|
||||
gateAfterStop: undefined,
|
||||
},
|
||||
behavioral: 'external',
|
||||
externalTest: 'test/skill-e2e-ship-section-loading.test.ts',
|
||||
maxSkeletonBytes: 71_750, // token-reduction Phases 1-2 (v1.69.x branch): preamble bash -> bin/gstack-skill-start, onboarding -> gated emission; measured 71,145
|
||||
minUnionBytes: 181_000, // token-reduction Phases 1-2 (v1.69.x branch): preamble bash -> bin/gstack-skill-start, onboarding -> gated emission; measured union 201,464
|
||||
maxSkeletonBytes: 71_300, // token-reduction Phases 1-2 + #2700 document-release anchors; measured 70,568 post-merge regen
|
||||
minUnionBytes: 181_000, // token-reduction Phases 1-2 (v1.69.x branch); measured union 201,464
|
||||
mustContain: ['VERSION', 'CHANGELOG', 'review', 'merge', 'PR'],
|
||||
// v1.58.5.0: pre-push-guard install (#2077) stacks on the shared first-run-guidance preamble.
|
||||
// Fork port wave 2: multi-ecosystem test-detection evidence (Django/JVM
|
||||
|
||||
@@ -284,6 +284,7 @@ export const E2E_TOUCHFILES: Record<string, string[]> = {
|
||||
'review-coverage-audit': ['review/**', 'test/fixtures/coverage-audit-fixture.ts', 'test/skill-e2e-coverage-audit.test.ts'],
|
||||
'plan-eng-coverage-audit': ['plan-eng-review/**', 'test/fixtures/coverage-audit-fixture.ts', 'test/skill-e2e-coverage-audit.test.ts'],
|
||||
'ship-triage': ['ship/**', 'bin/gstack-repo-mode', 'test/skill-e2e-triage.test.ts'],
|
||||
'ship-docsync': ['ship/**', 'document-release/**', 'scripts/gen-skill-docs.ts', 'scripts/resolvers/sections.ts', 'test/skill-e2e-ship-docsync.test.ts'],
|
||||
|
||||
// Plan completion audit + verification
|
||||
'ship-plan-completion': ['ship/**', 'scripts/gen-skill-docs.ts'],
|
||||
@@ -646,6 +647,7 @@ export const E2E_TIERS: Record<string, 'gate' | 'periodic'> = {
|
||||
'ship-local-workflow': 'gate',
|
||||
'ship-coverage-audit': 'gate',
|
||||
'ship-triage': 'gate',
|
||||
'ship-docsync': 'gate',
|
||||
'ship-plan-completion': 'gate',
|
||||
'ship-plan-verification': 'gate',
|
||||
|
||||
|
||||
Reference in New Issue
Block a user