Skip to content

Guide: rows never restate parts another option removes; gate step 5 leaves out what exists only for a retired rule and records adapted criteria - #62

Merged
Carr1005 merged 6 commits into
mainfrom
guide-cross-row
Oct 20, 2026
Merged

Carr1005 merged 6 commits into
mainfrom
guide-cross-row

Conversation

@Carr1005

Copy link
Copy Markdown
Collaborator

Fixes the flaw the 2026-10-19 adoption run found in both agnostic specs: an option that removes a part (conversation-only memory, no grader) left other rows naming that part. The gate asked questions that contradicted the earlier answer, and the build agent had to guess. The process failure that let #58 and #59 merge with this flaw is in #60.

What changes

  • §5.5 "No cross-row restating", rewritten in place, from values to parts:
    • Rows after the removing row never list or count the parts an earlier row's options remove. They name them through the owning row ("each store row D1's answer keeps").
    • Rows before it (asked first, so they cannot point ahead) list the parts as the Defaults build them, and the removing option's §7 line names each such cell.
    • Only the Trade-off cell and the Default's branch note may name the course's parts.
    • A row that the option skips by its condition is exempt.
  • §7 "Tests by option": the change column becomes "Rules, criteria and Ledger cells that change (and how)".
  • §6.0 gate step 5 (copied word for word into every spec), two additions:
    • leave out every part of the spec that exists only for a rule a chosen option retires (commands, flags, settings, schema fields, fixtures, permission items);
    • adapt a changed criterion whose new form is not fully stated, and list it under Adapted.
  • §14 line and audit (k) match. (k) now checks moot rows below the option's row only, which fixes a Guide: option ids, "Applies only when" conditions, §7 "Tests by option" table; eval reads resolved-decisions.md #58 wording bug.
  • eval-spec-vs-build: a new Adapted section, judged against the chosen options.
  • Also on this branch: the skip-example placeholder fix (cherry-picked from Guide §6.0 step 3: the skip example uses placeholders, not real-looking row ids #61; merge Guide §6.0 step 3: the skip example uses placeholders, not real-looking row ids #61 first). The overlay is re-pinned; its 4 quoted passages are unchanged (grep -F).

Tested (Opus 5.5), with the #60 purpose check

For each part-removing option, a probe runs the gate on paper, then classes every place in the spec that contradicts the choice.

Guide Spec Option Gate Covered Left out Adapted Guess
1632117 (before) both conversation-only, no grader store row "all seven stores"; rubric and grader rows — — — (adoption audits)
c2e1546 (cross-row rule only) A conversation-only 0 most — — 7
c2e1546 B no grader / command line / no learning loop 0 most — — 6 / 3 / 3
5caba53 (this PR) A conversation-only 8* 14 25 5 4
5caba53 (this PR) B no grader 1 17 39 4 2

* 5 are §1 "Not Included" items shown in the scope question, which is asked before D1 and so is true at the time it is asked. 3 are a generator slip in A's store row (the rule forbids it); the adoption repair handles it.

Residuals (accepted; logged on #48)

  • §1 items shown in a row above are not Ledger cells, so the §7 line does not name them. This only matters if a person restores one and then picks the removing option.
  • Low-risk guesses: whether to keep an always-null field or unused schema definitions; a flag's default once its only nonzero use is gone; a permission item tied to a skipped row.
  • A known generator slip class: a row after the removing row still describing removed parts (A's store row). The audit catches it.

🤖 Generated with Claude Code

Carr1005 and others added 5 commits October 20, 2026 00:46
…e its parts through the owning row; rows before list them for the Defaults and the option's §7 line names the cells that change

An option that removes a part (conversation-only memory, no grader) left
other rows naming that part, so the gate asked questions that contradicted
the earlier answer and the build agent had to guess (adoption run on
1632117, both agnostic specs; #60).

- §5.5: the existing rule widened from values to parts; rows below never
  list or count parts an earlier row's options remove; rows above list
  them as the Defaults build them, and the removing option's §7 line
  names each such cell; only Trade-off and the Default's branch note may
  name the course's parts.
- §7 table column: "Rules, criteria and Ledger cells that change".
- §6.0 step 5: the copied line records criteria and Ledger cells.
- §14 line and audit (k) to match; (k) checks moot rows below only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng row ids

The example "D4 is skipped: it applies only when D2 is D2a or D2b;
D2 = D2c" was copied verbatim into a loop-engineering spec whose real D4
applies when D2 is D2a, D2b or D2c, so read literally it said the
opposite of that spec's rule (adoption audit 2, spec B).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uoted passages unchanged, verified with grep -F)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pt an incompletely stated changed criterion and list it under Adapted. §5.5: a row the option skips may name the parts.

Purpose probes on c2e1546 (4 part-removing options, Opus 5.5) found 0
contradictions at the gate but 19 guesses elsewhere: commands, flags,
settings and permissions that exist only for a retired rule, and changed
criteria whose new form the §7 line does not fully state. Owner chose a
stated fallback over writing every path out in full.

- §6.0 step 5 (template): leave out parts that exist only for a retired
  rule; adapt and record changed criteria not fully stated.
- §5.5: the cross-row rule does not apply to a row the option skips.
- eval-spec-vs-build: an Adapted section, judged against the chosen options.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uoted passages unchanged, verified with grep -F)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s identical skip-example change merges cleanly)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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