You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
vouch has register_source / register_source_from_path for citing a source, an Obsidian vault sync for editing approved pages, and a proposed bulk-markdown importer (#321). what it lacks is a path for someone arriving with existing agent history — chat exports, prior-tool memory dumps — to seed a kb from it. today that user starts empty and re-teaches everything by hand, which is the biggest friction on adoption.
this proposes format-specific importers that parse an export dump and emit proposals (claims/pages) into the review queue — same gate, nothing auto-approved.
per-format readers that normalize an export into candidate claims/pages, then route each through proposals.propose_*. reuse the extraction path feat: bulk corpus import — propose pages for a directory of markdown #321 builds for directory-markdown; add adapters for json chat exports and generic memory dumps.
--dry-run reports would-propose counts (reuses the existing dry_run= flag on propose_claim/propose_page) without touching the queue.
--max-proposals caps a single import so a large history can't flood review in one shot.
every imported item is a proposal — the importer has no path to approve. a human drains the queue exactly as for any other write; the gate is untouched. --max-proposals and dedup keep an unattended import from overwhelming the reviewer. local-first: reads a local file, writes only pending proposals into .vouch/, no network, no hosted component.
acceptance criteria
vouch import <format> <path> emits pending proposals via propose_*; no auto-approve.
--dry-run reports counts without enqueuing.
--max-proposals N caps proposals per run and reports when the cap is hit.
vouch has
register_source/register_source_from_pathfor citing a source, an Obsidian vault sync for editing approved pages, and a proposed bulk-markdown importer (#321). what it lacks is a path for someone arriving with existing agent history — chat exports, prior-tool memory dumps — to seed a kb from it. today that user starts empty and re-teaches everything by hand, which is the biggest friction on adoption.this proposes format-specific importers that parse an export dump and emit proposals (claims/pages) into the review queue — same gate, nothing auto-approved.
proposed surface
proposals.propose_*. reuse the extraction path feat: bulk corpus import — propose pages for a directory of markdown #321 builds for directory-markdown; add adapters for json chat exports and generic memory dumps.--dry-runreports would-propose counts (reuses the existingdry_run=flag onpropose_claim/propose_page) without touching the queue.--max-proposalscaps a single import so a large history can't flood review in one shot.find_similar_on_propose(feat: propose-time similarity warnings for duplicate claims #147) at propose time.review gate & scope
every imported item is a proposal — the importer has no path to
approve. a human drains the queue exactly as for any other write; the gate is untouched.--max-proposalsand dedup keep an unattended import from overwhelming the reviewer. local-first: reads a local file, writes only pending proposals into.vouch/, no network, no hosted component.acceptance criteria
vouch import <format> <path>emits pending proposals viapropose_*; no auto-approve.--dry-runreports counts without enqueuing.--max-proposals Ncaps proposals per run and reports when the cap is hit.tests/test_import.pycovers the propose-only invariant, the cap, and dedup.make checkgreen.related: #321 (bulk markdown import — this generalizes it to export formats), #147 (dup warnings), #319 / #320 (other propose-only ingest paths).