MirrorArc
LLM wiki kit
First committed by cz1993
Published in cz1993/MirrorArc. Publisher page
97 GitHub stars
What it is
Local-first, governed documentation for humans and AI agents—mirror Office, PDF, and GitHub sources into linked Markdown knowledge workspaces.
Summary from the brain’s metadata
Local-first, governed documentation for humans and AI agents—mirror Office, PDF, and GitHub sources into linked Markdown knowledge workspaces. Preserve sources. Minimize derived documents. Generate knowledge views when they are needed.
How it works
Memory model: LLM wiki
AutoGineer overview, from the brain’s own files
Memory model: LLM wiki. Folders: .github (agent config, 3 files); docs (docs, 33 files); examples (examples, 139 files); scripts (scripts, 11 files); src (source code, 126 files); template (templates, 54 files); tests (tests, 57 files). The agent reads README.md, docs/PRODUCT.md. The agent writes CHANGELOG.md.
| Folder | Role | Files |
|---|---|---|
| .github | agent-config | 3 |
| docs | docs | 33 |
| examples | examples | 139 |
| scripts | scripts | 11 |
| src | source-code | 126 |
| template | templates | 54 |
| tests | tests | 57 |
| .githooks | folder | 1 |
| cli | folder | 1 |
The agent reads
- README.md evidence: AGENTS.md
- docs/PRODUCT.md evidence: AGENTS.md
The agent writes
- CHANGELOG.md evidence: AGENTS.md
Requirements
Apps: Obsidian
Runtimes: Python >=3.11
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Google Antigravity, Kiro, OpenCode, Amp, Roo Code, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
This brain runs code automatically: 2 scripts. Review .githooks/pre-commit, scripts/init.sh before opening the folder in Claude Code. No step below turns a hook on for you.
.githooks/pre-commit:runs on git pre-commitscripts/init.sh:sh scripts/init.sh
Clone the repository at the commit AutoGineer scanned:
git clone https://github.com/cz1993/MirrorArc.git && cd MirrorArc && git checkout 1df13ebf6efb33018e29a1ea365cde0cf53d41c7Point Claude Code at AGENTS.md: it does not read that file on its own.
cd MirrorArc && claude
AutoGineer scanned these files at commit 1df13eb.
- Not scanned by AutoGineerThe author’s README also describes installing it from a clone of its repository. Read its install section: AutoGineer did not scan that path. https://github.com/cz1993/MirrorArc/blob/1df13ebf6efb33018e29a1ea365cde0cf53d41c7/README.md#quick-start
First committed by cz1993. Published in cz1993/MirrorArc. Licence: GNU Affero General Public License v3.0 only.
Usage
From the brain’s own files
- Create a vault without cloning MirrorArc itself.
- The installable command requires Python 3.11+; uvx and pipx run will build an isolated environment when they can find a compatible Python.
- Before the package is published to PyPI, use the Git URL:
- Once MirrorArc is published to PyPI, the equivalent short forms are uvx mirrorarc init --profile data-product ~/my-data-product and pipx run mirrorarc init --profile data-product ~/my-data-product.
- For repeated local use, install the console command once:
- Then open the vault in Obsidian if you want a human UI, point your agent at it (CLAUDE.md routes all agents to _meta/agent-rules.md), and run the installed command from any folder:
- Run sandbox from a duplicated pilot vault, not the original document folder.
- It is read-only and checks copy-boundary, mirror isolation, manifest/recovery readiness, and basic backup posture without printing source paths or document text.
Documentation by cz1993
MirrorArc
Image: Python 3.11+ Image: License: AGPL-3.0 Image: Status: technical alpha
Preserve sources. Minimize derived documents. Generate knowledge views when they are needed.
Open the live Ontario Grid demo portal →
MirrorArc is an open-source, local-first Python toolkit that turns changing Office files, PDFs, GitHub repositories, datasets, and Markdown into a governed knowledge-projection system. It keeps original records authoritative, creates deterministic Markdown projections for opaque sources, maintains source-backed relationships, and renders human or agent context without adding a vector database or an AI-generated wiki.
Image: MirrorArc beginner landing page showing the Ontario Electricity evidence tutorial
Why MirrorArc exists
Generative AI made documentation fast and cheap to create. It did not make a growing collection of summaries, entity pages, hubs, and agent notes cheap to verify or maintain. MirrorArc treats every durable derivative as a liability that must justify its existence; the information and knowledge carried by the sources remain the asset.
The product principle is:
Preserve authoritative records. Treat every durable derivative as a maintenance liability. Generate views instead of accumulating documents.
| Common failure | MirrorArc's response |
|---|---|
| Office files, PDFs, spreadsheets, repos, and Markdown stay isolated. | L1 specular projections: opaque sources receive stable, source-addressed Markdown read models while originals remain authoritative. |
| AI documentation creates more files than anyone can govern. | Anti-proliferation by architecture: relationships are data and synthesis is a view, not another note by default. |
| Cross-document meaning is hidden or asserted without evidence. | Relationship and provenance ledger: typed connections carry evidence anchors, hashes, generation method, confidence, and review state. |
| Human readers need interpretation rather than raw extraction. | L2 knowledge views: many sources produce a few purpose- and audience-specific reading surfaces that are ephemeral unless pinned or reviewed. |
| Source changes leave summaries and agent context stale. | Dependency-aware refresh: changed sources invalidate only affected projections, relationships, views, reviews, and context. |
| Sensitive or stale material enters an opaque index. | Visible governance: authority, licensing, PII boundaries, lifecycle, freshness, and publication gates remain explicit. |
See the connected evidence
The self-contained Catalog Explorer provides a relationship map, a provenance and lifecycle
inspector, and a rendered document view. When a governed repository is selected, an optional Code
view adds revision-bound source evidence, call paths, impact, and affected-test candidates. The
catalog panel is resizable, long filenames wrap instead of disappearing, and INDEX.md is pinned
as the beginner guide.
Flagship demo: Ontario electricity evidence workspace
examples/ontario-electricity-evidence-vault/ is the
flagship clean-room data-product example, built from OGL Ontario data, metadata-only public
references, independently authored Word/Excel artifacts, and a synthetic repository fixture. The
current snapshot demonstrates the implemented L1, lifecycle, catalog, and portal foundation. Its
large hand-authored Markdown layer predates the knowledge-projection architecture and is now a
migration fixture rather than the target output.
The local implementation supports source-addressed L1, evidence relationships, reviewed L2 views, dynamic/frozen context, and dependency invalidation. The checked-in example remains deliberately small. Historical stress tests are recorded separately; current batch proof is documented in the Trustworthy Context handoff when available.
The committed snapshot is an independently assembled educational corpus, not live grid data, forecasting, alerts, or an affiliated Ontario energy product.
Launch the hosted demo and start with the pinned
INDEX.md five-minute tour. GitHub Pages rebuilds this content-enabled portal only from the
provenance-documented public example and blocks deployment unless both the repository-wide
provenance/no-data gate and the generated-artifact scan pass alongside vault lint.
The hosted project is progressively discoverable: the
project overview identifies MirrorArc's purpose,
differentiators, installation path, licence, and canonical GitHub source in semantic HTML. The
demo's initial HTML contains the rendered beginner tour, while
documents/ provides one semantic, no-JavaScript
page per public record. Search and agent discovery surfaces include
sitemap.xml,
robots.txt,
llms.txt, raw public Markdown, and a metadata-only
catalog.json.
Try the demo locally
git clone https://github.com/cz1993/MirrorArc.git
cd MirrorArc
python3.11 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
mirrorarc --root examples/ontario-electricity-evidence-vault sync
mirrorarc --root examples/ontario-electricity-evidence-vault code doctor
# If Ready, optionally analyze the synthetic repository fixture:
mirrorarc --root examples/ontario-electricity-evidence-vault code analyze --repo repo_252e1077b0082592ba3d --symbol demand_change
mirrorarc --root examples/ontario-electricity-evidence-vault catalog --html --include-content
python -m http.server 8000 --directory examples/ontario-electricity-evidence-vaultOpen http://127.0.0.1:8000/CATALOG.html. Start with the pinned INDEX.md, then follow the
five-minute tour. The --include-content output embeds bounded Markdown bodies and must remain
local for private or proprietary vaults. The hosted MirrorArc demo is a narrow exception: it is
built only from the public example corpus and scanned again before every deployment.
Choose a task and export its evidence
From a synced vault, choose a task, inspect what was selected and omitted, then freeze evidence:
mirrorarc --root <vault> context build --lens orientation --mode metadata --query "inspection interval" --json
mirrorarc --root <vault> context build --lens orientation --query "inspection interval" --name inspection-review
# Use the definition ID printed above:
mirrorarc --root <vault> context resolve <definition-id> --json
mirrorarc --root <vault> context freeze --definition <definition-id> --task "Explain the inspection interval with citations."
mirrorarc --root <vault> catalog --htmlQuery retrieval is opt-in: lexical ranking can miss relevant evidence. Inspect source hashes,
exact spans, selected/excluded reasons, warnings and omissions before use. Metadata contains
references only. Frozen packs include bounded evidence and report exact serialized bytes plus an
estimated token count, not a model-independent token guarantee. A tiny budget can fail because
instructions and citations alone do not fit. offline_complete is false if selected evidence is
missing or truncated; it is never a guarantee that the sources answer your question.
The portable Catalog's selection download stays metadata-only. Its governed-context panel shows
saved tasks, copyable commands and frozen status. HTML does not execute those commands. Use
--include-content only when intentionally embedding local evidence; protect the resulting file
according to its sensitivity. Source changes require refresh, context resolution, and Catalog
regeneration. Frozen bytes remain unchanged and status reports staleness.
Review PDF page evidence
The optional PageIndex integration adds physical-page evidence and unreviewed answer candidates to the same governed workflow. Install its separate pinned runtime using the PageIndex setup and review guide, then start with model-free indexing:
mirrorarc --root /absolute/path/to/copied-vault document doctor
# Use a registered PDF source ID from mirrorarc status --json:
mirrorarc --root /absolute/path/to/copied-vault document index --source SOURCE_ID --context frozen --page 2
mirrorarc --root /absolute/path/to/copied-vault catalog --html --include-contentIn the Catalog, select the PDF, then Document metadata → PDF page evidence. Optional questions require an approved model/endpoint and explicit per-command consent; indexing alone does not create an answer. Answer review shows frozen cited excerpts, current/stale state and uncertainty. A valid page address does not establish that a claim is supported. The local results separate tested behavior from real-model quality, owner acceptance and release readiness.
How it works
Register authoritative sources without changing them.
Project each opaque source into one stable, machine-owned L1 Markdown read model.
Connect evidence through typed relationships with provenance and review state rather than creating more notes.
Interpret many sources through a small number of purpose-specific L2 knowledge views.
Assemble dynamic or frozen context for a human review or agent task.
Refresh only affected projections and dependants when sources change, with reconciliation and full sync retained for recovery and verification.
The default data-product profile covers sources, contracts, pipelines, analysis, models, outputs,
governance, and operations. Additional packaged profiles support business operations,
research/learning, software-project documentation, and minimal blank starts.
Inspired by Andrej Karpathy's "LLM wiki" pattern. See
docs/positioning.mdfor the product landscape and boundaries.
Quick start
Create a vault without cloning MirrorArc itself. The installable command requires Python 3.11+;
uvx and pipx run will build an isolated environment when they can find a compatible Python.
Before the package is published to PyPI, use the Git URL:
uvx --from git+https://github.com/cz1993/MirrorArc.git mirrorarc init --profile data-product ~/my-data-product
# or, with pipx:
pipx run --spec git+https://github.com/cz1993/MirrorArc.git mirrorarc init --profile data-product ~/my-data-productOnce MirrorArc is published to PyPI, the equivalent short forms are
uvx mirrorarc init --profile data-product ~/my-data-product and
pipx run mirrorarc init --profile data-product ~/my-data-product.
For repeated local use, install the console command once:
uv tool install git+https://github.com/cz1993/MirrorArc.git
mirrorarc --version
# or, with pipx:
pipx install git+https://github.com/cz1993/MirrorArc.git
mirrorarc --versionThen open the vault in Obsidian if you want a human UI, point your agent at it (CLAUDE.md routes
all agents to _meta/agent-rules.md), and run the installed command from any folder:
mirrorarc --root ~/my-data-product doctor # check dependencies and vault structure
mirrorarc --root ~/my-data-product plan # inspect proposed mirror actions first
mirrorarc --root ~/my-data-product sync # mirror Office files and configured repos
mirrorarc --root ~/my-data-product status # review manifest-backed lifecycle state
mirrorarc --root ~/my-data-product sync --json # machine-readable sync evidence for agents/pilots
mirrorarc --root ~/my-data-product status --json # machine-readable lifecycle status
mirrorarc --root ~/my-data-product doctor --json # machine-readable preflight report
mirrorarc --root ~/my-data-product conversion --guide # read-only conversion spot-check + guide
mirrorarc --root ~/my-data-product conversion --init-results # private quality review scaffold
mirrorarc --root ~/my-data-product conversion --results _meta/conversion-quality-results.yml --require-reviewed # after filling scaffold
mirrorarc --root ~/my-data-product migration # dry-run report for legacy/unknown folders
mirrorarc --root ~/my-data-product migration --runbook # legacy folder move protocol
mirrorarc --root ~/my-data-product migration --normalize-frontmatter-domains --worksheet # review domain alias cleanup
mirrorarc --root ~/my-data-product recovery --worksheet # review manifest recovery actions
mirrorarc --root ~/my-data-product sandbox --source-root /path/to/original-documents
mirrorarc --root ~/my-data-product catalog # generate CATALOG.md inventory gateway
mirrorarc --root ~/my-data-product catalog --html # generate the interactive CATALOG.html explorer
mirrorarc --root ~/my-data-product catalog --html --include-content # local content-review portal
mirrorarc --root ~/my-data-product code doctor # optional local repository-analysis readiness
mirrorarc --root ~/my-data-product code analyze --repo <repo-id> # bounded revision evidence
mirrorarc --root ~/my-data-product code status --json # current/stale/failed analysis state
mirrorarc --root ~/my-data-product m365 # Microsoft 365/Copilot handoff readiness
mirrorarc --root ~/my-data-product review --json # summarize metadata-only human review decisions
mirrorarc --root ~/my-data-product overlap # calibrate overlap thresholds without note bodies
mirrorarc --root ~/my-data-product pilot # aggregate pilot evidence, no source content
mirrorarc --root ~/my-data-product pilot --worksheet # redacted Markdown private-pilot summary
mirrorarc --root ~/my-data-product benchmark # validate agent-readiness task pack, if present
mirrorarc --root ~/my-data-product benchmark --init-tasks # create private task scaffold
mirrorarc --root ~/my-data-product benchmark --worksheet # print private benchmark run sheet
mirrorarc --root ~/my-data-product benchmark --init-results # create private result scaffold
mirrorarc --root ~/my-data-product benchmark --results _meta/agent-readiness-results.yml --require-prompt-safety # after scoring
# edit tools/repos.yml, then:
mirrorarc --root ~/my-data-product sync # mirror configured GitHub repos too
mirrorarc --root ~/my-data-product lint # health checkRun sandbox from a duplicated pilot vault, not the original document folder. It is read-only and
checks copy-boundary, mirror isolation, manifest/recovery readiness, and basic backup posture
without printing source paths or document text.
Use review after spot-checking mirrors, catalogs, or handoff reports. It appends metadata-only
decisions to _meta/review-ledger.jsonl with artifact hashes, so later changes are reported as
stale reviews instead of silently preserving old approvals.
The generated CATALOG.html is a self-contained Catalog Explorer. It opens on INDEX.md, offers
separate relationship-map, document-metadata, rendered-document, and contextual Code views,
preserves explicit original-to-mirror lineage, and keeps local context-pack exports metadata-only.
Repository analysis runs before generation; the passive HTML never starts a process or fetches
data. The safe default
does not embed document bodies. Use catalog --html --include-content only for a local review copy;
that opt-in mode embeds bounded Markdown and generated-mirror bodies, so the resulting HTML must be
protected like the vault itself. The public GitHub Pages demo is built from the explicitly public,
provenance-documented example and passes the no-data gate before deployment. Neither mode requires
an application server or creates an evidence index.
Source checkout fallback:
git clone https://github.com/cz1993/MirrorArc.git mirrorarc && cd mirrorarc
python3.11 -m pip install -e .
mirrorarc --version
mirrorarc profile list
mirrorarc init --profile data-product ~/my-data-product
mirrorarc init --profile business-operations ~/my-business-vault
mirrorarc init --profile research-learning ~/my-research-vault
mirrorarc init --profile software-project ~/my-software-vault
mirrorarc init --profile blank ~/my-blank-vault
mirrorarc --root ~/my-data-product profile validate
mirrorarc --root ~/my-data-product profile diff 0.2.0
mirrorarc --root ~/my-data-product profile migrate --plan
mirrorarc --root ~/my-data-product profile migrate --write
mirrorarc --root ~/my-data-product profile views --check
mirrorarc --root ~/my-data-product migrate annotations --plan
mirrorarc --root ~/my-data-product planThe packaged v1 profiles are data-product (the default), business-operations,
research-learning, software-project, and blank. Each initializes from the installable
package with profile-owned folders, _meta/profile.yml, generated scaffold docs, and only the
templates declared by its contract.
Profile contract details: docs/PROFILE_SCHEMA.md.
Step-by-step: docs/quickstart.md.
Documentation
PageIndex document review — optional PDF structure, physical-page context, explicit model approval and unreviewed cited answers; currently under local validation.
PageIndex release plan — current integration and acceptance gates.
Whitepaper — canonical product thesis, authority model, and knowledge-projection architecture.
Product implementation plan — sequenced development, migration, test, Ontario corpus, and portal finish line.
New-session execution prompt — paste-ready prompt for pursuing the implementation plan in a clean session.
Repository Intelligence execution plan — implemented CodeGraph-backed code evidence, CLI, context, Catalog, and local proof record.
Repository Intelligence kickoff prompt — goal-mode prompt for implementing that plan without ADS or a review dependency.
The whitepaper defines architectural principles; the current Trustworthy Context plan governs this local batch. Earlier implementation plans record historical evidence, not current acceptance.
Product contract — audience, workflow, outcomes, and non-goals.
Quickstart — demo-first setup and daily workflow.
Sync specification — authority, mirroring, manifests, and refresh behavior.
Security model — trust boundaries, prompt safety, and local-review rules.
Profile schema — configurable domains, note types, folders, and policies.
Methodology — L0/L1, relationships, L2, context, review, and promotion discipline.
Positioning — where MirrorArc fits relative to LLM wikis, RAG, PKM, and document-management tools.
Status
v0 - technical alpha. Source-preserving L1 mirrors, manifests, lifecycle state, audit logs, journaled changed-file materialization, reconciliation, full recovery sync, profiles, lint/safety guards, the portable catalog, stable projection identities, and the versioned evidence-backed relationship ledger work today.
Dependency invalidation, L2 knowledge views, dynamic/frozen context assembly, and optional revision-bound Repository Intelligence are implemented locally. The current Ontario example is retained as migration and regression evidence; do not interpret its curated Markdown count as the target MirrorArc model. This remains a technical alpha, and local proof is not hosted or production proof.
License
MirrorArc is licensed under the GNU Affero General Public License v3.0 or later for the open
core, with a separate commercial license planned for enterprise/closed use and consulting.
LICENSE contains the full AGPL-3.0 text; commercial terms and contribution policy still require
owner/counsel finalization before accepting outside contributions. See LICENSING.md.
"MirrorArc" is a trademark — see TRADEMARK.md.
Credits
The "LLM wiki" pattern (Andrej Karpathy), markitdown (Microsoft), and Obsidian. Interoperates with — rather than competes with — tools like basic-memory and Copilot for Obsidian.
docs/TRUSTWORTHY_CONTEXT_HANDOFF.md
Trustworthy Context — developer handoff
Date: 2026-09-19. Developer: Codex. Owner: cz1993. Status: implementation and local evidence supplied; NOT REVIEWED, NOT ACCEPTED, NOT SHIPPED. The originating planning session owns review. No acceptance box has been checked by the developer. The active execution plan remains the scope contract; older plans are historical baseline only.
Baseline and scope
Work used the existing dirty checkout /Users/cz/workspaces/cz1993/MirrorArc directly.
Branch codex/knowledge-projection, HEAD 15ce475a5077ce9d048a3f38a9a832a08976ffd9.
Initial status, full diff, tool versions and per-file SHA-256 inventory are retained
at /var/folders/nf/bttgh08105s1k2b70m_gf04c0000gn/T/mirrorarc-trustworthy-dii2bgio.
That directory predates changes in this session. HEAD alone does not identify this work.
Final intended shipping files, including pre-existing dirty work, new untracked files and explicit
deletions: TRUSTWORTHY_CONTEXT_FILES.json.
Manifest digest and full-tree fingerprint: manifest SHA-256 de6eb32f612d5219e9a1e2a53fa8313194b337174f670fda8361d18ae22a2079; full-tree SHA-256
15a37c5dc4f978ef5db77a1bfaeb44ff54e04533cac14d42513546d790f512e0.
The manifest excludes itself and this handoff to avoid self-referential hashing. All other
tracked/nonignored untracked regular files contribute to its full-tree fingerprint; ignored
validation caches are not shipping files. Its per-path baseline classification distinguishes
preserved prior implementation from overlapping edits and new additions. Do not stage only this
session's edits: the required implementation began in an extensive dirty tree.
Workstream outcome
| Workstream | Developer result | Evidence / limits |
|---|---|---|
| W0 | complete | Dirty baseline and isolated environment captured; initial focused suite 14 passed, 1 optional-provider skip in 16.17 s. |
| W1 | implemented and locally checked | Exact spans/hashes, current policy enforcement, final export budgets, dirty-base semantics, preserved Catalog requests, streaming limits, verified snapshots; regressions below. |
| W2 | deterministic benchmark complete; model evaluation pending | Fixed 12-task pack before tuning; baseline and held-out results retained; no endpoint approval or invented grades. |
| W3 | implemented, opt-in | FTS5/BM25 in existing state.sqlite; current hashes, stable identity/ranking, accepted/current one-hop expansion, bounded candidates and rebuilds. Full sync/query refresh use the existing invalidator. |
| W4 | implemented and browser checked | Task → evidence → warnings → export, saved commands and current frozen status, passive metadata/content distinction; desktop/narrow/keyboard evidence below. Independent novice feedback remains pending. |
| W5 | bounded experiments complete | Retain CodeGraph 1.5.0 and MarkItDown 0.1.7; no Docling/PageIndex integration. |
| W6 | local proof and handoff supplied | Final gate, wheel, synthetic originals, browser and manifest evidence; independent planning acceptance remains pending. |
No vector database, second watcher/lifecycle/store authority, provider framework, daemon, cloud service, MCP dependency, global configuration change or globally installed package was introduced.
Integrity regressions and implementation
tests/test_trustworthy_context.py exercises public CLI/context boundaries with synthetic vaults;
existing package tests still run. Focused coverage maps to the original findings:
| Finding | Correction and evidence |
|---|---|
| TC-01 | service.py unions exact numbered source lines, preserves disjoint ranges, verifies file hashes, recomputes excerpt hashes and trims complete lines. Tests compare every reported range with original source text, including overlap/disjoint cases. Document exports record exact Unicode character offsets and verified L1 generated-region/source hashes. |
| TC-02 | Current profile modes checked before rejected paths can create state or invoke providers, including saved definitions and code context. Tests verify metadata-only denials and byte-identical state after revocation. |
| TC-03 | Shared export code bounds the complete serialized UTF-8 JSON envelope, including instructions/citations/omissions. max_tokens is a compatibility estimate at four bytes per estimated token; overhead-only overflow fails. Tests cover Unicode, tiny budgets, dropped items, code metadata and task-sensitive identities. Transport wrapper JSON is not the exported envelope. |
| TC-04 | Base resolves safely, then base-to-current-working-tree diff plus nonignored untracked files uses NUL-separated names. Staged/unstaged/rename/delete changes are preserved. Deleted/missing/binary/excluded evidence is omitted rather than cited as current text. The fixed snapshot exclusions remain explicit in the security contract. |
| TC-05 | Shell-quoted Catalog actions retain symbol/base/explicit changed paths and saved definitions, including spaces and option-like input. Reference-only HTML never claims included source bodies. |
| TC-06 | Provider pipes are capped while streaming; monotonic timeout and process-group cleanup apply on this POSIX host. stdout/stderr overflow and hung-provider regressions pass. No Windows process-cleanup claim. |
| TC-07 | Bounded snapshot traversal and post-copy/reuse/post-provider identity verification reject tampering and controlled copy races while retaining the previous valid analysis. Real provider cache loss/rebuild is exercised twice. |
Additional public regressions verify first-use query refresh, source edit/delete and disposable FTS cache rebuild, proposed/rejected edge exclusion, full-sync opaque-source invalidation, immutable frozen bytes, and Catalog code-pack staleness from the existing public status path.
Retrieval is lexical/heading-based, bounded to 500 eligible candidates, 256 KiB per file, 8 MiB indexed text, 10,000 chunks of 40 lines and 32 query terms. It indexes allowed current native text or verified L1, deduplicates source identity, uses stable score/identity/span ties, and expands one permitted accepted/hash-current hop. Cache schema is versioned/disposable. FTS5 absence gives a clear query error; existing no-query lenses remain available. The private index contains derived text and belongs under the existing local state privacy boundary.
Validation evidence
Host: macOS arm64; Python 3.11.15. Editable development environment:
/tmp/mirrorarc-tc-venv. Fresh wheel runtime:
/tmp/mirrorarc-tc-final/runtime. Tested dependencies:
constraints. This is an observed test environment,
not a cross-platform lock. pip check reports no broken requirements.
Final full suite: 570 passed, 0 failures, 0 skips, 223.20 seconds; process exit 0.
Log: /tmp/mirrorarc-tc-final/full-tests-complete.log.
Earlier clean full runs: 565 passed / 239.18 s; 567 passed / 234.17 s; 569 passed / 228.54 s;
569 passed / 224.58 s. Later runs were justified by first-use/full-sync/export or browser-found
corrections, not re-running hosted CI. These historical counts are not the final-tree count.
Some earlier combined focused invocations printed passing tests and then exited 134 with a native
libc++ recursive-mutex failure. One bounded isolation check (plain imports and separate focused
runs) did not reproduce it; no cause or fix is claimed. Final full runs exited cleanly. Logs remain
outside the tree; retain this limitation if it recurs on another host.
Final static gate: /tmp/mirrorarc-tc-final/static-gate.json and named logs. All checks return 0:
git diff --check, repository no-data scan, template-copy consistency, dependency consistency,
compilation of all applicable Python files, six POSIX shell syntax checks and a separate scan of
generated HTML, L1 and context JSON. No safeguards were weakened. Early strict no-data failures
identified generated build/pytest/bytecode/egg-info residue; it was moved to
/tmp/mirrorarc-tc-final/retained-build-test-residue with a movement record, not deleted.
Template and regenerated disposable Ontario lints use the installed runtime through each vault's
tools/lint_vault.py. Both return 0, all warning/error categories zero. Ontario inventory:
59 sources, three opaque sources, three L1, two reviewed L2, zero stale L2/unexplained Markdown.
Plan/sync/status/lint logs are /tmp/mirrorarc-tc-final/ontario-*.log; template log is
template-lint-final.log. The original example was not regenerated in place. All 28 baseline
example original/fixture files match their initial hashes (repository-originals.json).
Disposable Ontario original hashes and fresh-wheel journey hashes were also checked before the
intentional synthetic mutations.
Wheel: /tmp/mirrorarc-tc-final/wheels/mirrorarc-0.1.0a1-py3-none-any.whl.
SHA-256: 79cd0b04c68a0e3c678ba74dca56206a60c893e0034b0987025b70ec43efaa66. Built from a disposable copy of the complete dirty source;
build outputs never needed to enter the checkout. Runtime imports resolve to
/private/tmp/mirrorarc-tc-final/runtime/lib/python3.11/site-packages/mirrorarc/__init__.py,
not the editable checkout. Packaged source files match the final checkout byte-for-byte
(wheel-source-match.json). The final wheel journey is /tmp/mirrorarc-tc-final/journey6:
21 CLI commands, exact excerpts, allowed context, source mutation → stale state, immutable prior
frozen bytes, revised context, failed provider preserving prior evidence and two equivalent
CodeGraph cache rebuilds. commands.json records every command/exit/log; journey.json records
source hashes, context IDs and matching rebuilt analysis hash.
Reproduce from a new isolated environment after installing the wheel and dependencies:
# Run outside the checkout. Use a new output directory each time.
/tmp/mirrorarc-tc-final/runtime/bin/python /Users/cz/workspaces/cz1993/MirrorArc/scripts/validate_trustworthy_context.py \
--repo /Users/cz/workspaces/cz1993/MirrorArc \
--output /tmp/mirrorarc-tc-review-journey \
--codegraph /tmp/mirrorarc-tc-upstream/codegraph-1.5.0-offlineFull-suite reproduction from the checkout (local only):
PYTHONPYCACHEPREFIX=/tmp/mirrorarc-review-pycache \
MIRRORARC_CODEGRAPH_SMOKE=/tmp/mirrorarc-tc-upstream/codegraph-1.5.0-offline \
/tmp/mirrorarc-tc-venv/bin/python -m pytest -o cache_dir=/tmp/mirrorarc-review-pytest-cacheBenchmark and provider decisions
Per-task results: ten evidence-bearing tasks average expected-source
coverage 0.55 → 0.90; three held-out tasks 0.50 → 0.67. tc11 regresses 1.0 → 0.0. Both
insufficient-evidence tasks become empty selections. Neither result measures model answers,
semantic citation accuracy, abstention, privacy/prompt resistance or corrections. Model metrics
remain null; three stochastic repeats have not run. Same-task source/prompt/budget controls and
unsupported code-wrapper/opaque-extraction differences are documented. No general superiority claim.
Upstream experiment record and /tmp/mirrorarc-tc-upstream:
CodeGraph 1.5.0/1.6.0 both pass the small actual-binary contract comparison; no concrete 1.6 benefit
was shown. Retain 1.5.0. Docling 2.129.0 lacks offline RapidOCR assets; one OCR-disabled retry
still requires a layout model. No download/adoption. MarkItDown recovered table values,
interleaved columns and produced no scan text. Neither experiment provided page anchors.
PageIndex was not run/integrated; Promptfoo not added. Package/binary acquisition used network;
extraction/provider experiments ran with OS network denial. No paid model call or private-data
transmission occurred.
Browser evidence
Portable final HTML is in journey6: empty.html, current.html, metadata.html, stale.html,
failure.html. Generated by the installed wheel. Browser was served on loopback only because the
browser tool rejected file URLs; the HTML itself has no server dependency. Browser walkthrough
used the Playwright CLI skill, Chromium, 1440×900 and 390×844. No page console warnings/errors or
resource fetches were observed. window.syntheticInjection remained undefined when the literal
script-bearing synthetic source was rendered. No remote link or open-file link was followed.
Screenshots: /tmp/mirrorarc-tc-final/*-final.png. Authoritative final-state capture list and
checks: /tmp/mirrorarc-tc-final/browser-proof.json. The empty panel explains setup; current code
shows exact ranges and included bodies; metadata panel says reference-only without function text;
stale/failure states retain previous evidence with visible status. The dialog preserves task
resolve/freeze commands. Narrow commands wrap without modal/page horizontal overflow. Shift-Tab/
Tab cycle within the dialog; Escape restores opener focus. Source long paths wrap; narrow code
tables remain dense and use contained excerpt scrolling. This is an agent walkthrough, not a
novice usability study. Operator feedback belongs in planning review.
Reproduce by serving the journey directory on a free loopback port, opening each HTML in Chromium,
selecting local/pipeline → Code evidence, and opening Build context pack. At narrow width,
open Browse first. For staleness inspect Frozen evidence · stale in the dialog. Repeat at both
sizes, test keyboard focus and compare metadata/content output. Close only the server/browser
created for this check; unrelated local services were not stopped.
Remaining authority, limitations and shipment
Empirical model evaluation needs explicit endpoint/model/version, permitted-data and spend approval, plus an approved runner and human grading. No endpoint is silently selected; the deterministic rerun commands are ready. This condition is not a fabricated model pass.
Independent planning review/acceptance and novice/operator feedback are pending.
No local Linux runtime/container was available. No Linux, hosted, production or deployment proof is claimed. Native dependency shutdown flakiness from earlier focused runs remains noted.
Small synthetic coverage is not universal repository/language/extractor quality. CodeGraph affected tests are candidates; the fixed snapshot exclusions and resource limits apply.
Final Git state: 107 modified tracked files, 6 deleted tracked paths, 65 untracked files; no staged files. The six deletions were already present in the baseline. Full individual-path status:
/tmp/mirrorarc-tc-final/final-git-status.txt. Nothing was committed, pushed, merged, tagged, published, deployed or globally installed. No remote settings or global agent configuration were changed. No reviewer or development subagent was spawned.CI/Pages/release triggers were inspected, not dispatched or edited for this session. CI runs on PRs/main pushes; Pages auto-deploys on matching main-path pushes (including source/example changes); release runs on
v*tags. Code shipment could trigger Pages. The owner/planning shipment checkpoint must explicitly resolve that before any push/merge. Remote protections were not changed or claimed verified.
Preserve the external evidence directories before temporary-directory cleanup. Planning review must compare the live tree with the manifest, rerun proportionate checks and record its own verdict. Only after that and the operator's final shipment checkpoint may the one consolidated owner-authored PR/merge occur.
439 files · 404 not served here
- .gitattributes (not served here)
- .githooks/pre-commit (not served here)
- .github/workflows/ci.yml (not served here)
- .github/workflows/pages.yml (not served here)
- .github/workflows/release.yml (not served here)
- .gitignore (not served here)
- AGENTS.md
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CHANGELOG.md
- CONTRIBUTING.md
- LICENSE
- LICENSING.md
- MANIFEST.in (not served here)
- NOTICE
- README.md
- TRADEMARK.md
- cli/README.md (not served here)
- docs/AGENT_READINESS_BENCHMARK.md
- docs/CODE_INTELLIGENCE_EXECUTION_PLAN.md
- docs/CONVERSION_REVIEW_GUIDE.md
- docs/MICROSOFT_365_HANDOFF.md
- docs/MIRRORARC_WHITEPAPER.md
- docs/PAGEINDEX.md
- docs/PAGEINDEX_RELEASE_PLAN.md
- docs/PAGEINDEX_RESULTS.md
- docs/PRODUCT.md
- docs/PRODUCT_IMPLEMENTATION_PLAN.md
- docs/PROFILE_SCHEMA.md
- docs/RECOVERY.md
- docs/RELEASE.md
- docs/SECURITY_MODEL.md
- docs/SYNC_SPEC.md
- docs/TRUSTWORTHY_CONTEXT_CONSTRAINTS.txt (not served here)
- docs/TRUSTWORTHY_CONTEXT_EXECUTION_PLAN.md
- docs/TRUSTWORTHY_CONTEXT_EXPERIMENTS.md
- docs/TRUSTWORTHY_CONTEXT_FILES.json (not served here)
- docs/TRUSTWORTHY_CONTEXT_HANDOFF.md
- docs/TRUSTWORTHY_CONTEXT_RESULTS.md
- docs/TRUSTWORTHY_CONTEXT_REVIEW.md
- docs/assets/mirrorarc-document-metadata.jpg (not served here)
- docs/assets/mirrorarc-index-tutorial.jpg (not served here)
- docs/assets/mirrorarc-relationship-map.jpg (not served here)
- docs/information-architecture.md
- docs/methodology.md
- docs/positioning.md
- docs/prompts/CODE_INTELLIGENCE_EXECUTION_KICKOFF.md (not served here)
- docs/prompts/KNOWLEDGE_PROJECTION_KICKOFF.md (not served here)
- docs/prompts/PAGEINDEX_CLARITY_FOLLOWUP.md (not served here)
- docs/prompts/TRUSTWORTHY_CONTEXT_EXECUTION_KICKOFF.md (not served here)
- docs/quickstart.md
- examples/DATA_PROVENANCE.md (not served here)
- examples/README.md (not served here)
- examples/ontario-electricity-evidence-vault/.gitignore (not served here)
- examples/ontario-electricity-evidence-vault/.obsidian/app.json (not served here)
- examples/ontario-electricity-evidence-vault/.obsidian/appearance.json (not served here)
- examples/ontario-electricity-evidence-vault/.obsidian/core-plugins.json (not served here)
- examples/ontario-electricity-evidence-vault/.obsidian/graph.json (not served here)
- examples/ontario-electricity-evidence-vault/00_inbox/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/10_context/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/10_context/Demo walkthrough.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/IESO Data Directory.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/IESO Year in Review.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/IESO zonal map reference.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/OEB open data directory.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/Ontario Energy Report 2023 supporting data.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/Source freshness policy.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/README.md (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/exports-gwh-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/exports-gwh.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/generation-output-by-fuel-type-grid-connected-gwh-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/generation-output-by-fuel-type-grid-connected-gwh.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/generation-output-by-fuel-type-grid-connected-percent-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/generation-output-by-fuel-type-grid-connected-percent.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/greenhouse-gas-emissions-ontario-electricity-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/greenhouse-gas-emissions-ontario-electricity.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/historical-annual-ontario-energy-demand-twh-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/historical-annual-ontario-energy-demand-twh.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/historical-monthly-generation-output-by-fuel-type-mwh-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/historical-monthly-generation-output-by-fuel-type-mwh.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/historical-monthly-ontario-demand-peaks-minimums-mw-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/historical-monthly-ontario-demand-peaks-minimums-mw.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/imports-gwh-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/imports-gwh.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/ontario-demand-peaks-minimums-mw-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/ontario-demand-peaks-minimums-mw.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/ontario-peak-demand-mw-notes-en.txt (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/open-data/ontario-energy-report-2023/ontario-peak-demand-mw.csv (not served here)
- examples/ontario-electricity-evidence-vault/20_sources/repos/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/30_data-contracts/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/30_data-contracts/Annual demand contract.md (not served here)
- examples/ontario-electricity-evidence-vault/30_data-contracts/Evidence API contract.md (not served here)
- examples/ontario-electricity-evidence-vault/30_data-contracts/Generation output contract.md (not served here)
- examples/ontario-electricity-evidence-vault/30_data-contracts/Intertie flow contract.md (not served here)
- examples/ontario-electricity-evidence-vault/30_data-contracts/Monthly demand range contract.md (not served here)
- examples/ontario-electricity-evidence-vault/40_pipelines/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/40_pipelines/Artifact mirroring pipeline.md (not served here)
- examples/ontario-electricity-evidence-vault/40_pipelines/Evidence lineage map.md (not served here)
- examples/ontario-electricity-evidence-vault/40_pipelines/Normalization pipeline.md (not served here)
- examples/ontario-electricity-evidence-vault/40_pipelines/Public data ingestion pipeline.md (not served here)
- examples/ontario-electricity-evidence-vault/40_pipelines/Quality gate pipeline.md (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/2023 annual demand finding.md (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/2023 generation mix finding.md (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/2023 intertie flow finding.md (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/2023 peak demand finding.md (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/Cross-source evidence synthesis.md (not served here)
- examples/ontario-electricity-evidence-vault/50_analysis/workbooks/historical-demand-profile.xlsx (not served here)
- examples/ontario-electricity-evidence-vault/60_models/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/70_outputs/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/70_outputs/Output relationship map.md (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/Decision - use a clean-room public corpus.md (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/Evidence controls.md (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/Evidence workspace risk register.md (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/IESO reference-only boundary.md (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/Open data license register.md (not served here)
- examples/ontario-electricity-evidence-vault/80_governance/Retention and refresh policy.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/Data quality investigation runbook.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/Example release checklist.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/Freshness dashboard specification.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/Illustrative stale-source incident.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/Refresh public sources runbook.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/Source outage runbook.md (not served here)
- examples/ontario-electricity-evidence-vault/90_operations/briefs/data-quality-incident-review.docx (not served here)
- examples/ontario-electricity-evidence-vault/AGENTS.md (not served here)
- examples/ontario-electricity-evidence-vault/CLAUDE.md (not served here)
- examples/ontario-electricity-evidence-vault/Documents.base (not served here)
- examples/ontario-electricity-evidence-vault/INDEX.md (not served here)
- examples/ontario-electricity-evidence-vault/RETENTION.md (not served here)
- examples/ontario-electricity-evidence-vault/_archive/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/LICENSE
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/README.md (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/config/quality-gates.yml (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/config/sources.yml (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/docs/architecture.md (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/docs/historical-validation.md (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/docs/source-boundaries.md (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/pyproject.toml (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/scripts/check_fixture.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/src/grid_evidence/__init__.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/src/grid_evidence/contracts.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/src/grid_evidence/load.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/src/grid_evidence/quality.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/src/grid_evidence/summary.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/tests/test_quality.py (not served here)
- examples/ontario-electricity-evidence-vault/_fixtures/repos/ontario-electricity-evidence-pipeline/tests/test_summary.py (not served here)
- examples/ontario-electricity-evidence-vault/_meta/acquisition-manifest.json (not served here)
- examples/ontario-electricity-evidence-vault/_meta/agent-rules.md (not served here)
- examples/ontario-electricity-evidence-vault/_meta/conventions.md (not served here)
- examples/ontario-electricity-evidence-vault/_meta/domain-map.yml (not served here)
- examples/ontario-electricity-evidence-vault/_meta/knowledge-views/reviewed/view_a81f3973de5885a05ea45da94822.md (not served here)
- examples/ontario-electricity-evidence-vault/_meta/knowledge-views/reviewed/view_f085427fd55094d9ce5f21c916c8.md (not served here)
- examples/ontario-electricity-evidence-vault/_meta/legacy-markdown-migration.json (not served here)
- examples/ontario-electricity-evidence-vault/_meta/lifecycle-states.yml (not served here)
- examples/ontario-electricity-evidence-vault/_meta/lint-config.yml (not served here)
- examples/ontario-electricity-evidence-vault/_meta/mirror-config.yml (not served here)
- examples/ontario-electricity-evidence-vault/_meta/profile.yml (not served here)
- examples/ontario-electricity-evidence-vault/_mirrors/.gitkeep (not served here)
- examples/ontario-electricity-evidence-vault/_templates/base-note.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/data-contract.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/dataset.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/decision-record.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/evaluation.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/model.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/pipeline.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/runbook.md (not served here)
- examples/ontario-electricity-evidence-vault/_templates/source-ref.md (not served here)
- examples/ontario-electricity-evidence-vault/log.md (not served here)
- examples/ontario-electricity-evidence-vault/tools/README.md (not served here)
- examples/ontario-electricity-evidence-vault/tools/benchmark_tasks.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/catalog_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/conversion_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/lint_vault.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/m365_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/migration_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/mirrorarc.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/overlap_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/pilot_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/recovery_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/repos.example.yml (not served here)
- examples/ontario-electricity-evidence-vault/tools/repos.yml (not served here)
- examples/ontario-electricity-evidence-vault/tools/requirements.txt (not served here)
- examples/ontario-electricity-evidence-vault/tools/review_ledger.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/sandbox_report.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/sync_all.sh (not served here)
- examples/ontario-electricity-evidence-vault/tools/sync_github_repos.py (not served here)
- examples/ontario-electricity-evidence-vault/tools/sync_office_md.py (not served here)
- pyproject.toml (not served here)
- scripts/benchmark_journaled_materialization.py (not served here)
- scripts/build_ontario_stress_corpus.py (not served here)
- scripts/build_pages_demo.sh (not served here)
- scripts/build_pages_discovery.py (not served here)
- scripts/create_plain_markitdown_dump.py (not served here)
- scripts/generate_messy_benchmark_corpus.py (not served here)
- scripts/init.sh (not served here)
- scripts/no_data_scan.py (not served here)
- scripts/pageindex_product_proof.py (not served here)
- scripts/sync_template_copies.py (not served here)
- scripts/validate_trustworthy_context.py (not served here)
- src/mirrorarc/__init__.py (not served here)
- src/mirrorarc/annotation_migration.py (not served here)
- src/mirrorarc/benchmark.py (not served here)
- src/mirrorarc/builtin_profiles/blank.yml (not served here)
- src/mirrorarc/builtin_profiles/business-operations.yml (not served here)
- src/mirrorarc/builtin_profiles/research-learning.yml (not served here)
- src/mirrorarc/builtin_profiles/software-project.yml (not served here)
- src/mirrorarc/catalog.py (not served here)
- src/mirrorarc/catalog_explorer.py (not served here)
- src/mirrorarc/changes/__init__.py (not served here)
- src/mirrorarc/changes/changed_sync.py (not served here)
- src/mirrorarc/changes/events.py (not served here)
- src/mirrorarc/changes/feed.py (not served here)
- src/mirrorarc/changes/fingerprint.py (not served here)
- src/mirrorarc/changes/journal.py (not served here)
- src/mirrorarc/changes/materialize.py (not served here)
- src/mirrorarc/changes/native_watch.py (not served here)
- src/mirrorarc/changes/reconcile.py (not served here)
- src/mirrorarc/changes/replay.py (not served here)
- src/mirrorarc/changes/stability.py (not served here)
- src/mirrorarc/changes/watch.py (not served here)
- src/mirrorarc/changes/worker.py (not served here)
- src/mirrorarc/cli.py (not served here)
- src/mirrorarc/code_intelligence/__init__.py (not served here)
- src/mirrorarc/code_intelligence/adapter.py (not served here)
- src/mirrorarc/code_intelligence/context.py (not served here)
- src/mirrorarc/code_intelligence/service.py (not served here)
- src/mirrorarc/context_assembly/__init__.py (not served here)
- src/mirrorarc/context_assembly/builder.py (not served here)
- src/mirrorarc/context_assembly/export.py (not served here)
- src/mirrorarc/context_assembly/retrieval.py (not served here)
- src/mirrorarc/context_assembly/store.py (not served here)
- src/mirrorarc/conversion.py (not served here)
- src/mirrorarc/doctor.py (not served here)
- src/mirrorarc/document_intelligence/__init__.py (not served here)
- src/mirrorarc/document_intelligence/adapter.py (not served here)
- src/mirrorarc/document_intelligence/context.py (not served here)
- src/mirrorarc/document_intelligence/presentation.py (not served here)
- src/mirrorarc/document_intelligence/runtime/README.md (not served here)
- src/mirrorarc/document_intelligence/runtime/build-requirements.in (not served here)
- src/mirrorarc/document_intelligence/runtime/pageindex-pypdf.patch (not served here)
- src/mirrorarc/document_intelligence/runtime/requirements-py311.txt (not served here)
- src/mirrorarc/document_intelligence/service.py (not served here)
- src/mirrorarc/document_intelligence/worker.py (not served here)
- src/mirrorarc/knowledge_inventory.py (not served here)
- src/mirrorarc/knowledge_views/__init__.py (not served here)
- src/mirrorarc/knowledge_views/definitions.py (not served here)
- src/mirrorarc/knowledge_views/lifecycle.py (not served here)
- src/mirrorarc/knowledge_views/render.py (not served here)
- src/mirrorarc/knowledge_views/store.py (not served here)
- src/mirrorarc/lint.py (not served here)
- src/mirrorarc/m365.py (not served here)
- src/mirrorarc/migration.py (not served here)
- src/mirrorarc/mirrors/__init__.py (not served here)
- src/mirrorarc/mirrors/github_repos.py (not served here)
- src/mirrorarc/mirrors/office.py (not served here)
- src/mirrorarc/overlap.py (not served here)
- src/mirrorarc/pilot.py (not served here)
- src/mirrorarc/profile_migration.py (not served here)
- src/mirrorarc/profile_scaffold.py (not served here)
- src/mirrorarc/profiles.py (not served here)
- src/mirrorarc/recovery.py (not served here)
- src/mirrorarc/relationships/__init__.py (not served here)
- src/mirrorarc/relationships/deterministic.py (not served here)
- src/mirrorarc/relationships/invalidation.py (not served here)
- src/mirrorarc/relationships/model.py (not served here)
- src/mirrorarc/relationships/proposals.py (not served here)
- src/mirrorarc/relationships/store.py (not served here)
- src/mirrorarc/review_ledger.py (not served here)
- src/mirrorarc/runtime_profile.py (not served here)
- src/mirrorarc/sandbox.py (not served here)
- src/mirrorarc/template/.gitignore (not served here)
- src/mirrorarc/template/00_inbox/.gitkeep (not served here)
- src/mirrorarc/template/10_context/.gitkeep (not served here)
- src/mirrorarc/template/20_sources/.gitkeep (not served here)
- src/mirrorarc/template/20_sources/repos/.gitkeep (not served here)
- src/mirrorarc/template/30_data-contracts/.gitkeep (not served here)
- src/mirrorarc/template/40_pipelines/.gitkeep (not served here)
- src/mirrorarc/template/50_analysis/.gitkeep (not served here)
- src/mirrorarc/template/60_models/.gitkeep (not served here)
- src/mirrorarc/template/70_outputs/.gitkeep (not served here)
- src/mirrorarc/template/80_governance/.gitkeep (not served here)
- src/mirrorarc/template/90_operations/.gitkeep (not served here)
- src/mirrorarc/template/AGENTS.md (not served here)
- src/mirrorarc/template/CLAUDE.md (not served here)
- src/mirrorarc/template/Documents.base (not served here)
- src/mirrorarc/template/INDEX.md (not served here)
- src/mirrorarc/template/RETENTION.md (not served here)
- src/mirrorarc/template/_archive/.gitkeep (not served here)
- src/mirrorarc/template/_meta/agent-rules.md (not served here)
- src/mirrorarc/template/_meta/conventions.md (not served here)
- src/mirrorarc/template/_meta/domain-map.yml (not served here)
- src/mirrorarc/template/_meta/lifecycle-states.yml (not served here)
- src/mirrorarc/template/_meta/lint-config.yml (not served here)
- src/mirrorarc/template/_meta/mirror-config.yml (not served here)
- src/mirrorarc/template/_meta/profile.yml (not served here)
- src/mirrorarc/template/_mirrors/.gitkeep (not served here)
- src/mirrorarc/template/_templates/base-note.md (not served here)
- src/mirrorarc/template/_templates/data-contract.md (not served here)
- src/mirrorarc/template/_templates/dataset.md (not served here)
- src/mirrorarc/template/_templates/decision-record.md (not served here)
- src/mirrorarc/template/_templates/evaluation.md (not served here)
- src/mirrorarc/template/_templates/model.md (not served here)
- src/mirrorarc/template/_templates/pipeline.md (not served here)
- src/mirrorarc/template/_templates/runbook.md (not served here)
- src/mirrorarc/template/_templates/source-ref.md (not served here)
- src/mirrorarc/template/log.md (not served here)
- src/mirrorarc/template/tools/README.md (not served here)
- src/mirrorarc/template/tools/benchmark_tasks.py (not served here)
- src/mirrorarc/template/tools/catalog_report.py (not served here)
- src/mirrorarc/template/tools/conversion_report.py (not served here)
- src/mirrorarc/template/tools/lint_vault.py (not served here)
- src/mirrorarc/template/tools/m365_report.py (not served here)
- src/mirrorarc/template/tools/migration_report.py (not served here)
- src/mirrorarc/template/tools/mirrorarc.py (not served here)
- src/mirrorarc/template/tools/overlap_report.py (not served here)
- src/mirrorarc/template/tools/pilot_report.py (not served here)
- src/mirrorarc/template/tools/recovery_report.py (not served here)
- src/mirrorarc/template/tools/repos.example.yml (not served here)
- src/mirrorarc/template/tools/requirements.txt (not served here)
- src/mirrorarc/template/tools/review_ledger.py (not served here)
- src/mirrorarc/template/tools/sandbox_report.py (not served here)
- src/mirrorarc/template/tools/sync_all.sh (not served here)
- src/mirrorarc/template/tools/sync_github_repos.py (not served here)
- src/mirrorarc/template/tools/sync_office_md.py (not served here)
- src/mirrorarc/views.py (not served here)
- template/.gitignore (not served here)
- template/00_inbox/.gitkeep (not served here)
- template/10_context/.gitkeep (not served here)
- template/20_sources/.gitkeep (not served here)
- template/20_sources/repos/.gitkeep (not served here)
- template/30_data-contracts/.gitkeep (not served here)
- template/40_pipelines/.gitkeep (not served here)
- template/50_analysis/.gitkeep (not served here)
- template/60_models/.gitkeep (not served here)
- template/70_outputs/.gitkeep (not served here)
- template/80_governance/.gitkeep (not served here)
- template/90_operations/.gitkeep (not served here)
- template/AGENTS.md (not served here)
- template/CLAUDE.md (not served here)
- template/Documents.base (not served here)
- template/INDEX.md (not served here)
- template/RETENTION.md (not served here)
- template/_archive/.gitkeep (not served here)
- template/_meta/agent-rules.md (not served here)
- template/_meta/conventions.md (not served here)
- template/_meta/domain-map.yml (not served here)
- template/_meta/lifecycle-states.yml (not served here)
- template/_meta/lint-config.yml (not served here)
- template/_meta/mirror-config.yml (not served here)
- template/_meta/profile.yml (not served here)
- template/_mirrors/.gitkeep (not served here)
- template/_templates/base-note.md (not served here)
- template/_templates/data-contract.md (not served here)
- template/_templates/dataset.md (not served here)
- template/_templates/decision-record.md (not served here)
- template/_templates/evaluation.md (not served here)
- template/_templates/model.md (not served here)
- template/_templates/pipeline.md (not served here)
- template/_templates/runbook.md (not served here)
- template/_templates/source-ref.md (not served here)
- template/log.md (not served here)
- template/tools/README.md (not served here)
- template/tools/benchmark_tasks.py (not served here)
- template/tools/catalog_report.py (not served here)
- template/tools/conversion_report.py (not served here)
- template/tools/lint_vault.py (not served here)
- template/tools/m365_report.py (not served here)
- template/tools/migration_report.py (not served here)
- template/tools/mirrorarc.py (not served here)
- template/tools/overlap_report.py (not served here)
- template/tools/pilot_report.py (not served here)
- template/tools/recovery_report.py (not served here)
- template/tools/repos.example.yml (not served here)
- template/tools/requirements.txt (not served here)
- template/tools/review_ledger.py (not served here)
- template/tools/sandbox_report.py (not served here)
- template/tools/sync_all.sh (not served here)
- template/tools/sync_github_repos.py (not served here)
- template/tools/sync_office_md.py (not served here)
- tests/fixtures/codegraph_v1_5_0/affected-summary.json (not served here)
- tests/fixtures/codegraph_v1_5_0/callees-demand-change.json (not served here)
- tests/fixtures/codegraph_v1_5_0/callers-demand-change.json (not served here)
- tests/fixtures/codegraph_v1_5_0/files.json (not served here)
- tests/fixtures/codegraph_v1_5_0/impact-demand-change.json (not served here)
- tests/fixtures/codegraph_v1_5_0/query-demand-change.json (not served here)
- tests/fixtures/codegraph_v1_5_0/query-summary.json (not served here)
- tests/fixtures/codegraph_v1_5_0/status-current.json (not served here)
- tests/fixtures/codegraph_v1_5_0/status-stale.json (not served here)
- tests/fixtures/trustworthy_context/mixed/access.md (not served here)
- tests/fixtures/trustworthy_context/mixed/attack.md (not served here)
- tests/fixtures/trustworthy_context/mixed/capacity.md (not served here)
- tests/fixtures/trustworthy_context/mixed/procedure.md (not served here)
- tests/fixtures/trustworthy_context/pack.json (not served here)
- tests/fixtures/trustworthy_context/revised/policy-v1.md (not served here)
- tests/fixtures/trustworthy_context/revised/policy-v2.md (not served here)
- tests/fixtures/trustworthy_context/revised/revision-log.md (not served here)
- tests/test_annotation_migration.py (not served here)
- tests/test_changes_changed_sync.py (not served here)
- tests/test_changes_feed.py (not served here)
- tests/test_changes_materialize.py (not served here)
- tests/test_changes_native_watch.py (not served here)
- tests/test_changes_reconcile.py (not served here)
- tests/test_changes_replay.py (not served here)
- tests/test_changes_stability.py (not served here)
- tests/test_changes_watch.py (not served here)
- tests/test_changes_worker.py (not served here)
- tests/test_code_intelligence.py (not served here)
- tests/test_context_assembly.py (not served here)
- tests/test_document_intelligence.py (not served here)
- tests/test_document_presentation.py (not served here)
- tests/test_document_security.py (not served here)
- tests/test_examples.py (not served here)
- tests/test_journal.py (not served here)
- tests/test_journaled_materialization_benchmark.py (not served here)
- tests/test_knowledge_inventory.py (not served here)
- tests/test_knowledge_views.py (not served here)
- tests/test_license_headers.py (not served here)
- tests/test_lifecycle_contract.py (not served here)
- tests/test_lint_vault.py (not served here)
- tests/test_messy_benchmark_corpus.py (not served here)
- tests/test_migration_markdown.py (not served here)
- tests/test_no_data_scan.py (not served here)
- tests/test_ontario_stress_corpus.py (not served here)
- tests/test_packaged_template.py (not served here)
- tests/test_pages_discovery.py (not served here)
- tests/test_pages_workflow.py (not served here)
- tests/test_plain_markitdown_dump.py (not served here)
- tests/test_profile_contract.py (not served here)
- tests/test_profile_driven_reports.py (not served here)
- tests/test_relationship_invalidation.py (not served here)
- tests/test_relationships.py (not served here)
- tests/test_release_context_integrity.py (not served here)
- tests/test_release_workflow.py (not served here)
- tests/test_sync_behaviour.py (not served here)
- tests/test_template_copy_sync.py (not served here)
- tests/test_trustworthy_context.py (not served here)
Advantages
- Local-first: the memory stays in files or a database on your own machine (a rule-derived fact from the brain’s files, evidence: README.md)
- Works with 14 MCP clients (a rule-derived fact from the brain’s files, evidence: README.md)
- Ships an Obsidian vault layout (a rule-derived fact from the brain’s files, evidence: examples/ontario-electricity-evidence-vault/.obsidian)
- Plain markdown memory that you can read and edit yourself (a rule-derived fact from the brain’s files, evidence: README.md)
- No API key is named in its files (a rule-derived fact from the brain’s files, evidence: README.md)
- Open licence (AGPL-3.0-only) (a rule-derived fact from the brain’s files)
Limitations
- No ZIP download: install it from its source (a rule-derived fact from the brain’s files)
Security
Risk level: Low risk
This brain runs
Git hooks (1)
.githooks/pre-commit(pre-commit):runs on git pre-commit
Agent instructions that run or fetch something (2)
AGENTS.md:Operator direction (2026-09-18): project development and validation run locally.AGENTS.md:Every behavior change: run the package-owned vault lint through the example's tool shim, run the test suite, and update `CHANGELOG.md` and relevant docs.
Install scripts (1)
scripts/init.sh:sh scripts/init.sh
- Low risk: scripts-present (.githooks/pre-commit)
- Low risk: scripts-present (scripts/init.sh)
Attribution and licence
- First committed by
cz1993
- Declared authors
- cz1993 (declared in pyproject.toml)
- Publisher
- Ci Zhu (Community)
- Source
- cz1993/MirrorArc · commit 1df13eb
- Licence
- GNU Affero General Public License v3.0 only (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- cz1993
AutoGineer is not affiliated with or endorsed by cz1993.
Install from source
404 of its files are not served here, so there is no ZIP. cz1993/MirrorArc at 1df13eb