ai-memex-cli report verification

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

Verification

The pinned runtime, memory, epistemic, workflow and reconciliation members support a bounded implementation account. No publication blocker was found. One local omission limits comparisons between repository-local instructions and newly installed workflows; it does not invalidate the traced CLI loop.

I read every supplied member, all record declarations and annotations, their governing types and the record contract. Correction-answer inputs are empty; the structural report-check says none. There is therefore no structural finding to route and no correction answer to accept on its author's assurance. I independently read the frozen source rather than treating analysts' validation statements as semantic verification. Checkout HEAD equals the reviewed boundary and short status was empty. All added source inspection is SRC-1 implementation or separately attributed doctrine/design under the Source register. No target, test, model, network service or example was executed.

Runtime, delegation and recovery

I checked the component, configuration and prompt findings in RT-CMP-coding-agent, RT-OBJ-agent-profiles and RT-OBJ-ingest-prompt against SRC-1, src/core/agent-adapter.ts, src/core/config.ts, src/commands/ingest.ts and src/utils/exec.ts. The distinction between executable/profile identity and model identity holds. Mutable binary/provider resolution supplies no pinned inference model, parameter-update evidence or observed learning. Argument construction, long-prompt file wrapping, inherited environment, ignored streamed stdin and cleanup support the caller-level context account, not provider eviction or a filesystem sandbox. Compatibility across every registered profile remains outside the asserted guarantees.

For RT-RTE-ingest-write, RT-RTE-semantic-lint and RT-RTE-watch-repair, I traced dispatch, prompt building, execution, failure handling, lint and after-clean refresh in SRC-1, src/cli.ts, src/commands/ingest.ts, src/commands/lint.ts, src/core/ingest-lint-loop.ts and the event/health/controller portions of src/commands/watch.ts. Edits are requested before mechanical evaluation; no artifact acceptance transaction is implemented by these callers. Failure may be followed by lint; zero issues can therefore describe unchanged existing files. Repeat keys omit frontmatter error details, watch defaults to unlimited iterations, and force bypasses the repeat guard. None establishes factual correctness, convergence, rollback or bounded spend. The workflow's selected sequence, failure analysis and delivery analysis, including all three annotations, preserve these distinctions. Lint exceptions can escape the selected controller, while refresh failures are best effort. No workflow record declarations compete with the runtime records.

I checked RT-RTE-capture-source, RT-RTE-session-distill and RT-RTE-install-update against SRC-1, src/commands/fetch.ts, src/commands/distill.ts, src/commands/install-hooks.ts, src/commands/update.ts and package.json. Interactive source selection, deterministic raw writes, caller-cwd agent capture, mechanical versus delegated distillation, copied skills, host-specific prompt generation and package replacement are different controls. Raw preservation and collaboration are instructions, not system-wide write invariants. The update path does not select improvements through a model-quality evaluator or run a test suite before replacement. Source and process wiring remain distinct from successful operation.

Retained parts and later consumers

I checked every memory object and the optional save route against its named producer and consumer, including annotations on supplied runtime records. Direct source reads covered SRC-1, src/commands/init.ts, src/commands/new.ts, src/commands/log.ts, src/commands/migrate.ts, src/core/distiller.ts, src/core/wiki-index.ts, src/core/schema.ts, src/core/linker.ts, src/core/scene-manifest.ts, src/core/context-registry.ts, src/commands/context.ts, src/core/context-block.ts, src/commands/search.ts, src/commands/inject.ts, src/core/injector.ts, src/core/globber.ts and src/commands/glob.ts.

The raw/session, wiki-body/metadata, schema, catalog/log and lint-result distinctions in the memory member's operative objects are supported. Mechanical session normalization can retain nonempty system text while discarding nested tool-result blocks and tool arguments. The command uses structured parsing, not the legacy extraction helper. Its whole-text fallback does not authenticate or redact the original transcript. Delegated distillation requests both a raw document and a brief schema learning note; later schema loading supplies a possible instruction path, but does not prove the note retained its reasons or improved capacity.

The projection, scene-manifest, registry and bootstrap objects also retain distinct consumers. I independently confirmed MEM-OBJ-context-registry: bulk refresh renders using existing scenes, then replaces the entry through an upsert without scenes; entries contain no vault identity. This qualifies subsequent targeting without negating the first render. MEM-OBJ-local-projection correctly distinguishes forced selected copies from cleanup of old unselected files. Cursor uninstall empties a recognized rule rather than deleting the path. These findings are preserved in reconciliation's integration dispositions.

RT-RTE-context-delivery, RT-BAP-host-bootstrap and the memory read-back annotations distinguish search, addressed includes, keyword ranking, copied pages and persistent digest supply. The source confirms selection before final scene/type filtering and capping in search; metadata rather than body scoring in glob/inject; unused task/token options; and a first-five-per-scene digest with shortened descriptions. Delivery does not establish host loading or behavioral activation. RT-BAP-schema-prompt correctly identifies interpretation of reloaded schema text, not store-enforced authorization. MEM-RTE-query-save is an instruction-mediated optional write route, not a deterministic query implementation or an observed saved answer.

