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-command carries #+default: disabled, eight variability profiles fix it true, and many models repeat :ores.cpp.shell-command.enabled: true in 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.

7. Out of scope

Emacs 29.3 (Org mode 9.6.15)