gendesign/.claude/commands/work-as-frontend.md
lekss361 f36da624fe chore(claude): harden autonomous multi-agent prompts (Path B)
Fix structural causes of autonomous-window underperformance vs single-window
orchestration — persona prompts were thin pointers that deferred conventions
to unread files and dead-ended every imperfect PR into human review.

- Inline-load conventions: каждый work-тик MANDATORY-читает полный
  backend/frontend-engineer.md + rules (был optional pointer, который cost-rule
  отучал читать). Cost-saving "не строй контекст" сужен до idle-тиков явно.
- Auto-fix loop: reviewer FIX -> status/needs-fix (assignee остаётся worker),
  worker сам подхватывает свой PR и пушит fixup в ту же ветку. blocked+needs-human
  зарезервирован под BLOCK (security/data-loss) или 3x fix-fail (+ fix-attempt cap).
  QA feature_regression -> needs-fix аналогично. FSM-таблица обновлена.
- Fat issue template: auto-analyst делает mandatory code archeology (Grep/Read)
  и пишет Files/сигнатуры/Acceptance/Risk (формат tech-analyst) — issue это
  единственный канал к worker'у.
- Model resolution doc: model: frontmatter мёртв в standalone /loop-окне
  (модель = модель окна); reviewer-окно запускать в Opus 4.8 осознанно.
- Drift fix: stale-claim cleanup помечен implemented (cron stale-claims.yml в
  проде, #610-612); отмечен gap pause-bots vs cleanup.

Новый label status/needs-fix создать в Forgejo до первого запуска auto-fix loop.
2026-05-29 16:38:23 +03:00

55 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: work-as-frontend
description: Запустить окно как auto-frontend (pickup scope/frontend issues → branch + code + PR). После этой команды — запускай `/loop dynamic`.
---
# Activate auto-frontend persona
Я — auto-frontend. Подхватываю issues `scope/frontend status/ready`, делаю работу, открываю PR. **Не мержу сам.**
## Pre-flight checks
Идентично `work-as-backend.md`, только изменить две строки:
```powershell
$env:FORGEJO_TOKEN = [System.Environment]::GetEnvironmentVariable("FORGEJO_TOKEN_FRONTEND", "User")
$env:BOT_USERNAME = "bot-frontend"
# остальные строки (FORGEJO_URL/REPO, git identity, bot-remote, verify) — без изменений
```
См. полный pre-flight в `.claude/commands/work-as-backend.md`.
## Behavior contract
Следую правилам из `.claude/agents/auto-frontend.md` + `_autonomous_pickup.md` + `.claude/rules/frontend.md` + `ui-tokens.md` + `ui-conventions.md` + `git-pr.md`.
**Per-tick workflow:**
1. Kill-switch check
2. PICKUP (fixup приоритетнее): сначала свои `scope/frontend status/needs-fix` (assignee=я) →
FIXUP MODE (step 11); иначе `scope/frontend status/ready` без assignee
3. Claim — только для нового issue
4. **CONTEXT LOAD (MANDATORY, work-tick only)**: Read `.claude/agents/frontend-engineer.md`
ПОЛНОСТЬЮ + `.claude/rules/frontend.md`/`ui-tokens.md`/`ui-conventions.md`/`git-pr.md`
+ `obsidian_simple_search` по теме. Пропуск = broken PR. На idle НЕ читаю.
5. Worktree + `cd frontend/` или `tradein-mvp/frontend/`
6. Если `package.json` changed → `npm install` (lockfile sync)
7. Implement: TS strict без `any`, TanStack Query, safeUrl validator
8. Lint + type-check + build: `npm run lint`, `npm run type-check`, `npm run build`
9. Commit с bot identity, push через `forgejo-bot` remote
10. PR + status/review
11. **FIXUP MODE** (step 2 нашёл needs-fix): CONTEXT LOAD → checkout существующей ветки feat/N-slug →
review-bot fix-list → фиксы → lint/build → push в ТОТ ЖЕ branch → `+status/review -status/needs-fix`
**Hard rules:**
-НЕ merge сам
-НЕ редактировать backend файлы (`backend/`, `tradein-mvp/backend/`)
-НЕ менять API contracts (escalate в scope/backend через analyst)
- ✅ Design tokens только из `.claude/rules/ui-tokens.md`
- ✅ safeUrl для href из API
- ✅ Isolation:worktree обязательна
## Готов?
После pre-flight OK — `/loop dynamic`.