@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.
- package/README.md +211 -0
- package/bin/cli.js +83 -0
- package/config/agent/APPEND_SYSTEM.md +48 -0
- package/config/agent/SYSTEM.md +33 -0
- package/config/agent/bin/fd +0 -0
- package/config/agent/extensions/context.ts +578 -0
- package/config/agent/extensions/custom-footer.ts +170 -0
- package/config/agent/extensions/custom.ts +289 -0
- package/config/agent/extensions/review.ts +1281 -0
- package/config/agent/extensions/working-msg.ts +96 -0
- package/config/agent/help.md +364 -0
- package/config/agent/models.json +56 -0
- package/config/agent/prompts/feat.md +106 -0
- package/config/agent/prompts/git-commit.md +159 -0
- package/config/agent/prompts/git-rollback.md +91 -0
- package/config/agent/prompts/git-worktree.md +277 -0
- package/config/agent/prompts/help.md +10 -0
- package/config/agent/prompts/init-project.md +53 -0
- package/config/agent/prompts/workflow.md +194 -0
- package/config/agent/settings.json +7 -0
- package/config/agent/skills/code-review/SKILL.md +50 -0
- package/config/agent/skills/commit/SKILL.md +51 -0
- package/config/agent/skills/csv-data-summarizer/SKILL.md +149 -0
- package/config/agent/skills/csv-data-summarizer/analyze.py +182 -0
- package/config/agent/skills/csv-data-summarizer/examples/showcase_financial_pl_data.csv +46 -0
- package/config/agent/skills/csv-data-summarizer/requirements.txt +4 -0
- package/config/agent/skills/csv-data-summarizer/resources/sample.csv +22 -0
- package/config/agent/skills/find-skills/SKILL.md +133 -0
- package/config/agent/skills/frontend-design/LICENSE.txt +177 -0
- package/config/agent/skills/frontend-design/SKILL.md +42 -0
- package/config/agent/skills/github/SKILL.md +47 -0
- package/config/agent/skills/hello/SKILL.md +23 -0
- package/config/agent/skills/librarian/SKILL.md +195 -0
- package/config/agent/skills/markdown-to-html/SKILL.md +62 -0
- package/config/agent/skills/pr/SKILL.md +56 -0
- package/config/agent/skills/refactor/SKILL.md +37 -0
- package/config/agent/skills/skill-creator/LICENSE.txt +202 -0
- package/config/agent/skills/skill-creator/SKILL.md +356 -0
- package/config/agent/skills/skill-creator/references/output-patterns.md +82 -0
- package/config/agent/skills/skill-creator/references/workflows.md +28 -0
- package/config/agent/skills/skill-creator/scripts/init_skill.py +303 -0
- package/config/agent/skills/skill-creator/scripts/package_skill.py +110 -0
- package/config/agent/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/config/agent/skills/ui-ux-pro-max/SKILL.md +264 -0
- package/config/agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/config/agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/config/agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/config/agent/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/config/agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/config/agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/config/agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/config/agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/config/agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/config/agent/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/config/agent/skills/ui-ux-pro-max/scripts/analyze.py +434 -0
- package/config/agent/skills/ui-ux-pro-max/scripts/core.py +238 -0
- package/config/agent/skills/ui-ux-pro-max/scripts/search.py +61 -0
- package/config/agent/skills/unit-test/SKILL.md +115 -0
- package/config/agent/themes/catppuccin-mocha.json +99 -0
- package/config.json +6 -0
- package/dist/banner.d.ts +10 -0
- package/dist/banner.d.ts.map +1 -0
- package/dist/banner.js +32 -0
- package/dist/banner.js.map +1 -0
- package/dist/config-loader.d.ts +17 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config-loader.js +60 -0
- package/dist/config-loader.js.map +1 -0
- package/dist/config.d.ts +23 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/package.json +69 -0
- 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,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
|