oh-my-customcode 0.126.1 → 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/README.md +3 -3
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/goal/SKILL.md +82 -0
- package/templates/.claude/skills/omcustom-release-notes/SKILL.md +41 -1
- package/templates/CLAUDE.md +1 -1
- package/templates/manifest.json +2 -2
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
49 agents.
|
|
16
|
+
49 agents. 117 skills. 22 rules. One command.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g oh-my-customcode && cd your-project && omcustom init
|
|
@@ -132,7 +132,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
|
|
|
132
132
|
|
|
133
133
|
---
|
|
134
134
|
|
|
135
|
-
### Skills (
|
|
135
|
+
### Skills (117)
|
|
136
136
|
|
|
137
137
|
| Category | Count | Includes |
|
|
138
138
|
|----------|-------|----------|
|
|
@@ -272,7 +272,7 @@ your-project/
|
|
|
272
272
|
├── CLAUDE.md # Entry point
|
|
273
273
|
├── .claude/
|
|
274
274
|
│ ├── agents/ # 49 agent definitions
|
|
275
|
-
│ ├── skills/ #
|
|
275
|
+
│ ├── skills/ # 117 skill modules
|
|
276
276
|
│ ├── rules/ # 22 governance rules (R000-R021)
|
|
277
277
|
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
278
278
|
│ ├── schemas/ # Tool input validation schemas
|
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goal
|
|
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
|
|
5
|
+
scope: core
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /goal — Disciplined Goal-to-Execution Workflow
|
|
9
|
+
|
|
10
|
+
Apply project discipline (planning, verification, cleanup, review) to any user-provided task. Acts as a thin orchestrator that routes to existing oh-my-customcode skills rather than duplicating logic.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/goal <task description>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Example: `/goal Add a /weekly-summary command that aggregates last 7 days of git activity`
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
1. **Parse objective**: Treat `<task>` as the concrete goal. Do NOT expand scope beyond what was asked.
|
|
23
|
+
2. **Gap detection**: Invoke `ambiguity-gate` skill. Ask only for materially missing or risky requirements — no over-clarification on details that can be inferred.
|
|
24
|
+
3. **Repo inspection**: Invoke `idea` skill (NL-intent codebase analysis) to identify relevant files, dependencies, and existing assets.
|
|
25
|
+
4. **Plan generation** (scope-dependent):
|
|
26
|
+
- Trivial scope (single file, <30 LOC, no API design): proceed with brief inline plan.
|
|
27
|
+
- Non-trivial scope: invoke `sdd-dev` or `deep-plan` for research-validated planning.
|
|
28
|
+
5. **Safe execution**: Follow R001 (safety), R009 (parallel), R010 (delegation). Delegate ALL file modifications to specialist agents.
|
|
29
|
+
6. **Completion verification**: Apply R020 — verify ACTUAL outcome before declaring `[Done]`. Run task-type-specific checks (lint, build, test).
|
|
30
|
+
7. **Report**: Output changed files, verification evidence, and remaining risks.
|
|
31
|
+
|
|
32
|
+
## Output Format
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
[Goal] {original task verbatim}
|
|
36
|
+
[Plan] {brief plan or reference to deep-plan/sdd-dev output}
|
|
37
|
+
[Changes] {file list with paths}
|
|
38
|
+
[Verified] {evidence — exit codes, test counts, build output}
|
|
39
|
+
[Risks] {remaining concerns or "none"}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## When to Use
|
|
43
|
+
|
|
44
|
+
- Generic multi-step task without obvious specialist routing
|
|
45
|
+
- User wants a single, memorable entry point for "do this task with full discipline"
|
|
46
|
+
- Work that benefits from planning + verification + structured reporting
|
|
47
|
+
|
|
48
|
+
## When NOT to Use
|
|
49
|
+
|
|
50
|
+
| Scenario | Use Instead |
|
|
51
|
+
|----------|-------------|
|
|
52
|
+
| Pure research/analysis | `research`, `idea`, `memory-recall` |
|
|
53
|
+
| Specialist domain task | Routing skills (`dev-lead-routing`, `de-lead-routing`, `qa-lead-routing`) |
|
|
54
|
+
| Trivial single-file edit | Delegate directly to specialist agent |
|
|
55
|
+
| Bug debugging | `superpowers:systematic-debugging` |
|
|
56
|
+
|
|
57
|
+
## Integration with Existing Skills
|
|
58
|
+
|
|
59
|
+
| Stage | Skill | Role |
|
|
60
|
+
|-------|-------|------|
|
|
61
|
+
| Gap detection | `ambiguity-gate` | Score request clarity, ask only critical gaps |
|
|
62
|
+
| Repo inspection | `idea` | NL-intent codebase analysis |
|
|
63
|
+
| Planning (research-validated) | `deep-plan` | research → plan → verify cycle |
|
|
64
|
+
| Planning (SDD discipline) | `sdd-dev` | Stage gates with planning-first workflow |
|
|
65
|
+
| Verification | `superpowers:verification-before-completion` | Evidence before assertions |
|
|
66
|
+
| Reporting | `result-aggregation` | Concise output composition |
|
|
67
|
+
|
|
68
|
+
## Design Notes
|
|
69
|
+
|
|
70
|
+
This skill is intentionally a **thin wrapper / orchestrator**. It does NOT duplicate planning, gap-detection, or verification logic. Its value:
|
|
71
|
+
|
|
72
|
+
- Single memorable command for the disciplined workflow
|
|
73
|
+
- Stable entry point that routes to whichever underlying skills are best at the moment
|
|
74
|
+
- Documented contract that callers can rely on regardless of internal skill evolution
|
|
75
|
+
|
|
76
|
+
If a future skill replaces `idea` or `sdd-dev`, only the integration table updates — `/goal` remains stable.
|
|
77
|
+
|
|
78
|
+
## Cross-References
|
|
79
|
+
|
|
80
|
+
- Issue: #1109 — Port /goal workflow to Claude Code skill surface
|
|
81
|
+
- Rules: R001 (safety), R003 (response style), R010 (delegation), R020 (completion verification)
|
|
82
|
+
- Original Codex /goal workflow this ports from: discipline-first goal execution
|
|
@@ -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/CLAUDE.md
CHANGED
|
@@ -116,7 +116,7 @@ project/
|
|
|
116
116
|
+-- CLAUDE.md # 진입점
|
|
117
117
|
+-- .claude/
|
|
118
118
|
| +-- agents/ # 서브에이전트 정의 (49 파일)
|
|
119
|
-
| +-- skills/ # 스킬 (
|
|
119
|
+
| +-- skills/ # 스킬 (117 디렉토리)
|
|
120
120
|
| +-- rules/ # 전역 규칙 (R000-R022)
|
|
121
121
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
122
122
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.128.0",
|
|
3
3
|
"lastUpdated": "2026-04-24T07:30:00.000Z",
|
|
4
4
|
"omcustomMinClaudeCode": "2.1.121",
|
|
5
5
|
"omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"name": "skills",
|
|
21
21
|
"path": ".claude/skills",
|
|
22
22
|
"description": "Reusable skill modules (includes slash commands)",
|
|
23
|
-
"files":
|
|
23
|
+
"files": 117
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "guides",
|