Skip to content

chore(pipeline-conductor): state the argv constraint in present tense - #9393

Merged
iamwhatever merged 1 commit into
mainfrom
fix/comment-history-fleet-probe-narration-9372
Sep 8, 2026
Merged

chore(pipeline-conductor): state the argv constraint in present tense#9393
iamwhatever merged 1 commit into
mainfrom
fix/comment-history-fleet-probe-narration-9372

Conversation

@dwu96

@dwu96 dwu96 commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Fixes #9372. Unblocks #9346.

Symptom

comment-history-baseline.json records 2 history-narration spans for
src/kiro_crew/builtin_skills/pipeline-conductor/scripts/fleet_probe.py, but the file on main
matches 3 of scripts/check_comment_history.py's patterns (L244 incident date 2026-08-30,
L255 "used to", L882 "no longer"). The gate is diff-scoped, so the gap surfaces as a
grew from 2 to 3 failure in Backend Lint & Type Check for whichever PR touches the file next —
live on #9346, whose failure log ends 0 new offender(s), 1 grown count(s), 0 file(s) with markers on added lines: proof that PR added none of the three.

Root cause

The checker and the baseline both arrived in a single commit (acfa55d0, #9328) whose baseline was
snapshotted against a tree older than the one it merged into; because the gate is deliberately
diff-scoped, #9328's own CI could not see drift in files #9328 did not touch. Nobody omitted
anything — a snapshot went stale in flight. (The issue as filed attributes the gap to aa75a403c /
#8736 leaving the entry "not raised"; that is chronologically impossible — #9328 landed ~1.5h
after aa75a403c — and this PR deliberately does not repeat it.)

fleet_probe.py is one corner of a 33-file drift; the full measured census is filed as #9384 and is
context, not scope.

Fix

One present-tense reword of the L882 docstring sentence:

  • before: option/operand structure this function has to read is no longer recoverable.
  • after: option/operand structure this function has to read cannot be recovered.

L882 is a false positive of the \bno longer\b pattern: the sentence states a property of the
NUL-to-space transformation (true of the current code, not narration about its past) — the same
distinction the checker's own docstring draws when it exempts a message reading "this token is no
longer valid" (rule-design follow-up: #9387). Rewording removes the match at zero cost to meaning.
The two genuine narration spans (L244, L255) stay: they are what the baseline entry of 2
legitimately carries.

Per the Main Ratchet Audit policy (#9350: "Fix the drift on main rather than raising the ceiling in
someone else's PR") and --write-baseline's own only-lowers contract, the entry is NOT raised, and
comment-history-baseline.json is untouched (no lowering needed — 2 is already the entry; and any
edit there would collide with #9364, which takes the same reword route for two other drifted files
and composes cleanly with this PR).

Verification

Red before green, with the gate's own entry points (not a re-implemented grep — the gate counts
distinct spans with overlaps collapsed):

  • Red (file content at main 7177fa44, file in scope):
    ::error file=...fleet_probe.py::history narration in comments grew from 2 to 3
    comment-history gate FAILED: 0 new offender(s), 1 grown count(s), 0 file(s) with markers on added lines, 0 entr(y/ies) to lower.
    Corroborated by fix(pipeline-conductor): put the process age on the banned probe line #9346's Backend Lint & Type Check (3.12) CI log (same three lines, same trailer).
  • Green (this branch):
    comment-history gate passed: nothing in scope narrates change history outside the baseline (7606 known marker(s) in 1720 file(s) still listed).
  • Direct measurement (violations_in_source loaded from scripts/check_comment_history.py):
    3 spans before → 2 after, level with the baseline entry of 2.
  • Mutation-check: no guard is added, so there is nothing to mutate. The equivalent revert-direction
    check was run: restoring the original sentence turns the gate red again (grew from 2 to 3),
    restoring the fix turns it green.
  • Gates: check_black_formatting.py passed (scope: 1 changed file), flake8 clean, mypy clean on
    the changed file.
  • Zero-regression: full backend suite (pytest -q -n auto --dist loadgroup, the identical bare
    invocation) on this branch and on a git worktree at origin/main; sorted FAILED/ERROR id sets
    compared both directions after ANSI stripping. Frontend cross-surface guard specs green.
    (Evidence detail below.)

No new unit test, deliberately: (a) the gate already enforces this exact invariant in CI for
every PR touching the file — that is precisely how the defect surfaced on #9346, so a unit test
would duplicate an existing enforced check; (b) the tempting stronger test — asserting tree-wide
that no baselined file exceeds its entry — would recreate the very anti-pattern the checker's
docstring rejects ("an unscoped gate reddens a PR because the base branch merged someone else's
file") and would redden every open PR today for all 33 drifted files (#9384). Closing the drift
hole properly is a design question, filed as #9385.

Follow-ups filed (scope drawn deliberately)

Sequencing

Pattern harvest

Rule candidate: when a ratchet gate and its baseline snapshot land as one commit, the snapshot must
be re-taken (or re-verified) against the merge target immediately before merge — a diff-scoped gate
cannot see its own baseline going stale in flight. Knowingly out-of-scope sibling sites: the other
32 drifted files measured in #9384, owned there rather than widened into this diff.

Screenshot evidence: none possible — a one-sentence docstring reword has no visual surface.

The comment-history gate matches "no longer" in fleet_probe.py's
_probe docstring, putting the file at 3 spans against a baseline entry
of 2, so Backend Lint & Type Check fails for any PR that touches the
file (live on #9346). The sentence describes a property of the
NUL-to-space transformation, not the code's history, so rewording it to
present tense removes the false-positive match at zero cost to meaning.
The two genuine narration spans (L244 incident date, L255 "used to")
stay, level with the recorded entry of 2.

Root cause: #9328 snapshotted comment-history-baseline.json against a
tree older than the one it merged into, and the deliberately
diff-scoped gate could not see drift in files #9328 did not touch. Per
the Main Ratchet Audit policy (#9350), the drift is fixed on main
rather than by raising the ceiling.

Fixes #9372
@dwu96
dwu96 requested a review from a team as a code owner September 8, 2026 05:38
@dwu96
dwu96 requested a review from cixuuz September 8, 2026 05:38
@github-actions github-actions Bot added the readiness: checking Automated validation is still running label Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Design Review (Fable 5) — ✅ PASS

Design-level review of 7a2f37fedbbb985de8b87203b885746860d0e183 — updated in place on each push. A BLOCK verdict blocks PR readiness; PASS/CONCERNS are advisory.

Design-Verdict: PASS

Minimal, zero-cost unblock of a stale-baseline gate failure, with the real root causes (drift hole, pattern over-breadth) correctly filed as follow-ups rather than smuggled in.

[DESIGN-REVIEWED] 7a2f37f

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Opus 4.8 Review — ✅ no blocking findings

Reviewed 7a2f37fedbbb985de8b87203b885746860d0e183 — this comment is updated in place on each push.

Review details

No findings.

[OPUS-REVIEWED] 7a2f37f

Verdict parsed from the review's SHA-scoped output markers for commit 7a2f37fedbbb985de8b87203b885746860d0e183.

False positive or not applicable? A repository writer can comment:
/ai-review override fable 7a2f37fedbbb985de8b87203b885746860d0e183: <one-sentence reason>

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

First Principles Review (Fable 5) — ✅ PASS

Premise-level review of 7a2f37fedbbb985de8b87203b885746860d0e183 — why this exists and whether the shipped surface is the smallest honest version. Updated in place on each push. A BLOCK verdict blocks PR readiness; PASS/CONCERNS are advisory.

All verified: the \bno longer\b pattern exists at scripts/check_comment_history.py:98, the baseline entry for the file is 2, the file after the reword carries exactly the two declared spans (L244 date, L255 "used to"), the checker's own docstring draws the behavior-vs-narration distinction the author cites, and the new wording "cannot be recovered" matches none of the 18 patterns. The diff is exactly one line; nothing rides along. The 33-file sibling drift is declared, counted, and deferred to filed issues, with the fix's level stated explicitly — accepted-and-deferred under the contract.

First-Principles-Verdict: PASS

One point patch of a declared 33-file drift — confirm follow-up issues #9384/#9385 exist, since the general fix lives there, not here.

What this change ships

Inventory (1 item)

Intent: turn the comment-history gate green for fleet_probe.py so PR #9346 stops failing on drift it didn't cause — a FIX.

  1. One docstring sentence reworded to present tense ("is no longer recoverable" → "cannot be recovered"), removing a gate match — justified

[FIRST-PRINCIPLES-REVIEWED] 7a2f37f

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

GPT 5.6 Review — ✅ no blocking findings

GPT 5.6 completed its review of 7a2f37fedbbb985de8b87203b885746860d0e183 and found no blocking issues.

This comment is updated in place on each push.

Review details

No findings.
[GPT-REVIEWED] 7a2f37f

False positive or not applicable? A repository writer can comment:
/ai-review override gpt 7a2f37fedbbb985de8b87203b885746860d0e183: <one-sentence reason>

@github-actions github-actions Bot added readiness: passed Eligible automated validation passed for the current revision and removed readiness: checking Automated validation is still running labels Sep 8, 2026
@iamwhatever
iamwhatever enabled auto-merge (squash) September 8, 2026 07:04

@iamwhatever iamwhatever left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: chore (1 file). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: single-line docstring rewording in pipeline-conductor's fleet_probe argv-constraint note -- no executable statement changed, no runtime impact.

@iamwhatever
iamwhatever merged commit b6619e6 into main Sep 8, 2026
64 checks passed
@iamwhatever
iamwhatever deleted the fix/comment-history-fleet-probe-narration-9372 branch September 8, 2026 07:04
@github-actions github-actions Bot removed the readiness: passed Eligible automated validation passed for the current revision label Sep 8, 2026

@chenmingwei23 chenmingwei23 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: chore (1 file). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: chore(pipeline-conductor) one-line docstring wording change, no runtime impact.

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.

comment-history baseline for fleet_probe.py is stale: every PR touching it fails lint

3 participants