---
name: iterate-implementation
description: Only use when the user explicitly invokes this skill by name.
disable-model-invocation: true
---
Source: apps/riptide-rpi-claude-plugin/skills/iterate-implementation/SKILL.md @ f9bd73534a9fb7099a274f951b698b1297122fd9
The first mate runs this phase.
# Iterate Implementation
An implementation plan was implemented and a user has follow-on feedback - it might be a bug, it might be further changes or tweaks, it might be a follow-on feature to implement in the same branch
## Steps
1. **Read all input files FULLY**:
- Use Read tool WITHOUT limit/offset to read the plan document and any other provided paths
- If a ticket like ENG-1234 or a task is mentioned, find the task directory: `ls -La the task's folder/ | grep -i TEAMID-XXX` - you must use Bash(ls | grep) for this as your glob/grep tools don't traverse symlinks
- `ls -La the task's folder/TASKNAME` to find all related documents in the task directory. Do NOT use the grep or glob tools or `ls` without `-L` or with a lowercase `-l` as the directory may be a symlink.
- Read the plan file (e.g. `NN-plan-DESCRIPTION.md`) to understand the work that was prescribed
- Read prior artifacts in the task directory for context: `ticket.md` or `task.md`, research documents, design discussion, and structure outline
- **If no plan exists**, read the ticket, structure outline, design discussion, and research documents instead
2. **Understand the current state**
- check the current git diff
- find the commit that marks the end of implementation
- read and understand and commits since then - the content of what changed
- understand what phases of the plan were already implemented - the user might be giving you feedback in the middle of a plan implementation
- **If the user wants to implement an unstarted phase**: use `Agent` tool with `subagent_type: "rpi:implementer-agent"` — don't implement phases inline. Example prompt when no plan exists:
Implement Phase [N] from the structure outline at [outline path]
Companion documents (read these for context):
- Research: [research path]
- Design discussion: [design path]
Structure outline takes precedence if documents conflict.
3. **If the user gives any input**:
- DO NOT just accept the correction blindly
- Read the specific files/directories they mention
- Verify code examples and file paths are accurate
- Only proceed once you've verified the facts yourself
4. **Clarify the feedback**:
- If user reported a bug: check the database, ask for relevant logs, do whatever is needed to understand what still needs to be done
- If user requested code changes: Update the specific code examples
- If there are multiple approaches to fix, ask the user for any clarification
- If more logs are needed, add logging and ask the user to reproduce issue and share the updated logs
5. **Apply the Fix** :
- if the fix is clear or the user has accept one of your proposed solutions, make the changes
- make the changes
- run testing and linting
6. **Update the user**
- Respond following the template exactly. Include next steps for verification.
## Cloud Permalinks
When you write or edit documents in the task's folder/, a cloud permalink is automatically provided in the hook response.
- The permalink appears as `additionalContext` after Write/Edit/MultiEdit/Read operations
- Use this permalink in your final output for easy navigation
- Example format: `http(s)://{DOMAIN}/artifacts/{artifactId}`
## Markdown Formatting
When writing markdown files that contain code blocks showing other markdown (like README examples or SKILL.md templates), use 4 backticks (````) for the outer fence so inner 3-backtick code blocks don't prematurely close it:
````markdown
# Example README
## Installation
```bash
npm install example
```
````
## When Iteration is Complete
If the iteration resolves all issues and no further changes are needed:
1. Read the final output template:
`Read({SKILLBASE}/references/iterate_implementation_final_answer.md)`
2. Respond following the template exactly. Do not include a summary or other information.