Kherad report verification

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

Verification

The reports support a bounded implementation account. I read all five submitted members, the boundary, structural report-check and four empty correction-answer files. The structural check reports none; there is no structural failure requiring a routed blocker and no correction argument to accept or decline. I independently checked source behavior rather than treating the analysts' validation statements as semantic verification. SRC-1 HEAD equals the reviewed commit and its working tree is clean. The tracked-tree inventory supports the application boundary in boundary: shipped web callers and persistence services are included, not externalized. All additional inspection below is implementation or doctrine/design evidence within that same source, not observed operation.

Runtime and delivery

I traced RT-RTE-indexer-compile through the compile endpoint, complete orchestrator, tools, source-mirror helper and prompt. The source supports the distinction between a started run, staged writes, an agent-branch proposal and publication. It also supports no-work completion, incremental index fallback, synthesized missing log, resource rewriting, branch overlay, reused MR identity and failed-run bookkeeping. RT-OBJ-pending is process-local staging, not durable memory or a queue. Source anchors: SRC-1 apps/api/src/routes/indexer.ts, apps/api/src/agents/indexer/run.ts, apps/api/src/agents/indexer/tools.ts, apps/api/src/agents/indexer/source-mirror.ts, apps/api/src/agents/indexer/prompt.ts.

I checked RT-RTE-review-merge against approve/reject handlers, scope selection and search synchronization, and inspected the scoped merge dispatch. The human gate is real but scoped. Approval resolves a live branch rather than a submitted immutable approval token; no-op and conflict outcomes differ. Git publication precedes search/status effects. The separate active-run lookup and insertion do not establish distributed exclusion. These qualifications are retained, not contradicted by local Git write locking. SRC-1 apps/api/src/routes/merge-requests.ts, packages/core/src/git/merge.ts, packages/core/src/git/engine.ts.

For RT-RTE-bundle-chat, I followed the complete chat handler and tools, search tools, mention assembly and web history transport. Default-branch tool reads do not restrict the submitted conversation or attached raw context. Supported data-pageMentions parts reach instruction assembly; this is not merely a hypothetical unchecked type. Latest-source selection scans default and user branches by branch-tip timestamp, not per-page edit time. RT-BAP-attached-pages correctly describes interpretive priority without claiming compliance. This supports the qualification of RT-CLM-reviewed-chat, not an observed grounding violation. SRC-1 apps/api/src/routes/chat.ts, apps/api/src/agents/chat/tools.ts, apps/api/src/agents/chat/prompt.ts, apps/api/src/agents/page-mentions.ts, packages/core/src/git/source.ts, packages/core/src/git/engine.ts, apps/web/src/components/chat/bundle-chat.tsx.

I checked both create/edit tool assembly and the decision/save/import branches for RT-RTE-specialist-session and RT-RTE-source-authoring. Manual content is a supported save input that avoids accepted-override assembly, while ownership, mode and edit checks remain. This does not establish model-controlled invocation of that endpoint. Remote tools are merged into both tool sets without the local proposal decision gate. RT-BAP-session-skills and RT-RTE-admin-configuration accurately separate administrator admission, live method loading and unobserved compliance. SRC-1 apps/api/src/routes/agent-sessions.ts, apps/api/src/lib/write-page-content.ts, apps/api/src/agents/specialist/tools.ts, apps/api/src/agents/specialist/page-edit-tools.ts, apps/api/src/agents/skills.ts, apps/api/src/routes/skills.ts, apps/api/src/agents/mcp.ts.

The raw and compiled remote handlers support RT-RTE-remote-pull: admin synchronization can change default content without an MR. The conversion/transcription/OCR/placement/commit handlers support RT-RTE-ingest-document: returned or temporary text is separate from caller-supplied committed content. Docling internals remain opaque rather than an established model-free dependency. The five component records—RT-CMP-indexer-model, RT-CMP-chat-model, RT-CMP-embedding-model, RT-CMP-ocr-model and RT-CMP-stt-model—appropriately distinguish editable symbolic selectors, external parameters and unpinned weight identities. SRC-1 apps/api/src/routes/bundle-remote.ts, apps/api/src/routes/document-remote.ts, apps/api/src/routes/ingest.ts, apps/api/src/lib/ingest-jobs.ts, apps/ingest/main.py, apps/api/src/agents/settings.ts, apps/api/src/lib/embedder.ts, apps/api/src/agents/ocr-settings.ts, apps/api/src/agents/stt-settings.ts.

