@programinglive/commiter 1.2.17 โ†’ 1.2.20

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.
@@ -19,7 +19,7 @@ jobs:
19
19
  - name: Setup Node.js
20
20
  uses: actions/setup-node@v4
21
21
  with:
22
- node-version: '20'
22
+ node-version: '24'
23
23
 
24
24
  - name: Update npm and configure registry
25
25
  run: |
package/CHANGELOG.md CHANGED
@@ -2,6 +2,49 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.2.20](https://github.com/programinglive/commiter/compare/v1.2.19...v1.2.20) (2026-01-01)
6
+
7
+
8
+ ### ๐Ÿ“ Documentation
9
+
10
+ * update release notes for v1.2.19 ๐Ÿ“‹ ([87759c1](https://github.com/programinglive/commiter/commit/87759c13f3c2f76b8e381c0b2f3ab3338f07f422))
11
+
12
+
13
+ ### โœ… Tests
14
+
15
+ * add comment for complete release test ([b87d0f5](https://github.com/programinglive/commiter/commit/b87d0f5c12e1d2ff18ec791d3f7acbfa121a26a8))
16
+
17
+ ### [1.2.19](https://github.com/programinglive/commiter/compare/v1.2.18...v1.2.19) (2026-01-01)
18
+
19
+
20
+ ### ๐Ÿ“ Documentation
21
+
22
+ * finalize v1.2.18 release notes and website update ([034faa5](https://github.com/programinglive/commiter/commit/034faa5dcae1294b57fbaf2773ce14a085259724))
23
+ * update README, restore PRD, and enhance website features ([451ef7b](https://github.com/programinglive/commiter/commit/451ef7bf0fff925e3589fa7a6c7dbe8e76c3e93d))
24
+
25
+
26
+ ### โœจ Features
27
+
28
+ * enhance release process with clear git operation guidance and auto-commit option ([91171e2](https://github.com/programinglive/commiter/commit/91171e2d426650a2e74250b6b9a3c9a9b8bb875e))
29
+
30
+ ### [1.2.18](https://github.com/programinglive/commiter/compare/v1.2.17...v1.2.18) (2026-01-01)
31
+
32
+
33
+ ### ๐Ÿ“ Documentation
34
+
35
+ * **release-notes:** add 1.2.17 entry ([0a79779](https://github.com/programinglive/commiter/commit/0a7977964e9231a53d7d006cec5e847daeee2033))
36
+ * **web:** refresh homepage content for v1.2.17 ([2fc6666](https://github.com/programinglive/commiter/commit/2fc6666369e18a0dbda9488d9ed0ac6a09298f95))
37
+
38
+
39
+ ### โœจ Features
40
+
41
+ * add usage warning and MCP dev-workflow tip ([df7bc00](https://github.com/programinglive/commiter/commit/df7bc0078f75780f3daaeb703b6fe2b248910446))
42
+
43
+
44
+ ### โœ… Tests
45
+
46
+ * add automated tests for usage warnings ([af6283e](https://github.com/programinglive/commiter/commit/af6283edfa4e1e677fc20bfc5e6b243db192867f))
47
+
5
48
  ### [1.2.17](https://github.com/programinglive/commiter/compare/v1.2.16...v1.2.17) (2025-12-26)
6
49
 
7
50
 
package/README.md CHANGED
@@ -14,6 +14,8 @@ A standardized commit convention and release management tool for your repository
14
14
  - ๐Ÿ“ **Changelog Generation** - Automatic CHANGELOG.md with icons
15
15
  - ๐Ÿ”’ **Git Hooks** - Pre-commit and commit-msg validation via Husky
16
16
  - ๐ŸŽจ **Icon Support** - Each commit type has a dedicated icon in releases
17
+ - ๐ŸŽฏ **Enhanced Release Process** - Clear console guidance and optional auto-commit for release notes
18
+ - ๐Ÿค– **AI-Optimized Workflow** - Built-in guidance for AI assistants with clear next steps and automated git operations
17
19
 
18
20
  ## Installation
19
21
 
@@ -116,6 +118,20 @@ For breaking changes:
116
118
  npm run release:major
117
119
  ```
118
120
 
121
+ ### Complete Release (Auto-commit & Push)
122
+
123
+ For fully automated release with git operations:
124
+
125
+ ```bash
126
+ npm run release:complete
127
+ ```
128
+
129
+ This command:
130
+ - Runs the standard release process
131
+ - Automatically commits release notes with versioned message
132
+ - Pushes changes to remote
133
+ - Provides success confirmation
134
+
119
135
  ### Automatic Release
120
136
 
121
137
  Let `standard-version` determine the version bump based on commits:
@@ -124,6 +140,8 @@ Let `standard-version` determine the version bump based on commits:
124
140
  npm run release
125
141
  ```
126
142
 
143
+ **Note**: This command shows clear guidance for git operations needed after release notes generation.
144
+
127
145
  ## What Happens During Release?
128
146
 
129
147
  1. ๐Ÿงช **Runs tests** - Detects your package manager and runs the `test` script automatically (tests only run during release, not on commit)
@@ -131,17 +149,49 @@ npm run release
131
149
  3. ๐Ÿ“˜ **Verifies documentation** โ€“ Warns if `docs/PRD.md` is missing so every project keeps an up-to-date PRD
132
150
  4. ๐Ÿ”ข **Bumps version** - Updates version in `package.json`
133
151
  5. ๐Ÿ“ **Updates changelog** - Generates `CHANGELOG.md` with icons
134
- 6. ๐Ÿท๏ธ **Creates tag** - Creates a git tag for the release
135
- 7. ๐Ÿ’พ **Commits release** - Commits changes with format: `chore(release): v1.2.3 ๐Ÿš€`
152
+ 6. ๐Ÿ“‹ **Generates release notes** - Creates and stages release notes entry
153
+ 7. ๐Ÿท๏ธ **Creates tag** - Creates a git tag for the release
154
+ 8. ๐Ÿ’พ **Commits release** - Commits changes with format: `chore(release): v1.2.3 ๐Ÿš€`
155
+ 9. ๐ŸŽฏ **Shows next steps** - Provides clear guidance for git operations needed
156
+
157
+ ## Release Notes Management
158
+
159
+ ### Standard Release (Manual Git Operations)
160
+
161
+ When using `npm run release`, the tool provides clear console guidance:
162
+
163
+ ```
164
+ ๐ŸŽฏ Release notes generated and staged successfully!
165
+
166
+ ๐Ÿ“‹ NEXT STEPS REQUIRED:
167
+ โœ… Release notes have been staged for commit
168
+ ๐Ÿ”„ You need to commit and push the release notes:
169
+ git commit -m "docs: update release notes for version"
170
+ git push
171
+
172
+ ๐Ÿ’ก AI ASSISTANCE:
173
+ ๐Ÿค– Use the dev-workflow MCP server to handle the commit and push automatically
174
+ ๐Ÿ“ The release notes are now staged and ready for commit
175
+ ```
176
+
177
+ ### Complete Release (Automated Git Operations)
178
+
179
+ Use `npm run release:complete` for full automation:
180
+ - โœ… Release completed
181
+ - โœ… Release notes generated
182
+ - โœ… Changes committed
183
+ - โœ… Changes pushed
136
184
 
137
185
  ## Push Your Release
138
186
 
139
- After running a release command, push to remote:
187
+ After running a standard release command, push to remote:
140
188
 
141
189
  ```bash
142
190
  git push --follow-tags origin main
143
191
  ```
144
192
 
193
+ For complete releases, pushing is handled automatically.
194
+
145
195
  ## Pre-commit Hooks
146
196
 
147
197
  The following hooks are automatically enforced:
@@ -1,4 +1,4 @@
1
1
  module.exports = {
2
2
  extends: ['@commitlint/config-conventional'],
3
3
  ignores: [(message) => message.startsWith('chore(release):')]
4
- };
4
+ }
package/docs/PRD.md CHANGED
@@ -1,96 +1,44 @@
1
- # Commiter Product Requirements Document (PRD)
2
-
3
- ## 1. Overview
4
- Commiter is a CLI utility that bootstraps and automates conventional release workflows for JavaScript/TypeScript projects. It enforces commit conventions, orchestrates semantic version bumps, keeps release tooling configured, and surfaces feedback during release execution so teams can ship confidently.
5
-
6
- ## 2. Problem Statement
7
- Growing teams often struggle to keep release processes consistent: commit messages drift from convention, changelogs become stale, and release scripts accumulate manual steps. Commiter removes this friction by installing opinionated tooling, providing curated scripts, and running guard rails (tests, linters) before invoking `standard-version` to publish a release.
8
-
9
- ## 3. Goals & Success Metrics
10
- - **Consistent releases**: Every release run through Commiter formats commits, updates changelogs, tags, and version bumps without manual editing.
11
- - **Low ceremony onboarding**: A single `npx commiter` command prepares repositories (Husky, commitlint, release scripts).
12
- - **Signal-rich automation**: Release logs clearly show which steps ran, including any warnings (e.g., tests skipped). Zero noisy deprecation warnings.
13
- - **Reliability**: New releases do not regress existing behavior; the automated test suite passes (`node --test`).
14
- - **Adoption Metric**: Track installations (npm downloads) and successful release script exits.
15
-
16
- ## 4. Personas
17
- 1. **Solo Maintainer** โ€“ wants painless semantic releases without memorizing commands.
18
- 2. **Team Lead** โ€“ enforces commit standards across contributors and ensures releases produce accurate changelogs.
19
- 3. **DevOps/CI Engineer** โ€“ integrates Commiterโ€™s release command into CI pipelines and expects deterministic, machine-readable output.
20
-
21
- ## 5. Key Features
22
- - **Setup CLI (`index.js`)**
23
- - Installs dev dependencies (`standard-version`, `commitlint`, `husky`).
24
- - Configures package scripts (`npm run release`, `release:major/minor/patch`, `release:first`).
25
- - Creates Husky hooks and commitlint configuration.
26
- - Generates release helper script and ensures executable permissions (POSIX-friendly).
27
- - **Release Helper (`scripts/release.js`)**
28
- - Detects release type from CLI args or npm context.
29
- - Runs project tests via detected package manager before releasing.
30
- - Invokes `standard-version`, passing the preload script via `NODE_OPTIONS`.
31
- - Supports first release mode that sets version to 0.0.1 for new projects.
32
- - Stays focused on repository assets only (website updates are intentionally manual to avoid cross-project impacts).
33
- - **Preload Patching (`scripts/preload/fs-f-ok.cjs`)**
34
- - Hooks Nodeโ€™s module loader to transparently replace deprecated `fs.F_OK` usages in `standard-version` without altering `node_modules`.
35
- - **Website & Documentation**
36
- - Professional landing page in `web/` directory.
37
- - Automated GitHub Releases generation.
38
- - Open Graph social media preview support.
39
- - **Testing**
40
- - Suite executed via `node --test` covers setup utilities, release argument parsing, and the preload patch.
41
-
42
- ## 6. Functional Requirements
43
- 1. Running `npx @programinglive/commiter` inside a Node project should configure release tooling without manual edits.
44
- 2. `npm run release` must:
45
- - Run the projectโ€™s tests (if defined) with the correct package manager.
46
- - Execute `standard-version`, passing the preload script via `NODE_OPTIONS`.
47
- - Exit with non-zero status if tests or standard-version commands fail.
48
- 3. CLI should provide friendly console output (status icons, instructions).
49
- 4. The preload script must eliminate `[DEP0176] fs.F_OK` warnings on supported Node versions.
50
- 5. Documentation (README, PRD, release notes) remains shipped with the package. Each project integrating Commiter must keep a `docs/PRD.md` file present in the repository. The release helper enforces this by warning when the PRD is missing so maintainers remember to author or update the document before tagging releases.
51
-
52
- ## 7. Non-Functional Requirements
53
- - **Compatibility**: Supports Node.js 18+ (aligning with dependencies); tested on Windows/macOS/Linux.
54
- - **Maintainability**: Avoid direct edits to dependencies; wrap behavior in Commiter-controlled modules.
55
- - **Performance**: Release command overhead minimal (<1s additional startup time) beyond running tests and standard-version.
56
- - **Security**: No network requests during CLI execution beyond npm installs triggered by the user.
57
-
58
- ## 8. User Journeys
59
- 1. **Initial Setup**
60
- - Run `npx @programinglive/commiter`.
61
- - Tool installs dependencies, updates `package.json`, and scaffolds Husky hooks.
62
- - Maintainer confirms success message and new scripts.
63
- 2. **First Release**
64
- - Developer runs `npm run release:first` for new projects.
65
- - Commiter sets version to 0.0.1, runs tests, creates initial changelog and git tag.
66
- - Project foundation established with proper semantic versioning.
67
- 3. **Standard Release**
68
- - Developer runs `npm run release minor` or `npm run release` (defaults to patch).
69
- - Commiter runs tests, ensures preload patch prevents deprecation warnings, executes `standard-version`.
70
- - Release completes with updated changelog and git tag.
71
- 4. **CI Pipeline**
72
- - CI job executes `npm run release -- --prerelease beta`.
73
- - Logs show tests executed, no deprecation warnings, and release artifacts generated.
74
-
75
- ## 9. Milestones & Roadmap
76
- - **v1.1.x** (current)
77
- - Deprecation warning mitigation, enhanced tests, PRD + release documentation.
78
- - **Future Considerations**
79
- - Support for monorepo detection (Lerna/Nx) to run scoped releases.
80
- - Optional lint/test command customization via config file.
81
- - Telemetry opt-in for release statistics (downloads, success rates).
82
-
83
- ## 10. Risks & Mitigations
84
- - **Dependency API Changes**: Upstream packages may alter file paths. Mitigate with targeted module resolution and tests.
85
- - **User Customization Conflicts**: Custom scripts might skip tests. Provide documentation for overriding behavior.
86
- - **Platform Differences**: Windows path quoting; addressed via `buildPreloadFlag` helper.
87
-
88
- ## 11. Release & QA Checklist
89
- - [x] `npm test` (alias for `node --test`) passes.
90
- - [x] Manual run of `node scripts/release.js --help` shows no `[DEP0176]` warning.
91
- - [ ] Update `CHANGELOG.md` (handled by standard-version during actual release).
92
- - [ ] Verify README reflects latest setup instructions before shipping.
93
-
94
- ## 12. Appendices
95
- - **Release Notes**: See `docs/release-notes/` for per-change summaries.
96
- - **Testing Artifacts**: `test/` directory contains Node test runner suites.
1
+ # PRD: Enhanced Release Process and AI-Optimized Workflow
2
+
3
+ ## Overview
4
+ Enhance the release process with clear console guidance for git operations and optional auto-commit functionality. Improve AI assistant workflow with explicit next steps and automated git operations for release notes management.
5
+
6
+ ## Problem
7
+ After running `npm run release`, release notes are generated but users and AI assistants don't understand that manual git operations (add, commit, push) are required. The process needs clear console output to guide the next steps and optional automation for complete releases.
8
+
9
+ ## Requirements
10
+ - Enhanced standard release script with clear console guidance for git operations
11
+ - New complete release script that handles git operations automatically
12
+ - AI-friendly workflow with explicit next steps and MCP server guidance
13
+ - Clear visual indicators and structured console output
14
+ - Version-aware commit messages for release notes
15
+ - Error handling and fallback options
16
+
17
+ ## Features Added
18
+
19
+ ### Enhanced Standard Release (`npm run release`)
20
+ - Clear console output showing release notes generation status
21
+ - Structured "NEXT STEPS REQUIRED" section
22
+ - Exact git commands needed for manual operations
23
+ - AI assistance guidance with MCP server recommendations
24
+ - Visual indicators with emojis for better readability
25
+
26
+ ### Complete Release (`npm run release:complete`)
27
+ - Full automation of release process including git operations
28
+ - Automatic detection of staged release notes changes
29
+ - Version-aware commit messages (e.g., "docs: update release notes for v1.2.20 ๐Ÿ“‹")
30
+ - Automatic push to remote repository
31
+ - Success confirmation with detailed status
32
+
33
+ ### AI-Optimized Workflow
34
+ - Built-in guidance for AI assistants
35
+ - Clear instructions for manual vs automated workflows
36
+ - MCP server integration recommendations
37
+ - Prevents confusion about required git operations
38
+
39
+ ## Verification
40
+ - Manual testing of both release workflows
41
+ - Verification of console output clarity and accuracy
42
+ - Testing of complete release automation
43
+ - Validation of AI-friendly guidance messages
44
+ - Error handling verification for git operation failures
@@ -4,6 +4,9 @@ This document summarizes every published version of `@programinglive/commiter`.
4
4
 
5
5
  | Version | Date | Highlights |
6
6
  |---------|------|------------|
7
+ | 1.2.20 | 2026-01-01 | update release notes for v1.2.19 ๐Ÿ“‹ (87759c1) |
8
+ | 1.2.19 | 2026-01-01 | finalize v1.2.18 release notes and website update (034faa5) |
9
+ | 1.2.18 | 2026-01-01 | Add usage safety warnings and MCP workflow tips |
7
10
  | 1.2.17 | 2025-12-26 | **web:** update homepage for v1.2.16 release (c4ba36e) |
8
11
  | 1.2.16 | 2025-12-13 | upgrade to node 20 and update npm for OIDC (5f7d9a0) |
9
12
  | 1.2.15 | 2025-12-13 | remove registry-url to fix OIDC auth conflict (c49b6e8) |
@@ -75,6 +78,33 @@ This document summarizes every published version of `@programinglive/commiter`.
75
78
 
76
79
 
77
80
 
81
+
82
+
83
+
84
+
85
+ ## 1.2.20 โ€“ ๐Ÿ“ Documentation
86
+
87
+ Released on **2026-01-01**.
88
+
89
+ - update release notes for v1.2.19 ๐Ÿ“‹ (87759c1)
90
+ - add comment for complete release test (b87d0f5)
91
+
92
+ ## 1.2.19 โ€“ ๐Ÿ“ Documentation
93
+
94
+ Released on **2026-01-01**.
95
+
96
+ - finalize v1.2.18 release notes and website update (034faa5)
97
+ - update README, restore PRD, and enhance website features (451ef7b)
98
+ - enhance release process with clear git operation guidance and auto-commit option (91171e2)
99
+
100
+ ## 1.2.18 โ€“ ๐Ÿ“ Documentation
101
+
102
+ Released on **2026-01-01**.
103
+
104
+ - **release-notes:** add 1.2.17 entry (0a79779)
105
+ - **web:** refresh homepage content for v1.2.17 (2fc6666)
106
+ - add usage warning and MCP dev-workflow tip (df7bc00)
107
+ - add automated tests for usage warnings (af6283e)
78
108
 
79
109
  ## 1.2.17 โ€“ ๐Ÿ“ Documentation
80
110
 
package/index.js CHANGED
@@ -37,6 +37,19 @@ function copyRecursiveSync(src, dest) {
37
37
  }
38
38
 
39
39
  function setupCommiter() {
40
+ const args = process.argv.slice(2);
41
+
42
+ // If arguments are passed, it's likely someone is trying to use this as a commit tool
43
+ if (args.length > 0) {
44
+ console.error('\nโš ๏ธ WARNING: @programinglive/commiter is a SETUP and RELEASE tool, NOT a commit tool.');
45
+ console.error('๐Ÿ‘‰ To commit your changes, please use standard git commands:');
46
+ console.error(' git add .');
47
+ console.error(' git commit -m "your message"\n');
48
+ console.error('๐Ÿ’ก TIP for AI: Use the `@programinglive/dev-workflow-mcp-server` to handle commits and releases properly.');
49
+ console.error('โŒ If you meant to setup this project, run without arguments.\n');
50
+ process.exit(1);
51
+ }
52
+
40
53
  console.log('๐Ÿš€ Setting up Commiter...\n');
41
54
 
42
55
  // Check if package.json exists
@@ -197,3 +210,4 @@ if (require.main === module) {
197
210
  }
198
211
 
199
212
  module.exports = { setupCommiter, ensureSafeTestScript };
213
+ // Test change for complete release
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@programinglive/commiter",
3
- "version": "1.2.17",
3
+ "version": "1.2.20",
4
4
  "description": "Commiter keeps repositories release-ready by enforcing conventional commits, generating icon-rich changelog entries, and orchestrating semantic version bumps without manual toil. It bootstraps Husky hooks, commitlint rules, and release scripts that inspect history, detect framework-specific test commands, run them automatically, tag git releases, coordinate npm publishing, surface release metrics, enforce project-specific checks, and give maintainers observability across distributed teams. Plus!",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -14,6 +14,7 @@
14
14
  "release:minor": "node scripts/release.cjs minor",
15
15
  "release:patch": "node scripts/release.cjs patch",
16
16
  "release:first": "node scripts/release.cjs --first-release",
17
+ "release:complete": "node scripts/release-complete.cjs",
17
18
  "web": "npx serve web"
18
19
  },
19
20
  "keywords": [
@@ -88,8 +89,8 @@
88
89
  ]
89
90
  },
90
91
  "devDependencies": {
91
- "@commitlint/cli": "^20.1.0",
92
- "@commitlint/config-conventional": "^20.0.0",
92
+ "@commitlint/cli": "^20.5.3",
93
+ "@commitlint/config-conventional": "^20.5.3",
93
94
  "husky": "^9.1.7",
94
95
  "standard-version": "^9.5.0"
95
96
  }
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawnSync } = require('child_process');
4
+ const path = require('path');
5
+ const fs = require('fs');
6
+
7
+ const { runRelease } = require('./release.cjs');
8
+
9
+ function runCompleteRelease({
10
+ argv = process.argv,
11
+ cwd = process.cwd(),
12
+ spawn = spawnSync
13
+ } = {}) {
14
+ console.log('๐Ÿš€ Starting complete release process...');
15
+ console.log(' This will run the release and automatically commit/push release notes\n');
16
+
17
+ // Run the standard release process
18
+ const releaseResult = runRelease({ argv, cwd, spawn });
19
+
20
+ if (releaseResult && typeof releaseResult.status === 'number' && releaseResult.status !== 0) {
21
+ console.error('โŒ Release failed. Aborting complete release process.');
22
+ return releaseResult;
23
+ }
24
+
25
+ // Get the current version for commit message
26
+ const packageJsonPath = path.join(cwd, 'package.json');
27
+ let version = 'unknown';
28
+
29
+ try {
30
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
31
+ version = packageJson.version;
32
+ } catch (error) {
33
+ console.warn('โš ๏ธ Could not read version from package.json');
34
+ }
35
+
36
+ // Check if there are staged changes to commit
37
+ const statusResult = spawn('git', ['status', '--porcelain'], {
38
+ cwd,
39
+ encoding: 'utf8'
40
+ });
41
+
42
+ if (statusResult.error || (statusResult.status !== 0)) {
43
+ console.warn('โš ๏ธ Could not check git status. Please commit manually.');
44
+ return releaseResult;
45
+ }
46
+
47
+ const stagedChanges = statusResult.stdout.split('\n').filter(line =>
48
+ line.trim() && line.startsWith('A ') || line.startsWith('M ')
49
+ );
50
+
51
+ if (stagedChanges.length === 0) {
52
+ console.log('โœ… No release notes changes to commit. Release complete!');
53
+ return releaseResult;
54
+ }
55
+
56
+ console.log(`๐Ÿ“ Found ${stagedChanges.length} staged change(s) to commit:`);
57
+ stagedChanges.forEach(change => {
58
+ const [status, ...filePathParts] = change.trim().split(' ');
59
+ const filePath = filePathParts.join(' ');
60
+ console.log(` ${status} ${filePath}`);
61
+ });
62
+
63
+ // Commit the staged changes
64
+ const commitMessage = `docs: update release notes for v${version} ๐Ÿ“‹`;
65
+ console.log(`\n๐Ÿ”„ Committing with message: "${commitMessage}"`);
66
+
67
+ const commitResult = spawn('git', ['commit', '-m', commitMessage], {
68
+ stdio: 'inherit',
69
+ cwd
70
+ });
71
+
72
+ if (commitResult.status !== 0) {
73
+ console.error('โŒ Failed to commit release notes. Please commit manually.');
74
+ return commitResult;
75
+ }
76
+
77
+ console.log('โœ… Release notes committed successfully!');
78
+
79
+ // Push the changes
80
+ console.log('\n๐Ÿ“ค Pushing changes to remote...');
81
+ const pushResult = spawn('git', ['push'], {
82
+ stdio: 'inherit',
83
+ cwd
84
+ });
85
+
86
+ if (pushResult.status !== 0) {
87
+ console.error('โŒ Failed to push changes. Please push manually.');
88
+ return pushResult;
89
+ }
90
+
91
+ console.log('\n๐ŸŽ‰ Complete release process finished successfully!');
92
+ console.log(' โœ… Release completed');
93
+ console.log(' โœ… Release notes generated');
94
+ console.log(' โœ… Changes committed');
95
+ console.log(' โœ… Changes pushed');
96
+ console.log(`\n๐Ÿ“ฆ Version ${version} is now live!`);
97
+
98
+ return pushResult;
99
+ }
100
+
101
+ if (require.main === module) {
102
+ try {
103
+ const result = runCompleteRelease();
104
+ if (result.status !== 0) {
105
+ process.exit(result.status ?? 1);
106
+ }
107
+ } catch (error) {
108
+ console.error(`โŒ Complete release failed: ${error.message}`);
109
+ process.exit(1);
110
+ }
111
+ }
112
+
113
+ module.exports = {
114
+ runCompleteRelease
115
+ };
@@ -63,7 +63,7 @@ function getNpmRunArgument(env = process.env) {
63
63
 
64
64
  function buildStandardVersionArgs({ releaseType, extraArgs }) {
65
65
  const args = [];
66
-
66
+
67
67
  // Handle --first-release flag
68
68
  const isFirstRelease = Array.isArray(extraArgs) && extraArgs.includes('--first-release');
69
69
  if (isFirstRelease) {
@@ -75,6 +75,11 @@ function buildStandardVersionArgs({ releaseType, extraArgs }) {
75
75
  const isValid = VALID_RELEASE_TYPES.has(normalized) || SEMVER_REGEX.test(normalized);
76
76
  if (!isValid) {
77
77
  const allowed = Array.from(VALID_RELEASE_TYPES).join(', ');
78
+ console.error('\nโš ๏ธ WARNING: Unknown release type or command detected.');
79
+ console.error('๐Ÿ‘‰ If you are trying to commit changes, please use standard git commands:');
80
+ console.error(' git add .');
81
+ console.error(' git commit -m "your message"\n');
82
+ console.error('๐Ÿ’ก TIP for AI: Use the `@programinglive/dev-workflow-mcp-server` to handle commits and releases properly.');
78
83
  throw new Error(`Unknown release type "${normalized}". Use one of ${allowed} or a valid semver version.`);
79
84
  }
80
85
  args.push('--release-as', normalized);
@@ -197,6 +202,17 @@ function runRelease({
197
202
  const gitAddResult = spawnSync('git', ['add', releaseNotesPath], { stdio: 'inherit', cwd });
198
203
  if (!gitAddResult || typeof gitAddResult.status !== 'number' || gitAddResult.status !== 0) {
199
204
  console.warn('โš ๏ธ Release notes updated but failed to stage. Please add manually: git add ' + releaseNotesPath);
205
+ } else {
206
+ console.log('\n๐ŸŽฏ Release notes generated and staged successfully!');
207
+ console.log('\n๐Ÿ“‹ NEXT STEPS REQUIRED:');
208
+ console.log(' โœ… Release notes have been staged for commit');
209
+ console.log(' ๐Ÿ”„ You need to commit and push the release notes:');
210
+ console.log(' git commit -m "docs: update release notes for version"');
211
+ console.log(' git push');
212
+ console.log('\n๐Ÿ’ก AI ASSISTANCE:');
213
+ console.log(' ๐Ÿค– Use the dev-workflow MCP server to handle the commit and push automatically');
214
+ console.log(' ๐Ÿ“ The release notes are now staged and ready for commit');
215
+ console.log('');
200
216
  }
201
217
  }
202
218
 
package/web/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <div class="hero-content">
67
67
  <div class="hero-badge">
68
68
  <span class="badge-dot"></span>
69
- <span>v1.2.16 - Latest Release</span>
69
+ <span>v1.2.20 - Latest Release</span>
70
70
  </div>
71
71
  <h1 class="hero-title">
72
72
  Ship Releases with <span class="gradient-text">Confidence</span>
@@ -90,7 +90,7 @@
90
90
  </div>
91
91
  <div class="hero-stats">
92
92
  <div class="stat-item">
93
- <div class="stat-value">1.2.16</div>
93
+ <div class="stat-value">1.2.20</div>
94
94
  <div class="stat-label">Latest Version</div>
95
95
  </div>
96
96
  <div class="stat-item">
@@ -121,9 +121,9 @@
121
121
  <div class="code-line output success">๐ŸŽ‰ Setup complete! Ready to release.</div>
122
122
  <div class="code-line"><span class="prompt">$</span> npm run release:patch</div>
123
123
  <div class="code-line output">โœ“ Running tests...</div>
124
- <div class="code-line output">โœ“ Bumping version to 1.2.17...</div>
124
+ <div class="code-line output">โœ“ Bumping version to 1.2.18...</div>
125
125
  <div class="code-line output">โœ“ Updating CHANGELOG.md...</div>
126
- <div class="code-line output success">๐Ÿš€ Release v1.2.17 ready!</div>
126
+ <div class="code-line output success">๐Ÿš€ Release v1.2.20 ready!</div>
127
127
  <div class="code-line cursor">_</div>
128
128
  </div>
129
129
  </div>
@@ -167,11 +167,21 @@
167
167
  <h3>Test Integration</h3>
168
168
  <p>Automatically runs your test suite before releasing to prevent broken releases</p>
169
169
  </div>
170
+ <div class="feature-card">
171
+ <div class="feature-icon">๐ŸŽฏ</div>
172
+ <h3>Enhanced Release Process</h3>
173
+ <p>Clear console guidance and optional auto-commit for release notes with AI-friendly workflow</p>
174
+ </div>
170
175
  <div class="feature-card">
171
176
  <div class="feature-icon">โšก</div>
172
177
  <h3>Zero Config</h3>
173
178
  <p>One command setup with sensible defaults. Works with npm, yarn, and pnpm out of the box</p>
174
179
  </div>
180
+ <div class="feature-card">
181
+ <div class="feature-icon">๐Ÿค–</div>
182
+ <h3>AI-Optimized Workflow</h3>
183
+ <p>Built-in guidance for AI assistants with clear next steps and automated git operations</p>
184
+ </div>
175
185
  </div>
176
186
  </div>
177
187
  </section>
@@ -275,6 +285,9 @@
275
285
  <div class="step-content">
276
286
  <h3>Release Your Changes</h3>
277
287
  <p>Run the appropriate release command based on your changes</p>
288
+ <div class="code-block">
289
+ <code>npm run release # Standard release with git guidance</code>
290
+ </div>
278
291
  <div class="code-block">
279
292
  <code>npm run release:first # New project โ†’ 0.0.1</code>
280
293
  </div>
@@ -287,6 +300,9 @@
287
300
  <div class="code-block">
288
301
  <code>npm run release:major # 1.0.0 โ†’ 2.0.0</code>
289
302
  </div>
303
+ <div class="code-block">
304
+ <code>npm run release:complete # Auto-commit & push release notes</code>
305
+ </div>
290
306
  </div>
291
307
  </div>
292
308
  </div>
@@ -388,6 +404,24 @@
388
404
  <!-- RELEASES_TIMELINE:START -->
389
405
  <div class="release-item">
390
406
  <div class="release-badge">Latest</div>
407
+ <div class="release-version">v1.2.20</div>
408
+ <div class="release-date">January 01, 2026</div>
409
+ <div class="release-type">โœจ Features</div>
410
+ <p class="release-description">Enhance release process with clear git operation guidance and auto-commit option</p>
411
+ </div>
412
+ <div class="release-item">
413
+ <div class="release-version">v1.2.19</div>
414
+ <div class="release-date">January 01, 2026</div>
415
+ <div class="release-type">๐Ÿ“ Documentation</div>
416
+ <p class="release-description">Update release notes for version 1.2.19</p>
417
+ </div>
418
+ <div class="release-item">
419
+ <div class="release-version">v1.2.17</div>
420
+ <div class="release-date">December 26, 2025</div>
421
+ <div class="release-type">๐Ÿ“ Documentation</div>
422
+ <p class="release-description">web: update homepage for the v1.2.16 release spotlight</p>
423
+ </div>
424
+ <div class="release-item">
391
425
  <div class="release-version">v1.2.16</div>
392
426
  <div class="release-date">December 13, 2025</div>
393
427
  <div class="release-type">๐Ÿ‘ท Continuous Integration</div>
@@ -417,6 +451,12 @@
417
451
  <div class="release-type">๐Ÿงน Chores</div>
418
452
  <p class="release-description">cleanup and add deployment scripts</p>
419
453
  </div>
454
+ <div class="release-item">
455
+ <div class="release-version">v1.2.11</div>
456
+ <div class="release-date">December 11, 2025</div>
457
+ <div class="release-type">๐Ÿงน Chores</div>
458
+ <p class="release-description">cleanup and add deployment scripts</p>
459
+ </div>
420
460
  <!-- RELEASES_TIMELINE:END -->
421
461
  </div>
422
462
  <div class="releases-cta">