You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(spec): reject unknown requires capability tokens at authoring (#3265)
The warn-first phase (framework#3281) is over: the platform capability
vocabulary is now the proven-complete union of every token the framework CLI
and cloud's objectos-runtime resolve (audited across both repos — the only
out-of-vocabulary token in either is a test fixture). So defineStack now
REJECTS an unknown `requires` token instead of warning:
- Split canonicalizeStackRequires (alias rewrite + deprecation warn only) from
a new validateKnownCapabilities that returns one error per distinct unknown
token; defineStack throws on any, consistent with its other validators.
- Deprecated aliases (aiStudio/aiSeat) still canonicalize with a warning — they
are valid, just deprecated; only genuinely unknown tokens (typos / stale
references no runtime provides) throw.
- The serve resolver keeps WARNING (not throwing) on an unknown token in a raw
artifact: authoring is the gate (Prime Directive #12), and a pre-built or
older-spec artifact must not crash-boot a running server over a no-op token.
Closes the "declared ≠ enforced" gap for capability tokens: a typo used to be
silently ignored by every runtime; now it fails loudly at build time.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
requires: z.array(z.string()).optional().describe('Capability names this stack requires from the platform (canonical kebab-case tokens from PLATFORM_CAPABILITY_TOKENS; declared-but-missing ⇒ fail-fast at startup)'),
448
+
requires: z.array(z.string()).optional().describe('Capability names this stack requires from the platform (canonical kebab-case tokens from PLATFORM_CAPABILITY_TOKENS; an unknown token is a defineStack error, declared-but-missing ⇒ fail-fast at startup)'),
0 commit comments