refactor(semantics): make complexity tiers descriptive, not gatekeeping
Why: tier rules forbidding @PRE/@POST on C2 cause agents to either remove useful documentation or generate audit noise. Both outcomes are worse than having slightly richer metadata. Changed: - Tier table in all 4 agent prompts: removed 'Forbidden' column, replaced with 'descriptive signal, NOT gatekeeper' - All tags (@PRE/@POST/@RATIONALE/@REJECTED) welcomed at any tier - semantics-core: complexity table collapsed to descriptive - qa-tester: removed tier-based reject rules from P1 and Phase 1 Hard rules preserved: CONTRACT-FIRST, ANCHOR SAFETY, FRACTAL LIMIT, RESURRECTION BAN. Everything else is descriptive intent.
This commit is contained in:
@@ -38,16 +38,16 @@ You are a long-horizon agent operating across TWO stacks (Python backend + Svelt
|
||||
**CONTRACT-FIRST:** Before `def` or `<script>`, write `#region id [C:N] [TYPE Type] [SEMANTICS tags]`.
|
||||
Every function, class, component, and module MUST open with `#region`.
|
||||
|
||||
**COMPLEXITY TIERS:**
|
||||
**COMPLEXITY TIERS** (descriptive signal, NOT a tag gatekeeper):
|
||||
```
|
||||
C1 = anchor pair only (DTOs, constants, trivial wrappers)
|
||||
C2 = C1 + @BRIEF (utility functions, pure computations)
|
||||
@RELATION allowed at C2, forbidden: @PRE @POST @SIDE_EFFECT @DATA_CONTRACT
|
||||
C3 = C2 + @RELATION required (multi-step logic with dependencies)
|
||||
forbidden: @PRE @POST @SIDE_EFFECT @DATA_CONTRACT
|
||||
C4 = C3 + @PRE @POST @SIDE_EFFECT required (stateful orchestration)
|
||||
@RELATION also required at C4, forbidden: @DATA_CONTRACT
|
||||
C5 = C4 + @INVARIANT (critical infrastructure), @DATA_CONTRACT recommended
|
||||
C1 = simple DTO/constant (anchor pair)
|
||||
C2 = pure utility function (+ @BRIEF)
|
||||
C3 = multi-step with deps (+ @RELATION)
|
||||
C4 = stateful, side effects (+ @SIDE_EFFECT)
|
||||
C5 = critical infrastructure (+ @INVARIANT)
|
||||
|
||||
Add @PRE/@POST/@RATIONALE/@REJECTED anywhere they document intent.
|
||||
The tier describes what the function IS, not what it's forbidden to carry.
|
||||
```
|
||||
|
||||
**ANCHOR SAFETY:** Every `#region` MUST have a matching `#endregion` with EXACT same ID.
|
||||
|
||||
Reference in New Issue
Block a user