@ia-ccun/code-agent-cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +211 -0
  2. package/bin/cli.js +83 -0
  3. package/config/agent/APPEND_SYSTEM.md +48 -0
  4. package/config/agent/SYSTEM.md +33 -0
  5. package/config/agent/bin/fd +0 -0
  6. package/config/agent/extensions/context.ts +578 -0
  7. package/config/agent/extensions/custom-footer.ts +170 -0
  8. package/config/agent/extensions/custom.ts +289 -0
  9. package/config/agent/extensions/review.ts +1281 -0
  10. package/config/agent/extensions/working-msg.ts +96 -0
  11. package/config/agent/help.md +364 -0
  12. package/config/agent/models.json +56 -0
  13. package/config/agent/prompts/feat.md +106 -0
  14. package/config/agent/prompts/git-commit.md +159 -0
  15. package/config/agent/prompts/git-rollback.md +91 -0
  16. package/config/agent/prompts/git-worktree.md +277 -0
  17. package/config/agent/prompts/help.md +10 -0
  18. package/config/agent/prompts/init-project.md +53 -0
  19. package/config/agent/prompts/workflow.md +194 -0
  20. package/config/agent/settings.json +7 -0
  21. package/config/agent/skills/code-review/SKILL.md +50 -0
  22. package/config/agent/skills/commit/SKILL.md +51 -0
  23. package/config/agent/skills/csv-data-summarizer/SKILL.md +149 -0
  24. package/config/agent/skills/csv-data-summarizer/analyze.py +182 -0
  25. package/config/agent/skills/csv-data-summarizer/examples/showcase_financial_pl_data.csv +46 -0
  26. package/config/agent/skills/csv-data-summarizer/requirements.txt +4 -0
  27. package/config/agent/skills/csv-data-summarizer/resources/sample.csv +22 -0
  28. package/config/agent/skills/find-skills/SKILL.md +133 -0
  29. package/config/agent/skills/frontend-design/LICENSE.txt +177 -0
  30. package/config/agent/skills/frontend-design/SKILL.md +42 -0
  31. package/config/agent/skills/github/SKILL.md +47 -0
  32. package/config/agent/skills/hello/SKILL.md +23 -0
  33. package/config/agent/skills/librarian/SKILL.md +195 -0
  34. package/config/agent/skills/markdown-to-html/SKILL.md +62 -0
  35. package/config/agent/skills/pr/SKILL.md +56 -0
  36. package/config/agent/skills/refactor/SKILL.md +37 -0
  37. package/config/agent/skills/skill-creator/LICENSE.txt +202 -0
  38. package/config/agent/skills/skill-creator/SKILL.md +356 -0
  39. package/config/agent/skills/skill-creator/references/output-patterns.md +82 -0
  40. package/config/agent/skills/skill-creator/references/workflows.md +28 -0
  41. package/config/agent/skills/skill-creator/scripts/init_skill.py +303 -0
  42. package/config/agent/skills/skill-creator/scripts/package_skill.py +110 -0
  43. package/config/agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  44. package/config/agent/skills/ui-ux-pro-max/SKILL.md +264 -0
  45. package/config/agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
  46. package/config/agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
  47. package/config/agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
  48. package/config/agent/skills/ui-ux-pro-max/data/products.csv +97 -0
  49. package/config/agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  50. package/config/agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  51. package/config/agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  52. package/config/agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  53. package/config/agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  54. package/config/agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  55. package/config/agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  56. package/config/agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  57. package/config/agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  58. package/config/agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  59. package/config/agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  60. package/config/agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
  61. package/config/agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
  62. package/config/agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  63. package/config/agent/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  64. package/config/agent/skills/ui-ux-pro-max/scripts/analyze.py +434 -0
  65. package/config/agent/skills/ui-ux-pro-max/scripts/core.py +238 -0
  66. package/config/agent/skills/ui-ux-pro-max/scripts/search.py +61 -0
  67. package/config/agent/skills/unit-test/SKILL.md +115 -0
  68. package/config/agent/themes/catppuccin-mocha.json +99 -0
  69. package/config.json +6 -0
  70. package/dist/banner.d.ts +10 -0
  71. package/dist/banner.d.ts.map +1 -0
  72. package/dist/banner.js +32 -0
  73. package/dist/banner.js.map +1 -0
  74. package/dist/config-loader.d.ts +17 -0
  75. package/dist/config-loader.d.ts.map +1 -0
  76. package/dist/config-loader.js +60 -0
  77. package/dist/config-loader.js.map +1 -0
  78. package/dist/config.d.ts +23 -0
  79. package/dist/config.d.ts.map +1 -0
  80. package/dist/config.js +12 -0
  81. package/dist/config.js.map +1 -0
  82. package/dist/index.d.ts +11 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +14 -0
  85. package/dist/index.js.map +1 -0
  86. package/package.json +69 -0
  87. package/scripts/postinstall.js +197 -0
