4.3 KiB
Global Rules
Orchestrator Model (главное)
- Главный чат = ТОЛЬКО план. Все исследования, команды, edits, реализации — ТОЛЬКО через subagents.
- Никогда не делать самому: research файловой системы, grep/glob, bash-команды, file edits, тесты, git ops.
- Максимум: верхнеуровневый план + отчёты пользователю + делегирование
tasksubagent'ам. - Pipeline: каждую фазу (ISSUE → IMPLEMENT → DOCS → CI → REVIEW → MERGE → MEMORY) делегировать subagent'у.
- Subagent error → 1 retry, потом STOP + report.
Development Workflow
All PR work runs through /run-pipeline. Pipeline phases orchestrated by pipeline-status tool (NEXT action per phase). Load run-pipeline skill.
Pipeline
pipeline-status = read-only oracle (returns NEXT action). merge-pr = orchestrator-safe merge wrapper. Execution via /run-pipeline skill.
Read Path
Перед началом задачи в репо: просмотри имена файлов в docs/handoff/ (если есть) — открой релевантные по теме.
Code Style
- Follow existing conventions in the repo
- Load
code-standardsskill for detailed rules - No comments unless explicitly requested
- Match surrounding code style (imports, naming, patterns)
Tool Usage Policy
Используй tool вместо raw bash. Raw bash-эквиваленты заблокированы deny
(opencode.json:311-314). При сбое tool — STOP и репорт оркестратору, НЕ
fallback на raw bash, НЕ импровизируй обход через gh api.
| Tool | Raw bash (заблокирован deny) | Когда использовать | При сбое — STOP, репорт, НЕ fallback |
|---|---|---|---|
commit({ message }) |
git commit * |
Коммит staged файлов (conventional format валидируется tool'ом) | Сообщи оркестратору, не git commit |
create-pr({ title, body, issue_number }) |
gh pr create * |
Создание PR после push ветки | Сообщи оркестратору, не gh pr create, не gh api repos/*/pulls |
create-issue({ title, body, labels }) |
gh issue create * |
Создание GitHub issue (валидация формата) | Сообщи оркестратору, не gh issue create, не gh api repos/*/issues |
merge-pr({ pr_number }) |
gh pr merge * |
Merge PR (squash + delete branch, без --admin) |
Сообщи оркестратору, не gh pr merge |
post-review({ pr_number, verdict, body }) |
gh pr comment для verdict |
Code review verdict (heading ## Code Review Summary + verdict) |
Сообщи оркестратору, не gh pr comment |
post-docs-review({ pr_number, verdict, body }) |
gh pr comment для verdict |
Docs review verdict (heading ## Docs Review Summary + verdict) |
Сообщи оркестратору, не gh pr comment |
pipeline-status({ pr_number }) |
python3 .opencode/scripts/pipeline-status.py |
Read-only oracle: статус фаз PR + NEXT action | Сообщи оркестратору, не bash-запуск скрипта |
spec-status({}) |
python3 .opencode/scripts/spec-status.py |
Read-only oracle: текущая фаза spec + NEXT action | Сообщи оркестратору, не bash-запуск скрипта |
memory-setup() |
bash .opencode/scripts/setup-memory.sh |
Инициализация/синхронизация opencode-memory (clone + hook + reindex) | Сообщи оркестратору, не bash-запуск скрипта |
tunnel() |
bash .opencode/scripts/tunnel.sh |
Cloudflare tunnel toggle (1-й вызов — start, 2-й — stop) | Сообщи оркестратору, не bash-запуск скрипта |
gh pr comment* остаётся в allow-list reviewer/docs-reviewer для обратной
совместимости (ADR-019 отклонил strict-deny). Промпт уже запрещает fallback при
сбое tool — противоречие minimal.
Language
- Always respond to the user in Russian.