workflow-war-story: #\d+ matches cross-references, not incident history (13 of 15 remaining offenses) #168

Open
opened 2026-07-27 17:12:40 +00:00 by jared · 2 comments
Owner

Discovered while working #165, 2026-07-27. Not one of #165's three filed defects.

Problem

After #165's defects 2 and 3 landed, WorkflowWarStory emits 15 unique offenses over the 99 in-scope files. 13 of those 15 are the #\d+ pattern matching a cross-reference, not incident history.

Every one of them:

calibrate/SKILL.md:258   the #41 clutter-inventory seed candidates enter at THIS
calibrate/SKILL.md:260   pass #1, which withholds them as a sealed answer key
calibrate/SKILL.md:261   If this run IS cc-os pass #1, do NOT include seed
calibrate/SKILL.md:478   ### Consult loop -- worked example (map #49, #56/#59)
calibrate/workflows/judge.md:7    confirmation -- #39). You do NOT trust a nomination
calibrate/workflows/judge.md:44   present on every run except cc-os calibration pass #1
calibrate/workflows/judge.md:45   the #41 clutter-inventory seed candidates
calibrate/workflows/judge.md:58   the #45 bug class
check/SKILL.md:82        Per invariant #3 / ADR-027
check/SKILL.md:97        (Invariant #3.)
check/SKILL.md:269       after a write would destroy the last good report (invariant #4)
clean/SKILL.md:198       **Invariant #7:** this gate must run before the first file write
sweep/SKILL.md:20        not auto-approve any confirm-tier or generative entries (invariant #7)

The remaining 2 are the word "shipped" used as ordinary vocabulary ("a plan doc that should be archived once shipped").

So the corpus currently contains zero true positives.

Why this is a distinct defect

#\d+ is a decent proxy for "cites a ticket" but it does not distinguish:

  • incident history -- "tickets #87 and #89 shipped self-contradictions last time" (the cop's reason to exist)
  • a live cross-reference -- "Per invariant #3", "the #41 seed candidates", "pass #1" (a pointer the reader needs)

A numbered invariant or a numbered pass is a name, not a war story. pass #1 and invariant #7 are especially clear: there is no ticket anywhere in the sentence.

Candidate directions (not yet decided)

  1. Require a nearby incident verb -- only flag #\d+ when the line also carries one of the tense/outcome words (fixed in, shipped, regressed, last time, went wrong).
  2. Exempt an explicit preceding noun -- invariant #N, pass #N, step #N, rule #N, phase #N.
  3. Require the reference to look like a ticket -- e.g. #N preceded by ticket/issue/PR, or bare at clause start.

(1) is the smallest and is the same shape as the existing last time|fixed in|shipped|regressed list; (2) is the most surgical but is an open-ended noun list. Needs a measurement pass before choosing.

Scope note

#165 also invites auditing whether other section-scanning cops share its defects 1 and 2. Deliberately not done there and not covered here.

Discovered while working #165, 2026-07-27. Not one of #165's three filed defects. ## Problem After #165's defects 2 and 3 landed, WorkflowWarStory emits **15** unique offenses over the 99 in-scope files. **13 of those 15 are the `#\d+` pattern matching a cross-reference, not incident history.** Every one of them: ``` calibrate/SKILL.md:258 the #41 clutter-inventory seed candidates enter at THIS calibrate/SKILL.md:260 pass #1, which withholds them as a sealed answer key calibrate/SKILL.md:261 If this run IS cc-os pass #1, do NOT include seed calibrate/SKILL.md:478 ### Consult loop -- worked example (map #49, #56/#59) calibrate/workflows/judge.md:7 confirmation -- #39). You do NOT trust a nomination calibrate/workflows/judge.md:44 present on every run except cc-os calibration pass #1 calibrate/workflows/judge.md:45 the #41 clutter-inventory seed candidates calibrate/workflows/judge.md:58 the #45 bug class check/SKILL.md:82 Per invariant #3 / ADR-027 check/SKILL.md:97 (Invariant #3.) check/SKILL.md:269 after a write would destroy the last good report (invariant #4) clean/SKILL.md:198 **Invariant #7:** this gate must run before the first file write sweep/SKILL.md:20 not auto-approve any confirm-tier or generative entries (invariant #7) ``` The remaining 2 are the word "shipped" used as ordinary vocabulary ("a plan doc that should be archived once shipped"). So the corpus currently contains **zero** true positives. ## Why this is a distinct defect `#\d+` is a decent proxy for "cites a ticket" but it does not distinguish: - **incident history** -- "tickets #87 and #89 shipped self-contradictions last time" (the cop's reason to exist) - **a live cross-reference** -- "Per invariant #3", "the #41 seed candidates", "pass #1" (a pointer the reader needs) A numbered invariant or a numbered pass is a name, not a war story. `pass #1` and `invariant #7` are especially clear: there is no ticket anywhere in the sentence. ## Candidate directions (not yet decided) 1. Require a nearby incident verb -- only flag `#\d+` when the line also carries one of the tense/outcome words (`fixed in`, `shipped`, `regressed`, `last time`, `went wrong`). 2. Exempt an explicit preceding noun -- `invariant #N`, `pass #N`, `step #N`, `rule #N`, `phase #N`. 3. Require the reference to look like a ticket -- e.g. `#N` preceded by `ticket`/`issue`/`PR`, or bare at clause start. (1) is the smallest and is the same shape as the existing `last time|fixed in|shipped|regressed` list; (2) is the most surgical but is an open-ended noun list. Needs a measurement pass before choosing. ## Scope note #165 also invites auditing whether other section-scanning cops share its defects 1 and 2. Deliberately not done there and not covered here.
Author
Owner

This was generated by AI during triage.

Measured the 3 candidates against the 13 listed #\d+ false positives (offline, since none contain an incident verb):

  • Candidate 1 (require a same-line incident verb: fixed in/shipped/regressed/last time/went wrong) clears 13/13 — zero ambiguous cases, same shape as the existing verb list.
  • Candidate 2 (fixed noun list: invariant/pass/step/rule/phase before #N) clears 8/13 — misses bare refs like "the #41 seed candidates", "map #49, #56/#59", "#39" (no qualifying noun).
  • Candidate 3 (ticket/issue/PR keyword or clause-start) clears ~12/13 with 1 ambiguous case ("confirmation -- #39)") and needs an open-ended keyword list.

Recommend candidate 1: full clearance, no new keyword list to maintain, smallest diff.

> *This was generated by AI during triage.* Measured the 3 candidates against the 13 listed `#\d+` false positives (offline, since none contain an incident verb): - **Candidate 1** (require a same-line incident verb: fixed in/shipped/regressed/last time/went wrong) clears **13/13** — zero ambiguous cases, same shape as the existing verb list. - **Candidate 2** (fixed noun list: invariant/pass/step/rule/phase before `#N`) clears **8/13** — misses bare refs like "the #41 seed candidates", "map #49, #56/#59", "#39" (no qualifying noun). - **Candidate 3** (ticket/issue/PR keyword or clause-start) clears ~12/13 with 1 ambiguous case ("confirmation -- #39)") and needs an open-ended keyword list. Recommend **candidate 1**: full clearance, no new keyword list to maintain, smallest diff.
Author
Owner

Frozen in the 2026-08-16 backlog reset — see #419 for the expiry procedure. Do not work unless a live run rediscovers this issue.

Frozen in the 2026-08-16 backlog reset — see #419 for the expiry procedure. Do not work unless a live run rediscovers this issue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#168
No description provided.