full-cycle
<!-- plugin/skills/full-cycle/SKILL.md -->
What this skill does
<!-- plugin/skills/full-cycle/SKILL.md -->
---
name: full-cycle
description: This skill should be used when the user asks for a "full review and fix", "find and fix issues", "review and implement", "end-to-end review", "audit and fix", "comprehensive review", "full-cycle review", or wants experts to find issues AND have them automatically implemented (not just reviewed). Use /mira:experts instead if the user only wants opinions or analysis without code changes.
argument-hint: "[focus area or --discovery-only]"
---
# Full-Cycle Review
> **Requires:** Claude Code Agent Teams feature.
End-to-end expert review with automatic implementation and QA verification.
**Arguments:** $ARGUMENTS
## Instructions
1. **Parse arguments** (optional):
- `--discovery-only` -> Only run Phase 1 (same as `/mira:experts`)
- `--skip-qa` -> Skip Phase 3 QA verification
- `--members nadia,sable` -> Only spawn these specific discovery experts (by first name)
- Any other text -> use as the context/focus for the review
2. **Determine context**: The user's question, the area to review, or the scope of analysis. If no context is obvious, ask the user what they'd like reviewed.
---
### Phase 1: Discovery
3. **Launch discovery team**: Call the Mira `launch` MCP tool to get agent specs:
```
launch(team="expert-review-team", scope=user_context, members="nadia,sable" or omit for all)
```
The `members` parameter is only needed if the user passed `--members`.
4. **Create the team**:
```
TeamCreate(team_name=result.data.suggested_team_id)
```
5. **Create and assign discovery tasks**: For each agent in `result.data.agents`:
```
TaskCreate(subject=agent.task_subject, description=agent.task_description)
TaskUpdate(taskId=id, owner=agent.name, status="in_progress")
```
6. **Spawn discovery experts**: For each agent in `result.data.agents`, use the `Task` tool:
```
Task(
subagent_type="general-purpose",
name=agent.name,
model=agent.model,
team_name=result.data.suggested_team_id,
prompt=agent.prompt + "\n\n## Context\n\n" + user_context,
run_in_background=true
)
```
Spawn all discovery experts in parallel (multiple Task calls in one message).
IMPORTANT: Do NOT use `mode="bypassPermissions"` for discovery agents -- they are read-only explorers.
IMPORTANT: Always pass model="sonnet" to the Task tool. This ensures read-only agents use a cost-efficient model.
7. **Wait for findings**: All discovery experts will send findings via SendMessage. Wait for all to finish, then shut them down.
---
### Phase 2: Synthesis + Implementation
8. **Synthesize findings** into a unified report:
- **Consensus**: Points multiple experts agree on
- **Key findings per expert**: Top findings from each specialist
- **Tensions**: Where experts disagree -- present both sides with evidence
- **Prioritized action items**: Concrete fixes grouped by file ownership
IMPORTANT: Preserve genuine disagreements. Do NOT force consensus.
9. **Present synthesis to user** and WAIT for their approval before proceeding to implementation. Do not auto-proceed.
10. **Launch implementation team**: Call `launch` to get implementation agent specs:
```
launch(team="implement-team", scope=approved_items)
```
11. **Spawn Kai (implementation planner)** from the launch results:
```
Task(
subagent_type="general-purpose",
name="kai",
model=kai_agent.model,
team_name=implement_result.data.suggested_team_id,
prompt=kai_agent.prompt + "\n\n## Approved Findings\n\n" + approved_items,
run_in_background=true
)
```
Kai groups fixes by file ownership, identifies dependencies, and sets max 3-5 fixes per agent.
12. **Spawn implementation agents** based on Kai's work breakdown:
```
Task(
subagent_type="general-purpose",
name="fixer-{group-name}",
team_name=implement_result.data.suggested_team_id, # result from step 10's launch call
prompt=implementation_prompt + task_descriptions,
run_in_background=true,
mode="bypassPermissions"
)
```
Follow the implement-team coordination rules: strict file ownership, max 3-5 fixes per agent, schema changes first, verify with `cargo test --no-run` (NEVER --release).
Spawn all implementation agents in parallel. Monitor build diagnostics and send hints if needed.
13. **Spawn Rio (integration verifier)** from the launch results after implementation agents complete:
```
Task(
subagent_type="general-purpose",
name="rio",
model=rio_agent.model,
team_name=implement_result.data.suggested_team_id,
prompt=rio_agent.prompt + "\n\n## Changes Made\n\n" + summary_of_changes,
run_in_background=true,
mode="bypassPermissions"
)
```
Rio runs compilation checks, linters, tests, and fixes cross-agent issues.
14. **Wait for implementation**: All agents report completion via SendMessage. Shut them down.
---
### Phase 3: QA Verification
15. **Launch QA team**: Call `launch` to get QA agent specs:
```
launch(team="qa-hardening-team", scope=summary_of_changes)
```
16. **Spawn QA agents**: For each agent in the QA launch results:
```
Task(
subagent_type="general-purpose",
name=agent.name,
model=agent.model,
team_name=qa_result.data.suggested_team_id, # result from step 15's launch call
prompt=agent.prompt + "\n\n## Changes Made\n\n" + summary_of_changes,
run_in_background=true
)
```
IMPORTANT: Do NOT use `mode="bypassPermissions"` for QA agents -- they are read-only.
IMPORTANT: Always pass model="sonnet" to the Task tool. This ensures read-only agents use a cost-efficient model.
17. **Create and assign QA tasks** for each auditor.
18. **Wait for QA results**: If issues found, either fix directly or spawn additional fixers.
---
### Phase 4: Finalize
19. **Verify** final build: `cargo clippy --all-targets --all-features -- -D warnings` + `cargo fmt --all -- --check` + `cargo test` (NEVER --release).
20. **Shut down** all remaining agents.
21. **Report** final summary to user with all changes made.
22. **Cleanup**: `TeamDelete`
### Handling Stalled Agents
If an agent has not responded after an unusually long time, send it a direct message via SendMessage to check status. For discovery agents, shut down if unresponsive and note the gap. For implementation agents, fix directly or reassign. Do not wait indefinitely.
## Examples
```
/mira:full-cycle
-> Prompts for what to review, then runs full discovery -> implementation -> QA cycle
/mira:full-cycle Review the database layer for issues
-> 4 experts review the DB layer, findings are implemented, QA verifies
/mira:full-cycle --discovery-only
-> Only runs Phase 1 (equivalent to /mira:experts)
/mira:full-cycle --skip-qa
-> Runs discovery + implementation but skips QA phase
/mira:full-cycle --members nadia,jiro
-> Only Nadia and Jiro run discovery, then full implementation + QA cycle
```
## Phases and Agents
| Phase | Agents | Purpose |
|-------|--------|---------|
| Discovery | Nadia, Jiro, Sable, Lena (expert-review-team) | Find issues, propose improvements |
| Implementation | Kai plans, dynamic agents execute, Rio verifies (implement-team) | Implement fixes in parallel |
| QA | Hana, Orin, Kali, Zara (qa-hardening-team) | Verify changes, catch regressions |
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.