@@ -0,0 +1,194 @@
1
+ ---
2
+ description: 'äø“äøšAIē¼–ēØ‹åŠ©ę‰‹ļ¼Œęä¾›ē»“ęž„åŒ–å…­é˜¶ę®µå¼€å‘å·„ä½œęµļ¼ˆē ”ē©¶ā†’ęž„ę€ā†’č®”åˆ’ā†’ę‰§č”Œā†’ä¼˜åŒ–ā†’čÆ„å®”ļ¼‰ļ¼Œé€‚ē”ØäŗŽäø“äøšå¼€å‘č€…'
3
+ ---
4
+
5
+ # Workflow - äø“äøšå¼€å‘åŠ©ę‰‹
6
+
7
+ ä½æē”Øč“Øé‡ęŠŠå…³å’Œ MCP ęœåŠ”é›†ęˆę‰§č”Œē»“ęž„åŒ–å¼€å‘å·„ä½œęµć€‚
8
+
9
+ ## 使用方法
10
+
11
+ ```bash
12
+ /workflow <ä»»åŠ”ęčæ°>
13
+ ```
14
+
15
+ ## äøŠäø‹ę–‡
16
+
17
+ - č¦å¼€å‘ēš„ä»»åŠ”ļ¼š$ARGUMENTS
18
+ - åø¦č“Øé‡ęŠŠå…³ēš„ē»“ęž„åŒ– 6 阶段巄作流
19
+ - é¢å‘äø“äøšå¼€å‘č€…ēš„äŗ¤äŗ’
20
+ - MCP ęœåŠ”é›†ęˆä»„å¢žå¼ŗåŠŸčƒ½
21
+
22
+ ## ä½ ēš„č§’č‰²
23
+
24
+ 你是 IDE ēš„ AI ē¼–ēØ‹åŠ©ę‰‹ļ¼Œéµå¾Ŗę øåæƒå·„ä½œęµļ¼ˆē ”ē©¶ -> Ꞅꀝ -> č®”åˆ’ -> ę‰§č”Œ -> 优化 -> čÆ„å®”ļ¼‰ē”Øäø­ę–‡ååŠ©ē”Øęˆ·ļ¼Œé¢å‘äø“äøšēØ‹åŗå‘˜ļ¼Œäŗ¤äŗ’åŗ”ē®€ę“äø“äøšļ¼Œéæå…äøåæ…č¦č§£é‡Šć€‚
25
+
26
+ [ę²Ÿé€šå®ˆåˆ™]
27
+
28
+ 1. å“åŗ”ä»„ęØ”å¼ę ‡ē­¾ `[ęØ”å¼ļ¼šX]` å¼€å§‹ļ¼Œåˆå§‹äøŗ `[ęØ”å¼ļ¼šē ”ē©¶]`怂
29
+ 2. ę øåæƒå·„ä½œęµäø„ę ¼ęŒ‰ `研究 -> Ꞅꀝ -> č®”åˆ’ -> ę‰§č”Œ -> 优化 -> 评宔` é”ŗåŗęµč½¬ļ¼Œē”Øęˆ·åÆęŒ‡ä»¤č·³č½¬ć€‚
30
+
31
+ [核心巄作流详解]
32
+
33
+ 1. `[ęØ”å¼ļ¼šē ”ē©¶]`ļ¼šē†č§£éœ€ę±‚å¹¶čÆ„ä¼°å®Œę•“ę€§ļ¼ˆ0-10 åˆ†ļ¼‰ļ¼Œä½ŽäŗŽ 7 åˆ†ę—¶äø»åŠØč¦ę±‚č”„å……å…³é”®äæ”ęÆć€‚
34
+ 2. `[ęØ”å¼ļ¼šęž„ę€]`ļ¼šęä¾›č‡³å°‘äø¤ē§åÆč”Œę–¹ę”ˆåŠčÆ„ä¼°ļ¼ˆä¾‹å¦‚ļ¼š`ę–¹ę”ˆ 1ļ¼šęčæ°`)。
35
+ 3. `[ęØ”å¼ļ¼šč®”åˆ’]`ļ¼šå°†é€‰å®šę–¹ę”ˆē»†åŒ–äøŗčÆ¦å°½ć€ęœ‰åŗć€åÆę‰§č”Œēš„ę­„éŖ¤ęø…å•ļ¼ˆå«åŽŸå­ę“ä½œļ¼šę–‡ä»¶ć€å‡½ę•°/ē±»ć€é€»č¾‘ę¦‚č¦ļ¼›é¢„ęœŸē»“ęžœļ¼›ę–°åŗ“ē”Ø `Context7` ęŸ„čÆ¢ļ¼‰ć€‚äøå†™å®Œę•“ä»£ē ć€‚å®ŒęˆåŽčÆ·ę±‚ē”Øęˆ·ę‰¹å‡†ć€‚
36
+ 4. `[ęØ”å¼ļ¼šę‰§č”Œ]`ļ¼šåæ…é”»ē”Øęˆ·ę‰¹å‡†ę–¹åÆę‰§č”Œć€‚äø„ę ¼ęŒ‰č®”åˆ’ē¼–ē ę‰§č”Œć€‚č®”åˆ’ē®€č¦ļ¼ˆå«äøŠäø‹ę–‡å’Œč®”åˆ’ļ¼‰å­˜å…„å½“å‰é”¹ē›®ę ¹ē›®å½•ēš„`.claude/plan/任劔名.md`ć€‚å…³é”®ę­„éŖ¤åŽåŠå®Œęˆę—¶čÆ·ę±‚ē”Øęˆ·åé¦ˆć€‚
37
+ 5. `[ęØ”å¼ļ¼šä¼˜åŒ–]`:在 `[ęØ”å¼ļ¼šę‰§č”Œ]` å®ŒęˆåŽļ¼Œåæ…é”»č‡ŖåŠØčæ›č”Œęœ¬ęØ”å¼ `[ęØ”å¼ļ¼šä¼˜åŒ–]`ļ¼Œč‡ŖåŠØę£€ęŸ„å¹¶åˆ†ęžęœ¬ę¬”ä»»åŠ”å·²å®žēŽ°ļ¼ˆä»…ęœ¬ę¬”åÆ¹čÆäŗ§ē”Ÿēš„ē›øå…³ä»£ē ļ¼‰ļ¼ŒåœØ `[ęØ”å¼ļ¼šę‰§č”Œ]` äø‹äŗ§ē”Ÿēš„ē›øå…³ä»£ē ć€‚čšē„¦å†—ä½™ć€ä½Žę•ˆć€åžƒåœ¾ä»£ē ļ¼Œęå‡ŗå…·ä½“ä¼˜åŒ–å»ŗč®®ļ¼ˆå«ä¼˜åŒ–ē†ē”±äøŽé¢„ęœŸę”¶ē›Šļ¼‰ļ¼Œē”Øęˆ·ē”®č®¤åŽę‰§č”Œē›øå…³ä¼˜åŒ–åŠŸčƒ½ć€‚
38
+ 6. `[ęØ”å¼ļ¼ščÆ„å®”]`ļ¼šåÆ¹ē…§č®”åˆ’čÆ„ä¼°ę‰§č”Œē»“ęžœļ¼ŒęŠ„å‘Šé—®é¢˜äøŽå»ŗč®®ć€‚å®ŒęˆåŽčÆ·ę±‚ē”Øęˆ·ē”®č®¤ć€‚
39
+
40
+ [äø»åŠØåé¦ˆäøŽ MCP ęœåŠ”]
41
+
42
+ # äø»åŠØåé¦ˆč§„åˆ™
43
+
44
+ 1. åœØä»»ä½•ęµēØ‹ć€ä»»åŠ”ć€åÆ¹čÆčæ›č”Œę—¶ļ¼Œę— č®ŗę˜ÆčÆ¢é—®ć€å›žå¤ć€ęˆ–å®Œęˆé˜¶ę®µę€§ä»»åŠ”ļ¼Œēš†åæ…é”»čÆ·ę±‚ē”Øęˆ·ē”®č®¤ć€‚
45
+ 2. ęÆå½“ę”¶åˆ°ē”Øęˆ·åé¦ˆļ¼Œč‹„åé¦ˆå†…å®¹éžē©ŗļ¼Œåæ…é”»å†ę¬”čÆ·ę±‚ē”Øęˆ·ē”®č®¤ļ¼Œå¹¶ę ¹ę®åé¦ˆå†…å®¹č°ƒę•“č”Œäøŗć€‚
46
+ 3. ä»…å½“ē”Øęˆ·ę˜Žē”®č”Øē¤ŗć€Œē»“ęŸć€ęˆ–ć€Œäøå†éœ€č¦äŗ¤äŗ’ć€ę—¶, ę‰åÆåœę­¢čÆ·ę±‚ē”Øęˆ·ē”®č®¤ļ¼ŒęµēØ‹ę‰ē®—ē»“ęŸć€‚
47
+ 4. é™¤éžę”¶åˆ°ē»“ęŸęŒ‡ä»¤ļ¼Œå¦åˆ™ę‰€ęœ‰ę­„éŖ¤éƒ½åæ…é”»é‡å¤čÆ·ę±‚ē”Øęˆ·ē”®č®¤ć€‚
48
+ 5. å®Œęˆä»»åŠ”å‰ļ¼Œåæ…é”»čÆ·ę±‚ē”Øęˆ·ē”®č®¤ļ¼Œå¹¶å‘ē”Øęˆ·čÆ¢é—®åé¦ˆć€‚
49
+
50
+ ---
51
+
52
+ ## ę‰§č”Œå·„ä½œęµ
53
+
54
+ **ä»»åŠ”ęčæ°**:$ARGUMENTS
55
+
56
+ ę­£åœØåÆåŠØåø¦č“Øé‡ęŠŠå…³ēš„ē»“ęž„åŒ–å¼€å‘å·„ä½œęµ...
57
+
58
+ ### šŸ” 阶ꮵ 1ļ¼šē ”ē©¶äøŽåˆ†ęž
59
+
60
+ [ęØ”å¼ļ¼šē ”ē©¶] - ē†č§£éœ€ę±‚å¹¶ę”¶é›†äøŠäø‹ę–‡ļ¼š
61
+
62
+ #### éœ€ę±‚å®Œę•“ę€§čÆ„åˆ†ļ¼ˆ0-10 åˆ†ļ¼‰
63
+
64
+ čÆ„åˆ†ē»“åŗ¦ļ¼š
65
+
66
+ - **ē›®ę ‡ę˜Žē”®ę€§**(0-3 åˆ†ļ¼‰ļ¼šä»»åŠ”ē›®ę ‡ę˜Æå¦ęø…ę™°å…·ä½“ļ¼Œč¦č§£å†³ä»€ä¹ˆé—®é¢˜
67
+ - **é¢„ęœŸē»“ęžœ**(0-3 åˆ†ļ¼‰ļ¼šęˆåŠŸę ‡å‡†å’Œäŗ¤ä»˜ē‰©ę˜Æå¦ę˜Žē”®å®šä¹‰
68
+ - **č¾¹ē•ŒčŒƒå›“**(0-2 åˆ†ļ¼‰ļ¼šä»»åŠ”čŒƒå›“å’Œč¾¹ē•Œę˜Æå¦ęø…ę„š
69
+ - **ēŗ¦ęŸę”ä»¶**(0-2 åˆ†ļ¼‰ļ¼šę—¶é—“ć€ę€§čƒ½ć€äøšåŠ”é™åˆ¶ē­‰ę˜Æå¦čÆ“ę˜Ž
70
+
71
+ ę³Øļ¼šęŠ€ęœÆę ˆć€ę”†ęž¶ē‰ˆęœ¬ē­‰äæ”ęÆå°†ä»Žé”¹ē›®č‡ŖåŠØčÆ†åˆ«ļ¼Œäøč®”å…„čÆ„åˆ†
72
+
73
+ **čÆ„åˆ†č§„åˆ™**:
74
+
75
+ - 9-10 åˆ†ļ¼šéœ€ę±‚éžåøøå®Œę•“ļ¼ŒåÆē›“ęŽ„čæ›å…„äø‹äø€é˜¶ę®µ
76
+ - 7-8 åˆ†ļ¼šéœ€ę±‚åŸŗęœ¬å®Œę•“ļ¼Œå»ŗč®®č”„å……äøŖåˆ«ē»†čŠ‚
77
+ - 5-6 åˆ†ļ¼šéœ€ę±‚ęœ‰ę˜Žę˜¾ē¼ŗå¤±ļ¼Œåæ…é”»č”„å……å…³é”®äæ”ęÆ
78
+ - 0-4 åˆ†ļ¼šéœ€ę±‚čæ‡äŗŽęØ”ē³Šļ¼Œéœ€č¦é‡ę–°ęčæ°
79
+
80
+ **å½“čÆ„åˆ†ä½ŽäŗŽ 7 åˆ†ę—¶ļ¼Œäø»åŠØęå‡ŗč”„å……é—®é¢˜**:
81
+
82
+ - čÆ†åˆ«ē¼ŗå¤±ēš„å…³é”®äæ”ęÆē»“åŗ¦
83
+ - é’ˆåÆ¹ęÆäøŖē¼ŗå¤±ē»“åŗ¦ęå‡ŗ 1-2 äøŖå…·ä½“é—®é¢˜
84
+ - ęä¾›ē¤ŗä¾‹åø®åŠ©ē”Øęˆ·ē†č§£éœ€č¦ēš„äæ”ęÆē±»åž‹
85
+ - ē­‰å¾…ē”Øęˆ·č”„å……åŽé‡ę–°čÆ„åˆ†
86
+
87
+ **čÆ„åˆ†ē¤ŗä¾‹**:
88
+
89
+ ```
90
+ ē”Øęˆ·éœ€ę±‚ļ¼š"åø®ęˆ‘ä¼˜åŒ–ä»£ē "
91
+ čÆ„åˆ†åˆ†ęžļ¼š
92
+ - ē›®ę ‡ę˜Žē”®ę€§ļ¼š0/3åˆ†ļ¼ˆęœŖčÆ“ę˜Žä¼˜åŒ–ä»€ä¹ˆä»£ē ć€č§£å†³ä»€ä¹ˆé—®é¢˜ļ¼‰
93
+ - é¢„ęœŸē»“ęžœļ¼š0/3åˆ†ļ¼ˆęœŖå®šä¹‰ä¼˜åŒ–ęˆåŠŸę ‡å‡†ć€ęœŸęœ›č¾¾åˆ°ä»€ä¹ˆę•ˆęžœļ¼‰
94
+ - č¾¹ē•ŒčŒƒå›“ļ¼š1/2åˆ†ļ¼ˆåŖēŸ„é“ę˜Æä»£ē ä¼˜åŒ–ļ¼Œä½†čŒƒå›“äøę˜Žļ¼‰
95
+ - ēŗ¦ęŸę”ä»¶ļ¼š0/2åˆ†ļ¼ˆę— ę€§čƒ½ęŒ‡ę ‡ć€ę—¶é—“é™åˆ¶čÆ“ę˜Žļ¼‰
96
+ ę€»åˆ†ļ¼š1/10 - éœ€č¦å¤§é‡č”„å……äæ”ęÆ
97
+
98
+ éœ€č¦č”„å……ēš„é—®é¢˜ļ¼š
99
+ 1. čÆ·é—®ę‚Øč¦ä¼˜åŒ–å“ŖäøŖę–‡ä»¶ęˆ–ęØ”å—ēš„ä»£ē ļ¼Ÿ
100
+ 2. å½“å‰å­˜åœØä»€ä¹ˆå…·ä½“é—®é¢˜éœ€č¦ä¼˜åŒ–ļ¼Ÿ
101
+ 3. ęœŸęœ›ä¼˜åŒ–åŽč¾¾åˆ°ä»€ä¹ˆę•ˆęžœļ¼ˆå¦‚å“åŗ”ę—¶é—“ęå‡ć€ä»£ē é‡å‡å°‘ē­‰ļ¼‰ļ¼Ÿ
102
+ 4. ęœ‰å…·ä½“ēš„ę€§čƒ½ęŒ‡ę ‡ęˆ–ę—¶é—“č¦ę±‚å—ļ¼Ÿ
103
+ ```
104
+
105
+ **åøøē”Øč”„å……é—®é¢˜ęØ”ęæ**:
106
+
107
+ - ē›®ę ‡ē±»ļ¼š"ę‚ØåøŒęœ›å®žēŽ°ä»€ä¹ˆå…·ä½“åŠŸčƒ½/ę•ˆęžœļ¼Ÿ" "å½“å‰å­˜åœØä»€ä¹ˆå…·ä½“é—®é¢˜ļ¼Ÿ"
108
+ - ē»“ęžœē±»ļ¼š"å¦‚ä½•åˆ¤ę–­ä»»åŠ”ęˆåŠŸå®Œęˆļ¼Ÿ" "ęœŸęœ›ēš„č¾“å‡ŗ/ę•ˆęžœę˜Æä»€ä¹ˆļ¼Ÿ"
109
+ - čŒƒå›“ē±»ļ¼š"éœ€č¦å¤„ē†å“Ŗäŗ›å…·ä½“ę–‡ä»¶/ęØ”å—ļ¼Ÿ" "äøéœ€č¦åŒ…å«ä»€ä¹ˆļ¼Ÿ"
110
+ - ēŗ¦ęŸē±»ļ¼š"ę—¶é—“č¦ę±‚ę˜Æę€Žę ·ēš„ļ¼Ÿ" "ęœ‰ä»€ä¹ˆäøšåŠ”é™åˆ¶ęˆ–ę€§čƒ½č¦ę±‚ļ¼Ÿ"
111
+
112
+ **č‡ŖåŠØčŽ·å–ēš„é”¹ē›®äæ”ęÆ**ļ¼ˆäøéœ€č¦čÆ¢é—®ļ¼‰ļ¼š
113
+
114
+ - ęŠ€ęœÆę ˆļ¼ˆä»Ž CLAUDE.md态package.json态requirements.txt ē­‰čŽ·å–ļ¼‰
115
+ - ę”†ęž¶ē‰ˆęœ¬ļ¼ˆä»Ž CLAUDE.mdć€é…ē½®ę–‡ä»¶čŽ·å–ļ¼‰
116
+ - é”¹ē›®ē»“ęž„ļ¼ˆä»Žę–‡ä»¶ē³»ē»ŸčŽ·å–ļ¼‰
117
+ - ēŽ°ęœ‰ä»£ē č§„čŒƒļ¼ˆä»Ž CLAUDE.mdć€é…ē½®ę–‡ä»¶å’ŒēŽ°ęœ‰ä»£ē čŽ·å–ļ¼‰
118
+ - å¼€å‘å‘½ä»¤ļ¼ˆä»Ž CLAUDE.md čŽ·å–ļ¼Œå¦‚ęž„å»ŗć€ęµ‹čÆ•ć€ē±»åž‹ę£€ęŸ„ē­‰ļ¼‰
119
+
120
+ #### ę‰§č”Œę­„éŖ¤
121
+
122
+ - åˆ†ęžä»»åŠ”éœ€ę±‚å’Œēŗ¦ęŸ
123
+ - čæ›č”Œéœ€ę±‚å®Œę•“ę€§čÆ„åˆ†ļ¼ˆę˜¾ē¤ŗå…·ä½“å¾—åˆ†ļ¼‰
124
+ - čÆ†åˆ«å…³é”®ē›®ę ‡å’ŒęˆåŠŸę ‡å‡†
125
+ - ę”¶é›†åæ…č¦ēš„ęŠ€ęœÆäøŠäø‹ę–‡
126
+ - å¦‚éœ€č¦ļ¼Œä½æē”Ø MCP ęœåŠ”čŽ·å–é¢å¤–äæ”ęÆ
127
+
128
+ ### šŸ’” 阶ꮵ 2ļ¼šę–¹ę”ˆęž„ę€
129
+
130
+ [ęØ”å¼ļ¼šęž„ę€] - č®¾č®”č§£å†³ę–¹ę”ˆļ¼š
131
+
132
+ - ē”Ÿęˆå¤šäøŖåÆč”Œēš„č§£å†³ę–¹ę”ˆ
133
+ - čÆ„ä¼°ęÆē§ę–¹ę³•ēš„ä¼˜ē¼ŗē‚¹
134
+ - ęä¾›čÆ¦ē»†ēš„ęÆ”č¾ƒå’ŒęŽØč
135
+ - č€ƒč™‘ęŠ€ęœÆēŗ¦ęŸå’Œęœ€ä½³å®žč·µ
136
+
137
+ ### šŸ“‹ 阶ꮵ 3ļ¼ščÆ¦ē»†č§„åˆ’
138
+
139
+ [ęØ”å¼ļ¼šč®”åˆ’] - åˆ›å»ŗę‰§č”Œč·Æēŗæå›¾ļ¼š
140
+
141
+ - å°†č§£å†³ę–¹ę”ˆåˆ†č§£äøŗåŽŸå­ēš„ć€åÆę‰§č”Œēš„ę­„éŖ¤
142
+ - å®šä¹‰ę–‡ä»¶ē»“ęž„ć€å‡½ę•°/ē±»å’Œé€»č¾‘ę¦‚čæ°
143
+ - äøŗęÆäøŖę­„éŖ¤ęŒ‡å®šé¢„ęœŸē»“ęžœ
144
+ - å¦‚éœ€č¦ļ¼Œä½æē”Ø Context7 ęŸ„čÆ¢ę–°åŗ“
145
+ - åœØē»§ē»­ä¹‹å‰čÆ·ę±‚ē”Øęˆ·ę‰¹å‡†
146
+
147
+ ### ⚔ 阶ꮵ 4ļ¼šå®žę–½
148
+
149
+ [ęØ”å¼ļ¼šę‰§č”Œ] - ä»£ē å¼€å‘ļ¼š
150
+
151
+ - ę ¹ę®ę‰¹å‡†ēš„č®”åˆ’å®žę–½
152
+ - éµå¾Ŗå¼€å‘ęœ€ä½³å®žč·µ
153
+ - åœØåÆ¼å…„čÆ­å„ä¹‹å‰ę·»åŠ ä½æē”Øę–¹ę³•ļ¼ˆå…³é”®č§„åˆ™ļ¼‰
154
+ - åœØé”¹ē›®ę ¹ē›®å½• `.claude/plan/任劔名.md` äø­å­˜å‚Øę‰§č”Œč®”åˆ’
155
+ - åœØå…³é”®é‡ŒēØ‹ē¢‘čÆ·ę±‚åé¦ˆ
156
+
157
+ ### šŸš€ 阶ꮵ 5ļ¼šä»£ē ä¼˜åŒ–
158
+
159
+ [ęØ”å¼ļ¼šä¼˜åŒ–] - č“Øé‡ę”¹čæ›ļ¼š
160
+
161
+ - č‡ŖåŠØåˆ†ęžå·²å®žēŽ°ēš„ä»£ē 
162
+ - čÆ†åˆ«å†—ä½™ć€ä½Žę•ˆęˆ–ęœ‰é—®é¢˜ēš„ä»£ē 
163
+ - ęä¾›å…·ä½“ēš„ä¼˜åŒ–å»ŗč®®
164
+ - åœØē”Øęˆ·ē”®č®¤åŽę‰§č”Œę”¹čæ›
165
+
166
+ ### āœ… 阶ꮵ 6ļ¼šč“Øé‡å®”ęŸ„
167
+
168
+ [ęØ”å¼ļ¼ščÆ„å®”] - ęœ€ē»ˆčÆ„ä¼°ļ¼š
169
+
170
+ - å°†ē»“ęžœäøŽåŽŸå§‹č®”åˆ’čæ›č”ŒęÆ”č¾ƒ
171
+ - čÆ†åˆ«ä»»ä½•å‰©ä½™ēš„é—®é¢˜ęˆ–ę”¹čæ›
172
+ - ęä¾›å®Œęˆę€»ē»“å’Œå»ŗč®®
173
+ - čÆ·ę±‚ęœ€ē»ˆē”Øęˆ·ē”®č®¤
174
+
175
+ ## é¢„ęœŸč¾“å‡ŗē»“ęž„
176
+
177
+ ```
178
+ project/ # 锹目根目录
179
+ ā”œā”€ā”€ .claude/
180
+ │ └── plan/
181
+ │ └── 任劔名.md # ę‰§č”Œč®”åˆ’å’ŒäøŠäø‹ę–‡ļ¼ˆåœØé”¹ē›®ę ¹ē›®å½•ļ¼‰
182
+ ā”œā”€ā”€ src/
183
+ │ ā”œā”€ā”€ components/
184
+ │ ā”œā”€ā”€ services/
185
+ │ ā”œā”€ā”€ utils/
186
+ │ └── types/
187
+ ā”œā”€ā”€ tests/
188
+ │ ā”œā”€ā”€ unit/
189
+ │ ā”œā”€ā”€ integration/
190
+ │ └── e2e/
191
+ └── README.md
192
+ ```
193
+
194
+ **ä½æē”Øęä¾›ēš„ä»»åŠ”ęčæ°å¼€å§‹ę‰§č”Œļ¼Œå¹¶åœØęÆäøŖé˜¶ę®µå®ŒęˆåŽęŠ„å‘Ščæ›åŗ¦ć€‚**
@@ -0,0 +1,7 @@
1
+ {
2
+ "defaultProvider": "minimax-custom",
3
+ "defaultModel": "MiniMax-M2.5",
4
+ "quietStartup": true,
5
+
6
+ "theme": "light"
7
+ }
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: code-review
3
+ description: "ę‰§č”Œå…Øé¢ēš„ä»£ē å®”ęŸ„ļ¼Œę£€ęŸ„ä»£ē č“Øé‡ć€å®‰å…Øę€§ć€ę€§čƒ½å’Œęœ€ä½³å®žč·µć€‚"
4
+ author: xujianjiang
5
+ ---
6
+
7
+ # 代码宔柄 Skill
8
+
9
+ ## ęčæ°
10
+ ę‰§č”Œå…Øé¢ēš„ä»£ē å®”ęŸ„ļ¼Œę£€ęŸ„ä»£ē č“Øé‡ć€å®‰å…Øę€§ć€ę€§čƒ½å’Œęœ€ä½³å®žč·µć€‚
11
+
12
+ ## č§¦å‘ę–¹å¼
13
+ `/skill:code-review`
14
+
15
+ ## ę‰§č”Œę­„éŖ¤
16
+
17
+ 1. **čÆ»å–č¦å®”ęŸ„ēš„ę–‡ä»¶**
18
+ - 使用 `read` å·„å…·čÆ»å–ä»£ē ę–‡ä»¶
19
+
20
+ 2. **ę‰§č”Œä»£ē å®”ęŸ„**
21
+ - ę£€ęŸ„ä»£ē ē»“ęž„å’Œč®¾č®”ęØ”å¼
22
+ - ę£€ęŸ„å®‰å…Øę¼ę“žļ¼ˆSQL注兄、XSS等)
23
+ - ę£€ęŸ„ę€§čƒ½é—®é¢˜
24
+ - ę£€ęŸ„ä»£ē åÆčÆ»ę€§å’Œē»“ęŠ¤ę€§
25
+ - ę£€ęŸ„é”™čÆÆå¤„ē†
26
+ - ę£€ęŸ„ęµ‹čÆ•č¦†ē›–
27
+
28
+ 3. **ē”Ÿęˆå®”ęŸ„ęŠ„å‘Š**
29
+ - åˆ—å‡ŗå‘ēŽ°ēš„é—®é¢˜
30
+ - ęä¾›äæ®å¤å»ŗč®®
31
+ - 给出总体评价
32
+
33
+ ## č¾“å‡ŗę ¼å¼
34
+
35
+ ```
36
+ ## ä»£ē å®”ęŸ„ęŠ„å‘Š
37
+
38
+ ### ꖇ件: {filename}
39
+
40
+ #### 问题
41
+ - [äø„é‡] {issue}
42
+ - [äø­ē­‰] {issue}
43
+ - [建议] {issue}
44
+
45
+ #### 建议
46
+ 1. {suggestion}
47
+
48
+ #### 总体评价
49
+ {summary}
50
+ ```
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: commit
3
+ description: "åˆ†ęžä»£ē å˜ę›“å¹¶ē”Ÿęˆč§„čŒƒēš„ Git commit ę¶ˆęÆć€‚"
4
+ author: xujianjiang
5
+ ---
6
+
7
+ # Git Commit Skill
8
+
9
+ ## ęčæ°
10
+ åˆ†ęžä»£ē å˜ę›“å¹¶ē”Ÿęˆč§„čŒƒēš„ Git commit ę¶ˆęÆć€‚
11
+
12
+ ## č§¦å‘ę–¹å¼
13
+ `/skill:commit`
14
+
15
+ ## ę‰§č”Œę­„éŖ¤
16
+
17
+ 1. **čŽ·å–å˜ę›“ę–‡ä»¶**
18
+ - 运蔌 `git status` ęŸ„ēœ‹å˜ę›“ę–‡ä»¶
19
+ - 运蔌 `git diff` ęŸ„ēœ‹å…·ä½“å˜ę›“å†…å®¹
20
+
21
+ 2. **åˆ†ęžå˜ę›“**
22
+ - čÆ†åˆ«å˜ę›“ē±»åž‹ļ¼ˆfeat/fix/docs/style/refactor/test/chore)
23
+ - ęå–å…³é”®å˜ę›“ē‚¹
24
+ - ē”®å®šå½±å“čŒƒå›“
25
+
26
+ 3. **ē”Ÿęˆ Commit 消息**
27
+ - 使用Conventional Commitsę ¼å¼
28
+ - ę ¼å¼: `<type>(<scope>): <description>`
29
+ - ę·»åŠ čÆ¦ē»† body čÆ“ę˜Žļ¼ˆå¦‚ęžœéœ€č¦ļ¼‰
30
+ - 添加 footer ē”ØäŗŽ breaking changes ꈖ issue 引用
31
+
32
+ 4. **ę‰§č”Œ Commit**
33
+ - å…ˆę˜¾ē¤ŗ commit ę¶ˆęÆä¾›ē”Øęˆ·ē”®č®¤
34
+ - ē”Øęˆ·ē”®č®¤åŽę‰§č”Œ `git commit -m "..."`
35
+
36
+ ## č¾“å‡ŗę ¼å¼
37
+
38
+ ```
39
+ feat: ę·»åŠ ē”Øęˆ·ē™»å½•åŠŸčƒ½
40
+
41
+ - å®žēŽ°ē”Øęˆ·ååÆ†ē ē™»å½•
42
+ - 添加 token 验证
43
+ - 集ꈐ OAuth 第三方登录
44
+
45
+ Closes #123
46
+ ```
47
+
48
+ ## ę³Øę„äŗ‹é”¹
49
+ - ä¼˜å…ˆä½æē”Øč‹±ę–‡ commit 消息
50
+ - äæęŒē®€ēŸ­ęø…ę™°ēš„ęčæ°
51
+ - 72 å­—ē¬¦å†…ę¢č”Œ
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: csv-data-summarizer
3
+ description: Analyzes CSV files, generates summary stats, and plots quick visualizations using Python and pandas.
4
+ metadata:
5
+ version: 2.1.0
6
+ dependencies: python>=3.8, pandas>=2.0.0, matplotlib>=3.7.0, seaborn>=0.12.0
7
+ ---
8
+
9
+ # CSV Data Summarizer
10
+
11
+ This Skill analyzes CSV files and provides comprehensive summaries with statistical insights and visualizations.
12
+
13
+ ## When to Use This Skill
14
+
15
+ Claude should use this Skill whenever the user:
16
+ - Uploads or references a CSV file
17
+ - Asks to summarize, analyze, or visualize tabular data
18
+ - Requests insights from CSV data
19
+ - Wants to understand data structure and quality
20
+
21
+ ## How It Works
22
+
23
+ ## āš ļø CRITICAL BEHAVIOR REQUIREMENT āš ļø
24
+
25
+ **DO NOT ASK THE USER WHAT THEY WANT TO DO WITH THE DATA.**
26
+ **DO NOT OFFER OPTIONS OR CHOICES.**
27
+ **DO NOT SAY "What would you like me to help you with?"**
28
+ **DO NOT LIST POSSIBLE ANALYSES.**
29
+
30
+ **IMMEDIATELY AND AUTOMATICALLY:**
31
+ 1. Run the comprehensive analysis
32
+ 2. Generate ALL relevant visualizations
33
+ 3. Present complete results
34
+ 4. NO questions, NO options, NO waiting for user input
35
+
36
+ **THE USER WANTS A FULL ANALYSIS RIGHT AWAY - JUST DO IT.**
37
+
38
+ ### Automatic Analysis Steps:
39
+
40
+ **The skill intelligently adapts to different data types and industries by inspecting the data first, then determining what analyses are most relevant.**
41
+
42
+ 1. **Load and inspect** the CSV file into pandas DataFrame
43
+ 2. **Identify data structure** - column types, date columns, numeric columns, categories
44
+ 3. **Determine relevant analyses** based on what's actually in the data:
45
+ - **Sales/E-commerce data** (order dates, revenue, products): Time-series trends, revenue analysis, product performance
46
+ - **Customer data** (demographics, segments, regions): Distribution analysis, segmentation, geographic patterns
47
+ - **Financial data** (transactions, amounts, dates): Trend analysis, statistical summaries, correlations
48
+ - **Operational data** (timestamps, metrics, status): Time-series, performance metrics, distributions
49
+ - **Survey data** (categorical responses, ratings): Frequency analysis, cross-tabulations, distributions
50
+ - **Generic tabular data**: Adapts based on column types found
51
+
52
+ 4. **Only create visualizations that make sense** for the specific dataset:
53
+ - Time-series plots ONLY if date/timestamp columns exist
54
+ - Correlation heatmaps ONLY if multiple numeric columns exist
55
+ - Category distributions ONLY if categorical columns exist
56
+ - Histograms for numeric distributions when relevant
57
+
58
+ 5. **Generate comprehensive output** automatically including:
59
+ - Data overview (rows, columns, types)
60
+ - Key statistics and metrics relevant to the data type
61
+ - Missing data analysis
62
+ - Multiple relevant visualizations (only those that apply)
63
+ - Actionable insights based on patterns found in THIS specific dataset
64
+
65
+ 6. **Present everything** in one complete analysis - no follow-up questions
66
+
67
+ **Example adaptations:**
68
+ - Healthcare data with patient IDs → Focus on demographics, treatment patterns, temporal trends
69
+ - Inventory data with stock levels → Focus on quantity distributions, reorder patterns, SKU analysis
70
+ - Web analytics with timestamps → Focus on traffic patterns, conversion metrics, time-of-day analysis
71
+ - Survey responses → Focus on response distributions, demographic breakdowns, sentiment patterns
72
+
73
+ ### Behavior Guidelines
74
+
75
+ āœ… **CORRECT APPROACH - SAY THIS:**
76
+ - "I'll analyze this data comprehensively right now."
77
+ - "Here's the complete analysis with visualizations:"
78
+ - "I've identified this as [type] data and generated relevant insights:"
79
+ - Then IMMEDIATELY show the full analysis
80
+
81
+ āœ… **DO:**
82
+ - Immediately run the analysis script
83
+ - Generate ALL relevant charts automatically
84
+ - Provide complete insights without being asked
85
+ - Be thorough and complete in first response
86
+ - Act decisively without asking permission
87
+
88
+ āŒ **NEVER SAY THESE PHRASES:**
89
+ - "What would you like to do with this data?"
90
+ - "What would you like me to help you with?"
91
+ - "Here are some common options:"
92
+ - "Let me know what you'd like help with"
93
+ - "I can create a comprehensive analysis if you'd like!"
94
+ - Any sentence ending with "?" asking for user direction
95
+ - Any list of options or choices
96
+ - Any conditional "I can do X if you want"
97
+
98
+ āŒ **FORBIDDEN BEHAVIORS:**
99
+ - Asking what the user wants
100
+ - Listing options for the user to choose from
101
+ - Waiting for user direction before analyzing
102
+ - Providing partial analysis that requires follow-up
103
+ - Describing what you COULD do instead of DOING it
104
+
105
+ ### Usage
106
+
107
+ The Skill provides a Python function `summarize_csv(file_path)` that:
108
+ - Accepts a path to a CSV file
109
+ - Returns a comprehensive text summary with statistics
110
+ - Generates multiple visualizations automatically based on data structure
111
+
112
+ ### Example Prompts
113
+
114
+ > "Here's `sales_data.csv`. Can you summarize this file?"
115
+
116
+ > "Analyze this customer data CSV and show me trends."
117
+
118
+ > "What insights can you find in `orders.csv`?"
119
+
120
+ ### Example Output
121
+
122
+ **Dataset Overview**
123
+ - 5,000 rows Ɨ 8 columns
124
+ - 3 numeric columns, 1 date column
125
+
126
+ **Summary Statistics**
127
+ - Average order value: $58.2
128
+ - Standard deviation: $12.4
129
+ - Missing values: 2% (100 cells)
130
+
131
+ **Insights**
132
+ - Sales show upward trend over time
133
+ - Peak activity in Q4
134
+ *(Attached: trend plot)*
135
+
136
+ ## Files
137
+
138
+ - `analyze.py` - Core analysis logic
139
+ - `requirements.txt` - Python dependencies
140
+ - `resources/sample.csv` - Example dataset for testing
141
+ - `resources/README.md` - Additional documentation
142
+
143
+ ## Notes
144
+
145
+ - Automatically detects date columns (columns containing 'date' in name)
146
+ - Handles missing data gracefully
147
+ - Generates visualizations only when date columns are present
148
+ - All numeric columns are included in statistical summary
149
+
@@ -0,0 +1,182 @@
1
+ import pandas as pd
2
+ import matplotlib.pyplot as plt
3
+ import seaborn as sns
4
+ from pathlib import Path
5
+
6
+ def summarize_csv(file_path):
7
+ """
8
+ Comprehensively analyzes a CSV file and generates multiple visualizations.
9
+
10
+ Args:
11
+ file_path (str): Path to the CSV file
12
+
13
+ Returns:
14
+ str: Formatted comprehensive analysis of the dataset
15
+ """
16
+ df = pd.read_csv(file_path)
17
+ summary = []
18
+ charts_created = []
19
+
20
+ # Basic info
21
+ summary.append("=" * 60)
22
+ summary.append("šŸ“Š DATA OVERVIEW")
23
+ summary.append("=" * 60)
24
+ summary.append(f"Rows: {df.shape[0]:,} | Columns: {df.shape[1]}")
25
+ summary.append(f"\nColumns: {', '.join(df.columns.tolist())}")
26
+
27
+ # Data types
28
+ summary.append(f"\nšŸ“‹ DATA TYPES:")
29
+ for col, dtype in df.dtypes.items():
30
+ summary.append(f" • {col}: {dtype}")
31
+
32
+ # Missing data analysis
33
+ missing = df.isnull().sum().sum()
34
+ missing_pct = (missing / (df.shape[0] * df.shape[1])) * 100
35
+ summary.append(f"\nšŸ” DATA QUALITY:")
36
+ if missing:
37
+ summary.append(f"Missing values: {missing:,} ({missing_pct:.2f}% of total data)")
38
+ summary.append("Missing by column:")
39
+ for col in df.columns:
40
+ col_missing = df[col].isnull().sum()
41
+ if col_missing > 0:
42
+ col_pct = (col_missing / len(df)) * 100
43
+ summary.append(f" • {col}: {col_missing:,} ({col_pct:.1f}%)")
44
+ else:
45
+ summary.append("āœ“ No missing values - dataset is complete!")
46
+
47
+ # Numeric analysis
48
+ numeric_cols = df.select_dtypes(include='number').columns.tolist()
49
+ if numeric_cols:
50
+ summary.append(f"\nšŸ“ˆ NUMERICAL ANALYSIS:")
51
+ summary.append(str(df[numeric_cols].describe()))
52
+
53
+ # Correlations if multiple numeric columns
54
+ if len(numeric_cols) > 1:
55
+ summary.append(f"\nšŸ”— CORRELATIONS:")
56
+ corr_matrix = df[numeric_cols].corr()
57
+ summary.append(str(corr_matrix))
58
+
59
+ # Create correlation heatmap
60
+ plt.figure(figsize=(10, 8))
61
+ sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', center=0,
62
+ square=True, linewidths=1)
63
+ plt.title('Correlation Heatmap')
64
+ plt.tight_layout()
65
+ plt.savefig('correlation_heatmap.png', dpi=150)
66
+ plt.close()
67
+ charts_created.append('correlation_heatmap.png')
68
+
69
+ # Categorical analysis
70
+ categorical_cols = df.select_dtypes(include=['object']).columns.tolist()
71
+ categorical_cols = [c for c in categorical_cols if 'id' not in c.lower()]
72
+
73
+ if categorical_cols:
74
+ summary.append(f"\nšŸ“Š CATEGORICAL ANALYSIS:")
75
+ for col in categorical_cols[:5]: # Limit to first 5
76
+ value_counts = df[col].value_counts()
77
+ summary.append(f"\n{col}:")
78
+ for val, count in value_counts.head(10).items():
79
+ pct = (count / len(df)) * 100
80
+ summary.append(f" • {val}: {count:,} ({pct:.1f}%)")
81
+
82
+ # Time series analysis
83
+ date_cols = [c for c in df.columns if 'date' in c.lower() or 'time' in c.lower()]
84
+ if date_cols:
85
+ summary.append(f"\nšŸ“… TIME SERIES ANALYSIS:")
86
+ date_col = date_cols[0]
87
+ df[date_col] = pd.to_datetime(df[date_col], errors='coerce')
88
+
89
+ date_range = df[date_col].max() - df[date_col].min()
90
+ summary.append(f"Date range: {df[date_col].min()} to {df[date_col].max()}")
91
+ summary.append(f"Span: {date_range.days} days")
92
+
93
+ # Create time-series plots for numeric columns
94
+ if numeric_cols:
95
+ fig, axes = plt.subplots(min(3, len(numeric_cols)), 1,
96
+ figsize=(12, 4 * min(3, len(numeric_cols))))
97
+ if len(numeric_cols) == 1:
98
+ axes = [axes]
99
+
100
+ for idx, num_col in enumerate(numeric_cols[:3]):
101
+ ax = axes[idx] if len(numeric_cols) > 1 else axes[0]
102
+ daily_data = df.groupby(date_col)[num_col].agg(['mean', 'sum', 'count'])
103
+ daily_data['mean'].plot(ax=ax, label='Average', linewidth=2)
104
+ ax.set_title(f'{num_col} Over Time')
105
+ ax.set_xlabel('Date')
106
+ ax.set_ylabel(num_col)
107
+ ax.legend()
108
+ ax.grid(True, alpha=0.3)
109
+
110
+ plt.tight_layout()
111
+ plt.savefig('time_series_analysis.png', dpi=150)
112
+ plt.close()
113
+ charts_created.append('time_series_analysis.png')
114
+
115
+ # Distribution plots for numeric columns
116
+ if numeric_cols:
117
+ n_cols = min(4, len(numeric_cols))
118
+ fig, axes = plt.subplots(2, 2, figsize=(12, 10))
119
+ axes = axes.flatten()
120
+
121
+ for idx, col in enumerate(numeric_cols[:4]):
122
+ axes[idx].hist(df[col].dropna(), bins=30, edgecolor='black', alpha=0.7)
123
+ axes[idx].set_title(f'Distribution of {col}')
124
+ axes[idx].set_xlabel(col)
125
+ axes[idx].set_ylabel('Frequency')
126
+ axes[idx].grid(True, alpha=0.3)
127
+
128
+ # Hide unused subplots
129
+ for idx in range(len(numeric_cols[:4]), 4):
130
+ axes[idx].set_visible(False)
131
+
132
+ plt.tight_layout()
133
+ plt.savefig('distributions.png', dpi=150)
134
+ plt.close()
135
+ charts_created.append('distributions.png')
136
+
137
+ # Categorical distributions
138
+ if categorical_cols:
139
+ fig, axes = plt.subplots(2, 2, figsize=(14, 10))
140
+ axes = axes.flatten()
141
+
142
+ for idx, col in enumerate(categorical_cols[:4]):
143
+ value_counts = df[col].value_counts().head(10)
144
+ axes[idx].barh(range(len(value_counts)), value_counts.values)
145
+ axes[idx].set_yticks(range(len(value_counts)))
146
+ axes[idx].set_yticklabels(value_counts.index)
147
+ axes[idx].set_title(f'Top Values in {col}')
148
+ axes[idx].set_xlabel('Count')
149
+ axes[idx].grid(True, alpha=0.3, axis='x')
150
+
151
+ # Hide unused subplots
152
+ for idx in range(len(categorical_cols[:4]), 4):
153
+ axes[idx].set_visible(False)
154
+
155
+ plt.tight_layout()
156
+ plt.savefig('categorical_distributions.png', dpi=150)
157
+ plt.close()
158
+ charts_created.append('categorical_distributions.png')
159
+
160
+ # Summary of visualizations
161
+ if charts_created:
162
+ summary.append(f"\nšŸ“Š VISUALIZATIONS CREATED:")
163
+ for chart in charts_created:
164
+ summary.append(f" āœ“ {chart}")
165
+
166
+ summary.append("\n" + "=" * 60)
167
+ summary.append("āœ… COMPREHENSIVE ANALYSIS COMPLETE")
168
+ summary.append("=" * 60)
169
+
170
+ return "\n".join(summary)
171
+
172
+
173
+ if __name__ == "__main__":
174
+ # Test with sample data
175
+ import sys
176
+ if len(sys.argv) > 1:
177
+ file_path = sys.argv[1]
178
+ else:
179
+ file_path = "resources/sample.csv"
180
+
181
+ print(summarize_csv(file_path))
182
+
@@ -0,0 +1,46 @@
1
+ month,year,quarter,product_line,total_revenue,cost_of_goods_sold,gross_profit,gross_margin_pct,marketing_expense,sales_expense,rd_expense,admin_expense,total_operating_expenses,operating_income,operating_margin_pct,interest_expense,tax_expense,net_income,net_margin_pct,customer_acquisition_cost,customer_lifetime_value,units_sold,avg_selling_price,headcount,revenue_per_employee
2
+ Jan,2023,Q1,SaaS Platform,450000,135000,315000,70.0,65000,85000,45000,35000,230000,85000,18.9,5000,16000,64000,14.2,125,2400,1200,375,45,10000
3
+ Jan,2023,Q1,Enterprise Solutions,280000,112000,168000,60.0,35000,55000,25000,20000,135000,33000,11.8,3000,6600,23400,8.4,450,8500,450,622,45,6222
4
+ Jan,2023,Q1,Professional Services,125000,50000,75000,60.0,15000,22000,8000,12000,57000,18000,14.4,1500,3600,12900,10.3,200,3200,95,1316,45,2778
5
+ Feb,2023,Q1,SaaS Platform,475000,142500,332500,70.0,68000,89000,47000,36000,240000,92500,19.5,5200,18500,68800,14.5,120,2500,1300,365,47,10106
6
+ Feb,2023,Q1,Enterprise Solutions,295000,118000,177000,60.0,38000,58000,27000,22000,145000,32000,10.8,3200,6400,22400,7.6,440,8600,470,628,47,6277
7
+ Feb,2023,Q1,Professional Services,135000,54000,81000,60.0,16000,24000,9000,13000,62000,19000,14.1,1600,3800,13600,10.1,195,3300,105,1286,47,2872
8
+ Mar,2023,Q1,SaaS Platform,520000,156000,364000,70.0,75000,95000,52000,40000,262000,102000,19.6,5500,19250,77250,14.9,115,2650,1450,359,50,10400
9
+ Mar,2023,Q1,Enterprise Solutions,325000,130000,195000,60.0,42000,63000,30000,25000,160000,35000,10.8,3500,7000,24500,7.5,425,8800,520,625,50,6500
10
+ Mar,2023,Q1,Professional Services,148000,59200,88800,60.0,18000,26000,10000,14000,68000,20800,14.1,1800,4160,14840,10.0,190,3400,115,1287,50,2960
11
+ Apr,2023,Q2,SaaS Platform,555000,166500,388500,70.0,80000,100000,55000,42000,277000,111500,20.1,5800,22300,83400,15.0,110,2750,1550,358,52,10673
12
+ Apr,2023,Q2,Enterprise Solutions,340000,136000,204000,60.0,45000,65000,32000,26000,168000,36000,10.6,3700,7200,25100,7.4,420,9000,540,630,52,6538
13
+ Apr,2023,Q2,Professional Services,158000,63200,94800,60.0,19000,27000,11000,15000,72000,22800,14.4,1900,4560,16340,10.3,185,3500,125,1264,52,3038
14
+ May,2023,Q2,SaaS Platform,590000,177000,413000,70.0,85000,105000,58000,44000,292000,121000,20.5,6000,24200,90800,15.4,105,2850,1650,358,55,10727
15
+ May,2023,Q2,Enterprise Solutions,365000,146000,219000,60.0,48000,68000,35000,28000,179000,40000,11.0,4000,8000,28000,7.7,410,9200,580,629,55,6636
16
+ May,2023,Q2,Professional Services,172000,68800,103200,60.0,21000,29000,12000,16000,78000,25200,14.7,2100,5040,18060,10.5,180,3600,135,1274,55,3127
17
+ Jun,2023,Q2,SaaS Platform,625000,187500,437500,70.0,90000,110000,62000,46000,308000,129500,20.7,6200,25850,97450,15.6,100,2950,1750,357,58,10776
18
+ Jun,2023,Q2,Enterprise Solutions,385000,154000,231000,60.0,50000,70000,37000,29000,186000,45000,11.7,4200,9000,31800,8.3,400,9400,610,631,58,6638
19
+ Jun,2023,Q2,Professional Services,185000,74000,111000,60.0,22000,31000,13000,17000,83000,28000,15.1,2200,5580,20220,10.9,175,3700,145,1276,58,3190
20
+ Jul,2023,Q3,SaaS Platform,665000,199500,465500,70.0,95000,115000,65000,48000,323000,142500,21.4,6500,28500,107500,16.2,95,3050,1850,359,60,11083
21
+ Jul,2023,Q3,Enterprise Solutions,410000,164000,246000,60.0,53000,73000,40000,31000,197000,49000,12.0,4400,9800,34800,8.5,390,9600,650,631,60,6833
22
+ Jul,2023,Q3,Professional Services,198000,79200,118800,60.0,24000,33000,14000,18000,89000,29800,15.1,2400,5960,21440,10.8,170,3800,155,1277,60,3300
23
+ Aug,2023,Q3,SaaS Platform,705000,211500,493500,70.0,100000,120000,68000,50000,338000,155500,22.1,6800,31100,117600,16.7,90,3150,1950,362,63,11190
24
+ Aug,2023,Q3,Enterprise Solutions,435000,174000,261000,60.0,56000,76000,42000,33000,207000,54000,12.4,4600,10800,38600,8.9,380,9800,690,630,63,6905
25
+ Aug,2023,Q3,Professional Services,210000,84000,126000,60.0,25000,35000,15000,19000,94000,32000,15.2,2500,6400,23100,11.0,165,3900,165,1273,63,3333
26
+ Sep,2023,Q3,SaaS Platform,750000,225000,525000,70.0,108000,128000,72000,53000,361000,164000,21.9,7200,33360,123440,16.5,88,3250,2080,360,65,11538
27
+ Sep,2023,Q3,Enterprise Solutions,465000,186000,279000,60.0,60000,80000,45000,35000,220000,59000,12.7,5000,11800,42200,9.1,370,10000,735,633,65,7154
28
+ Sep,2023,Q3,Professional Services,225000,90000,135000,60.0,27000,37000,16000,20000,100000,35000,15.6,2700,6920,25380,11.3,160,4000,175,1286,65,3462
29
+ Oct,2023,Q4,SaaS Platform,795000,238500,556500,70.0,115000,135000,75000,55000,380000,176500,22.2,7500,35870,133130,16.7,85,3350,2200,361,68,11691
30
+ Oct,2023,Q4,Enterprise Solutions,490000,196000,294000,60.0,63000,83000,47000,36000,229000,65000,13.3,5200,13000,46800,9.6,360,10200,770,636,68,7206
31
+ Oct,2023,Q4,Professional Services,238000,95200,142800,60.0,29000,39000,17000,21000,106000,36800,15.5,2800,7360,26640,11.2,158,4100,185,1286,68,3500
32
+ Nov,2023,Q4,SaaS Platform,840000,252000,588000,70.0,122000,142000,78000,58000,400000,188000,22.4,7800,38440,141760,16.9,82,3450,2320,362,70,12000
33
+ Nov,2023,Q4,Enterprise Solutions,520000,208000,312000,60.0,67000,87000,50000,38000,242000,70000,13.5,5500,14100,50400,9.7,355,10400,815,638,70,7429
34
+ Nov,2023,Q4,Professional Services,252000,100800,151200,60.0,31000,41000,18000,22000,112000,39200,15.6,3000,7728,28472,11.3,155,4200,195,1292,70,3600
35
+ Dec,2023,Q4,SaaS Platform,895000,268500,626500,70.0,130000,150000,82000,62000,424000,202500,22.6,8200,41145,153155,17.1,80,3550,2480,361,72,12431
36
+ Dec,2023,Q4,Enterprise Solutions,555000,222000,333000,60.0,72000,92000,53000,40000,257000,76000,13.7,6000,15400,54600,9.8,350,10600,870,638,72,7708
37
+ Dec,2023,Q4,Professional Services,268000,107200,160800,60.0,33000,43000,19000,23000,118000,42800,16.0,3200,8352,31248,11.7,152,4300,205,1307,72,3722
38
+ Jan,2024,Q1,SaaS Platform,925000,277500,647500,70.0,135000,155000,85000,64000,439000,208500,22.5,8500,42070,157930,17.1,78,3650,2550,363,75,12333
39
+ Jan,2024,Q1,Enterprise Solutions,575000,230000,345000,60.0,75000,95000,55000,42000,267000,78000,13.6,6200,15760,56040,9.7,345,10800,900,639,75,7667
40
+ Jan,2024,Q1,Professional Services,280000,112000,168000,60.0,34000,45000,20000,24000,123000,45000,16.1,3300,8770,32930,11.8,150,4400,215,1302,75,3733
41
+ Feb,2024,Q1,SaaS Platform,965000,289500,675500,70.0,140000,160000,88000,66000,454000,221500,23.0,8800,44510,168190,17.4,75,3750,2660,363,77,12532
42
+ Feb,2024,Q1,Enterprise Solutions,600000,240000,360000,60.0,78000,98000,57000,43000,276000,84000,14.0,6400,16800,60800,10.1,340,11000,940,638,77,7792
43
+ Feb,2024,Q1,Professional Services,295000,118000,177000,60.0,36000,47000,21000,25000,129000,48000,16.3,3500,9420,35080,11.9,148,4500,225,1311,77,3831
44
+ Mar,2024,Q1,SaaS Platform,1020000,306000,714000,70.0,148000,168000,92000,69000,477000,237000,23.2,9200,47880,179920,17.6,73,3850,2810,363,80,12750
45
+ Mar,2024,Q1,Enterprise Solutions,635000,254000,381000,60.0,82000,103000,60000,45000,290000,91000,14.3,6800,18200,66000,10.4,335,11200,990,641,80,7938
46
+ Mar,2024,Q1,Professional Services,312000,124800,187200,60.0,38000,49000,22000,26000,135000,52200,16.7,3700,10230,38270,12.3,145,4600,240,1300,80,3900