Wave 5 Step 15. Threads --raw plumbing through all seven action
command templates and adds a shape test covering structural plumbing
plus help.md's plain-language vocabulary.
- commands/fix.md: --raw flag parsed; fix-plan rendering groups by
userActionLanguage; humanized title/description/recommendation are
rendered verbatim from the cross-referenced scan envelope.
- commands/rollback.md: terminology pass — "manifest" → "list of
changes" in user-facing copy; the file name manifest.yaml is kept
as the machine contract; --raw threaded through.
- commands/plan.md: --raw forwarded to the planner-agent's prompt;
agent now instructed to group actions by userImpactCategory and
lead with userActionLanguage; bash block added for flag parsing.
- commands/implement.md: --raw forwarded to the implementer-agent's
prompt; progress-log lines now reference the humanized titles
already present in the action plan.
- commands/cleanup.md: --raw accepted as no-op (cleanup is
file-management only, no findings prose); bash block added.
- commands/help.md: full plain-language pass — "PreToolUse" and
"frontmatter" jargon removed from user-facing copy; new
vocabulary table surfaces the humanized userImpactCategory and
userActionLanguage labels ("Configuration mistake", "Conflict",
"Wasted tokens", "Missed opportunity", "Dead config" / "Fix this
now", "Fix soon", "Fix when convenient", "Optional cleanup",
"FYI"); --raw documented as global pass-through flag.
- commands/interview.md: --raw accepted as no-op; "unused hooks"
question phrased as "unused automation that runs at specific
events" in user-facing copy.
tests/commands/action-commands-shape.test.mjs (new, +6 tests, 780 → 786):
- structural: bash block + Read tool + --raw/$ARGUMENTS plumbing
across all 7 files
- help.md vocabulary: ≥3 userImpactCategory labels and ≥3
userActionLanguage phrases present
- help.md jargon: no bare "PreToolUse" or "frontmatter" in copy
4.2 KiB
| name | description | allowed-tools | model |
|---|---|---|---|
| config-audit:implement | Phase 5 - Execute action plan with backups and verification | Read, Write, Edit, Bash, Agent, AskUserQuestion | opus |
Config-Audit: Implementation (Phase 5)
Execute the action plan with full backup, verification, and rollback support.
Prerequisites
- Must have completed Phase 4 (plan)
- Action plan at
~/.claude/config-audit/sessions/{session-id}/action-plan.md
Arguments
$ARGUMENTSmay contain--rawto forward to the implementer-agent's instructions; in--rawmode the agent renders v5.0.0 verbatim severity prefiks instead of humanizeduserActionLanguageurgency phrasing.
Implementation
Step 1: Parse flags, load and verify
RAW_FLAG=""
if echo "$ARGUMENTS" | grep -q -- "--raw"; then RAW_FLAG="--raw"; fi
Find the most recent session with a plan. If none: "No action plan found. Run /config-audit plan first."
Use the Read tool on the action plan and count actions. Tell the user:
## Implementing Action Plan
Found {N} actions to execute across {M} files.
A backup will be created before any changes are made.
Step 2: Get user approval
AskUserQuestion:
question: "Ready to implement {N} actions? Backup created automatically — you can roll back with one command."
options:
- "Yes, proceed"
- "Review plan first" (then show the plan file path)
- "Cancel"
Step 3: Create backup
Create backup silently:
mkdir -p ~/.claude/config-audit/backups/$(date +%Y%m%d_%H%M%S)/files/ 2>/dev/null
Copy each file to be modified. Generate manifest.yaml with checksums.
Tell the user: "Backup created. Implementing actions..."
Step 4: Execute actions
Group actions by dependencies. For each group, spawn implementer agents (batch of 3):
Agent(subagent_type: "config-audit:implementer-agent")
model: sonnet
prompt: |
Execute action: {action-id}
File: {file-path}, Type: {create|modify|delete}
Mode: $RAW_FLAG (empty = humanized progress prose; "--raw" = v5.0.0 verbatim)
Details: {changes}
Verify backup exists, make change, validate syntax.
When logging progress, use the humanized title/userActionLanguage
fields from the action plan (the planner already rendered them) —
do not re-derive severity prose. Append result to:
~/.claude/config-audit/sessions/{session-id}/implementation-log.md
Show progress between groups using the humanized titles already present in the action plan:
Action 1/N: {humanized title} — done
Action 2/N: {humanized title} — done
...
Step 5: Verify results
Spawn verifier agent:
Agent(subagent_type: "config-audit:verifier-agent")
model: sonnet (note: using sonnet, not haiku)
prompt: |
Verify all changes from implementation:
1. Modified files exist and are syntactically valid
2. New files created correctly
3. No new conflicts introduced
Report to: ~/.claude/config-audit/sessions/{session-id}/implementation-log.md
If verifier finds issues: one retry with implementer agent. If still failing: report and suggest rollback.
Step 6: Present results
### Implementation Complete
**{succeeded} succeeded** | {failed} failed | {skipped} skipped
{If score improved, run quick posture and show:}
Score impact: {old_grade} → {new_grade} (+{delta} points)
{If failed > 0:}
{failed} action(s) couldn't be completed — see log for details.
**Backup location:** `~/.claude/config-audit/backups/{timestamp}/`
**Rollback:** `/config-audit rollback {timestamp}`
**Full log:** `~/.claude/config-audit/sessions/{session-id}/implementation-log.md`
Step 7: Update state
Update state.yaml with current_phase: "implement", next_phase: null.
Rollback
If the user requests rollback at any point:
- Read
manifest.yamlfrom backup - Restore each file and verify checksums
- Delete newly created files
- Update state to
rolled_back
Error Handling
| Error | What happens |
|---|---|
| Permission denied | Skip action, log it, continue with others |
| File not found | Skip action, log it, continue |
| Invalid syntax after edit | Rollback that single file, log, continue |
| Critical failure | Offer full rollback |