Memory records

The object distinctions in MEM-OBJ-source-pages, MEM-OBJ-source-mirror and MEM-OBJ-compiled-docs match their producers and consumers. A mirror is both readable content and a byte watermark, not factual endorsement. MEM-OBJ-search-index, MEM-OBJ-chunk-content and MEM-OBJ-chunk-embedding correctly separate access metadata, readable text and numerical ranking state. I checked the uncapped tsvector versus capped content, heading/paragraph splitting and 64-chunk selection, including the oversized-first-paragraph exception. Embedding happens before replacement deletion and indexing catches failure; the search consumer filters model string without checking content freshness. The stale-semantic-payload qualification is supported. SRC-1 packages/core/src/search/refresh.ts, packages/core/src/search/chunking.ts, packages/core/src/search/embedding.ts, apps/api/src/agents/search-tools.ts, packages/db/src/schema.ts.

MEM-OBJ-session-content and MEM-OBJ-message-parts preserve the difference between accepted bodies, status recaps, rendered previews and raw dialogue. I checked latest-accepted selection, rejected re-proposals, upload-ID reads, schema cascades and client-mediated history replay. MEM-RTE-history-replay establishes an actual later consumer, not merely storage; it does not claim byte-exact SDK/provider delivery. MEM-RTE-search-refresh and MEM-RTE-search-read preserve best-effort refresh, finite candidate pools, permission gating and snippet delivery rather than vectors delivered as prose. HTTP search dispatch and gating were checked separately from agent search. SRC-1 apps/api/src/agents/specialist/page-edit-tools.ts, apps/api/src/agents/specialist/tools.ts, packages/db/src/schema.ts, apps/api/src/routes/chat.ts, apps/web/src/components/chat/bundle-chat.tsx, apps/api/src/routes/search.ts.

MEM-RTE-compiled-edit agrees with the complete compiled-document handler: caller-branch preference, path/frontmatter/access gates and log read-only treatment do not imply direct publication. MEM-RTE-version-restore agrees with both version endpoint and core helper: snapshots/restores cover raw, legacy wiki and OKF prefixes and can clear absent prefixes. Attachment assembly has no page-row deletion check, while page deletion affects live inventories and a user branch. The report correctly withholds universal immediate withdrawal. SRC-1 apps/api/src/routes/okf-docs.ts, apps/api/src/routes/wiki-versions.ts, packages/core/src/git/versions.ts, apps/api/src/routes/pages.ts, apps/api/src/agents/page-mentions.ts.

Epistemic and workflow records

The epistemic objects EPI-OBJ-source-pages, EPI-OBJ-concept-docs, EPI-OBJ-session-draft and EPI-OBJ-chat-answer retain their stated cross-stage/container scopes. Their passages and supplied runtime evidence support candidate existence and delivery, not a concrete generated proposition or factual acceptance episode.

I independently checked EPI-RTE-structural-check and EPI-RTE-resource-rewrite. The reserved exceptions and nonempty type check are structural. The one-source fallback can associate a valid concept with a source without inspecting its body; the report's deduction follows the executable branch and is not presented as a run. Separate ledger functions for checking, staging disposition, retention and operational use are warranted. EPI-RTE-okf-edit, EPI-RTE-version-restore and EPI-RTE-page-delete are supported at their stated inspection depths. The restore's raw framing is not an assertion that OKF is excluded; the reconciled core-level finding supplies the broader scope. SRC-1 apps/api/src/lib/okf-doc.ts, apps/api/src/agents/indexer/tools.ts, apps/api/src/agents/indexer/source-mirror.ts, apps/api/src/routes/okf-docs.ts, apps/api/src/routes/wiki-versions.ts, apps/api/src/routes/pages.ts.

EPI-CLM-source-fidelity is a prompt policy; EPI-CLM-reviewed-publication accurately attributes the universal PRD wording. Neither is elevated into an invariant. The source/route comparison and indeterminate semantic-transformation assessments preserve the difference between requested fidelity, syntax, operational admission and evidence-consuming factual acceptance. Missing run evidence is not used to erase implemented capacities or to infer absent learning, reflection or theory criticism. SRC-1 apps/api/src/agents/indexer/prompt.ts, PRD.md, apps/api/src/agents/specialist/page-edit-prompt.ts.

