Design Principles
1. Convention Over Configuration
- Standard directory structure (
.specify/extensions/\{name\}/) - Declarative manifest (
extension.yml) - Predictable command naming (
speckit.\{extension\}.\{command\})
2. Fail-Safe Defaults
- Missing extensions gracefully degrade (skip hooks)
- Invalid extensions warn but don't break core functionality
- Extension failures isolated from core operations
3. Backward Compatibility
- Core commands remain unchanged
- Extensions additive only (no core modifications)
- Old projects work without extensions
4. Developer Experience
- Simple installation:
specify extension add jira - Clear error messages for compatibility issues
- Local development mode for testing extensions
5. Security First
- Extensions run in same context as AI agent (trust boundary)
- Manifest validation prevents malicious code
- Verify signatures for official extensions (future)