Epistemic scope and record relations

I checked every epistemic object, route and claim, including each function-specific ledger row. SRC-1, src/core/fetcher.ts supports imported content with URL/date attribution but extraction loss and unknown source warrant. src/core/distiller.ts supports the stated input/output deduction without executing it. src/commands/lint.ts, src/core/linker.ts, src/core/schema.ts and src/core/wiki-index.ts support conditional structural deductions, not factual acceptance. src/commands/link-check.ts reports membership failures and does not implement the requested fix. Thus EPI-RTE-fetch-render, EPI-RTE-session-render, EPI-RTE-mechanical-check, EPI-RTE-loop-disposition and EPI-RTE-link-check retain appropriate evidence strength and consumer force.

The three epistemic claims and RT-CLM-management-use were checked against SRC-1, README.md, templates/AGENTS.md, templates/skills/ai-memex/SKILL.md and the query, ingest and safety references under templates/skills/ai-memex/references/. The reports do not upgrade requested citations, contradiction preservation, synthesis labels or semantic judgment into demonstrated accepted new knowledge. Indeterminate model transformations are not silently classified as ampliative. The consistent-vault message is accurately restricted to its mechanical evaluator domain. The bounded conclusion preserves separate uncertainty about learning, theory criticism, parameter change, self-improvement and exercised success.

All explicit Part of: relations are supported: direct extraction belongs to capture, mechanical rendering to session distillation, and loop disposition to repeated repair. The shared mechanical evaluator has multiple callers, so it is not exclusively contained in the watcher route. I checked the reconciliation for every apparent overlap: raw container versus raw/session parts, wiki container versus body/metadata, mechanical report versus combined lint results, durable schema versus temporary prompt, projection versus authority path, and answer object versus save route. None requires supersession to repair a false combined finding. There are no supersessions or unresolved report conflicts to adjudicate. Source-level tensions about saving, deletion and collaboration remain explicit; they are not falsely presented as analyst disagreement or resolved authorization rules.

Omission questions and stopping decision

The omission search used the frozen top-level tree, CLI registrations, producer/consumer call sites and alternate shipped instructions, not only the reports' selected anchors. I investigated whether exported distillation helpers hide another live transformation, whether standalone link-check adds factual evaluation, whether onboarding adds a different knowledge writer, whether refresh changes retained targeting state, and whether repository-local skills match installed templates. Searches of SRC-1 src/, templates/, .claude/commands/memex/ and .claude/skills/ai-memex/ were followed by direct source reads where material.

The first two questions support the reports' distinctions between capabilities and callers, and structural versus semantic evaluation. The inspected setup portion of src/commands/onboard.ts calls existing init/install/context operations and saves configuration; it does not overturn the maintenance account. Refresh targeting is already captured by the registry finding. The local lint instructions differ materially from installed templates; that partial doctrine inventory is retained below as a limit. It does not make the selected CLI workflow wrong or establish an unreported successful evaluator.

Further optional expansion stopped because these selected challenges now have supported dispositions, no identified contradiction invalidates a consequential conclusion, and the emitted findings do not assert exhaustive doctrine, provider compatibility, semantic acceptance or successful operation. Uninspected design documents, extraction-library internals and host behavior cannot be used to establish absence or complete coverage. A broader security, compatibility or instruction-variant comparison would require additional inspection; it is not needed to preserve this bounded account.

Blockers

none

Limits

  • The semantic-maintenance instruction inventory is incomplete across repository-local and freshly installed surfaces. RT-CLM-management-use, RT-RTE-semantic-lint, MEM-OBJ-lint-results and the epistemic source-and-claim boundary establish the installed sub-agent route and already withhold exhaustive local-prompt coverage. SRC-1, .claude/commands/memex/lint.md and .claude/skills/ai-memex/references/lint-workflow.md additionally afford an outer-agent scan after mechanical lint, direct safe fixes, user review for risky edits, a durable findings page and a mechanical recheck. The local skill lacks the installed skill's management/use section. Therefore readers should withhold uniform delegation, review and report-path comparisons across these instruction variants. The selected CLI loop, optional implemented semantic child and lack of supplied acceptance/operation evidence remain supported; this omitted doctrine does not establish actual execution or invalidate an emitted comparison value.
  1. Read index.md plus a representative sample of pages relevant to the user's scope (or the whole wiki for periodic full passes).
  2. Classify findings into three buckets: safe mechanical fix, requires review, report only.
  3. Apply safe mechanical fixes directly.
  4. Ask the user before applying anything in "requires review". --- .claude/skills/ai-memex/references/lint-workflow.md