@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.
Files changed (75) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +31 -0
  3. package/.github/pull_request_template.md +48 -0
  4. package/.github/workflows/deploy-docs.yml +59 -0
  5. package/.github/workflows/npm-publish.yml +48 -0
  6. package/.github/workflows/test.yml +48 -0
  7. package/CHANGELOG.md +92 -0
  8. package/CONTRIBUTING.md +438 -0
  9. package/LICENSE +190 -0
  10. package/PROJECT_SUMMARY.md +318 -0
  11. package/README.md +444 -0
  12. package/RELEASE_CHECKLIST.md +182 -0
  13. package/dist/application.js +166 -0
  14. package/dist/application.js.map +1 -0
  15. package/dist/commands/release.js +326 -0
  16. package/dist/commands/release.js.map +1 -0
  17. package/dist/constants.js +122 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/logging.js +176 -0
  20. package/dist/logging.js.map +1 -0
  21. package/dist/main.js +24 -0
  22. package/dist/main.js.map +1 -0
  23. package/dist/mcp-server.js +17467 -0
  24. package/dist/mcp-server.js.map +7 -0
  25. package/dist/utils/config.js +89 -0
  26. package/dist/utils/config.js.map +1 -0
  27. package/docs/AI_GUIDE.md +618 -0
  28. package/eslint.config.mjs +85 -0
  29. package/guide/architecture.md +776 -0
  30. package/guide/commands.md +580 -0
  31. package/guide/configuration.md +779 -0
  32. package/guide/mcp-integration.md +708 -0
  33. package/guide/overview.md +225 -0
  34. package/package.json +91 -0
  35. package/scripts/build-mcp.js +115 -0
  36. package/scripts/test-mcp-compliance.js +254 -0
  37. package/src/application.ts +246 -0
  38. package/src/commands/release.ts +450 -0
  39. package/src/constants.ts +162 -0
  40. package/src/logging.ts +210 -0
  41. package/src/main.ts +25 -0
  42. package/src/mcp/prompts/index.ts +98 -0
  43. package/src/mcp/resources.ts +121 -0
  44. package/src/mcp/server.ts +195 -0
  45. package/src/mcp/tools.ts +219 -0
  46. package/src/types.ts +131 -0
  47. package/src/utils/config.ts +181 -0
  48. package/tests/application.test.ts +114 -0
  49. package/tests/commands/commit.test.ts +248 -0
  50. package/tests/commands/release.test.ts +325 -0
  51. package/tests/constants.test.ts +118 -0
  52. package/tests/logging.test.ts +142 -0
  53. package/tests/mcp/prompts/index.test.ts +202 -0
  54. package/tests/mcp/resources.test.ts +166 -0
  55. package/tests/mcp/tools.test.ts +211 -0
  56. package/tests/utils/config.test.ts +212 -0
  57. package/tsconfig.json +32 -0
  58. package/vite.config.ts +107 -0
  59. package/vitest.config.ts +40 -0
  60. package/website/index.html +14 -0
  61. package/website/src/App.css +142 -0
  62. package/website/src/App.tsx +34 -0
  63. package/website/src/components/Commands.tsx +182 -0
  64. package/website/src/components/Configuration.tsx +214 -0
  65. package/website/src/components/Examples.tsx +234 -0
  66. package/website/src/components/Footer.css +99 -0
  67. package/website/src/components/Footer.tsx +93 -0
  68. package/website/src/components/GettingStarted.tsx +94 -0
  69. package/website/src/components/Hero.css +95 -0
  70. package/website/src/components/Hero.tsx +50 -0
  71. package/website/src/components/Navigation.css +102 -0
  72. package/website/src/components/Navigation.tsx +57 -0
  73. package/website/src/index.css +36 -0
  74. package/website/src/main.tsx +10 -0
  75. 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
+ [![npm version](https://badge.fury.io/js/@grunnverk%2Fkilde.svg)](https://www.npmjs.com/package/@grunnverk/kilde)
6
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D24.0.0-brightgreen.svg)](https://nodejs.org/)
8
+ [![Test Coverage](https://img.shields.io/badge/coverage-85%25-brightgreen.svg)](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