ModularRSI epistemic report
Type: agentic-system-analyses/types/agentic-system-epistemic-report.md
Source-and-claim boundary
The question is how execution experience becomes a claim about harness behavior, how that claim or its proposed implementation is checked, and what later behavior the result controls. The functional scope and exclusions are those of the boundary; all source references below resolve to SRC-1 in its Source register. This is an improvement plane including its solver, not an assessment of Harbor as an independent product.
The consequential public claim is RT-CLM-harness-improvement. The account below distinguishes task-verifier outcomes, model causal judgments, software admission and actual transfer. None licenses the others automatically. There was no target execution, provider call or test execution in this analysis. Implementation and prompt evidence establish available routes, not their successful exercise. No new source identity is introduced.
| Entry point or operation | Source path in SRC-1 | Coverage and records | Remaining limit |
|---|---|---|---|
| Evolution and evaluation launch, Phase0, task dispatch | scripts/evolve.sh, scripts/evaluate.sh, src/harbor/agents/terminus_2_modular/self_evo/phase0.py, src/harbor/agents/terminus_2_modular/self_evo/task_runner.py |
Supplied RT-RTE-solver-task, RT-RTE-generation-change | Launch wiring, not observed evolution. |
| Harbor CLI dispatch | src/harbor/cli/main.py |
Direct full read: run aliases job start; task/trial/job commands are exposed. RT-RTE-solver-task supplies task execution wiring. |
Standalone generic check, analyze, sweep and publishing commands are not traced as ModularRSI update consumers; no all-Harbor epistemic negative follows. |
| Investigator, summary extraction, review instruction | src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py |
Direct reads of summarize_trial, contrast builder/preamble and review builder/preamble; EPI-RTE-summary-extraction, EPI-OBJ-contrast-finding |
Model compliance and actual generated claims uninspected. |
| Routing, intervention comparison, successor coverage | src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.py, src/harbor/agents/terminus_2_modular/self_evo/routing.py, src/harbor/agents/terminus_2_modular/self_evo/clustering.py |
Direct reads: evidence hooks, route-one, collect-evidence; routing validator/prompt; cluster-finding. EPI-RTE-semantic-checks, EPI-RTE-finding-disposition | Semantic checks are model judgments, not proofs of causal diagnosis. |
| Disposition retention and routing suppression | src/harbor/agents/terminus_2_modular/self_evo/dispositions.py, src/harbor/agents/terminus_2_modular/self_evo/backlog.py, src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.py, src/harbor/agents/terminus_2_modular/self_evo/online_evo.py |
Prior disposition read; correction directly traces snapshot construction, ingestion and culprit selection; EPI-RTE-finding-disposition | Retryable status does not schedule older unattached findings. Cross-module file exists as a handoff, but automatic receiving-run consumption not established. |
| Editor registered actions: read, grep, glob, archive, validate, edit/create/edit-lines, commit, review verdict | src/harbor/agents/terminus_2_modular/modules/tools/editor_file_tools.py |
Direct dispatch and review/archive handler reads; supplied RT-BAP-module-execution; EPI-RTE-review-decision | Archive fallback exposes staging-derived metadata, not authenticated evolution history. File policy is not a candidate Python sandbox. |
| Smoke, action/niche checks, forced sanity, routing probe, repair and promotion | src/harbor/agents/terminus_2_modular/self_evo/online_evo.py, src/harbor/agents/terminus_2_modular/self_evo/smoke_tests.py, src/harbor/agents/terminus_2_modular/self_evo/two_lane.py |
Supplied RT-RTE-generation-change; direct read of review-edit for fail-open counterexamples | No measured reward-improvement admission invariant. Other gate detail is supplied runtime evidence, not a new direct full audit. |
| Confirmation and status withdrawal | src/harbor/agents/terminus_2_modular/self_evo/confirm.py |
Direct paired-statistics, regression predicate and variant rollback reads; helper path supplied by RT-RTE-generation-change; EPI-RTE-paired-confirmation | No randomized component intervention; no deletion or universal replay veto. |
| Solver model, terminal/helper execution, completion, verifier and context handoff | src/harbor/agents/terminus_2_modular/kernel/orchestration.py, src/harbor/agents/terminus_2_modular/modules/agent_loop/baseline.py, src/harbor/agents/terminus_2_modular/modules/verification/baseline.py, src/harbor/verifier/verifier.py, src/harbor/agents/terminus_2_modular/modules/context_mgmt/baseline.py |
Supplied RT-RTE-solver-task, RT-RTE-context-handoff | Baseline does not individuate all claims in arbitrary task answers or all evolved alternatives. |
| Descriptions, archive filters, static/cached/forced selection and executable loading | src/harbor/agents/terminus_2_modular/composer/llm_dynamic.py, src/harbor/agents/terminus_2_modular/library.py |
Supplied RT-RTE-bundle-selection, RT-BAP-description-selection, RT-BAP-module-execution | Selection is not efficacy validation; imports precede ordinary choice. |
| Released library and bundled evaluation artifacts | generations/merged_active/, trajectories/mergefinal/ |
Boundary inventory only; individual trial bodies and variant bodies not newly inspected | Prevents observed diagnosis/admission attribution, complete variant-specific coverage and independent gain estimates. |
| Public transfer and gain narrative | README.md |
Direct full read; RT-CLM-harness-improvement | Reported operation, not an independent causal experiment. |
The supplied refusal also identifies optional solver skill-catalog injection through SRC-1 src/harbor/agents/terminus_2_modular/modules/tools/baseline.py and src/harbor/agents/terminus_2_modular/kernel/orchestration.py. This operation is not directly inspected here. Complete comparisons of solver instruction discovery and subsequent skill-body consumption are therefore withheld; the existing compression account remains local, not a complete working-context inventory.
External model weights, provider behavior, unfrozen task tests and omitted evolution/verifier traces prevent assessing internal reasoning, oracle adequacy for particular tasks, full lineage and actual causal benefit respectively. Available but unread bundled trials are not access failures. Uninspected released module alternatives prevent a system-complete negative about truth-apt production or acceptance. The implemented routes below can nevertheless be assessed separately.
Epistemic-object inventory
| Object ID | Candidate truth-apt content or none | Claimed role | Evidence source ID and local anchor | Gap/limit |
|---|---|---|---|---|
| EPI-OBJ-trial-summary | see record | see record | see record | see record |
| EPI-OBJ-contrast-finding | see record | see record | see record | see record |
| EPI-OBJ-routing-judgment | see record | see record | see record | see record |
| EPI-OBJ-behavioral-delta | see record | see record | see record | see record |
| RT-OBJ-module-library | Executable policy, not by itself an asserted proposition | see record | see record | A particular body may encode checkable assumptions; all bodies are not assessed here. |
| RT-OBJ-module-description | Capability and applicability assertions can be true or false of named variants | see record | see record | Particular assertion truth and selection compliance uninspected. |
| RT-RTE-solver-task | Task input, observations and generated answers may contain truth-apt claims; exact claims not determinable here | see record | see record | Scope varies by unfrozen task. Completion signal is a control decision, not a correctness certificate. |
| RT-RTE-context-handoff | Model summary/questions/answers may assert task state | see record | see record | Fidelity and individual claims not inspected. |
| RT-CMP-lite-llm | Provider-parametric content not individually accessible | see record | see record | No weight-level conclusion about acquisition, derivation or truth checking. |
Authority-route ledger
Rows sharing a record distinguish its consequential functions rather than declaring duplicate referents. Fields owned by a shared record are reached through see; the relation and architectural assessments below are local to this overlay.
| Route ID | Route function | Architectural status | Object/candidate ID | Content/update relation | Transition or check target | Evaluator/condition and domain | Activation and timing | Possible or observed result | Implemented force | Epistemic authority and scope | Operational authority: behavior permitted, blocked, or changed | Behavioral-authority path: consumer, channel, force, horizon | Evidence source ID and local anchor | Claim IDs or none | Mismatch marker or none | Gap/limit |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RT-RTE-solver-task | content transformation | implemented | see record | truth-apt transformation: acquisition/import | Task and observed tool results enter chat | see record | see record | see record | see record | Source warrant unknown for unfrozen tasks and external tool outputs | see record | see record | see record | none | none | Transmission is not endorsement; generated answer semantics not determinable without the task and content. |
| RT-RTE-solver-task | content transformation | implemented | see record | truth-apt transformation: indeterminate | Model-generated task answer or assertion | Configured model inference; no semantic preservation rule established | see record | see record | see record | Candidate content only; exact propositions and warranted premises not determinable without a task/answer pair | see record | see record | see record | none | none | Actual answer may import, reshape, derive or conjecture. Missing input/output evidence prevents deciding among them, not the implementation finding that generation is wired. |
| RT-RTE-solver-task | check/evidence production | implemented | see record | no content change | Task output versus task-provided test criterion | Harbor executes configured verifier; reference outcome is task-provided, not self-completion | see record | see record | see record | At most correctness under that test's domain; encoding, coverage and hidden assumptions remain external | see record | see record | see record | none | none | No particular omitted verifier execution audited. |
| EPI-RTE-summary-extraction | content transformation | implemented | EPI-OBJ-trial-summary | truth-apt transformation: non-ampliative reshaping | see record | see record | see record | see record | see record | Preserves the selected recorded fields, not full evidence or its truth | see record | see record | see record | none | none | Bound to inspected extraction, not all heuristic failure labels. |
| RT-RTE-generation-change | content transformation | implemented | EPI-OBJ-contrast-finding | truth-apt transformation: ampliative conjecture | Counterfactual effect of a module edit | Investigator asked to explain observed divergence; not an intervention experiment | see record | see record | see record | Candidate causal hypothesis only | see record | see record | see record; SRC-1 src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py |
none | none | Prompt's proposed change was not applied to the compared same-code rolls; its effect does not follow from their outcomes. Actual output and soundness uninspected. |
| RT-RTE-generation-change | behavior/policy adaptation | implemented | EPI-OBJ-behavioral-delta | non-truth-apt policy/content update: proposed module behavior becomes candidate Python | see record | see record | see record | see record | see record | Executability does not certify causal rationale | see record | see record | see record | none | none | Model code generation may additionally make claims; those are not individually assessed. |
| EPI-RTE-semantic-checks | check/evidence production | implemented | EPI-OBJ-routing-judgment | truth-apt transformation: indeterminate | see record | see record | see record | see record | see record | Responsibility, redundancy or successor coverage judgment, not task-success or transfer proof | see record | see record | see record | none | none | Reply may repeat input or add a new semantic claim; actual replies absent, so reshaping versus conjecture unresolved. |
| EPI-RTE-finding-disposition | disposition/acceptance | implemented | EPI-OBJ-routing-judgment | no content change | see record | see record | see record | see record | see record | Procedural admissibility/placement only, not acceptance of a causal claim as true | see record | see record | see record | none | none | Terminal invalidity can remove a real finding because syntax failed; it does not refute its content. |
| EPI-RTE-finding-disposition | retention | implemented | EPI-OBJ-contrast-finding | no content change | see record | see record | see record | see record | see record | Findings and reasons retained as candidates/dispositions, before causal acceptance | see record | see record | see record | none | none | Clustering links support without supplying independent confirmation. |
| RT-RTE-generation-change | check/evidence production | implemented | RT-OBJ-module-library | no content change | Syntax, import, bundle/static contracts, declared niche/action, required activation and code crashes | see record | see record | see record | see record | Bounded compatibility and execution evidence, not improved accuracy | see record | see record | see record | RT-CLM-harness-improvement | Quality interpretation exceeds these checks | Failure of a task alone need not reject; ordinary routing probe never gates. |
| EPI-RTE-review-decision | check/evidence production | implemented | RT-OBJ-module-library | truth-apt transformation: indeterminate | Plausible causal link and absence of task-specific overfit | see record | see record | see record | see record | Evidence-consuming model assessment, bounded by supplied trajectories and intended module use | see record | see record | see record | RT-CLM-harness-improvement | No generalization certificate | A yes judgment is fallible; execution/compliance unobserved. |
| EPI-RTE-review-decision | disposition/acceptance | implemented | RT-OBJ-module-library | no content change | see record | see record | see record | see record | see record | Actual accept channel requests evidence-based acceptance for trying the module; skipped pass grants no epistemic acceptance | see record | see record | see record | RT-CLM-harness-improvement | Review pass is not always reviewer acceptance | Later sanity repair can change reviewed bytes. |
| RT-RTE-generation-change | retention | implemented | RT-OBJ-module-library | no content change | Candidate becomes numbered generation | see record | see record | see record | see record | Retained admitted executable, not necessarily an accepted causal theory | see record | see record | see record | none | none | Atomic rename does not transact archive synchronization. |
| RT-RTE-bundle-selection | operational admission/selection/consumption | implemented | RT-OBJ-module-description | no content change | Per-task choice of strategies and helpers | see record | see record | see record | see record | Catalog/task judgment without reference reward; no validated capability inference | see record | see RT-BAP-description-selection, RT-BAP-module-execution | see record | none | none | Static/cache/forced paths bypass parts of fresh selection. |
| EPI-RTE-paired-confirmation | check/evidence production | implemented | EPI-OBJ-trial-summary | truth-apt transformation: entailed derivation | see record | see record | see record | see record | see record | Arithmetic pass-rate difference over recorded shared-task samples only | see record | see record | see record | none | none | Observational differences do not isolate component effect. |
| EPI-RTE-paired-confirmation | behavior/policy adaptation | implemented | RT-OBJ-module-library | non-truth-apt policy/content update: archive status becomes superseded | see record | see record | see record | see record | see record | Harm-screening rule, not a proposition that all remaining variants improve | see record | see record | see record | none | none | Best-effort withdrawal from normal selection, not universal rollback. |
| RT-RTE-context-handoff | content transformation | implemented | see record | truth-apt transformation: indeterminate | Model summary/questions/answers replace active history | see record | see record | see record | see record | Fidelity unchecked in supplied route; non-ampliative compression cannot be assumed | see record | see record | see record | none | none | Requires actual input/output comparison to establish preservation, entailment or novel claim. |
| RT-RTE-generation-change | lifecycle integration | no route found within boundary | EPI-OBJ-contrast-finding | no content change | Integration after acceptance of the causal claim as warranted | None established in the inspected finding/routing/review chain | No such causal-claim acceptance established | Retention, support linking and executable installation do occur; see records above | No distinct force established for this function | No accepted causal knowledge claim established by this chain | Other functions carry operational authority, not this asserted phase | see record | see record; EPI-RTE-finding-disposition | none | none | Scoped absence of an established phase, not a complete-system negative or denial of candidate curation. |
System-claim versus route comparison
| Claim ID | Claimed operation or warrant | Claim source ID/anchor and evidence layer | Doctrine/design support | Implemented route IDs | Observed-run support | Causal support and design limits | Supported conclusion | Mismatch/unknown |
|---|---|---|---|---|---|---|---|---|
| RT-CLM-harness-improvement | see record | see record; SRC-1 README.md, reported operation |
see record | RT-RTE-generation-change, RT-RTE-bundle-selection, EPI-RTE-review-decision, EPI-RTE-paired-confirmation | README reports gains; no individual bundled run audited here | Shared-task confirmation is not independent module variation; admission is not reward superiority; full training trace and external tasks absent | An experience-responsive harness-change and later-consumption mechanism exists | Reported transfer and gains remain attributed. The reading that every promotion has substantive reviewer approval or validated superiority is contradicted by fail-open review and crash/activation-only sanity. This does not refute reported benchmark outcomes. |
The search for counterexamples changed the interpretation of the gates, not the frozen public numbers: an explicit structured reject can veto, so review is not merely decorative; a timeout can pass, so it is not universal acceptance. Required activation can reject a non-crashing candidate, so sanity is not merely a crash test; nevertheless activation is not benefit. Retryable comparison failures are nonterminal, so not every failed check suppresses eligibility; this does not schedule reconsideration in a later window. Malformed routing can be terminal. These distinctions are carried in the records rather than collapsed into a system-wide verdict.
Bounded conclusion
ModularRSI acquires task observations and task-verifier outcomes, extracts selected trace facts, and requests counterfactual explanations of why a module change would help. The recorded reward's source warrant remains task-dependent. Deterministic extraction preserves particular fields, not the entire trajectory. Its shared-task statistics derive a descriptive difference from recorded premises, not a causal explanation or transferable effect. See RT-RTE-solver-task, EPI-RTE-summary-extraction and EPI-RTE-paired-confirmation.
Its diagnosis instructions explicitly seek ampliative causal conjectures: a proposed intervention's effect goes beyond outcomes of the unchanged harness. Findings can be retained and clustered before evidence-consuming acceptance of that causal claim. Responsibility, redundancy and successor-coverage checks govern proposal organization and continuation, not truth of the underlying mechanism. Their force includes suppressing routing when the finding is supplied again, or leaving it eligible for another attempt without scheduling that attempt. See EPI-OBJ-contrast-finding, EPI-RTE-semantic-checks and EPI-RTE-finding-disposition.
There is a material evidence-consuming acceptance route for a proposed executable change: the reviewer is asked to judge trajectory-linked effectiveness and task-specific overfit for module use. That is a bounded, fallible model decision, not a causal experiment. A skipped review is operational permission without that decision; software checks and forced execution provide different licenses. Promotion installs code with later Python authority even when substantive review was skipped, and sanity repair can alter previously reviewed bytes. Descriptions separately influence task-level selection. See EPI-RTE-review-decision, RT-RTE-generation-change, RT-BAP-module-execution and RT-BAP-description-selection.
Confirmation can directly adapt policy by retiring a variant on a descriptive deficit, without accepting a natural-language explanation. This is a real downstream consumer of outcomes. Its best-effort archive status does not erase files or close static/cache/forced replay paths. Context summarization likewise grants later model-visible authority without a separately evidenced fidelity check. See EPI-RTE-paired-confirmation and RT-RTE-context-handoff.
These architecture findings coexist with the runtime's separately bounded reflection, theory-builder, autonomous-operation and improvement-directed self-change findings; none establishes improved future capacity or exercised causal self-improvement. In particular, no inspected trace closes the link from a particular retained edit to later changed behavior and benefit. Provider parameters and exact served versions remain opaque; the inspected clients invoke inference rather than weight training. Uninspected bundled trials and released alternatives prevent a complete-system negative about accepted claim production. The public transfer/gain claim remains attributed rather than independently reproduced: RT-RTE-generation-change, RT-CMP-lite-llm, RT-CLM-harness-improvement.
Shared records
Operative objects
EPI-OBJ-trial-summary
Label: TrialSummary evidence fields
Part of: RT-RTE-generation-change
This object is the selected evidence part transported by that route, not a competing name for the entire route. Source-native identity: TrialSummary.reward, task/trial names, exception fields and bundle identity. Representational form: symbolic JSON-derived fields and typed summary fields; natural-language last messages remain a separately selected excerpt, not a claim of semantic equivalence. Substrate: trial result.json and optional agent/trajectory.json, then dataclass instances and rendered investigation context. Truth-apt content: what reward was recorded for this task/trial and which bundle was recorded, not independently whether the real-world task succeeded. The claimed role is evidence for contrastive diagnosis and confirmation. Provenance and oracle correctness are not established by extraction. Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py, summarize_trial; passage in EPI-RTE-summary-extraction. No supplied operative-object counterpart; contained in the supplied generation-change route.
EPI-OBJ-contrast-finding
Label: Contrast finding causal content
Part of: RT-RTE-generation-change
Source-native identity: contrast_finding, including divergence, would_change_outcome, and proposal causal_hypothesis. Form: natural-language descriptive and counterfactual assertions in symbolic field envelopes. Substrate: investigator output, persisted findings and proposal support, then lane briefs. This is the causal-content part of the generation-change route, distinct from its proposed behavioral instruction. Intended scope is a named locked module and task, sometimes efficiency on a passed task rather than correctness recovery. No actual generated finding is inspected, so particular truth and observed theory formulation remain uninspected. The prompt requests an effect under an edit not present in the compared same-code samples: this is conjecture, not entailed derivation. Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py; later persistence and consumer supplied by RT-RTE-generation-change.
You get the SAME task solved on one roll and FAILED on another (same code, different sampling). ---
src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py
- The counterfactual (this IS the verdict): picture a concrete change to
{locked}— the specific thing our{locked}lacks vs the yardstick above. Ask: with that change in place, would the failing roll plausibly have reached what the passing roll reached — i.e. this task moves fail → pass (or clearly closer)? ---src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py
EPI-OBJ-behavioral-delta
Label: Proposal behavioral delta
Part of: RT-RTE-generation-change
Source-native identity: behavioral_delta and proposed action/target. Form: natural-language prescription with symbolic lane/action/target identifiers. Substrate: routed output and proposal fields, then implementer brief. Role: specify what to change, not by itself assert a true causal mechanism. Its separately stored causal hypothesis belongs to EPI-OBJ-contrast-finding; its executable replacement is not a part of the existing module object until installed. Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/routing.py, validator and template; supplied brief consumption in RT-RTE-generation-change. Actual proposed deltas uninspected.
if lane != LANE_OUT_OF_SCOPE and not behavioral_delta: raise InvalidRouting("behavioral_delta is required — what would change?") ---
src/harbor/agents/terminus_2_modular/self_evo/routing.py
EPI-OBJ-routing-judgment
Label: Routing and comparison judgments
Part of: RT-RTE-generation-change
Source-native identities: routing responsibility/dismissals, same_intervention, successor_covers, and disposition kind/reason. Form: model-interpreted natural-language rationales plus software-consumed symbolic booleans and categories. Substrate: model replies, audit rows, proposal links and dispositions.jsonl. These differ from causal findings: they assert responsibility, intervention equivalence or current coverage, and govern whether an existing finding gets work rather than whether its causal explanation is true. Different targets and consumers are split in EPI-RTE-semantic-checks and EPI-RTE-finding-disposition. The object is a part of the supplied broad route, with no supplied object counterpart. Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.py, src/harbor/agents/terminus_2_modular/self_evo/clustering.py, src/harbor/agents/terminus_2_modular/self_evo/dispositions.py; quotations in those route records. Particular judgment truth remains uninspected.
Routes
EPI-RTE-summary-extraction
Label: Trial evidence extraction
Part of: RT-RTE-generation-change
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return:
TrialSummaryor None when the result is missing/unparseable. - Later read-back: selected fields enter persisted findings/proposal evidence through the parent route; exact persisted field coverage is not fully audited here.
- Delegated visibility: investigator context receives selected summary fields, reward and trace; reviewer formatting omits reward, as supplied in the parent route.
- Selection predicate: existing parseable result; optional trajectory contributes bundle and excerpts when present.
- Invalidation or expiry: missing or invalid result prevents summary; absent trajectory leaves bundle unknown; summaries do not invalidate the original recorded result.
- Activation or effect: selected task evidence becomes available for diagnosis, not independent authentication of the test outcome.
- Evidence limits: implementation deduction only; source correctness and actual model reliance unobserved.
Owner/endpoints: driver-side summarize_trial maps trial files to diagnosis evidence. This is a material part of, not an alternative declaration for, the generation-change route. For a concrete static input deduction, a result object with task_name: "t", trial_name: "r", and verifier_result: {rewards: {reward: 0}} yields those names and reward zero. With no trajectory, bundle remains None; reward zero is not replaced by a fabricated pass. This preserves those selected facts conditionally on the input. It neither validates the verifier nor entails that a module caused the failure. Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py.
task_name = result.get("task_name") or trial_dir.name.split("__")[0] trial_name = result.get("trial_name") or trial_dir.name reward = (result.get("verifier_result") or {}).get("rewards", {}).get("reward") ---
src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.pyreturn TrialSummary( task_name=task_name, trial_name=trial_name, reward=reward, ---
src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py
EPI-RTE-semantic-checks
Label: Routing semantic checks
Part of: RT-RTE-generation-change
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: routing decision, same-intervention boolean/reason, or successor-coverage boolean/reason.
- Later read-back: comparison and routing audit data can persist; proposal links and dispositions carry the consequential result through the disposition route.
- Delegated visibility: responsibility router receives finding and active variant descriptions; sameness judge receives deltas/hypotheses; successor judge receives finding text capped at 3000 characters and successor code capped at 6000.
- Selection predicate: active variants and locked type bound responsibility; open candidates bound comparison; mapped retired incumbent triggers successor coverage.
- Invalidation or expiry: active archive can change; already-attached or terminal findings skip future routing. A comparison exception becomes unknown, not false.
- Activation or effect: outputs are consumed by clustering and disposition, not merely logged.
- Evidence limits: model/provider semantic accuracy unobserved; textual prefix parsing is not verification of the explanation.
The owner is the evidence-pass driver; computation proposes and judges categories, with no per-finding human approval and no answer oracle. Domain and check target are separate: routing asks whose responsibility the gap is, not how well it performs; same-intervention asks whether one edit makes another redundant; successor coverage asks whether the current code closes a previously alleged gap. These are not the investigator's pass/fail oracle and do not test transfer. The structural validator checks lane/action membership, active targets and required dismissal coverage, not whether each reason is true. The implemented judge request is not proof of good judgment.
Counterexample to an unconditional fail-closed interpretation: _yes treats any non-YES reply as false. In particular an empty ordinary reply yields false, whereas an exception during sameness comparison is recorded as None and blocks creating a competing proposal. Successor NO allows continued work. Concrete deduction: _yes("YES, already covered") is true and _yes("uncertain") is false under the inspected function. No target execution is needed. Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.py, src/harbor/agents/terminus_2_modular/self_evo/routing.py; distinct semantic-check part of the supplied parent, not duplicate of its whole diagnosis/admission loop.
def _yes(text: str) -> bool: return (text or "").strip().upper().startswith("YES") ---
src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.pygap=str(finding.raw_finding)[:3000], code=(self._source(successor_qual) if self._source else "")[:6000], ---
src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.pyResponsibility, not quality. Ask "whose job is this?", never "is it done well?". ---
src/harbor/agents/terminus_2_modular/self_evo/routing.py
EPI-RTE-finding-disposition
Label: Finding placement and withdrawal
Part of: RT-RTE-generation-change
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: created/linked proposal or already-clustered, out-of-scope, stale, covered, invalid or unresolved outcome, with reason/audit.
- Later read-back: proposal membership and terminal disposition IDs enter collect-evidence's placed set, filtering findings returned from the supplied snapshot. Open proposals remain available for later selection through the parent route. Retryable disposition does not cause old unattached findings to be loaded for routing; cross-module handoff writes a module-specific file, whose automatic receiving consumer is uninspected.
- Delegated visibility: clusterer receives validated routing and resolved semantic answers; future implementer briefs receive proposal/finding evidence through the parent route, not the entire judge context.
- Selection predicate: existing attachment first; then lane/live lineage/successor coverage; first same-intervention match links; unresolved candidates block creation; otherwise create.
- Invalidation or expiry: terminal kinds suppress routing if the finding is supplied again, while retryable does not; retryable status supplies no scheduling mechanism. No automatic reconsideration of a terminal semantic judgment established here. Write failures are best effort and may leave less durable state.
- Activation or effect: linkage increases a proposal's support and terminal IDs remove findings from later routing eligibility; no accepted causal claim is required.
- Evidence limits: disposition truth and successful writes unobserved; semantic false negatives and malformed outputs can affect continuation without refuting content.
Owner: deterministic clustering/ledger code, using model decisions from EPI-RTE-semantic-checks. This is the disposition/retention part of the supplied parent route, not a new diagnosis loop. In this bounded curriculum, software can veto new work as invalid, stale or already covered; humans do not approve each placement. There is no reference answer for redundancy or responsibility. Trigger is a newly ingested culprit finding not already placed. Guidance, causal hypotheses and proposed deltas remain in findings/proposals; outcome reasons remain in audit/disposition state. Retention starts before any causal-claim acceptance. An unresolved comparison leaves the finding unattached, records a retryable disposition and blocks creation of an untested duplicate. This preserves the finding and outcome without terminal suppression, but does not establish next-window reconsideration. The clustering comment promising that consequence is stronger than the inspected caller: ingest_step returns records of the supplied snapshot, and collect_evidence routes only eligible culprits among those records; the online caller supplies its newly generated window snapshot, not a sweep of older unattached findings. Re-supplying an old snapshot could make a retryable finding eligible again, but this path does not schedule that resupply. Open-proposal reuse remains supported separately by the parent route. An out-of-scope disposition is a handoff, not evidence that the other module fixed anything.
Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/clustering.py, src/harbor/agents/terminus_2_modular/self_evo/dispositions.py, src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.py, src/harbor/agents/terminus_2_modular/self_evo/backlog.py, src/harbor/agents/terminus_2_modular/self_evo/online_evo.py. This qualification agrees with the supplied MEM-RTE-evidence-brief: nonterminal eligibility is distinct from scheduled reconsideration.
TERMINAL_KINDS = frozenset({OUT_OF_SCOPE, COVERED, STALE, INVALID}) ---
src/harbor/agents/terminus_2_modular/self_evo/dispositions.pyplaced |= _dispositions.terminal_finding_ids(archive_root) culprits = [r for r in records if r.is_culprit and r.finding_id not in placed] ---
src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.pyrecords: list[FindingRecord] = [] for index, finding in enumerate(findings): if not isinstance(finding, dict): continue rec = _record_of( step, index, finding, prov_by_task.get(finding.get("task") or "") ) records.append(rec) ---
src/harbor/agents/terminus_2_modular/self_evo/backlog.pyreturn records ---
src/harbor/agents/terminus_2_modular/self_evo/backlog.pyrecords = _backlog.ingest_step(archive_root, snapshot, provenance=provenance) ---
src/harbor/agents/terminus_2_modular/self_evo/evidence_pass.pysnapshot = {"step": step_id, "router": route.buckets, "findings": findings} ---
src/harbor/agents/terminus_2_modular/self_evo/online_evo.pyevidence_report = await _evidence.collect_evidence( archive_root, snapshot=snapshot, ---
src/harbor/agents/terminus_2_modular/self_evo/online_evo.py
EPI-RTE-review-decision
Label: Review evidence and admission decision
Part of: RT-RTE-generation-change
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: accept, reject, skipped or blocked review result with reason; substantive reject can specify proposal versus implementation blame and a repair brief.
- Later read-back: outer gate consumes
passed; parent route can route an implementation defect into a fresh build; accepted/skipped results permit later checks, not immediate guaranteed promotion. - Delegated visibility: reviewer receives diff, intent and reward-omitting trajectory summaries in disposable staging; raw allowed trajectories remain readable. Implementer and reviewer are separate sessions.
- Selection predicate: configured review stage after earlier checks; only executed valid verdict file supplies a substantive decision, not free prose.
- Invalidation or expiry: review copy is discarded after result; skipped missing verdicts can trip circuit breaker, but timeout/exception returns precede that accounting. Sanity repair can change final bytes without renewed review in the parent gate.
- Activation or effect: explicit rejection blocks this candidate; accept and some skips allow continuation. This is permissive/enforcing gate force, not an efficacy certificate.
- Evidence limits: reviewer compliance and soundness unobserved. Architecture permits admission without evidence-consuming reviewer acceptance; actual promoted histories uninspected.
This distinct review part is contained in the supplied generation-change route. Trigger is a candidate diff; proposer is the implementer model, decider the reviewer model plus driver, with no per-content human approval in the shipped loop. Intended acceptance criterion: for MODIFY, concrete link between touched code path and observed failure; for ADD, observed failure mode, plausible mechanism and description likely to route; also no task-specific overfit. Intended use/scope: admit a module strategy into the continuing bounded task experiment. The model is asked to consume evidence, so actual structured acceptance is more than storage or novelty. It still warrants only that bounded judgment, not demonstrated causality, source truth or transfer. There is no reference answer oracle for the review; verifier rewards are intentionally omitted. The reviewer can challenge the direction or its code implementation, and implementation blame can guide repair. These are affordances for content-directed criticism, not observations that a sound theory was criticized.
Theory account for this review part: guidance asks the reviewer to criticize a causal proposal against trajectories and distinguish a bad direction from defective code; rejection reason and repair brief can survive into the next implementation attempt. Under theory-builder conditions 1–4, condition 1 conclusion status: afforded — intent/hypothesis is a localized unit, but actual formulated theory is uninspected; condition 2 conclusion status: wired — intent and diff reach the decision procedure, while semantic dependence in an actual decision remains uninspected; condition 3 conclusion status: afforded — requested criticism names challenged mechanism, evidence and proposal/implementation blame, but a sound criticism is not observed; condition 4 conclusion status: wired — implementation-class rejection can feed the next build, while actual iterative theory revision is uninspected. Addressability is at proposal and code-unit level, not provider-internal assumptions. Persistence reaches later builds/windows through findings, proposals and outcomes. Learning and exercised self-improvement remain uninspected; this review subroute alone establishes neither reflection nor autonomous performance of every theoretical operation. The whole-boundary, independently assessed properties remain those of RT-RTE-generation-change, not consequences of these four conditions.
Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.py, src/harbor/agents/terminus_2_modular/modules/tools/editor_file_tools.py, src/harbor/agents/terminus_2_modular/self_evo/online_evo.py; later repair bypass and promotion are supplied by RT-RTE-generation-change.
MODIFIED an existing module — is there a concrete causal link between the touched code path and an actual failure you can see in the trajectories? A change that targets something the trajectories don't show as a problem is NOT effective. ---
src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.pyNEW variant / new helper (ADD) — it cannot have run yet (see Architecture facts), so judge three things instead: (i) the failure MODE it targets is actually visible in the trajectories, (ii) its mechanism would plausibly change that outcome, and (iii) its DESCRIPTION would lead the composer to select it on tasks resembling those failures. Reject if any of the three fails — never for "it did not run in this batch". ---
src/harbor/agents/terminus_2_modular/self_evo/trajectory_analysis.pyverdict = review_verdict.read_verdict_file(review_staging) discard_staging(review_root) ---
src/harbor/agents/terminus_2_modular/self_evo/online_evo.pyreturn _ReviewResult( passed=True, verdict="skipped", reason="review timed out (infra)" ) ---
src/harbor/agents/terminus_2_modular/self_evo/online_evo.py
EPI-RTE-paired-confirmation
Label: Paired outcome confirmation and retirement
Part of: RT-RTE-generation-change
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: per-variant stats, shared-task delta/regressions and rolled-back names.
- Later read-back: superseded archive status affects ordinary future dynamic selection; parent runtime records editor-memory outcome use, without requiring a validated causal explanation.
- Delegated visibility: program receives task/bundle/reward tuples from retained records; provider reasoning and individual component mechanisms are not inputs to the statistic.
- Selection predicate: nonmissing reward and bundle; shared tasks for candidate and baseline, active candidates, default at least three shared tasks and delta below minus 0.34. Helper comparison instead uses presence/absence, as supplied by parent route.
- Invalidation or expiry: status change is best effort; old records remain. Dynamic filtering can avoid retired variants, but static/cache/forced routes and import-time execution are not universal vetoed paths.
- Activation or effect:
set_statuscan retire the variant from normal later dynamic selection; no actual retirement or behavior change observed here. - Evidence limits: matching task names does not randomize variant choice, time, other modules or sampling; neither arithmetic nor threshold establishes isolated causal effect or generalization.
The check target is descriptive performance of a named variant against baseline on their recorded shared tasks. Evaluator: deterministic reward thresholding and mean arithmetic. The policy target is later ordinary routing eligibility; evaluator: software margin rule. The force is archive-mediated exclusion, horizon later dynamic selections. No human chooses each retirement. The answer oracle is the recorded task-verifier reward, not the investigator's hypothesis or the model's completion assertion. A concrete implementation deduction: three tasks each with variant reward zero and baseline reward one produce three shared tasks, rates zero and one, delta minus one, hence a regression under defaults; this says nothing about the same unobserved intervention with all else held constant. Rewards below one are binarized as failure and missing rewards are skipped. The check does not require a natural-language theory to adapt behavior. This is a material subroute of the supplied generation-change record, with its own evaluator and consumer, not a duplicate for the entire admission loop.
Evidence: SRC-1 src/harbor/agents/terminus_2_modular/self_evo/confirm.py; ordinary and bypass consumers from RT-RTE-bundle-selection.
def _passed(reward) -> float: return 1.0 if (reward or 0) >= 1.0 else 0.0 ---
src/harbor/agents/terminus_2_modular/self_evo/confirm.pyv_rate = statistics.mean(statistics.mean(tv[(t, variant)]) for t in shared) b_rate = statistics.mean(statistics.mean(tv[(t, baseline)]) for t in shared) ---
src/harbor/agents/terminus_2_modular/self_evo/confirm.pyif d and d["shared_tasks"] >= min_shared and d["delta"] < -margin: out.append({"variant": v, **d}) ---
src/harbor/agents/terminus_2_modular/self_evo/confirm.pyif _arch.set_status( archive_root, f"{module_type}/{reg['variant']}", "superseded" ): rolled.append(reg["variant"]) ---
src/harbor/agents/terminus_2_modular/self_evo/confirm.py