C-416: clear one stale cycle.json open_flag (bot credential rotation) per Job #15 finding; Job #16's flag retained pending actual re-attestation
EPICON_C-416_GOV_clear-stale-open-flags_v1¶
Intent publication¶
epicon_id: EPICON_C-416_GOV_clear-stale-open-flags_v1
ledger_id: cursor-aurea-daedalus-c416-flag-clear
scope: docs, ci, specs
mode: normal
issued_at: 2026-08-28T00:00:00Z
expires_at: 2026-11-20T00:00:00Z
justification: |
VALUES INVOKED: integrity, operator truth, custodianship
REASONING: cycle.json's open_flags array is not cycle-scoped (apply_cycle_writer_hygiene() only auto-clears flags matching ^c\d+-), so a flag set once persists forever unless a human or agent removes it explicitly — confirmed by grepping state_sync_cycle.py's is_cycle_scoped_open_flag(). C-416 governance review Job #15 (AUREA) found mobius-bot-app-credentials-rotation-required traces to issues #339/#351 (writer silent 10 days / cycle.json drifted 13 cycles, June-July 2026), both closed by merged PR #361 — today's C-416 sync ran and committed successfully, direct positive evidence MOBIUS_BOT_APP_ID/MOBIUS_BOT_PRIVATE_KEY are currently valid. That flag is removed here. Job #16 (DAEDALUS) investigated identity-vercel-creds-pending-reattest and found no reproducible active outage, but its own disposition was REATTESTATION_RUNBOOK_READY — a runbook to run, not evidence the pending re-attestation actually completed. A Codex review on the first version of this PR correctly caught that the initial diff removed both flags, conflating "no evidence of a live outage" with "the pending condition is resolved" for Job #16's flag specifically; that flag literally names a re-attestation that is still pending, and Job #16's own writeup says to clear it "only once the probe reports healthy," which was never run. This revision keeps identity-vercel-creds-pending-reattest in place and removes only the flag with positive resolution evidence (Job #15's).
ANCHORS:
- EPICON_C-416_GOV job-15-bot-credential-rotation (AUREA finding: FLAG_STALE)
- EPICON_C-416_GOV job-16-vercel-identity-reattest (DAEDALUS finding: REATTESTATION_RUNBOOK_READY — runbook ready, not executed)
- Full C-416 governance review: https://claude.ai/code/artifact/faa0ed8a-b227-4c5c-b118-f61699a7bf63 (#job15, #job16)
- scripts/state_sync_cycle.py is_cycle_scoped_open_flag() / apply_cycle_writer_hygiene()
- Mobius-Substrate PR #361 (merged) — closed issues #339, #351
- Codex review on PR #444 (chatgpt-codex-connector), P2 finding: "Retain the flag until identity re-attestation completes"
BOUNDARIES: Removes exactly one array entry (mobius-bot-app-credentials-rotation-required) from cycle.json's open_flags. Does not touch identity-vercel-creds-pending-reattest (retained — re-attestation not actually completed) or mic-wallet-render-crash-loop (MIC/wallet-related, off-limits per guardrail). Does not modify current_cycle, date, gi, gi_attested_this_cycle, mode, vault, kv, mesh, or agents fields. No credential rotation, no re-attestation, no secret access, no config or workflow file change.
COUNTERFACTUAL: If the credential-rotation flag's underlying condition recurs (writer silent again), re-add it with a fresh dated note. identity-vercel-creds-pending-reattest should only be cleared once the Job #16 runbook's probe (probeIdentityAttestAuth()) actually reports healthy, per that job's own stop condition.
counterfactuals:
- If tests or schema validation fail, do not merge
- If the credential-rotation flag is later found to still be live, re-add it with current evidence
- If cycle.json's current_cycle, date, or gi value is found mutated by this change, revert immediately
Authority classes (not interchangeable)¶
| Class | Posture |
|---|---|
Flag 1 — mobius-bot-app-credentials-rotation-required | Stale (Job #15, AUREA): incident closed via PR #361, credentials proven live by today's successful sync — removed |
Flag 2 — identity-vercel-creds-pending-reattest | Not resolved (Job #16, DAEDALUS): only REATTESTATION_RUNBOOK_READY — the runbook exists but was not executed — retained |
Flag 3 — mic-wallet-render-crash-loop | Untouched — MIC/wallet-related, off-limits per guardrail |
| Execution authority | execution_authorized=false — this is a documentation/config housekeeping change, not a credential or production action |
Witness table¶
| Claim | Verdict | Evidence |
|---|---|---|
open_flags is cycle-scoped and self-clears | FALSE | is_cycle_scoped_open_flag() only matches ^c\d+- prefixed flags; neither flag in this file matches |
| Credential-rotation flag's originating incident is closed | TRUE | Issues #339, #351 closed via merged PR #361 |
| Bot credentials are currently valid | TRUE | Today's C-416 mobius-bot-state-sync run committed successfully |
| Vercel identity re-attestation has actually completed | FALSE | Job #16's own disposition is REATTESTATION_RUNBOOK_READY — a runbook, not a completed action; no probe was run |
identity-vercel-creds-pending-reattest correctly retained | TRUE | Flag names a pending action that remains pending; removing it would misrepresent operator state |
mic-wallet-render-crash-loop touched | FALSE | Left in open_flags unchanged |
current_cycle / date / gi mutated | FALSE | Only the open_flags array changed |
| Schema validation passes | TRUE | jsonschema.Draft7Validator against schemas/cycle_state.schema.json — valid |
| Existing test suite passes | TRUE | python3 -m unittest tests.test_state_sync_cycle — 21/21 |
Authority Provenance & Standing¶
Authority declared using docs/templates/EPICON_FOUNDER_STANDING.md v0.1
Evidence-and-schema-proposal repair, executing Job #15's (AUREA) recommendation from the C-416 governance review. Job #16's (DAEDALUS) flag is deliberately retained after a Codex review correctly identified that this PR's first version removed it without the actual resolution evidence its own writeup required. AUREA scribe (mobius-aurea-cursor), runtime_id cursor-aurea-daedalus-c416-flag-clear. No production authority exercised; no credential, secret, or deployment action taken.
"We heal as we walk." — Mobius Systems