Add CONTENT-WP-0008 to project this repository into the explorer.

Publication stays closed until the repository's own license is recorded. The allowlist keeps the OnCo checkout out of the snapshot.

Assistant: grok
Assistant-Session: 01a15378-f601-7fe2-a143-8e1500a1d59c
This commit is contained in:
tegwick 2026-10-19 13:16:05 +02:00
parent f8c94d3272
commit b828789d96
2 changed files with 117 additions and 1 deletions

View file

@ -0,0 +1,115 @@
---
id: CONTENT-WP-0008
type: workplan
title: "Project this repository into the explorer"
domain: infotech
repo: content-explorer
status: proposed
flavor: implementation
depends_on:
- CONTENT-WP-0003
- CONTENT-WP-0005
- CONTENT-WP-0006
created: "2026-10-19"
updated: "2026-10-19"
---
# 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.
```task
id: CONTENT-WP-0008-T01
status: todo
priority: high
```
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.
```task
id: CONTENT-WP-0008-T02
status: todo
priority: high
```
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.
```task
id: CONTENT-WP-0008-T03
status: todo
priority: high
```
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.
```task
id: CONTENT-WP-0008-T04
status: todo
priority: high
```
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.
```task
id: CONTENT-WP-0008-T05
status: todo
priority: high
```
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.
```task
id: CONTENT-WP-0008-T06
status: todo
priority: high
```
`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.
```task
id: CONTENT-WP-0008-T07
status: todo
priority: high
```
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.
```task
id: CONTENT-WP-0008-T08
status: todo
priority: high
```
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.

View file

@ -12,9 +12,10 @@ Hub ids use the `CONTENT-WP` prefix. The seed notes called these WP-00 through W
| CONTENT-WP-0005 | Quality and parity | begins with 0000, closes after 0004 | Release candidate |
| CONTENT-WP-0006 | External pilot | 0005 | Decision to expand |
| CONTENT-WP-0007 | OnCo reference-slice conformance | 0000, 0001, 0002, 0003, 0005 | Local CC BY-NC reference slice |
| CONTENT-WP-0008 | Project this repository into the explorer | 0003, 0005, 0006 | This repo as a browsable dataspace |
**Minimum viable proof:** 0000 → 0001 → 0002, with JSON snapshot ingestion. The 0003 provenance gate is required before any externally ingested public content is published. 0004 and later need not delay the basic demo.
No effort estimates are asserted before cloning and profiling the upstream code. Priority: 0000 and 0001 now; then 0002 and 0003; then 0004 and 0005; then the 0006 pilot. 0007 is local conformance against the pinned OnCo slice. The slice is not redistributed and is not part of public CI.
No effort estimates are asserted before cloning and profiling the upstream code. Priority: 0000 and 0001 now; then 0002 and 0003; then 0004 and 0005; then the 0006 pilot. 0007 is local conformance against the pinned OnCo slice. The slice is not redistributed and is not part of public CI. 0008 projects this repository into the explorer after its own license is recorded.
`INDEX.md` was renamed to this file so the State Hub workplan scan does not treat the map as a workplan.