@balazsbarta/mp-skills 0.1.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.
- package/.agents/skills/brainstorming/SKILL.md +201 -0
- package/.agents/skills/brainstorming/references/option-evaluation.md +64 -0
- package/.agents/skills/brainstorming/references/questioning-playbook.md +57 -0
- package/.agents/skills/brainstorming/references/repo-analysis.md +60 -0
- package/.agents/skills/conventional-commits/SKILL.md +124 -0
- package/.agents/skills/conventional-commits/references/commit-types-scopes.md +75 -0
- package/.agents/skills/conventional-commits/references/semantic-release.md +71 -0
- package/.agents/skills/jest/SKILL.md +219 -0
- package/.agents/skills/jest/references/common-errors.md +274 -0
- package/.agents/skills/jest/references/configuration.md +175 -0
- package/.agents/skills/jest/references/embedded-docs.md +44 -0
- package/.agents/skills/jest/references/mocking.md +206 -0
- package/.agents/skills/jest/references/remote-docs.md +19 -0
- package/.agents/skills/jest/references/snapshot-testing.md +181 -0
- package/.agents/skills/jest/references/transforms.md +216 -0
- package/.agents/skills/maestro/SKILL.md +230 -0
- package/.agents/skills/maestro/references/assertions-commands.md +259 -0
- package/.agents/skills/maestro/references/common-errors.md +273 -0
- package/.agents/skills/maestro/references/eas-ci-integration.md +219 -0
- package/.agents/skills/maestro/references/flow-authoring.md +224 -0
- package/.agents/skills/maestro/references/remote-docs.md +23 -0
- package/.agents/skills/mastra/SKILL.md +159 -0
- package/.agents/skills/mastra/references/common-errors.md +535 -0
- package/.agents/skills/mastra/references/create-mastra.md +220 -0
- package/.agents/skills/mastra/references/embedded-docs.md +123 -0
- package/.agents/skills/mastra/references/migration-guide.md +180 -0
- package/.agents/skills/mastra/references/remote-docs.md +193 -0
- package/.agents/skills/next-js/SKILL.md +209 -0
- package/.agents/skills/next-js/references/api-routes.md +213 -0
- package/.agents/skills/next-js/references/app-router.md +206 -0
- package/.agents/skills/next-js/references/caching-revalidation.md +211 -0
- package/.agents/skills/next-js/references/common-errors.md +251 -0
- package/.agents/skills/next-js/references/embedded-docs.md +43 -0
- package/.agents/skills/next-js/references/metadata-seo.md +257 -0
- package/.agents/skills/next-js/references/remote-docs.md +22 -0
- package/.agents/skills/playwright/SKILL.md +218 -0
- package/.agents/skills/playwright/references/ci-configuration.md +208 -0
- package/.agents/skills/playwright/references/common-errors.md +258 -0
- package/.agents/skills/playwright/references/embedded-docs.md +41 -0
- package/.agents/skills/playwright/references/fixtures-assertions.md +208 -0
- package/.agents/skills/playwright/references/page-objects.md +167 -0
- package/.agents/skills/playwright/references/remote-docs.md +23 -0
- package/.agents/skills/playwright/references/visual-regression.md +206 -0
- package/.agents/skills/pull-request-lifecycle/SKILL.md +116 -0
- package/.agents/skills/pull-request-lifecycle/references/changelog-versioning.md +72 -0
- package/.agents/skills/pull-request-lifecycle/references/merge-strategies.md +33 -0
- package/.agents/skills/pull-request-lifecycle/references/pr-description-template.md +72 -0
- package/.agents/skills/pull-request-lifecycle/references/review-process.md +54 -0
- package/.agents/skills/pull-request-lifecycle/scripts/code_review.py +220 -0
- package/.agents/skills/react-native-expo/SKILL.md +212 -0
- package/.agents/skills/react-native-expo/references/common-errors.md +251 -0
- package/.agents/skills/react-native-expo/references/eas-build-submit.md +238 -0
- package/.agents/skills/react-native-expo/references/embedded-docs.md +42 -0
- package/.agents/skills/react-native-expo/references/native-modules.md +181 -0
- package/.agents/skills/react-native-expo/references/navigation-setup.md +229 -0
- package/.agents/skills/react-native-expo/references/remote-docs.md +23 -0
- package/.agents/skills/supabase/SKILL.md +216 -0
- package/.agents/skills/supabase/references/auth-setup.md +206 -0
- package/.agents/skills/supabase/references/common-errors.md +285 -0
- package/.agents/skills/supabase/references/edge-functions.md +178 -0
- package/.agents/skills/supabase/references/embedded-docs.md +43 -0
- package/.agents/skills/supabase/references/migrations.md +193 -0
- package/.agents/skills/supabase/references/remote-docs.md +24 -0
- package/.agents/skills/supabase/references/rls-policies.md +187 -0
- package/.agents/skills/supabase/references/storage.md +182 -0
- package/.agents/skills/task-breakdown/SKILL.md +179 -0
- package/.agents/skills/task-breakdown/references/acceptance-criteria.md +165 -0
- package/.agents/skills/task-breakdown/references/epic-story-format.md +209 -0
- package/.agents/skills/task-breakdown/references/estimation-guide.md +140 -0
- package/.agents/skills/vitest/SKILL.md +219 -0
- package/.agents/skills/vitest/references/common-errors.md +271 -0
- package/.agents/skills/vitest/references/component-testing.md +182 -0
- package/.agents/skills/vitest/references/configuration.md +184 -0
- package/.agents/skills/vitest/references/coverage.md +179 -0
- package/.agents/skills/vitest/references/embedded-docs.md +43 -0
- package/.agents/skills/vitest/references/mocking.md +182 -0
- package/.agents/skills/vitest/references/remote-docs.md +22 -0
- package/README.md +235 -0
- package/package.json +20 -0
- package/scripts/skills.mjs +849 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: "Facilitate structured technical brainstorming sessions. Use this skill to explore options, challenge assumptions, and produce implementation-ready plans for coding agents."
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Balazs Barta
|
|
7
|
+
version: "2.0.0"
|
|
8
|
+
repository: https://github.com/balazsbarta/mp-skills
|
|
9
|
+
tags:
|
|
10
|
+
- brainstorming
|
|
11
|
+
- facilitation
|
|
12
|
+
- decision-making
|
|
13
|
+
- planning
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Brainstorming Facilitator Guide
|
|
17
|
+
|
|
18
|
+
Run structured brainstorming sessions with a human user and produce outputs that a coding agent can implement immediately.
|
|
19
|
+
|
|
20
|
+
## When to use this skill
|
|
21
|
+
|
|
22
|
+
- User wants to brainstorm features, architecture, or implementation direction
|
|
23
|
+
- User has a proposed solution and needs validation against alternatives
|
|
24
|
+
- Problem space is unclear and needs structured discovery before coding
|
|
25
|
+
- Team needs a prioritized implementation plan with explicit tradeoffs
|
|
26
|
+
|
|
27
|
+
## Operating principles
|
|
28
|
+
|
|
29
|
+
- Ask one high-value question at a time.
|
|
30
|
+
- Analyze each response before asking the next question.
|
|
31
|
+
- Resolve discoverable facts from the repository before asking user questions.
|
|
32
|
+
- Do not make silent assumptions; label assumptions explicitly.
|
|
33
|
+
- Challenge preferred solutions when evidence indicates a stronger option.
|
|
34
|
+
- Keep all outputs concrete, scoped, and implementable.
|
|
35
|
+
|
|
36
|
+
## Reference files
|
|
37
|
+
|
|
38
|
+
Load references only when needed:
|
|
39
|
+
|
|
40
|
+
| Need | Read |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| Ground discussion in repository facts first | [`references/repo-analysis.md`](references/repo-analysis.md) |
|
|
43
|
+
| Choose and sequence high-value user questions | [`references/questioning-playbook.md`](references/questioning-playbook.md) |
|
|
44
|
+
| Compare options and recommend with evidence | [`references/option-evaluation.md`](references/option-evaluation.md) |
|
|
45
|
+
|
|
46
|
+
## Core workflow (4 phases)
|
|
47
|
+
|
|
48
|
+
### 1) Context discovery
|
|
49
|
+
|
|
50
|
+
Objective: Define the real problem and decision target.
|
|
51
|
+
|
|
52
|
+
Required artifacts:
|
|
53
|
+
- Problem statement
|
|
54
|
+
- Desired outcome
|
|
55
|
+
- Audience or impacted users
|
|
56
|
+
- Business or technical impact
|
|
57
|
+
|
|
58
|
+
Exit criteria:
|
|
59
|
+
- Problem is specific and non-generic.
|
|
60
|
+
- Success condition is explicit.
|
|
61
|
+
|
|
62
|
+
Question patterns:
|
|
63
|
+
- What exact problem are we solving right now?
|
|
64
|
+
- What changes if this succeeds?
|
|
65
|
+
- Who is most impacted by this decision?
|
|
66
|
+
|
|
67
|
+
### 2) Requirements deep dive
|
|
68
|
+
|
|
69
|
+
Objective: Lock constraints, boundaries, and non-goals.
|
|
70
|
+
|
|
71
|
+
Required artifacts:
|
|
72
|
+
- Functional requirements
|
|
73
|
+
- Non-functional requirements
|
|
74
|
+
- Constraints (timeline, compatibility, compliance, infra)
|
|
75
|
+
- Out-of-scope items
|
|
76
|
+
|
|
77
|
+
Exit criteria:
|
|
78
|
+
- Must-haves vs nice-to-haves are separated.
|
|
79
|
+
- Critical constraints are confirmed.
|
|
80
|
+
|
|
81
|
+
Question patterns:
|
|
82
|
+
- What is non-negotiable?
|
|
83
|
+
- What existing systems or contracts cannot break?
|
|
84
|
+
- What is explicitly out of scope for this iteration?
|
|
85
|
+
|
|
86
|
+
### 3) Solution exploration
|
|
87
|
+
|
|
88
|
+
Objective: Compare viable approaches and converge on a recommendation.
|
|
89
|
+
|
|
90
|
+
Required artifacts:
|
|
91
|
+
- At least two viable options when a decision is involved
|
|
92
|
+
- Tradeoff comparison across effort, impact, risk, reversibility
|
|
93
|
+
- Recommended option with fallback
|
|
94
|
+
|
|
95
|
+
Exit criteria:
|
|
96
|
+
- Selected option has a clear rationale.
|
|
97
|
+
- Rejected options are documented with reasons.
|
|
98
|
+
|
|
99
|
+
Question patterns:
|
|
100
|
+
- Which options are realistically viable in this codebase?
|
|
101
|
+
- What risk does each option introduce?
|
|
102
|
+
- If we had to roll back, which option is easiest to reverse?
|
|
103
|
+
|
|
104
|
+
### 4) Implementation planning
|
|
105
|
+
|
|
106
|
+
Objective: Turn the decision into a dependency-ordered execution plan.
|
|
107
|
+
|
|
108
|
+
Required artifacts:
|
|
109
|
+
- Task breakdown ordered by dependency
|
|
110
|
+
- Test and validation plan
|
|
111
|
+
- Risks and mitigations
|
|
112
|
+
- Open questions (if any)
|
|
113
|
+
|
|
114
|
+
Exit criteria:
|
|
115
|
+
- Plan is decision-complete for implementation.
|
|
116
|
+
- Acceptance criteria are testable.
|
|
117
|
+
|
|
118
|
+
Question patterns:
|
|
119
|
+
- What is the smallest end-to-end slice to ship first?
|
|
120
|
+
- What must happen before implementation starts?
|
|
121
|
+
- How will we verify correctness and prevent regressions?
|
|
122
|
+
|
|
123
|
+
## Repository-first analysis protocol
|
|
124
|
+
|
|
125
|
+
Before asking broad intent questions, run targeted non-mutating analysis:
|
|
126
|
+
|
|
127
|
+
1. Locate relevant files, entrypoints, configs, schemas, and tests.
|
|
128
|
+
2. Summarize current behavior with concrete file references.
|
|
129
|
+
3. Distinguish discoverable facts from preference decisions.
|
|
130
|
+
4. Ask the user only for non-discoverable intent, constraints, or tradeoffs.
|
|
131
|
+
|
|
132
|
+
If repository evidence is missing, state what was checked and why uncertainty remains.
|
|
133
|
+
|
|
134
|
+
## Evidence-first challenge policy
|
|
135
|
+
|
|
136
|
+
When the user proposes a preferred solution:
|
|
137
|
+
|
|
138
|
+
1. Restate the proposed approach and its likely benefits.
|
|
139
|
+
2. Surface at least one credible alternative when evidence supports it.
|
|
140
|
+
3. Compare options on effort, impact, risk, and reversibility.
|
|
141
|
+
4. Recommend the stronger option with rationale and fallback.
|
|
142
|
+
5. If user still chooses a weaker option, proceed and record accepted tradeoffs.
|
|
143
|
+
|
|
144
|
+
Do not block progress without reason; challenge with evidence, not opinion.
|
|
145
|
+
|
|
146
|
+
## Assumption control protocol
|
|
147
|
+
|
|
148
|
+
- Convert high-impact assumptions into direct questions.
|
|
149
|
+
- Mark unresolved assumptions explicitly.
|
|
150
|
+
- Do not finalize implementation planning when critical unknowns remain.
|
|
151
|
+
- Keep an "Open Questions" list until all blocking items are resolved.
|
|
152
|
+
|
|
153
|
+
## Optional lightweight scoring
|
|
154
|
+
|
|
155
|
+
Use only when two or more viable options remain and tradeoffs are unclear.
|
|
156
|
+
|
|
157
|
+
- Criteria: effort, impact, risk, reversibility
|
|
158
|
+
- Scale: 1-5 per criterion
|
|
159
|
+
- Keep scoring simple and transparent
|
|
160
|
+
- Use scoring to support reasoning, not replace it
|
|
161
|
+
|
|
162
|
+
## Required output contract
|
|
163
|
+
|
|
164
|
+
Every completed session must produce:
|
|
165
|
+
|
|
166
|
+
1. Problem statement
|
|
167
|
+
2. Goal and success criteria
|
|
168
|
+
3. Constraints and non-goals
|
|
169
|
+
4. Options considered
|
|
170
|
+
5. Decision rationale (including rejected alternatives)
|
|
171
|
+
6. Risks and mitigations
|
|
172
|
+
7. Implementation tasks in dependency order
|
|
173
|
+
8. Test and validation approach
|
|
174
|
+
9. Open questions
|
|
175
|
+
|
|
176
|
+
Use this structure:
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
## Problem
|
|
180
|
+
## Goal and Success Criteria
|
|
181
|
+
## Constraints and Non-Goals
|
|
182
|
+
## Options Considered
|
|
183
|
+
## Decision and Rationale
|
|
184
|
+
## Risks and Mitigations
|
|
185
|
+
## Implementation Plan
|
|
186
|
+
## Test and Validation
|
|
187
|
+
## Open Questions
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Quality gate
|
|
191
|
+
|
|
192
|
+
Before ending the session, verify:
|
|
193
|
+
|
|
194
|
+
- Recommendation is evidence-based and not assumption-based.
|
|
195
|
+
- At least one alternative was considered for meaningful decisions.
|
|
196
|
+
- Plan can be implemented without additional decision-making.
|
|
197
|
+
- Risks, validation, and unresolved questions are explicit.
|
|
198
|
+
|
|
199
|
+
## Cross-reference
|
|
200
|
+
|
|
201
|
+
- Task breakdown follow-up: [`../task-breakdown/SKILL.md`](../task-breakdown/SKILL.md)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Option Evaluation Guide
|
|
2
|
+
|
|
3
|
+
Use this guide when multiple viable options remain.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- Two or more valid approaches are still on the table
|
|
8
|
+
- Tradeoffs are unclear or disputed
|
|
9
|
+
- User preference conflicts with repository evidence
|
|
10
|
+
|
|
11
|
+
## Evaluation dimensions
|
|
12
|
+
|
|
13
|
+
Use four dimensions by default:
|
|
14
|
+
|
|
15
|
+
- Effort
|
|
16
|
+
- Impact
|
|
17
|
+
- Risk
|
|
18
|
+
- Reversibility
|
|
19
|
+
|
|
20
|
+
Optional fifth dimension: compatibility with existing architecture.
|
|
21
|
+
|
|
22
|
+
## Lightweight scoring
|
|
23
|
+
|
|
24
|
+
Use only if qualitative comparison is not enough.
|
|
25
|
+
|
|
26
|
+
- Score each option from 1-5 per dimension.
|
|
27
|
+
- Keep equal weights unless a user constraint justifies weighting.
|
|
28
|
+
- Treat scores as decision support, not an automatic verdict.
|
|
29
|
+
|
|
30
|
+
Template:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
| Dimension | Option A | Option B | Notes |
|
|
34
|
+
| --- | --- | --- | --- |
|
|
35
|
+
| Effort | | | |
|
|
36
|
+
| Impact | | | |
|
|
37
|
+
| Risk | | | |
|
|
38
|
+
| Reversibility | | | |
|
|
39
|
+
| Total | | | |
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Decision statement template
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
### Decision
|
|
46
|
+
Selected: <option>
|
|
47
|
+
|
|
48
|
+
### Why
|
|
49
|
+
- <evidence-backed reason 1>
|
|
50
|
+
- <evidence-backed reason 2>
|
|
51
|
+
|
|
52
|
+
### Rejected Alternatives
|
|
53
|
+
- <option>: <why not now>
|
|
54
|
+
|
|
55
|
+
### Fallback
|
|
56
|
+
- If <failure condition>, switch to <fallback option>.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Red flags that require challenge
|
|
60
|
+
|
|
61
|
+
- Chosen option conflicts with existing interfaces or contracts
|
|
62
|
+
- Chosen option has high irreversible migration cost
|
|
63
|
+
- Chosen option lacks clear validation path
|
|
64
|
+
- Chosen option is selected by preference only, without evidence
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Questioning Playbook
|
|
2
|
+
|
|
3
|
+
Use this guide to run an adaptive, one-question-at-a-time facilitation flow.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Ask the highest-value next question, not the next question in a fixed script.
|
|
8
|
+
|
|
9
|
+
## Loop
|
|
10
|
+
|
|
11
|
+
1. Read current context and latest user answer.
|
|
12
|
+
2. Extract new facts, decisions, and assumptions.
|
|
13
|
+
3. Identify the biggest unresolved blocker.
|
|
14
|
+
4. Ask one targeted question to remove that blocker.
|
|
15
|
+
5. Repeat until implementation planning is decision-complete.
|
|
16
|
+
|
|
17
|
+
## Question quality standard
|
|
18
|
+
|
|
19
|
+
A strong question is:
|
|
20
|
+
|
|
21
|
+
- Specific and scoped to one decision
|
|
22
|
+
- Unanswerable by repository inspection
|
|
23
|
+
- Material to architecture, delivery risk, or acceptance criteria
|
|
24
|
+
|
|
25
|
+
Avoid:
|
|
26
|
+
|
|
27
|
+
- Multi-part compound questions
|
|
28
|
+
- Questions that can be answered from code
|
|
29
|
+
- Questions that do not change the plan
|
|
30
|
+
|
|
31
|
+
## Progressive question categories
|
|
32
|
+
|
|
33
|
+
Use only as needed, in this order:
|
|
34
|
+
|
|
35
|
+
1. Problem and outcome clarity
|
|
36
|
+
2. Constraints and non-goals
|
|
37
|
+
3. Option viability and tradeoffs
|
|
38
|
+
4. Implementation readiness and validation
|
|
39
|
+
|
|
40
|
+
## Challenge prompts (evidence-first)
|
|
41
|
+
|
|
42
|
+
When the user proposes approach X:
|
|
43
|
+
|
|
44
|
+
- "Given `<repo constraint>`, should we compare X against Y before committing?"
|
|
45
|
+
- "X optimizes `<benefit>`, but increases `<risk>`. Is that tradeoff acceptable?"
|
|
46
|
+
- "If rollback is needed, X is harder to reverse than Y. Do we still prefer X?"
|
|
47
|
+
|
|
48
|
+
Always challenge with concrete evidence, not abstract preference.
|
|
49
|
+
|
|
50
|
+
## Stop condition
|
|
51
|
+
|
|
52
|
+
Stop questioning and produce final plan only when:
|
|
53
|
+
|
|
54
|
+
- Success criteria are explicit
|
|
55
|
+
- Key constraints are confirmed
|
|
56
|
+
- One option is selected with rationale
|
|
57
|
+
- Tasks, risks, and validation are concrete
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Repository Analysis Playbook
|
|
2
|
+
|
|
3
|
+
Use this guide before asking broad user questions. The goal is to separate discoverable facts from preference decisions.
|
|
4
|
+
|
|
5
|
+
## Outcomes
|
|
6
|
+
|
|
7
|
+
- Current-state summary with concrete file references
|
|
8
|
+
- Known constraints based on code/config
|
|
9
|
+
- Unknowns that actually require user input
|
|
10
|
+
|
|
11
|
+
## Step-by-step
|
|
12
|
+
|
|
13
|
+
1. Locate related entrypoints and modules.
|
|
14
|
+
2. Find config, schema, and interface contracts.
|
|
15
|
+
3. Identify existing tests and current behavior.
|
|
16
|
+
4. Capture integration boundaries and compatibility constraints.
|
|
17
|
+
5. Produce a short findings summary before asking questions.
|
|
18
|
+
|
|
19
|
+
## Command patterns (non-mutating)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
rg --files
|
|
23
|
+
rg -n "keyword|type|interface|route|config" <path>
|
|
24
|
+
sed -n '1,200p' <file>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Prefer targeted scans over broad file dumps.
|
|
28
|
+
|
|
29
|
+
## Fact vs preference split
|
|
30
|
+
|
|
31
|
+
Treat as discoverable facts:
|
|
32
|
+
|
|
33
|
+
- Existing code paths and data flow
|
|
34
|
+
- API signatures and type contracts
|
|
35
|
+
- Build/test/tooling constraints
|
|
36
|
+
- Current test coverage and failure surfaces
|
|
37
|
+
|
|
38
|
+
Treat as user decisions:
|
|
39
|
+
|
|
40
|
+
- Priority and timeline tradeoffs
|
|
41
|
+
- Non-obvious product constraints
|
|
42
|
+
- UX/behavior preference among valid options
|
|
43
|
+
- Acceptance bar beyond existing standards
|
|
44
|
+
|
|
45
|
+
## Output format
|
|
46
|
+
|
|
47
|
+
Use this before question 1:
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
### Repository Findings
|
|
51
|
+
- Fact 1: <what exists> (`path/to/file.ts:line`)
|
|
52
|
+
- Fact 2: <constraint> (`path/to/config.ts:line`)
|
|
53
|
+
- Fact 3: <risk or gap> (`path/to/test.spec.ts:line`)
|
|
54
|
+
|
|
55
|
+
### Unknowns Requiring User Input
|
|
56
|
+
1. <preference decision>
|
|
57
|
+
2. <scope/priority decision>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
If no relevant code is found, state exactly what was searched.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conventional-commits
|
|
3
|
+
description: "Conventional Commits specification guide. Covers commit message format, types, scopes, breaking changes, and integration with semantic-release for automated versioning. Use this skill when creating commits, setting up commit conventions, or configuring automated releases."
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Balazs Barta
|
|
7
|
+
version: "2.0.0"
|
|
8
|
+
repository: https://github.com/balazsbarta/mp-skills
|
|
9
|
+
tags:
|
|
10
|
+
- conventional-commits
|
|
11
|
+
- commitlint
|
|
12
|
+
- semantic-release
|
|
13
|
+
- changelog
|
|
14
|
+
- versioning
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Conventional Commits Guide
|
|
18
|
+
|
|
19
|
+
Write commit messages that are easy to read and can drive automated releases.
|
|
20
|
+
|
|
21
|
+
## Project rules first
|
|
22
|
+
|
|
23
|
+
Before writing commits or setting up tooling, check for local configuration:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
ls commitlint.config.* .commitlintrc* .releaserc* 2>/dev/null
|
|
27
|
+
ls .husky/commit-msg 2>/dev/null
|
|
28
|
+
rg -n '"commitlint"|"release"|"husky"' package.json 2>/dev/null
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- If local rules exist, follow them.
|
|
32
|
+
- If local rules do not exist, use the defaults in this skill.
|
|
33
|
+
|
|
34
|
+
## Quick workflow
|
|
35
|
+
|
|
36
|
+
1. Choose the commit type (`feat`, `fix`, etc.).
|
|
37
|
+
2. Add a scope when helpful (`feat(auth): ...`).
|
|
38
|
+
3. Write the subject as `<type>[optional scope]: <description>`.
|
|
39
|
+
4. Add body and footers when needed.
|
|
40
|
+
5. For breaking changes, use `!` and a `BREAKING CHANGE:` footer.
|
|
41
|
+
6. Validate with commitlint when available.
|
|
42
|
+
|
|
43
|
+
## Commit format
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
<type>[optional scope]: <description>
|
|
47
|
+
|
|
48
|
+
[optional body]
|
|
49
|
+
|
|
50
|
+
[optional footer(s)]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Examples:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
git commit -m "feat(auth): add OAuth2 login flow"
|
|
57
|
+
git commit -m "fix(api): handle empty pagination token"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Types at a glance
|
|
61
|
+
|
|
62
|
+
| Type | Use for |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| `feat` | New user-facing behavior |
|
|
65
|
+
| `fix` | Bug fixes |
|
|
66
|
+
| `docs` | Documentation-only changes |
|
|
67
|
+
| `refactor` | Internal restructuring without behavior change |
|
|
68
|
+
| `perf` | Performance improvements |
|
|
69
|
+
| `test` | Tests only |
|
|
70
|
+
| `build` | Build tooling or dependencies |
|
|
71
|
+
| `ci` | CI/CD pipeline changes |
|
|
72
|
+
| `chore` | Maintenance work |
|
|
73
|
+
|
|
74
|
+
See [`references/commit-types-scopes.md`](references/commit-types-scopes.md) for selection guidance and scope patterns.
|
|
75
|
+
|
|
76
|
+
## Breaking changes
|
|
77
|
+
|
|
78
|
+
Any type can be breaking:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
feat(api)!: remove v1 users endpoint
|
|
82
|
+
|
|
83
|
+
BREAKING CHANGE: /v1/users was removed. Use /v2/users.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Use uppercase `BREAKING CHANGE:` and include migration guidance.
|
|
87
|
+
|
|
88
|
+
## Optional tooling setup
|
|
89
|
+
|
|
90
|
+
Install commitlint and semantic-release:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npm install --save-dev @commitlint/cli @commitlint/config-conventional semantic-release
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Minimal commitlint config:
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
// commitlint.config.js
|
|
100
|
+
export default { extends: ['@commitlint/config-conventional'] };
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Validate a message:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
echo "feat(auth): add OAuth2 login flow" | npx commitlint
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
See [`references/semantic-release.md`](references/semantic-release.md) for release mapping and minimal setup.
|
|
110
|
+
|
|
111
|
+
## Troubleshooting
|
|
112
|
+
|
|
113
|
+
- `type must be one of ...`: check local `type-enum` rules in commitlint config.
|
|
114
|
+
- `subject may not be empty`: ensure `: ` is present after type/scope.
|
|
115
|
+
- Unexpected release bump: inspect commit history and breaking-change footers.
|
|
116
|
+
|
|
117
|
+
## Cross-reference
|
|
118
|
+
|
|
119
|
+
- **Pull Request Lifecycle**: [../pull-request-lifecycle/SKILL.md](../pull-request-lifecycle/SKILL.md)
|
|
120
|
+
|
|
121
|
+
## Resources
|
|
122
|
+
|
|
123
|
+
- **Commit types, scopes, and breaking changes**: [`references/commit-types-scopes.md`](references/commit-types-scopes.md)
|
|
124
|
+
- **Semantic-release integration**: [`references/semantic-release.md`](references/semantic-release.md)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Commit Types, Scopes, and Breaking Changes
|
|
2
|
+
|
|
3
|
+
Use this reference when choosing a commit type, defining scopes, or documenting breaking changes.
|
|
4
|
+
|
|
5
|
+
## Commit types
|
|
6
|
+
|
|
7
|
+
| Type | Use for | Typical release impact |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `feat` | New user-facing behavior | minor |
|
|
10
|
+
| `fix` | Bug fixes | patch |
|
|
11
|
+
| `perf` | Performance improvements | patch |
|
|
12
|
+
| `docs` | Documentation-only changes | none (unless custom rules) |
|
|
13
|
+
| `style` | Formatting-only changes | none |
|
|
14
|
+
| `refactor` | Internal restructuring without behavior change | none (unless custom rules) |
|
|
15
|
+
| `test` | Test changes | none |
|
|
16
|
+
| `build` | Build tooling or dependencies | none |
|
|
17
|
+
| `ci` | CI/CD configuration | none |
|
|
18
|
+
| `chore` | General maintenance | none |
|
|
19
|
+
|
|
20
|
+
Quick chooser:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
New capability? -> feat
|
|
24
|
+
Broken behavior fixed? -> fix
|
|
25
|
+
Faster same behavior? -> perf
|
|
26
|
+
Code reorganized only? -> refactor
|
|
27
|
+
Docs/tests/format/build/CI only? -> docs/test/style/build/ci
|
|
28
|
+
Anything else? -> chore
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Scopes
|
|
32
|
+
|
|
33
|
+
Scopes are optional. Use them when they make history easier to scan.
|
|
34
|
+
|
|
35
|
+
Common patterns:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
feat(auth): add password reset
|
|
39
|
+
fix(api): handle empty token
|
|
40
|
+
perf(db): add index for user lookup
|
|
41
|
+
build(web): upgrade vite
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Guidelines:
|
|
45
|
+
|
|
46
|
+
- Keep scopes short and lowercase.
|
|
47
|
+
- Reuse a stable scope list if the project defines one.
|
|
48
|
+
- Omit scope for cross-cutting changes.
|
|
49
|
+
|
|
50
|
+
## Breaking changes
|
|
51
|
+
|
|
52
|
+
Any type can be breaking. Use `!` and include a `BREAKING CHANGE:` footer.
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
feat(api)!: remove v1 users endpoint
|
|
56
|
+
|
|
57
|
+
BREAKING CHANGE: /v1/users has been removed. Use /v2/users.
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Footer rules:
|
|
61
|
+
|
|
62
|
+
- Use exact uppercase `BREAKING CHANGE:`.
|
|
63
|
+
- Put footer after a blank line.
|
|
64
|
+
- Include migration guidance when possible.
|
|
65
|
+
|
|
66
|
+
Breaking change impact:
|
|
67
|
+
|
|
68
|
+
- Any commit with `!` or `BREAKING CHANGE:` should trigger a major bump in standard semantic-release setups.
|
|
69
|
+
|
|
70
|
+
## Validation
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
echo "feat(auth): add login flow" | npx commitlint
|
|
74
|
+
echo "feat(api)!: remove v1 users endpoint" | npx commitlint
|
|
75
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Semantic Release Essentials
|
|
2
|
+
|
|
3
|
+
Use this reference when mapping conventional commits to versions or configuring a minimal semantic-release setup.
|
|
4
|
+
|
|
5
|
+
## Default version mapping
|
|
6
|
+
|
|
7
|
+
| Commit pattern | Version impact |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `fix` | patch |
|
|
10
|
+
| `perf` | patch |
|
|
11
|
+
| `feat` | minor |
|
|
12
|
+
| Any commit with `!` or `BREAKING CHANGE:` | major |
|
|
13
|
+
| `docs`, `style`, `refactor`, `test`, `build`, `ci`, `chore` | no release (unless custom rules) |
|
|
14
|
+
|
|
15
|
+
## Minimal setup
|
|
16
|
+
|
|
17
|
+
Install:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install --save-dev semantic-release
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Minimal config:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
// .releaserc.json
|
|
27
|
+
{
|
|
28
|
+
"branches": ["main"],
|
|
29
|
+
"plugins": [
|
|
30
|
+
"@semantic-release/commit-analyzer",
|
|
31
|
+
"@semantic-release/release-notes-generator",
|
|
32
|
+
"@semantic-release/github"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Dry run:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx semantic-release --dry-run
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Common custom release rules
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
// .releaserc.json
|
|
47
|
+
{
|
|
48
|
+
"plugins": [
|
|
49
|
+
["@semantic-release/commit-analyzer", {
|
|
50
|
+
"preset": "conventionalcommits",
|
|
51
|
+
"releaseRules": [
|
|
52
|
+
{ "type": "docs", "release": "patch" },
|
|
53
|
+
{ "type": "refactor", "release": "patch" },
|
|
54
|
+
{ "breaking": true, "release": "major" }
|
|
55
|
+
]
|
|
56
|
+
}]
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Troubleshooting
|
|
62
|
+
|
|
63
|
+
- No release: confirm branch is configured and commits match expected format.
|
|
64
|
+
- Wrong bump: inspect commit history and breaking-change footers.
|
|
65
|
+
- CI failures: check token permissions and run `--dry-run` in CI logs.
|
|
66
|
+
|
|
67
|
+
## Official docs
|
|
68
|
+
|
|
69
|
+
- Conventional Commits spec: https://www.conventionalcommits.org/en/v1.0.0/
|
|
70
|
+
- semantic-release docs: https://semantic-release.gitbook.io/semantic-release/
|
|
71
|
+
- commitlint docs: https://commitlint.js.org/
|