@grunnverk/kilde 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/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +31 -0
- package/.github/pull_request_template.md +48 -0
- package/.github/workflows/deploy-docs.yml +59 -0
- package/.github/workflows/npm-publish.yml +48 -0
- package/.github/workflows/test.yml +48 -0
- package/CHANGELOG.md +92 -0
- package/CONTRIBUTING.md +438 -0
- package/LICENSE +190 -0
- package/PROJECT_SUMMARY.md +318 -0
- package/README.md +444 -0
- package/RELEASE_CHECKLIST.md +182 -0
- package/dist/application.js +166 -0
- package/dist/application.js.map +1 -0
- package/dist/commands/release.js +326 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/constants.js +122 -0
- package/dist/constants.js.map +1 -0
- package/dist/logging.js +176 -0
- package/dist/logging.js.map +1 -0
- package/dist/main.js +24 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp-server.js +17467 -0
- package/dist/mcp-server.js.map +7 -0
- package/dist/utils/config.js +89 -0
- package/dist/utils/config.js.map +1 -0
- package/docs/AI_GUIDE.md +618 -0
- package/eslint.config.mjs +85 -0
- package/guide/architecture.md +776 -0
- package/guide/commands.md +580 -0
- package/guide/configuration.md +779 -0
- package/guide/mcp-integration.md +708 -0
- package/guide/overview.md +225 -0
- package/package.json +91 -0
- package/scripts/build-mcp.js +115 -0
- package/scripts/test-mcp-compliance.js +254 -0
- package/src/application.ts +246 -0
- package/src/commands/release.ts +450 -0
- package/src/constants.ts +162 -0
- package/src/logging.ts +210 -0
- package/src/main.ts +25 -0
- package/src/mcp/prompts/index.ts +98 -0
- package/src/mcp/resources.ts +121 -0
- package/src/mcp/server.ts +195 -0
- package/src/mcp/tools.ts +219 -0
- package/src/types.ts +131 -0
- package/src/utils/config.ts +181 -0
- package/tests/application.test.ts +114 -0
- package/tests/commands/commit.test.ts +248 -0
- package/tests/commands/release.test.ts +325 -0
- package/tests/constants.test.ts +118 -0
- package/tests/logging.test.ts +142 -0
- package/tests/mcp/prompts/index.test.ts +202 -0
- package/tests/mcp/resources.test.ts +166 -0
- package/tests/mcp/tools.test.ts +211 -0
- package/tests/utils/config.test.ts +212 -0
- package/tsconfig.json +32 -0
- package/vite.config.ts +107 -0
- package/vitest.config.ts +40 -0
- package/website/index.html +14 -0
- package/website/src/App.css +142 -0
- package/website/src/App.tsx +34 -0
- package/website/src/components/Commands.tsx +182 -0
- package/website/src/components/Configuration.tsx +214 -0
- package/website/src/components/Examples.tsx +234 -0
- package/website/src/components/Footer.css +99 -0
- package/website/src/components/Footer.tsx +93 -0
- package/website/src/components/GettingStarted.tsx +94 -0
- package/website/src/components/Hero.css +95 -0
- package/website/src/components/Hero.tsx +50 -0
- package/website/src/components/Navigation.css +102 -0
- package/website/src/components/Navigation.tsx +57 -0
- package/website/src/index.css +36 -0
- package/website/src/main.tsx +10 -0
- package/website/vite.config.ts +12 -0
package/README.md
ADDED
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
# Kilde
|
|
2
|
+
|
|
3
|
+
> **Universal Git Automation Tool** - AI-powered commit and release messages for any git repository
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@grunnverk/kilde)
|
|
6
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://github.com/grunnverk/kilde)
|
|
9
|
+
|
|
10
|
+
Kilde (Norwegian for "source") is a lightweight, language-agnostic Git automation tool that generates excellent commit messages and release notes using AI. Unlike platform-specific tools, Kilde works with **any git repository** regardless of programming language or hosting platform.
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- 🤖 **AI-Powered Commit Messages** - Generate meaningful commit messages from staged changes
|
|
15
|
+
- 📝 **Git-Based Release Notes** - Create comprehensive release notes from git history
|
|
16
|
+
- 🌍 **Language Agnostic** - Works with Python, Go, Rust, Java, JavaScript, and more
|
|
17
|
+
- 🚀 **Pure Git** - No GitHub API required, works with any git host
|
|
18
|
+
- ⚡ **Fast** - Builds in under 30 seconds
|
|
19
|
+
- 🔌 **MCP Integration** - Expose tools via Model Context Protocol
|
|
20
|
+
- 🎨 **Interactive Mode** - Review and edit before committing
|
|
21
|
+
- ⚙️ **Flexible Configuration** - YAML/JSON config files with sensible defaults
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Install globally
|
|
27
|
+
npm install -g @grunnverk/kilde
|
|
28
|
+
|
|
29
|
+
# Or use with npx
|
|
30
|
+
npx @grunnverk/kilde --version
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Requirements
|
|
34
|
+
|
|
35
|
+
- Node.js 24.0.0 or higher
|
|
36
|
+
- Git 2.0+
|
|
37
|
+
- OpenAI API key (set `OPENAI_API_KEY` environment variable)
|
|
38
|
+
|
|
39
|
+
## Quick Start
|
|
40
|
+
|
|
41
|
+
### Generate a Commit Message
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Preview commit message (dry-run)
|
|
45
|
+
kilde commit --cached
|
|
46
|
+
|
|
47
|
+
# Stage all changes and generate commit message
|
|
48
|
+
kilde commit --add
|
|
49
|
+
|
|
50
|
+
# Generate and commit automatically
|
|
51
|
+
kilde commit --add --sendit
|
|
52
|
+
|
|
53
|
+
# Interactive mode - review before committing
|
|
54
|
+
kilde commit --add --interactive
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Generate Release Notes
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Generate release notes from last tag to HEAD
|
|
61
|
+
kilde release
|
|
62
|
+
|
|
63
|
+
# Specify version and tag range
|
|
64
|
+
kilde release --version v2.0.0 --from-tag v1.0.0
|
|
65
|
+
|
|
66
|
+
# Save to file
|
|
67
|
+
kilde release --version v2.0.0 --output RELEASE_NOTES.md
|
|
68
|
+
|
|
69
|
+
# Focus on specific aspects
|
|
70
|
+
kilde release --focus "breaking changes"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Commands
|
|
74
|
+
|
|
75
|
+
### `kilde commit`
|
|
76
|
+
|
|
77
|
+
Generate AI-powered commit messages from staged changes.
|
|
78
|
+
|
|
79
|
+
**Options:**
|
|
80
|
+
- `--add` - Stage all changes before committing
|
|
81
|
+
- `--cached` - Only use staged changes (default)
|
|
82
|
+
- `--sendit` - Automatically commit with generated message
|
|
83
|
+
- `--interactive` - Review message before committing
|
|
84
|
+
- `--amend` - Amend the previous commit
|
|
85
|
+
- `--push [remote]` - Push after committing (optionally specify remote)
|
|
86
|
+
- `--context <text>` - Additional context for commit message
|
|
87
|
+
- `--context-files <files...>` - Include specific files for context
|
|
88
|
+
- `--dry-run` - Preview without making changes
|
|
89
|
+
- `--verbose` - Enable verbose logging
|
|
90
|
+
- `--debug` - Enable debug logging
|
|
91
|
+
|
|
92
|
+
**Examples:**
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Stage changes and preview commit message
|
|
96
|
+
kilde commit --add --dry-run
|
|
97
|
+
|
|
98
|
+
# Interactive commit with context
|
|
99
|
+
kilde commit --add --interactive --context "Fixes issue #123"
|
|
100
|
+
|
|
101
|
+
# Commit and push to origin
|
|
102
|
+
kilde commit --add --sendit --push origin
|
|
103
|
+
|
|
104
|
+
# Use specific files for context
|
|
105
|
+
kilde commit --add --context-files CHANGELOG.md --sendit
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### `kilde release`
|
|
109
|
+
|
|
110
|
+
Generate release notes from git commit history.
|
|
111
|
+
|
|
112
|
+
**Options:**
|
|
113
|
+
- `--from-tag <tag>` - Start tag for release notes (default: last tag)
|
|
114
|
+
- `--to-tag <tag>` - End tag for release notes (default: HEAD)
|
|
115
|
+
- `--version <version>` - Version number for the release
|
|
116
|
+
- `--output <file>` - Output file path for release notes
|
|
117
|
+
- `--interactive` - Review notes before saving
|
|
118
|
+
- `--focus <text>` - Focus area for release notes
|
|
119
|
+
- `--context <text>` - Additional context for generation
|
|
120
|
+
- `--context-files <files...>` - Include specific files for context
|
|
121
|
+
- `--dry-run` - Preview without saving to file
|
|
122
|
+
- `--verbose` - Enable verbose logging
|
|
123
|
+
- `--debug` - Enable debug logging
|
|
124
|
+
|
|
125
|
+
**Examples:**
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Generate release notes for next version
|
|
129
|
+
kilde release --version v2.0.0 --output RELEASE.md
|
|
130
|
+
|
|
131
|
+
# Focus on breaking changes
|
|
132
|
+
kilde release --focus "breaking changes" --version v2.0.0
|
|
133
|
+
|
|
134
|
+
# Compare specific tags
|
|
135
|
+
kilde release --from-tag v1.5.0 --to-tag v2.0.0
|
|
136
|
+
|
|
137
|
+
# Preview with verbose output
|
|
138
|
+
kilde release --dry-run --verbose
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Configuration
|
|
142
|
+
|
|
143
|
+
Kilde looks for configuration files in the following locations (in order):
|
|
144
|
+
|
|
145
|
+
1. `.kilde/config.yaml`
|
|
146
|
+
2. `.kilde/config.yml`
|
|
147
|
+
3. `.kilderc.yaml`
|
|
148
|
+
4. `.kilderc.yml`
|
|
149
|
+
5. `.kilderc.json`
|
|
150
|
+
6. `kilde.config.json`
|
|
151
|
+
|
|
152
|
+
### Example Configuration
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
# Global settings
|
|
156
|
+
verbose: false
|
|
157
|
+
debug: false
|
|
158
|
+
model: gpt-4o-mini
|
|
159
|
+
openaiReasoning: low
|
|
160
|
+
outputDirectory: output/kilde
|
|
161
|
+
|
|
162
|
+
# Commit configuration
|
|
163
|
+
commit:
|
|
164
|
+
sendit: false
|
|
165
|
+
interactive: false
|
|
166
|
+
messageLimit: 3
|
|
167
|
+
maxDiffBytes: 20480
|
|
168
|
+
|
|
169
|
+
# Release configuration
|
|
170
|
+
release:
|
|
171
|
+
interactive: false
|
|
172
|
+
messageLimit: 3
|
|
173
|
+
maxDiffBytes: 20480
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Generate Sample Config
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Create a sample configuration file
|
|
180
|
+
kilde config --init
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## MCP Integration
|
|
184
|
+
|
|
185
|
+
Kilde includes a Model Context Protocol server for integration with AI assistants like Claude.
|
|
186
|
+
|
|
187
|
+
### Setup
|
|
188
|
+
|
|
189
|
+
Add to your MCP configuration (e.g., `claude_desktop_config.json`):
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"mcpServers": {
|
|
194
|
+
"kilde": {
|
|
195
|
+
"command": "npx",
|
|
196
|
+
"args": ["-y", "@grunnverk/kilde", "mcp"]
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Or if installed globally:
|
|
203
|
+
|
|
204
|
+
```json
|
|
205
|
+
{
|
|
206
|
+
"mcpServers": {
|
|
207
|
+
"kilde": {
|
|
208
|
+
"command": "kilde-mcp",
|
|
209
|
+
"args": []
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Available MCP Tools
|
|
216
|
+
|
|
217
|
+
#### `kilde_commit`
|
|
218
|
+
|
|
219
|
+
Generate and create git commits with AI-powered messages.
|
|
220
|
+
|
|
221
|
+
**Parameters:**
|
|
222
|
+
- `add` (boolean) - Stage all changes
|
|
223
|
+
- `cached` (boolean) - Use only staged changes
|
|
224
|
+
- `sendit` (boolean) - Automatically commit
|
|
225
|
+
- `interactive` (boolean) - Interactive mode
|
|
226
|
+
- `amend` (boolean) - Amend previous commit
|
|
227
|
+
- `context` (string) - Additional context
|
|
228
|
+
- `contextFiles` (array) - Context files
|
|
229
|
+
- `dryRun` (boolean) - Preview only
|
|
230
|
+
|
|
231
|
+
#### `kilde_release`
|
|
232
|
+
|
|
233
|
+
Generate release notes from git history.
|
|
234
|
+
|
|
235
|
+
**Parameters:**
|
|
236
|
+
- `fromTag` (string) - Start tag
|
|
237
|
+
- `toTag` (string) - End tag (default: HEAD)
|
|
238
|
+
- `version` (string) - Version number
|
|
239
|
+
- `output` (string) - Output file path
|
|
240
|
+
- `interactive` (boolean) - Interactive mode
|
|
241
|
+
- `focus` (string) - Focus area
|
|
242
|
+
- `context` (string) - Additional context
|
|
243
|
+
- `contextFiles` (array) - Context files
|
|
244
|
+
- `dryRun` (boolean) - Preview only
|
|
245
|
+
|
|
246
|
+
### MCP Resources
|
|
247
|
+
|
|
248
|
+
- `kilde://config` - Current configuration
|
|
249
|
+
- `kilde://status` - Git repository status
|
|
250
|
+
- `kilde://workspace` - Workspace information
|
|
251
|
+
|
|
252
|
+
### MCP Prompts
|
|
253
|
+
|
|
254
|
+
- `commit-workflow` - Interactive commit workflow
|
|
255
|
+
- `release-workflow` - Interactive release workflow
|
|
256
|
+
|
|
257
|
+
See [docs/AI_GUIDE.md](docs/AI_GUIDE.md) for detailed AI integration instructions.
|
|
258
|
+
|
|
259
|
+
## Environment Variables
|
|
260
|
+
|
|
261
|
+
- `OPENAI_API_KEY` - OpenAI API key (required)
|
|
262
|
+
- `OPENAI_BASE_URL` - Custom OpenAI API base URL (optional)
|
|
263
|
+
- `OPENAI_ORG_ID` - OpenAI organization ID (optional)
|
|
264
|
+
|
|
265
|
+
## Advanced Usage
|
|
266
|
+
|
|
267
|
+
### Using with Context Files
|
|
268
|
+
|
|
269
|
+
Provide additional context from specific files:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
kilde commit --add --context-files CHANGELOG.md ARCHITECTURE.md \
|
|
273
|
+
--context "Refactoring authentication module"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Custom AI Models
|
|
277
|
+
|
|
278
|
+
Specify different AI models:
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
kilde commit --add --model gpt-4o
|
|
282
|
+
kilde release --model gpt-4o --reasoning high
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Dry-Run Mode
|
|
286
|
+
|
|
287
|
+
Preview what would happen without making changes:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
kilde commit --add --dry-run --verbose
|
|
291
|
+
kilde release --version v2.0.0 --dry-run
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Debug Mode
|
|
295
|
+
|
|
296
|
+
Enable detailed logging for troubleshooting:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
kilde commit --add --debug
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Debug logs are saved to `output/kilde/debug/*.log`
|
|
303
|
+
|
|
304
|
+
## How It Works
|
|
305
|
+
|
|
306
|
+
1. **Analyze Changes**: Examines git diff and commit history
|
|
307
|
+
2. **Extract Context**: Reads relevant files and commit messages
|
|
308
|
+
3. **Generate Message**: Uses AI to create contextual messages
|
|
309
|
+
4. **Review & Commit**: Optionally review before committing
|
|
310
|
+
|
|
311
|
+
### Commit Message Generation
|
|
312
|
+
|
|
313
|
+
- Analyzes staged or uncommitted changes
|
|
314
|
+
- Considers recent commit history for style consistency
|
|
315
|
+
- Generates clear, descriptive messages
|
|
316
|
+
- Follows conventional commit format when appropriate
|
|
317
|
+
|
|
318
|
+
### Release Notes Generation
|
|
319
|
+
|
|
320
|
+
- Analyzes commits between two git refs
|
|
321
|
+
- Categorizes changes (features, fixes, breaking changes)
|
|
322
|
+
- Generates structured, readable release notes
|
|
323
|
+
- Highlights important changes
|
|
324
|
+
|
|
325
|
+
## Use Cases
|
|
326
|
+
|
|
327
|
+
### Solo Developer
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
# Quick commit workflow
|
|
331
|
+
kilde commit --add --sendit
|
|
332
|
+
|
|
333
|
+
# Generate release notes for npm publish
|
|
334
|
+
kilde release --version $(npm version patch) --output CHANGELOG.md
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Team Development
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
# Interactive commit with context
|
|
341
|
+
kilde commit --add --interactive --context "Feature from sprint planning"
|
|
342
|
+
|
|
343
|
+
# Generate release notes for code review
|
|
344
|
+
kilde release --from-tag v1.9.0 --focus "API changes"
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### CI/CD Integration
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# Generate release notes in pipeline
|
|
351
|
+
kilde release --version $VERSION --output release-notes.md
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Troubleshooting
|
|
355
|
+
|
|
356
|
+
### "Node.js version 24.0.0 or higher is required"
|
|
357
|
+
|
|
358
|
+
Upgrade your Node.js:
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
# Using nvm
|
|
362
|
+
nvm install 24
|
|
363
|
+
nvm use 24
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### "OPENAI_API_KEY environment variable is not set"
|
|
367
|
+
|
|
368
|
+
Set your OpenAI API key:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
# In shell profile
|
|
372
|
+
export OPENAI_API_KEY="sk-..."
|
|
373
|
+
|
|
374
|
+
# Or use .env file
|
|
375
|
+
echo "OPENAI_API_KEY=sk-..." > .env
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### "Not a git repository"
|
|
379
|
+
|
|
380
|
+
Ensure you're in a git repository:
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
git status
|
|
384
|
+
cd /path/to/your/repo
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
## Development
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
# Clone repository
|
|
391
|
+
git clone https://github.com/grunnverk/kilde.git
|
|
392
|
+
cd kilde
|
|
393
|
+
|
|
394
|
+
# Install dependencies
|
|
395
|
+
npm install
|
|
396
|
+
|
|
397
|
+
# Build
|
|
398
|
+
npm run build
|
|
399
|
+
|
|
400
|
+
# Run tests
|
|
401
|
+
npm test
|
|
402
|
+
|
|
403
|
+
# Development mode
|
|
404
|
+
npm run dev
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
|
|
408
|
+
|
|
409
|
+
## Why Kilde?
|
|
410
|
+
|
|
411
|
+
**Universal**: Works with any git repository, any language, any git host.
|
|
412
|
+
|
|
413
|
+
**Simple**: Two commands, minimal configuration.
|
|
414
|
+
|
|
415
|
+
**Fast**: Optimized for speed with fast builds.
|
|
416
|
+
|
|
417
|
+
**Pure Git**: No external APIs, works offline.
|
|
418
|
+
|
|
419
|
+
**MCP Native**: First-class AI assistant integration.
|
|
420
|
+
|
|
421
|
+
## License
|
|
422
|
+
|
|
423
|
+
Apache-2.0 - See [LICENSE](LICENSE) for details.
|
|
424
|
+
|
|
425
|
+
## Contributing
|
|
426
|
+
|
|
427
|
+
Contributions welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) and submit pull requests.
|
|
428
|
+
|
|
429
|
+
## Related Projects
|
|
430
|
+
|
|
431
|
+
- [kodrdriv](https://github.com/grunnverk/kodrdriv) - Full-featured GitHub automation tool
|
|
432
|
+
- [@grunnverk/commands-git](https://github.com/grunnverk/commands-git) - Reusable git command library
|
|
433
|
+
- [@grunnverk/ai-service](https://github.com/grunnverk/ai-service) - AI service library
|
|
434
|
+
|
|
435
|
+
## Links
|
|
436
|
+
|
|
437
|
+
- [GitHub Repository](https://github.com/grunnverk/kilde)
|
|
438
|
+
- [npm Package](https://www.npmjs.com/package/@grunnverk/kilde)
|
|
439
|
+
- [AI Integration Guide](docs/AI_GUIDE.md)
|
|
440
|
+
- [API Documentation](docs/API.md)
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
**Made with ❤️ by the grunnverk team**
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Release Checklist for Kilde v0.1.0
|
|
2
|
+
|
|
3
|
+
## Pre-Release Validation
|
|
4
|
+
|
|
5
|
+
### Code Quality
|
|
6
|
+
- [x] All tests passing (107/107)
|
|
7
|
+
- [x] Test coverage >70% (currently 85%+)
|
|
8
|
+
- [x] Linting passes with no errors
|
|
9
|
+
- [x] TypeScript compilation successful
|
|
10
|
+
- [x] Build completes in <30 seconds
|
|
11
|
+
- [ ] No security vulnerabilities (`npm audit`)
|
|
12
|
+
- [ ] All dependencies up to date
|
|
13
|
+
|
|
14
|
+
### Documentation
|
|
15
|
+
- [x] README.md complete and accurate
|
|
16
|
+
- [x] AI_GUIDE.md complete with MCP examples
|
|
17
|
+
- [x] CONTRIBUTING.md with development guidelines
|
|
18
|
+
- [x] CHANGELOG.md updated with v0.1.0 changes
|
|
19
|
+
- [x] LICENSE file present (Apache-2.0)
|
|
20
|
+
- [ ] All examples tested and working
|
|
21
|
+
- [ ] API documentation reviewed
|
|
22
|
+
|
|
23
|
+
### Functionality Testing
|
|
24
|
+
- [ ] `kilde commit` works in test repository
|
|
25
|
+
- [ ] With `--add` flag
|
|
26
|
+
- [ ] With `--sendit` flag
|
|
27
|
+
- [ ] With `--interactive` mode
|
|
28
|
+
- [ ] With `--context` and `--context-files`
|
|
29
|
+
- [ ] With `--dry-run` mode
|
|
30
|
+
- [ ] `kilde release` works in test repository
|
|
31
|
+
- [ ] With version number
|
|
32
|
+
- [ ] With tag range
|
|
33
|
+
- [ ] With `--output` to file
|
|
34
|
+
- [ ] With `--focus` parameter
|
|
35
|
+
- [ ] With `--dry-run` mode
|
|
36
|
+
- [ ] MCP server starts correctly
|
|
37
|
+
- [ ] Tools are discoverable
|
|
38
|
+
- [ ] Resources are accessible
|
|
39
|
+
- [ ] Prompts work as expected
|
|
40
|
+
- [ ] Configuration loading works
|
|
41
|
+
- [ ] From `.kilde/config.yaml`
|
|
42
|
+
- [ ] From `.kilderc.yaml`
|
|
43
|
+
- [ ] Merges with defaults correctly
|
|
44
|
+
|
|
45
|
+
### Cross-Platform Testing
|
|
46
|
+
- [ ] Tested on macOS
|
|
47
|
+
- [ ] Tested on Linux
|
|
48
|
+
- [ ] Tested on Windows
|
|
49
|
+
- [ ] Node 24.x compatibility verified
|
|
50
|
+
|
|
51
|
+
### Language-Agnostic Testing
|
|
52
|
+
- [ ] Tested in JavaScript/TypeScript repo
|
|
53
|
+
- [ ] Tested in Python repo
|
|
54
|
+
- [ ] Tested in Go repo
|
|
55
|
+
- [ ] Tested in Rust repo
|
|
56
|
+
- [ ] Tested in Java repo
|
|
57
|
+
|
|
58
|
+
### GitHub Workflows
|
|
59
|
+
- [x] `.github/workflows/test.yml` created
|
|
60
|
+
- [x] `.github/workflows/npm-publish.yml` created
|
|
61
|
+
- [x] `.github/workflows/codeql.yml` created
|
|
62
|
+
- [ ] Workflows validated (push to working branch)
|
|
63
|
+
- [ ] CI passing on latest commit
|
|
64
|
+
|
|
65
|
+
### Package Configuration
|
|
66
|
+
- [x] `package.json` metadata correct
|
|
67
|
+
- [x] Name: `@grunnverk/kilde`
|
|
68
|
+
- [x] Version: `0.1.0-dev.0` (update to `0.1.0` for release)
|
|
69
|
+
- [x] Description accurate
|
|
70
|
+
- [x] Repository URL correct
|
|
71
|
+
- [x] Keywords relevant
|
|
72
|
+
- [x] License: Apache-2.0
|
|
73
|
+
- [x] Author information
|
|
74
|
+
- [x] Binary entries configured (`kilde`, `kilde-mcp`)
|
|
75
|
+
- [x] Main entry point correct
|
|
76
|
+
- [ ] Files to publish specified (or .npmignore)
|
|
77
|
+
- [ ] Dependencies locked (`package-lock.json`)
|
|
78
|
+
|
|
79
|
+
### Repository Setup
|
|
80
|
+
- [ ] Repository created on GitHub (grunnverk/kilde)
|
|
81
|
+
- [ ] Repository description set
|
|
82
|
+
- [ ] Topics/tags added
|
|
83
|
+
- [ ] Default branch set (main)
|
|
84
|
+
- [ ] Branch protection rules configured
|
|
85
|
+
- [ ] Secrets configured:
|
|
86
|
+
- [ ] `NPM_TOKEN` for publishing
|
|
87
|
+
- [ ] `OPENAI_API_KEY` for tests
|
|
88
|
+
- [ ] Issue templates enabled
|
|
89
|
+
- [ ] PR template enabled
|
|
90
|
+
- [ ] GitHub Pages configured (if using)
|
|
91
|
+
|
|
92
|
+
## Release Process
|
|
93
|
+
|
|
94
|
+
### Version Bump
|
|
95
|
+
- [ ] Update version in `package.json` from `0.1.0-dev.0` to `0.1.0`
|
|
96
|
+
- [ ] Update version in `src/mcp/server.ts` (line 36)
|
|
97
|
+
- [ ] Update CHANGELOG.md with release date
|
|
98
|
+
- [ ] Commit version bump: `chore(release): bump version to 0.1.0`
|
|
99
|
+
|
|
100
|
+
### Pre-Publish Checks
|
|
101
|
+
- [ ] Clean install: `rm -rf node_modules package-lock.json && npm install`
|
|
102
|
+
- [ ] Build: `npm run build`
|
|
103
|
+
- [ ] Test: `npm test`
|
|
104
|
+
- [ ] Pack: `npm pack` and inspect contents
|
|
105
|
+
- [ ] Test pack install: `npm install -g grunnverk-kilde-0.1.0.tgz`
|
|
106
|
+
- [ ] Verify CLI works: `kilde --version`
|
|
107
|
+
- [ ] Verify MCP works: `kilde-mcp` responds
|
|
108
|
+
|
|
109
|
+
### Git Operations
|
|
110
|
+
- [ ] Commit all changes
|
|
111
|
+
- [ ] Push to working branch
|
|
112
|
+
- [ ] Verify CI passes
|
|
113
|
+
- [ ] Create PR to main
|
|
114
|
+
- [ ] Merge PR to main
|
|
115
|
+
- [ ] Pull latest main locally
|
|
116
|
+
- [ ] Create and push tag: `git tag v0.1.0 && git push origin v0.1.0`
|
|
117
|
+
|
|
118
|
+
### NPM Publishing
|
|
119
|
+
- [ ] Verify NPM login: `npm whoami`
|
|
120
|
+
- [ ] Publish: `npm publish --access public`
|
|
121
|
+
- [ ] Verify on npmjs.com: https://www.npmjs.com/package/@grunnverk/kilde
|
|
122
|
+
- [ ] Test global install: `npm install -g @grunnverk/kilde`
|
|
123
|
+
- [ ] Test npx: `npx @grunnverk/kilde --version`
|
|
124
|
+
|
|
125
|
+
### GitHub Release
|
|
126
|
+
- [ ] GitHub Release created automatically (via workflow)
|
|
127
|
+
- [ ] Release notes added/reviewed
|
|
128
|
+
- [ ] Binaries attached (if applicable)
|
|
129
|
+
- [ ] Mark as latest release
|
|
130
|
+
|
|
131
|
+
### Post-Release
|
|
132
|
+
- [ ] Update version to `0.2.0-dev.0` for next development cycle
|
|
133
|
+
- [ ] Announce release:
|
|
134
|
+
- [ ] GitHub Discussions
|
|
135
|
+
- [ ] Twitter/X (if applicable)
|
|
136
|
+
- [ ] Discord (if applicable)
|
|
137
|
+
- [ ] Monitor for issues
|
|
138
|
+
- [ ] Update documentation website (if applicable)
|
|
139
|
+
|
|
140
|
+
## Rollback Plan
|
|
141
|
+
|
|
142
|
+
If critical issues are discovered:
|
|
143
|
+
|
|
144
|
+
1. **NPM Deprecation**
|
|
145
|
+
```bash
|
|
146
|
+
npm deprecate @grunnverk/kilde@0.1.0 "Critical bug found, use 0.1.1"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
2. **Publish Patch**
|
|
150
|
+
- Fix issue
|
|
151
|
+
- Bump to 0.1.1
|
|
152
|
+
- Follow release process
|
|
153
|
+
|
|
154
|
+
3. **GitHub Release**
|
|
155
|
+
- Edit release to mark as pre-release
|
|
156
|
+
- Add warning to release notes
|
|
157
|
+
|
|
158
|
+
## Success Criteria
|
|
159
|
+
|
|
160
|
+
Release is successful when:
|
|
161
|
+
- [x] Package builds without errors
|
|
162
|
+
- [x] All tests pass
|
|
163
|
+
- [x] Documentation is complete
|
|
164
|
+
- [ ] NPM package published successfully
|
|
165
|
+
- [ ] GitHub Release created
|
|
166
|
+
- [ ] CI/CD workflows passing
|
|
167
|
+
- [ ] Installation works globally and via npx
|
|
168
|
+
- [ ] MCP integration works with Claude
|
|
169
|
+
- [ ] No critical bugs reported within 24 hours
|
|
170
|
+
|
|
171
|
+
## Notes
|
|
172
|
+
|
|
173
|
+
- First release (v0.1.0) - expect some initial user feedback
|
|
174
|
+
- Focus on core functionality stability
|
|
175
|
+
- Documentation quality is critical for adoption
|
|
176
|
+
- MCP integration is a key differentiator
|
|
177
|
+
|
|
178
|
+
## Contacts
|
|
179
|
+
|
|
180
|
+
- Package maintainer: Tim O'Brien (@tobrien)
|
|
181
|
+
- GitHub org: grunnverk
|
|
182
|
+
- NPM org: @grunnverk
|