For WF-RTE-conflict-resolution, I checked review authorization, stored-conflict lookup, required-path coverage, helper call and post-Git effects. The endpoint establishes a recovery affordance, not semantic validation of resolutions or exercised recovery. The workflow's two delivery boundaries agree with compile-panel polling and MR-linked success versus no-MR success. Its representative route does not purport to enumerate every publication path. SRC-1 apps/api/src/routes/merge-requests.ts, apps/web/src/components/compile/compile-panel.tsx, apps/api/src/agents/indexer/run.ts.

Relations, omissions and stopping decision

I checked every declared record's evidence status and the cited passages for meaning, while leaving deterministic citation resolution and quote-occurrence checking to code. Route wired findings concern connected code; operation remains uninspected. No record asserts an observed execution, causal benefit or evidenced absence. The three explicit Part of: relations—structural check and resource rewriting within compilation, conflict resolution within MR admission—are supported by call progression. The memory search routes span several consumers/producers; history replay adds client/GET behavior beyond the runtime POST account. Their nonidentity treatment does not erase a required operative part.

The two supersessions in reconciliation connect the same compiled-save and version-restore endpoints, with retained evidence and affected scope. The raw/mirror, concept/container, session and answer/message overlaps are not exact identities. No incorrect combined finding requires split supersession. I checked all five memory integration issues against the reconciliation's dispositions. Restoration, attachment withdrawal and semantic freshness qualify the selected runtime chain rather than contradict it. There is no unresolved inter-report disagreement requiring an anchored conflict paragraph.

Omission questions were selected from the frozen tree and producer/consumer dependencies: could an alternate shipped path defeat universal review, could another context channel defeat compiled-only input, could failed maintenance leave old readable content, and could editor recovery add retained state outside Git/session inventories? Remote pulls, version helpers, supported mention inputs and embedding consumers settle the first three without weakening the supported findings. The editor question identifies the local inventory limit below. Additional inspection of the web autosave handler, editor caller, API client and schema establishes that this is a real shipped recovery route, not hypothetical storage. SRC-1 apps/web/src/app/api/autosave/route.ts, apps/web/src/app/bundles/[bundleId]/pages/[pageId]/edit/page.tsx, apps/web/src/lib/api-client.ts, packages/db/src/schema.ts.

await saveAutosaveDraft(pageId, { markdown: combinedMarkdown() }); --- apps/web/src/app/bundles/[bundleId]/pages/[pageId]/edit/page.tsx

const draftContent = draft?.contentJson as { markdown?: string } | undefined; const draftMarkdown = draftContent?.markdown; --- apps/web/src/app/bundles/[bundleId]/pages/[pageId]/edit/page.tsx

const split = splitFrontmatter(draftPrompt.markdown); frontmatterRef.current = split.frontmatter; setFrontmatter(split.frontmatter); setInitialMarkdown(split.body); --- apps/web/src/app/bundles/[bundleId]/pages/[pageId]/edit/page.tsx

Further optional omission expansion stopped because the identified challenges have supported dispositions or the local limit below. The reports already delimit uninspected UI/converter/dependency details and do not emit a complete negative about all evaluators, compaction or improvement routes. Further unrelated artifacts would not by themselves change the central account. No target code, tests, examples or providers were executed.

Blockers

none

Limits

  • The memory inventory is incomplete for human-editor recovery. Alongside the Git source content in MEM-OBJ-source-pages and Git snapshot recovery in MEM-RTE-version-restore, the shipped editor periodically retains dirty Markdown in Postgres autosave_drafts, reloads a newer draft and offers user-controlled restoration into editor state. This path is not represented by an analyst record; memory explicitly leaves remaining editor/UI details unaudited. The inspected handler, caller and retained passages above support the omission, not successful recovery in operation (SRC-1 apps/web/src/app/api/autosave/route.ts, apps/web/src/app/bundles/[bundleId]/pages/[pageId]/edit/page.tsx, apps/web/src/lib/api-client.ts, packages/db/src/schema.ts). Withhold exhaustive retained-object and recovery-route comparisons: Git and specialist sessions are not the complete inventory. The central compilation, publication, retrieval and warrant findings remain supported; this local human-edit buffer does not establish a new automatic model-memory or trace-fed method-learning route.