- CLAUDE.md: 97->63 lines, drop dev-commands and Don't duplicates already covered by .claude/rules/* - git-pr.md, deploy.md: replace gh CLI with Forgejo MCP/curl - code-reviewer.md: fix mcp__postgres__ -> mcp__postgres-gendesign__ - tech-analyst.md: sonnet -> haiku - deep-code-reviewer.md: 391->135 lines, phase details split into .claude/agents/deep-review-phases/ (loaded on demand) - qa-tester, code-reviewer, deep-code-reviewer: add memory: project - ui-ux.md: split into ui-tokens/ui-conventions/ui-microcopy - scripts/claude-hooks/check-no-print.py + PostToolUse hook - .gitignore: explicit list (git whitelist limitation)
4.7 KiB
GenDesign
Site Finder (AI-подбор инвест-участков) + Generative Design (концепции застройки) для девелоперов РФ.
Live: https://gendsgn.ru/ — Свердловская обл. (ЕКБ, ПЗЗ, МСК-66).
Stack
| Слой | Stack |
|---|---|
| Backend | Python 3.12, FastAPI, SQLAlchemy 2.0, GeoAlchemy2, Pydantic v2, Celery + Redis, httpx, Shapely 2 |
| DB | PostgreSQL 16 + PostGIS 3.4 (~50 таблиц, partitioned rosreestr_deals, GIST на geom) |
| Frontend | Next.js 15 app router, React 19, TypeScript 5 strict, Tailwind 4, TanStack Query |
| Export | WeasyPrint (PDF), ezdxf (DXF), openpyxl (Excel) |
| Tooling | uv, ruff, mypy strict (selective), pytest, pre-commit, prettier |
| Deploy | Beget VPS · Forgejo Actions → GHCR → SSH → docker-compose · Caddy |
| Knowledge | Obsidian vault obsidian.gendsgn.ru (CouchDB LiveSync) |
Critical rules
-
Knowledge = Obsidian vault only.
mcp__obsidian__*tools. Local mirror:C:\Users\user\Documents\gendesign-memory. Deprecated:memory/memory-gendesign.jsonl— не читай, не пиши. -
Branch + PR mandatory. Никаких direct push в main.
feat/.../fix/.../refactor/.../docs/.../chore/...→ ветка отforgejo/main→mcp__forgejo__create_pull_request→ PR URL пользователю. После PR create — сразуSkill looppolling.ghCLI bypassed (2026-05-16). Полные правила:.claude/rules/git-pr.md. -
Agent-first workflow. Main session orchestrates ONLY — не пишет код inline. Любая задача >1 файл / >50 строк → subagent. Pre-push: spawn
code-reviewersubagent на staged changes. Post-push review — внешнее окно Claude (НЕ дублировать). -
psycopg v3 only.
import psycopg2→ ModuleNotFoundError.CAST(:x AS type)в SQL — никогда:x::type. Полные правила:.claude/rules/backend.md+sql.md. -
No
--no-verify/--force/--amend. Pre-commit hooks обязательны. Hook падает → fix root cause. -
Vault обновляется вместе с кодом — в той же сессии. Используй
/vault-writeдля новой записи (auto-routes через inbox → vault-overlord → правильная папка). НЕ пиши напрямую вfixes//decisions//code/modules/. Periodic cleanup:/sort-inbox(раскладка inbox),/retention-pass(архив устаревшего active вold/). Полные правила:meta/02_claude_usage.md+inbox/README.mdв vault. -
Тестируй каждый merge —
mcp__playwright__*или curl ДО/сразу после deploy (post-deploy spawnqa-tester). Не доверяй "тесты прошли" без verify.
Subagents (.claude/agents/)
| Agent | Scope |
|---|---|
tech-analyst |
Нечёткая / cross-domain задача → план |
backend-engineer |
backend/app/** — FastAPI, Celery, scrapers, services |
frontend-engineer |
frontend/src/** — Next.js, React, hooks |
database-expert |
data/sql/**.sql, Alembic, EXPLAIN ANALYZE |
devops-engineer |
docker-compose*.yml, Caddyfile, .github/workflows/**, .forgejo/workflows/** |
code-reviewer |
Pre-push lint (security, correctness, conventions) |
Routing: тривиально (typo, 1-line) → main session. Single-domain clear → worker. Cross-domain / нечётко → tech-analyst first. Worker → code-reviewer → main commits → push → PR.
Where to look
- Path-scoped rules:
.claude/rules/(backend, frontend, sql, git-pr, deploy, ui-tokens, ui-conventions, ui-microcopy) — auto-loaded при работе с соответствующими файлами черезpaths:frontmatter - Personal preferences:
~/.claude/CLAUDE.md(cross-project: no auto-commit, no Co-Authored-By, no @claude) - Workflow memory:
~/.claude/projects/<repo>/memory/MEMORY.mdindex - Vault MOCs:
meta/,domains/<area>/<area>-MOC.md,decisions/,fixes/,limitations/,code/patterns/ - DB access: SSH tunnel
ssh -N gendesign→localhost:15432· Credentials: vaultmeta/00_credentials.md
Don't (cross-domain — specifics → .claude/rules/)
- ❌ Direct push в main / merge без approval
- ❌
--no-verify/--amend/git push --force - ❌ Knowledge-файлы вне vault (
docs/research/,notes/,wiki/) - ❌ Hardcode credentials в коде / коммитах