agileflow 2.61.0 → 2.62.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/README.md +9 -9
- package/package.json +1 -1
- package/scripts/lib/counter.js +103 -0
- package/src/core/commands/auto.md +1 -0
- package/src/core/commands/babysit.md +170 -29
- package/src/core/commands/board.md +1 -0
- package/src/core/commands/ci.md +1 -0
- package/src/core/commands/compress.md +1 -0
- package/src/core/commands/deploy.md +1 -0
- package/src/core/commands/help.md +1 -0
- package/src/core/commands/research.md +1 -0
- package/src/core/commands/skill/create.md +566 -0
- package/src/core/commands/skill/delete.md +189 -0
- package/src/core/commands/skill/edit.md +245 -0
- package/src/core/commands/skill/list.md +155 -0
- package/src/core/commands/skill/test.md +249 -0
- package/src/core/commands/template.md +1 -0
- package/src/core/commands/tests.md +1 -0
- package/src/core/commands/update.md +1 -0
- package/src/core/commands/velocity.md +1 -0
- package/src/core/experts/refactor/expertise.yaml +17 -12
- package/src/core/templates/claude-settings.advanced.example.json +1 -1
- package/src/core/templates/claude-settings.example.json +1 -1
- package/tools/cli/commands/list.js +8 -13
- package/tools/cli/installers/core/installer.js +20 -19
- package/tools/cli/installers/ide/_base-ide.js +18 -4
- package/tools/cli/installers/ide/claude-code.js +4 -15
- package/tools/cli/installers/ide/codex.js +9 -13
- package/tools/cli/lib/content-injector.js +162 -31
- package/tools/cli/lib/utils.js +87 -0
- package/src/core/skills/acceptance-criteria-generator/SKILL.md +0 -46
- package/src/core/skills/adr-template/SKILL.md +0 -62
- package/src/core/skills/agileflow-acceptance-criteria/SKILL.md +0 -156
- package/src/core/skills/agileflow-adr/SKILL.md +0 -147
- package/src/core/skills/agileflow-adr/examples/database-choice-example.md +0 -122
- package/src/core/skills/agileflow-adr/templates/adr-template.md +0 -69
- package/src/core/skills/agileflow-commit-messages/SKILL.md +0 -130
- package/src/core/skills/agileflow-commit-messages/reference/bad-examples.md +0 -168
- package/src/core/skills/agileflow-commit-messages/reference/good-examples.md +0 -120
- package/src/core/skills/agileflow-commit-messages/scripts/check-attribution.sh +0 -15
- package/src/core/skills/agileflow-epic-planner/SKILL.md +0 -184
- package/src/core/skills/agileflow-retro-facilitator/SKILL.md +0 -119
- package/src/core/skills/agileflow-retro-facilitator/cookbook/4ls.md +0 -86
- package/src/core/skills/agileflow-retro-facilitator/cookbook/glad-sad-mad.md +0 -79
- package/src/core/skills/agileflow-retro-facilitator/cookbook/start-stop-continue.md +0 -142
- package/src/core/skills/agileflow-retro-facilitator/prompts/action-items.md +0 -83
- package/src/core/skills/agileflow-sprint-planner/SKILL.md +0 -212
- package/src/core/skills/agileflow-story-writer/SKILL.md +0 -163
- package/src/core/skills/agileflow-story-writer/examples/good-story-example.md +0 -63
- package/src/core/skills/agileflow-story-writer/templates/story-template.md +0 -44
- package/src/core/skills/agileflow-tech-debt/SKILL.md +0 -215
- package/src/core/skills/api-documentation-generator/SKILL.md +0 -65
- package/src/core/skills/changelog-entry/SKILL.md +0 -55
- package/src/core/skills/commit-message-formatter/SKILL.md +0 -50
- package/src/core/skills/deployment-guide-generator/SKILL.md +0 -84
- package/src/core/skills/diagram-generator/SKILL.md +0 -65
- package/src/core/skills/error-handler-template/SKILL.md +0 -78
- package/src/core/skills/migration-checklist/SKILL.md +0 -82
- package/src/core/skills/pr-description/SKILL.md +0 -65
- package/src/core/skills/sql-schema-generator/SKILL.md +0 -69
- package/src/core/skills/story-skeleton/SKILL.md +0 -34
- package/src/core/skills/test-case-generator/SKILL.md +0 -63
- package/src/core/skills/type-definitions/SKILL.md +0 -65
- package/src/core/skills/validation-schema-generator/SKILL.md +0 -64
- package/src/core/skills/writing-skills/SKILL.md +0 -352
- package/src/core/skills/writing-skills/testing-skills-with-subagents.md +0 -232
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agileflow-adr
|
|
3
|
-
description: Detects architectural or technical decisions in conversations and formats them as Architecture Decision Records in docs/03-decisions/. Loads when discussing technology choices, architecture patterns, or trade-offs.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# AgileFlow ADR (Architecture Decision Records)
|
|
7
|
-
|
|
8
|
-
Automatically captures architectural and technical decisions and formats them as formal Architecture Decision Records (ADRs) in `docs/03-decisions/`.
|
|
9
|
-
|
|
10
|
-
## When to Use
|
|
11
|
-
|
|
12
|
-
This skill activates when:
|
|
13
|
-
- Discussing technology choices ("Should we use PostgreSQL or MongoDB?")
|
|
14
|
-
- Debating architecture patterns ("REST vs GraphQL")
|
|
15
|
-
- Making framework decisions ("React vs Vue")
|
|
16
|
-
- Discussing infrastructure choices ("AWS vs GCP")
|
|
17
|
-
- Evaluating trade-offs between options
|
|
18
|
-
- Keywords: "decision", "choose", "architecture", "trade-off"
|
|
19
|
-
|
|
20
|
-
## What This Does
|
|
21
|
-
|
|
22
|
-
1. Detects architectural decision discussions from conversations
|
|
23
|
-
2. Asks clarifying questions if needed (context, options, constraints)
|
|
24
|
-
3. Extracts decision elements (problem, options, drivers, trade-offs)
|
|
25
|
-
4. Generates properly formatted ADR file
|
|
26
|
-
5. Shows for approval before writing
|
|
27
|
-
|
|
28
|
-
## Instructions
|
|
29
|
-
|
|
30
|
-
1. **Detect decision discussion**: User is debating options or asking "which should we use?"
|
|
31
|
-
|
|
32
|
-
2. **Extract decision elements**:
|
|
33
|
-
- Context/problem statement
|
|
34
|
-
- Options being considered
|
|
35
|
-
- Trade-offs for each option
|
|
36
|
-
- Decision drivers (requirements, constraints)
|
|
37
|
-
|
|
38
|
-
3. **Read existing ADRs**:
|
|
39
|
-
- Check `docs/03-decisions/` for numbering
|
|
40
|
-
- Look for related decisions
|
|
41
|
-
|
|
42
|
-
4. **Generate ADR**:
|
|
43
|
-
- File: `docs/03-decisions/ADR-###-descriptive-title.md`
|
|
44
|
-
- Use MADR (Markdown Architecture Decision Records) format
|
|
45
|
-
- Mark status as "Proposed" unless decision is final
|
|
46
|
-
|
|
47
|
-
5. **Confirm with user**: Show the ADR and ask for corrections
|
|
48
|
-
|
|
49
|
-
## ADR Format (MADR)
|
|
50
|
-
|
|
51
|
-
```markdown
|
|
52
|
-
# [ADR-###] Title
|
|
53
|
-
|
|
54
|
-
**Date**: YYYY-MM-DD
|
|
55
|
-
**Status**: Proposed | Accepted | Deprecated | Superseded
|
|
56
|
-
**Deciders**: Names of people involved
|
|
57
|
-
**Tags**: architecture, database, api, etc.
|
|
58
|
-
|
|
59
|
-
## Context and Problem Statement
|
|
60
|
-
|
|
61
|
-
[Describe the context and problem. What are we trying to solve? Why necessary?]
|
|
62
|
-
|
|
63
|
-
## Decision Drivers
|
|
64
|
-
|
|
65
|
-
- [Driver 1: e.g., Performance requirements]
|
|
66
|
-
- [Driver 2: e.g., Team expertise]
|
|
67
|
-
- [Driver 3: e.g., Cost constraints]
|
|
68
|
-
|
|
69
|
-
## Considered Options
|
|
70
|
-
|
|
71
|
-
- [Option 1]
|
|
72
|
-
- [Option 2]
|
|
73
|
-
- [Option 3]
|
|
74
|
-
|
|
75
|
-
## Decision Outcome
|
|
76
|
-
|
|
77
|
-
**Chosen option**: [Option X]
|
|
78
|
-
|
|
79
|
-
**Justification**: [Why chosen? What makes it best fit?]
|
|
80
|
-
|
|
81
|
-
### Positive Consequences
|
|
82
|
-
|
|
83
|
-
- [Good outcome 1]
|
|
84
|
-
- [Good outcome 2]
|
|
85
|
-
|
|
86
|
-
### Negative Consequences
|
|
87
|
-
|
|
88
|
-
- [Bad outcome 1]
|
|
89
|
-
- [Bad outcome 2 - with mitigation if possible]
|
|
90
|
-
|
|
91
|
-
## Pros and Cons of the Options
|
|
92
|
-
|
|
93
|
-
### [Option 1]
|
|
94
|
-
|
|
95
|
-
**Pros**:
|
|
96
|
-
- [Pro 1]
|
|
97
|
-
- [Pro 2]
|
|
98
|
-
|
|
99
|
-
**Cons**:
|
|
100
|
-
- [Con 1]
|
|
101
|
-
- [Con 2]
|
|
102
|
-
|
|
103
|
-
## Links
|
|
104
|
-
|
|
105
|
-
- [Related ADRs]
|
|
106
|
-
- [Relevant documentation]
|
|
107
|
-
- [External resources]
|
|
108
|
-
|
|
109
|
-
## Notes
|
|
110
|
-
|
|
111
|
-
- [Additional information]
|
|
112
|
-
- [Implementation notes]
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## ADR Statuses
|
|
116
|
-
|
|
117
|
-
- **Proposed**: Under consideration, not yet decided
|
|
118
|
-
- **Accepted**: Decision made and approved
|
|
119
|
-
- **Deprecated**: No longer relevant (but kept for history)
|
|
120
|
-
- **Superseded**: Replaced by a newer decision (link to new ADR)
|
|
121
|
-
|
|
122
|
-
## Quality Checklist
|
|
123
|
-
|
|
124
|
-
Before creating ADR:
|
|
125
|
-
- [ ] Problem statement is clear and specific
|
|
126
|
-
- [ ] At least 2 options were considered
|
|
127
|
-
- [ ] Each option has pros and cons listed
|
|
128
|
-
- [ ] Decision drivers are explicitly stated
|
|
129
|
-
- [ ] Chosen option has clear justification
|
|
130
|
-
- [ ] Consequences (both positive and negative) documented
|
|
131
|
-
- [ ] File name follows pattern: ADR-###-descriptive-title.md
|
|
132
|
-
- [ ] Status is appropriate (Proposed/Accepted)
|
|
133
|
-
|
|
134
|
-
## Integration
|
|
135
|
-
|
|
136
|
-
- **agileflow-story-writer**: ADRs inform technical notes in stories
|
|
137
|
-
- **agileflow-tech-debt**: Negative consequences become tech debt items
|
|
138
|
-
- **agileflow-changelog**: Major decisions appear in changelog
|
|
139
|
-
|
|
140
|
-
## Notes
|
|
141
|
-
|
|
142
|
-
- Capture decisions even if they seem small - they provide context later
|
|
143
|
-
- Be honest about negative consequences - helps with future decisions
|
|
144
|
-
- Include who made the decision (deciders) - accountability matters
|
|
145
|
-
- Date decisions - context changes over time
|
|
146
|
-
- Keep ADRs focused - one decision per ADR
|
|
147
|
-
- ADRs are immutable once accepted - create new ADR if superseding
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# [ADR-012] Use PostgreSQL for Primary Database
|
|
2
|
-
|
|
3
|
-
**Date**: 2025-01-15
|
|
4
|
-
**Status**: Accepted
|
|
5
|
-
**Deciders**: Tech Lead, Backend Team, DevOps
|
|
6
|
-
**Tags**: database, architecture, backend
|
|
7
|
-
|
|
8
|
-
## Context and Problem Statement
|
|
9
|
-
|
|
10
|
-
Our application needs a primary database to store user data, transactions, and analytics. We need to choose a database that supports complex queries, transactions, and can scale with our growing user base (currently 10K users, expecting 100K+ within 6 months).
|
|
11
|
-
|
|
12
|
-
## Decision Drivers
|
|
13
|
-
|
|
14
|
-
- **Strong ACID compliance** - Financial transactions require data integrity
|
|
15
|
-
- **Complex query support** - Analytics require joins and aggregations
|
|
16
|
-
- **Team expertise** - Team has SQL experience but limited NoSQL experience
|
|
17
|
-
- **Cost** - Must fit within infrastructure budget (~$200/month)
|
|
18
|
-
- **Scalability** - Need to handle 10x growth over 6 months
|
|
19
|
-
- **Operational overhead** - Limited DevOps resources for maintenance
|
|
20
|
-
|
|
21
|
-
## Considered Options
|
|
22
|
-
|
|
23
|
-
- PostgreSQL
|
|
24
|
-
- MongoDB
|
|
25
|
-
- MySQL
|
|
26
|
-
|
|
27
|
-
## Decision Outcome
|
|
28
|
-
|
|
29
|
-
**Chosen option**: PostgreSQL
|
|
30
|
-
|
|
31
|
-
**Justification**: PostgreSQL offers the best balance of ACID compliance, query flexibility, and team expertise. While MongoDB could handle our document-like user profiles well, the financial transaction requirements demand strong consistency guarantees. PostgreSQL's JSON support gives us flexibility for semi-structured data without sacrificing transactional integrity.
|
|
32
|
-
|
|
33
|
-
### Positive Consequences
|
|
34
|
-
|
|
35
|
-
- Strong ACID guarantees protect financial data
|
|
36
|
-
- Team can leverage existing SQL knowledge immediately
|
|
37
|
-
- Rich ecosystem of tools (pg Admin, extensions, ORMs)
|
|
38
|
-
- JSON/JSONB support provides flexibility for evolving schemas
|
|
39
|
-
- Excellent performance for our expected load (<1M rows initially)
|
|
40
|
-
- Free and open source - no licensing costs
|
|
41
|
-
- Proven scalability path (read replicas, partitioning, Citus extension)
|
|
42
|
-
|
|
43
|
-
### Negative Consequences
|
|
44
|
-
|
|
45
|
-
- Vertical scaling limits eventually require sharding strategy
|
|
46
|
-
- Less flexible schema changes compared to schema-less databases
|
|
47
|
-
- Requires careful query optimization for complex analytics
|
|
48
|
-
- Team needs to learn PostgreSQL-specific features (JSONB, window functions)
|
|
49
|
-
|
|
50
|
-
## Pros and Cons of the Options
|
|
51
|
-
|
|
52
|
-
### PostgreSQL
|
|
53
|
-
|
|
54
|
-
**Pros**:
|
|
55
|
-
- ✅ Strong ACID compliance with serializable isolation
|
|
56
|
-
- ✅ Excellent support for complex queries (JOINs, CTEs, window functions)
|
|
57
|
-
- ✅ JSONB for flexible semi-structured data
|
|
58
|
-
- ✅ Rich extension ecosystem (PostGIS, pg_trgm, etc.)
|
|
59
|
-
- ✅ Free and open source
|
|
60
|
-
- ✅ Battle-tested at scale (Instagram, Spotify, GitHub use it)
|
|
61
|
-
- ✅ Team has SQL experience
|
|
62
|
-
|
|
63
|
-
**Cons**:
|
|
64
|
-
- ❌ Vertical scaling limits (~10M rows before needing partitioning)
|
|
65
|
-
- ❌ Schema migrations require downtime for large tables
|
|
66
|
-
- ❌ Write performance lower than NoSQL for high-throughput scenarios
|
|
67
|
-
- ❌ Replication complexity for multi-region deployment
|
|
68
|
-
|
|
69
|
-
### MongoDB
|
|
70
|
-
|
|
71
|
-
**Pros**:
|
|
72
|
-
- ✅ Flexible schema for rapidly evolving data models
|
|
73
|
-
- ✅ Horizontal scaling built-in (sharding)
|
|
74
|
-
- ✅ Fast writes for high-throughput scenarios
|
|
75
|
-
- ✅ Good for document-oriented data (user profiles, products)
|
|
76
|
-
- ✅ Built-in replication and failover
|
|
77
|
-
|
|
78
|
-
**Cons**:
|
|
79
|
-
- ❌ Weaker consistency guarantees (eventual consistency by default)
|
|
80
|
-
- ❌ Limited transaction support (only multi-document ACID since v4.0)
|
|
81
|
-
- ❌ Team has no MongoDB experience (3-6 month learning curve)
|
|
82
|
-
- ❌ More expensive managed hosting (~$400/month vs $200 for PostgreSQL)
|
|
83
|
-
- ❌ Complex queries less efficient (no JOINs)
|
|
84
|
-
- ❌ Analytics require aggregation pipeline (steep learning curve)
|
|
85
|
-
|
|
86
|
-
### MySQL
|
|
87
|
-
|
|
88
|
-
**Pros**:
|
|
89
|
-
- ✅ Strong ACID compliance
|
|
90
|
-
- ✅ Widely used and well-documented
|
|
91
|
-
- ✅ Team has SQL experience
|
|
92
|
-
- ✅ Good performance for read-heavy workloads
|
|
93
|
-
- ✅ Free and open source
|
|
94
|
-
|
|
95
|
-
**Cons**:
|
|
96
|
-
- ❌ Weaker JSON support compared to PostgreSQL
|
|
97
|
-
- ❌ Less feature-rich (no CTEs until v8.0, weaker window functions)
|
|
98
|
-
- ❌ Replication can be complex (binlog issues)
|
|
99
|
-
- ❌ Extension ecosystem less rich than PostgreSQL
|
|
100
|
-
- ❌ Oracle ownership concerns (licensing changes)
|
|
101
|
-
|
|
102
|
-
## Links
|
|
103
|
-
|
|
104
|
-
- [PostgreSQL JSON Support](https://www.postgresql.org/docs/current/datatype-json.html)
|
|
105
|
-
- [Scalability Guide](docs/architecture/postgres-scaling.md)
|
|
106
|
-
- [Database Schema Design](docs/architecture/schema-design.md)
|
|
107
|
-
- Related: [ADR-013: Use Prisma ORM](./ADR-013-use-prisma-orm.md)
|
|
108
|
-
|
|
109
|
-
## Notes
|
|
110
|
-
|
|
111
|
-
- **Migration path**: If we hit PostgreSQL scaling limits (>10M users), we'll evaluate:
|
|
112
|
-
1. Citus extension for horizontal scaling
|
|
113
|
-
2. Read replicas for read-heavy queries
|
|
114
|
-
3. Vertical scaling to larger instances
|
|
115
|
-
|
|
116
|
-
- **Review date**: 2025-06-15 (6 months) - Assess if decision still holds with actual usage data
|
|
117
|
-
|
|
118
|
-
- **Monitoring**: Set up alerts for:
|
|
119
|
-
- Query performance degradation
|
|
120
|
-
- Table size growth
|
|
121
|
-
- Replication lag
|
|
122
|
-
- Connection pool exhaustion
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# [ADR-###] {Title}
|
|
2
|
-
|
|
3
|
-
**Date**: {YYYY-MM-DD}
|
|
4
|
-
**Status**: {Proposed | Accepted | Deprecated | Superseded}
|
|
5
|
-
**Deciders**: {Names}
|
|
6
|
-
**Tags**: {tag1, tag2}
|
|
7
|
-
|
|
8
|
-
## Context and Problem Statement
|
|
9
|
-
|
|
10
|
-
{Describe the context and problem}
|
|
11
|
-
|
|
12
|
-
## Decision Drivers
|
|
13
|
-
|
|
14
|
-
- {Driver 1}
|
|
15
|
-
- {Driver 2}
|
|
16
|
-
- {Driver 3}
|
|
17
|
-
|
|
18
|
-
## Considered Options
|
|
19
|
-
|
|
20
|
-
- {Option 1}
|
|
21
|
-
- {Option 2}
|
|
22
|
-
- {Option 3}
|
|
23
|
-
|
|
24
|
-
## Decision Outcome
|
|
25
|
-
|
|
26
|
-
**Chosen option**: {Option X}
|
|
27
|
-
|
|
28
|
-
**Justification**: {Why this option}
|
|
29
|
-
|
|
30
|
-
### Positive Consequences
|
|
31
|
-
|
|
32
|
-
- {Good outcome 1}
|
|
33
|
-
- {Good outcome 2}
|
|
34
|
-
|
|
35
|
-
### Negative Consequences
|
|
36
|
-
|
|
37
|
-
- {Bad outcome 1}
|
|
38
|
-
- {Bad outcome 2}
|
|
39
|
-
|
|
40
|
-
## Pros and Cons of the Options
|
|
41
|
-
|
|
42
|
-
### {Option 1}
|
|
43
|
-
|
|
44
|
-
**Pros**:
|
|
45
|
-
- {Pro 1}
|
|
46
|
-
- {Pro 2}
|
|
47
|
-
|
|
48
|
-
**Cons**:
|
|
49
|
-
- {Con 1}
|
|
50
|
-
- {Con 2}
|
|
51
|
-
|
|
52
|
-
### {Option 2}
|
|
53
|
-
|
|
54
|
-
**Pros**:
|
|
55
|
-
- {Pro 1}
|
|
56
|
-
- {Pro 2}
|
|
57
|
-
|
|
58
|
-
**Cons**:
|
|
59
|
-
- {Con 1}
|
|
60
|
-
- {Con 2}
|
|
61
|
-
|
|
62
|
-
## Links
|
|
63
|
-
|
|
64
|
-
- {Related ADRs}
|
|
65
|
-
- {Documentation}
|
|
66
|
-
|
|
67
|
-
## Notes
|
|
68
|
-
|
|
69
|
-
- {Additional information}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agileflow-commit-messages
|
|
3
|
-
description: Formats git commit messages following Conventional Commits and respects user's attribution preferences from CLAUDE.md
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Conventional Commits Skill
|
|
7
|
-
|
|
8
|
-
Automatically formats git commit messages following the Conventional Commits specification while respecting the user's attribution policy defined in CLAUDE.md.
|
|
9
|
-
|
|
10
|
-
## When to Use
|
|
11
|
-
|
|
12
|
-
This skill activates when:
|
|
13
|
-
- Creating or staging git commits
|
|
14
|
-
- Discussing code changes that need committing
|
|
15
|
-
- Keywords: "commit", "git commit", "conventional commit", "commit message"
|
|
16
|
-
|
|
17
|
-
## What This Does
|
|
18
|
-
|
|
19
|
-
1. Checks CLAUDE.md for attribution policy (respects user preferences)
|
|
20
|
-
2. Analyzes staged changes to determine commit type and scope
|
|
21
|
-
3. Formats message using Conventional Commits format
|
|
22
|
-
4. Shows message to user for approval before executing
|
|
23
|
-
|
|
24
|
-
## Instructions
|
|
25
|
-
|
|
26
|
-
1. **Check attribution policy**:
|
|
27
|
-
- Read CLAUDE.md for "Git Commit Attribution Policy"
|
|
28
|
-
- If "DO NOT ADD AI ATTRIBUTION" found → skip footer
|
|
29
|
-
- Otherwise → prepare attribution footer
|
|
30
|
-
|
|
31
|
-
2. **Analyze changes**:
|
|
32
|
-
- Run `git diff --cached --stat` to see staged files
|
|
33
|
-
- Determine primary change type (feat, fix, refactor, etc.)
|
|
34
|
-
- Identify affected scope (api, ui, auth, db, config, etc.)
|
|
35
|
-
|
|
36
|
-
3. **Format message**:
|
|
37
|
-
```
|
|
38
|
-
<type>(<scope>): <subject>
|
|
39
|
-
|
|
40
|
-
<body>
|
|
41
|
-
|
|
42
|
-
<footer>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
4. **Show for approval**: Display formatted message (diff-first pattern)
|
|
46
|
-
|
|
47
|
-
5. **Execute after confirmation**: Run git commit with user's YES
|
|
48
|
-
|
|
49
|
-
## Conventional Commits Format
|
|
50
|
-
|
|
51
|
-
**Types**: feat, fix, docs, style, refactor, perf, test, chore, ci, revert
|
|
52
|
-
|
|
53
|
-
**Scope (optional)**: (api), (ui), (auth), (db), (config), etc.
|
|
54
|
-
|
|
55
|
-
**Subject rules**:
|
|
56
|
-
- Imperative mood: "add feature" not "added feature"
|
|
57
|
-
- Lowercase, no period, max 50 characters
|
|
58
|
-
|
|
59
|
-
**Body (optional)**:
|
|
60
|
-
- Explain WHAT and WHY (not HOW)
|
|
61
|
-
- Wrap at 72 characters per line
|
|
62
|
-
|
|
63
|
-
**Footer (optional)**:
|
|
64
|
-
- Issue references: `Closes #123`
|
|
65
|
-
- Breaking changes: `BREAKING CHANGE: description`
|
|
66
|
-
- Attribution: Add if CLAUDE.md allows
|
|
67
|
-
|
|
68
|
-
## Output Examples
|
|
69
|
-
|
|
70
|
-
**WITH attribution** (default):
|
|
71
|
-
```
|
|
72
|
-
feat(auth): add two-factor authentication
|
|
73
|
-
|
|
74
|
-
Implemented TOTP-based 2FA with QR code generation
|
|
75
|
-
for enhanced user account security.
|
|
76
|
-
|
|
77
|
-
Closes #234
|
|
78
|
-
|
|
79
|
-
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
|
80
|
-
|
|
81
|
-
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**WITHOUT attribution** (if CLAUDE.md specifies):
|
|
85
|
-
```
|
|
86
|
-
feat(auth): add two-factor authentication
|
|
87
|
-
|
|
88
|
-
Implemented TOTP-based 2FA with QR code generation
|
|
89
|
-
for enhanced user account security.
|
|
90
|
-
|
|
91
|
-
Closes #234
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Breaking changes**:
|
|
95
|
-
```
|
|
96
|
-
feat(api)!: change authentication endpoint structure
|
|
97
|
-
|
|
98
|
-
BREAKING CHANGE: The /auth/login endpoint now returns
|
|
99
|
-
a different response format.
|
|
100
|
-
|
|
101
|
-
Old: { token: "..." }
|
|
102
|
-
New: { accessToken: "...", refreshToken: "...", expiresIn: 3600 }
|
|
103
|
-
|
|
104
|
-
Closes #456
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Quality Checklist
|
|
108
|
-
|
|
109
|
-
Before suggesting commit message:
|
|
110
|
-
- [ ] Type is appropriate (feat/fix/refactor/docs/chore)
|
|
111
|
-
- [ ] Subject uses imperative mood
|
|
112
|
-
- [ ] Subject is lowercase, <50 chars, no period
|
|
113
|
-
- [ ] Body explains WHY, wrapped at 72 chars
|
|
114
|
-
- [ ] **Attribution policy checked in CLAUDE.md** (CRITICAL)
|
|
115
|
-
- [ ] No secrets in staged files (.env, tokens, credentials)
|
|
116
|
-
- [ ] Breaking changes marked with `!` and `BREAKING CHANGE:` footer
|
|
117
|
-
|
|
118
|
-
## Integration
|
|
119
|
-
|
|
120
|
-
- **agileflow-changelog**: Commit messages inform changelog entries
|
|
121
|
-
- **agileflow-story-writer**: Reference story IDs in commits (Closes STORY-042)
|
|
122
|
-
- **agileflow-adr**: Link ADRs in footer (Refs: ADR-0005)
|
|
123
|
-
|
|
124
|
-
## Notes
|
|
125
|
-
|
|
126
|
-
- ALWAYS check CLAUDE.md first for attribution preferences
|
|
127
|
-
- For large commits, suggest breaking into smaller logical commits
|
|
128
|
-
- Keep line lengths: subject <50 chars, body <72 chars
|
|
129
|
-
- Check for secrets before committing (.env, credentials.json, API keys)
|
|
130
|
-
- Security check: Warn user if sensitive files are staged
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# Bad Commit Message Examples (and How to Fix Them)
|
|
2
|
-
|
|
3
|
-
## ❌ Too Vague
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
fix: fix bug
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
**Problem**: Doesn't explain what bug was fixed
|
|
10
|
-
**Better**:
|
|
11
|
-
```
|
|
12
|
-
fix(auth): prevent session timeout during active use
|
|
13
|
-
|
|
14
|
-
Fixed bug where user sessions expired after 30 minutes
|
|
15
|
-
even during active usage. Now sessions extend while user
|
|
16
|
-
is interacting with the application.
|
|
17
|
-
|
|
18
|
-
Fixes #456
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## ❌ Wrong Tense
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
feat: added dark mode
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Problem**: Should be imperative mood ("add" not "added")
|
|
28
|
-
**Better**:
|
|
29
|
-
```
|
|
30
|
-
feat(ui): add dark mode toggle
|
|
31
|
-
|
|
32
|
-
Implemented dark mode with localStorage persistence
|
|
33
|
-
and system preference detection.
|
|
34
|
-
|
|
35
|
-
Closes #789
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## ❌ Subject Too Long
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
feat: add a new user profile editing feature that allows users to update their name, email, and profile picture
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Problem**: Subject exceeds 50 characters, should be concise
|
|
45
|
-
**Better**:
|
|
46
|
-
```
|
|
47
|
-
feat(profile): add user profile editing
|
|
48
|
-
|
|
49
|
-
Users can now update their name, email, and profile
|
|
50
|
-
picture from the settings page. Changes are validated
|
|
51
|
-
server-side and saved to the database.
|
|
52
|
-
|
|
53
|
-
Closes #123
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## ❌ No Type
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
update README
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Problem**: Missing type prefix
|
|
63
|
-
**Better**:
|
|
64
|
-
```
|
|
65
|
-
docs(readme): add API authentication examples
|
|
66
|
-
|
|
67
|
-
Added code examples showing how to authenticate API
|
|
68
|
-
requests using JWT tokens.
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## ❌ Multiple Unrelated Changes
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
feat: add login and fix cart bug and update dependencies
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Problem**: Should be 3 separate commits
|
|
78
|
-
**Better**: Split into:
|
|
79
|
-
```
|
|
80
|
-
feat(auth): add user login functionality
|
|
81
|
-
```
|
|
82
|
-
```
|
|
83
|
-
fix(cart): resolve item duplication issue
|
|
84
|
-
```
|
|
85
|
-
```
|
|
86
|
-
chore(deps): update npm packages to latest versions
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## ❌ Description of HOW Instead of WHY
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
fix: changed if statement to switch statement
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**Problem**: Describes implementation detail, not the reason
|
|
96
|
-
**Better**:
|
|
97
|
-
```
|
|
98
|
-
refactor(validation): simplify input validation logic
|
|
99
|
-
|
|
100
|
-
Replaced nested if statements with switch statement
|
|
101
|
-
for better readability and easier maintenance. No
|
|
102
|
-
functional changes.
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## ❌ Capitalized Subject
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
feat: Add Dark Mode Support
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Problem**: Subject should be lowercase
|
|
112
|
-
**Better**:
|
|
113
|
-
```
|
|
114
|
-
feat(ui): add dark mode support
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## ❌ Period at End of Subject
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
fix: resolve login timeout issue.
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Problem**: Subject shouldn't end with period
|
|
124
|
-
**Better**:
|
|
125
|
-
```
|
|
126
|
-
fix(auth): resolve login timeout issue
|
|
127
|
-
|
|
128
|
-
Increased session timeout from 15 to 30 minutes to
|
|
129
|
-
prevent premature logouts during form filling.
|
|
130
|
-
|
|
131
|
-
Fixes #567
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## ❌ No Context
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
fix: it works now
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**Problem**: Completely uninformative
|
|
141
|
-
**Better**:
|
|
142
|
-
```
|
|
143
|
-
fix(payment): resolve Stripe webhook signature validation
|
|
144
|
-
|
|
145
|
-
Fixed HMAC signature verification by using raw request
|
|
146
|
-
body instead of parsed JSON. Webhooks now process correctly.
|
|
147
|
-
|
|
148
|
-
Fixes #890
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## ❌ Missing Issue Reference
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
feat: add two-factor authentication
|
|
155
|
-
|
|
156
|
-
Implemented TOTP-based 2FA with QR code generation.
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**Problem**: Should reference the issue/story
|
|
160
|
-
**Better**:
|
|
161
|
-
```
|
|
162
|
-
feat(auth): add two-factor authentication
|
|
163
|
-
|
|
164
|
-
Implemented TOTP-based 2FA with QR code generation
|
|
165
|
-
for enhanced account security.
|
|
166
|
-
|
|
167
|
-
Closes #234, STORY-042
|
|
168
|
-
```
|