一键导入
exec-impl-plan-ref
Use when executing tasks from implementation plans. Provides task selection, parallel execution, progress tracking, and review cycle guidelines.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when executing tasks from implementation plans. Provides task selection, parallel execution, progress tracking, and review cycle guidelines.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Execute QraftBox release operations end-to-end using Taskfile tasks, including GitHub Release and npm publish. Use when users ask to release, publish a version, or run post-merge release operations.
Use when writing TypeScript code that interacts with dependencies, handles credentials, executes child processes, or manages configuration. Provides Shai-Hulud supply chain attack countermeasures at the code level including safe dependency usage, credential handling, subprocess hardening, and runtime integrity patterns.
Use when installing, updating, or auditing npm dependencies with Bun. Provides Shai-Hulud supply chain attack countermeasures including bunfig.toml hardening, lockfile verification, trustedDependencies management, and CI/CD pipeline security.
Use when creating, publishing, or maintaining npm packages with Bun. Provides Shai-Hulud supply chain attack countermeasures including npm token management, 2FA enforcement, provenance signing, trusted publishing via GitHub Actions, and pre-publish security checklists.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
Use when creating or organizing design documents. Provides directory structure, file naming, and content guidelines for design specs and references.
| name | exec-impl-plan-ref |
| description | Use when executing tasks from implementation plans. Provides task selection, parallel execution, progress tracking, and review cycle guidelines. |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, Task, TaskOutput |
This skill provides guidelines for executing implementation plans created by the impl-plan agent.
Apply this skill when:
impl-plans/This skill bridges implementation plans (what to build) and actual code implementation. It provides:
NEVER read all plan files at once. This causes context overflow (>200K tokens).
Use impl-plans/PROGRESS.json instead, which contains:
Workflow:
PROGRESS.json (~2K tokens) to find executable tasksimpl-exec-specific updates the plan file immediatelyPROGRESS.json after impl-exec-specific completesClear ownership to avoid conflicts:
impl-exec-specific agent: Updates plan file (task status, progress log)Lock file path: impl-plans/.progress.lock
Before updating PROGRESS.json:
# Acquire lock (retry if busy)
while [ -f impl-plans/.progress.lock ]; do sleep 1; done
echo "<plan-name>:<TASK-ID>" > impl-plans/.progress.lock
After updating PROGRESS.json:
# Release lock
rm -f impl-plans/.progress.lock
This prevents race conditions when multiple conversations update concurrently.
{
"lastUpdated": "2026-01-06T16:00:00Z",
"phases": {
"1": { "status": "COMPLETED" },
"2": { "status": "READY" },
"3": { "status": "BLOCKED" },
"4": { "status": "BLOCKED" }
},
"plans": {
"session-groups-types": {
"phase": 2,
"status": "Ready",
"tasks": {
"TASK-001": { "status": "Not Started", "parallelizable": true, "deps": [] },
"TASK-002": { "status": "Not Started", "parallelizable": true, "deps": [] },
"TASK-007": { "status": "Not Started", "parallelizable": false, "deps": ["TASK-001"] }
}
}
}
}
"TASK-001" (task in same plan)"session-groups-types:TASK-001" (task in different plan)Two execution modes are available:
impl-exec-auto)Architecture: Analysis-only subagent + Main conversation orchestration via impl-exec-specific.
Claude Code does not support nested subagent spawning (subagents cannot use Task tool). Therefore:
impl-exec-auto agent: Analyzes plans and returns executable task listimpl-exec-specific to execute tasks (NOT direct ts-coding spawning)Cross-Plan Mode (no argument - recommended):
/impl-exec-auto
Analyzes ALL active plans and returns executable tasks across plans.
Single-Plan Mode (with argument):
/impl-exec-auto foundation-and-core
Focuses on one specific plan only.
Use this mode when:
The auto mode workflow:
Step 1: impl-exec-auto agent (analysis only):
impl-plans/PROGRESS.jsonStep 2: Main conversation (orchestration via impl-exec-specific):
impl-exec-specific with task IDs
b. impl-exec-specific handles: ts-coding, check-and-test, ts-review cycle, plan updatesimpl-exec-specific completes:
a. Updates PROGRESS.json status (with lock)
b. Reports completion and newly unblocked tasksWhy impl-exec-specific?
impl-exec-specific)Executes specific tasks by ID:
/impl-exec-specific foundation-and-core TASK-001 TASK-002
Use this mode when:
impl-plans/<plan-name>.mdSelect tasks for execution based on:
| Criterion | Priority | Rationale |
|---|---|---|
| Dependencies satisfied | Required | Cannot start blocked tasks |
| Marked as parallelizable | High | Can run concurrently |
| Small estimated effort | Medium | Quick wins build momentum |
| Foundation/core tasks | High | Unblock other tasks |
Execute tasks one at a time to avoid LLM errors:
run_in_background)Applies to: Tasks that affect UI rendering, client components, CSS, API responses consumed by the UI, or any client-side behavior. Skip for pure backend/library tasks.
After check-and-test-after-modify passes, the main conversation (not subagents) runs browser verification using agent-browser:
# 1. Ensure dev server is running (Playwright webServer or manual)
agent-browser open http://localhost:7155
# 2. Navigate to the area affected by the change
agent-browser snapshot -i
agent-browser click @eN # Navigate to relevant area
agent-browser wait --load networkidle
# 3. Verify the UI
agent-browser snapshot -i # Inspect DOM structure
agent-browser screenshot --full # Capture visual state
agent-browser get text @eN # Check specific content
# 4. Close
agent-browser close
If UI issues are found: Loop back to fix:
Browser Verify --> Issues found
|
v
ts-coding (fix the UI issue)
|
v
check-and-test-after-modify (ensure no regressions)
|
v
Browser Verify (confirm fix)
|
+-- Fixed --> Continue to ts-review
+-- Still broken --> Loop (max 3 iterations)
Cycle limit: Maximum 3 verify-fix iterations. After 3 cycles, document remaining UI issues in progress log and proceed.
Reference: See .claude/skills/e2e-tdd/SKILL.md for detailed browser verification workflows.
CRITICAL: Execute this phase IMMEDIATELY after each task completes. DO NOT batch updates.
Responsibility Split (when using impl-exec-specific):
impl-exec-specific agent: Updates plan file onlyAfter task execution (within impl-exec-specific):
Update task status in the plan file:
Add progress log entry to plan file:
### Session: YYYY-MM-DD HH:MM
**Tasks Completed**: TASK-001, TASK-002
**Tasks In Progress**: TASK-003
**Blockers**: None
**Notes**: Implementation notes and decisions made
Check completion criteria for the overall plan
Update plan status in PROGRESS.json if all tasks done (set to "Completed")
NOTE: PROGRESS.json is updated by main conversation after impl-exec-specific completes. See "Main Conversation Orchestration Protocol" section for details.
No file move is required. PROGRESS.json is the single source of truth for plan status.
When invoking the ts-coding agent for a task:
Task tool parameters:
subagent_type: ts-coding
prompt: |
Purpose: <task description from implementation plan>
Reference Document: impl-plans/<plan-name>.md
Implementation Target: <deliverables list>
Completion Criteria:
- <criterion 1 from task>
- <criterion 2 from task>
- <criterion N from task>
run_in_background: true # For parallel execution of independent tasks
Note: Use run_in_background: true only when executing multiple independent tasks in parallel. Omit for sequential execution.
Extract prompt content from the task structure in the implementation plan:
### TASK-001: Core Interfaces
**Status**: Not Started
**Parallelizable**: Yes
**Deliverables**: <- Use for Implementation Target
- `src/interfaces/filesystem.ts`
- `src/interfaces/process-manager.ts`
**Description**: <- Use for Purpose
Define all core interfaces for abstracting external dependencies.
**Completion Criteria**: <- Use for Completion Criteria
- [ ] FileSystem interface defined
- [ ] ProcessManager interface defined
- [ ] Type checking passes
CRITICAL: Execute tasks ONE AT A TIME to avoid LLM errors.
For each task in the executable tasks list:
1. Invoke ts-coding (without run_in_background):
Task tool parameters:
subagent_type: ts-coding
prompt: |
Purpose: <TASK-001 description>
Reference Document: <implementation-plan-path>
Implementation Target: <TASK-001 deliverables>
Completion Criteria:
- <criterion 1>
- <criterion 2>
2. Wait for ts-coding to complete
3. Run check-and-test-after-modify:
Task tool parameters:
subagent_type: check-and-test-after-modify
prompt: |
Verify changes for TASK-001
4. Browser verify (for UI-affecting tasks):
Main conversation runs agent-browser commands directly:
agent-browser open http://localhost:7155
agent-browser snapshot -i
agent-browser screenshot --full
agent-browser close
If UI issues found: fix with ts-coding -> re-test -> re-verify (max 3 loops)
5. Run ts-review (up to 3 iterations):
Task tool parameters:
subagent_type: ts-review
prompt: |
Review TASK-001 implementation
6. Update task status in plan
7. Proceed to TASK-002 (repeat steps 1-6)
All tasks run sequentially - each task completes fully (including browser verify + review) before the next begins.
After each task completes:
Parse dependencies from plan:
**Parallelizable**: No (depends on TASK-001)
or
**Parallelizable**: No (depends on TASK-001, TASK-002)
| Type | Example | Resolution |
|---|---|---|
| Data dependency | Types must exist before using them | Execute sequentially |
| File dependency | Interface before implementation | Execute sequentially |
| None | Independent modules | Execute in parallel |
TASK-001 (Interfaces) TASK-002 (Errors) TASK-003 (Types)
| | |
+----------+---------------+ |
| |
TASK-004 (Mocks) TASK-007 (Repo Interfaces)
From this graph:
NOTE: To avoid LLM errors, all tasks now execute sequentially regardless of parallelization markers.
The "Parallelizable: Yes" marker is still used to:
When multiple tasks are executable, prefer this order:
| Status | Meaning |
|---|---|
Not Started | Task not yet begun |
In Progress | Currently being implemented |
Completed | All completion criteria met |
Blocked | Waiting on dependencies |
## Module Status
| Module | File Path | Status | Tests |
|--------|-----------|--------|-------|
| Core Interfaces | `src/interfaces/*.ts` | Completed | Pass |
| Error Types | `src/errors.ts` | In Progress | - |
| Mock Implementations | `src/test/mocks/*.ts` | Not Started | - |
### Session: 2026-01-04 14:30
**Tasks Completed**: TASK-001, TASK-002
**Tasks Started**: TASK-004
**Blockers**: None
**Notes**:
- Defined FileSystem, ProcessManager, Clock interfaces
- Added Result type with ok/err helpers
- Discovered need for additional WatchOptions type
A task is complete when:
bun run typecheck)A plan is complete when:
When a plan is complete:
impl-plans/README.md (move plan entry to Completed section if applicable)No file move is required. PROGRESS.json tracks plan completion status.
After task implementation and testing, each task goes through a code review cycle using the ts-review agent.
ts-coding agent (implementation)
|
v
check-and-test-after-modify agent (tests pass)
|
v
ts-review agent (iteration 1)
|
+-- APPROVED --> Task complete
|
+-- CHANGES_REQUESTED --> ts-coding (fixes) --> check-and-test --> ts-review (iteration 2)
|
+-- ... (up to 3 iterations)
The review cycle is limited to 3 iterations per task to prevent infinite loops:
| Iteration | Review Scope | Outcome |
|---|---|---|
| 1 | Full comprehensive review | APPROVED or CHANGES_REQUESTED |
| 2 | Focus on previous issues + new issues from fixes | APPROVED or CHANGES_REQUESTED |
| 3 | Critical issues only | APPROVED (with documented remaining issues) |
Task tool parameters:
subagent_type: ts-review
prompt: |
Design Reference: <path to design document>
Implementation Plan: impl-plans/<plan-name>.md
Task ID: TASK-XXX
Implemented Files:
- <file path 1>
- <file path 2>
Iteration: 1
Task tool parameters:
subagent_type: ts-review
prompt: |
Design Reference: <path to design document>
Implementation Plan: impl-plans/<plan-name>.md
Task ID: TASK-XXX
Implemented Files:
- <file path 1>
- <file path 2>
Iteration: 2
Previous Feedback:
- C1: Missing readonly modifiers
- S1: Duplicate validation logic
Focus Areas: readonly modifiers, duplicate validation
If APPROVED:
If CHANGES_REQUESTED:
When re-invoking ts-coding to fix review issues:
Task tool parameters:
subagent_type: ts-coding
prompt: |
Purpose: Fix code review issues for TASK-XXX
Reference Document: impl-plans/<plan-name>.md
Implementation Target: Fix the following review issues
Issues to Fix:
- C1 (Critical): src/foo.ts:25 - Missing required method X
Suggested Fix: Add method X per design spec section Y
- C2 (Critical): src/bar.ts:42 - Using `any` type
Suggested Fix: Replace with `unknown` and add type guard
- S1 (Improvement): src/foo.ts:30,45 - Duplicate validation logic
Suggested Fix: Extract to shared validateX function
Completion Criteria:
- All critical issues (C1, C2) are resolved
- Improvement suggestions addressed where reasonable
- Type checking passes
- Tests pass
### Session: 2026-01-04 14:30
**Tasks Completed**: TASK-001
**Review Iterations**: 2
**Review Summary**:
- Iteration 1: 2 critical issues, 1 improvement suggestion
- Iteration 2: APPROVED (all issues resolved)
**Notes**:
- Fixed missing readonly modifiers
- Extracted duplicate validation to shared utility
If a ts-coding agent fails:
If only some tasks complete:
| Action | Tool | Parameters |
|---|---|---|
| Read plan | Read | impl-plans/<plan>.md |
| Execute task | Task | subagent_type: ts-coding (NO run_in_background) |
| Run tests | Task | subagent_type: check-and-test-after-modify |
| Review code | Task | subagent_type: ts-review |
| Update plan | Edit | Update status, checkboxes, log |
| Update progress | Edit | Update PROGRESS.json task/plan status |
## Implementation Plan Completed
### Plan
`impl-plans/<plan-name>.md`
### Final Verification
- Type checking: Pass
- Tests: Pass (X/X)
### Plan Finalization
- Plan file status updated to: Completed
- PROGRESS.json status updated to: Completed
- README.md updated
### Next Steps
- Review completed implementation
- Consider integration testing
- Proceed to next implementation plan
### Failure Details
**TASK-XXX Failure**:
- Error: <error type>
- Details: <specific error message>
- Files affected: <file paths>
### Recommended Actions
1. Review failure details
2. Fix the issue
3. Re-run with: `/impl-exec-specific <plan-name> TASK-XXX`
check-and-test-after-modifyts-review for code review (max 3 iterations)When running /impl-exec-auto without arguments, the system analyzes active plans with lazy loading to prevent OOM.
DO NOT read all plan files. Only read plans from eligible phases.
impl-plans/README.md FIRST# Step 1: From README.md, get phase status
PHASE_STATUS = {
1: "COMPLETED",
2: "READY", # Only this phase is eligible
3: "BLOCKED",
4: "BLOCKED"
}
# Step 2: Get plan list for eligible phases from PHASE_TO_PLANS
eligible_phases = [p for p, s in PHASE_STATUS.items() if s == "READY"]
plans_to_read = PHASE_TO_PLANS[eligible_phases[0]] # Only Phase 2 plans
# Step 3: Read ONLY these plans (12 files, not 25)
# DO NOT read Phase 3/4 plans - they are BLOCKED
From impl-plans/README.md:
Phase 1: foundation-* (COMPLETED)
|
v
Phase 2: session-groups-*, command-queue-*, markdown-parser-*,
realtime-*, bookmarks-*, file-changes-*
| (can run in parallel with each other)
v
Phase 3: daemon-core, http-api, sse-events
|
v
Phase 4: browser-viewer-*, cli-*
When updating plans after cross-plan execution:
When a phase-gating plan completes (e.g., foundation-and-core):
/impl-exec-auto again for next phase| Skill/Agent | Relationship |
|---|---|
impl-plan/SKILL.md | Read plans created by this skill |
ts-coding-standards/ | ts-coding agent follows these |
design-doc/SKILL.md | Original design reference |
ts-review agent | Code review after implementation |
check-and-test-after-modify agent | Test verification before review |
After impl-exec-auto returns the executable tasks list, the main conversation handles orchestration via impl-exec-specific.
IMPORTANT: DO NOT spawn ts-coding agents directly from the main conversation. Use impl-exec-specific instead.
1. Receive executable tasks list from impl-exec-auto
2. Group tasks by plan name
3. For each plan with executable tasks:
a. Invoke impl-exec-specific:
/impl-exec-specific <plan-name> <TASK-IDs>
Example:
/impl-exec-specific session-groups-runner TASK-008
/impl-exec-specific command-queue-core TASK-005 TASK-006
/impl-exec-specific bookmarks-types TASK-003 TASK-004
b. impl-exec-specific handles internally:
- ts-coding spawning
- check-and-test-after-modify
- ts-review cycle (up to 3 iterations)
- Plan file status updates
4. After impl-exec-specific completes:
a. Update PROGRESS.json (with lock)
b. Report results
5. Repeat for remaining plans/tasks
| Approach | Problem |
|---|---|
| Main spawns ts-coding directly | Main lacks review cycle logic, plan update format |
| impl-exec-auto spawns ts-coding | Claude Code prohibits nested subagent spawning |
| Main invokes impl-exec-specific | Correct - full implementation cycle handled |
1. Acquire lock:
Bash: while [ -f impl-plans/.progress.lock ]; do sleep 1; done && echo "<plan>:<task>" > impl-plans/.progress.lock
2. Edit PROGRESS.json:
// Before:
"TASK-001": { "status": "Not Started", "parallelizable": true, "deps": [] }
// After:
"TASK-001": { "status": "Completed", "parallelizable": true, "deps": [] }
Also update `lastUpdated` timestamp.
3. Release lock:
Bash: rm -f impl-plans/.progress.lock
The impl-exec-auto analysis found 9 executable tasks across 6 plans.
Executing via impl-exec-specific:
1. /impl-exec-specific session-groups-runner TASK-008
Result: TASK-008 completed (2 review iterations)
2. /impl-exec-specific command-queue-core TASK-005 TASK-006
Result: TASK-005, TASK-006 completed
3. /impl-exec-specific markdown-parser-core TASK-004
Result: TASK-004 completed
... (continue for remaining plans)
All 9 tasks completed. PROGRESS.json updated.
Newly unblocked tasks: TASK-009, TASK-010
If impl-exec-specific reports a task failure:
/impl-exec-specific <plan-name> <failed-task-id>