oh-my-customcode 0.127.0 → 0.128.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/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: goal
|
|
3
3
|
description: Disciplined goal-to-execution workflow for any user task. Parses objective, asks only for materially missing requirements via ambiguity-gate, inspects repo via idea, plans via sdd-dev or deep-plan, executes safely under project conventions, verifies completion per R020, and reports changed files with evidence. Use when user invokes /goal <task>.
|
|
4
|
+
version: 1.0.0
|
|
4
5
|
scope: core
|
|
5
6
|
---
|
|
6
7
|
|
|
@@ -99,13 +99,51 @@ The generated notes can be:
|
|
|
99
99
|
2. **File**: Written to `release_notes.md` for review before use
|
|
100
100
|
3. **Update**: Used with `gh release edit v{VERSION} --notes "{notes}"`
|
|
101
101
|
|
|
102
|
+
### Phase 5: Promote `## [Unreleased]` in CHANGELOG.md (Optional but Recommended)
|
|
103
|
+
|
|
104
|
+
After generating release notes, promote any pending `## [Unreleased]` entries to a versioned section so `release.yml` (awk extract at line ~217) finds the authored notes instead of falling back to GitHub auto-generated content.
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Promote [Unreleased] to [VERSION] with today's date
|
|
108
|
+
DATE=$(date -u +%Y-%m-%d)
|
|
109
|
+
python3 - "$VERSION" "$DATE" <<'PY'
|
|
110
|
+
import sys, re, pathlib
|
|
111
|
+
version, date = sys.argv[1], sys.argv[2]
|
|
112
|
+
path = pathlib.Path("CHANGELOG.md")
|
|
113
|
+
text = path.read_text()
|
|
114
|
+
header = f"## [{version}] - {date}"
|
|
115
|
+
if re.search(rf"^## \[{re.escape(version)}\]", text, flags=re.M):
|
|
116
|
+
print(f"[skip] [{version}] section already exists — manual reconciliation needed")
|
|
117
|
+
sys.exit(0)
|
|
118
|
+
new = re.sub(
|
|
119
|
+
r"^## \[Unreleased\]\s*\n",
|
|
120
|
+
f"## [Unreleased]\n\n{header}\n",
|
|
121
|
+
text,
|
|
122
|
+
count=1,
|
|
123
|
+
flags=re.M,
|
|
124
|
+
)
|
|
125
|
+
if new == text:
|
|
126
|
+
print("[error] [Unreleased] section not found — CHANGELOG.md format unexpected")
|
|
127
|
+
sys.exit(1)
|
|
128
|
+
path.write_text(new)
|
|
129
|
+
print(f"[ok] promoted [Unreleased] -> [{version}]")
|
|
130
|
+
PY
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Behavior:
|
|
134
|
+
- If `## [Unreleased]` content is empty, the promoted `## [VERSION]` will also be empty — `release.yml` falls back to auto-generated notes (existing behavior preserved).
|
|
135
|
+
- If `## [VERSION]` already exists (re-run, manual edit), the script skips with a log message — no overwrite.
|
|
136
|
+
- The skill caller commits the change: `git add CHANGELOG.md && git commit -m "chore(changelog): promote [Unreleased] to [VERSION]"`
|
|
137
|
+
|
|
138
|
+
This is **optional** — the skill's release-notes generation (Phases 1-4) works independently. Phase 5 only ensures CHANGELOG consistency for projects that maintain Keep a Changelog format.
|
|
139
|
+
|
|
102
140
|
## Integration
|
|
103
141
|
|
|
104
142
|
This skill is designed to be used during the release process:
|
|
105
143
|
|
|
106
144
|
```
|
|
107
145
|
/omcustom:npm-version patch|minor|major -> version bump
|
|
108
|
-
/omcustom-release-notes {version} -> generate notes
|
|
146
|
+
/omcustom-release-notes {version} -> generate notes + promote [Unreleased] (Phase 5)
|
|
109
147
|
mgr-gitnerd: gh release create -> create release with notes
|
|
110
148
|
```
|
|
111
149
|
|
|
@@ -115,6 +153,8 @@ mgr-gitnerd: gh release create -> create release with notes
|
|
|
115
153
|
- Uses git history and gh CLI for data gathering
|
|
116
154
|
- Claude Code analyzes and generates notes in-context
|
|
117
155
|
- Resource count changes auto-detected from CLAUDE.md history
|
|
156
|
+
- Phase 5 promotion is idempotent — safe to re-run; skips if `## [VERSION]` exists
|
|
157
|
+
- See `CONTRIBUTING.md` for [Unreleased] entry guidance during PR authoring
|
|
118
158
|
|
|
119
159
|
## Permission Mode
|
|
120
160
|
|
package/templates/manifest.json
CHANGED