You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On 2026-09-02, one writer using the shared ll7 GitHub credential added decision-required to 21 already-ruled open issues in a sequential batch between
20:15:43 and 20:16:45 UTC:
The current-main classifier at aa69d7cdc2150023fca1cf805772807ea1575a85 subsequently read every
complete REST thread and returned decision_required: false with empty decision evidence for all
21. Each issue already had a controlling same-issue ruling or evidence-required/tracker
disposition. A maintainer pass removed only the false label and preserved all independent state,
dependency, domain, evidence, release, and external-input gates.
GitHub timeline events identify only the shared account, not the producing task, worktree, source
revision, or classifier version. The exact producer is therefore unknown. The strongest current
hypothesis, at roughly 80% confidence, is a long-lived worker using pre-fix audit logic or an
alternate write path that did not carry the current ruling regressions. This issue must not assume
that attribution as fact.
Expected behavior
An autonomous issue-audit writer must prove which source and plan produced a label mutation, and it
must fail closed before writing when its audit implementation is stale relative to fetched origin/main, when the apply-time source differs from the plan-time source, or when producer
identity/provenance is unavailable. Current same-issue ruling suppression and genuine later-reopen
semantics must remain intact.
Inspect the issue timeline events for the first and last affected rows:
gh api --paginate repos/ll7/robot_sf_ll7/issues/3207/events
gh api --paginate repos/ll7/robot_sf_ll7/issues/8173/events
Read all 21 complete issue threads through scripts/dev/gh_issue_rest.py.
Run classify_issue from current origin/main after removing only the false decision-required label from each input. All 21 currently return no decision evidence.
Observe that GitHub's event record contains actor and timestamp but no source commit, task,
worktree, plan digest, or classifier-contract version.
Scope
In scope:
Bind every issue-audit mutation plan and apply receipt to the producing source commit, relevant
classifier/source digest, machine/task identity, and plan digest.
Before autonomous write mode, fetch origin/main and fail closed when the executing revision
does not contain current origin/main, unless an explicit maintainer-approved diagnostic mode is
both read-only and clearly reported.
Refuse apply when plan-time and apply-time source identities differ, in addition to the existing
live issue-state compare-and-swap checks.
Ensure every canonical autonomous issue-audit entry point uses the same provenance guard.
Add a regression that models a stale producer predating the canonical-ruling fixes and proves it
cannot write labels.
Non-goals:
Do not weaken fail-closed handling, REST readback, mutation ceilings, or later genuine decision
reopening.
Do not infer which current Codex task produced this batch without direct evidence.
Blocked by: none for implementation. A definitive historical actor attribution may remain
unavailable and is not required to close the workflow gap.
Added Value Estimation
User impact: prevents already-settled decisions from repeatedly consuming maintainer attention.
Maintenance value: makes shared-credential mutations attributable and rejects stale audit code
before it can alter live labels.
Why now: the recurrence affected 21 issues after both ruling-classifier fixes had merged.
Effort / Complexity / Risk
Rough estimate: 3-6 hours; best estimate: 4 hours.
Complexity: moderate, spanning plan schema, apply validation, and autonomous entry points.
Main risk: an overly strict freshness check could reject a valid current feature worktree.
Mitigation: require write-capable workers to incorporate fetched origin/main; preserve a
clearly read-only diagnostic mode for older revisions; test both paths.
Estimate confidence: 70%; the number of independent issue-audit write entry points is the main
uncertainty.
Affected Files
scripts/dev/issue_audit_core.py - source/provenance fields and fail-closed apply guard.
tests/dev/test_issue_audit_core.py - stale producer, source mismatch, current source, and later
genuine-reopen regressions.
docs/context/issue_audit_contract.md - mutation-provenance and freshness contract.
Definition of Done / Acceptance Criteria
Every write-capable audit plan and receipt records source commit, classifier/source digest,
task or machine identity, and plan digest.
Apply refuses all mutations if plan-time and apply-time source identity differ.
Autonomous write mode refuses to run from a revision that has not incorporated freshly
fetched origin/main; read-only diagnostics remain available and explicit.
A complete live read-only replay reports no recurrence before implementation handoff.
Success Metrics
No live label mutation can be produced without an attributable source/version receipt.
A stale long-lived worker fails before its first GitHub write and emits a concrete refresh
command.
The current ruling queue remains empty unless new post-ruling decision evidence exists.
Validation / Testing
Add red/green focused tests for stale source, source mismatch, current source, and genuine later
reopen behavior.
Run the focused issue-audit test module, Ruff, format check, and git diff --check.
Run the repository workflow/tooling readiness path required for schema or automation changes.
Generate one complete read-only live audit from fresh origin/main, then inspect its plan and
provenance receipt; no production label mutation is needed for validation.
Claim Boundary
This is workflow-integrity evidence only. It authorizes no issue ruling, blocker removal, compute,
campaign, merge, artifact admission, release, publication, benchmark conclusion, or scientific
claim.
Project Metadata
Priority: P1 because one stale producer can recreate the entire maintainer decision queue.
Archetype Metadata
Goal / Problem
Observed behavior
On 2026-09-02, one writer using the shared
ll7GitHub credential addeddecision-requiredto 21 already-ruled open issues in a sequential batch between20:15:43 and 20:16:45 UTC:
#3207,#3287,#6155,#7290,#7382-#7388,#7409,#7411,#7412,#7457,#7980,#8021,#8064,#8076,#8172, and#8173.The current-main classifier at
aa69d7cdc2150023fca1cf805772807ea1575a85subsequently read everycomplete REST thread and returned
decision_required: falsewith empty decision evidence for all21. Each issue already had a controlling same-issue ruling or evidence-required/tracker
disposition. A maintainer pass removed only the false label and preserved all independent state,
dependency, domain, evidence, release, and external-input gates.
GitHub timeline events identify only the shared account, not the producing task, worktree, source
revision, or classifier version. The exact producer is therefore unknown. The strongest current
hypothesis, at roughly 80% confidence, is a long-lived worker using pre-fix audit logic or an
alternate write path that did not carry the current ruling regressions. This issue must not assume
that attribution as fact.
Expected behavior
An autonomous issue-audit writer must prove which source and plan produced a label mutation, and it
must fail closed before writing when its audit implementation is stale relative to fetched
origin/main, when the apply-time source differs from the plan-time source, or when produceridentity/provenance is unavailable. Current same-issue ruling suppression and genuine later-reopen
semantics must remain intact.
Parent issue
Reproduction / Evidence
Inspect the issue timeline events for the first and last affected rows:
Read all 21 complete issue threads through
scripts/dev/gh_issue_rest.py.Run
classify_issuefrom currentorigin/mainafter removing only the falsedecision-requiredlabel from each input. All 21 currently return no decision evidence.Observe that GitHub's event record contains actor and timestamp but no source commit, task,
worktree, plan digest, or classifier-contract version.
Scope
In scope:
classifier/source digest, machine/task identity, and plan digest.
origin/mainand fail closed when the executing revisiondoes not contain current
origin/main, unless an explicit maintainer-approved diagnostic mode isboth read-only and clearly reported.
live issue-state compare-and-swap checks.
cannot write labels.
Non-goals:
reopening.
publication, Project test_can_load_model_snapshot failed on
LeLuGPCWSL2204. #5 field, or independent blocker.Blocked by: none for implementation. A definitive historical actor attribution may remain
unavailable and is not required to close the workflow gap.
Added Value Estimation
before it can alter live labels.
Effort / Complexity / Risk
origin/main; preserve aclearly read-only diagnostic mode for older revisions; test both paths.
uncertainty.
Affected Files
scripts/dev/issue_audit_core.py- source/provenance fields and fail-closed apply guard.rg- current-main freshness check.tests/dev/test_issue_audit_core.py- stale producer, source mismatch, current source, and latergenuine-reopen regressions.
docs/context/issue_audit_contract.md- mutation-provenance and freshness contract.Definition of Done / Acceptance Criteria
task or machine identity, and plan digest.
fetched
origin/main; read-only diagnostics remain available and explicit.decision-requiredthrough anycanonical write entry point.
Success Metrics
command.
Validation / Testing
reopen behavior.
git diff --check.origin/main, then inspect its plan andprovenance receipt; no production label mutation is needed for validation.
Claim Boundary
This is workflow-integrity evidence only. It authorizes no issue ruling, blocker removal, compute,
campaign, merge, artifact admission, release, publication, benchmark conclusion, or scientific
claim.
Project Metadata