Execute implementation tasks from the current plan. Works through tasks sequentially, marks completion, and preserves progress for continuation across sessions. Use when user says "implement", "start coding", "execute plan", or "continue implementation".
Execute tasks from the plan, track progress, and enable session continuation.
FIRST: Determine what state we're in:
1. Parse arguments:
- --list → list available plans only (no implementation; STOP)
- @<path> → explicit plan file override (highest priority)
- <number> → start from specific task
- status → status-only mode
2. Check for uncommitted changes (git status)
3. Check current branch
--list)If $ARGUMENTS contains --list, run read-only plan discovery and stop.
1. Get current branch:
git branch --show-current
2. Convert branch to filename: replace "/" with "-", add ".md"
3. Check existence of:
- .ai-factory/plans/<branch-name>.md
- .ai-factory/PLAN.md
- .ai-factory/FIX_PLAN.md
4. Print plan availability summary and usage hints
5. STOP.
Important: In --list mode:
For detailed output format and examples, see:
skills/aif-implement/references/IMPLEMENTATION-GUIDE.md → "List Available Plans (--list)"If the user is resuming the next day, says the session was abandoned, or you suspect context was lost (e.g. after /clear), rebuild local context from the repo before continuing tasks:
1. git status
2. git branch --show-current
3. git log --oneline --decorate -20
4. (optional) git diff --stat
5. (optional) git stash list
Then reconcile plan/task state:
@plan-file override wins; otherwise branch-named plan takes priority over PLAN.md).TaskList statuses vs plan checkboxes.
TaskUpdate(..., status: "completed") and update the plan checkbox.If uncommitted changes exist:
You have uncommitted changes. Commit them first?
- [ ] Yes, commit now (/aif-commit)
- [ ] No, stash and continue
- [ ] Cancel
If NO plan file exists but .ai-factory/FIX_PLAN.md exists:
A fix plan was created by /aif-fix in plan mode. Redirect to fix workflow:
Found a fix plan (.ai-factory/FIX_PLAN.md).
This plan was created by /aif-fix and should be executed through the fix workflow
(it creates a patch and handles cleanup automatically).
Running /aif-fix to execute the plan...
→ Invoke /aif-fix (without arguments — it will detect FIX_PLAN.md and execute it).
→ STOP — do not continue with implement workflow.
If NO plan file exists AND no FIX_PLAN.md (all tasks completed or fresh start):
No active plan found.
Current branch: feature/user-auth
What would you like to do?
- [ ] Start new feature from current branch
- [ ] Return to main/master and start new feature
- [ ] Create quick task plan (no branch)
- [ ] Nothing, just checking status
Based on choice:
/aif-plan full <description>git checkout main, then git pull → /aif-plan full <description>/aif-plan fast <description>If plan file exists → continue to Step 0.1
Read .ai-factory/DESCRIPTION.md if it exists to understand:
Read .ai-factory/ARCHITECTURE.md if it exists to understand:
Read .ai-factory/RULES.md if it exists:
Read .ai-factory/skill-context/aif-implement/SKILL.md — MANDATORY if the file exists.
This file contains project-specific rules accumulated by /aif-evolve from patches,
codebase conventions, and tech-stack analysis. These rules are tailored to the current project.
How to apply skill-context rules:
Enforcement: After generating any output artifact, verify it against all skill-context rules. If any rule is violated — fix the output before presenting it to the user.
Patch fallback (limited, only when skill-context is missing):
.ai-factory/skill-context/aif-implement/SKILL.md does not exist and .ai-factory/patches/ exists:
Glob to find *.md files in .ai-factory/patches/Use this context when implementing:
If $ARGUMENTS contains @<path>:
Use this explicit plan file and skip automatic plan discovery.
1. Extract path after "@"
2. Resolve relative to project root (absolute paths are also valid)
3. If file does not exist:
"Plan file not found: <path>
Provide an existing markdown plan file, for example:
- /aif-implement @.ai-factory/PLAN.md
- /aif-implement @.ai-factory/plans/feature-user-auth.md"
→ STOP
4. If file is .ai-factory/FIX_PLAN.md:
→ invoke /aif-fix (ownership + cleanup workflow) and STOP
5. Otherwise use this file as the active plan
Then continue with normal execution using the selected plan file.
If no @<path> override is provided, check plan files in this order:
Check for plan files in this order:
1. Check current git branch:
git branch --show-current
→ Convert branch name to filename: replace "/" with "-", add ".md"
→ Look for .ai-factory/plans/<branch-name>.md (e.g., feature/user-auth → .ai-factory/plans/feature-user-auth.md)
2. No branch-based plan → Check .ai-factory/PLAN.md
3. No branch-based plan and no .ai-factory/PLAN.md → Check .ai-factory/FIX_PLAN.md
→ If exists: invoke /aif-fix (handles its own workflow with patches) and STOP
Priority:
@<path> argument - explicit user-selected plan file/aif-plan full) - if it matches current branch.ai-factory/PLAN.md (from /aif-plan fast) - fallback when no branch-based plan exists.ai-factory/FIX_PLAN.md - redirect to /aif-fix (from /aif-fix plan mode)Read the plan file to understand:
- [ ] / - [x]) to keep progress syncedTaskList → Get all tasks with status
Find:
## Implementation Progress
✅ Completed: 3/8 tasks
🔄 In Progress: Task #4 - Implement search service
⏳ Pending: 4 tasks
Current task: #4 - Implement search service
For each task:
3.1: Fetch full details
TaskGet(taskId) → Get description, files, context
3.2: Mark as in_progress
TaskUpdate(taskId, status: "in_progress")
3.3: Implement the task
3.4: Verify implementation
3.5: Mark as completed
TaskUpdate(taskId, status: "completed")
3.6: Update checkbox in plan file
IMMEDIATELY after completing a task, update the checkbox in the plan file:
# Before
- [ ] Task 1: Create user model
# After
- [x] Task 1: Create user model
This is MANDATORY — checkboxes must reflect actual progress:
Edit tool to change - [ ] to - [x]3.7: Update .ai-factory/DESCRIPTION.md if needed
If during implementation:
→ Update .ai-factory/DESCRIPTION.md to reflect the change:
## Tech Stack
- **Cache:** Redis (added for session storage)
This keeps .ai-factory/DESCRIPTION.md as the source of truth.
3.7.1: Update AGENTS.md and ARCHITECTURE.md if project structure changed
If during implementation:
src/modules/, new API routes directory, etc.)→ Update AGENTS.md — refresh the "Project Structure" tree and "Key Entry Points" table to reflect new directories/files.
→ Update .ai-factory/ARCHITECTURE.md — if new modules or layers were added that should be documented in the folder structure section.
Only update if structure actually changed — don't rewrite on every task. Check if new directories were created that aren't in the current structure map.
3.8: Check for commit checkpoint
If the plan has commit checkpoints and current task is at a checkpoint:
✅ Tasks 1-4 completed.
This is a commit checkpoint. Ready to commit?
Suggested message: "feat: add base models and types"
- [ ] Yes, commit now (/aif-commit)
- [ ] No, continue to next task
- [ ] Skip all commit checkpoints
3.9: Move to next task or pause
Progress is automatically saved via TaskUpdate.
To pause:
Current progress saved.
Completed: 4/8 tasks
Next task: #5 - Add pagination support
To resume later, run:
/aif-implement
To resume (next session):
/aif-implement
→ Automatically finds next incomplete task
When all tasks are done:
## Implementation Complete
All 8 tasks completed.
Branch: feature/product-search
Plan file: .ai-factory/plans/feature-product-search.md
Files modified:
- src/services/search.ts (created)
- src/api/products/search.ts (created)
- src/types/search.ts (created)
Documentation: updated existing docs | created docs/<feature-slug>.md | skipped by user | warn-only (Docs: no/unset)
What's next?
1. 🔍 /aif-verify — Verify nothing was missed (recommended)
2. 💾 /aif-commit — Commit the changes directly
Check ROADMAP.md progress:
If .ai-factory/ROADMAP.md exists:
## Roadmap Linkage with a non-none milestone, prefer that milestone for completion marking[x] and add entry to the Completed table with today's dateOnly do this step when there is something concrete to capture.
DESCRIPTION.md (allowed in this command):
.ai-factory/DESCRIPTION.md with factual deltas only.ARCHITECTURE.md + AGENTS.md (allowed in this command):
.ai-factory/ARCHITECTURE.md to reflect the new structure and constraints.AGENTS.md structure maps or entry points, refresh them only when they are now incorrect.ROADMAP.md (allowed, limited):
WARN [roadmap] ... and suggest the owner command:
/aif-roadmap check/aif-roadmap <short update request>RULES.md (NOT allowed in this command):
.ai-factory/RULES.md from /aif-implement./aif-rules./aif-rules automatically (it is user-invoked).If candidate rules exist:
AskUserQuestion: Capture new project rules in `.ai-factory/RULES.md`?
Options:
1. Yes — output `/aif-rules ...` commands (recommended)
2. No — skip
Context is heavy after implementation. All code changes are saved — suggest freeing space:
AskUserQuestion: Free up context before continuing?
Options:
1. /clear — Full reset (recommended)
2. /compact — Compress history
3. Continue as is
Suggest verification:
AskUserQuestion: All tasks complete. Run verification?
Options:
1. Verify first — Run /aif-verify to check completeness (recommended)
2. Skip to commit — Go straight to /aif-commit
If user chooses "Verify first" → suggest invoking /aif-verify.
If user chooses "Skip to commit" → suggest invoking /aif-commit.
Documentation policy checkpoint (after completion, before plan cleanup):
Read the plan file setting Docs: yes/no.
If plan setting is Docs: yes:
AskUserQuestion: Documentation checkpoint — how should we document this feature?
Options:
1. Update existing docs (recommended) — invoke /aif-docs
2. Create a new feature doc page — invoke /aif-docs with feature-page context
3. Skip documentation
Handling:
/aif-docs to update README/docs based on completed work/aif-docs with context to create docs/<feature-slug>.md, include sections (Summary, Usage/user-facing behavior, Configuration, API/CLI changes, Examples, Troubleshooting, See Also), and add a README docs-table link/aif-docs; emit WARN [docs] Documentation skipped by userIf plan setting is Docs: no or setting is unset:
/aif-docs automaticallyWARN [docs] Docs policy is no/unset; skipping documentation checkpointAlways include documentation outcome in the final completion output:
Documentation: updated existing docsDocumentation: created docs/<feature-slug>.mdDocumentation: skipped by userDocumentation: warn-only (Docs: no/unset)Handle plan file after completion:
If .ai-factory/PLAN.md (from /aif-plan fast):
Would you like to delete .ai-factory/PLAN.md? (It's no longer needed)
- [ ] Yes, delete it
- [ ] No, keep it
If branch-named file (e.g., .ai-factory/plans/feature-user-auth.md):
Check if running in a git worktree:
Detect worktree context:
# If .git is a file (not a directory), we're in a worktree
[ -f .git ]
If we ARE in a worktree, offer to merge back and clean up:
You're working in a parallel worktree.
Branch: <current-branch>
Worktree: <current-directory>
Main repo: <main-repo-path>
Would you like to merge this branch into main and clean up?
- [ ] Yes, merge and clean up (recommended)
- [ ] No, I'll handle it manually
If user chooses "Yes, merge and clean up":
Ensure everything is committed — check git status. If uncommitted changes exist, suggest /aif-commit first and wait.
Get main repo path:
MAIN_REPO=$(git rev-parse --git-common-dir | sed 's|/\.git$||')
BRANCH=$(git branch --show-current)
Switch to main repo:
cd "${MAIN_REPO}"
Merge the branch:
git checkout main
git pull origin main
git merge "${BRANCH}"
If merge conflict occurs:
⚠️ Merge conflict detected. Resolve manually:
cd <main-repo-path>
git merge --abort # to cancel
# or resolve conflicts and git commit
→ STOP here, do not proceed with cleanup.
Remove worktree and branch (only if merge succeeded):
git worktree remove <worktree-path>
git branch -d "${BRANCH}"
Confirm:
✅ Merged and cleaned up!
Branch <branch> merged into main.
Worktree removed.
You're now in: <main-repo-path> (main)
If user chooses "No, I'll handle it manually", show a reminder:
To merge and clean up later:
cd <main-repo-path>
git merge <branch>
/aif-plan --cleanup <branch>
IMPORTANT: NO summary reports, NO analysis documents, NO wrap-up tasks.
/aif-implement
Continues from next incomplete task.
/aif-implement --list
Lists .ai-factory/PLAN.md, .ai-factory/FIX_PLAN.md, and current-branch .ai-factory/plans/<branch>.md (if present), then exits without implementation.
/aif-implement @my-custom-plan.md
/aif-implement @.ai-factory/plans/feature-user-auth.md status
Uses the provided plan file instead of auto-detecting by branch/default files.
/aif-implement 5
Starts from task #5 (useful for skipping or re-doing).
/aif-implement status
Shows progress without executing.
/aif-best-practices guidelines (naming, structure, error handling).ai-factory/ARCHITECTURE.md conventions for file placement and module boundaries.ai-factory/DESCRIPTION.md, .ai-factory/ARCHITECTURE.md, and roadmap milestone completion in .ai-factory/ROADMAP.md when implementation evidence justifies it..ai-factory/RULES.md, .ai-factory/RESEARCH.md.WARN/ERROR outputs only; this does not replace the required verbose implementation logging rules below.For progress display format, blocker handling, session continuity examples, and full flow examples → see references/IMPLEMENTATION-GUIDE.md
- [ ] → - [x] immediately after task completionALWAYS add verbose logging when implementing code. For logging guidelines, patterns, and management requirements → read references/LOGGING-GUIDE.md
Key rules: log function entry/exit, state changes, external calls, error context. Use structured logging, configurable log levels (LOG_LEVEL env var).
DO NOT skip logging to "keep code clean" - verbose logging is REQUIRED during implementation, but MUST be configurable.