oh-my-customcodex 0.5.11 → 0.5.13

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
@@ -3091,7 +3091,7 @@ var init_package = __esm(() => {
3091
3091
  workspaces: [
3092
3092
  "packages/*"
3093
3093
  ],
3094
- version: "0.5.11",
3094
+ version: "0.5.13",
3095
3095
  requiresCC: ">=2.1.121",
3096
3096
  claudeCode: {
3097
3097
  minimumVersion: "2.1.121",
package/dist/index.js CHANGED
@@ -2316,7 +2316,7 @@ var package_default = {
2316
2316
  workspaces: [
2317
2317
  "packages/*"
2318
2318
  ],
2319
- version: "0.5.11",
2319
+ version: "0.5.13",
2320
2320
  requiresCC: ">=2.1.121",
2321
2321
  claudeCode: {
2322
2322
  minimumVersion: "2.1.121",
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.5.11",
6
+ "version": "0.5.13",
7
7
  "requiresCC": ">=2.1.121",
8
8
  "claudeCode": {
9
9
  "minimumVersion": "2.1.121",
@@ -67,6 +67,29 @@ Parallel batches return results together, so a same-batch permanent dispatch pro
67
67
 
68
68
  Example: do not diagnose `triage-dispatch.yml` from memory, create an issue, and delegate a fix in the same parallel call before reading the workflow. If the read later shows a different root cause, the issue, PR, and commit trail become correction debt even when the eventual code direction is acceptable.
69
69
 
70
+ ## Degraded-Output Re-Verification Gate
71
+
72
+ When tool output shows provider instability, buffering, truncation, duplicated chunks, `529`, timeout recovery, or `(no result)` while a permanent action is being considered, treat the current read as degraded. Do not characterize corruption, missing files, stale state, release failure, or data loss from that single degraded read.
73
+
74
+ Before destructive recovery, issue creation, rule/workflow/template edits, release publication, or fix delegation based on degraded output:
75
+
76
+ 1. Re-read the authoritative source with a deterministic command or API call.
77
+ 2. Use a second narrow check that can falsify the failure hypothesis, such as `grep -c`, `sort -u`, `git status`, `git show`, `gh api`, or a direct file diff.
78
+ 3. Record whether the first read was degraded and whether the re-check confirmed or corrected the hypothesis.
79
+
80
+ If the deterministic re-check cannot run, halt or reduce the action to a non-destructive diagnostic note.
81
+
82
+ ## Workflow Script Sanity Check
83
+
84
+ Before invoking or registering generated workflow code, run a Tier-1 sanity pass:
85
+
86
+ 1. Search for unresolved placeholders, malformed identifiers, and known dead-line patterns.
87
+ 2. Assemble the exact script body before execution; do not concatenate facts or guardrails after the call starts.
88
+ 3. Run the language parser or the narrowest no-side-effect syntax check available.
89
+ 4. If syntax validation is unavailable, read the generated body back and perform a focused self-review before launch.
90
+
91
+ This check is mandatory for workflow scripts that will run automation, mutate GitHub state, or gate a release.
92
+
70
93
  ## Test-Skip Is Not Completion
71
94
 
72
95
  Skipping tests, lowering coverage thresholds, narrowing the test command, or marking suites as TODO may be a temporary containment step, but it never satisfies completion by itself.
@@ -51,6 +51,18 @@ When repeating agent failures or suboptimal routing is detected:
51
51
 
52
52
  This connects R016's continuous improvement loop with the adaptive-harness skill's learning capability.
53
53
 
54
+ ## Skill Promotion Threshold
55
+
56
+ Promote a recurring workflow into a skill only when the evidence is strong enough to justify a durable interface.
57
+
58
+ | Evidence | Action |
59
+ |----------|--------|
60
+ | One clear occurrence | Record memory or issue; do not create a skill by default |
61
+ | Two direct successful repetitions with stable inputs/outputs | Candidate for `skill-extractor` Phase 1 shortlist |
62
+ | Three or more direct repetitions, or two repetitions plus explicit user confirmation | Confirmed promotion candidate |
63
+
64
+ Before creating a new skill, verify the candidate is not already covered by an existing skill, rule, guide, hook, or lightweight memory entry. Ambiguous, sensitive, one-off, or ownership-unclear candidates are explicitly skipped with a reason.
65
+
54
66
  ## External Repository Contribution Pre-Check
55
67
 
56
68
  Before creating or modifying assets for an external repository or upstream contribution target, inspect that repository's local contract before implementing:
@@ -248,6 +248,19 @@ Known limitation: `arch-documenter` has `disallowedTools: [Bash]`. Do not ask it
248
248
 
249
249
  The `agent-capability-precheck.sh` hook blocks obvious mismatches so the orchestrator re-routes before spawning an agent that cannot execute the requested work.
250
250
 
251
+ ### Delegated Path Existence Pre-Check
252
+
253
+ Before putting concrete file paths in a delegated prompt, verify those paths exist or explicitly mark them as new files. A tool-capability match is insufficient when the prompt names a path.
254
+
255
+ Required check:
256
+
257
+ 1. Use `rg --files`, `find`, `ls`, or the repository index to prove each existing path.
258
+ 2. If a path is missing, locate the current equivalent before delegating.
259
+ 3. Include only verified paths in the prompt, or say `create new file: <path>` when creation is intended.
260
+ 4. For multi-copy assets, verify all source/template mirrors before assigning the edit.
261
+
262
+ Do not rely on the delegate to repair stale path guesses in shared workflow, rule, guide, or release tasks.
263
+
251
264
  <!-- DETAIL: Autonomous Execution Mode
252
265
 
253
266
  ## Autonomous Execution Mode
@@ -41,6 +41,17 @@ Find repeated operator or agent behavior that should become a rule, skill, guide
41
41
  4. Assign confidence and cite concrete files, commits, or artifacts.
42
42
  5. Emit proposals only; do not create new rules or skills without an explicit follow-up task.
43
43
 
44
+ ## Selection Discipline
45
+
46
+ Before emitting a reusable-asset proposal, apply these filters:
47
+
48
+ - **Duplicate check**: search existing skills, rules, guides, hooks, and memory entries for equivalent behavior. Prefer extending the existing asset.
49
+ - **Skip filter**: explicitly skip ambiguous, sensitive, one-off, or ownership-unclear candidates.
50
+ - **Stable interface check**: require stable trigger, input, output, and verification evidence before recommending a skill.
51
+ - **Frequency check**: one occurrence is memory/issue material; two direct repetitions can enter a shortlist; three or more direct repetitions or explicit user confirmation can justify promotion.
52
+
53
+ When a candidate is skipped, include the skip reason so future extraction runs do not re-open the same weak proposal without new evidence.
54
+
44
55
  ## Output
45
56
 
46
57
  ```text
@@ -24,6 +24,14 @@ source:
24
24
 
25
25
  ## Behavior
26
26
 
27
+ ## Workflow File Locations
28
+
29
+ `workflows/*.yaml` is the Codex pipeline invocation surface used by `/pipeline <name>` in this repository. `templates/workflows/*.yaml` is its packaged template mirror and must remain content-identical.
30
+
31
+ `.codex/skills/pipeline/workflows/*.yaml` is a skill-local reference copy retained for compatibility with older skill bundles and detailed examples. It is not the primary repo-root invocation surface unless a runtime explicitly resolves workflows relative to this skill directory.
32
+
33
+ When changing pipeline behavior, update the active repo-root workflow first, update its template mirror in the same change, and then update skill-local reference copies when they describe the same behavior.
34
+
27
35
  ### List Mode (no arguments or --list flag)
28
36
 
29
37
  Execute these steps to display available pipelines:
@@ -18,6 +18,8 @@ Used by `scope-selection` to include or exclude issues and by `implement` for li
18
18
  | `claude-code-release` | Claude compatibility release trigger | INCLUDE (preferred) |
19
19
  | `documentation` | Documentation-only scope | INCLUDE (preferred for docs-only release) |
20
20
  | `enhancement-yaml-only` | YAML/config-only scope change | INCLUDE (eligible for docs-only compression) |
21
+ | `feedback` | Session feedback or retrospective follow-up | INCLUDE for low-risk rule/skill/doc scope |
22
+ | `improvement` | Process or harness improvement | INCLUDE for low-risk rule/skill/doc scope |
21
23
 
22
24
  ## Selection Rule
23
25
 
@@ -44,6 +46,13 @@ If all scoped issues are compression-eligible and scope size is 3 or fewer, the
44
46
  `compression_mode=docs-only` and replace heavyweight triage, planning, and verification spawns with
45
47
  direct manifest summaries plus a local self-review checklist.
46
48
 
49
+ An issue is eligible for `lite` compression mode if its labels or triage evidence show a low-risk
50
+ documentation, release-monitor, feedback, improvement, enhancement, YAML/config-only, or rule/skill text
51
+ change. `lite` mode requires scope size 5 or fewer and must still run verify-build.
52
+
53
+ Do not add or change labels solely to qualify for a compression tier. If triage label changes affect
54
+ compression eligibility, report that fact in the compression-mode decision.
55
+
47
56
  ## Lifecycle Labels
48
57
 
49
58
  | Transition | Action |
@@ -408,8 +408,20 @@ if [[ -f "$env_status_file" ]]; then
408
408
  fi
409
409
  fi
410
410
 
411
+ extra_segment=""
412
+ if [[ -n "${STATUSLINE_EXTRA_PROVIDERS:-}" ]]; then
413
+ IFS=':' read -r -a extra_providers <<< "$STATUSLINE_EXTRA_PROVIDERS"
414
+ for provider in "${extra_providers[@]}"; do
415
+ [[ -n "$provider" && -x "$provider" ]] || continue
416
+ provider_output="$("$provider" </dev/null 2>/dev/null | tr '\n' ' ' | sed 's/[[:space:]]*$//')"
417
+ if [[ -n "$provider_output" ]]; then
418
+ extra_segment="${extra_segment} | ${provider_output}"
419
+ fi
420
+ done
421
+ fi
422
+
411
423
  if [[ -n "$git_branch" ]]; then
412
- printf "${cost_color}%s${COLOR_RESET} | %s | %s%s%s%s%s%s | ${ctx_color}%s${COLOR_RESET}\n" \
424
+ printf "${cost_color}%s${COLOR_RESET} | %s | %s%s%s%s%s%s%s | ${ctx_color}%s${COLOR_RESET}\n" \
413
425
  "$cost_display" \
414
426
  "$project_name" \
415
427
  "$branch_display" \
@@ -418,9 +430,10 @@ if [[ -n "$git_branch" ]]; then
418
430
  "$wl_segment" \
419
431
  "$agent_segment" \
420
432
  "$rtk_segment" \
433
+ "$extra_segment" \
421
434
  "$ctx_display"
422
435
  else
423
- printf "${cost_color}%s${COLOR_RESET} | %s%s%s%s%s%s | ${ctx_color}%s${COLOR_RESET}\n" \
436
+ printf "${cost_color}%s${COLOR_RESET} | %s%s%s%s%s%s%s | ${ctx_color}%s${COLOR_RESET}\n" \
424
437
  "$cost_display" \
425
438
  "$project_name" \
426
439
  "$pr_segment" \
@@ -428,5 +441,6 @@ else
428
441
  "$wl_segment" \
429
442
  "$agent_segment" \
430
443
  "$rtk_segment" \
444
+ "$extra_segment" \
431
445
  "$ctx_display"
432
446
  fi
@@ -1,11 +1,11 @@
1
1
  {
2
- "version": "0.5.11",
2
+ "version": "0.5.13",
3
3
  "requiresCC": ">=2.1.121",
4
4
  "claudeCode": {
5
5
  "minimumVersion": "2.1.121",
6
6
  "protectedPathBypassVersion": "2.1.126"
7
7
  },
8
- "lastUpdated": "2026-06-01T00:00:00.000Z",
8
+ "lastUpdated": "2026-06-06T00:00:00.000Z",
9
9
  "components": [
10
10
  {
11
11
  "name": "rules",
@@ -60,13 +60,24 @@ steps:
60
60
  - name: compression-mode-eval
61
61
  depends_on: scope-selection
62
62
  prompt: |
63
- Evaluate docs-only compression mode.
63
+ Evaluate compression mode.
64
64
 
65
65
  Use `compression_mode=docs-only` only when:
66
66
  - scope size is 3 or fewer issues
67
67
  - every scoped issue has at least one of documentation, automated, codex-release, oh-my-codex-release, claude-code-release, or enhancement-yaml-only
68
68
 
69
- In docs-only mode, replace heavyweight triage/plan/deep-plan/deep-verify spawns with direct summaries plus local self-review. Otherwise use standard mode.
69
+ Use `compression_mode=lite` only when:
70
+ - scope size is 5 or fewer issues
71
+ - every scoped issue is documentation, automated release-monitor, feedback, improvement, enhancement, YAML/config-only, or low-risk rule/skill text
72
+ - no scoped issue requires TypeScript runtime behavior, package dependency changes, migration, or security-sensitive logic
73
+
74
+ Gate transparency:
75
+ - Do not add or change labels solely to qualify for docs-only or lite mode.
76
+ - If labels were changed during triage and affect compression eligibility, state that fact in the mode decision.
77
+
78
+ In docs-only mode, replace heavyweight triage/plan/deep-plan/deep-verify spawns with direct summaries plus local self-review.
79
+ In lite mode, keep a concise implementation plan and local self-review, but still run verify-build.
80
+ Otherwise use standard mode.
70
81
  Output the selected compression_mode for downstream steps.
71
82
  description: Evaluate docs-only compression eligibility
72
83
 
@@ -100,6 +111,10 @@ steps:
100
111
  prompt: |
101
112
  Project-specific build + test verification.
102
113
 
114
+ Scope-change re-entry guard:
115
+ - If a scoped issue is added or materially changed after verify-build starts, reset this phase and re-run the full verify-build gate for the new aggregate scope.
116
+ - Do not proceed to release from a verify-build result collected before the latest scoped implementation change.
117
+
103
118
  For Node/Bun projects:
104
119
  1. Run `bun install` and halt on lockfile drift.
105
120
  2. Run `bun run lint` when available.
@@ -0,0 +1,60 @@
1
+ # /pipeline eraser — Architecture documentation sync via Eraser MCP
2
+ # Analyzes ARCHITECTURE.md, updates text, generates/replaces diagrams
3
+
4
+ name: eraser
5
+ description: "Architecture documentation sync: analyze → update text → generate/replace diagrams → verify"
6
+ mode: confirm
7
+ error: halt-and-report
8
+
9
+ steps:
10
+ - name: analyze
11
+ prompt: >
12
+ Compare ARCHITECTURE.md counts/versions against actual codebase.
13
+ Run: agent count (ls .claude/agents/*.md | wc -l),
14
+ skill count (find .claude/skills -name SKILL.md | wc -l),
15
+ guide count (find guides -mindepth 1 -maxdepth 1 -type d | wc -l).
16
+ Compare with documented values. List outdated sections.
17
+ description: >
18
+ Compare ARCHITECTURE.md counts/versions against actual codebase.
19
+ Run: agent count (ls .claude/agents/*.md | wc -l),
20
+ skill count (find .claude/skills -name SKILL.md | wc -l),
21
+ guide count (find guides -mindepth 1 -maxdepth 1 -type d | wc -l).
22
+ Compare with documented values. List outdated sections.
23
+
24
+ - name: update-text
25
+ prompt: >
26
+ Update ARCHITECTURE.md and ARCHITECTURE_ko.md text content:
27
+ version numbers, agent/skill/guide counts, feature descriptions,
28
+ new sections for recently added features, version history.
29
+ Delegate to arch-documenter agent.
30
+ description: >
31
+ Update ARCHITECTURE.md and ARCHITECTURE_ko.md text content:
32
+ version numbers, agent/skill/guide counts, feature descriptions,
33
+ new sections for recently added features, version history.
34
+ Delegate to arch-documenter agent.
35
+
36
+ - name: generate-diagrams
37
+ prompt: >
38
+ Use Eraser MCP to generate/replace diagrams in assets/diagrams/.
39
+ Diagram types: renderCloudArchitectureDiagram (system overview),
40
+ renderSequenceDiagram (API flows), renderFlowchart (decision flows).
41
+ Settings: imageQuality 2, format png, background true, theme light,
42
+ typeface clean, colorMode bold.
43
+ Download generated images and save to assets/diagrams/.
44
+ description: >
45
+ Use Eraser MCP to generate/replace diagrams in assets/diagrams/.
46
+ Diagram types: renderCloudArchitectureDiagram (system overview),
47
+ renderSequenceDiagram (API flows), renderFlowchart (decision flows).
48
+ Settings: imageQuality 2, format png, background true, theme light,
49
+ typeface clean, colorMode bold.
50
+ Download generated images and save to assets/diagrams/.
51
+
52
+ - name: verify
53
+ skill: dev-review
54
+ description: >
55
+ Verify all image references are valid, counts match filesystem,
56
+ no broken links, English and Korean docs are synchronized.
57
+
58
+ - name: release
59
+ prompt: "Create PR with documentation updates"
60
+ description: Create PR with documentation updates