docs(rfc): record recurring failures and gate their repair - #1557
Open
AlexStocks wants to merge 4 commits into
Open
docs(rfc): record recurring failures and gate their repair#1557AlexStocks wants to merge 4 commits into
AlexStocks wants to merge 4 commits into
Conversation
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue or RFC does this PR close?
Answers the design question raised in #1554 (
feat: localize recurring failures to memory components and gate their repair). It does not close that issue: merging an RFC does not ship a capability, so #1554 stays open for the implementation discussion.docs/en/rfcs/README.mdasks contributors to validate a problem and direction through an issue before opening an RFC. #1554 is that issue, and it is linked as this RFC's optionalTracking Issue, matching how RFC 1489 links #1488. No separate tracking issue is created: the RFC process explicitly does not require one.Rationale for this change
PowerContext records positive judgment well.
ExperienceContentcaptures reusable judgment assituation/action/outcome/lesson, and Review validates it before publication. Nothing observes it after publication, and nothing can recognise that a failure has happened before.The consolidation path makes this concrete.
LLMExperienceCandidatePipeline.incubatededuplicates candidates by exact content equality plus source identity, and itsseenset lives inside a single bounded window (EXPERIENCE_INCUBATION_WINDOW_LIMIT = 32). It never compares against earlier windows or against published revisions. The same failure observed twice therefore becomes two Experiences, and a re-worded description of one failure becomes two Experiences even inside one window. Recurrence is uncountable, so alessoncannot be falsified — and a failure that keeps happening reads like accumulating knowledge.RFC 0014 already lists "validated pitfalls" as preferred content and requires a durable entry to change a future agent's judgment, but it never defines what validated means. RFC 0051 lists "retirement, ranking, and usage attribution for Experience and Skill" as future work. This RFC supplies the usage-attribution half for the negative case, and keeps the boundaries those RFCs recorded: no automatic retirement or decay, and only explicit revision evidence can change a record.
What changes are included in this PR?
Adds one design document in both locales; no runtime, API, or persisted-format change.
failureblock onExperienceContent, whose signature is arecall_cue(the situation that should recall the record) plus an optionalsymptom. This is the only field that makes "this happened before" checkable.repair_surfacenaming the layer a fix must touch —experience_content,working_state,recall_policy, oracceptance_check— mapped onto PowerContext's own surfaces rather than copied from the reference implementation. It makes "the record is right but recall never fires it" an expressible diagnosis.selected/recurred/avoidedper published revision, written only by the consolidation path. Selection is reconstructed from provenance that already exists (TaskOutcome.handoff_receipt_ref→ Handoff revision →HandoffArtifactCitation[]), because RFC 0028 forbids writes and per-entry logging on the read path and RFC 1489 keeps model calls out of assembly.failed/blocked, or aTaskCheckwith statusfailed/timed_out/unavailable. An unverifiable record is dropped rather than stored.CandidateRepository; other classes propose nothing and surface in statistics. No automatic retirement, decay, or deactivation, and no artifact state field.recurrenceblock onScopeStatisticsand a per-revision listing, returned by the existing statistics operation. No new MCP tool.prepare, no cross-Scope learning.Two places deliberately do not copy the cited reference implementation: its automatic deactivation after 5 non-avoided hits (contradicts RFC 0051 and the absence of artifact state), and its mutable content-derived card id (contradicts immutable revisions).
Are there any user-facing changes?
No current behaviour changes. This is a design-only RFC.
It proposes one future public change: an optional
failureobject onExperienceProposalinopenapi/powercontext.yaml, which would requiremake api-generatefollowed bymake contract-test. Because the field is optional, existing revisions remain load-compatible, and noschema_versionis introduced — the Artifact families do not carry one today.How was this change tested?
make docs-test: passed.pnpm lintclean, and the static build finalized 712 pages, including the new RFC page in both locales.scripts/verify-static-export.tsreported:Verified 792 public pages and their internal links (106 HTTP API, 392 Python API, 74 RFC, 13 development).docs/en/rfcs/README.mdrequires the RFC number to be assigned only after the pull request is open. The follow-up commit renamed both files from0000_recurring_failure_repair.mdto1557_recurring_failure_repair.mdand added theRFC PRheader line; no link target or section of either document changed.docs/en/rfcs/anddocs/zh/rfcs/.make testandty checkare unaffected by this PR.masteratc2016666, the commit this branch is based on.AI usage statement
WorkBuddy (Agent mode) using DeepSeek V4.1 Flash was used to inspect the current implementation and the related RFCs, verify every cited code reference against source
masteratc2016666, compare the design against the cited prior art, and draft the English and Chinese documents. The design decisions, the boundaries and the non-goals were reviewed interactively with the author.