feat: broaden ingest triage and add review flags

This commit is contained in:
vasily committed 2026-10-14 20:35:36 +08:00
1 parent 3f959c42bb
commit 31826982e6
8 files changed
+137 -38

No files matched your search

+5 -4
View File
@@ -1,16 +1,17 @@
# Ingestion pipeline
Version 0.2.0. Host-executed procedure for `kb-ingest`; not a background scheduler. Follow the contribution protocol for budgets, checkpoints and retry identity.
Version 0.3.0. Host-executed procedure for `kb-ingest`; not a background scheduler. Follow the contribution protocol for budgets, checkpoints and retry identity.
| Stage | Input | Output / checkpoint | Gate |
| --- | --- | --- | --- |
| Context | User-selected material, explicit project and `get_project_context` lens | Objective, authorized project lens, scope, run identity and pinned pack versions | Required tools/schema are available; otherwise report blocked. |
| Context | User-selected material, explicit project and `get_project_context` lens | Objective, authorized project lens including four default research lenses and saved guidance, scope, run identity and pinned pack versions | Required tools/schema are available; otherwise report blocked. |
| Capture | Explicitly selected local files, user-pasted text or an allowlisted public URL | Verified artifact digest, stable source ID, content-bound revision ID, metadata candidate and extraction availability | Use the connector for local files, `source_capture_text` for explicitly supplied UTF-8 text/Markdown (maximum 1 MB), or `source_capture_url` for a configured public host. Pasted text requires a stable capture ID and source key, and returns an archived artifact, extraction and candidate marked `pasted-text`; retry with the same ID and identical inputs after uncertainty, since changed inputs conflict. The service retains at most 1,024 private capture receipts. The capture does not register the source. The connector returns a typed `source_candidate`; `.vtt` and `.srt` files are parsed into cue-timed blocks and tagged `transcript`. Cite the precise cue times together with the quote span. The connector can record a declared NotebookLM export provenance for supported text, Markdown or PDF files, but does not verify that provenance; omit `source_revision_id` to derive a revision from file identity, content digest and its durable retry checkpoint, or supply a stable revision ID when resuming an existing workflow. Submit candidates through `proposal_submit`; staging alone does not register a source. Failed fetches return a `capture-failed` candidate without artifact bytes; register it only when a bookmark is useful. PDF extraction currently requires the supported Linux sandbox. HTML citations refer to visible extracted text, not markup-byte offsets. |
| Triage | Source plus project lens | Included sections and skip/defer reasons | Bound the batch; preserve coverage. |
| Triage | Source plus project lens and four default lenses (technical, conceptual, cultural-historical, financial-market) | Included sections, explicit clear-exclusion reasons and review flags | Treat lenses as coverage prompts, not quotas. Historical, philosophical, cultural or commercial evidence is not automatically out of scope. Exclude only clearly unrelated or unavailable material, or user-excluded topics. Continue normal evidence-backed proposal processing for plausible material; add `ingest_review_create` as a follow-up notification/filter flag when human relevance review would help. |
| Extract | Included sections and immutable maps | Atomic proposal draft with field-level evidence | Exact quotes/locators; no invented revisions. |
| Assess | Assertion/evidence bindings | Support judgments, assessor/run and rationale | Unsupported/unavailable claims remain drafts. |
| Evaluate | Complete bounded bundle and base revision | `proposal_evaluate` findings and eligible status | Evaluation is read-only; it does not reserve an ID or store the proposal. |
| Submit | Evaluated bounded bundle and stable proposal identity | `proposal_submit` outcome and eventual receipt | Every affected domain's policy applies; protected decisions remain external. |
| Report | `proposal_status`, receipts and coverage records | Accepted/held work, index state, limitations and resume point | Never equate upload, evaluation or partial acceptance with complete processing. |
| Human review | Stored review flag and authorized editor/admin decision | Include, exclude or defer feedback; optionally saved project/lens guidance | The flag never blocks proposal evaluation/submission or marks knowledge accepted. Decisions are feedback only. Save reusable guidance only on explicit reviewer opt-in. |
| Report | `proposal_status`, receipts, review flags and coverage records | Accepted/held work, review notifications, index state, limitations and resume point | Never equate upload, evaluation, review-flag creation or partial acceptance with complete processing. |
Resume calls `source_upload_status` or `proposal_status` using the exact checkpointed ID and revision before returning to a stage. Changed assertion/evidence invalidates assessment and later stages. Correct only actionable findings; repeated identical failure stops for diagnosis. Pipeline instructions may be replaced independently of the skill's extraction criteria if these input/output and recovery obligations remain valid.