Finding
GrantRequest and GrantStatement carry CriticalExtensions, but neither the pre-signing author scope projection nor the production delegation attenuation kernel compares them.
The current gaps are visible in:
auths_model::ScopeAuthorityView, which omits extensions
auths_authority::AuthorityDimension, which has no extension dimension
auths_authority::evaluate_author_scope_view, which therefore cannot reject extension drift before signing
auths_authority::EffectiveAuthority / AuthorityStateView and evaluate_grant_view, which do not preserve or compare extensions during production verification
As a result, a child proposal can add, remove, or change critical-extension payloads without the planner identifying that semantic change as a widening/mismatch dimension. Whether a particular extension narrows or widens authority is extension-specific, so silently ignoring the field is not a safe generic rule.
Required resolution
- Define the target-V1 critical-extension delegation relation explicitly.
- Until extension-specific attenuation algebras exist, require exact canonical equality between parent and child critical-extension sets.
- Add an
Extensions authority dimension and stable negative diagnostics.
- Carry extensions through accumulated effective authority and production attenuation checks.
- Update the executable attenuation algebra, Lean/refinement bridge, semantic identities, fixtures, and negative tests atomically.
- Ensure TypeScript/Python/other Full Workflow delegation APIs cannot bypass the native check.
Discovered during
AP-SPEC-027 / AP27-PR5 implementation audit.
Finding
GrantRequestandGrantStatementcarryCriticalExtensions, but neither the pre-signing author scope projection nor the production delegation attenuation kernel compares them.The current gaps are visible in:
auths_model::ScopeAuthorityView, which omits extensionsauths_authority::AuthorityDimension, which has no extension dimensionauths_authority::evaluate_author_scope_view, which therefore cannot reject extension drift before signingauths_authority::EffectiveAuthority/AuthorityStateViewandevaluate_grant_view, which do not preserve or compare extensions during production verificationAs a result, a child proposal can add, remove, or change critical-extension payloads without the planner identifying that semantic change as a widening/mismatch dimension. Whether a particular extension narrows or widens authority is extension-specific, so silently ignoring the field is not a safe generic rule.
Required resolution
Extensionsauthority dimension and stable negative diagnostics.Discovered during
AP-SPEC-027 / AP27-PR5 implementation audit.