Operator capability to bring a NEW project online in one pass, fully
outside the runtime and the pipeline (src/** byte-exact, no kill-switch
needed — activation is an explicit human CLI run). Reference = the
orchestrator repo itself (ORCH-52b/c/d/e canons).
* onboarding/repo-skeleton/ — parametrized kit of a new repo: 6 agent
prompt templates per canon 52d/92 (5 ru + deployer en with the
shared-host guardrail frame), reviewer doc-gate (REQUEST_CHANGES),
CLAUDE.md passport, AGENTS.md, CONTRIBUTING.md, docs/ skeleton with
mandatory operations/INFRA.md, .env.example; {{NAME}} placeholders +
stdlib render, dictionary onboarding/placeholders.json (bijection
held by tests). Canon is NOT forked: docs/_templates + docs/_standards
are live-copied from the checkout at materialization time (BR-2/D3).
* scripts/onboard_project.py — plan (default, GET-only, zero mutations)
/ apply (idempotent ensure, no delete ops at all) / verify (registry
round-trip via the actual projects._parse_projects_json, all 22 state
names incl. fail-closed Confirm Deploy/STOP, labels, webhook, kit
completeness, unresolved-placeholder scan). Closed read-only src
import list (ADR D4); state groups fixed per ADR D5 (STOP→cancelled,
terminal groups only Done/Cancelled/STOP); Gitea webhook reuses the
single global ORCH_GITEA_WEBHOOK_SECRET (TR-6); initial push ONLY
into a freshly created empty repo (INV-4 untouched); never restarts
prod / never edits .env / deletes nothing (NFR-2); secrets masked
(NFR-3); Plane CE API gaps degrade to manual-step (fail-safe).
* docs/operations/ONBOARDING.md runbook + SETUP_WEBHOOKS.md generalized
per-repo; CLAUDE.md / docs/architecture/README.md / CHANGELOG.md
updated in the same PR (golden source).
* Anti-drift tests: test_onboarding_kit.py / test_onboarding_script.py
(mocked, no network) / test_onboarding_invariants.py (snapshots of
STAGE_TRANSITIONS/QG_CHECKS, closed CLI import list, reference
.openclaw/agents/ prompts untouched). Full regression: 1713 passed.
Refs: ORCH-009
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
83 lines
5.2 KiB
Markdown
83 lines
5.2 KiB
Markdown
# CLAUDE.md — паспорт проекта {{PROJECT_NAME}}
|
||
|
||
## TL;DR
|
||
{{PROJECT_DESCRIPTION}}
|
||
|
||
Проект ведётся мульти-агентным оркестратором: задачи из Plane идут по конвейеру стадий через
|
||
Quality Gates; на каждой стадии работает свой агент (analyst → architect → developer → reviewer →
|
||
tester → deployer). Промпты агентов — в `.openclaw/agents/` этого репо.
|
||
|
||
## Стек
|
||
{{STACK}}
|
||
|
||
## Команды
|
||
- `{{TEST_CMD}}` — все тесты
|
||
|
||
## Среды
|
||
- **prod** — порт `{{PROD_PORT}}`
|
||
- **staging** — порт `{{STAGING_PORT}}`
|
||
|
||
Детали топологии, env-карта и границы доступа — `docs/operations/INFRA.md`.
|
||
|
||
## Привязка к оркестратору
|
||
- Gitea-репо: `{{GITEA_OWNER}}/{{REPO}}`
|
||
- Plane-проект: `{{PLANE_PROJECT_ID}}`
|
||
- Префикс work-item: `{{WORK_ITEM_PREFIX}}`
|
||
|
||
## Структура
|
||
- `docs/ARCHITECTURE.md` — код-карта, потоки, БД.
|
||
- `docs/PIPELINE.md` — конвейер стадий, Quality Gates, агенты.
|
||
- `docs/PRODUCT_VISION.md` — зачем проект.
|
||
- `docs/operations/INFRA.md` — RUNBOOK: топология, env, границы.
|
||
- `docs/architecture/adr/` — реестр сквозных ADR.
|
||
- `docs/work-items/<id>/` — артефакты задач (по `docs/_standards/PIPELINE_DOCS.md`).
|
||
- `docs/_templates/` — скелеты номерных документов (канон, не править локально).
|
||
- `docs/_standards/` — стандарты документов/handoff/трассировки (канон, не править локально).
|
||
- `docs/history/` — исторические записи.
|
||
|
||
## Конвейер (кратко; детали — docs/PIPELINE.md)
|
||
```
|
||
created → analysis → architecture → development → review → testing → deploy-staging → deploy → done
|
||
```
|
||
|
||
## Конвенции
|
||
- Conventional Commits (`feat:`, `fix:`, `docs:`, `refactor:`, `test:`)
|
||
- Ветки: `feature/{{WORK_ITEM_PREFIX}}-NNN-slug`, `fix/{{WORK_ITEM_PREFIX}}-NNN-slug`
|
||
- ADR per work-item: `docs/work-items/<id>/06-adr/ADR-NNN-slug.md`
|
||
- Сквозные ADR: `docs/architecture/adr/adr-NNNN-slug.md`
|
||
- Машинные вердикты Quality Gate — строго YAML-frontmatter (`verdict:`, `result:`,
|
||
`staging_status:`, `deploy_status:`, `security_status:`), никогда проза. Спека «стадия →
|
||
обязательный выход» — `docs/_standards/HANDOFF_PROTOCOL.md`.
|
||
|
||
## Артефакты задачи (`docs/work-items/<id>/`)
|
||
`00-business-request.md`, `01-brd.md`, `02-trz.md`, `03-acceptance-criteria.md`,
|
||
`04-test-plan.yaml`, `06-adr/ADR-NNN-slug.md`, `07-infra-requirements.md`,
|
||
`08-data-requirements.md`, `10-tech-risks.md`, `12-review.md`, `13-test-report.md`,
|
||
`14-deploy-log.md`, `15-staging-log.md`, `16-post-deploy-log.md`, `17-security-report.md`,
|
||
`18-coverage-report.md`.
|
||
|
||
Перед написанием номерного дока бери скелет из `docs/_templates/` и не меняй имя machine-key
|
||
frontmatter (регистр чувствителен — иначе гейт упадёт ложно).
|
||
|
||
## Правила для агентов
|
||
1. Перед любым действием прочесть этот файл и `AGENTS.md`.
|
||
2. **Документация = golden source наравне с кодом.** Изменил функционал → обнови доку В ТОМ ЖЕ
|
||
PR. Архитектурное решение → заведи ADR. Обнови `CHANGELOG.md`.
|
||
3. Никогда не править артефакты других этапов.
|
||
4. Никогда не комментировать ТЗ задним числом — если ТЗ не годится, возвращай в Анализ.
|
||
5. Никогда не закрывать задачу самостоятельно — это делает CI / финальная стадия.
|
||
6. **Reviewer проверяет: обновлена ли документация. Нет → REQUEST_CHANGES.**
|
||
7. Не использовать `--no-verify` без явного одобрения Owner.
|
||
8. Секреты — только в `.env` на хосте, в гит НЕ коммитятся (канон — `.env.example`).
|
||
9. **Трассировка маркеров:** правишь строку/блок с маркером `{{WORK_ITEM_PREFIX}}-NNN` →
|
||
ПЕРЕД изменением прочитай его `docs/work-items/<id>/06-adr/` и не сломай зафиксированный
|
||
инвариант. Стандарт — `docs/_standards/TRACEABILITY.md`.
|
||
|
||
## ⚠️ Общий хост
|
||
Проект живёт на общем хосте рядом с контейнерами других проектов. Не трогать чужие контейнеры,
|
||
тома и env; рестарт прод-контура — только по процедуре `docs/operations/INFRA.md`.
|
||
|
||
---
|
||
*Паспорт проекта {{PROJECT_NAME}}. Поддерживается агентами при каждой доработке. Изолирован:
|
||
описывает только этот проект (канон per-repo).*
|