{"id":"6523c107-9609-481a-b230-297c1eee5775","slug":"gobeyondyang-skills","kind":"skill","name":"skills","summary":"Claude Code Skill for breaking change detection — analyze git diff, map business impact, detect API/field/schema incompatibilities, block risky commits. Supports Java, Python, TypeScript, Go, Vue, JSP","owner":"GoBeyondYang","repoUrl":"https://github.com/GoBeyondYang/skills","license":"Apache-2.0","licenseTier":"permissive","trust":"community","stars":4,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-06-26T06:41:16.000Z","addedAt":"2026-10-21T23:21:11.881Z","logoUrl":"https://avatars.githubusercontent.com/u/56298917?u=8dc7c348574adf83cd5f9a93e12007188a570ecc&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools"],"tags":["api-compatibility","breaking-change-detection","claude-code","code-analysis","git-diff","impact-analysis","business-conflict","commit-guard"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T23:48:32.497Z","sample":false,"url":"https://conduits.dev/tools/gobeyondyang-skills","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Claude Code Skill](https://img.shields.io/badge/Claude%20Code-Skill-8A2BE2)][skill]\n\n# business-conflict-analyzer\n\n> **A Claude Code skill that detects breaking changes before they hit production.**  \n> Parses `git diff`, maps business impact across your codebase, and blocks risky commits.\n\n---\n\n## The problem\n\nYou delete a field from a DTO. Tests pass. CR passes. Then OrderService and CustomerService both crash at runtime because they were calling `getMobile()` on the old struct.\n\nThis skill exists to make that scenario impossible.\n\n---\n\n## How it works\n\n```\ngit diff → diff_analyzer.py (parse changes by language)\n         → impact_mapper.py (find references, map layers, match patterns)\n         → report_generator.py (bilingual report + dependency graph)\n```\n\nThree Python scripts, piped together. Each step is independent, testable, and **deterministic** — same diff, same output, every time.\n\n### Per-language parsing\n\n| Language | Detects |\n|----------|---------|\n| Java | class, interface, enum, method, field, annotation |\n| Python | class, function, decorator, property |\n| TypeScript | interface, type, class, enum, method, property |\n| Go | struct, interface, func, field |\n| Vue (SFC) | props, emits, ref/reactive, template bindings |\n| JSP | taglib, include, useBean, EL expressions |\n| SQL | DDL statements |\n| YAML / Properties / XML | key-level add/delete |\n\n### Architecture layer mapping\n\n100+ filename patterns → business layer (API, data, business logic, frontend, config, etc.). A `controller`-named file is automatically tagged as \"API layer (external interface contract)\".\n\n### Reference search\n\nTries system `grep` first (fast), falls back to Python `os.walk` (compatible with Windows cmd/PowerShell). Results cached per symbol to avoid redundant scans.\n\n### Historical co-change analysis\n\nFor P0 changes, runs `git log -S <symbol> --since=6.months.ago` to surface files that historically changed together with the modified symbol.\n\n---\n\n## Example output\n\n![Impact dependency graph](skills/business-conflict-analyzer/docs/impact-graph.png)\n\nThe generated `conflict-report.md` contains a Mermaid dependency graph, per-file impact table, and risk assessment. Internal symbols are language-agnostic; output is translated to business language:\n\n```\nfield_del:mobile  →  \"Field 'mobile' removed\" / \"删除字段：mobile\"\njava:+1/-2        →  \"Java interface changed: +1/-2 declarations\"\n```\n\nA real report excerpt — showing how a DTO field rename ripples across a multi-language codebase:\n\n```markdown\n### Change Details\n\n| Risk | Type | File | Business Impact |\n|:---:|:----:|------|----------------|\n| 🔴 P0 | 🔴 Data layer | UserDTO.java | User API will no longer return mobile, replaced by phone |\n| 🔴 P0 | 🟡 API layer | OrderController.java | Path changed — all callers get 404 |\n| 🟡 P1 | 🟡 Config  | order.yml | Timeout/retry keys removed → defaults apply |\n\n### Reference Analysis (Multi-language)\n\n| Impact | Lang | File | Reference |\n|--------|:----:|------|-----------|\n| 🔴 Compile failure | Java  | PaymentService.java | `user.getMobile()` |\n| 🔴 Runtime error   | Python| payment_service.py  | `user['mobile']` |\n| 🔴 Compile failure | Go    | user_handler.go     | `user.Mobile` |\n| 🔴 Compile failure | TS    | notification.module | `userDTO.mobile` |\n| 🟡 Field migration | Vue   | UserProfile.vue     | expects `user.mobile` |\n```\n\nThe full report is bilingual (en/zh) — same data, both languages.\n\n---\n\n## When the skill triggers\n\nClaude automatically runs this skill when it detects changes to:\n\n- **DTO/VO field** add/delete/rename\n- **Interface/RPC/Feign method signature** changes\n- **Database DDL** (ALTER TABLE, DROP COLUMN, MODIFY COLUMN)\n- **Message/event schema** changes\n- **Configuration property** add/delete\n- **Enum value** add/deprecate\n- **Frontend component** props/emits changes\n- **JSP taglib/include** changes\n- **API endpoint/route** path, method, or parameter changes\n\nNo need to ask Claude to \"run impact analysis\" — it knows when to do it.\n\n---\n\n## Commit Guard (physical safety net)\n\nA PreToolUse hook that runs analysis before every `git commit`:\n\n- **P0 breaking changes** → commit blocked, report printed, choose: Accept / Reject / Revise\n- **No P0** → commit proceeds\n- **Analysis crashes** → commit allowed (fail-open)\n\n---\n\n## Quick start\n\n```bash\n# Register the skill\nclaude add skill https://github.com/GoBeyondYang/skills/raw/main/skills/business-conflict-analyzer/SKILL.md\n\n# (Optional) install commit guard\nbash ~/.claude/skills/business-conflict-analyzer/scripts/install_hook.sh\n```\n\nThe `fetch` field in SKILL.md auto-downloads all Python scripts on first run — no `git clone` needed.\n\n---\n\n## License\n\nApache 2.0\n\n[skill]: https://github.com/GoBeyondYang/skills/tree/main/skills/business-conflict-analyzer\n"}