@barlevalon/caveman-commit-skill 0.2.0

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 (4) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +7 -0
  3. package/SKILL.md +166 -0
  4. package/package.json +39 -0
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Julius Brussee
4
+ Copyright (c) 2026 Alon Bar-Lev (modifications)
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # caveman-commit
2
+
3
+ Ultra-compressed commit message generator. Uses release-aware scoped commit subjects: scope-first by default, optional Conventional Commit type when it carries useful or project-required metadata. Cuts noise while preserving intent and reasoning. Use when user says "write a commit", "commit message", "generate commit", "/commit", or invokes /caveman-commit. Auto-triggers when staging changes.
4
+
5
+ ## Credits
6
+
7
+ Based on [`JuliusBrussee/caveman`](https://github.com/JuliusBrussee/caveman/tree/main/skills/caveman-commit) by Julius Brussee.
package/SKILL.md ADDED
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: caveman-commit
3
+ description: >
4
+ Ultra-compressed commit message generator. Uses release-aware scoped commit
5
+ subjects: scope-first by default, optional Conventional Commit type when it
6
+ carries useful or project-required metadata. Cuts noise while preserving
7
+ intent and reasoning. Use when user says "write a commit", "commit message",
8
+ "generate commit", "/commit", or invokes /caveman-commit. Auto-triggers when
9
+ staging changes.
10
+ ---
11
+
12
+ Write commit messages terse and exact. Scope first. No fluff. Why over what.
13
+
14
+ ## Format
15
+
16
+ Default subject:
17
+
18
+ ```text
19
+ <scope>: <imperative summary>
20
+ ```
21
+
22
+ Typed subject, when useful or required by project:
23
+
24
+ ```text
25
+ <type>(<scope>): <imperative summary>
26
+ ```
27
+
28
+ Breaking typed subject:
29
+
30
+ ```text
31
+ <type>(<scope>)!: <imperative summary>
32
+ ```
33
+
34
+ ## Subject Rules
35
+
36
+ - Pick meaningful **scope** first: subsystem, user-facing area, domain concept, package, workflow, or module.
37
+ - Use imperative mood: "add", "fix", "remove" — not "added", "adds", "adding".
38
+ - ≤50 chars when possible, hard cap 72.
39
+ - No trailing period.
40
+ - Match project convention for capitalization after colon.
41
+ - Avoid file-location noise when domain scope is clearer.
42
+
43
+ ## When To Use Type
44
+
45
+ Use plain scoped form when type adds no useful signal:
46
+
47
+ ```text
48
+ env: show unknown runtime fields
49
+ backend: persist Slack intake before ACK
50
+ ci: skip Go checks for backend-only changes
51
+ ```
52
+
53
+ Use Conventional Commit type when:
54
+
55
+ - project policy requires it
56
+ - release automation or changelog tooling still consumes it
57
+ - PR title will become squash commit and type helps reviewers
58
+ - TDD phase needs explicit signal: `test`, `fix`, `refactor`
59
+ - change is clearly `docs`, `ci`, `build`, `test`, `refactor`, `perf`, `revert`
60
+ - breaking change needs `!` / `BREAKING CHANGE:` trailer
61
+
62
+ Types:
63
+
64
+ ```text
65
+ feat fix perf refactor docs test chore build ci style revert
66
+ ```
67
+
68
+ Type is metadata, not substitute for good scope.
69
+
70
+ ## Body Rules
71
+
72
+ Skip body when subject is self-explanatory.
73
+
74
+ Add body for:
75
+
76
+ - non-obvious why
77
+ - RED/GREEN/TDD evidence
78
+ - breaking changes
79
+ - security fixes
80
+ - data migrations
81
+ - reverts
82
+ - release commits
83
+ - linked issues/PRs when useful
84
+
85
+ Body rules:
86
+
87
+ - Wrap around 72 chars.
88
+ - Bullets use `-`.
89
+ - Explain why/risk/evidence, not line-by-line diff.
90
+ - Reference issues/PRs at end: `Closes #42`, `Refs #17`.
91
+
92
+ ## What NEVER Goes In
93
+
94
+ - "This commit does X", "I", "we", "now", "currently" — diff shows what.
95
+ - "As requested by..." — use `Co-authored-by` trailer if needed.
96
+ - "Generated with Claude Code" or any AI attribution.
97
+ - Emoji unless project convention requires.
98
+ - Restating file name when scope already says it.
99
+
100
+ ## Examples
101
+
102
+ Simple scoped:
103
+
104
+ ```text
105
+ env: show unknown runtime fields
106
+ ```
107
+
108
+ Typed because project/changelog wants feature metadata:
109
+
110
+ ```text
111
+ feat(api): add GET /users/:id/profile
112
+
113
+ Mobile client needs profile data without the full user payload
114
+ to reduce LTE bandwidth on cold-launch screens.
115
+
116
+ Closes #128
117
+ ```
118
+
119
+ TDD RED commit:
120
+
121
+ ```text
122
+ test(env): cover missing runtime version
123
+
124
+ go test ./internal/env -run TestMissingRuntimeVersion
125
+ fails because unknown runtime fields are dropped.
126
+ ```
127
+
128
+ TDD GREEN commit:
129
+
130
+ ```text
131
+ fix(env): show unknown runtime fields
132
+
133
+ go test ./internal/env -run TestMissingRuntimeVersion
134
+ ```
135
+
136
+ Breaking API change:
137
+
138
+ ```text
139
+ feat(api)!: rename /v1/orders to /v1/checkout
140
+
141
+ BREAKING CHANGE: clients on /v1/orders must migrate to /v1/checkout
142
+ before 2026-06-01. Old route returns 410 after that date.
143
+ ```
144
+
145
+ Release prep:
146
+
147
+ ```text
148
+ release: v1.16.0
149
+
150
+ Validation:
151
+ - go test ./...
152
+ ```
153
+
154
+ ## Auto-Clarity
155
+
156
+ Always include body for breaking changes, security fixes, data migrations,
157
+ release prep, and reverts. Never compress these into subject-only — future
158
+ debuggers need context.
159
+
160
+ If project has its own commit-message policy, follow it over this global skill.
161
+
162
+ ## Boundaries
163
+
164
+ Only generates the commit message. Does not run `git commit`, does not stage
165
+ files, does not amend. Output message as code block ready to paste.
166
+ "stop caveman-commit" or "normal mode": revert to verbose commit style.
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@barlevalon/caveman-commit-skill",
3
+ "version": "0.2.0",
4
+ "description": "A release-aware Agent Skill for terse commit messages using scope-first subjects and optional Conventional Commit metadata.",
5
+ "license": "MIT",
6
+ "author": "Alon Bar-Lev",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/barlevalon/skills.git",
10
+ "directory": "skills/communication/caveman-commit"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/barlevalon/skills/issues"
14
+ },
15
+ "homepage": "https://github.com/barlevalon/skills/tree/main/skills/communication/caveman-commit#readme",
16
+ "keywords": [
17
+ "agent-skill",
18
+ "agent-skills",
19
+ "ai-agent",
20
+ "caveman-commit",
21
+ "communication",
22
+ "pi",
23
+ "pi-package",
24
+ "skills"
25
+ ],
26
+ "files": [
27
+ "SKILL.md",
28
+ "README.md",
29
+ "LICENSE"
30
+ ],
31
+ "scripts": {
32
+ "pack:check": "npm pack --dry-run"
33
+ },
34
+ "pi": {
35
+ "skills": [
36
+ "./SKILL.md"
37
+ ]
38
+ }
39
+ }