oh-my-customcode 0.177.0 → 0.179.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 CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  **[한국어 문서 (Korean)](./README_ko.md)**
15
15
 
16
- 49 agents. 116 skills. 23 rules. One command.
16
+ 49 agents. 117 skills. 23 rules. One command.
17
17
 
18
18
  ```bash
19
19
  npm install -g oh-my-customcode && cd your-project && omcustom init
@@ -132,13 +132,13 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
132
132
 
133
133
  ---
134
134
 
135
- ### Skills (116)
135
+ ### Skills (117)
136
136
 
137
137
  | Category | Count | Includes |
138
138
  |----------|-------|----------|
139
139
  | Best Practices | 24 | Go, Python, TypeScript, Kotlin, Rust, React, FastAPI, Spring Boot, Django, Flutter, Docker, AWS, Postgres, Redis, Kafka, dbt, Spark, Snowflake, Airflow, pipeline-architecture-patterns, alembic, and more |
140
140
  | Routing | 4 | secretary, dev-lead, de-lead, qa-lead |
141
- | Workflow | 13 | structured-dev-cycle, deep-plan, research, evaluator-optimizer, dag-orchestration, worker-reviewer-pipeline, reasoning-sandwich, pipeline, and more |
141
+ | Workflow | 14 | structured-dev-cycle, deep-plan, research, evaluator-optimizer, dag-orchestration, worker-reviewer-pipeline, reasoning-sandwich, pipeline, fsd, and more |
142
142
  | Development | 8 | dev-review, dev-refactor, analysis, create-agent, intent-detection, web-design-guidelines, omcustom-takeover, skill-extractor |
143
143
  | Operations | 9 | update-docs, audit-agents, sauron-watch, monitoring-setup, fix-refs, release-notes, and more |
144
144
  | Memory | 3 | memory-save, memory-recall, memory-management |
@@ -270,7 +270,7 @@ your-project/
270
270
  ├── CLAUDE.md # Entry point
271
271
  ├── .claude/
272
272
  │ ├── agents/ # 49 agent definitions
273
- │ ├── skills/ # 116 skill modules
273
+ │ ├── skills/ # 117 skill modules
274
274
  │ ├── rules/ # 23 governance rules (R000-R023)
275
275
  │ ├── hooks/ # 15 lifecycle hook scripts
276
276
  │ ├── schemas/ # Tool input validation schemas
package/dist/cli/index.js CHANGED
@@ -241,7 +241,7 @@ var init_package = __esm(() => {
241
241
  workspaces: [
242
242
  "packages/*"
243
243
  ],
244
- version: "0.177.0",
244
+ version: "0.179.0",
245
245
  description: "Batteries-included agent harness for Claude Code",
246
246
  type: "module",
247
247
  bin: {
package/dist/index.js CHANGED
@@ -2031,7 +2031,7 @@ var package_default = {
2031
2031
  workspaces: [
2032
2032
  "packages/*"
2033
2033
  ],
2034
- version: "0.177.0",
2034
+ version: "0.179.0",
2035
2035
  description: "Batteries-included agent harness for Claude Code",
2036
2036
  type: "module",
2037
2037
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.177.0",
6
+ "version": "0.179.0",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -37,6 +37,10 @@ This is a settings-level resilience mechanism, distinct from the per-agent `mode
37
37
 
38
38
  > **v2.1.166+**: `MAX_THINKING_TOKENS=0`, `--thinking disabled`, and the per-model thinking toggle disable thinking on models that think by default via the Claude API (3rd-party providers unchanged). Relevant when an agent's `effort` is low and thinking overhead is undesirable.
39
39
 
40
+ ### Safe Mode & Bundled Skill Control (CC v2.1.169+)
41
+
42
+ > **v2.1.169+**: `--safe-mode` (and `CLAUDE_CODE_SAFE_MODE`) starts Claude Code with ALL customizations disabled (CLAUDE.md, plugins, skills, hooks, MCP servers) — use it to isolate whether a project customization (agent/skill/hook) causes a regression. The `disableBundledSkills` setting (and `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` env) hides bundled skills, workflows, and built-in slash commands from the model — useful when bundled skills conflict with or duplicate project skills (R006 skill-surface management). Note: `disableBundledSkills` hides skills from the model but is a CC platform setting, distinct from the advisory `skills:` frontmatter field (which is documentation metadata, not a runtime allowlist).
43
+
40
44
  ### Optional Frontmatter
