oh-my-customcode 0.164.0 → 0.165.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 +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/agents/mgr-gitnerd.md +21 -0
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +8 -0
- package/templates/.claude/skills/pipeline/SKILL.md +16 -0
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -65,3 +65,24 @@ Types: feat, fix, docs, style, refactor, test, chore
|
|
|
65
65
|
## Push Rules (R016)
|
|
66
66
|
|
|
67
67
|
All pushes require prior mgr-sauron:watch verification. If sauron was not run, REFUSE the push.
|
|
68
|
+
|
|
69
|
+
## Milestone Query Robustness
|
|
70
|
+
|
|
71
|
+
When verifying milestone state (e.g., confirming it is closed after a release), prefer **number-based direct query** over title-matching list lookup:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Preferred: direct lookup by milestone number (deterministic)
|
|
75
|
+
gh api repos/{owner}/{repo}/milestones/<number> --jq '.title, .state, .open_issues'
|
|
76
|
+
|
|
77
|
+
# Fallback: title-matching list lookup (may fail transiently)
|
|
78
|
+
gh api "repos/{owner}/{repo}/milestones?state=all&per_page=100" \
|
|
79
|
+
--jq '.[] | select(.title == "vX.Y.Z") | .title, .state, .open_issues'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Rules:**
|
|
83
|
+
- If title-matching list lookup returns no results (apparent "not found"), do NOT immediately report the milestone as absent.
|
|
84
|
+
- Retry once (transient jq filter / pagination timing issues can cause false negatives).
|
|
85
|
+
- If still not found after retry, fall back to number-based direct query before reporting "milestone does not exist."
|
|
86
|
+
- False "milestone not found" reports can mislead the release milestone-close verification step.
|
|
87
|
+
|
|
88
|
+
Origin: #1287 (v0.164.0 session retrospective — milestone v0.164.0 reported as absent but confirmed present via direct re-query).
|
|
@@ -317,6 +317,14 @@ Before delegating a task to a subagent, MUST verify the target agent's tool capa
|
|
|
317
317
|
|
|
318
318
|
> **Path existence ≠ tool capability (#1269 ③)**: the pre-check above verifies the agent HAS Read/Write/Bash, but not that the target path actually exists. Delegating a read/write to a missing or renamed path causes the same round-trip waste the capability pre-check is meant to prevent. Verify path existence (Glob/ls) before delegating path-specific work.
|
|
319
319
|
|
|
320
|
+
> **Multi-copy content consistency (#1287)**: 동일 파일이 다중 사본으로 존재하는 경우(예: auto-dev.yaml이 실행본 + templates 미러 + 레거시 사본 등 N곳), 위임 전 경로 존재뿐 아니라 **사본 간 내용 일관성(md5/diff)도 확인**해야 한다. 사본이 drift된 상태에서 "N곳 동일 변경 적용"으로 위임하면 에이전트가 작업 중에야 drift를 발견(round-trip)하거나, 일부 사본만 갱신되어 불일치가 심화된다.
|
|
321
|
+
>
|
|
322
|
+
> | Anti-pattern | Required |
|
|
323
|
+
> |--------------|----------|
|
|
324
|
+
> | `find`로 N곳 존재 확인 후 "N곳 동일 변경" 위임 | 위임 전 `md5`/`diff -q`로 N곳 내용 일치 확인; drift 시 canonical 기준 정렬을 위임 prompt에 명시 |
|
|
325
|
+
>
|
|
326
|
+
> Origin: #1287 (v0.164.0 세션 회고 찐빠 #1).
|
|
327
|
+
|
|
320
328
|
### Known Limitations (Active Cache)
|
|
321
329
|
|
|
322
330
|
| Agent | Limitation | Workaround |
|
|
@@ -138,6 +138,22 @@ steps:
|
|
|
138
138
|
}
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
+
## Workflow File Locations
|
|
142
|
+
|
|
143
|
+
The `auto-dev.yaml` (and other workflow YAML files) exist in **4 locations**. Only one is the runtime source — the others are mirrors for deployment and examples.
|
|
144
|
+
|
|
145
|
+
| Path | Role | Used by |
|
|
146
|
+
|------|------|---------|
|
|
147
|
+
| `.claude/skills/pipeline/workflows/auto-dev.yaml` | **Runtime source (실행본)** — `/pipeline` reads from here via `Glob("workflows/*.yaml")` relative to the skill base dir | `/pipeline` skill at runtime |
|
|
148
|
+
| `templates/.claude/skills/pipeline/workflows/auto-dev.yaml` | Init deployment mirror — copied to the runtime location when `omcustom init` runs | `omcustom init` |
|
|
149
|
+
| `workflows/auto-dev.yaml` (repo root) | Legacy `/omcustom:workflow` directory remnant — NOT referenced by `/pipeline`. Also contains `eraser.yaml` and template examples. | Unused after `/pipeline` migration |
|
|
150
|
+
| `templates/workflows/auto-dev.yaml` | Template example mirror — Glob'd by List Mode as "template examples" (`Glob("templates/workflows/*.yaml")`) | `/pipeline` List Mode display only |
|
|
151
|
+
|
|
152
|
+
**Key rules:**
|
|
153
|
+
- The runtime source is `.claude/skills/pipeline/workflows/` (skill base dir). Do NOT confuse with repo-root `workflows/`.
|
|
154
|
+
- When modifying any workflow YAML, update **all applicable mirrors** to prevent drift. `verify-template-sync.sh` (#1286) detects drift automatically on CI.
|
|
155
|
+
- Repo-root `workflows/` is a legacy `/omcustom:workflow` remnant — it also contains `eraser.yaml`. Do not delete without checking for other references.
|
|
156
|
+
|
|
141
157
|
## Error Handling
|
|
142
158
|
|
|
143
159
|
- Pipeline not found → list available pipelines with suggestion
|
package/templates/manifest.json
CHANGED