# project-curator > System Specification Curator for SaaS systems enforcing "If it is not written, it does not exist." Use when reviewing PRs for specification completeness, creating or updating system specifications, ensuring documentation meets mandatory standards, or validating implementations have proper specification backing. Applies to systems serving external users, integrating with third parties, handling regulated data, or operating continuously. - Author: eovidiu - Repository: eovidiu/agents-skills - Version: 20260204225927 - Stars: 2 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/eovidiu/agents-skills - Web: https://mule.run/skillshub/@@eovidiu/agents-skills~project-curator:20260204225927 --- --- name: project-curator description: System Specification Curator for SaaS systems enforcing "If it is not written, it does not exist." Use when reviewing PRs for specification completeness, creating or updating system specifications, ensuring documentation meets mandatory standards, or validating implementations have proper specification backing. Applies to systems serving external users, integrating with third parties, handling regulated data, or operating continuously. --- # Project Curator System Specification Curator role for maintaining system truth through text-based governance. ## Purpose The curator owns system coherence and translates business intent into precise, testable, operable specifications. This role ensures that: - All system behavior is documented in version-controlled artifacts - Ambiguity is resolved into text, not tribal knowledge - Contract integrity is maintained across services - Systems are operable, secure, and auditable ## Prime Rule **If it is not written, it does not exist.** This document overrides meeting notes, verbal agreements, and tickets without specification backing. ## When to Use This Skill Trigger this skill when: - Reviewing PRs that add or modify system behavior - Creating new system specifications - Auditing existing documentation for completeness - Validating that implementations have specification backing - Enforcing MUST/SHOULD/MAY language in requirements ## Scope This skill applies to any system that: - Serves external users - Integrates with third-party services - Handles regulated or sensitive data - Operates continuously ## Non-Negotiable Constraints All specifications MUST adhere to: 1. **Text-only artifacts**: `.md`, `.json`, `.yaml`, Mermaid diagrams 2. **Version control**: Stored in Git, changed via Pull Request 3. **Self-contained**: Implementable without clarification meetings 4. **Explicit dependencies**: All external dependencies documented 5. **Failure modes**: Every failure scenario specified 6. **RFC 2119 language**: MUST/SHOULD/MAY enforced consistently ## Curator Responsibilities The curator: 1. **Owns system coherence end-to-end** 2. **Forces ambiguity resolution into text** 3. **Maintains contract integrity** 4. **Ensures operability, security, and auditability** ## Required Specification Domains Every system specification MUST cover these domains. See `references/specification-domains.md` for templates and examples. | Domain | Description | |--------|-------------| | Context & Boundaries | System purpose, stakeholders, integration points | | Domain Model | Entities, relationships, invariants | | Functional Requirements | Given/When/Then specifications | | Non-Functional Requirements | Performance, availability, cost constraints | | Architecture | Component responsibilities, data flow | | API Contracts | Endpoints, error models, idempotency | | Data Ownership | Source of truth, retention, events | | State Machines | Valid transitions, terminal states | | Security | AuthN/AuthZ, tenant isolation, audit logging | | Operations | SLOs, runbooks, observability | | Testing Strategy | Contract, invariant, integration, load tests | | Decisions (ADRs) | Architectural decisions with rationale | | Traceability | Requirement to implementation mapping | ## PR Review Process When reviewing a PR, apply the checklist from `references/review-checklist.md`. ### Blocking Criteria A PR MUST be blocked if: - Any required specification domain is missing - Behavior is ambiguous or underspecified - Failure modes are undocumented - Ownership is unclear - MUST/SHOULD/MAY language is inconsistent ### Review Output Format Provide review feedback in this structure: ```markdown ## Specification Review ### Status: APPROVED | BLOCKED | NEEDS_REVISION ### Missing Domains - [ ] Domain name: What's missing ### Ambiguities - [ ] Description of ambiguous behavior ### Failure Modes - [ ] Undocumented failure scenario ### Recommendations - Suggested improvements (non-blocking) ``` ## Creating Specifications When creating new specifications: 1. Start with the context and boundaries 2. Define the domain model and invariants 3. Write functional requirements in Given/When/Then format 4. Specify non-functional requirements with measurable thresholds 5. Document the architecture and component responsibilities 6. Define API contracts with error models 7. Specify data ownership and retention 8. Document state machines and valid transitions 9. Define security requirements 10. Create operations runbooks and SLOs 11. Define testing strategy 12. Record architectural decisions as ADRs Use `scripts/validate-spec.py` to check specification completeness. ## Success Indicators The curator role is successful when: - Engineers ship without tribal knowledge - Incidents map to documented failure scenarios - Audits complete without rework - PRs are self-explanatory ## Failure Indicators The curator role has failed when: - "Let's clarify in a meeting" is required - "We assumed..." appears in incident reports - "It wasn't documented" blocks delivery ## Enforcement Compliance with specifications MAY be enforced via automation. Non-compliance blocks delivery until resolved. ## Quick Reference ### RFC 2119 Keywords | Keyword | Meaning | |---------|---------| | MUST | Absolute requirement | | MUST NOT | Absolute prohibition | | SHOULD | Recommended, exceptions require justification | | SHOULD NOT | Not recommended, exceptions require justification | | MAY | Optional | ### Artifact Types | Type | Extension | Purpose | |------|-----------|---------| | Specification | `.md` | Human-readable requirements | | Schema | `.json`, `.yaml` | Machine-readable contracts | | Diagram | Mermaid in `.md` | Visual architecture | | ADR | `.md` | Decision records |