5.3 KiB
id, type, title, repo, domain, status, owner, topic_slug, planning_priority, planning_order, created, updated, state_hub_workstream_id
| id | type | title | repo | domain | status | owner | topic_slug | planning_priority | planning_order | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ARTIFACT-STORE-WP-0005 | workplan | Guide-Board Pilot Ingestion | artifact-store | stack | done | codex | stack | high | 5 | 2026-05-15 | 2026-05-17 | 701c4d8c-5cf4-4a4a-ab60-1dcae53fe771 |
ARTIFACT-STORE-WP-0005: Guide-Board Pilot Ingestion
Purpose
Wire the first real producer end-to-end. A guide-board CMIS assessment run directory is registered as one artifact package, its files are stored through a configured backend, retention is applied, and Statehub records a stable package id and summary without storing bytes itself. This is the pilot success criterion in INTENT.md.
Constraints
- WP-0001 — WP-0004 must be done.
docs/ARCHITECTURE-BLUEPRINT.mdguide-board manifest fields.- No guide-board-specific code lives in
artifactstore.registry; pilot-specific glue lives inartifactstore.pilots.guide_boardor in a separate small package.
Prerequisites
- WP-0001, WP-0002, WP-0003 done. WP-0004 only required for the production target; local FS is sufficient for the pilot test.
D5.1 - Pilot Metadata Schema Registration
id: ARTIFACT-STORE-WP-0005-T001
status: done
priority: high
state_hub_task_id: "830f6822-1cfe-4955-a4e0-5b9a42fb5db1"
Acceptance:
- A JSON Schema for
guide-board.run.v1package metadata is checked in underschemas/guide-board.run.v1.json. - A bootstrap script registers it via
POST /metadata-schemas(an endpoint added in this workplan). - Required keys:
run_id,target_profile_ref,assessment_profile_ref,result_status,source_commits(object of slug → SHA),report_paths,evidence_counts,finding_counts.
D5.2 - Pilot Ingest Helper (CLI + Library Function)
id: ARTIFACT-STORE-WP-0005-T002
status: done
priority: high
state_hub_task_id: "ff0ba2eb-b8d3-418a-8685-a54457cea2ed"
Acceptance:
artifactstore guide-board ingest <run-dir>walks a guide-board run directory, builds the package metadata fromrun.jsonandretention-summary.json, uploads every file declared in the assessment package manifest (and the manifest itself), and finalises the package.- Library entry point
pilots.guide_board.ingest_run(path, ...)exposes the same behaviour for embedding. - Output: the package id (UUID) and the package manifest digest
(
blake3:<hex>).
D5.3 - Fixture-Based Test
id: ARTIFACT-STORE-WP-0005-T003
status: done
priority: high
state_hub_task_id: "5c367257-2d2a-4de9-9a06-663ba2c60d77"
Acceptance:
- A trimmed-down guide-board run fixture (under 1 MB total) lives in
tests/fixtures/guide-board/with realistic file shapes:run.json,retention-summary.json,reports/assessment-package.json,reports/report.md, one scorecard, one log-review summary, and a couple of raw artifact files. - The test runs the CLI / library helper end-to-end against an
in-memory SQLite + tempdir local backend, then verifies:
- package id returned,
- manifest digest stable across two runs of the same fixture,
- every file downloadable with correct bytes,
- retention class applied as configured.
D5.4 - Statehub Linkage Recipe
id: ARTIFACT-STORE-WP-0005-T004
status: done
priority: medium
state_hub_task_id: "b1ca7133-ad27-4091-93a0-a4e1b7450791"
Acceptance:
docs/OPERATOR.md(or a newdocs/pilots/guide-board.md) documents the exactPOST /progress/orrecord_decisioncall shape Statehub clients should use to link a guide-board run to its artifact-store package id and manifest digest.- A reference Statehub client snippet is checked in, parameterised by env vars.
D5.5 - Operator Smoke Procedure For The Real Producer
id: ARTIFACT-STORE-WP-0005-T005
status: done
priority: medium
state_hub_task_id: "bffa3573-4a1f-4c12-8c73-6d55bd8f6297"
Acceptance:
- A documented procedure ingests a real (non-fixture) guide-board run
produced from
~/guide-board/~/open-cmis-tck. - Procedure includes: starting
make dev, registering the schema, running the ingest CLI, verifying the manifest, and recording the package id in Statehub. - Procedure runs end-to-end on a developer workstation under 5 minutes.
Closure note: the artifact-store ingest path was verified against an
existing non-fixture OpenCMIS guide-board run at
/home/worsch/open-cmis-tck/.local/runs/opencmis-inmemory-pilot using
an isolated SQLite DB and local storage root. It ingested 23 files,
replayed the event log through sequence 26, and verified 23 storage
locations with zero failures. A fresh guide-board/OpenCMIS producer run
from ~/guide-board currently stops before artifact-store handoff with
cmis-summary: report fragment not found: reports/cmis-summary.md,
which belongs in guide-board/open-cmis-tck follow-up work rather than
holding this artifact-store integration workstream open.
Success criteria
- A real guide-board CMIS run is ingested with one CLI invocation.
- The package manifest lists every stored file with both digests and the canonical CBOR digest of the manifest itself.
- Statehub records the package id and summary; no artifact bytes live in Statehub.
- Retention can be extended on the package without touching bytes.
- The pilot path validates the storage adapter swap: the same
command works against
localand againsts3(if WP-0004 done).