oh-my-customcode 1.0.10 → 1.0.11
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 +3 -3
- package/dist/index.js +3 -3
- package/package.json +3 -3
- package/templates/.claude/skills/fsd/SKILL.md +39 -10
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -241,7 +241,7 @@ var init_package = __esm(() => {
|
|
|
241
241
|
workspaces: [
|
|
242
242
|
"packages/*"
|
|
243
243
|
],
|
|
244
|
-
version: "1.0.
|
|
244
|
+
version: "1.0.11",
|
|
245
245
|
description: "Batteries-included agent harness for Claude Code",
|
|
246
246
|
type: "module",
|
|
247
247
|
bin: {
|
|
@@ -289,13 +289,13 @@ var init_package = __esm(() => {
|
|
|
289
289
|
yaml: "^2.8.2"
|
|
290
290
|
},
|
|
291
291
|
devDependencies: {
|
|
292
|
-
"@anthropic-ai/sdk": "^0.
|
|
292
|
+
"@anthropic-ai/sdk": "^0.105.0",
|
|
293
293
|
"@biomejs/biome": "^2.3.12",
|
|
294
294
|
"@types/bun": "^1.3.6",
|
|
295
295
|
"@types/js-yaml": "^4.0.9",
|
|
296
296
|
"@types/nodemailer": "^8.0.0",
|
|
297
297
|
"js-yaml": "^4.1.0",
|
|
298
|
-
nodemailer: "^
|
|
298
|
+
nodemailer: "^9.0.1",
|
|
299
299
|
typescript: "^6.0.2",
|
|
300
300
|
vitepress: "^1.6.4"
|
|
301
301
|
},
|
package/dist/index.js
CHANGED
|
@@ -2031,7 +2031,7 @@ var package_default = {
|
|
|
2031
2031
|
workspaces: [
|
|
2032
2032
|
"packages/*"
|
|
2033
2033
|
],
|
|
2034
|
-
version: "1.0.
|
|
2034
|
+
version: "1.0.11",
|
|
2035
2035
|
description: "Batteries-included agent harness for Claude Code",
|
|
2036
2036
|
type: "module",
|
|
2037
2037
|
bin: {
|
|
@@ -2079,13 +2079,13 @@ var package_default = {
|
|
|
2079
2079
|
yaml: "^2.8.2"
|
|
2080
2080
|
},
|
|
2081
2081
|
devDependencies: {
|
|
2082
|
-
"@anthropic-ai/sdk": "^0.
|
|
2082
|
+
"@anthropic-ai/sdk": "^0.105.0",
|
|
2083
2083
|
"@biomejs/biome": "^2.3.12",
|
|
2084
2084
|
"@types/bun": "^1.3.6",
|
|
2085
2085
|
"@types/js-yaml": "^4.0.9",
|
|
2086
2086
|
"@types/nodemailer": "^8.0.0",
|
|
2087
2087
|
"js-yaml": "^4.1.0",
|
|
2088
|
-
nodemailer: "^
|
|
2088
|
+
nodemailer: "^9.0.1",
|
|
2089
2089
|
typescript: "^6.0.2",
|
|
2090
2090
|
vitepress: "^1.6.4"
|
|
2091
2091
|
},
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"workspaces": [
|
|
4
4
|
"packages/*"
|
|
5
5
|
],
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.11",
|
|
7
7
|
"description": "Batteries-included agent harness for Claude Code",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"bin": {
|
|
@@ -51,13 +51,13 @@
|
|
|
51
51
|
"yaml": "^2.8.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@anthropic-ai/sdk": "^0.
|
|
54
|
+
"@anthropic-ai/sdk": "^0.105.0",
|
|
55
55
|
"@biomejs/biome": "^2.3.12",
|
|
56
56
|
"@types/bun": "^1.3.6",
|
|
57
57
|
"@types/js-yaml": "^4.0.9",
|
|
58
58
|
"@types/nodemailer": "^8.0.0",
|
|
59
59
|
"js-yaml": "^4.1.0",
|
|
60
|
-
"nodemailer": "^
|
|
60
|
+
"nodemailer": "^9.0.1",
|
|
61
61
|
"typescript": "^6.0.2",
|
|
62
62
|
"vitepress": "^1.6.4"
|
|
63
63
|
},
|
|
@@ -37,25 +37,50 @@ FSD expands into:
|
|
|
37
37
|
2. **`/loop` recurrence** — self-paced loop (model decides cadence), each iteration runs:
|
|
38
38
|
1. `/pipeline auto-dev` — full release pipeline for the next eligible issue
|
|
39
39
|
2. `/homework` — retrospective 찐빠 audit gate
|
|
40
|
+
3. **Open PR processing** — merge or defer all open PRs before checking convergence
|
|
40
41
|
|
|
41
42
|
### Loop Convergence
|
|
42
43
|
|
|
43
|
-
The loop converges naturally when
|
|
44
|
+
The loop converges naturally when **both** conditions are met:
|
|
45
|
+
|
|
46
|
+
1. The auto-dev-eligible issue set reaches 0
|
|
47
|
+
2. All open PRs have been either merged or explicitly deferred
|
|
48
|
+
|
|
49
|
+
FSD processes **open PRs as part of each iteration**, not only issues. This includes dependabot PRs and any automatically created PRs. Issue eligibility follows `/pipeline auto-dev` label selection exactly:
|
|
44
50
|
|
|
45
51
|
- **Included**: `verify-ready` (preferred), unlabeled auto-dev candidates
|
|
46
52
|
- **Excluded**: `verify-done`, `needs-review`, `decision-needed` labels
|
|
47
53
|
|
|
48
54
|
Do NOT invent new label logic here — defer to the `pipeline` skill's auto-dev issue selection.
|
|
49
55
|
|
|
56
|
+
### PR Processing Rules
|
|
57
|
+
|
|
58
|
+
When open PRs are found during an iteration:
|
|
59
|
+
|
|
60
|
+
| PR state | Action |
|
|
61
|
+
|----------|--------|
|
|
62
|
+
| CI passing, auto-mergeable | Merge via mgr-gitnerd (R010) |
|
|
63
|
+
| CI failing with known pattern (e.g., dependabot frozen-lockfile cascade → `bun install` lockfile regeneration) | Fix CI, then merge |
|
|
64
|
+
| CI failing with unknown cause | Diagnose; if fixable within iteration, fix and merge; otherwise defer |
|
|
65
|
+
| Breaking change / design judgment required | Defer and surface to user |
|
|
66
|
+
| Explicitly excluded by user this session | Skip (honor directive persistence, R015) |
|
|
67
|
+
|
|
68
|
+
All PR merge operations are delegated to **mgr-gitnerd** (R010). After merging, verify ground-truth via `gh pr view` or `git log` before declaring done (R020).
|
|
69
|
+
|
|
70
|
+
Do NOT merge PRs that require user approval for architectural decisions. Surface them with a short summary and wait.
|
|
71
|
+
|
|
50
72
|
### Iteration Flow (per iteration)
|
|
51
73
|
|
|
52
74
|
```
|
|
53
75
|
[FSD Iteration N]
|
|
54
76
|
├── /pipeline auto-dev → one release (PR create → merge → npm publish → milestone close)
|
|
55
77
|
├── /homework → extract 찐빠, confirm gate (or --dry-run if requested)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
78
|
+
├── Open PR processing → for each open PR: merge (if CI-green + auto-mergeable)
|
|
79
|
+
│ fix-then-merge (known CI failure pattern)
|
|
80
|
+
│ defer+surface (design decision needed)
|
|
81
|
+
└── Check convergence: eligible issues = 0 AND open PRs = 0 (merged or deferred)?
|
|
82
|
+
├── YES → [FSD Done] converged naturally
|
|
83
|
+
└── NO → next iteration
|
|
59
84
|
```
|
|
60
85
|
|
|
61
86
|
## Safety and Discipline
|
|
@@ -64,11 +89,12 @@ Each iteration operates under full project rules — no relaxation because FSD i
|
|
|
64
89
|
|
|
65
90
|
| Rule | Applies |
|
|
66
91
|
|------|---------|
|
|
67
|
-
| R001 (safety) | Destructive ops still require explicit approval. Credential guardrails always active. |
|
|
92
|
+
| R001 (safety) | Destructive ops still require explicit approval. Credential guardrails always active. PR merges that risk data loss require explicit approval. |
|
|
68
93
|
| 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. |
|
|
94
|
+
| R010 (orchestration) | All file modifications delegated to specialist subagents. mgr-gitnerd for git ops including PR merges. |
|
|
95
|
+
| R015 (intent persistence) | If user explicitly defers a specific PR this session, honor that deferral — do not retry it. |
|
|
70
96
|
| 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]`. |
|
|
97
|
+
| R020 (completion verification) | Each release verified via `npm view`, `gh release view`, closed issues before `[Done]`. PR merges verified via `gh pr view` ground-truth before declaring iteration complete. |
|
|
72
98
|
|
|
73
99
|
`/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
100
|
|
|
@@ -119,11 +145,13 @@ That session ran 2 iterations (v0.177.0 and v0.178.0) before converging with 0 e
|
|
|
119
145
|
| `omcustom-loop` | Session auto-continuation via SubagentStop hook — keeps the loop alive during background agent work |
|
|
120
146
|
| `pipeline` | `/pipeline auto-dev` — the core release pipeline per iteration |
|
|
121
147
|
| `homework` | Retrospective 찐빠 audit gate per iteration |
|
|
122
|
-
|
|
|
148
|
+
| `mgr-gitnerd` | PR merge operations — all open PR merges delegated here (R010) |
|
|
149
|
+
| R001 (safety) | Destructive ops require approval; credential guardrails; risky PR merges require explicit approval |
|
|
123
150
|
| R009 (parallel execution) | Parallel subtasks within each pipeline iteration |
|
|
124
|
-
| R010 (orchestrator coordination) | All file writes delegated; mgr-gitnerd for git |
|
|
151
|
+
| R010 (orchestrator coordination) | All file writes delegated; mgr-gitnerd for git including PR merges |
|
|
152
|
+
| R015 (intent persistence) | User PR deferral decisions honored for the session |
|
|
125
153
|
| R017 (sync verification) | mgr-sauron required before commit/push |
|
|
126
|
-
| R020 (completion verification) | Actual outcome verified before declaring each release done |
|
|
154
|
+
| R020 (completion verification) | Actual outcome verified before declaring each release or PR merge done |
|
|
127
155
|
|
|
128
156
|
## Design Notes
|
|
129
157
|
|
|
@@ -132,6 +160,7 @@ This skill is intentionally a **thin alias**. It does NOT duplicate:
|
|
|
132
160
|
- Loop cadence / auto-continuation (owned by `omcustom-loop` + SubagentStop hook)
|
|
133
161
|
- Release pipeline steps (owned by `pipeline auto-dev`)
|
|
134
162
|
- Retrospective analysis (owned by `homework`)
|
|
163
|
+
- PR merge execution (owned by `mgr-gitnerd`)
|
|
135
164
|
- Completion verification (owned by R020 + `goal`)
|
|
136
165
|
|
|
137
166
|
If any of those underlying skills evolve, FSD automatically benefits — its only responsibility is declaring the intent and forwarding to the right components.
|
package/templates/manifest.json
CHANGED