# CLAUDE.md — Way-CMS ## Overview Web-based CMS for editing HTML/CSS files downloaded from the Wayback Archive. Features a file browser, syntax highlighting, live preview, multi-tenant support, and Docker deployment. ## Tech Stack - Python (Flask) - Nginx (static site serving) - CodeMirror (editor) - Docker / Docker Compose - pytest (testing) - Codecov (coverage) ## Development ```bash # Run locally with Docker Compose docker-compose up -d # Production (uses Docker Hub image) docker-compose -f docker-compose.prod.yml up -d # Run tests pytest tests/ ``` ## Architecture - `cms/` — Flask application (routes, auth, models, templates, static assets) - `nginx/` — Nginx config for serving the public site - `tests/` — Test suite - `scripts/` — Utility scripts - `docs/` — Documentation and images ## Key Rules - Docker image published to Docker Hub as `drumsergio/way-cms` with semver tags - Never hardcode credentials; auth uses bcrypt hashing - Production compose uses pre-built Docker Hub image, dev compose builds from source - Multi-tenant mode (v2.0.0+) uses role-based access control and magic link auth *Generated by [LynxPrompt](https://lynxprompt.com) CLI* ## Beads Issue Tracker This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full workflow context and commands. ### Quick Reference ```bash bd ready # Find available work bd show # View issue details bd update --claim # Claim work bd close # Complete work ``` ### Rules - Use `bd` for ALL task tracking — do NOT use TodoWrite, TaskCreate, or markdown TODO lists - Run `bd prime` for detailed command reference and session close protocol - Use `bd remember` for persistent knowledge — do NOT use MEMORY.md files **Architecture in one line:** issues live in a local Dolt DB; sync uses `refs/dolt/data` on your git remote; `.beads/issues.jsonl` is a passive export. See https://github.com/gastownhall/beads/blob/main/docs/SYNC_CONCEPTS.md for details and anti-patterns. ## Agent Context Profiles The managed Beads block is task-tracking guidance, not permission to override repository, user, or orchestrator instructions. - **Conservative (default)**: Use `bd` for task tracking. Do not run git commits, git pushes, or Dolt remote sync unless explicitly asked. At handoff, report changed files, validation, and suggested next commands. - **Minimal**: Keep tool instruction files as pointers to `bd prime`; use the same conservative git policy unless active instructions say otherwise. - **Team-maintainer**: Only when the repository explicitly opts in, agents may close beads, run quality gates, commit, and push as part of session close. A current "do not commit" or "do not push" instruction still wins. ## Session Completion This protocol applies when ending a Beads implementation workflow. It is subordinate to explicit user, repository, and orchestrator instructions. 1. **File issues for remaining work** - Create beads for anything that needs follow-up 2. **Run quality gates** (if code changed) - Tests, linters, builds 3. **Update issue status** - Close finished work, update in-progress items 4. **Handle git/sync by active profile**: ```bash # Conservative/minimal/default: report status and proposed commands; wait for approval. git status # Team-maintainer opt-in only, unless current instructions forbid it: git pull --rebase git push git status ``` 5. **Hand off** - Summarize changes, validation, issue status, and any blocked sync/commit/push step **Critical rules:** - Explicit user or orchestrator instructions override this Beads block. - Do not commit or push without clear authority from the active profile or the current user request. - If a required sync or push is blocked, stop and report the exact command and error. ## Where the tracker syncs This repo is public, so its tracker syncs only to the private remote named by `sync.remote` in `.beads/config.yaml`. The block above says sync uses "your git remote". Here that never means this GitHub repo. Don't add it as a Dolt remote and don't push `refs/dolt/*` to it.