@crewpilot/agent 1.0.0 → 2.0.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 +131 -107
- package/dist-npm/cli.js +0 -0
- package/dist-npm/index.js +160 -127
- package/package.json +69 -69
- package/prompts/agent.md +282 -266
- package/prompts/catalyst.config.json +72 -72
- package/prompts/copilot-instructions.md +36 -36
- package/prompts/skills/assure-code-quality/SKILL.md +112 -112
- package/prompts/skills/assure-pr-intelligence/SKILL.md +148 -148
- package/prompts/skills/assure-review-functional/SKILL.md +114 -0
- package/prompts/skills/assure-review-standards/SKILL.md +106 -0
- package/prompts/skills/assure-threat-model/SKILL.md +182 -0
- package/prompts/skills/assure-vulnerability-scan/SKILL.md +146 -146
- package/prompts/skills/autopilot-meeting/SKILL.md +434 -407
- package/prompts/skills/autopilot-worker/SKILL.md +737 -623
- package/prompts/skills/daily-digest/SKILL.md +188 -167
- package/prompts/skills/deliver-change-management/SKILL.md +132 -132
- package/prompts/skills/deliver-deploy-guard/SKILL.md +144 -144
- package/prompts/skills/deliver-doc-governance/SKILL.md +130 -130
- package/prompts/skills/engineer-feature-builder/SKILL.md +270 -270
- package/prompts/skills/engineer-root-cause-analysis/SKILL.md +150 -150
- package/prompts/skills/engineer-test-first/SKILL.md +148 -148
- package/prompts/skills/insights-knowledge-base/SKILL.md +202 -181
- package/prompts/skills/insights-pattern-detection/SKILL.md +142 -142
- package/prompts/skills/strategize-architecture-planner/SKILL.md +141 -141
- package/prompts/skills/strategize-solution-design/SKILL.md +118 -118
- package/scripts/postinstall.js +108 -108
|
@@ -1,167 +1,188 @@
|
|
|
1
|
-
# Daily Digest
|
|
2
|
-
|
|
3
|
-
> **Pillar**: Orchestrate | **ID**: `daily-digest`
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Generate a comprehensive daily/weekly work summary by aggregating git activity, board changes, PR status, workflow completions, and knowledge entries — then deliver it via SMTP email or display in chat. Replaces manual status reporting entirely.
|
|
8
|
-
|
|
9
|
-
## Activation Triggers
|
|
10
|
-
|
|
11
|
-
- digest, daily report, daily summary, end of day, eod report, what did I do today, status report, send update, update PM, weekly summary, send email, standup report
|
|
12
|
-
|
|
13
|
-
## Tools Required
|
|
14
|
-
|
|
15
|
-
- `catalyst_git_log` — get commits for the time period
|
|
16
|
-
- `catalyst_board_my_items` — get board items (opened, closed, in-progress)
|
|
17
|
-
- `catalyst_worker_dashboard` — workflow completions and stats
|
|
18
|
-
- `catalyst_knowledge_timeline` — decisions made in the period
|
|
19
|
-
- `catalyst_exec` — run git/gh commands for additional data
|
|
20
|
-
- `catalyst_notify_send` — deliver the report via email
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
1
|
+
# Daily Digest
|
|
2
|
+
|
|
3
|
+
> **Pillar**: Orchestrate | **ID**: `daily-digest`
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Generate a comprehensive daily/weekly work summary by aggregating git activity, board changes, PR status, workflow completions, and knowledge entries — then deliver it via SMTP email or display in chat. Replaces manual status reporting entirely.
|
|
8
|
+
|
|
9
|
+
## Activation Triggers
|
|
10
|
+
|
|
11
|
+
- digest, daily report, daily summary, end of day, eod report, what did I do today, status report, send update, update PM, weekly summary, send email, standup report
|
|
12
|
+
|
|
13
|
+
## Tools Required
|
|
14
|
+
|
|
15
|
+
- `catalyst_git_log` — get commits for the time period
|
|
16
|
+
- `catalyst_board_my_items` — get board items (opened, closed, in-progress)
|
|
17
|
+
- `catalyst_worker_dashboard` — workflow completions and stats
|
|
18
|
+
- `catalyst_knowledge_timeline` — decisions made in the period
|
|
19
|
+
- `catalyst_exec` — run git/gh commands for additional data
|
|
20
|
+
- `catalyst_notify_send` — deliver the report via email
|
|
21
|
+
- `mcp_workiq_accept_eula` — (optional) accept Work IQ EULA before first query
|
|
22
|
+
- `mcp_workiq_ask_work_iq` — (optional, requires Work IQ extension) fetch M365 activity (emails, meetings, docs, Teams) for a full work-surface report
|
|
23
|
+
- `catalyst_artifact_write` — persist the digest as an artifact
|
|
24
|
+
|
|
25
|
+
## Methodology
|
|
26
|
+
|
|
27
|
+
### Process Flow
|
|
28
|
+
|
|
29
|
+
```dot
|
|
30
|
+
digraph daily_digest {
|
|
31
|
+
rankdir=LR;
|
|
32
|
+
node [shape=box];
|
|
33
|
+
|
|
34
|
+
collect [label="Phase 1\nData Collection\n(git, board, PRs,\nworkflows, knowledge)"];
|
|
35
|
+
generate [label="Phase 2\nReport Generation"];
|
|
36
|
+
deliver [label="Phase 3\nDelivery\n(email or chat)", shape=doublecircle];
|
|
37
|
+
|
|
38
|
+
collect -> generate;
|
|
39
|
+
generate -> deliver;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Phase 1 — Data Collection
|
|
44
|
+
|
|
45
|
+
Gather from all sources for the requested time period (default: today):
|
|
46
|
+
|
|
47
|
+
**Git Activity:**
|
|
48
|
+
1. Call `catalyst_git_log` with `--since="today 00:00"` (or requested range)
|
|
49
|
+
2. Extract: commit count, files changed, insertions/deletions, branches touched
|
|
50
|
+
3. Group commits by scope/type (feat, fix, refactor, test, docs)
|
|
51
|
+
|
|
52
|
+
**Board Activity:**
|
|
53
|
+
1. Call `catalyst_exec` with `gh issue list --author=@me --state=all --json number,title,state,updatedAt,labels`
|
|
54
|
+
2. Filter to items updated in the time period
|
|
55
|
+
3. Categorize: created, moved to in-progress, closed/done, commented on
|
|
56
|
+
|
|
57
|
+
**PR Activity:**
|
|
58
|
+
1. Call `catalyst_exec` with `gh pr list --author=@me --state=all --json number,title,state,createdAt,mergedAt,reviewDecision`
|
|
59
|
+
2. Filter to time period
|
|
60
|
+
3. Categorize: opened, merged, review pending, changes requested
|
|
61
|
+
|
|
62
|
+
**Workflow Activity:**
|
|
63
|
+
1. Call `catalyst_worker_dashboard` for digital worker stats
|
|
64
|
+
2. Filter completed/failed workflows in the period
|
|
65
|
+
|
|
66
|
+
**Knowledge:**
|
|
67
|
+
1. Call `catalyst_knowledge_timeline` for decisions and lessons stored today
|
|
68
|
+
|
|
69
|
+
**M365 Activity (optional — requires Work IQ MCP server):**
|
|
70
|
+
1. Call `mcp_workiq_accept_eula` with `eulaUrl: "https://github.com/microsoft/work-iq-mcp"` (idempotent — safe to call every time)
|
|
71
|
+
2. Use **multiple focused queries** for comprehensive coverage (targeted queries return better results than one broad question):
|
|
72
|
+
- **Emails**: `mcp_workiq_ask_work_iq` → "What emails did I send and receive on {date}? Summarize key threads and any action items."
|
|
73
|
+
- **Meetings**: `mcp_workiq_ask_work_iq` → "What meetings did I attend on {date}? What decisions were made and what action items were assigned to me?"
|
|
74
|
+
- **Documents**: `mcp_workiq_ask_work_iq` → "What documents did I edit or view in SharePoint and OneDrive on {date}?"
|
|
75
|
+
- **Teams**: `mcp_workiq_ask_work_iq` → "What Teams channel messages and chats was I active in on {date}? What mentions did I receive?"
|
|
76
|
+
- **Tasks**: `mcp_workiq_ask_work_iq` → "What Planner or To-Do tasks did I complete or get assigned on {date}?"
|
|
77
|
+
3. If Work IQ is available, parse all responses and include the full work surface:
|
|
78
|
+
- **Emails**: sent/received count, key threads, action items from emails
|
|
79
|
+
- **Meetings**: attended meetings, decisions made, action items assigned, linked documents
|
|
80
|
+
- **Documents**: files edited/viewed in SharePoint/OneDrive, co-authoring activity
|
|
81
|
+
- **Teams**: active channel conversations, 1:1 chats, mentions, and responses
|
|
82
|
+
- **Tasks**: Planner/To-Do items completed, created, or updated
|
|
83
|
+
4. If `mcp_workiq_ask_work_iq` is unavailable or errors, skip this section — the digest works without it (git + board + PRs is the baseline)
|
|
84
|
+
|
|
85
|
+
> **Query budget**: Work IQ queries have a ~30/session budget. The 5 queries above are a reasonable investment for a full daily digest. For weekly summaries, combine into broader date-range queries to conserve budget.
|
|
86
|
+
|
|
87
|
+
### Phase 2 — Report Generation
|
|
88
|
+
|
|
89
|
+
Compose the report in this structure:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
📊 Daily Digest — {date} — @{username}
|
|
93
|
+
═══════════════════════════════════════
|
|
94
|
+
|
|
95
|
+
📝 COMMITS ({count})
|
|
96
|
+
feat: {count} — {summary of features}
|
|
97
|
+
fix: {count} — {summary of fixes}
|
|
98
|
+
refactor: {count}
|
|
99
|
+
test: {count}
|
|
100
|
+
other: {count}
|
|
101
|
+
|
|
102
|
+
Files changed: {N} | +{insertions} / -{deletions}
|
|
103
|
+
|
|
104
|
+
📋 BOARD ACTIVITY
|
|
105
|
+
Created: {N} items ({titles})
|
|
106
|
+
In Progress: {N} items ({titles})
|
|
107
|
+
Completed: {N} items ({titles})
|
|
108
|
+
Blocked: {N} items ({titles + reason})
|
|
109
|
+
|
|
110
|
+
🔀 PULL REQUESTS
|
|
111
|
+
Opened: {N} — {PR titles with numbers}
|
|
112
|
+
Merged: {N} — {PR titles}
|
|
113
|
+
Pending: {N} — {waiting on review / changes requested}
|
|
114
|
+
|
|
115
|
+
🤖 DIGITAL WORKER
|
|
116
|
+
Workflows completed: {N}
|
|
117
|
+
Workflows in progress: {N}
|
|
118
|
+
Workflows failed: {N}
|
|
119
|
+
|
|
120
|
+
💡 DECISIONS MADE
|
|
121
|
+
- {decision 1}
|
|
122
|
+
- {decision 2}
|
|
123
|
+
|
|
124
|
+
───────────────────────────────────────
|
|
125
|
+
Tomorrow's focus:
|
|
126
|
+
- {open items in-progress}
|
|
127
|
+
- {PRs waiting for review}
|
|
128
|
+
- {blockers to resolve}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Phase 3 — Delivery
|
|
132
|
+
|
|
133
|
+
Based on notification configuration:
|
|
134
|
+
|
|
135
|
+
**Email (default when recipients configured):**
|
|
136
|
+
1. Call `catalyst_notify_send` with subject: "Daily Digest — {date} — {project name}", body: full report
|
|
137
|
+
2. Email sent automatically via SMTP (no manual interaction needed)
|
|
138
|
+
3. Requires SMTP env vars or `catalyst_notify_configure` to be set up
|
|
139
|
+
|
|
140
|
+
**Console (fallback when no recipients configured):**
|
|
141
|
+
1. Just display the report in chat
|
|
142
|
+
2. User can copy-paste to email manually
|
|
143
|
+
|
|
144
|
+
### Phase 4 — Preview & Send
|
|
145
|
+
|
|
146
|
+
**ALWAYS preview before sending:**
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
📊 Digest Preview:
|
|
150
|
+
|
|
151
|
+
{full report}
|
|
152
|
+
|
|
153
|
+
──────────────
|
|
154
|
+
Send to: {recipient} via email?
|
|
155
|
+
(yes / edit / just show)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
- **yes** → send via email (opens mail client with pre-filled content)
|
|
159
|
+
- **edit** → user modifies, re-preview
|
|
160
|
+
- **just show** → output only, don't send (default if no recipients configured)
|
|
161
|
+
|
|
162
|
+
## Weekly Summary Mode
|
|
163
|
+
|
|
164
|
+
When triggered with "weekly summary" or "weekly digest":
|
|
165
|
+
|
|
166
|
+
1. Aggregate across the full week (Mon-Fri)
|
|
167
|
+
2. Add a "Week Highlights" section at the top
|
|
168
|
+
3. Add trend comparison: "vs last week: +3 commits, +2 PRs, -1 blocker"
|
|
169
|
+
4. Include sprint velocity trend chart (text-based)
|
|
170
|
+
|
|
171
|
+
## Output Format
|
|
172
|
+
|
|
173
|
+
- Use the structured template shown in Phase 2
|
|
174
|
+
- Numbers first, details second
|
|
175
|
+
- Emoji prefixes for quick scanning
|
|
176
|
+
- Keep total report under 100 lines — summarize, don't enumerate every commit
|
|
177
|
+
|
|
178
|
+
## Anti-Patterns
|
|
179
|
+
|
|
180
|
+
- Do NOT send email without showing preview first
|
|
181
|
+
- Do NOT include sensitive data (secrets, tokens, passwords found in code)
|
|
182
|
+
- Do NOT fabricate activity — if nothing happened, say "quiet day"
|
|
183
|
+
- Do NOT include full commit messages — summarize by category
|
|
184
|
+
- Do NOT send to recipients not configured via catalyst_notify_configure
|
|
185
|
+
|
|
186
|
+
## Chains To
|
|
187
|
+
|
|
188
|
+
- `knowledge-base` — the digest itself can be stored as a daily record
|
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
# Change Management
|
|
2
|
-
|
|
3
|
-
> **Pillar**: Deliver | **ID**: `deliver-change-management`
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Structured commit and release workflow. Enforces conventional commits, generates changelogs, manages semantic versioning, and ensures every change is traceable.
|
|
8
|
-
|
|
9
|
-
## Activation Triggers
|
|
10
|
-
|
|
11
|
-
- "commit this", "write a commit message", "what should the commit be"
|
|
12
|
-
- "changelog", "release notes", "version bump"
|
|
13
|
-
- Automatically chained after any skill that modifies code
|
|
14
|
-
|
|
15
|
-
## Methodology
|
|
16
|
-
|
|
17
|
-
### Process Flow
|
|
18
|
-
|
|
19
|
-
```dot
|
|
20
|
-
digraph change_management {
|
|
21
|
-
rankdir=TB;
|
|
22
|
-
node [shape=box];
|
|
23
|
-
|
|
24
|
-
analyze [label="Phase 1\nChange Analysis"];
|
|
25
|
-
message [label="Phase 2\nCommit Message Generation"];
|
|
26
|
-
group [label="Phase 3\nCommit Grouping", shape=diamond];
|
|
27
|
-
release [label="Phase 4\nRelease Notes", style=dashed];
|
|
28
|
-
done [label="Committed", shape=doublecircle];
|
|
29
|
-
|
|
30
|
-
analyze -> message;
|
|
31
|
-
message -> group;
|
|
32
|
-
group -> message [label="split into\nseparate commits"];
|
|
33
|
-
group -> done [label="single commit"];
|
|
34
|
-
done -> release [label="release requested"];
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Phase 1 — Change Analysis
|
|
39
|
-
1. Run `git status` and `git diff --staged` to understand what's changed
|
|
40
|
-
2. If nothing is staged, analyze the working tree diff
|
|
41
|
-
3. Categorize changes:
|
|
42
|
-
- **feat**: New functionality
|
|
43
|
-
- **fix**: Bug fix
|
|
44
|
-
- **refactor**: Code restructuring (no behavior change)
|
|
45
|
-
- **test**: Adding/modifying tests
|
|
46
|
-
- **docs**: Documentation only
|
|
47
|
-
- **perf**: Performance improvement
|
|
48
|
-
- **chore**: Build, CI, dependencies
|
|
49
|
-
- **security**: Security fix
|
|
50
|
-
|
|
51
|
-
### Phase 2 — Commit Message Generation
|
|
52
|
-
Follow the conventional commit format configured in `commit_format`:
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
{type}({scope}): {description}
|
|
56
|
-
|
|
57
|
-
{body — what and why, not how}
|
|
58
|
-
|
|
59
|
-
{footer — breaking changes, issue references}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Rules:
|
|
63
|
-
- Subject line ≤ 72 characters
|
|
64
|
-
- Scope is the affected module/component (inferred from file paths)
|
|
65
|
-
- Body explains motivation if the change isn't obvious
|
|
66
|
-
- `BREAKING CHANGE:` footer for breaking changes
|
|
67
|
-
- Reference issues: `Closes #123`, `Fixes #456`
|
|
68
|
-
|
|
69
|
-
### Phase 3 — Commit Grouping
|
|
70
|
-
If multiple logical changes are staged:
|
|
71
|
-
1. Suggest splitting into separate commits
|
|
72
|
-
2. Provide the staging commands (`git add -p` guidance)
|
|
73
|
-
3. Generate a commit message for each logical unit
|
|
74
|
-
|
|
75
|
-
### Phase 4 — Release Notes (when requested)
|
|
76
|
-
1. Parse commits since last tag
|
|
77
|
-
2. Group by type (Features, Fixes, Breaking Changes, etc.)
|
|
78
|
-
3. Generate human-readable release notes
|
|
79
|
-
4. Suggest version bump based on commit types:
|
|
80
|
-
- `BREAKING CHANGE` → major
|
|
81
|
-
- `feat` → minor
|
|
82
|
-
- `fix`, `perf` → patch
|
|
83
|
-
|
|
84
|
-
## Tools Required
|
|
85
|
-
|
|
86
|
-
- `terminal` — Run git commands
|
|
87
|
-
- `catalyst_git_status` — Get current state
|
|
88
|
-
- `catalyst_git_diff` — Get detailed diff
|
|
89
|
-
- `catalyst_git_log` — Parse commit history
|
|
90
|
-
- `catalyst_git_stage` — Stage files
|
|
91
|
-
- `catalyst_git_commit` — Execute commit
|
|
92
|
-
|
|
93
|
-
## Output Format
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
## [Catalyst → Change Management]
|
|
97
|
-
|
|
98
|
-
### Changes Detected
|
|
99
|
-
| Type | Scope | Files |
|
|
100
|
-
|---|---|---|
|
|
101
|
-
| {type} | {scope} | {file list} |
|
|
102
|
-
|
|
103
|
-
### Suggested Commit
|
|
104
|
-
\`\`\`
|
|
105
|
-
{type}({scope}): {description}
|
|
106
|
-
|
|
107
|
-
{body}
|
|
108
|
-
|
|
109
|
-
{footer}
|
|
110
|
-
\`\`\`
|
|
111
|
-
|
|
112
|
-
### Release Notes (if requested)
|
|
113
|
-
## v{X.Y.Z}
|
|
114
|
-
### Features
|
|
115
|
-
- {description} ({hash})
|
|
116
|
-
### Fixes
|
|
117
|
-
- {description} ({hash})
|
|
118
|
-
### Breaking Changes
|
|
119
|
-
- {description} ({hash})
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Chains To
|
|
123
|
-
|
|
124
|
-
- `doc-governance` — Check if changed code needs doc updates
|
|
125
|
-
- `deploy-guard` — Pre-deployment safety after committing
|
|
126
|
-
|
|
127
|
-
## Anti-Patterns
|
|
128
|
-
|
|
129
|
-
- Do NOT write generic commit messages ("update code", "fix things")
|
|
130
|
-
- Do NOT combine unrelated changes in one commit
|
|
131
|
-
- Do NOT skip the body for non-obvious changes
|
|
132
|
-
- Do NOT version bump without analyzing the commit history
|
|
1
|
+
# Change Management
|
|
2
|
+
|
|
3
|
+
> **Pillar**: Deliver | **ID**: `deliver-change-management`
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Structured commit and release workflow. Enforces conventional commits, generates changelogs, manages semantic versioning, and ensures every change is traceable.
|
|
8
|
+
|
|
9
|
+
## Activation Triggers
|
|
10
|
+
|
|
11
|
+
- "commit this", "write a commit message", "what should the commit be"
|
|
12
|
+
- "changelog", "release notes", "version bump"
|
|
13
|
+
- Automatically chained after any skill that modifies code
|
|
14
|
+
|
|
15
|
+
## Methodology
|
|
16
|
+
|
|
17
|
+
### Process Flow
|
|
18
|
+
|
|
19
|
+
```dot
|
|
20
|
+
digraph change_management {
|
|
21
|
+
rankdir=TB;
|
|
22
|
+
node [shape=box];
|
|
23
|
+
|
|
24
|
+
analyze [label="Phase 1\nChange Analysis"];
|
|
25
|
+
message [label="Phase 2\nCommit Message Generation"];
|
|
26
|
+
group [label="Phase 3\nCommit Grouping", shape=diamond];
|
|
27
|
+
release [label="Phase 4\nRelease Notes", style=dashed];
|
|
28
|
+
done [label="Committed", shape=doublecircle];
|
|
29
|
+
|
|
30
|
+
analyze -> message;
|
|
31
|
+
message -> group;
|
|
32
|
+
group -> message [label="split into\nseparate commits"];
|
|
33
|
+
group -> done [label="single commit"];
|
|
34
|
+
done -> release [label="release requested"];
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Phase 1 — Change Analysis
|
|
39
|
+
1. Run `git status` and `git diff --staged` to understand what's changed
|
|
40
|
+
2. If nothing is staged, analyze the working tree diff
|
|
41
|
+
3. Categorize changes:
|
|
42
|
+
- **feat**: New functionality
|
|
43
|
+
- **fix**: Bug fix
|
|
44
|
+
- **refactor**: Code restructuring (no behavior change)
|
|
45
|
+
- **test**: Adding/modifying tests
|
|
46
|
+
- **docs**: Documentation only
|
|
47
|
+
- **perf**: Performance improvement
|
|
48
|
+
- **chore**: Build, CI, dependencies
|
|
49
|
+
- **security**: Security fix
|
|
50
|
+
|
|
51
|
+
### Phase 2 — Commit Message Generation
|
|
52
|
+
Follow the conventional commit format configured in `commit_format`:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
{type}({scope}): {description}
|
|
56
|
+
|
|
57
|
+
{body — what and why, not how}
|
|
58
|
+
|
|
59
|
+
{footer — breaking changes, issue references}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Rules:
|
|
63
|
+
- Subject line ≤ 72 characters
|
|
64
|
+
- Scope is the affected module/component (inferred from file paths)
|
|
65
|
+
- Body explains motivation if the change isn't obvious
|
|
66
|
+
- `BREAKING CHANGE:` footer for breaking changes
|
|
67
|
+
- Reference issues: `Closes #123`, `Fixes #456`
|
|
68
|
+
|
|
69
|
+
### Phase 3 — Commit Grouping
|
|
70
|
+
If multiple logical changes are staged:
|
|
71
|
+
1. Suggest splitting into separate commits
|
|
72
|
+
2. Provide the staging commands (`git add -p` guidance)
|
|
73
|
+
3. Generate a commit message for each logical unit
|
|
74
|
+
|
|
75
|
+
### Phase 4 — Release Notes (when requested)
|
|
76
|
+
1. Parse commits since last tag
|
|
77
|
+
2. Group by type (Features, Fixes, Breaking Changes, etc.)
|
|
78
|
+
3. Generate human-readable release notes
|
|
79
|
+
4. Suggest version bump based on commit types:
|
|
80
|
+
- `BREAKING CHANGE` → major
|
|
81
|
+
- `feat` → minor
|
|
82
|
+
- `fix`, `perf` → patch
|
|
83
|
+
|
|
84
|
+
## Tools Required
|
|
85
|
+
|
|
86
|
+
- `terminal` — Run git commands
|
|
87
|
+
- `catalyst_git_status` — Get current state
|
|
88
|
+
- `catalyst_git_diff` — Get detailed diff
|
|
89
|
+
- `catalyst_git_log` — Parse commit history
|
|
90
|
+
- `catalyst_git_stage` — Stage files
|
|
91
|
+
- `catalyst_git_commit` — Execute commit
|
|
92
|
+
|
|
93
|
+
## Output Format
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
## [Catalyst → Change Management]
|
|
97
|
+
|
|
98
|
+
### Changes Detected
|
|
99
|
+
| Type | Scope | Files |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| {type} | {scope} | {file list} |
|
|
102
|
+
|
|
103
|
+
### Suggested Commit
|
|
104
|
+
\`\`\`
|
|
105
|
+
{type}({scope}): {description}
|
|
106
|
+
|
|
107
|
+
{body}
|
|
108
|
+
|
|
109
|
+
{footer}
|
|
110
|
+
\`\`\`
|
|
111
|
+
|
|
112
|
+
### Release Notes (if requested)
|
|
113
|
+
## v{X.Y.Z}
|
|
114
|
+
### Features
|
|
115
|
+
- {description} ({hash})
|
|
116
|
+
### Fixes
|
|
117
|
+
- {description} ({hash})
|
|
118
|
+
### Breaking Changes
|
|
119
|
+
- {description} ({hash})
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Chains To
|
|
123
|
+
|
|
124
|
+
- `doc-governance` — Check if changed code needs doc updates
|
|
125
|
+
- `deploy-guard` — Pre-deployment safety after committing
|
|
126
|
+
|
|
127
|
+
## Anti-Patterns
|
|
128
|
+
|
|
129
|
+
- Do NOT write generic commit messages ("update code", "fix things")
|
|
130
|
+
- Do NOT combine unrelated changes in one commit
|
|
131
|
+
- Do NOT skip the body for non-obvious changes
|
|
132
|
+
- Do NOT version bump without analyzing the commit history
|