Amended by 0264:
The define family is closed at eight entries.
defineHooks and defineComponents are added
(decision 4).Context
Authoring used decorators for some things anddefine* functions for others, with no rule. The owner’s declaration rule (mem L882, 2026-10-20) decides it: decorators annotate code, and define* creates the values that code refers to. The registry collects both.
Decision
- Decorators annotate code. Classes, methods and fields carry decorators:
@Action,@Model,@Field,@OnEvent,@Resource, and the others of ADR 0094. define*creates values.defineToken,defineConfig,definePermissions,defineEvents,defineMeters,defineEntitlements,defineSkillanddefinePromptsbuild the values a decorator refers to (ADR 0145).- Enforcement. A lint rule enforces the split: a decorator never builds a value, and a
define*call is never placed on a class member. - Registry. The registry collects both kinds, so gen and the Explorers see one catalogue.
Consequences
- A reader knows from the form whether a line declares behaviour (decorator) or a value (define).
- A new
define*function is an ADR change, because the family is part of the contract.
Enforcement
planned — the house lint rule (ADR 0129) for the decorator and define split.Supersedes and sources
Supersedes: none. Amends: 0094, 0145. Sources: owner declaration rule (stackra-decisions-2026-10-19.md L882, 2026-10-20).