|
1 | 1 | <!-- |
2 | 2 | Sync Impact Report: |
3 | | -Version: 1.3.0 → 1.4.0 |
4 | | -Modified Principles: None |
5 | | -Added Sections: Principle VI - Production Data Protection (NON-NEGOTIABLE) |
| 3 | +Version: 1.4.0 → 1.5.0 |
| 4 | +Modified Principles: |
| 5 | + - Quality Standards > Code Organization (added Development Scope Boundaries) |
| 6 | +Added Sections: Development Scope Boundaries subsection under Quality Standards |
6 | 7 | Removed Sections: None |
7 | | -Renumbered Principles: VI→VII (Modern Perl), VII→VIII (AI Agent Safety) |
| 8 | +Renumbered Principles: None |
8 | 9 | Templates Status: |
9 | | - - ⚠ .specify/templates/plan-template.md (add production data protection guidance) |
10 | | - - ⚠ .specify/templates/spec-template.md (add constraint about not modifying db/) |
11 | | - - ⚠ .specify/templates/tasks-template.md (add verification tasks for db/ integrity) |
| 10 | + - ✅ .specify/templates/plan-template.md (added Source Code scope guidance) |
| 11 | + - ✅ .specify/templates/spec-template.md (no changes needed - already scope-agnostic) |
| 12 | + - ✅ .specify/templates/tasks-template.md (added path conventions note about scope) |
12 | 13 | Follow-up TODOs: |
13 | | - - Add db/ directory protection checks to test suite validation |
14 | | - - Update testing best practices to emphasize test fixtures over production data |
15 | | - - Add git status check for db/ in CI/CD validation |
16 | | - - Review all existing tests to ensure compliance with Principle VI |
17 | | - - Document test fixture patterns in testing guide |
| 14 | + - None - all templates updated |
18 | 15 | --> |
19 | 16 |
|
20 | 17 | # Ovid's Website Constitution |
@@ -143,6 +140,26 @@ AI agents operating on this codebase MUST NOT execute destructive git operations |
143 | 140 | - Static assets in `static/` directory (images, CSS, JS) |
144 | 141 | - Build artifacts in `tmp/` (excluded from version control) |
145 | 142 |
|
| 143 | +#### Development Scope Boundaries |
| 144 | + |
| 145 | +**Source Code Modification Scope**: All development work MUST be confined to three directories: |
| 146 | + |
| 147 | +- **`lib/`**: Perl modules implementing core functionality |
| 148 | +- **`bin/`**: Command-line scripts and build tools |
| 149 | +- **`root/`**: Template Toolkit templates (`.html` files with TT directives) |
| 150 | + |
| 151 | +**Generated/External Content**: The following directories contain auto-generated or user-initiated content and MUST NOT be modified by development tasks, agents, or tooling: |
| 152 | + |
| 153 | +- `articles/`, `blog/`, `tags/`: Generated HTML output (created by `bin/rebuild`) |
| 154 | +- `static/`, `css/`, `images/`: User-managed assets (uploaded by content authors) |
| 155 | +- `db/`: Production databases (see Principle VI - Production Data Protection) |
| 156 | +- `tmp/`, `cover_db/`, `coverage-report/`: Build artifacts and reports |
| 157 | +- `fixtures/`, `t/`: Test infrastructure (modified only when adding/updating tests) |
| 158 | +- `include/`: Template includes (generated or manually curated, not feature development targets) |
| 159 | +- Configuration files at root (`cpanfile`, `Makefile`, `.perltidyrc`, etc.): Modified only when adding dependencies or tools |
| 160 | + |
| 161 | +**Rationale**: This static site generator follows a clear separation between source code (templates + logic) and generated output. Modifying generated files creates confusion, causes data loss on rebuild, and violates the principle of single source of truth. Content authors manage assets directly; developers implement the generation logic. |
| 162 | + |
146 | 163 | ### Documentation Requirements |
147 | 164 |
|
148 | 165 | Every module and script MUST include: |
@@ -238,9 +255,10 @@ Deviations from constitution principles require: |
238 | 255 | - Plan for eventual compliance if temporary deviation |
239 | 256 | - Review and approval for non-negotiable principles |
240 | 257 |
|
241 | | -**Version**: 1.4.0 | **Ratified**: 2025-11-09 | **Last Amended**: 2025-11-09 |
| 258 | +**Version**: 1.5.0 | **Ratified**: 2025-11-09 | **Last Amended**: 2025-11-16 |
242 | 259 |
|
243 | 260 | **Changelog**: |
| 261 | +- **1.5.0** (2025-11-16): Added Development Scope Boundaries under Code Organization to explicitly define modifiable directories (lib/, bin/, root/) vs. generated/external content |
244 | 262 | - **1.4.0** (2025-11-09): Added Principle VI - Production Data Protection to prevent test contamination of production databases and data files |
245 | 263 | - **1.3.0** (2025-11-09): Added Mock Minimization guidance under Principle III |
246 | 264 | - **1.2.1**: Added compliance requirement for perltidy formatting |
|
0 commit comments