Story: Clean ores.assets to the component clean standard
Table of Contents
This page documents a story in Sprint 26. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
ores.assets meets the Component Clean Standard: the items marked All, Protocol and Entity pass, each item that does not apply is recorded with its reason, and ores.assets joins COMPONENTS_UNDER_TEST. Order 18 of 35 in the sprint 26 component clean-up, tier 2 (higher infrastructure). The Entity items apply because assets already carries SQL, repositories and a service for tag, image and image_tag; the story was scaffolded as Protocol-only.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 26 |
| Now | Nothing. |
| Waiting on | G06, which is red repo-wide and blocks the registry step. |
| Next | Nothing. |
| Last touched | 2026-09-23 |
3. Acceptance
- Every checklist item that applies to a component of kind Protocol passes, with its evidence recorded on the task.
- Every item that does not apply is recorded as not applicable, with the reason.
- Every generator defect found is fixed at its source, with a regression test.
- ores.assets is listed in
COMPONENTS_UNDER_TEST, andcheck_component_drift.py --allpasses.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Bring ores.assets to the clean standard | DONE | 2026-09-23 | 2026-09-26 | Work ores.assets through the Component Clean Standard in order and record each item. |
5. Notes
- Survey on 2026-09-23: 0 entity, junction or operation models; 62 C++ files outside tests, 0 of them generated (0%); 4 messaging headers, 4 of them hand-written.
- Has SQL and hand-written protocol headers but no models: its wire types need models (M06, P04).
6. Decisions
7. Out of scope
8. Result
ores.assets is on the Component Clean Standard. Its three entities are modelled and generated with their messages, shell surface, SQL and the publish-from-dq operation; the hand-written duplicates are deleted; and assets-cpp is under test by every codegen gate. The task records what each item of the standard decided and the artefact that proves it.
Three defects the work surfaced were fixed rather than filed, because each was this component's or one template's: the junction's missing service, which left nine shell recipes unserved against the live fleet; a junction timestamp column that reached SQL as a raw time point; and a blank-line leak in the junction column branches that made ores.compute drift. Three more are filed because each is a tree-wide change on the scale of the notify-trigger collision, the generator ignoring a declared default_value, and the CMake marker staleness that main is now fixing incrementally.
The task's review found two faults in this branch, both fixed: it had regenerated thirty other components' CMake source lists while reverting main's ores.orgmode work, and it had committed its audit trail. The scope rule that came out of that review is now checked explicitly — no component_files.cmake outside the component and its shell appears in the diff.