Story: Generate the shell surface of the clean components
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
Each component the clean standard has cleared has a shell surface that generation produces, with every hand-crafted command recorded and justified. The facet's profile-level default split to Default the shell facet on at the profile level at the sprint 26 close on 2026-10-05.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 26 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-05 |
On 2026-10-05, at the sprint 26 close, this story was reworded to the surface it delivered and closed DONE. The facet's profile-level default is Default the shell facet on at the profile level, and the task Default the shell facet on moved there.
3. Acceptance
- Every command the shell answers for each clean component is produced by a generated unit, or is recorded on that component's task as a hand-craft with its reason.
- No two shell units register the same menu or verb, and every duplicate found is removed rather than shadowed.
- The tree builds with every shell suite green.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Generate the analytics shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every analytics command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
| Generate the assets shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every assets command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
| Generate the dq shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every dq command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
| Generate the iam shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every iam command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
| Generate the refdata shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every refdata command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
| Generate the storage shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every storage command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
| Generate the synthetic shell surface | DONE | 2026-10-01 | 2026-10-01 | Check every synthetic command the shell answers, make the generated units the whole surface, and record every remaining hand-craft with its reason. |
5. Notes
- Survey on 2026-10-01 at
aa08875ec2: the seven clean components hold 241 shell units on disk, all generated. The hand-written surface in their orbit is six units, and the whole question of this story is what each of the six is for. - The facet is opt-in in three places at once: the node
ores.cpp.shell-commandcarries#+default: disabled, eight variability profiles fix it true, and many models repeat:ores.cpp.shell-command.enabled: truein their own drawer. The last task removes the repetition rather than the capability.
6. Decisions
- 2026-10-01. One rule decided every component, and it is stated here so the next component does not have to rediscover it. A hand-written read is retired when a generated unit sends the same request and the hand-written one adds only a filter over a field the model already carries. It stays, with a reason, when it presents a shape or a request no model states: it changes this client's own session, it dispatches a workflow and waits on it, it composes several responses into a view, or it moves a file. Eighteen hand-written commands were retired across dq, synthetic and iam under this rule, and the rest were signed off verb by verb.
- 2026-10-01. The generated unit is the surface even where the hand-written command read better. The generated commands print JSON, the retired ones printed aligned rows, and the manual and the provisioning recipes moved with the names rather than the other way round. The presentation gap is the generator's to close, not a reason to keep two commands for one request.
- 2026-10-01. The profile-level default is the last lever and it stays unpulled. The facet node's default is global, so enabling it renders a unit for every model of every component: 76 models in 16 components at the measurement, 67 of them with no profile at all. The story records the precondition rather than reaching into sixteen components, most of which it does not own.