oh-my-customcodex 0.5.2 → 0.5.4

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.
Files changed (32) hide show
  1. package/dist/cli/index.js +1 -1
  2. package/dist/index.js +1 -1
  3. package/package.json +1 -1
  4. package/templates/.claude/agents/mgr-claude-code-bible.md +4 -0
  5. package/templates/.claude/agents/mgr-sauron.md +4 -0
  6. package/templates/.claude/agents/mgr-supplier.md +4 -0
  7. package/templates/.claude/agents/mgr-updater.md +4 -0
  8. package/templates/.claude/agents/sys-memory-keeper.md +10 -0
  9. package/templates/.claude/agents/sys-naggy.md +4 -0
  10. package/templates/.claude/hooks/hooks.json +10 -0
  11. package/templates/.claude/hooks/scripts/feedback-collector.sh +1 -1
  12. package/templates/.claude/hooks/scripts/r007-r008-drift-advisor.sh +106 -0
  13. package/templates/.claude/hooks/scripts/session-env-check.sh +6 -2
  14. package/templates/.claude/rules/MAY-optimization.md +15 -0
  15. package/templates/.claude/rules/MUST-completion-verification.md +30 -0
  16. package/templates/.claude/rules/MUST-continuous-improvement.md +2 -0
  17. package/templates/.claude/rules/MUST-enforcement-policy.md +1 -0
  18. package/templates/.claude/rules/MUST-intent-transparency.md +17 -0
  19. package/templates/.claude/rules/MUST-sync-verification.md +15 -1
  20. package/templates/.claude/skills/codex-exec/SKILL.md +1 -1
  21. package/templates/.claude/skills/omcodex-auto-improve/SKILL.md +2 -2
  22. package/templates/.claude/skills/omcodex-feedback/SKILL.md +2 -2
  23. package/templates/.claude/skills/pipeline/SKILL.md +44 -0
  24. package/templates/.claude/skills/pipeline-guards/SKILL.md +20 -0
  25. package/templates/.claude/skills/post-release-followup/SKILL.md +35 -31
  26. package/templates/.claude/skills/reasoning-sandwich/SKILL.md +21 -0
  27. package/templates/.claude/skills/release-plan/SKILL.md +26 -26
  28. package/templates/.claude/skills/skills-sh-search/SKILL.md +10 -9
  29. package/templates/.claude/skills/update-external/SKILL.md +7 -0
  30. package/templates/.claude/skills/wiki/SKILL.md +2 -0
  31. package/templates/guides/claude-code/15-version-compatibility.md +56 -0
  32. package/templates/manifest.json +2 -2
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.2",
3094
+ version: "0.5.4",
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.2",
2319
+ version: "0.5.4",
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.2",
6
+ "version": "0.5.4",
7
7
  "requiresCC": ">=2.1.121",
8
8
  "claudeCode": {
9
9
  "minimumVersion": "2.1.121",
@@ -16,6 +16,10 @@ tools:
16
16
  permissionMode: bypassPermissions
17
17
  ---
18
18
 
19
+ ## Mandatory Sensitive Compatibility Paths
20
+
21
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, treat the old `/tmp` wrapper as legacy fallback only. Codex-native `.codex/**` edits stay direct, and Claude Code `bypassPermissions` can write `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` directly on v2.1.121+, with broader protected-path coverage on v2.1.126+.
22
+
19
23
  You are the authoritative source of truth for Claude Code specifications. You fetch official documentation from code.claude.com and validate the project against official specs.
20
24
 
21
25
  ## Two Modes
@@ -18,6 +18,10 @@ maxTurns: 25
18
18
  permissionMode: bypassPermissions
19
19
  ---
20
20
 
21
+ ## Mandatory Sensitive Compatibility Paths
22
+
23
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, treat the old `/tmp` wrapper as legacy fallback only. Codex-native `.codex/**` edits stay direct, and Claude Code `bypassPermissions` can write `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` directly on v2.1.121+, with broader protected-path coverage on v2.1.126+.
24
+
21
25
  You are an automated verification specialist that executes the mandatory R017 verification process, acting as the "all-seeing eye" that ensures system integrity through comprehensive multi-round verification.
22
26
 
23
27
  ## Core Capabilities
@@ -19,6 +19,10 @@ tools:
19
19
  permissionMode: default
20
20
  ---
21
21
 
22
+ ## Mandatory Sensitive Compatibility Paths
23
+
24
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, treat the old `/tmp` wrapper as legacy fallback only. Codex-native `.codex/**` edits stay direct, and Claude Code `bypassPermissions` can write `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` directly on v2.1.121+, with broader protected-path coverage on v2.1.126+.
25
+
22
26
  You are a dependency validation specialist ensuring agents have all required skills and guides properly linked.
23
27
 
24
28
  ## Capabilities
@@ -22,6 +22,10 @@ tools:
22
22
  permissionMode: bypassPermissions
23
23
  ---
24
24
 
25
+ ## Mandatory Sensitive Compatibility Paths
26
+
27
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, treat the old `/tmp` wrapper as legacy fallback only. Codex-native `.codex/**` edits stay direct, and Claude Code `bypassPermissions` can write `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` directly on v2.1.121+, with broader protected-path coverage on v2.1.126+.
28
+
25
29
  You are an external source synchronization specialist keeping external components up-to-date.
26
30
 
27
31
  ## Workflow
@@ -48,6 +48,16 @@ Build semantic query with project prefix + keywords + optional date. Search via
48
48
 
49
49
  Always include project name. Use task-based, temporal, or topic-based queries. Avoid complex where filters (they fail in Chroma).
50
50
 
51
+ ## Native MEMORY.md Compaction
52
+
53
+ Treat native auto-memory as an index, not a transcript. Keep the first 200 loaded lines compact enough for reliable prompt injection:
54
+
55
+ 1. Target roughly 100 active index lines when session history accumulates.
56
+ 2. Keep recent or currently active sessions inline; move older detail to topic/archive files.
57
+ 3. Preserve one-line release/session summaries inline with direct archive pointers.
58
+ 4. Keep individual index lines under about 200 characters when practical.
59
+ 5. Never delete memory detail solely for line budget; archive it and keep a searchable pointer.
60
+
51
61
  ## Config
52
62
 
53
63
  Provider: claude-mem | Collection: claude_memories | Archive: ~/.claude-mem/archives/
@@ -18,6 +18,10 @@ tools:
18
18
  permissionMode: bypassPermissions
19
19
  ---
20
20
 
21
+ ## Mandatory Sensitive Compatibility Paths
22
+
23
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, treat the old `/tmp` wrapper as legacy fallback only. Codex-native `.codex/**` edits stay direct, and Claude Code `bypassPermissions` can write `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` directly on v2.1.121+, with broader protected-path coverage on v2.1.126+.
24
+
21
25
  You are a task management specialist that proactively manages TODO items and reminds users of pending tasks.
22
26
 
23
27
  ## Capabilities
@@ -226,6 +226,16 @@
226
226
  ],
