opencode-config/AGENTS.md
Sergey a2666183f8
fix(agents+skills): enforce tool-usage policy across prompts and skills (#63)
* fix(agents): add tool usage policy to AGENTS.md

* fix(skills): replace raw bash with tools in 6 skills

* feat(skills): restore tunnel skill

* docs(handoff): scaffold handoff and ADR for PR

* docs(handoff): set PR number

* docs(project-map): add tunnel skill + tool usage policy note (PR#63)

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-25 18:46:16 +03:00

4.3 KiB
Raw Blame History

Global Rules

Orchestrator Model (главное)

  • Главный чат = ТОЛЬКО план. Все исследования, команды, edits, реализации — ТОЛЬКО через subagents.
  • Никогда не делать самому: research файловой системы, grep/glob, bash-команды, file edits, тесты, git ops.
  • Максимум: верхнеуровневый план + отчёты пользователю + делегирование task subagent'ам.
  • 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-standards skill 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.