Typed knowledge provenance — landed evidence

The HTML store, validated write boundary, discovery surface and SPA now agree on three artifact classes and qualified provenance.

Research pointing into a plan and evidence pointing back to the plan and its verified stages.
Research informs work; implementation produces evidence; only the plan carries actionable progress.

Quick status

shipped

Schema

Version 2.0; three canonical types; legacy doc migrates to research.

shipped

Relations

Qualified project, plan and optional stage references round-trip through HTML.

shipped

SPA

Four typed facets with directional research → plan → evidence graph edges.

pass

Gate

1,199 tests passed in 25.19 seconds.

Outcomes

ItemResultCommit / artifactEvidence
Typed HTML contractlandede622bcc · reckon/_schema.pyGenerated schema parity at version 2.0.
Parser and strict writerlandedreckon/_plan_html.pyLenient legacy reads; canonical writes reject meaningful plan-only fields on non-plans.
Discovery, MCP and auditlandedreckon/mcp.py · reckon/serve.pyTyped bounded filters, unlinked-artifact warnings and truthful non-mutating audit semantics.
Typed SPAlandeddocs/ui/Plans, Research, Evidence and Archive facets share live/static fields.
Regression coveragepasstests/test_provenance.pyMigration, relations, filters, archive handling and sprint-definition inventory exclusion.

Negative findings retained

Definition pages under docs/sprints/ and docs/milestones/ previously leaked into plan inventory. They now remain dedicated rollup inputs. Unlinked research/evidence is reported as an audit warning and is never assigned fake implementation progress.

What’s next

Use evidence as an execution gate

The S6 execution and lifecycle plans can now consume qualified evidence without treating knowledge artifacts as incomplete plans.

Execution and Orchestration Hardening