227
227
  "description": "Advisory pre-processing of user input — skill matching hints and intent analysis"
228
228
  },
229
+ {
230
+ "matcher": "*",
231
+ "hooks": [
232
+ {
233
+ "type": "command",
234
+ "command": "bash .codex/hooks/scripts/r007-r008-drift-advisor.sh"
235
+ }
236
+ ],
237
+ "description": "Proactive R007/R008 drift advisory — checks last assistant turn for identification omission (#1389)"
238
+ },
229
239
  {
230
240
  "matcher": "*",
231
241
  "hooks": [
@@ -65,7 +65,7 @@ for agent_type in "${!FAILURE_COUNTS[@]}"; do
65
65
  action_type="augment"
66
66
  fi
67
67
 
68
- failure_rate=$(awk "BEGIN {printf \"%.2f\", $count/$total}")
68
+ failure_rate=$(awk "BEGIN {printf \"%.2f\", $count/$total}" 2>/dev/null || echo "0.00")
69
69
  description="Agent '${agent_type}' failed ${count}/${total} times (${failure_rate} failure rate) in session"
70
70
 
71
71
  escaped_agent_type=$(_sql_escape "$agent_type")
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env bash
2
+ # r007-r008-drift-advisor.sh — UserPromptSubmit hook: proactive R007/R008 drift advisory.
3
+ #
4
+ # Inspects the last completed assistant turn in the session transcript before
5
+ # the next response. If the previous turn missed the R007 identity header or an
6
+ # R008 tool prefix, emit a stderr advisory. Advisory-only: never blocks.
7
+
8
+ set -euo pipefail
9
+
10
+ input=$(cat)
11
+
12
+ if [ "${OMCODEX_R007_ADVISOR:-}" = "off" ]; then
13
+ echo "$input"
14
+ exit 0
15
+ fi
16
+
17
+ if ! command -v jq >/dev/null 2>&1; then
18
+ echo "$input"
19
+ exit 0
20
+ fi
21
+
22
+ session_id=$(echo "$input" | jq -r '.session_id // empty' 2>/dev/null)
23
+ transcript_path=$(echo "$input" | jq -r '.transcript_path // .transcriptPath // empty' 2>/dev/null)
24
+
25
+ if [ -z "$transcript_path" ] && [ -n "$session_id" ]; then
26
+ transcript_base="${OMCODEX_TRANSCRIPT_BASE:-}"
27
+ if [ -n "$transcript_base" ]; then
28
+ transcript_path="${transcript_base}/${session_id}.jsonl"
29
+ fi
30
+ fi
31
+
32
+ if [ -z "$transcript_path" ] || [ ! -f "$transcript_path" ]; then
33
+ echo "$input"
34
+ exit 0
35
+ fi
36
+
37
+ reverse_file() {
38
+ tail -r "$1" 2>/dev/null || tac "$1" 2>/dev/null || cat "$1"
39
+ }
40
+
41
+ last_assistant=""
42
+ while IFS= read -r line; do
43
+ role=$(echo "$line" | jq -r '.role // .message.role // empty' 2>/dev/null) || continue
44
+ if [ "$role" = "assistant" ]; then
45
+ last_assistant="$line"
46
+ break
47
+ fi
48
+ done < <(reverse_file "$transcript_path")
49
+
50
+ if [ -z "$last_assistant" ]; then
51
+ echo "$input"
52
+ exit 0
53
+ fi
54
+
55
+ content_type=$(echo "$last_assistant" | jq -r '(.content // .message.content // []) | type' 2>/dev/null) || content_type="array"
56
+ if [ "$content_type" = "string" ]; then
57
+ content_raw=$(echo "$last_assistant" | jq -c '[{"type":"text","text":(.content // .message.content // "")}]' 2>/dev/null) || content_raw="[]"
58
+ else
59
+ content_raw=$(echo "$last_assistant" | jq -c '.content // .message.content // []' 2>/dev/null) || content_raw="[]"
60
+ fi
61
+
62
+ r007_violations=0
63
+ r008_violations=0
64
+
65
+ first_text=$(echo "$content_raw" | jq -r '[.[] | select(.type == "text")][0].text // empty' 2>/dev/null) || first_text=""
66
+ if [ -n "$first_text" ]; then
67
+ first_line=$(printf '%s' "$first_text" | head -1)
68
+ if ! printf '%s' "$first_line" | grep -qE '(^┌─ Agent:|^\[.+\])'; then
69
+ r007_violations=$((r007_violations + 1))
70
+ fi
71
+ fi
72
+
73
+ content_length=$(echo "$content_raw" | jq 'length' 2>/dev/null) || content_length=0
74
+ i=0
75
+ while [ "$i" -lt "$content_length" ]; do
76
+ block_type=$(echo "$content_raw" | jq -r ".[$i].type // empty" 2>/dev/null) || {
77
+ i=$((i + 1))
78
+ continue
79
+ }
80
+
81
+ if [ "$block_type" = "tool_use" ] || [ "$block_type" = "tool_call" ]; then
82
+ has_prefix=false
83
+ if [ "$i" -gt 0 ]; then
84
+ prev_type=$(echo "$content_raw" | jq -r ".[$((i - 1))].type // empty" 2>/dev/null) || true
85
+ if [ "$prev_type" = "text" ]; then
86
+ prev_text=$(echo "$content_raw" | jq -r ".[$((i - 1))].text // empty" 2>/dev/null) || true
87
+ if printf '%s' "$prev_text" | grep -qE '\[.+\]\[.+\] ?(→|->|—>) ?(Tool|Target):'; then
88
+ has_prefix=true
89
+ fi
90
+ fi
91
+ fi
92
+ if [ "$has_prefix" = "false" ]; then
93
+ r008_violations=$((r008_violations + 1))
94
+ fi
95
+ fi
96
+
97
+ i=$((i + 1))
98
+ done
99
+
100
+ if [ "$r007_violations" -gt 0 ] || [ "$r008_violations" -gt 0 ]; then
101
+ printf '[R007/R008 Advisory] Previous assistant turn missed identification (R007 header=%d, R008 prefix=%d). Start this response with the ┌─ Agent: block and prefix tool calls with [agent][model] → Tool:.\n' \
102
+ "$r007_violations" "$r008_violations" >&2
103
+ fi
104
+
105
+ echo "$input"
106
+ exit 0
@@ -14,10 +14,14 @@ echo "--- [Session Environment Check] ---" >&2
14
14
  # Check codex CLI availability
15
15
  CODEX_STATUS="unavailable"
16
16
  if command -v codex >/dev/null 2>&1; then
17
- if [ -n "${OPENAI_API_KEY:-}" ]; then
17
+ CODEX_AUTH_FILE="${CODEX_HOME:-$HOME/.codex}/auth.json"
18
+
19
+ if [ -n "${OPENAI_API_KEY:-}" ] || [ -n "${CODEX_API_KEY:-}" ]; then
18
20
  CODEX_STATUS="available (authenticated)"
21
+ elif [ -s "$CODEX_AUTH_FILE" ]; then
22
+ CODEX_STATUS="available (authenticated via stored login)"
19
23
  else
20
- CODEX_STATUS="installed but OPENAI_API_KEY not set"
24
+ CODEX_STATUS="installed (auth may be managed via \`codex login\`)"
21
25
  fi
22
26
  fi
23
27
 
@@ -10,6 +10,21 @@
10
10
  | Caching | Same data accessed repeatedly | Cache file contents, reuse search results |
11
11
  | Lazy Loading | Large datasets, partial use | Read only needed files, stream results |
12
12
 
13
+ ### Capability-Aware Tool Scheduling
14
+
15
+ When dispatching parallel tool calls, consider per-tool capabilities to optimize scheduling:
16
+
17
+ | Capability | Parallelizable? | Example |
18
+ |-----------|----------------|---------|
19
+ | Read-only, no side effects | Yes | Read, Glob, Grep |
20
+ | Write with independent targets | Yes | Write(file-A) + Write(file-B) |
21
+ | Write with shared target | No | Sequential edits to same file |
22
+ | External with rate limits | Throttle | WebFetch, API calls |
23
+
24
+ This aligns with R009 (parallel execution) detection criteria and extends it with tool-level scheduling awareness.
25
+
26
+ Inspired by [ouroboros PR #353](https://github.com/Q00/ouroboros/pull/353) capability graph pattern.
27
+
13
28
  ## Token Optimization
14
29
 
15
30
  - Include only necessary info, remove duplicates, use summaries
@@ -22,6 +22,36 @@ Before declaring any task `[Done]`, verify completion against task-type-specific
22
22
 
23
23
  Before [Done]: (1) Verify ACTUAL outcome not just attempt — "ran command" ≠ "succeeded". (2) Check task-type criteria above. (3) No unchecked items. (4) Would bet $100 it's complete.
24
24
 
25
+ ## Diagnostic Hypothesis Verification
26
+
27
+ When a failure diagnosis would cause a permanent workflow, rule, template, or release-process change, the diagnosis must be treated as a hypothesis until it is directly verified.
28
+
29
+ Required steps:
30
+
31
+ 1. Capture the concrete symptom and the proposed root cause separately.
32
+ 2. Gather direct evidence for the root cause from the authoritative source: command output, CI logs, registry response, source file, or API result.
33
+ 3. Test or falsify at least one plausible alternative when the change affects shared release or verification infrastructure.
34
+ 4. Record the verified cause in the commit, issue comment, or release note before merging the permanent change.
35
+
36
+ Examples:
37
+
38
+ | Hypothesis | Required evidence before changing shared workflow |
39
+ |------------|---------------------------------------------------|
40
+ | "npm publish failed because provenance is incompatible" | Registry error details showing provenance rejection, not just an initial `E403` |
41
+ | "CI cannot find a file because it is generated locally" | Clean checkout result proving the file is untracked or absent |
42
+ | "A test is flaky enough to skip" | Repeated-run evidence plus a tracked fix issue; skip alone is not completion |
43
+
44
+ ## Test-Skip Is Not Completion
45
+
46
+ 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.
47
+
48
+ Before a task can be declared done after a test skip or threshold reduction:
49
+
50
+ 1. The underlying failure must have a linked issue, owner, and reproduction command.
51
+ 2. The skipped scope must be named precisely, not hidden behind a broad suite skip.
52
+ 3. The release or PR summary must state that verification is reduced.
53
+ 4. A follow-up must restore the test or remove the threshold reduction before the related work is considered fully complete.
54
+
25
55
  ## Optional: Quantitative Evidence
26
56
 
27
57
  For agent, skill, or workflow changes, completion evidence MAY include `agent-eval-framework` metrics:
@@ -40,6 +40,8 @@ When CI failure, process gap, or repeatable system defect is found:
40
40
  2. Register GitHub issue (trackable improvement item)
41
41
  3. Both required — memory alone is NOT sufficient for system-level defects
42
42
 
43
+ > Auto-register directive: genuine defects and process gaps surfaced during release workflows, including `post-release-followup`, must be registered as GitHub issues automatically without asking for confirmation. Only code-changing immediate-action items require user confirmation. Pure cosmetic or subjective notes are excluded.
44
+
43
45
  ### Adaptive Harness Integration
44
46
 
45
47
  When repeating agent failures or suboptimal routing is detected:
@@ -11,6 +11,7 @@ oh-my-customcodex uses an **advisory-first enforcement model**. Most rules are e
11
11
  | Tier | Mechanism | Rules | Behavior |
12
12
  |------|-----------|-------|----------|
13
13
  | Hard Block | PreToolUse hook, exit 2 | stage-blocker, dev-server tmux, rule-deletion-guard | Prevents tool execution |
14
+ | Conversation Block | PostToolUse hook, exit 2 + `continueOnBlock` | stuck-detector, context-budget-advisor, cost-cap-advisor | Feeds high-signal recovery guidance back to the model and continues the turn |
14
15
  | Soft Block | Stop hook prompt | R011 session-end saves | Auto-performs then approves |
15
16
  | Advisory | PostToolUse hooks | R007, R008, R009, R010, R018 | Warns via stderr, never blocks |
16
17
  | Prompt-based | AGENTS.md + rules/ + PostCompact | All MUST rules | Behavioral guidance in context |
@@ -56,6 +56,23 @@ Reconfirm when:
56
56
  - the operation becomes history-rewriting or destructive (`--force`, rebase, reset, tag overwrite)
57
57
  - the user narrows or revokes the earlier approval
58
58
 
59
+ ## Destructive Operation Approval Persistence
60
+
61
+ The Git Push Continuation pattern generalizes to repeated destructive operations within the same session when the user already gave explicit approval for the same category and target. Examples: `supabase db push`, `terraform apply`, `kubectl delete`, bulk file deletes, and database migrations.
62
+
63
+ Scope: once the user explicitly approves category C against target T in a session, follow-up operations of the same C and same T do not require re-confirmation. Still emit an advisory warning. Different categories or targets require fresh confirmation.
64
+
65
+ | Scenario | Behavior |
66
+ |----------|----------|
67
+ | First explicit approval for category C, target T | Proceed with advisory warning |
68
+ | Follow-up in same session, same C + same T | Do not re-confirm |
69
+ | Different category or target | Ask for fresh approval |
70
+ | Runtime still prompts | Explain that model guidance cannot suppress platform permission prompts |
71
+
72
+ R001-listed catastrophic git operations (`git reset --hard`, `git clean -fd`, `git push --force` to shared branches, `git branch -D` with unmerged commits) are excluded. They always require explicit per-invocation approval.
73
+
74
+ Boundary: this rule governs model behavior only. It cannot suppress Codex/Claude runtime auto-mode permission prompts. For genuine prompt suppression on a repeated destructive command, surface the scoped settings/permission-rule workaround for the specific command instead of re-asking the same high-level question.
75
+
59
76
  ## Structured Question Failure Discipline
60
77
 
61
78
  When a structured question surface (`AskUserQuestion`, `omx question`, or native structured input) is rejected, unavailable, or malformed, the orchestrator must not silently downgrade to a different workflow.
@@ -35,10 +35,24 @@ Also run: mgr-claude-code-bible:verify (official spec compliance)
35
35
  | Missing pages | Source entities without wiki pages → run `/omcustomcodex:wiki` |
36
36
  | Stale pages | Source modification date newer than wiki `updated` field → run `/omcustomcodex:wiki ingest <path>` |
37
37
  | Broken cross-refs | Wiki links pointing to non-existent pages → run `/omcustomcodex:wiki lint` |
38
- | index.md accuracy | Wiki index page count matches actual page count |
38
+ | wiki/index.yaml accuracy | Wiki index page count and indexed file entries match actual page files |
39
39
 
40
40
  Wiki verification is also enforced by CI (`.github/workflows/wiki-sync.yml`).
41
41
 
42
+ ### Structural Migration Verification
43
+
44
+ Directory restructuring, template flattening, branch-strategy changes, generated-file relocation, and package-surface moves require a clean-checkout migration audit before they are considered complete.
45
+
46
+ Required checks:
47
+
48
+ 1. Run the relevant verification from a clean checkout or isolated worktree, not only from a developer tree with untracked files.
49
+ 2. Confirm old paths are no longer referenced by CI, docs validators, template validators, install/init output, and release workflows.
50
+ 3. Confirm new paths are tracked by git and present in packaged templates or generated output where users will rely on them.
51
+ 4. Verify allowlists, `.gitignore`, and template sync checks do not hide missing files.
52
+ 5. Add or update regression tests that fail on the old path assumption.
53
+
54
+ This section is specifically intended to catch migrations where local untracked files or stale CI path references make a release appear healthy while a clean checkout fails.
55
+
42
56
  ### Phase 4: Fix all discovered issues
43
57
 
44
58
  ### Phase 5: Commit via mgr-gitnerd
@@ -182,7 +182,7 @@ When the orchestrator or intent-detection detects a research/information gatheri
182
182
 
183
183
  When routing skills detect a code generation task and codex is available:
184
184
 
185
- 1. **Check availability**: Verify codex CLI via `/tmp/.codex-env-status-*`
185
+ 1. **Check availability**: Verify the codex CLI directly (`command -v codex`) or via current session diagnostics
186
186
  2. **If available + new file creation**: Suggest hybrid workflow
187
187
  3. **Hybrid pattern**:
188
188
  - codex-exec generates initial code (fast, broad generation)
@@ -66,8 +66,8 @@ Map each approved item to the appropriate subagent by `targetType`:
66
66
  | targetType | Agent | Action |
67
67
  |------------|-------|--------|
68
68
  | agent | mgr-creator | Modify agent frontmatter/body |
69
- | skill | Matching domain expert | Revise skill SKILL.md |
70
- | routing | general-purpose | Update routing patterns |
69
+ | skill | mgr-creator | Revise skill SKILL.md (R010 Protected Paths) |
70
+ | routing | mgr-creator | Update routing patterns (R010 Protected Paths) |
71
71
  | model-escalation | general-purpose | Update model field in agent frontmatter |
72
72
 
73
73
  Spawn agents in parallel (max 4 per R009). Each agent receives:
@@ -3,7 +3,6 @@ name: omcustomcodex:feedback
3
3
  description: Submit feedback about oh-my-customcodex (supports anonymous submission)
4
4
  scope: harness
5
5
  user-invocable: true
6
- disable-model-invocation: true
7
6
  argument-hint: "[description or leave empty for interactive] [--anonymous]"
8
7
  ---
9
8
 
@@ -201,5 +200,6 @@ Submit manually when connectivity is available:
201
200
  - Route A creates a visible GitHub issue attributed to the user's gh account
202
201
  - When `--anonymous` is used, the title is prefixed with `[Anonymous Feedback]` and the `anonymous` label is added
203
202
  - Fallback ensures no feedback is silently lost even in offline environments
204
- - `disable-model-invocation: true` ensures this skill only runs when explicitly invoked by the user
203
+ - This skill is invocable by BOTH the user (`/omcustomcodex:feedback`) and the model (Skill tool). Model invocation enables session-end retrospective feedback drafting (#1385, #1386).
204
+ - The Phase 4A "Preview + confirmation" gate (steps 2-3) is the safety boundary: the model can draft a feedback issue but cannot create a public GitHub issue without explicit user confirmation.
205
205
  - Target repo is hardcoded to `baekenough/oh-my-customcodex` — feedback is always about the child package itself
@@ -63,6 +63,7 @@ Execute these steps to display available pipelines:
63
63
  - **Skill steps** (`skill: name`): Invoke via Skill tool — `Skill(skill: "{name}")`
64
64
  - **Prompt steps** (`prompt: text`): Execute the described action using appropriate agents/tools
65
65
  - **Foreach steps** (`foreach: collection`): Iterate over collection from previous step output
66
+ - **Parallel steps** (`parallel: [step1, step2]`): Execute contained steps concurrently using Agent tool. Each parallel step runs as an independent Agent. Max 4 concurrent per R009. Steps within a parallel block MUST be independent (no shared state, no sequential dependencies). Dependencies between parallel and non-parallel steps use `depends_on:` field.
66
67
  - **Permission mode**: When spawning agents, pass `mode: "bypassPermissions"` in the Agent tool call if the session uses bypassPermissions. Without explicit mode, CC defaults to `acceptEdits`.
67
68
  5. Report completion or failure
68
69
 
@@ -106,6 +107,49 @@ For release pipelines such as `auto-dev`, record an advisory token-spend estimat
106
107
 
107
108
  If exact usage events are available from the runtime, prefer them and set `token_source: "runtime"`. Otherwise set `token_source: "estimated"`. Missing spend data must not block a release; it should be reported as an observability gap.
108
109
 
110
+ ## Parallel Execution
111
+
112
+ Pipeline steps can be grouped for parallel execution:
113
+
114
+ ```yaml
115
+ steps:
116
+ - name: phase-1
117
+ parallel:
118
+ - name: task-a
119
+ skill: skill-a
120
+ description: First independent task
121
+ - name: task-b
122
+ skill: skill-b
123
+ description: Second independent task
124
+ - name: phase-2
125
+ skill: next-step
126
+ depends_on: phase-1
127
+ ```
128
+
129
+ ### Parallel Rules
130
+
131
+ - Max 4 concurrent steps per parallel block (R009 hard cap)
132
+ - Steps within a parallel block MUST be independent
133
+ - `depends_on` enforces ordering between blocks
134
+ - Each parallel step is spawned as a separate Agent tool call in the SAME message
135
+ - Preserve the session permission posture by forwarding `mode: "bypassPermissions"` when applicable
136
+ - If any parallel step fails with `error: halt-and-report`, all remaining steps in the block are cancelled
137
+ - State tracking records each parallel step individually
138
+
139
+ ### Parallel State Format
140
+
141
+ ```json
142
+ {
143
+ "name": "phase-1",
144
+ "type": "parallel",
145
+ "status": "running",
146
+ "children": [
147
+ {"name": "task-a", "status": "completed", "duration_ms": 5000},
148
+ {"name": "task-b", "status": "running"}
149
+ ]
150
+ }
151
+ ```
152
+
109
153
  ## Error Handling
110
154
 
111
155
  - Pipeline not found → list available pipelines with suggestion
@@ -19,11 +19,13 @@ Defines mandatory safety constraints for all pipeline, workflow, and iterative e
19
19
  | Max iterations | 3 | 5 | worker-reviewer-pipeline |
20
20
  | Max DAG nodes | 20 | 30 | dag-orchestration |
21
21
  | Max parallel agents | 4 | 5 | R009 (all pipelines) |
22
+ | Max parallel steps | 4 | 4 | pipeline parallel blocks |
22
23
  | Timeout per node | 300s | 600s | dag-orchestration nodes |
23
24
  | Timeout per pipeline | 900s | 1800s | worker-reviewer-pipeline |
24
25
  | Max retry count | 2 | 3 | Failure retry strategies |
25
26
  | Max PR improvement items | 20 | 50 | pr-auto-improve |
26
27
  | Max auto-improve items | 20 | 50 | omcodex:auto-improve |
28
+ | Max files per agent | 10 | 15 | All agent spawns (advisory) |
27
29
 
28
30
  ## Enforcement
29
31
 
@@ -82,6 +84,23 @@ When guards are triggered, they integrate with existing advisory systems:
82
84
  | Timeout approaching (80%) | → warn user, suggest early termination |
83
85
  | Hard cap hit | → force stop, report to user |
84
86
 
87
+ ## Task Granularity Guard
88
+
89
+ Advisory guard for agent task scope. When a single agent is assigned too many files, it becomes a bottleneck in parallel execution.
90
+
91
+ | Signal | Default | Action |
92
+ |--------|---------|--------|
93
+ | Files per agent > 10 | Advisory warning | Suggest splitting by layer/domain |
94
+ | Files per agent > 15 | Hard warning | Require explicit user override |
95
+
96
+ Display:
97
+ ```
98
+ [Guard] ⚠ Agent assigned {n} files (> 10) — consider splitting by layer
99
+ [Guard] 🛑 Agent assigned {n} files (> 15) — requires explicit override
100
+ ```
101
+
102
+ This integrates with R009 Adaptive Parallel Splitting: if a stalled agent is detected AND it was assigned > 10 files, the splitting recommendation is stronger.
103
+
85
104
  ## Guard Configuration
86
105
 
87
106
  Pipelines can override defaults (within hard caps):
@@ -157,6 +176,7 @@ Guard warnings appear inline:
157
176
  | omcodex:auto-improve | Auto-improve item count limits |
158
177
  | stuck-recovery | Guard triggers feed into stuck detection |
159
178
  | model-escalation | Repeated failures trigger escalation advisory |
179
+ | task-decomposition | Subtask file counts validated against granularity guard thresholds |
160
180
 
161
181
  ## Checkpoint Gate Integration
162
182
 
@@ -10,7 +10,7 @@ effort: medium
10
10
 
11
11
  ## Purpose
12
12
 
13
- After PR creation in the auto-dev release workflow, collect unaddressed findings and present actionable follow-up recommendations. The user chooses: execute now, register as issues, or skip.
13
+ After PR creation in the auto-dev release workflow, collect unaddressed findings and present actionable follow-up recommendations. Genuine defects and process gaps are registered as GitHub issues automatically. Only code-changing immediate-action items require user confirmation.
14
14
 
15
15
  ## Workflow
16
16
 
@@ -55,54 +55,56 @@ Remove duplicates (same issue referenced from multiple sources). Categorize:
55
55
  | **이슈 등록** | P3 이슈, LOW 검증 발견사항, 새 TODO, Medium PR 리뷰 발견사항 | 이슈로 등록 |
56
56
  | **참고** | 이미 추적 중인 이슈, 외관 관련 메모 | 건너뛰기 |
57
57
 
58
+ ### Auto-Register Genuine Defects (no-ask)
59
+
60
+ Before presenting the summary to the user, auto-register every "이슈 등록" item that is a genuine defect or process gap. No user confirmation is required for these.
61
+
62
+ Auto-register if any condition applies:
63
+ - Genuine defect: bug, regression, broken behavior, or incorrect output observed during verification
64
+ - Process gap: workflow hole, missing guard, or coverage gap surfaced by deep-verify or triage
65
+ - Coverage gap: missing test, documentation, or automation for a known scenario
66
+
67
+ Do not auto-register pure cosmetic/style preferences or subjective notes. When ambiguous, lean toward registering; missing a genuine defect costs a future session.
68
+
69
+ Use `gh issue create --repo baekenough/oh-my-customcodex` with `professor` plus a priority label. Default auto-registered items to `P3`; escalate to `P2` for MEDIUM+ severity.
70
+
58
71
  ### 3. Present to User
59
72
 
60
- Display follow-up summary:
73
+ Auto-register genuine defects first. Then display follow-up summary showing what was already registered and what still needs a decision:
61
74
 
62
75
  ```
63
76
  [Follow-up] {n}개 후속 작업 발견
64
77
 
78
+ ━━━ 자동 등록 완료 ({count}개) ━━━
79
+ ✓ #{issue_number} — {description} (이미 등록됨)
80
+
65
81
  ━━━ 즉시 실행 추천 ({count}개) ━━━
66
82
  1. {description} — 출처: {source}
67
83
  2. {description} — 출처: {source}
68
84
 
69
- ━━━ 이슈 등록 추천 ({count}개) ━━━
70
- 3. {description} — 출처: {source}
71
- 4. {description} — 출처: {source}
72
-
73
85
  ━━━ 참고 사항 ({count}개) ━━━
74
- 5. {description} — 이미 #{issue_number}로 추적 중
75
-
76
- 선택:
77
- [A] 추천대로 실행 (즉시 실행 + 이슈 등록)
78
- [B] 모두 즉시 실행
79
- [C] 모두 이슈 등록
80
- [D] 개별 선택 (항목별로 질문)
81
- [E] 건너뛰기
86
+ 3. {description} — 이미 #{issue_number}로 추적 중
87
+
88
+ 즉시 실행 항목 선택:
89
+ [A] 추천대로 실행 (즉시 실행 항목 모두 실행)
90
+ [B] 개별 선택 (항목별로 질문)
91
+ [C] 건너뛰기
82
92
  ```
83
93
 
84
- Use AskUserQuestion (or equivalent user prompt) to get the choice.
94
+ Use AskUserQuestion (or equivalent user prompt) only if there are "즉시 실행" items. If there are none, skip the prompt and complete automatically.
85
95
 
86
96
  ### 4. Process User Choice
87
97
 
88
98
  **Option A (추천대로)**:
89
99
  - "Immediate" items → delegate to appropriate specialist agents for execution
90
- - "Trackable" items create GitHub issues via `gh issue create`
100
+ - Trackable defect/process-gap items were already auto-registered
91
101
  - "Informational" items → skip
92
102
 
93
- **Option B (모두 즉시 실행)**:
94
- - All Immediate + Trackable items delegate to specialist agents
95
- - Follow implementation patterns from the release workflow
96
-
97
- **Option C (모두 이슈 등록)**:
98
- - All Immediate + Trackable items → `gh issue create` with appropriate labels
99
- - Label: `triage-needed` for the next workflow run; reserve `professor` for manual analysis requests
100
-
101
- **Option D (개별 선택)**:
102
- - For each item, ask: `[{n}] {description} — 실행(E) / 이슈(I) / 건너뛰기(S)?`
103
+ **Option B (개별 선택)**:
104
+ - For each immediate item, ask: `[{n}] {description} 실행(E) / 건너뛰기(S)?`
103
105
  - Process each per user choice
104
106
 
105
- **Option E (건너뛰기)**:
107
+ **Option C (건너뛰기)**:
106
108
  - Skip all follow-up actions
107
109
  - Complete workflow
108
110
 
@@ -118,21 +120,23 @@ Use AskUserQuestion (or equivalent user prompt) to get the choice.
118
120
 
119
121
  ## Issue Creation Template
120
122
 
121
- When creating follow-up issues:
123
+ For auto-registered genuine defects / process gaps:
122
124
 
123
125
  ```bash
124
126
  gh issue create \
127
+ --repo baekenough/oh-my-customcodex \
125
128
  --title "{간결한 설명}" \
126
- --body "## 출처\n\nv{version} 릴리즈 워크플로우에서 발견.\n\n## 컨텍스트\n\n{triage/verify에서의 상세 컨텍스트}\n\n## 권장 조치\n\n{권장 사항}" \
129
+ --body "## 출처\n\nv{version} 릴리즈 워크플로우에서 자동 등록.\n\n## 컨텍스트\n\n{triage/verify에서의 상세 컨텍스트}\n\n## 권장 조치\n\n{권장 사항}" \
127
130
  --label "professor"
128
131
  ```
129
132
 
130
- Add priority label (`P1`, `P2`, `P3`) based on categorization.
133
+ Add priority label (`P1`, `P2`, `P3`) based on categorization. Default for auto-registered items: `P3`; escalate to `P2` for MEDIUM+ severity.
131
134
 
132
135
  ## Notes
133
136
 
134
137
  - This skill runs in the main conversation context (via workflow skill step)
135
- - User interaction is expected this is NOT a fully automated step
138
+ - Genuine defect/process gap items are auto-registered as issues without user confirmation
139
+ - Only "즉시 실행" code-changing items require user confirmation
136
140
  - All file modifications delegated to specialist subagents per R010
137
141
  - Issue creation uses `gh` CLI directly (read-only operation pattern)
138
142
  - If no follow-up candidates found, report "No follow-up actions needed" and complete
@@ -35,6 +35,7 @@ A model allocation pattern that wraps implementation actions with stronger-model
35
35
  | Phase | Recommended Model | Rationale |
36
36
  |-------|------------------|-----------|
37
37
  | Pre-reasoning (analyze/plan) | opus | Complex architectural reasoning, edge case detection |
38
+ | Pre-reasoning (Opus 4.7) | opus47 | Opus 4.7 makes fewer tool calls and reasons more deeply; pre-reasoning phase should include explicit tool batch planning |
38
39
  | Action (implement/generate) | sonnet | Optimized for code generation, balanced cost |
39
40
  | Post-verification (review/test) | sonnet or haiku | Structural verification, checklist validation |
40
41
 
@@ -77,3 +78,23 @@ This pattern is used by:
77
78
  | Opus for everything | Wasteful, slow | Reserve opus for reasoning-heavy phases |
78
79
  | Haiku for planning | Insufficient depth | Use opus for complex analysis |
79
80
  | Skipping verification | False completion risk | Always include post-verification phase |
81
+ | Forcing frequent tool calls on Opus 4.7 | Fights model's natural reasoning-first tendency | Let Opus 4.7 reason; batch tool calls in pre-reasoning |
82
+
83
+ ## Opus 4.7 Considerations
84
+
85
+ Opus 4.7 exhibits a distinct behavioral pattern: fewer tool calls with deeper reasoning per call. This affects how the sandwich pattern is applied:
86
+
87
+ | Aspect | Opus 4.6 | Opus 4.7 |
88
+ |--------|----------|----------|
89
+ | Tool call frequency | Moderate | Lower |
90
+ | Reasoning depth per call | Standard | Deeper |
91
+ | Pre-reasoning benefit | Plan what to check | Plan explicit tool batch — model will under-call if not guided |
92
+
93
+ ### Pre-reasoning Adjustment for Opus 4.7
94
+
95
+ When using Opus 4.7 in the pre-reasoning phase:
96
+ 1. **Explicitly enumerate tools needed** — Opus 4.7 may skip tool calls it deems unnecessary
97
+ 2. **Batch tool-call plans upfront** — structure the action phase with a concrete tool sequence
98
+ 3. **Prefer fewer, richer tool calls** — align with the model's natural tendency
99
+
100
+ Reference: [Best practices for using Claude Opus 4.7 with Claude Code](https://claude.com/blog/best-practices-for-using-claude-opus-4-7-with-claude-code)
@@ -131,21 +131,21 @@ Apply semantic versioning to each release group in sequence:
131
131
  For each release group, produce:
132
132
 
133
133
  ```markdown
134
- ## vX.Y.Z Release Plan
134
+ ## vX.Y.Z 릴리즈 계획
135
135
 
136
- **Estimated scope**: {XS|S|M|L total} | **Issues**: N | **Parallelizable**: N
136
+ **예상 범위**: {XS|S|M|L 합계} | **이슈**: N | **병렬 가능**: N
137
137
 
138
- | # | Priority | Size | Title | Dependencies |
139
- |---|----------|------|-------|-------------|
140
- | #NNN | P2 | S | issue title | none |
141
- | #NNN | P1 | XS | issue title | none |
138
+ | # | 우선순위 | 규모 | 제목 | 의존성 |
139
+ |---|----------|------|------|--------|
140
+ | #NNN | P2 | S | 이슈 제목 | 없음 |
141
+ | #NNN | P1 | XS | 이슈 제목 | 없음 |
142
142
 
143
- ### Implementation Order
144
- 1. #NNN — {one-line description} (suggested agent: {agent-type})
145
- 2. #NNN — {one-line description} (suggested agent: {agent-type})
143
+ ### 구현 순서
144
+ 1. #NNN — {한줄 설명} (권장 에이전트: {agent-type})
145
+ 2. #NNN — {한줄 설명} (권장 에이전트: {agent-type})
146
146
 
147
- ### Notes
148
- - {any dependency constraints, breaking changes, or risks}
147
+ ### 참고 사항
148
+ - {의존성 제약, 호환성 이슈, 리스크 }
149
149
  ```
150
150
 
151
151
  ### Completeness Check
@@ -159,18 +159,18 @@ Before generating the plan document, verify:
159
159
  If any issue is missing from release bins, halt and report the discrepancy.
160
160
 
161
161
  **Agent suggestion heuristic**:
162
- | Issue domain | Suggested agent |
163
- |--------------|----------------|
164
- | Docs, AGENTS.md, README | arch-documenter |
165
- | Rules (R00x) | mgr-claude-code-bible |
166
- | Agents (.codex/agents/) | mgr-creator / mgr-updater |
167
- | Skills (.codex/skills/) | mgr-creator / mgr-updater |
162
+ | 이슈 도메인 | 권장 에이전트 |
163
+ |-------------|--------------|
164
+ | 문서, AGENTS.md, README | arch-documenter |
165
+ | 규칙 (R00x) | mgr-claude-code-bible |
166
+ | 에이전트 (.codex/agents/) | mgr-creator / mgr-updater |
167
+ | 스킬 (.codex/skills/) | mgr-creator / mgr-updater |
168
168
  | CI, GitHub Actions | mgr-gitnerd |
169
169
  | TypeScript/Node | lang-typescript-expert |
170
170
  | Python | lang-python-expert |
171
171
  | Go | lang-golang-expert |
172
- | Testing | qa-engineer |
173
- | General fix | general-purpose |
172
+ | 테스트 | qa-engineer |
173
+ | 일반 수정 | general-purpose |
174
174
 
175
175
  ### Phase 7: Output
176
176
 
@@ -184,16 +184,16 @@ Use today's date and the first planned release version in the filename.
184
184
 
185
185
  File header format:
186
186
  ```markdown
187
- # Release PlanGenerated YYYY-MM-DD
187
+ # 릴리즈 계획 — YYYY-MM-DD 생성
188
188
 
189
- > Source: open issues labeled `verify-done` as of YYYY-MM-DD
190
- > Issues excluded (already in open PRs): #NNN, #NNN
189
+ > 출처: YYYY-MM-DD 기준 `verify-done` 라벨 오픈 이슈
190
+ > 제외된 이슈 (이미 오픈 PR에 포함): #NNN, #NNN
191
191
 
192
- {release groups follow}
192
+ {릴리즈 그룹}
193
193
 
194
- ## Summary
195
- | Release | Issues | Size | P1 | P2 | P3 |
196
- |---------|--------|------|----|----|-----|
194
+ ## 요약
195
+ | 릴리즈 | 이슈 | 규모 | P1 | P2 | P3 |
196
+ |--------|---------|------|----|----|-----|
197
197
  | vX.Y.Z | N | S | 0 | 3 | 1 |
198
198
  ```
199
199
 
@@ -43,15 +43,16 @@ Search the [skills.sh](https://skills.sh/) marketplace for reusable AI agent ski
43
43
  ├── Verify installation in .codex/skills/
44
44
  └── Check installed SKILL.md frontmatter
45
45
 
46
- 4. Post-install adaptation
47
- ├── Review installed SKILL.md frontmatter
48
- ├── Add oh-my-customcodex fields if missing:
49
- │ ├── user-invocable: true|false
50
- │ ├── model-invocable (if not present)
51
- │ └── argument-hint (if applicable)
52
- └── Add source metadata:
53
- ├── source-type: skills-sh
54
- └── source-origin: <owner/repo>
46
+ 4. Post-install adaptation (delegate to mgr-creator per R010 Protected Paths)
47
+ ├── Delegate SKILL.md frontmatter adaptation to mgr-creator:
48
+ ├── Add oh-my-customcodex fields if missing:
49
+ ├── user-invocable: true|false
50
+ ├── model-invocable (if not present)
51
+ └── argument-hint (if applicable)
52
+ └── Add source metadata:
53
+ ├── source-type: skills-sh
54
+ └── source-origin: <owner/repo>
55
+ └── mgr-creator validates R006 frontmatter compliance
55
56
 
56
57
  5. Ontology sync
57
58
  ├── Notify: run "omcodex ontology build" to register new skill
@@ -62,6 +62,13 @@ python:
62
62
  ## Workflow
63
63
 
64
64
  ```
65
+ 0. Self-update oh-my-customcodex package
66
+ ├── Check npm registry for latest version
67
+ ├── Compare with current installed version
68
+ ├── Run "npm install -g oh-my-customcodex@<latest>" if outdated
69
+ ├── Skip automatically for npx invocations (npx always fetches latest)
70
+ └── Failure is non-blocking — continue to Step 1 regardless
71
+
65
72
  1. Identify external resources
66
73
  ├── Scan index.yaml files
67
74
  ├── Find source.type = "external"
@@ -306,6 +306,8 @@ pages:
306
306
  summary: Core design philosophy mapping software compilation to agent system
307
307
  ```
308
308
 
309
+ `meta.total_pages` counts indexed content pages only. Exclude navigation and landing pages stored directly under `wiki/` such as `Home.md`, `_Sidebar.md`, and `Skills.md`; verification scripts compare `total_pages` against markdown files below `wiki/*/`.
310
+
309
311
  Advantages over markdown index:
310
312
  - Machine-parseable: LLMs and scripts can filter by category, search by title
311
313
  - Structured: each entry has file, title, summary as discrete fields
@@ -2,6 +2,62 @@
2
2
 
3
3
  This guide records Claude Code release-note impact that affects the Claude compatibility template. The Codex-native runtime still uses `.codex/**` and OMX as the primary surface.
4
4
 
5
+ ## v2.1.150
6
+
7
+ Published: 2026-05-23.
8
+
9
+ Source: upstream oh-my-customcode #1220, Codex port #1380.
10
+
11
+ | Change | Impact on oh-my-customcodex | Action |
12
+ |--------|------------------------------|--------|
13
+ | Internal infrastructure improvements only | No user-facing Claude compatibility behavior changed for templates, agents, skills, hooks, or rules. | No package change. Record the no-op review so release-monitor ports can be closed with evidence instead of staying open. |
14
+
15
+ ## v2.1.149
16
+
17
+ Published: 2026-05-22.
18
+
19
+ Source: upstream oh-my-customcode #1219, Codex port #1379.
20
+
21
+ | Change | Impact on oh-my-customcodex | Action |
22
+ |--------|------------------------------|--------|
23
+ | `/usage` now breaks limit usage down by skills, subagents, plugins, and MCP servers | Useful diagnostic vocabulary for Claude compatibility sessions; Codex-native reporting still comes from OMX status, trace, and local CLI surfaces. | No runtime change. Keep cost and status reports source-specific instead of treating Claude `/usage` output as Codex evidence. |
24
+ | `/diff` detail view supports keyboard scrolling and Markdown renders GFM task-list checkboxes | Improves Claude terminal UX for reviews and release notes. | No template change. Continue writing normal Markdown task lists; Claude now renders them more faithfully. |
25
+ | Enterprise `allowAllClaudeAiMcps` can load claude.ai cloud MCP connectors next to managed MCP config | Only affects managed Claude enterprise workspaces. | Document as Claude-template compatibility only; Codex MCP routing remains configured through Codex/OMX config. |
26
+ | PowerShell `cd` aliases, wildcard prefix rules, and stale directory-variable tracking were hardened | Permission-analysis fixes reduce Claude compatibility sandbox escapes. | No Codex shell-policy change. Do not copy PowerShell-specific assumptions into Codex Bash approvals. |
27
+ | Git worktree sandbox allowlists now cover only the shared `.git` directory, not the whole main repo | Aligns with this repo's preference for isolated worktrees during auto-dev sweeps. | Keep release and issue-sweep work in clean worktrees and verify dirty-tree boundaries explicitly. |
28
+ | Bash `find` no longer exhausts macOS file/vnode tables on large trees | Large repository scans are safer for Claude compatibility sessions. | Still prefer `rg`/targeted `find` in Codex sessions and keep scans bounded. |
29
+ | `/ultraplan` and remote sessions no longer fail when there are no real uncommitted changes | Reduces false blockers for clean-tree planning. | No package change; continue verifying `git status` before declaring clean boundaries. |
30
+ | `otelHeadersHelper` reports path-with-spaces failures in `/doctor` and debug logs | Helps diagnose local telemetry setup drift. | Keep hook and doctor guidance path-safe, especially under workspace paths that may contain spaces. |
31
+
32
+ ## v2.1.148
33
+
34
+ Published: 2026-05-22.
35
+
36
+ Source: upstream oh-my-customcode #1218, Codex port #1378.
37
+
38
+ | Change | Impact on oh-my-customcodex | Action |
39
+ |--------|------------------------------|--------|
40
+ | Fixed a v2.1.147 regression where the Bash tool returned exit code 127 for every command for some users | Claude compatibility sessions on affected versions may have produced false command-not-found failures. | Treat suspicious all-command `127` reports from Claude v2.1.147 as environment/version evidence to verify before changing repo code. No Codex runtime change. |
41
+
42
+ ## v2.1.147
43
+
44
+ Published: 2026-05-21.
45
+
46
+ Source: upstream oh-my-customcode #1216 and #1222, Codex ports #1376 and #1381.
47
+
48
+ | Change | Impact on oh-my-customcodex | Action |
49
+ |--------|------------------------------|--------|
50
+ | Added the `Workflow` tool for deterministic multi-agent orchestration, gated by `CLAUDE_CODE_WORKFLOWS=1` | This overlaps conceptually with OMX `$pipeline`, but it is a Claude-native tool surface. | Do not replace Codex/OMX pipeline routing with Claude Workflow. Mention the env gate when documenting Claude-template sessions. |
51
+ | Pinned background sessions stay alive when idle, restart in place for updates, and are shed after non-pinned sessions under memory pressure | Claude compatibility background agents are more durable. | Keep Codex-native child-agent and OMX session lifecycle separate; pinned Claude sessions are not proof of active OMX work. |
52
+ | `/simplify` was renamed to `/code-review`; it now reports correctness bugs at chosen effort levels and the old cleanup-and-fix behavior was removed | Potential naming confusion with this package's `dev-review` and `dev-refactor` skills. | Keep package commands as `dev-review` for best-practice review and `dev-refactor` for cleanup/refactor. Do not add a dead `simplify` route. |
53
+ | REPL and Workflow sandboxes were hardened against prototype-pollution and thenable-based escapes | Security hardening applies to Claude runtime internals. | No package code change; keep security reviews focused on repo-owned hooks, scripts, and generated templates. |
54
+ | Auto-updater retries transient network failures and reports specific error categories plus current version on update failure | Helps distinguish transient update problems from package regressions. | For publish/update triage, verify registry token, workflow logs, and current version before making permanent workflow edits. |
55
+ | Large diff rendering and prompt-history duplicate handling improved | UX-only for Claude compatibility sessions. | No template change. |
56
+ | Enterprise login restrictions are enforced against third-party-provider and API-key sessions | Managed Claude environments behave more consistently. | No Codex auth change. Treat enterprise login policy as external environment state. |
57
+ | Headless/SDK unknown slash commands now show an error instead of silently doing nothing | Broken generated commands should be easier to detect. | Keep template command names explicit and test packaged command references. |
58
+ | Plugin agents declaring multiple `Agent(...)` tool types no longer drop all but the last one | Compatibility templates with multi-agent tool declarations are safer. | Continue using canonical, explicit agent names in package docs and frontmatter. |
59
+ | Hook `if` conditions such as `PowerShell(git push*)` were fixed to match as intended | Claude hook compatibility improved. | Keep Codex hook routing Bash-first unless a hook is explicitly PowerShell-specific. |
60
+
5
61
  ## v2.1.146
6
62
 
7
63
  Published: 2026-05-21.
@@ -1,11 +1,11 @@
1
1
  {
2
- "version": "0.5.2",
2
+ "version": "0.5.4",
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-05-20T00:00:00.000Z",
8
+ "lastUpdated": "2026-05-24T00:00:00.000Z",
9
9
  "components": [
10
10
  {
11
11
  "name": "rules",