Story: Make first-generation component scaffolding opt-in

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

(Describe the user-visible outcome this story delivers.)

2. Status

Field Value
State DONE
Parent sprint Sprint 26
Now Not yet started.
Waiting on Nothing.
Next Break the story into tasks.
Last touched 2026-09-26
End 2026-09-26

3. Acceptance

4. Tasks

Task State Start End Description
Make the first-generation scaffold opt-in DONE 2026-09-26 2026-09-26 Move the stub trio and the umbrella header into a default-disabled ores.cpp.scaffold facet, so a normal regeneration of an existing component never recreates them.

5. Decisions

  • First-generation scaffolding is opt-in, and the opt-in is one line. The facet is `#+default: disabled`; a component asks for it with `:ores.cpp.scaffold.enabled: true`, which the overview scaffold writes for a new component and which the first real model retires.
  • The address states the lifetime. The scaffold used to sit in `ores.cpp.component`, so "first-generation only" was a convention nobody could see. A facet of its own makes it structural.
  • A component's umbrella header is scaffolding too. The same run showed it recreated for a component that had deleted it; it moved with the stubs.

6. Out of scope

Emacs 29.3 (Org mode 9.6.15)