Skill: front-agent
Trigger: /front-agent [request]
Purpose: Handle setup, intent detection, planning, execution, and verification with minimal context overhead.
Canonical Rules
- This file is the canonical runtime workflow
README.mdis documentation only and should not be loaded during executionfront-agentnever implements directly- Use only active merged agents:
component-auditor,developer,ui-builder,api-integrator,test-runner,reviewer,refactor-architect - Do not use legacy agents:
implementer,test-writer,figma-builder,style-matcher,orchestrator
Request Gate
0. RTK Mode Gate
Resolve the rtk token-filter mode before any agent spawn. This is plugin-scoped — no global Claude Code hook is installed, so every other project is unaffected.
Resolution order:
- Inline arg — if the user message contains
--rtk=<mode>or--no-rtk, persist it withbash hooks/rtk-wrap.sh --set <mode>(useofffor--no-rtk). Skip UI. - Env var — if
FE_COPILOT_RTKis set, do nothing. It is a hard override. - Session flag — if
.fe-copilot-cache/rtk-session.flagalready exists, reuse it. - Otherwise — launch the
AskUserQuestiontool with a single question:- Question:
이 작업에서 rtk로 명령 출력을 압축할까요? - Options:
Off — raw 명령 그대로 (기본 동작)On — standard (git/tsc/lint/test 압축) (Recommended)On — aggressive (+ ultra-compact)On — git-only (git 계열만 압축)
- After answer, call
bash hooks/rtk-wrap.sh --set <mode>where mode isoff | standard | aggressive | git-only.
- Question:
Valid mode strings: off, standard, aggressive, git-only. Anything else must be rejected with a one-line error.
The user can re-run /rtk at any time to change the mode mid-session.
1. Lazy Setup
If knowledge/index.md is missing, initialize project knowledge automatically.
Do not ask the user to run /setup.
2. Ambiguity Check
Ask a clarification question before planning if any of the following apply:
- The target is unclear
- Scope is overly broad
- The request mixes multiple major tasks
- "Optimize" or "improve" does not specify what dimension matters
Rules:
- Ask at most 2 questions
- Ask only for missing information that blocks planning
3. Intent Classification
| Intent | Detection rule | Workflow |
|---|---|---|
figma | Contains a figma.com URL | Figma implementation |
ui | Contains Korean UI terms such as 만들어줘, 폼, 버튼, 페이지, 화면, 컴포넌트 | UI without design file unless a Figma URL is provided |
feature | Contains Korean feature terms such as 기능, 추가, 연결, API, 로직 | Feature implementation |
refactor | Contains Korean refactor terms such as 리팩토링, 정리, 개선, 중복 | Refactoring |
review | Contains Korean review terms such as 리뷰, 검토, 확인해줘 | Code review |
4. Figma Check
If intent is ui and no Figma URL is present, ask for one in the user's language.
- URL provided ->
figma - No URL ->
ui
5. API Spec Check
Trigger: intent is feature AND request contains any API keyword:
fetch, axios, API, GraphQL, query, mutation, Apollo, WebSocket, endpoint, 서버, 백엔드, 연결, 데이터, 불러와, 저장, 실시간
If triggered, ask once in the user's language:
"Do you have an API spec? (Swagger/OpenAPI URL, GraphQL schema,
.md/.yamlfile, or paste the endpoint directly)"
| Response | Action |
|---|---|
| URL or file provided | Record in plan.md → Inputs.API; fetch on demand in api-integrator step only |
| Endpoint/query pasted directly | Record as-is in plan.md → Inputs.API |
| None available | Ask: "What request/response shape do you expect?" — record the described shape |
Token budget rules:
- Pass API spec only to
api-integrator— never todeveloper,ui-builder, or other agents - If a URL was provided,
api-integratorfetches only the relevant endpoint(s) on demand — do not load the full document upfront
6. Review Fast-Path
If intent is review, skip the Plan Gate entirely and spawn reviewer directly on the current changes. No plan.md, no user approval wait — pure review tasks do not need a plan. The reviewer verdict (PASS/FAIL) is the final output; no commit/push follows.
Applies only when intent is exactly review. Any other intent still goes through the Plan Gate below.
7. Plan Gate
Create plan.md, then wait for explicit user approval before any execution.
Use this format:
markdown# Plan: [task name] ## Goal [what and why] ## Intent [figma / ui / feature / refactor / review] ## Inputs - Figma: [URL or none] - API: [spec, endpoint, or none] ## Affected Files - path/to/file.tsx - [change] ## Design Check - Reuse: [component/hook/util to reuse, or "none — new primitive justified because X"] - Responsibility: [how logic splits across files — e.g. "fetch in hook, render in component, format in util"] - Risk: [conflict with an existing pattern or convention, or "none"] ## Execution Steps - Step 1: [agent] - [task] - Step 2: [agent] - [task] ## Branch [feat|fix|ui|refactor]/[task-name] ## Commit Units - [type]: [description]
Design Check rules:
- Required for
ui,figma,feature,refactor. Omit forreview. - Max 1 line per bullet. No prose paragraphs.
- If
Reusesays "new primitive", the justification must be one concrete reason — not a vague "for flexibility". - Authoring order:
- At plan creation, fill
Reuse / Responsibility / Riskfrom a quick scan + project knowledge. - After
component-auditorruns, update theReuseline in place with the concrete candidates it surfaced. This is a small in-place edit, not a new section. developer/ui-builder/api-integratorread the updatedplan.mdas their canonical Design Check.
- At plan creation, fill
- Do not duplicate the audit list. The Reuse line is the single source of truth.
- This section exists to catch design mistakes BEFORE implementation. It is read by the user during plan approval and re-read by
reviewerduring the design category check.
Ask: Please review plan.md. Approve it and I will execute.
Context Budget
For each agent call, include only:
- The relevant
agents/*.mdfile - The relevant
constraints.mdsections — obtained viabash hooks/extract-constraints.sh <agent-name>. Do not pass the full file. - The minimal
plan.mdexcerpt needed for that step - A compact handoff block
- Only the exact files needed for execution
Compact Handoff Schema
markdown## Handoff - changed_files: path1, path2 - reusable_components: Button, Card - decisions: keep existing filter sidebar pattern - blockers: failing `cart.spec.ts` - test_status: not_run | passed:npm run test | failed:npm run test
Rules:
- Omit empty fields
- Max 5 bullets
- One line per bullet
- No prose summaries
- Prefer paths, identifiers, and commands
Workflow Selection
|| = run in parallel — launch both agents simultaneously and wait for both before proceeding.
Parallel review gate: [reviewer || codex-review] launches both reviewers concurrently on the same changed files. git-commit proceeds only if BOTH return PASS (or the user explicitly overrides codex-review). Any FAIL blocks commit and its fix list feeds the retry loop.
Shared Skip Rules
- Skip
search-knowledgeif stored knowledge is empty or irrelevant. Runbash hooks/knowledge-has-content.sh; exit != 0 means placeholder-only — skip the agent spawn entirely and proceed. component-auditoris MANDATORY for any intent that creates or modifies UI:ui,figma, and anyfeaturewhoseAffected Filesinclude.tsx/.jsxcomponents, hooks, or styles. Skipping in these cases is a workflow violation.- Skip
component-auditoronly when ALL of the following hold:- intent is
review(review fast-path), OR - intent is
featureAND the change touches zero component/hook/style files (pure service/util/API wiring)
- intent is
- Skip
api-integratorunless UI data fetching or mutation behavior changes - Skip
save-knowledgeif the task produced no durable learning
Feature
[search-knowledge? || component-auditor?] -> developer -> test-runner -> api-integrator? -> [reviewer || codex-review] -> git-branch -> git-commit -> git-pr -> save-knowledge?
Figma
[search-knowledge? || component-auditor] -> ui-builder -> [pixel-check || a11y-check] -> [reviewer || codex-review] -> git-branch -> git-commit -> git-pr -> save-knowledge?
UI Without Design
[search-knowledge? || component-auditor] -> ui-builder -> a11y-check -> [reviewer || codex-review] -> git-branch -> git-commit -> git-pr -> save-knowledge?
Refactor
search-knowledge? -> refactor-architect -> user re-approval -> component-auditor? -> developer -> test-runner -> [reviewer || codex-review] -> git-branch -> git-commit -> git-pr -> save-knowledge?
Review
Fast-path: bypasses the Plan Gate (see Request Gate step 6).
reviewer
Harness Loop
Use the retry loop for feature, ui, figma, and refactor implementation steps.
textMAX_ATTEMPTS = 3 run implementation agent run test-runner when applicable if tests fail: retry with only the failing error context if attempts exceed MAX_ATTEMPTS: create a git issue record a repeatable failure pattern if appropriate stop and report
Retry context must contain only:
- failing command
- failing file/test identifier
- shortest useful error excerpt
Never resend the full previous transcript.
Completion
- Never declare completion without test evidence when tests are applicable
- Never move to
git-commitwithout reviewer PASS - Save knowledge only if a reusable pattern, decision, or repeatable issue emerged


