Skip to content

docs(rfc): record recurring failures and gate their repair - #1557

Merged
Teingi merged 14 commits into
oceanbase:masterfrom
AlexStocks:rfc-recurring-failure-repair
Sep 12, 2026
Merged

docs(rfc): record recurring failures and gate their repair#1557
Teingi merged 14 commits into
oceanbase:masterfrom
AlexStocks:rfc-recurring-failure-repair

Conversation

@AlexStocks

@AlexStocks AlexStocks commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Which issue or RFC does this PR close? Answers the design question in #1554 (feat: localize recurring failures to memory components and gate their repair). It does not close that issue: this PR adds an RFC only and does not ship a capability. # Scope Adds the bilingual RFC 1557 only. It changes no runtime code, OpenAPI contract, generated source, persistence format, or current prepare behavior. # Design direction - Add an optional failure block to ExperienceContent: a machine-matchable signature, a Review-confirmed repair_surface, and a verification binding. - Keep prepare completely read-only. Do not record candidate_not_selected; a byte-budget omission is not a negative result. - Reconstruct selected only from immutable provenance: TaskOutcome.handoff_receipt_ref -> Handoff Receipt Source -> accepted/exact selected_revision -> Handoff revision -> HandoffArtifactCitation -> Experience revision. Missing linkage is a provenance-coverage gap, never proof of a recall-policy fault. - Treat avoided as evidence-gated. The same linked Task Outcome must contain a verified condition observation and a verified, passing bound check; both need exact evidence and replayable item locators. A declared check, a task that stayed quiet, or an unexercised check remains unknown. - Retain failure_ref for each recurred event, so recurrence counters, replay, and Review all identify the same immutable failing observation or check. - Keep events append-only and idempotent. The signature is a match key, while immutable (artifact_id, revision) remains the Artifact identity. - Use Review-gated follow-up only. The RFC proposes no automatic retirement, decay, deactivation, ranking change, or cross-scope learning. # User-facing changes None in this PR. The RFC proposes future implementation work, including an optional failure object on ExperienceProposal; that implementation would require the normal OpenAPI generation and contract checks. # Validation - git diff --check - Local relative-link validation for both RFCs - Markdown fence and heading structure validation - RFC consistency checks for receipt-aware provenance, embedded-item locators, and exact-only matching - website/pnpm lint - website/pnpm generate GitHub Actions passed all 17 reported checks on aafd14c85da95a24bdb731c53d0f34a000ec5aaa, including Main, E2E harness, Native personal service, License Check, and CLA. Local website/pnpm check:links is blocked by the repository-wide website-link baseline: 184 files and 810 errors across pre-existing documentation. The two changed RFCs pass their direct relative-link check. # AI usage statement WorkBuddy and Codex were used to inspect the current implementation and related RFCs, check Issue #1554 decisions against the RFC, validate referenced model constraints, draft the bilingual RFC, and perform iterative review. The design decisions, scope boundaries, and final edits were reviewed interactively with the author.

AlexStocks and others added 4 commits September 12, 2026 16:03
Align the bilingual RFC with the Issue oceanbase#1554 evidence-accounting decision.

Constraint: Preserve prepare as a completely read-only path and keep the change limited to the RFC.

Rejected: Recording candidate_not_selected, treating missing selected provenance as recall failure, or changing runtime behavior in this documentation update.

Confidence: high

Scope-risk: low

Tested: git diff --cached --check; local Markdown-link resolution for both RFCs; pnpm lint; pnpm generate; pnpm check:links (blocked by existing repository-wide link failures in 184 files, including historical RFCs).

Not-tested: Static-site build did not run because the repository-wide link gate failed before Next.js compilation.

Co-authored-by: OmX <omx@oh-my-codex.dev>
Correct the Handoff receipt provenance chain and give embedded Task Outcome evidence a replayable locator.

Constraint: receipt-aware provenance; avoided requires condition and check item references; exact matching only.

Rejected: direct TaskCheck Source refs; new rejection Source kinds; human-confirmed recurrence matches.

Confidence: high

Scope-risk: low

Tested: git diff --cached --check; RFC local links; Markdown structure; pnpm lint; pnpm generate.

Not-tested: pnpm check:links is blocked by the repository-wide link baseline (184 files, 810 errors).

Co-authored-by: OmX <omx@oh-my-codex.dev>
Require verified same-outcome evidence for avoided events and preserve the exact failed item for recurrence events.

Constraint: prepare remains read-only; receipt provenance stays accepted/exact; all ledger evidence is replayable from immutable Source content.

Rejected: treating declared checks as proof of avoidance; counting a whole Task Outcome without its failing item; direct Outcome-to-Handoff linkage.

Confidence: high

Scope-risk: low

Tested: git diff --cached --check; RFC local links; Markdown fence structure; RFC evidence-invariant assertions; pnpm lint; pnpm generate.

Not-tested: pnpm check:links remains blocked by the repository-wide link baseline (184 files, 810 errors).

Co-authored-by: OmX <omx@oh-my-codex.dev>
Make the fixture's avoided, recurred, and unknown outcomes mutually exclusive and require event-level validation before persistence.

Constraint: event IDs include all evidence locators; selected remains receipt-derived; prepare stays read-only.

Rejected: shared contradictory fixture outcomes; idempotency keys that omit embedded evidence; permissive event rows.

Confidence: high

Scope-risk: low

Tested: git diff --cached --check; RFC local links; Markdown fence structure; recurrence-invariant assertions; pnpm lint; pnpm generate.

Not-tested: pnpm check:links remains blocked by the repository-wide link baseline (184 files, 810 errors).

Co-authored-by: OmX <omx@oh-my-codex.dev>
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md Outdated
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md Outdated
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md Outdated
Bind avoided evidence to the reviewed verification fields, route recurrence without causal claims, and use immutable Task Outcome journal positions for replayable streaks.

Constrain experience-content repairs to Experience revisions and preserve unlinked recurrence evidence without allowing it to imply avoidance.

Co-authored-by: OmX <omx@oh-my-codex.dev>
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md Outdated
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md Outdated
Comment thread docs/en/rfcs/1557_recurring_failure_repair.md Outdated
AlexStocks and others added 2 commits September 12, 2026 18:15
Persist frozen candidate sets and match decisions so recurrence attribution is replayable across Source processing and Experience revisions.

Define failure evidence states and expose recurrence statistics through the public scoped statistics contract.

Co-authored-by: OmX <omx@oh-my-codex.dev>
Exercise the frozen match decision and revision-head boundary in the minimum replayable source graph.

Co-authored-by: OmX <omx@oh-my-codex.dev>
@AlexStocks
AlexStocks requested a review from Teingi September 12, 2026 10:20

@Teingi Teingi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@Teingi
Teingi merged commit 62e4c82 into oceanbase:master Sep 12, 2026
17 checks passed
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.

2 participants