41
45
 
42
46
  Key optional fields: `memory`, `effort`, `skills`, `soul`, `isolation`, `background`, `maxTurns`, `maxTokens`, `mcpServers`, `hooks`, `permissionMode`, `disallowedTools`, `limitations`, `domain`, `disableSkillShellExecution`. Supported since CC v2.1.63+. See full optional frontmatter via Read tool.
@@ -355,6 +355,8 @@ Cross-reference: R020 ("actual outcome ≠ attempt" — verifying that a command
355
355
 
356
356
  > **CC v2.1.162+**: `claude agents --json` now includes a `waitingFor` field showing what a waiting session is blocked on (e.g. a permission prompt). Use it as an additional deterministic ground-truth signal — a member with a non-empty `waitingFor` is blocked on input (needs unblocking), NOT silently stalled (reassign per stall handling below). This distinguishes the two failure modes the verification is meant to separate.
357
357
 
358
+ > **CC v2.1.169+**: `claude agents --json` now includes blocked and just-dispatched background sessions (previously omitted), adds `--all` to include completed sessions, and adds `id` and `state` fields. This strengthens the deterministic ground-truth for member completion verification — `state` distinguishes blocked/running/completed directly, and `--all` confirms a member actually completed (rather than just disappearing from the active list). Use `--all` + `state` as the ground-truth signal instead of inferring completion from a member's absence.
359
+
358
360
  **Stall handling**: When a member shows no task progress within ~2 minutes despite spawn + owner assignment + SendMessage coordination, reassign the work to a standalone Agent (R009) rather than continuing to nudge the stalled member. Stalled Teams members waste tokens on idle polling and delay the overall workflow.
359
361
 
360
362
  Observed instance: v0.159.0 release (session 105) — members assigned to disjoint-file cleanup tasks went idle without executing; deterministic git-diff check exposed the gap; work was reassigned to standalone parallel Agents. References: #1261, #1262.
@@ -241,6 +241,21 @@ Session 106: during 529 buffering, a CHANGELOG was misdiagnosed as "61x 중복
241
241
 
242
242
  Origin: #1269 ① (R020 self-violation, session 106).
243
243
 
244
+ ### CI Publish-Step Error vs Published-Artifact Ground Truth
245
+
246
+ > Origin: #1332 — `npm publish --provenance` emitted a Sigstore `TLOG_CREATE_ENTRY_ERROR` 409, but the publish step's `|| npm view <pkg>@<ver>` fallback recovered (the package WAS published) and release.yml succeeded on all jobs. A subagent read the tlog error in the logs and prematurely declared the run "failed", recommending a re-run; deterministic ground-truth (`npm view`, `gh release view`) showed the release had fully succeeded.
247
+
248
+ A CI publish/deploy step that LOGS an error has NOT necessarily failed — the step may recover via a fallback (`|| npm view ...`), or the error may be in a non-fatal sub-step (provenance attestation, eventual-consistency probe). Before declaring a publish/release run failed — and ESPECIALLY before re-running, rolling back, or permanently changing the workflow — verify the PUBLISHED ARTIFACT directly:
249
+
250
+ | Publish target | Ground-truth check |
251
+ |----------------|--------------------|
252
+ | npm | `npm view <pkg> version` == expected |
253
+ | GitHub Release | `gh release view <tag>` exists, not draft |
254
+ | Docker registry | image tag/manifest exists |
255
+ | Run outcome | `gh run view <id> --json jobs` job conclusions — NOT a single step's log line |
256
+
257
+ This is the publish-domain extension of Read-Before-Characterize ("actual outcome ≠ attempt"). Re-running a publish that actually succeeded risks duplicate-publish errors; permanently changing a workflow on a misdiagnosis is worse (cf. #1217 — npm E403 misdiagnosed as a `--provenance` conflict → wrong workflow change → repeated failure; real cause was token scope).
258
+
244
259
  ## Integration
245
260
 
246
261
  | Rule | Interaction |
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: omcustom:fsd
3
+ description: Full Self Driving — autonomous release loop that processes all auto-dev-eligible GitHub issues until none remain, by repeatedly running /pipeline auto-dev then /homework.
4
+ scope: harness
5
+ user-invocable: true
6
+ argument-hint: "[<max-releases>]"
7
+ version: 0.1.0
8
+ effort: high
9
+ ---
10
+
11
+ # /omcustom:fsd — Full Self Driving
12
+
13
+ Autonomous release loop. Equivalent to running:
14
+
15
+ ```
16
+ /goal "모든 이슈가 처리될 때까지" /loop "/pipeline auto-dev -> /homework"
17
+ ```
18
+
19
+ This is a **thin alias / orchestrator skill**. It does not implement loop, issue-polling, release, or verification logic — it delegates entirely to existing skills.
20
+
21
+ ## Usage
22
+
23
+ ```
24
+ /omcustom:fsd # Run until all auto-dev-eligible issues are exhausted
25
+ /omcustom:fsd 3 # Optional: cap at N releases (default: unlimited)
26
+ ```
27
+
28
+ No arguments are required. The default behavior runs until the auto-dev-eligible issue set is empty.
29
+
30
+ ## What It Does
31
+
32
+ FSD expands into:
33
+
34
+ 1. **`/goal` wrapper** — applies disciplined goal-to-execution workflow:
35
+ - Objective: "모든 이슈가 처리될 때까지"
36
+ - Delegates planning, gap detection, and R020 completion verification to the `goal` skill
37
+ 2. **`/loop` recurrence** — self-paced loop (model decides cadence), each iteration runs:
38
+ 1. `/pipeline auto-dev` — full release pipeline for the next eligible issue
39
+ 2. `/homework` — retrospective 찐빠 audit gate
40
+
41
+ ### Loop Convergence
42
+
43
+ The loop converges naturally when the auto-dev-eligible issue set reaches 0. Issue eligibility follows `/pipeline auto-dev` label selection exactly:
44
+
45
+ - **Included**: `verify-ready` (preferred), unlabeled auto-dev candidates
46
+ - **Excluded**: `verify-done`, `needs-review`, `decision-needed` labels
47
+
48
+ Do NOT invent new label logic here — defer to the `pipeline` skill's auto-dev issue selection.
49
+
50
+ ### Iteration Flow (per iteration)
51
+
52
+ ```
53
+ [FSD Iteration N]
54
+ ├── /pipeline auto-dev → one release (PR create → merge → npm publish → milestone close)
55
+ ├── /homework → extract 찐빠, confirm gate (or --dry-run if requested)
56
+ └── Check: any eligible issues remain?
57
+ ├── YES → next iteration
58
+ └── NO → [FSD Done] converged naturally
59
+ ```
60
+
61
+ ## Safety and Discipline
62
+
63
+ Each iteration operates under full project rules — no relaxation because FSD is autonomous:
64
+
65
+ | Rule | Applies |
66
+ |------|---------|
67
+ | R001 (safety) | Destructive ops still require explicit approval. Credential guardrails always active. |
68
+ | R009 (parallel) | Independent subtasks within each pipeline iteration run in parallel. |
69
+ | R010 (orchestration) | All file modifications delegated to specialist subagents. mgr-gitnerd for git ops. |
70
+ | R017 (sync verification) | mgr-sauron passes required before any commit. |
71
+ | R020 (completion verification) | Each release verified via `npm view`, `gh release view`, closed issues before `[Done]`. |
72
+
73
+ `/homework` runs as a **retrospective gate** between iterations — findings go through `omcustom-feedback`'s Phase 4A confirmation gate. The loop does NOT skip homework on the grounds that it is "automated". If homework requires user confirmation (e.g., to file a feedback issue), the loop pauses and waits.
74
+
75
+ If a release operation triggers the safety classifier, the current iteration stops and surfaces the block to the user before continuing.
76
+
77
+ ## When to Use
78
+
79
+ | Scenario | Use FSD? |
80
+ |----------|----------|
81
+ | Multiple eligible issues ready to process autonomously | YES |
82
+ | Session where the user wants to "let it run" through the backlog | YES |
83
+ | Verifying the autonomous release loop pattern from session memory | YES |
84
+ | Single targeted issue fix | NO — use `/pipeline auto-dev` directly |
85
+ | Exploratory research / planning only | NO — use `/research` or `/deep-plan` |
86
+ | Only one issue and it needs human judgment | NO — use `/pipeline auto-dev` with manual oversight |
87
+
88
+ ## When NOT to Use
89
+
90
+ - When issues require stakeholder approval or design decisions before implementation
91
+ - When the issue set includes `decision-needed` or `needs-review` items only (loop converges immediately — just use `/pipeline auto-dev` once)
92
+ - When cost sensitivity is high and the issue backlog is large — inspect the eligible set first before running FSD
93
+
94
+ ## Optional Release Cap
95
+
96
+ Pass a numeric argument to cap at N releases:
97
+
98
+ ```
99
+ /omcustom:fsd 3 # Process at most 3 issues this FSD run
100
+ ```
101
+
102
+ This corresponds to the `-max` parameter used in the manual pattern. Default is unlimited (run until eligible issues exhausted). The cap is advisory — the pipeline itself may stop earlier if the eligible set runs out before the cap is reached.
103
+
104
+ ## Session 114 Precedent
105
+
106
+ This skill was extracted from the manual pattern used in Session 114 (2026-06-09):
107
+
108
+ ```
109
+ /goal "모든 이슈가 처리될 때까지" /loop "/pipeline auto-dev -> /homework"
110
+ ```
111
+
112
+ That session ran 2 iterations (v0.177.0 and v0.178.0) before converging with 0 eligible issues remaining. FSD codifies this pattern as a first-class invocable command.
113
+
114
+ ## Cross-References
115
+
116
+ | Skill / Rule | Role |
117
+ |--------------|------|
118
+ | `goal` | Disciplined goal-to-execution wrapper — objective parse, gap detection, R020 verification |
119
+ | `omcustom-loop` | Session auto-continuation via SubagentStop hook — keeps the loop alive during background agent work |
120
+ | `pipeline` | `/pipeline auto-dev` — the core release pipeline per iteration |
121
+ | `homework` | Retrospective 찐빠 audit gate per iteration |
122
+ | R001 (safety) | Destructive ops require approval; credential guardrails |
123
+ | R009 (parallel execution) | Parallel subtasks within each pipeline iteration |
124
+ | R010 (orchestrator coordination) | All file writes delegated; mgr-gitnerd for git |
125
+ | R017 (sync verification) | mgr-sauron required before commit/push |
126
+ | R020 (completion verification) | Actual outcome verified before declaring each release done |
127
+
128
+ ## Design Notes
129
+
130
+ This skill is intentionally a **thin alias**. It does NOT duplicate:
131
+ - Issue polling logic (owned by `pipeline`)
132
+ - Loop cadence / auto-continuation (owned by `omcustom-loop` + SubagentStop hook)
133
+ - Release pipeline steps (owned by `pipeline auto-dev`)
134
+ - Retrospective analysis (owned by `homework`)
135
+ - Completion verification (owned by R020 + `goal`)
136
+
137
+ If any of those underlying skills evolve, FSD automatically benefits — its only responsibility is declaring the intent and forwarding to the right components.
138
+
139
+ ## Permission Mode Note
140
+
141
+ When this skill delegates work via Agent tool calls, ALL Agent tool calls MUST include `mode: "bypassPermissions"` per R010 Universal bypassPermissions.
142
+
143
+ ## Artifact Output
144
+
145
+ Artifacts from each iteration follow the conventions of the constituent skills:
146
+ - Pipeline artifacts: `.claude/outputs/sessions/{YYYY-MM-DD}/pipeline-auto-dev-{HHmmss}.md`
147
+ - Homework artifacts: `.claude/outputs/sessions/{YYYY-MM-DD}/homework-{HHmmss}.md`
@@ -116,7 +116,7 @@ project/
116
116
  +-- CLAUDE.md # 진입점
117
117
  +-- .claude/
118
118
  | +-- agents/ # 서브에이전트 정의 (49 파일)
119
- | +-- skills/ # 스킬 (116 디렉토리)
119
+ | +-- skills/ # 스킬 (117 디렉토리)
120
120
  | +-- rules/ # 전역 규칙 (R000-R023)
121
121
  | +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
122
122
  | +-- contexts/ # 컨텍스트 파일 (ecomode)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.177.0",
2
+ "version": "0.179.0",
3
3
  "lastUpdated": "2026-05-20T00:00: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": 116
23
+ "files": 117
24
24
  },
25
25
  {
26
26
  "name": "guides",