Loading...
Loading...
Visualize planned changes before implementation. Use when reviewing plans, comparing before/after architecture, assessing risk, or analyzing execution order and impact.
npx skill4agent add yonatangross/orchestkit plan-viz/plan-viz # Auto-detect from current branch
/plan-viz billing module redesign # Describe the plan
/plan-viz #234 # Pull from GitHub issuescripts/detect-plan-context.shbash "$SKILL_DIR/scripts/detect-plan-context.sh"AskUserQuestion(
questions=[{
"question": "What should I visualize?",
"header": "Source",
"options": [
{"label": "Current branch changes (Recommended)", "description": "Auto-detect from git diff against main"},
{"label": "Describe the plan", "description": "I'll explain what I'm planning to change"},
{"label": "GitHub issue", "description": "Pull plan from a specific issue number"},
{"label": "Quick file diff only", "description": "Just show the change manifest, skip analysis"}
],
"multiSelect": false
}]
)scripts/analyze-impact.shbash "$SKILL_DIR/scripts/analyze-impact.sh"Task(
subagent_type="Explore",
prompt="Explore the architecture of {affected_directories}. Return: component diagram, key data flows, health scores per module. Use the ascii-visualizer skill for diagrams.",
model="haiku"
)assets/tier1-header.mdPLAN: {plan_name} ({issue_ref}) | {phase_count} phases | {file_count} files | +{added} -{removed} lines
Risk: {risk_level} | Confidence: {confidence} | Reversible until {last_safe_phase}
Branch: {branch} -> {base_branch}
[1] Changes [2] Execution [3] Risks [4] Decisions [5] Impact [all]AskUserQuestion(
questions=[{
"question": "Which sections to render?",
"header": "Sections",
"options": [
{"label": "All sections", "description": "Full visualization with all 5 core sections"},
{"label": "Changes + Execution", "description": "File diff tree and execution swimlane"},
{"label": "Risks + Decisions", "description": "Risk dashboard and decision log"},
{"label": "Impact only", "description": "Just the numbers: files, lines, tests, API surface"}
],
"multiSelect": false
}]
)references/change-manifest-patterns.mdsrc/
├── api/
│ ├── routes.py [M] +45 -12 !! high-traffic path
│ └── schemas.py [M] +20 -5
├── services/
│ └── billing.py [A] +180 ** new file
├── models/
│ └── invoice.py [A] +95 ** new file
└── tests/
└── test_billing.py [A] +120 ** new file
Legend: [A]dd [M]odify [D]elete !! Risk ** New
Summary: +460 -17 | 3 new | 2 modified | 0 deleted[A][M][D]+N -N!!**references/execution-swimlane-patterns.mdBackend ===[Schema]======[API]===========================[Deploy]====>
| | ^
| +------blocks------+ |
| | |
Frontend ------[Wait]--------[Components]=======[Integration]=+
|
Tests ------[Wait]--------[Wait]-----------[E2E Tests]========>
=== Active work --- Blocked/waiting | Dependency
Critical path: Schema -> API -> Deploy (estimated: 4-6 hours)===---|blocksreferences/risk-dashboard-patterns.mdREVERSIBILITY TIMELINE
Phase 1 [================] FULLY REVERSIBLE (add column, nullable)
Phase 2 [================] FULLY REVERSIBLE (new endpoint, additive)
Phase 3 [============....] PARTIALLY (backfill data)
--- POINT OF NO RETURN ---
Phase 4 [........????????] IRREVERSIBLE (drop old column)
Phase 5 [================] FULLY REVERSIBLE (frontend toggle)PRE-MORTEM: This plan failed because...
1. {scenario_description}
Probability: {level} | Impact: {level}
Mitigation: {action}
Rollback: {steps} ({time_estimate})
2. ...
3. ...references/decision-log-patterns.mdDECISION LOG
#1: {decision_title}
Context: {why this decision exists}
Decision: {what was chosen}
Alternatives: {what was rejected and why}
Tradeoff: + {gain} - {cost}
#2: ...assets/impact-dashboard.mdIMPACT SUMMARY
+=========+==========+===========+
| Category | Files | Lines |
+=========+==========+===========+
| Added | 3 | +395 |
| Modified | 2 | +65 -17 |
| Deleted | 0 | 0 |
+---------+----------+-----------+
| NET | 5 | +443 |
+---------+----------+-----------+
Tests: 2 new | 1 modified | Coverage: 73% -> 68% (needs +4 tests)
API: 2 new endpoints | 0 breaking changes
Deps: +1 (stripe-python) | 0 removedAskUserQuestion(
questions=[{
"question": "What next?",
"header": "Actions",
"options": [
{"label": "Write to designs/", "description": "Save as designs/{branch}.md for PR review"},
{"label": "Generate GitHub issues", "description": "Create issues from execution phases with labels and milestones"},
{"label": "Drill deeper", "description": "Expand blast radius, cross-layer check, or migration checklist"},
{"label": "Done", "description": "Plan visualization complete"}
],
"multiSelect": false
}]
)designs/{branch-name}.mdassets/plan-report.md[{component}] {phase_description}risk:{level}references/blast-radius-patterns.md Ring 3: Tests (8 files)
+-------------------------------+
| Ring 2: Transitive (5) |
| +------------------------+ |
| | Ring 1: Direct (3) | |
| | +--------------+ | |
| | | CHANGED FILE | | |
| | +--------------+ | |
| +------------------------+ |
+-------------------------------+
Direct dependents: auth.py, routes.py, middleware.py
Transitive: app.py, config.py, utils.py, cli.py, server.py
Test files: test_auth.py, test_routes.py, ... (+6 more)CROSS-LAYER CONSISTENCY
Backend Endpoint Frontend Consumer Status
POST /invoices createInvoice() PLANNED
GET /invoices/:id useInvoice(id) PLANNED
GET /invoices InvoiceList.tsx MISSING !!MIGRATION CHECKLIST
Sequential Block A (database):
1. [ ] Backup production database [~5 min]
2. [ ] Run migration: 001_add_invoices.sql [~30s] <- blocks #4
Parallel Block B (after #2):
3. [ ] Deploy API v2.1.0 [~3 min]
4. [ ] Update frontend bundle [~2 min]
Sequential Block C (verification):
5. [ ] Smoke test [~2 min]
6. [ ] Monitor error rate 15 min [~15 min]| Principle | Application |
|---|---|
| Progressive disclosure | Tier 1 header always, sections on request |
| Judgment over decoration | Every section answers a reviewer question |
| Precise over estimated | Use scripts for file/line counts |
| Honest uncertainty | Confidence levels, pre-mortems, tradeoff costs |
| Actionable output | Write to file, generate issues, drill deeper |
| Anti-slop | No generic transitions, no fake precision, no unused sections |
| Rule | Impact | What It Covers |
|---|---|---|
| ascii-diagrams | MEDIUM | Box-drawing characters, file trees, progress bars, workflow diagrams |
| ascii-architecture | MEDIUM | Layered architecture, blast radius, reversibility timelines, comparisons |