gendesign/.claude/commands/work-as-frontend.md
lekss361 297eb29d65 feat(claude): env-vars refactor + stale-claim cron (Phase 2 finalization)
#11: slash-commands и _autonomous_pickup.md теперь читают persistent User-scope
env vars напрямую (FORGEJO_TOKEN_<ROLE>) вместо file-based из ~/.claude/secrets/.

Один раз: scripts/setup-bot-env.ps1 (запускается user'ом локально, кладёт
токены из vault в Windows User registry). После этого окна grab credentials
через [System.Environment]::GetEnvironmentVariable() — никаких файлов.

Все 5 work-as-*.md обновлены (analyst/backend/frontend/reviewer/qa).

#12: stale-claim cleanup — cron каждые 30 минут.

- scripts/cleanup-stale-claims.sh — bash, parses Forgejo API + Python для JSON
- .forgejo/workflows/stale-claims.yml — cron schedule `*/30 * * * *`

Освобождает issues застрявшие в status/wip >4h:
  - assignees=[]
  - +status/ready -status/wip
  - comment "stale claim released, worker likely crashed"

Использует secret FORGEJO_BOT_QA_TOKEN (минимум прав = write:issue).

Setup: secret нужно завести в Forgejo Actions UI после merge —
git.gendsgn.ru/lekss361/gendesign/-/settings/actions/secrets.

Refs: PRs #608, #609. Closes TODO с PR #608 (stale-claim cron).
2026-05-28 00:24:45 +03:00

1.9 KiB
Raw Blame History

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:

  1. Kill-switch check
  2. GET issues scope/frontend status/ready без assignee
  3. Claim
  4. Worktree + cd frontend/ или tradein-mvp/frontend/
  5. Если package.json changed → npm install (lockfile sync)
  6. Implement: TS strict без any, TanStack Query, safeUrl validator
  7. Lint + type-check + build: npm run lint, npm run type-check, npm run build
  8. Commit с bot identity, push через forgejo-bot remote
  9. PR + status/review

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.