content-explorer/workplans/CONTENT-WP-0001-canonical-contracts.md
tegwick 072a7fa550 Freeze the v0.1 contract and the local ingest connector.
The snapshot and manifest schemas, both example dataspaces, and the shared text renderer now pass the fixture validator and the negative contract tests. JSON, NDJSON, and Markdown frontmatter publish a snapshot only when rights, identity, and references allow it. CONTENT-WP-0001 and CONTENT-WP-0003 are marked finished against those artifacts. CONTENT-WP-0000-T04 stays open. SCOPE.md and the 19:05 scope-against-intent note record the stop.

Assistant: grok
Assistant-Session: 01a130f1-abfb-7d71-9cd6-a8b75ec7f95a
2026-10-12 19:07:32 +02:00

2.8 KiB

id type title domain repo status flavor depends_on created updated state_hub_workstream_id
CONTENT-WP-0001 workplan Canonical contracts and two-domain fixtures infotech content-explorer finished implementation
2026-10-12 2026-10-12 833f4e24-1529-528f-8cc7-6caeeabc555f

Canonical contracts and two-domain fixtures

Establish a source-independent knowledge projection and the zero-UI-code-change experiment. The v0.1 schema, both fixtures, the negative checks, and the shared text renderer meet the gates below.

Coordinate with CONTENT-WP-0000. Neither plan blocks the other.

Work packages

Freeze the v0.1 snapshot schema and manifest schema, and document migrations.

id: CONTENT-WP-0001-T01
status: done
priority: high
state_hub_task_id: "c3de4ad2-7fae-51bc-9285-85d5cb2e5908"

Model entity IDs, kinds, directed relations, evidence, and claims.

id: CONTENT-WP-0001-T02
status: done
priority: high
state_hub_task_id: "501807a7-f778-5799-88d6-e15bbdc42f3d"

Normalize the systems-thinking and software-architecture fixtures with independently authored prose.

id: CONTENT-WP-0001-T03
status: done
priority: high
state_hub_task_id: "f0e8a472-044e-5dfb-930f-d1afd0bcdd8d"

Write duplicate, dangling, cyclic non-taxonomy, and missing-source tests.

id: CONTENT-WP-0001-T04
status: done
priority: high
state_hub_task_id: "ec494de4-e634-5e8d-ab9e-cbb87f7d0ac1"

Define the policy for unknown and conflicting facts.

id: CONTENT-WP-0001-T05
status: done
priority: high
state_hub_task_id: "8fc0c024-f179-55e0-a70d-173c94908cdd"

Acceptance gates

Both fixtures validate and supply at least three kinds and eight entities each.

id: CONTENT-WP-0001-T06
status: done
priority: high
state_hub_task_id: "b0fbdf3b-f0cb-5a6e-bb29-593ee6c822c3"

A shared renderer can switch manifests with no domain vocabulary in UI source.

id: CONTENT-WP-0001-T07
status: done
priority: high
state_hub_task_id: "7c2fd15b-60fa-5e7c-8b2b-8d3d6a22335e"

The snapshot format is documented and versioned.

id: CONTENT-WP-0001-T08
status: done
priority: high
state_hub_task_id: "1847aa13-3369-577d-925d-3b08dcb5cb1a"

Key risk

R3: abstractions erase domain semantics. Log evidence and deviations in the workplan review before marking complete.

Evidence

Evidence: contracts/snapshot.schema.json, contracts/manifest.schema.json, contracts/SNAPSHOT.md, contracts/MIGRATIONS.md, contracts/fact-policy.md, content_explorer/contract.py, content_explorer/render.py, and tests/test_contract.py. python3 -m unittest tests.test_contract and python3 scripts/validate_fixtures.py both pass. The shared renderer is text, not a browser UI. It reads headings and labels only from the manifest and snapshot.