WikiSkill report verification

Type: agentic-system-analyses/types/agentic-system-verification.md

Verification

The supplied reports support a bounded implementation account. The previous blocker is repaired: research Markdown index extraction is now connected to the research Wiki, not product JSON patterns. No material blocker remains. The partial research-controller inventory remains a publication limit below.

I read the complete invocation, supplied reports and types, correction answers, reconciliation, record contract, structural check and previous verification. Only the epistemic answer contains a correction argument. I judged that argument against the source and all dependent passages rather than treating it as proof. The structural check reports none; there is no structural failure to route. I independently checked the checkout HEAD against the Source register; it equals the reviewed commit and the checkout has no reported changes. All source inspection below is SRC-1 at that revision. No target execution, tests, providers or experiments were run.

Runtime and workflow

I traced src/wikiskill/product.py through initialization, journal replay, phase advancement, request/context construction, task recording, learning, proposal, feedback, retry and export. RT-OBJ-product-journal correctly describes symbolic replay and consistency checks, not authenticated storage. RT-RTE-product-round and the workflow account preserve the actual ordering: task completion precedes maintenance, committed maintenance precedes proposal, and candidate validation precedes successor selection. The permitted-source union includes existing pattern identifiers. Nonempty text and identifier membership do not establish semantic entailment. Numeric admission uses strict direction-adjusted improvement above the threshold in src/wikiskill/score_rules.py; no-action does not pass it. Rejection preserves committed patterns while retaining the incumbent. Failed scoring preserves output and requires explicit retry rather than becoming an accuracy result.

I read src/wikiskill/native_agents.py and all three src/wikiskill/resources/product/roles/ instructions for RT-RTE-native-handoff. Task payload filtering, aggregate learning history, staged role instructions, host-reported freshness, binding checks, ID nonreuse and collection containment agree with the report. Direct submissions have a weaker file boundary than collection. Retry can reuse saved execution and its original delegation. The workflow annotations preserve that exception and correctly assign recovery to the coordinator. Role prohibitions and fresh-context declarations are not host sandboxing or demonstrated compliance.

I read src/wikiskill/feedback_loop.py against RT-RTE-feedback-gate. Ordinary feedback and explicit requirements have different predicates. Explicit requirements permit ties only with fulfilled checks, zero worse cases and no regressions; these remain caller reports. Initialization without an explicit skill clears the active inherited pointer while retaining knowledge. This is a qualification of ordinary product inheritance, not a contradiction. Skip is termination without adoption, not a successful comparison.

I traced src/wikiskill/engine.py, the default role factories in src/wikiskill/officeqa/wiki_agents.py, and the invocation helper in src/wikiskill/officeqa/rollout.py for RT-RTE-research-evolve. Batch bindings, valid-row reuse, infrastructure handling, maintenance marker, proposal checkpoint, strict gate and retained impact history support the named route. Callback-source binding is a caller contract. The synthetic demo does not evidence model improvement. The legacy helper inherits the environment except CODEX_HOME and requests workspace-write; it does not supply the isolated runtime's envelope.

For RT-RTE-isolated-study, I traced preparation, task construction/scoring, feedback paging, role payloads, trace-read checks, learning and final gating in src/wikiskill/spreadsheet/study.py, together with configuration, boundary probes and execution in src/wikiskill/isolated/runtime.py and tool dispatch in src/wikiskill/isolated/tools_server.py. The study starts with empty skills, samples maintenance evidence, supplies all training summaries to proposal, and checks actual successful trace reads. Candidate skill text reaches validation; only a strict correct-count increase reaches final active output. There is no scheduled second learning round. Learning tools expose staged reads and structured submission; Spreadsheet exposes shell execution under a separate OS policy. Unsealed attempts refuse automatic model retry and timeouts preserve partial records. These are inspected controls, not observed deployed isolation or benefit.

RT-CMP-host-model and RT-CMP-research-model correctly separate requested model identity, external parameter storage and uninspected endpoint resolution. No inspected route updates weights. This does not exclude learning through retained instructions. The channels and horizons in RT-BAP-role-guidance and RT-BAP-skill-consumption match native staging, engine arguments and study prompt injection; delivery is not activation.

