Old CLAUDE.md was 700 lines — exceeded Anthropic 200-line recommendation,
adherence degraded under context pressure.
Refactor per research findings:
- CLAUDE.md 700 -> 97 lines (essential only, pointers to rules)
- .claude/rules/{backend,frontend,sql,git-pr,deploy}.md (NEW, path-scoped)
- ~/.claude/CLAUDE.md (NEW, 21 lines) — personal cross-project prefs
- memory/ — deleted 12 feedback files promoted to proper layer (CLAUDE.md
rules table, .claude/rules/, ~/.claude/CLAUDE.md). 7 remaining = workflow
details.
- .gitignore: !.claude/agents/, !.claude/rules/ exceptions
Total auto-loaded per session: 97 (CLAUDE.md) + 21 (~/.claude) = 118 lines
vs prior 700. Rules in .claude/rules/ load only when matching paths touched.
Resolves conflict no_self_review vs pre_push_review: now single rule in
git-pr.md Review workflow section (pre-push = local lint; post-push =
external Claude window posting as lekss361).
Code-reviewer feedback applied:
- paths: frontmatter added to git-pr.md
- Auto-merge scope blocked-list now includes .claude/rules/*.md changes
to prevent self-extending rules without human approval.
Co-authored-by: lekss361 <claudestars@proton.me>
1.9 KiB
1.9 KiB
| paths | ||||
|---|---|---|---|---|
|
Deploy conventions
GHA path triggers
backend/**,frontend/**,Caddyfile,docker-compose.prod.yml,data/sql/*.sql→deploy.yml(main stack)docker-compose.obsidian.yml,scripts/setup-couchdb.sh→deploy-obsidian.ymldocs/**alone → НЕ триггерит деплой
После изменения .env на VPS
docker compose up -d --force-recreate --no-deps <service>
docker compose restart НЕ перечитывает env_file.
Caddyfile
Bind-mounted → нужен явный caddy reload после изменения. deploy.yml делает автоматически после compose up -d.
Sentry release tracking
SENTRY_RELEASE=$IMAGE_TAG пишется в backend/.env.runtime на VPS через sed — не полная перезапись файла (там user-managed COUCHDB_PASSWORD и пр.).
VPS git state
deploy.yml делает git reset --hard origin/main → любые ручные правки в /opt/gendesign стираются. .env-файлы выживают (в .gitignore).
DB migrations через deploy
data/sql/NN_*.sql применяются до compose up -d. Если SQL падает → deploy останавливается (exit 1), containers не обновляются.
Diagnose: GHA log "Apply DB migrations". См. .claude/rules/sql.md для migration order.
Запреты
- ❌ Менять
env_fileсекреты вdocker-compose*.yml— секреты через VPS.envфайлы - ❌ Полностью перезаписывать
.env.runtime— толькоsedдля конкретных переменных - ❌
git pullна VPS вручную — deploy.yml уже делаетgit reset --hard - ❌ Hardcode tags / SHA в compose files —
${IMAGE_TAG}через env