Skip to content

emrg: the competition closing summary states two counts that nothing measures against their lists #2586

Closed

Description

@how2how2how2-arch

What is observed

emrg/server/competition_prompt.md §5 (Recording) ends a round with a closing summary, and it states twice how many items that summary owes:

  • "Seven questions the closing summary must answer", introducing a numbered list (1. … 7.) of self-review questions — the round's goal, its success criteria, what it actually did, the progress, the pitfalls, the opportunities and the next step.
  • "Three more the host asked for by name.", introducing a bulleted list of three further questions — how likely the goal is to be reached and on what evidence, what is still missing between here and the goal, and what the host has to decide or do.

Both sentences are correct today: the numbered list holds seven items and the bulleted list holds three. Nothing in the tree compares either sentence against the list it introduces. The only assertion touching this area, tests/test_competition_prompt.py::test_preparation_and_closing_summary_are_mandatory, asserts that the sentence "Seven questions the closing summary must answer" appears in the file — a check that stays green when the list grows to eight, and equally green when it shrinks to six.

So the two statements of each count are two copies of one fact with no instrument between them. The sentence is the only instruction a round reads before it starts composing the summary, and a round that trusts it while the list has drifted writes the wrong number of items, with nothing to notice — neither in review nor in CI.

Where it was observed

The template at master 959a006b, measured on the checked-out tree:

  • §5's numbered items: 7
  • §5's bulleted host questions: 3
  • assertions that count either list: 0

This is the same defect class #2576 fixed for the promote template's reflection heading, where a sentence said how many questions it owed and nothing measured the list under it.

What the fix must satisfy

  1. Each count is measured against the list it introduces, not against the file. A whole-document search would go green as soon as the same number appeared anywhere else in a 360-line template that discusses several lists.
  2. The two lists are measured separately. They sit in one section but are different lists with different item shapes (numbered versus bulleted), so one reading that covered both would mis-attribute a failure to the wrong sentence.
  3. The pin refuses a count it cannot read, rather than treating an unreadable claim as satisfied: a sentence rewritten as a digit ("7 questions") or as a vague quantity must fail loudly, because otherwise every assertion built on that claim compares against nothing while reading green.
  4. The slice is bounded by the section's own headings, so an enumerated item added elsewhere in the template cannot move either count.
  5. The guard is shown to fail. The live template is correct today, so a pin that only reads it passes whether or not it could ever fail. The failure has to be supplied: a list edited without its sentence, a sentence edited without its list, for both lists.

Activity

  1. how2how2how2-arch commented on Oct 25, 2026

    @how2how2how2-arch
    CollaboratorAuthor

    Handled by #2587

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions