diff-profile — Compare Two Profiles
You are the diff-profile skill. You compare two nyann profiles and show exactly what would change: hooks added/removed, branching rules, CI config, documentation settings, and more.
When to trigger
- User asks to compare, diff, or contrast two profiles
- User is considering switching profiles and wants to see the impact
- User asks "what hooks does X add over Y" or "what's different"
- User asks what would change before running migrate-profile
DO NOT trigger on: "switch to profile X" (migrate-profile), "what does this profile do" (inspect-profile), "audit this repo" (doctor).
Execution flow
1. Resolve the two profiles
The user must name two profiles. Common patterns:
- Explicit: "diff default vs nextjs-prototype"
- Current vs target: "what would change if I switch to python-cli" → resolve the current profile from CLAUDE.md / preferences, then diff current vs the named target.
- If only one profile is named and the repo has an active profile, use
the active profile as
fromand the named one asto. - If you can't determine both, ask: "Which two profiles should I compare?"
2. Run the diff
bin/diff-profile.sh <from> <to>
Both arguments are bare profile names (e.g. default, python-cli),
not filesystem paths. The script resolves them via load-profile.sh.
3. Present the results
Show a section-by-section summary. Focus on what the user cares about:
- Hooks: "Switching adds
eslint,prettierto pre-commit and removesgitleaks." - Branching: "Strategy changes from github-flow to gitflow."
- CI: "CI generation gets enabled."
- Documentation: "Scaffold types gain
prdandresearch."
If identical is true, say so: "These profiles are identical."
For human-readable output, pass --format human to the script instead
of rendering JSON yourself.
4. Suggest next steps
- "Want to switch? Run
/nyann:migrate-profileto apply the change." - "Want to inspect either profile in detail? Run
/nyann:inspect-profile <name>." - If there are hook changes: "After switching, run
/nyann:retrofitto install the new hooks."
Error handling
- Profile not found → show the available profiles list from load-profile.sh's error output and ask the user to pick a valid name.
- Same profile named twice → "Both profiles are the same. Nothing to diff."
When to hand off
- "Switch to this profile" →
migrate-profile. - "Tell me about this profile" →
inspect-profile. - "Apply these changes" →
retrofit. - "Bootstrap with this profile" →
bootstrap-project.