{"id":"2efbb928-1bd9-4119-af08-a954027f7c57","shortId":"W3ZxsH","kind":"skill","title":"plan-flow","tagline":"Analyze repository-level duplicate/redundant design first, then build and execute a strict step-test-update plan in docs/plan. Use for deep architecture review, convergence planning, and traceable one-step-at-a-time delivery.","description":"# Plan Flow\n\n## Overview\n\nUse this skill when the user needs:\n- A complete analysis of duplicated/redundant design in a codebase.\n- A detailed TODO plan with explicit file-level steps.\n- Strict execution evidence: change one step, test it, then update plan status.\n\nThis skill is repository-agnostic. It defines how to analyze and plan, not only what was done in one specific repo.\n\n## Core Workflow (Analyze -> Plan -> Execute)\n\n1. Establish scope and constraints.\n- Confirm target directories/modules and out-of-scope areas.\n- Capture compatibility requirement, risk tolerance, and testing expectations.\n- Record baseline (`git status --short`, current branch, known blockers).\n\n2. Run structured redundancy analysis first.\n- Build an inventory of architecture anchors:\n  - Domain models and schemas\n  - Factory/registry entry points\n  - HTTP/storage/cache/logging abstractions\n  - Route/service/provider adapters\n- Identify duplicate/redundant candidates with evidence:\n  - Same concept, multiple conflicting definitions\n  - Same responsibility, parallel implementations\n  - Exported but unconnected modules\n  - Dead/legacy paths still affecting readability\n- For each finding, record:\n  - Exact files and symbols\n  - Call path or usage evidence\n  - Risk if changed\n- See `references/analysis-playbook.md`.\n\n3. Prioritize and convert analysis into executable plan.\n- Score each finding by impact/effort/risk/confidence.\n- Group into phases (`P0`, `P1`, `P2`) and sequence low-risk/high-signal steps first.\n- Create or update `plan/<task>.md` from `references/plan-template.md`.\n- Keep exactly one step in `in_progress`.\n- Use statuses: `pending` / `in_progress` / `completed` / `blocked`.\n- See `references/risk-impact-scoring.md`.\n\n4. Execute with strict step-test-update loop.\n- Implement only the current step and only in listed files.\n- Run step-level tests immediately, then project health checks.\n- Update plan status and execution log before touching next step.\n- On failure, record root cause and run fix loop before continuing.\n\n5. Close with phase/final verification.\n- Run phase matrix checks and final regression set.\n- Report residual risks, deferred work, and explicit coverage gaps.\n\n## Quality Gates\n\n- No finding enters the plan without file-level evidence.\n- No step is `completed` without test command evidence.\n- No next step starts before plan status/log update is written.\n- If full regression is unavailable, record exact reason and nearest fallback checks.\n\n## Reference Map\n\n- `references/analysis-playbook.md`\n  - How to detect duplicate/redundant design with reproducible evidence.\n- `references/risk-impact-scoring.md`\n  - How to prioritize findings into phases and step order.\n- `references/plan-template.md`\n  - Reusable plan skeleton including analysis table, step template, and log format.\n- `references/plan-accomplishments.md`\n  - One completed real example (for style and granularity only, not as mandatory scope).\n\n## Scripts\n\n- `scripts/redundancy_scan.sh <target_dir>`\n  - Fast first-pass scan for duplicate symbol names, parallel factory/builders, and legacy/dead-code hints.\n- `scripts/findings_to_plan.py --target-dir src --output plan/<name>.md`\n  - Convert scan findings into a draft execution plan with scoring and phased order (`P0/P1/P2`).\n- `scripts/plan_lint.py <plan/file.md>`\n  - Validate plan state machine, test evidence, and execution-log completeness for completed steps.\n\n## Trigger Cues\n\nTrigger this skill when user asks for:\n- \"分析这个库有哪些重复设计/冗余设计\"\n- \"做一个非常完整详细的 todolist/执行计划\"\n- \"每改一处就测试并更新计划状态\"\n- \"按步骤推进并可追踪\"\n\n## Execution Rules\n\n- Prefer small, reversible steps over large refactors.\n- Keep plan language specific to file paths, symbols, and commands.\n- Avoid mixing analysis conclusions with unverified assumptions.\n- If new evidence contradicts earlier assumptions, revise plan before coding.","tags":["plan","flow","claude","arsenal","majiayu000","agent-skills","ai-agents","ai-coding-assistant","automation","claude-code","code-review","developer-tools"],"capabilities":["skill","source-majiayu000","skill-plan-flow","topic-agent-skills","topic-ai-agents","topic-ai-coding-assistant","topic-automation","topic-claude","topic-claude-code","topic-code-review","topic-developer-tools","topic-devops","topic-productivity","topic-prompt-engineering","topic-python"],"categories":["claude-arsenal"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/majiayu000/claude-arsenal/plan-flow","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add majiayu000/claude-arsenal","source_repo":"https://github.com/majiayu000/claude-arsenal","install_from":"skills.sh"}},"qualityScore":"0.464","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 29 github stars · SKILL.md body (3,856 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-01T07:01:15.059Z","embedding":null,"createdAt":"2026-04-18T22:24:18.252Z","updatedAt":"2026-05-01T07:01:15.059Z","lastSeenAt":"2026-05-01T07:01:15.059Z","tsv":"'/high-signal':227 '1':108 '2':139 '3':203 '4':253 '5':303 'abstract':159 'adapt':161 'affect':183 'agnost':86 'analysi':52,143,207,393,505 'analyz':4,91,105 'anchor':150 'architectur':27,149 'area':121 'ask':475 'assumpt':509,515 'avoid':503 'baselin':131 'block':250 'blocker':138 'branch':136 'build':12,145 'call':193 'candid':164 'captur':122 'caus':296 'chang':72,200 'check':281,311,366 'close':304 'code':519 'codebas':58 'command':343,502 'compat':123 'complet':51,249,340,402,464,466 'concept':168 'conclus':506 'confirm':113 'conflict':170 'constraint':112 'continu':302 'contradict':513 'converg':29 'convert':206,438 'core':103 'coverag':323 'creat':230 'cue':469 'current':135,265 'dead/legacy':180 'deep':26 'defer':319 'defin':88 'definit':171 'deliveri':39 'design':9,55,374 'detail':60 'detect':372 'dir':433 'directories/modules':115 'docs/plan':23 'domain':151 'done':98 'draft':443 'duplic':422 'duplicate/redundant':8,163,373 'duplicated/redundant':54 'earlier':514 'enter':329 'entri':156 'establish':109 'evid':71,166,197,336,344,377,459,512 'exact':189,238,361 'exampl':404 'execut':14,70,107,209,254,286,444,462,484 'execution-log':461 'expect':129 'explicit':64,322 'export':176 'factory/builders':426 'factory/registry':155 'failur':293 'fallback':365 'fast':416 'file':66,190,271,334,498 'file-level':65,333 'final':313 'find':187,213,328,382,440 'first':10,144,229,418 'first-pass':417 'fix':299 'flow':3,41 'format':399 'full':356 'gap':324 'gate':326 'git':132 'granular':408 'group':216 'health':280 'hint':429 'http/storage/cache/logging':158 'identifi':162 'immedi':277 'impact/effort/risk/confidence':215 'implement':175,262 'includ':392 'inventori':147 'keep':237,493 'known':137 'languag':495 'larg':491 'legacy/dead-code':428 'level':7,67,275,335 'list':270 'log':287,398,463 'loop':261,300 'low':225 'low-risk':224 'machin':457 'mandatori':412 'map':368 'matrix':310 'md':234,437 'mix':504 'model':152 'modul':179 'multipl':169 'name':424 'nearest':364 'need':49 'new':511 'next':290,346 'one':34,73,100,239,401 'one-step-at-a-tim':33 'order':387,450 'out-of-scop':117 'output':435 'overview':42 'p0':219 'p0/p1/p2':451 'p1':220 'p2':221 'parallel':174,425 'pass':419 'path':181,194,499 'pend':246 'phase':218,309,384,449 'phase/final':306 'plan':2,21,30,40,62,79,93,106,210,233,283,331,350,390,436,445,455,494,517 'plan-flow':1 'plan/file.md':453 'point':157 'prefer':486 'priorit':204,381 'progress':243,248 'project':279 'qualiti':325 'readabl':184 'real':403 'reason':362 'record':130,188,294,360 'redund':142 'refactor':492 'refer':367 'references/analysis-playbook.md':202,369 'references/plan-accomplishments.md':400 'references/plan-template.md':236,388 'references/risk-impact-scoring.md':252,378 'regress':314,357 'repo':102 'report':316 'repositori':6,85 'repository-agnost':84 'repository-level':5 'reproduc':376 'requir':124 'residu':317 'respons':173 'reusabl':389 'revers':488 'review':28 'revis':516 'risk':125,198,226,318 'root':295 'route/service/provider':160 'rule':485 'run':140,272,298,308 'scan':420,439 'schema':154 'scope':110,120,413 'score':211,447 'script':414 'scripts/findings_to_plan.py':430 'scripts/plan_lint.py':452 'scripts/redundancy_scan.sh':415 'see':201,251 'sequenc':223 'set':315 'short':134 'skeleton':391 'skill':45,82,472 'skill-plan-flow' 'small':487 'source-majiayu000' 'specif':101,496 'src':434 'start':348 'state':456 'status':80,133,245,284 'status/log':351 'step':18,35,68,74,228,240,258,266,274,291,338,347,386,395,467,489 'step-level':273 'step-test-upd':17,257 'still':182 'strict':16,69,256 'structur':141 'style':406 'symbol':192,423,500 'tabl':394 'target':114,432 'target-dir':431 'templat':396 'test':19,75,128,259,276,342,458 'time':38 'todo':61 'todolist':480 'toler':126 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-coding-assistant' 'topic-automation' 'topic-claude' 'topic-claude-code' 'topic-code-review' 'topic-developer-tools' 'topic-devops' 'topic-productivity' 'topic-prompt-engineering' 'topic-python' 'touch':289 'traceabl':32 'trigger':468,470 'unavail':359 'unconnect':178 'unverifi':508 'updat':20,78,232,260,282,352 'usag':196 'use':24,43,244 'user':48,474 'valid':454 'verif':307 'without':332,341 'work':320 'workflow':104 'written':354 '做一个非常完整详细的':479 '冗余设计':478 '分析这个库有哪些重复设计':477 '执行计划':481 '按步骤推进并可追踪':483 '每改一处就测试并更新计划状态':482","prices":[{"id":"ac2fc4fe-5bf1-4082-b382-475b18f25b1e","listingId":"2efbb928-1bd9-4119-af08-a954027f7c57","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"majiayu000","category":"claude-arsenal","install_from":"skills.sh"},"createdAt":"2026-04-18T22:24:18.252Z"}],"sources":[{"listingId":"2efbb928-1bd9-4119-af08-a954027f7c57","source":"github","sourceId":"majiayu000/claude-arsenal/plan-flow","sourceUrl":"https://github.com/majiayu000/claude-arsenal/tree/main/skills/plan-flow","isPrimary":false,"firstSeenAt":"2026-04-18T22:24:18.252Z","lastSeenAt":"2026-05-01T07:01:15.059Z"}],"details":{"listingId":"2efbb928-1bd9-4119-af08-a954027f7c57","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"majiayu000","slug":"plan-flow","github":{"repo":"majiayu000/claude-arsenal","stars":29,"topics":["agent-skills","ai-agents","ai-coding-assistant","automation","claude","claude-code","code-review","developer-tools","devops","productivity","prompt-engineering","python","software-development","typescript","workflows"],"license":"mit","html_url":"https://github.com/majiayu000/claude-arsenal","pushed_at":"2026-04-29T04:12:22Z","description":"52 production-ready Claude Code skills and 7 specialized agents for software development, DevOps, product workflows, and automation.","skill_md_sha":"96ad146758e880d133d8268c02adb5c52a157bcd","skill_md_path":"skills/plan-flow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/majiayu000/claude-arsenal/tree/main/skills/plan-flow"},"layout":"multi","source":"github","category":"claude-arsenal","frontmatter":{"name":"plan-flow","description":"Analyze repository-level duplicate/redundant design first, then build and execute a strict step-test-update plan in docs/plan. Use for deep architecture review, convergence planning, and traceable one-step-at-a-time delivery."},"skills_sh_url":"https://skills.sh/majiayu000/claude-arsenal/plan-flow"},"updatedAt":"2026-05-01T07:01:15.059Z"}}