55 lines
3.5 KiB
Markdown
55 lines
3.5 KiB
Markdown
# CLAUDE.md
|
|
|
|
## Session Start
|
|
|
|
Read the latest handoff in docs/summaries/ if one exists. Load only the files that handoff references — not all summaries. If no handoff exists, ask: what is the goal this session and what is the target deliverable.
|
|
|
|
Before starting work, state: what you understand the project state to be, what you plan to do this session, and any open questions.
|
|
|
|
## Identity
|
|
|
|
You work with Patrick, a Solutions Architect. This repo is Ansible automation for the BAB (Borrow a Boat) backend — an Appwrite-based service on a single RHEL 9 host (`bab1.mgmt.toal.ca`). Automation runs via Ansible Automation Platform (AAP) in production, ansible-navigator locally. Patrick has expert-level Ansible knowledge — do not explain Ansible basics.
|
|
|
|
## Project
|
|
|
|
**Repo:** Ansible playbooks and EDA rulebooks managing a full Appwrite backend lifecycle on RHEL 9.
|
|
**Host:** `bab1.mgmt.toal.ca`
|
|
**Run locally:** `ansible-navigator run playbooks/<name>.yml --mode stdout`
|
|
**Run with extra vars:** `ansible-navigator run playbooks/deploy_application.yml --mode stdout -e artifact_url=<url>`
|
|
**Lint:** `ansible-navigator lint playbooks/ --mode stdout`
|
|
**Collections:** `ansible-galaxy collection install -r requirements.yml`
|
|
|
|
Load `docs/context/architecture.md` when working on playbooks, EDA rulebooks, or Appwrite API tasks.
|
|
|
|
## Rules
|
|
|
|
1. Do not mix unrelated project contexts in one session.
|
|
2. Write state to disk, not conversation. After completing meaningful work, write a summary to docs/summaries/ using templates from templates/claude-templates.md. Include: decisions with rationale, exact numbers, file paths, open items.
|
|
3. Before compaction or session end, write to disk: every number, every decision with rationale, every open question, every file path, exact next action.
|
|
4. When switching work types (development → documentation → review), write a handoff to docs/summaries/handoff-[date]-[topic].md and suggest a new session.
|
|
5. Do not silently resolve open questions. Mark them OPEN or ASSUMED.
|
|
6. Do not bulk-read documents. Process one at a time: read, summarize to disk, release from context before reading next. For the detailed protocol, read docs/context/processing-protocol.md.
|
|
7. Sub-agent returns must be structured, not free-form prose. Use output contracts from templates/claude-templates.md.
|
|
|
|
## Where Things Live
|
|
|
|
- `templates/claude-templates.md` — summary, handoff, decision, analysis, task, output contract templates (read on demand)
|
|
- `docs/summaries/` — active session state (latest handoff + decision records + source summaries)
|
|
- `docs/context/` — reusable domain knowledge, loaded only when relevant
|
|
- `architecture.md` — playbook inventory, EDA rulebooks, Appwrite API pattern, collections
|
|
- `processing-protocol.md` — full document processing steps
|
|
- `archive-rules.md` — summary lifecycle and file archival rules
|
|
- `subagent-rules.md` — when to use subagents vs. main agent
|
|
- `docs/archive/` — processed raw files. Do not read unless explicitly told.
|
|
- `output/deliverables/` — final outputs
|
|
|
|
## Error Recovery
|
|
|
|
If context degrades or auto-compact fires unexpectedly: write current state to docs/summaries/recovery-[date].md, tell the user what may have been lost, suggest a fresh session.
|
|
|
|
## Before Delivering Output
|
|
|
|
Verify: exact numbers preserved, open questions marked OPEN, output matches what was requested (not assumed), no Ansible idempotency regressions introduced, summary written to disk for this session's work.
|
|
|
|
All Ansible files (playbooks, task files, templates, vars) must end with a trailing newline.
|