content-explorer/workplans/CONTENT-WP-0008-repository-projection.md
repo-manager 1c02106401
All checks were successful
synthetic / suite (push) Successful in 2m12s
repo.work.assign_missing_identifiers
source: repo-manager
reason: deterministic projection registration

Assistant: grok
Assistant-Session: 01a15378-f601-7fe2-a143-8e1500a1d59c
2026-10-19 13:16:12 +02:00

5.4 KiB

id type title domain repo status flavor depends_on created updated state_hub_workstream_id
CONTENT-WP-0008 workplan Project this repository into the explorer infotech content-explorer proposed implementation
CONTENT-WP-0003
CONTENT-WP-0005
CONTENT-WP-0006
2026-10-19 2026-10-19 e15fa2ff-155d-5753-bf44-cdfa06788726

Project this repository into the explorer

Publish a static dataspace whose records are this repository: its workplans, decisions, contracts, connectors, and the documents that define them. The existing UI renders that dataspace. No new kind names are added to UI component source.

The dataspace id is repository. Its title is "Content Explorer". Routes stay /{dataspace}/{kind}/ and /{dataspace}/{kind}/{slug}/.

THIRD_PARTY.md says this research package still needs its own license. Adapted ui/ files stay under the OnCo MIT notice. The sample dataspaces stay CC0-1.0. Those facts do not license the workplans, decisions, or architecture notes. Publication uses publish_directory and its current allowlist (CC0-1.0, CC-BY-4.0, MIT). CC BY-NC stays refused.

Work packages

Record the license that covers the projected repository documents.

id: CONTENT-WP-0008-T01
status: todo
priority: high
state_hub_task_id: "7c898119-216f-5ad9-845a-73d4d9db7284"

Name one license already accepted by publish_directory, and add that choice where the repository records its own rights. Do not guess. Do not widen ALLOWED_LICENSES. Until this task is done, the connector publishes nothing.

Allowlist the paths and kinds that represent the repository.

id: CONTENT-WP-0008-T02
status: todo
priority: high
state_hub_task_id: "a2fa8715-7432-5d8f-9790-5189e9932e64"

Include the durable authored records: workplans, decisions, architecture notes, contracts, connector modules, and the short root documents that define the project. Kinds come from that allowlist and are written only into the manifest. Exclude upstream-onco/, tests/onco-reference/local/, tests/onco-reference/authorization.json, node_modules/, ui/node_modules/, .next/, and the snapshot directory that this connector writes. Do not read the OnCo corpus. Do not follow links by fuzzy match.

Map the allowlist into a canonical snapshot with provenance.

id: CONTENT-WP-0008-T03
status: todo
priority: high
state_hub_task_id: "d42283d5-a267-5728-b631-8039909c74ab"

Add a connector beside the existing ones. Each included file becomes an entity urn:ce:repository:<kind>:<key> with the repo-relative path as an alias. The source carries the license from T01, a uri for the path, and originSha set to the commit that was projected. Claims cite that source. Relations are only the ones the files already state, including depends_on between workplans. A path outside the allowlist is reported and is not stored. Missing license, missing attribution when the license requires it, a duplicate id, or a dangling relation refuses publication.

Publish the snapshot under the public examples and refresh it from a commit.

id: CONTENT-WP-0008-T04
status: todo
priority: high
state_hub_task_id: "d71bdeac-fdbc-5e1c-a024-a21bd456fedd"

Write examples/dataspaces/repository/ through the existing atomic publish path: snapshot, manifest, and both import reports. Replaying the same commit yields the same entity set and the same input digest. A changed included file changes the digest and refreshes the snapshot. The connector version is on the report.

Acceptance gates

The repository dataspace browses through the current UI.

id: CONTENT-WP-0008-T05
status: todo
priority: high
state_hub_task_id: "04089a11-2a03-5192-bc98-d2fc0eb4b5e7"

Home, kind index, entity, neighbour, and source or license all open for repository. Search and the existing facets work. Kind labels are read from the manifest. scripts/check_ui_boundary.py still passes.

Public CI accepts the new dataspace and still contains no OnCo corpus.

id: CONTENT-WP-0008-T06
status: todo
priority: high
state_hub_task_id: "9051d256-29b4-5a04-aae7-d570642c8a7a"

scripts/validate_fixtures.py, the unittest suite, and scripts/audit_public_tree.py pass. The published snapshot uses only the license from T01. The OnCo slice, authorization.json, and upstream-onco/ stay untracked.

Replay is stable and a refresh is visible.

id: CONTENT-WP-0008-T07
status: todo
priority: high
state_hub_task_id: "b6f96d7c-80eb-565b-aa1b-909e95a17a03"

Two runs at one commit produce the same snapshot digest. A fixture that changes one allowlisted record produces a different digest and a report that names the connector version and the input digest.

Every published claim cites the repository source.

id: CONTENT-WP-0008-T08
status: todo
priority: high
state_hub_task_id: "b92f30ac-2124-564c-838c-dddcc2027d62"

Each claim has a source ref, the license from T01, and the commit in originSha. An included file with the license removed is quarantined and does not publish.

Key risk

R9: publishing repository prose before its license is chosen, or letting the allowlist reach the OnCo checkout. Refuse publication instead of guessing. Keep the corpus paths out of the connector.

Evidence

Pull requests, test logs, the pinned commit, and the published import report. Add ImplementationNotes.md and Review.md on completion. Do not mark a gate passed without a verifiable link.