I checked src/wikiskill/product_install.py against RT-RTE-skill-install: complete-phase admission, retained-byte selection, explicit replacement flag, backup receipts and refusal to overwrite later edits are supported. Export and installation do not prove host reload. The workflow's coordinator explanation and no-retained-skill delivery are doctrine in skills/wikiskill/SKILL.md, not evidence that delivery occurred. RT-CLM-mcp-separation accurately narrows src/wikiskill/mcp_server.py's claim: omitted approval/install tools matter for a tool-restricted client, but src/wikiskill/scorer_trust.py and product APIs do not establish host-wide privilege separation. Scorer receipts bind direct files, not every imported dependency, and scorers run with ordinary host permissions.

Memory records and consumers

I checked each operative object against its source anchor and actual consumer. MEM-OBJ-patterns and MEM-OBJ-feedback are supported distinct parts of the product journal: current lesson mappings and original notes have different revision behavior. Their Part of: relations agree with replay. Rendered Markdown is not the product authoring-context source. MEM-OBJ-experience distinguishes retained outputs and optional traces from journal integrity metadata; MEM-OBJ-skill distinguishes instruction bytes from adoption pointers. Caller identity and optional traces do not warrant universal computational authorship or trace origin.

MEM-OBJ-research-wiki agrees with engine template copying, prompt exclusion in src/wikiskill/wiki.py, and pre-write contract validation/full-page replacement in src/wikiskill/wiki_maintainer.py. Validation is not an OS transaction against later I/O failure. Candidate rejection does not undo maintenance. MEM-OBJ-skill-impact correctly distinguishes stored purpose/diff/scores from the default Proposer's shorter inline rendering and optional staged full-file read. The full-rejected-proposal claim in src/wikiskill/resources/paper_alignment/prompts/proposer.paper.md is not an invariant of that impact projection or the fresh isolated study.

For MEM-OBJ-research-evidence, I traced default sampling, stdout/event tails, trace staging, paper visible-trace rendering in src/wikiskill/paper_alignment/evidence.py, and study feedback paging. The failure/success caps, sorted eligible trace cap, middle trimming and complete paged reference values are supported. They do not establish lossless context, complete answer scrubbing, foreground-chat compaction or actual optional-file use.

MEM-OBJ-paper-skills and MEM-RTE-paper-adapters match src/wikiskill/paper_alignment/agents.py and src/wikiskill/paper_alignment/contracts.py: named skill/purpose pairs, unique local patches, reported and actual read checks, accepted-map reconstruction and omission of purposes from joined task text. The callable adapter needs injected transport; default CLI activation is not established. An empty initial study mapping cannot exercise its generic patch capability. MEM-BAP-wiki-authors correctly identifies authoring models, rather than task executors, as direct learned-Wiki consumers. The annotations preserve route-specific selection, inheritance, recovery and deployment limits without redefining the runtime records.

Epistemic repair and other checks

The corrected authority-route ledger assigns EPI-RTE-wiki-index to MEM-OBJ-research-wiki. I independently followed src/wikiskill/wiki_maintainer.py's heading/summary extractor, sorted page traversal and index rendering, then the Maintainer application and Proposer staging in src/wikiskill/officeqa/wiki_agents.py. These are research Markdown consumers. Separately, product _wiki_view renders replayed mappings and _context supplies those mappings. The corrected inventory, coverage table, helper declaration, product-object account and bounded conclusion all preserve this distinction. The static reshaping deduction remains supported; it has not been weakened to evade the objection.

EPI-OBJ-wiki-patterns identifies the same product lessons as the memory declaration; its route-parent relation is containment, not a different object. EPI-OBJ-workbook-lesson matches the bundled resource src/wikiskill/resources/research/repeatability-20260908/wiki-deliver-the-recalculated-workbook.md. Artifact availability supports a candidate explanation, not linked production, testing, acceptance or intervention evidence.

