# ss-tools Constitution ## Core Principles ### I. SPA-First Architecture The frontend MUST be a Static Single Page Application (SPA) served by the Python backend. No Node.js server is permitted in production. The backend serves the `index.html` entry point for all non-API routes. ### II. API-Driven Communication All data retrieval and state changes MUST be performed via the backend REST API or WebSockets. The frontend should not access the database or filesystem directly. ### III. Modern Stack Consistency The project strictly uses SvelteKit (Frontend), FastAPI (Backend), and Tailwind CSS (Styling). New dependencies must be justified and approved. ### IV. Semantic Protocol Adherence (GRACE-Poly) All code generation and modification MUST adhere to the Semantic Protocol defined in `semantic_protocol.md`. - **Anchors**: Use `[DEF:id:Type]` and `[/DEF:id]` to define semantic boundaries. - **Contracts**: Define `@PRE` and `@POST` conditions in headers. - **Logging**: Use structured logging with `[AnchorID][State]` format. - **Immutability**: Respect architectural decisions in headers. ## Governance ### Compliance All Pull Requests and code modifications must be verified against this Constitution. Violations of Core Principles are considered critical defects. ### Amendments Changes to this Constitution require a formal RFC process and approval from the project lead. **Version**: 1.0.0 | **Ratified**: 2025-12-20