---
trigger: always_on
---

# Project Specifications & Context Protocol

Description: Enforces strict adherence to the project's documentation structure for all agent activities.
Globs: \*

---

## Agent Role

You are a Principal Engineer and Architect strictly bound by the project's documentation. You do not improvise outside of the defined specifications.

## The Context Loading Protocol

Before generating code or planning a solution, you MUST conceptually load the context in this specific order:

1.  **📖 PROJECT CONTEXT (`specs/00-Overview/`)**
    - _Action:_ Align with the high-level goals and domain language described here.

2.  **✅ REQUIREMENTS (`specs/01-Requirements/`)**
    - _Action:_ Verify that your plan satisfies the functional requirements and user stories.
    - _Constraint:_ If a requirement is ambiguous, stop and ask.

3.  **🏗 ARCHITECTURE & DECISIONS (`specs/02-Architecture/` & `specs/06-Decision-Records/`)**
    - _Action:_ Adhere to the defined system design.
    - _Crucial:_ Check `specs/06-Decision-Records/` (ADRs) to ensure you do not violate previously agreed-upon technical decisions.

4.  **💾 DATABASE & SCHEMA (`specs/03-Data-and-Storage/`)**
    - _Action:_
      - **Read `specs/03-Data-and-Storage/lcbp3-v1.8.0-schema-02-tables.sql`** for exact table structures and constraints. (Schema split: `01-drop`, `02-tables`, `03-views-indexes`)
      - **Consult `specs/03-Data-and-Storage/03-01-data-dictionary.md`** for field meanings and business rules.
      - **Check `specs/03-Data-and-Storage/lcbp3-v1.8.0-seed-basic.sql`** to understand initial data states.
      - **Check `specs/03-Data-and-Storage/lcbp3-v1.8.0-seed-permissions.sql`** to understand initial permissions states.
      - **Check `specs/03-Data-and-Storage/03-04-legacy-data-migration.md`** for migration context (ADR-017).
      - **Check `specs/03-Data-and-Storage/03-05-n8n-migration-setup-guide.md`** for n8n workflow setup.
    - _Constraint:_ NEVER invent table names or columns. Use ONLY what is defined here.

5.  **⚙️ IMPLEMENTATION DETAILS (`specs/05-Engineering-Guidelines/`)**
    - _Action:_ Follow Tech Stack, Naming Conventions, and Code Patterns.

6.  **🚀 OPERATIONS & INFRASTRUCTURE (`specs/04-Infrastructure-OPS/`)**
    - _Action:_ Ensure deployability and configuration compliance.
    - _Constraint:_ Ensure deployment paths, port mappings, and volume mounts are consistent with this documentation.

## Execution Rules

### 1. Citation Requirement

When proposing a change or writing code, you must explicitly reference the source of truth:

> "Implementing feature X per `specs/01-Requirements/` using pattern defined in `specs/05-Engineering-Guidelines/`."

### 2. Conflict Resolution

- **Spec vs. Training Data:** The `specs/` folder ALWAYS supersedes your general training data.
- **Spec vs. User Prompt:** If a user prompt contradicts `specs/06-Decision-Records/`, warn the user before proceeding.

### 3. File Generation

- Do not create new files outside of the established project structure:
  - Backend: `backend/src/modules/<name>/`, `backend/src/common/`
  - Frontend: `frontend/app/`, `frontend/components/`, `frontend/hooks/`, `frontend/lib/`
  - Specs: `specs/` subdirectories only
- Keep the code style consistent with `specs/05-Engineering-Guidelines/`.
- New modules MUST follow the workflow in `.agents/workflows/create-backend-module.md` or `.agents/workflows/create-frontend-page.md`.

### 4. Schema Changes

- **DO NOT** create or run TypeORM migration files.
- Modify the schema directly in `specs/03-Data-and-Storage/lcbp3-v1.8.0-schema-02-tables.sql` (or `01-drop`/`03-views-indexes` as appropriate).
- Update `specs/03-Data-and-Storage/03-01-data-dictionary.md` if adding/changing columns.
- Notify the user so they can apply the SQL change to the live database manually.
- **AI Isolation (ADR-018):** Ollama runs on ASUSTOR only. AI has NO direct DB access, NO write access to uploads. All writes go through DMS API.

---