EPI-RTE-label-score, EPI-RTE-paper-contract and EPI-RTE-snapshot-check agree with examples/text-cleanup/score.py, the paper contracts and src/wikiskill/results.py. Exact equality after output stripping is narrower than general normalization. Structural/read-count checks do not license comprehension or truth. Snapshot recomputation is input-conditional numerical/hash consistency, not task reruns, authenticated provenance or candidate admission. The static examples are deductions, not executed evidence.

I checked every ledger row, claim comparison and bounded conclusion against its declaring records and these consumers. EPI-CLM-wiki-lessons faithfully attributes README doctrine and qualifies universal strict-improvement wording with explicit-requirement ties. Pattern retention, criterion-bound skill acceptance and operational instruction delivery are distinct. Actual model transformation semantics remain indeterminate without linked inputs and outputs. The semantic-consolidation row's doctrine-only status describes requested semantic work, not denial of implemented submission/persistence. Separate operation, benefit and theory-builder qualifications do not turn history delivery into formulated criticism or exercised self-improvement. No evidenced-absence records are declared; bounded nonfindings do not assert repository-wide absence.

I checked all declarations, source anchors, statuses, annotations, Part of: relations, identity comparisons and supersession in reconciliation. Superseding the duplicate epistemic product-pattern object by the memory object is justified by the shared name/content/source mapping. The valid journal container, external payloads, research objects, helpers and behavioral paths remain distinct. Source-admission, history-projection and inherited-pointer qualifications are additive rather than contradictory. The former index-object conflict is resolved in the supplied reports, so reconciliation correctly no longer emits it as unresolved. No other unresolved cross-report conflict needs routing. Its statement about receiving no correction answers describes its own supplied inputs; the epistemic answer available to this verifier does not invalidate that statement.

Omission questions were selected from the frozen tracked tree, CLI/MCP dispatch, alternate domain-loop files and producer/consumer dependencies. I asked whether alternate submissions bypass the claimed native boundary, whether feedback changes the gate, whether retained rationale survives context projections, whether a consistency result actually controls adoption, and whether additional shipped callers defeat the named research routes. Direct APIs, feedback initialization, paper adapters, study finish and export/restore supplied supported dispositions above. Additional inspection of src/wikiskill/officeqa/retrieval.py confirms skill injection and whole-corpus task access, not an additional learned-Wiki admission mechanism; retrieval quality remains unassessed. The bounded hook-spelling search under Python/Markdown/JSON/TOML/YAML in src/ and skills/ only found the isolated runtime's disabled feature name; it cannot establish host-wide absence.

I separately inspected OfficeQA iteration/promotion and Spreadsheet candidate-file resume. Those callers sustain the carried partial-inventory limit rather than contradict the engine gate. Tree and definition searches also found LiveMath and SealQA iteration libraries, without tracing their full behavior. None is dismissed as external merely for calling an API. Optional omission expansion stopped because every selected consequential challenge now has a supported disposition or the explicit inventory limit, and no identified material contradiction remains. Further available files alone do not justify exhaustive enumeration. Unread domain evaluators, bundled runs and external deployments cannot establish system-complete acceptance coverage, observed improvement or component-causal comparisons.

Blockers

none

Limits

  • RT-RTE-research-evolve, the memory coverage table and the epistemic coverage table characterize named engine/default-callback and study paths, not every callable research controller. SRC-1, src/wikiskill/officeqa/loop.py also ships run_iteration, which accepts incumbent/best-score paths, runs maintenance/proposal/validation, promotes a skill and appends impact history. src/wikiskill/spreadsheet/loop.py has a distinct candidate-file resume path that skips optimizer reruns and reconstructs a reduced purpose/rationale account. Definition searches additionally locate iteration libraries in src/wikiskill/livemath/loop.py and src/wikiskill/sealqa/loop.py; their full paths were not traced. These included library alternatives do not invalidate the named engine or memory mechanisms, but leave the route/recovery inventory partial. Withhold complete research-controller enumeration and universal checkpoint, provenance, recovery or acceptance-route comparisons. No deployed caller or observed operation of those additional libraries is established. The OfficeQA promotion witness is:

    promoted = wiki_dir / f"SKILL-it{iteration}.md" promoted.write_text(result.skill_md, encoding="utf-8") --- src/wikiskill/officeqa/loop.py