Loading...
Loading...
This skill composes project AGENTS.md constitution files into openspec/config.yaml to inject quality validation gates into OpenSpec workflows. Use this skill when initializing openspec for the first time in a project or when AGENTS.md files are updated. The skill ensures openspec artifacts are validated against project-specific quality criteria from constitutions.
npx skill4agent add cyberelf/agent_skills openspec-constitution-guardopenspec/config.yaml/opsx:apply/opsx:verify/opsx:archiveopenspec initopenspec/config.yaml<!-- CONSTITUTION-GUARD:STARTLast Updatedfind . -name "AGENTS.md" -type f | grep -v node_modules | grep -v .venv | grep -v target | grep -v openspec/AGENTS.mdopenspec/AGENTS.mdpytestnpm run lintproposalspecsdesigntasksopenspec/config.yaml# openspec/config.yaml
# Schema selection (if you have a preferred one)
schema: spec-driven
# <!-- CONSTITUTION-GUARD:START - Auto-generated from AGENTS.md files -->
# Context injected into ALL artifacts
context: |
[PROJECT-WIDE CONTEXT]
# Per-artifact validation rules
rules:
proposal:
- [PROPOSAL-SPECIFIC RULES]
specs:
- [SPECS-SPECIFIC RULES]
design:
- [DESIGN-SPECIFIC RULES]
tasks:
- [TASKS-SPECIFIC RULES]
# Constitution metadata
# Source Constitutions:
# - [List each AGENTS.md file path]
# Last Updated: [YYYY-MM-DD]
# <!-- CONSTITUTION-GUARD:END -->openspec/config.yaml<!-- CONSTITUTION-GUARD:STARTschema:# openspec/config.yaml
schema: spec-driven
# <!-- CONSTITUTION-GUARD:START - Auto-generated from AGENTS.md files -->
# Context injected into ALL artifacts
context: |
Tech stack: Python (FastAPI, Pydantic), TypeScript (React, Node.js), PostgreSQL
Architecture: Service layer pattern - business logic in services/, API routes are thin
Type safety: Strict typing required (no Any/any types)
API style: RESTful with OpenAPI docs
Testing: pytest + React Testing Library
We value backwards compatibility for all public APIs
# Per-artifact validation rules
rules:
proposal:
- Include rollback plan for breaking changes
- Mark breaking changes with **BREAKING** prefix
- Identify affected teams/systems
- Verify alignment with service layer architecture
specs:
- Use Given/When/Then format for scenarios
- Document all edge cases and error conditions
- Reference existing patterns before proposing new ones
- Include API contract changes if applicable
design:
- Maintain service layer separation (logic in services/, not api/)
- Use Pydantic models for all new data structures
- Ensure strict typing (no Any types in Python/TypeScript)
- Document integration points with existing services
tasks:
- Include unit test tasks for all new service logic
- Include integration test tasks for API changes
- Add type checking verification tasks
- Include documentation update tasks
# Source Constitutions:
# - AGENTS.md
# - backend/AGENTS.md
# - frontend/AGENTS.md
# Last Updated: 2026-02-09
# <!-- CONSTITUTION-GUARD:END --># openspec/config.yaml
schema: spec-driven
# <!-- CONSTITUTION-GUARD:START - Auto-generated from AGENTS.md files -->
context: |
Tech stack: Python (uv, FastAPI), TypeScript (Vite, React), PostgreSQL
Automated checks required before completion:
- Python: uv run pytest, uv run ruff check ., uv run pyright .
- TypeScript: npm run lint, npm run tsc, npx playwright test
Architecture: Microservices with event-driven communication
All services must be independently deployable
rules:
proposal:
- Identify service boundaries affected
- Document event schema changes
- Include deployment strategy
- Consider backwards compatibility for events
specs:
- Document event payloads in Given/When/Then scenarios
- Include failure/retry scenarios
- Specify service dependencies
design:
- Show event flow diagrams for cross-service changes
- Use async/await patterns for I/O operations
- Maintain service independence
tasks:
- Before marking complete, run: uv run pytest (Python)
- Before marking complete, run: npm run lint && npm run tsc (TypeScript)
- Include E2E test tasks for cross-service scenarios
- Add event contract validation tasks
# Source Constitutions:
# - AGENTS.md
# - services/user/AGENTS.md
# - services/order/AGENTS.md
# Last Updated: 2026-02-09
# <!-- CONSTITUTION-GUARD:END --># openspec/config.yaml
schema: spec-driven
# <!-- CONSTITUTION-GUARD:START - Auto-generated from AGENTS.md files -->
context: |
Multi-platform project with shared API
Backend (Python):
- FastAPI + SQLAlchemy + Alembic
- Service layer required for all business logic
- Commands: uv run pytest, uv run ruff check ., uv run mypy .
Web Frontend (TypeScript/React):
- Vite + React + TanStack Query
- Commands: npm run lint, npm run type-check, npm test
Mobile (Swift):
- SwiftUI + Combine
- Commands: swift test, swiftlint
Shared API contracts documented in docs/api/
Zero tolerance for breaking changes without migration plan
rules:
proposal:
- Mark platform scope (backend/web/mobile/api)
- For API changes, document impact on all clients
- Include migration strategy for breaking changes
- Specify API versioning approach if needed
specs:
- Use platform-specific scenario tags: [Backend], [Web], [Mobile]
- Document API contract changes in OpenAPI format
- Include backwards compatibility scenarios
- Reference existing patterns from project codebase
design:
- Show component/service interaction diagrams
- Maintain service layer in backend (no logic in routes)
- Use proper state management patterns per platform
- Document data flow for cross-platform features
tasks:
- Group tasks by platform with clear labels
- Backend: Include pytest, ruff, mypy verification
- Web: Include lint, type-check, unit test tasks
- Mobile: Include SwiftLint and unit test tasks
- For API changes, include contract validation task
- Include platform-specific E2E test tasks
# Source Constitutions:
# - AGENTS.md
# - backend/AGENTS.md
# - frontend/AGENTS.md
# - mobile/AGENTS.md
# Last Updated: 2026-02-09
# <!-- CONSTITUTION-GUARD:END --><context>
Tech stack: Python (FastAPI, Pydantic), TypeScript (React, Node.js), PostgreSQL
Architecture: Service layer pattern - business logic in services/, API routes are thin
Type safety: Strict typing required (no Any/any types)
...
</context>
<template>
[Schema's built-in template for this artifact]
</template>/opsx:continue proposal<rules>
- Include rollback plan for breaking changes
- Mark breaking changes with **BREAKING** prefix
- Identify affected teams/systems
- Verify alignment with service layer architecture
</rules>| Command | Purpose | Affected Artifacts |
|---|---|---|
| Start a change | Creates change directory |
| Create next artifact | proposal → specs → design → tasks |
| Fast-forward (create all planning) | proposal, specs, design, tasks |
| Implement tasks | Works from tasks.md |
| Validate implementation | Checks against all artifacts |
| Merge specs to main | Updates openspec/specs/ |
| Complete change | Finalizes and archives |
<!-- CONSTITUTION-GUARD:STARTschema:Last Updatedopenspec new test-change# Check YAML syntax
python -c "import yaml; yaml.safe_load(open('openspec/config.yaml'))"
# Test with a dummy change
openspec new test-validation
# Check if context and rules are properly injected in artifacts