fix(#3730): quick-tasks-migrate — canonical-schema repair, auto-run on first quick (#4216)

* test(#3730): a legacy Quick Tasks table must be migratable to canonical

* fix(#3730): quick-tasks-migrate — canonical-schema repair, auto-run on first quick

* fix(#3730): review fixes — usage parity, contiguous table span, collision-safe bucket, template-width delimiter

Emitted-Drift-Ack-Growth: fast.md — #3730 runs quick-tasks-migrate before the first append (auto-migration on first quick run)
Emitted-Drift-Ack-Growth: quick.md — #3730 replaces the match-any-format note with the migration instruction

* chore(#3730): backfill changeset pr number

* fix(#3730): scope the quick-batch row-48 guard to branches touching quick-batch

---------

Co-authored-by: sim <sim@local>
This commit is contained in:
Tom Boucher
2026-09-03 01:32:41 -04:00
committed by GitHub
parent 114dfcb739
commit d5f8191f66
7 changed files with 313 additions and 3 deletions

View File

@@ -43,6 +43,22 @@ describe('quick-batch: /gsd:quick command + workflow stay byte-identical (row 48
}
const changed = resolveChangedPaths(resolved.ref);
// #3730 review: row 48 is the #3676 PHASE's invariant — quick-batch adds new
// call sites onto shared primitives without editing ordinary quick. Judging
// every FUTURE branch by it would freeze quick.md forever (observed: the
// #3730 migration note tripped this row on an unrelated branch). Scope the
// row to branches that actually touch the quick-batch surface; an unrelated
// branch's quick.md edit is none of this guard's business.
// tests/ excluded: this guard file's own name matches, which would make
// the scope check self-satisfying on every branch that edits it.
const touchesQuickBatch = changed.some((p) => /quick-batch/.test(p) && !p.startsWith('tests/'));
if (!touchesQuickBatch) {
t.skip(
`branch does not touch the quick-batch surface (${changed.length} changed paths) — ` +
'row 48 governs #3676-phase branches only',
);
return;
}
assert.ok(
!changed.includes('commands/gsd/quick.md'),
'commands/gsd/quick.md must stay untouched by the #3676 quick-batch phase',