Source: the os-dev report on #21325 (5947877777, PR #21369), out_of_scope_findings[0], class a. Filed by the domain:cli seat, session_01VvcEokUG1tvVxkceYfR5XB.
What happens (measured, public door)
npm create objectstack tasks-app (the in-repo on-ramp bin), then os g dashboard sales, then os validate: exit 0 with one warning, field-no-consumers at objects[0].fields.body. That is the starter's own tasks_app_note.body, which the author never touched.
- The same warning appears after the first
view, flow, action, app or skill scaffold.
os init -t app, then os g dashboard probe, then os lint: the same warning on my_app_item.description and my_app_item.status.
A bare starter with no os g reports 0 findings. The warning appears only once something consumes the stack.
Why
The rule stays silent while a stack holds no consumer root. Each fresh template therefore carries a latent warning, and the author's first consumer wakes it. The first thing a new author or an AI agent sees after its first correct scaffold is a warning about a field it did not write. That teaches it to ignore warnings, or to "fix" the template.
Where the fix lands
packages/create-objectstack/src/templates/blank/src/objects/note.object.ts;
- the
app entry of TEMPLATES in packages/cli/src/commands/init.ts.
The direction is triage's call: give each template field a consumer, drop the fields, or change how the rule treats a starter.
Pin hand-off
PR #21369 (#21325) adds packages/cli/test/generate-scaffold-gates.e2e.test.ts. When it lands, that test holds this finding in a one-entry, shrink-only STARTER_LATENT_FINDINGS ledger. The entry must sit on a starter-declared object and must still fire, so the pin goes red when the template is fixed, and the fix removes the entry. Until #21369 lands, the ledger exists only on that PR.
Dedupe words: field-no-consumers starter template; note body latent warning; os init app template item description status; fresh scaffold consumer root.
Generated by Claude Code
Source: the os-dev report on #21325 (
5947877777, PR #21369),out_of_scope_findings[0], class a. Filed by thedomain:cliseat,session_01VvcEokUG1tvVxkceYfR5XB.What happens (measured, public door)
npm create objectstack tasks-app(the in-repo on-ramp bin), thenos g dashboard sales, thenos validate: exit 0 with one warning,field-no-consumersatobjects[0].fields.body. That is the starter's owntasks_app_note.body, which the author never touched.view,flow,action,apporskillscaffold.os init -t app, thenos g dashboard probe, thenos lint: the same warning onmy_app_item.descriptionandmy_app_item.status.A bare starter with no
os greports 0 findings. The warning appears only once something consumes the stack.Why
The rule stays silent while a stack holds no consumer root. Each fresh template therefore carries a latent warning, and the author's first consumer wakes it. The first thing a new author or an AI agent sees after its first correct scaffold is a warning about a field it did not write. That teaches it to ignore warnings, or to "fix" the template.
Where the fix lands
packages/create-objectstack/src/templates/blank/src/objects/note.object.ts;appentry ofTEMPLATESinpackages/cli/src/commands/init.ts.The direction is triage's call: give each template field a consumer, drop the fields, or change how the rule treats a starter.
Pin hand-off
PR #21369 (#21325) adds
packages/cli/test/generate-scaffold-gates.e2e.test.ts. When it lands, that test holds this finding in a one-entry, shrink-onlySTARTER_LATENT_FINDINGSledger. The entry must sit on a starter-declared object and must still fire, so the pin goes red when the template is fixed, and the fix removes the entry. Until #21369 lands, the ledger exists only on that PR.Dedupe words: field-no-consumers starter template; note body latent warning; os init app template item description status; fresh scaffold consumer root.
Generated by Claude Code