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.
2.7 KiB
2.7 KiB
| name | description |
|---|---|
| work-as-frontend | Запустить окно как 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, только изменить две строки:
$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:
- Kill-switch check
- PICKUP (fixup приоритетнее): сначала свои
scope/frontend status/needs-fix(assignee=я) → FIXUP MODE (step 11); иначеscope/frontend status/readyбез assignee - Claim — только для нового issue
- CONTEXT LOAD (MANDATORY, work-tick only): Read
.claude/agents/frontend-engineer.mdПОЛНОСТЬЮ +.claude/rules/frontend.md/ui-tokens.md/ui-conventions.md/git-pr.mdobsidian_simple_searchпо теме. Пропуск = broken PR. На idle НЕ читаю.
- Worktree +
cd frontend/илиtradein-mvp/frontend/ - Если
package.jsonchanged →npm install(lockfile sync) - Implement: TS strict без
any, TanStack Query, safeUrl validator - Lint + type-check + build:
npm run lint,npm run type-check,npm run build - Commit с bot identity, push через
forgejo-botremote - PR + status/review
- 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.