test(W7c): loosen auq-format-always-loaded per-skill rule pins

W7c conversion (t01 F10-F12; W7c list item auq-format-always-loaded:61-72).
The MANDATORY format list (machine-read Recommendation:/(recommended) and the
AUQ format labels, W7 keep list) is unchanged.

Removed assertion groups (invariant -> remaining protection):
- plan-ceo-review /Do NOT batch/i (t01 F10): one decision per question ->
  kept free: /One decision unit = one AskUserQuestion call/i in the same rule
  list.
- plan-eng-review full-sentence regexes 'Send `AskUserQuestion({ questions:
  [currentDecision] })` only after the pending-record checkpoint passes. Send
  one question object for one choice; other IDs wait' and 'If you discover
  another independent choice, separate it and rebuild this comparison before
  saving or sending the question' (t01 F11): one question object per
  independent choice survives the carve -> kept free: /one\s+question object
  for one choice/i and /independently selectable changes separate IDs/i; the
  checkpoint-before-send order stays pinned in eng-review-routing.test.ts.
- codex /Synthesis recommendation \(REQUIRED\)/i (t01 F12, caps marker):
  codex keeps its synthesis rule always loaded -> kept free: /Synthesis
  recommendation/i and the machine format /Recommendation\s*:\s*<action>\s*
  because/i.

Mutation pass (scratch worktree, generated SKILL.md and sections): 8/8 as
expected; removing Recommendation: <action> because, the synthesis rule, or
the CEO/eng/design decision-unit rules goes red; dropping (REQUIRED) and
rewording the two dropped eng sentences stays green. Log:
.context/mutation-auq-format-always-loaded.md.
This commit is contained in:
garrytan committed 2026-10-03 01:10:42 +00:00
1 parent 7dac647939
commit 227ec905a7
1 file changed
+4 -8
+4 -8
View File
@@ -58,20 +58,16 @@ const MANDATORY: Array<{ name: string; re: RegExp }> = [
* these into a section (they fire only once the section is loaded), but they
* must never be DROPPED. Asserted against the skeleton+sections union. */
const PER_SKILL_RULES: Record<string, RegExp[]> = {
'plan-ceo-review': [/One decision unit = one AskUserQuestion call/i, /Do NOT batch/i],
'plan-eng-review': [
/Send `AskUserQuestion\(\{ questions: \[currentDecision\] \}\)` only after the pending-record checkpoint passes\.\s+Send one\s+question object for one choice; other IDs wait/i,
/Give independently selectable changes separate IDs/i,
/If you discover another independent choice,\s+separate it and\s+rebuild this comparison before saving or sending the question/i,
],
'plan-ceo-review': [/One decision unit = one AskUserQuestion call/i],
'plan-eng-review': [/one\s+question object for one choice/i, /independently selectable changes separate IDs/i],
'plan-design-review': [/One issue = one AskUserQuestion call/i],
'plan-devex-review': [
/One new or reopened decision = one AskUserQuestion call/i,
/Never combine independent decisions, including in separate question tabs/i,
],
// /codex emits its recommendation as prose; the instruction MUST stay in the
// /codex emits its recommendation as prose; the instruction must stay in the
// always-loaded skeleton because codex has no on-demand section.
codex: [/Synthesis recommendation \(REQUIRED\)/i, /Recommendation\s*:\s*<action>\s*because/i],
codex: [/Synthesis recommendation/i, /Recommendation\s*:\s*<action>\s*because/i],
};
/** Discover every repo-root skill dir that ships a generated SKILL.md. */