Skip to content

knowledge ingest: zeph knowledge CLI scaffold + [knowledge] config + init/migrate-config #5017

Description

@bug-ops

Part of epic #5012. Spec: specs/067-knowledge-ingest/spec.md (§8 Integration Points).

Description

CLI + config scaffold for the knowledge-ingest feature. Mirrors the existing src/commands/ingest.rs structure. No sink logic yet — this issue lands the command surface, config section, and migration step that the sink PRs (N1, G2) hang off.

Scope

  • src/cli.rs: Command::Knowledge { Ingest { sources, dry_run, max_documents, provider, yes }, Rollback { batch_id }, Status }.
  • src/runner.rs: dispatch to src/commands/knowledge.rs.
  • src/commands/knowledge.rs: command handler skeleton using AppBuilder (config, build_provider, build_memory); --dry-run and --yes plumbing; current-project root resolution (allowlist enforcement point, INV-6); progress render via mpsc (modeled on IndexProgress).
  • zeph-config [knowledge] section: ingest_provider, concurrency (default 3), max_documents (default 0 = unlimited), recall_include_imported (default true — see F1), transcript_scope = "current-project". #[serde(default)] on all fields.
  • --init wizard step_knowledge() (graph sink default off; choose ingest_provider).
  • --migrate-config step adds [knowledge] defaults; idempotent (--in-place).
  • Place TODO marker: automatic/scheduled ingest is out of MVP scope (spec §9).

Acceptance

  • zeph knowledge --help lists ingest, rollback, status.
  • zeph knowledge ingest --source specs --dry-run runs the handler skeleton and writes nothing (sink wired in N1).
  • --migrate-config --in-place adds [knowledge] to a config lacking it and is a no-op when already present.
  • --init emits [knowledge] only when the user opts into non-default values.

Dependencies

None (foundation). Blocks: N1, N2, N3, G2.

Labels: feature, core, config, P1, size/L.

Metadata

Metadata

Assignees

Labels

P1High ROI, low complexity — do next sprintconfigConfiguration file changescorezeph-core cratefeatureNew functionalitysize/LLarge PR (201-500 lines)

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions