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.
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/agents/mgr-claude-code-bible.md +4 -0
- package/templates/.claude/agents/mgr-sauron.md +4 -0
- package/templates/.claude/agents/mgr-supplier.md +4 -0
- package/templates/.claude/agents/mgr-updater.md +4 -0
- package/templates/.claude/agents/sys-memory-keeper.md +10 -0
- package/templates/.claude/agents/sys-naggy.md +4 -0
- package/templates/.claude/hooks/hooks.json +10 -0
- package/templates/.claude/hooks/scripts/feedback-collector.sh +1 -1
- package/templates/.claude/hooks/scripts/r007-r008-drift-advisor.sh +106 -0
- package/templates/.claude/hooks/scripts/session-env-check.sh +6 -2
- package/templates/.claude/rules/MAY-optimization.md +15 -0
- package/templates/.claude/rules/MUST-completion-verification.md +30 -0
- package/templates/.claude/rules/MUST-continuous-improvement.md +2 -0
- package/templates/.claude/rules/MUST-enforcement-policy.md +1 -0
- package/templates/.claude/rules/MUST-intent-transparency.md +17 -0
- package/templates/.claude/rules/MUST-sync-verification.md +15 -1
- package/templates/.claude/skills/codex-exec/SKILL.md +1 -1
- package/templates/.claude/skills/omcodex-auto-improve/SKILL.md +2 -2
- package/templates/.claude/skills/omcodex-feedback/SKILL.md +2 -2
- package/templates/.claude/skills/pipeline/SKILL.md +44 -0
- package/templates/.claude/skills/pipeline-guards/SKILL.md +20 -0
- package/templates/.claude/skills/post-release-followup/SKILL.md +35 -31
- package/templates/.claude/skills/reasoning-sandwich/SKILL.md +21 -0
- package/templates/.claude/skills/release-plan/SKILL.md +26 -26
- package/templates/.claude/skills/skills-sh-search/SKILL.md +10 -9
- package/templates/.claude/skills/update-external/SKILL.md +7 -0
- package/templates/.claude/skills/wiki/SKILL.md +2 -0
- package/templates/guides/claude-code/15-version-compatibility.md +56 -0
- package/templates/manifest.json +2 -2
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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.
|
|
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
|
|
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 |
|
|
70
|
-
| routing |
|
|
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
|
-
- `
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
-
-
|
|
100
|
+
- Trackable defect/process-gap items were already auto-registered
|
|
91
101
|
- "Informational" items → skip
|
|
92
102
|
|
|
93
|
-
**Option B (
|
|
94
|
-
-
|
|
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
|
|
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
|
-
|
|
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} 릴리즈 워크플로우에서
|
|
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
|
-
-
|
|
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
|
|
134
|
+
## vX.Y.Z 릴리즈 계획
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
**예상 범위**: {XS|S|M|L 합계} | **이슈**: N | **병렬 가능**: N
|
|
137
137
|
|
|
138
|
-
| # |
|
|
139
|
-
|
|
140
|
-
| #NNN | P2 | S |
|
|
141
|
-
| #NNN | P1 | XS |
|
|
138
|
+
| # | 우선순위 | 규모 | 제목 | 의존성 |
|
|
139
|
+
|---|----------|------|------|--------|
|
|
140
|
+
| #NNN | P2 | S | 이슈 제목 | 없음 |
|
|
141
|
+
| #NNN | P1 | XS | 이슈 제목 | 없음 |
|
|
142
142
|
|
|
143
|
-
###
|
|
144
|
-
1. #NNN — {
|
|
145
|
-
2. #NNN — {
|
|
143
|
+
### 구현 순서
|
|
144
|
+
1. #NNN — {한줄 설명} (권장 에이전트: {agent-type})
|
|
145
|
+
2. #NNN — {한줄 설명} (권장 에이전트: {agent-type})
|
|
146
146
|
|
|
147
|
-
###
|
|
148
|
-
- {
|
|
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
|
-
|
|
|
163
|
-
|
|
164
|
-
|
|
|
165
|
-
|
|
|
166
|
-
|
|
|
167
|
-
|
|
|
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
|
-
|
|
|
173
|
-
|
|
|
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
|
-
#
|
|
187
|
+
# 릴리즈 계획 — YYYY-MM-DD 생성
|
|
188
188
|
|
|
189
|
-
>
|
|
190
|
-
>
|
|
189
|
+
> 출처: YYYY-MM-DD 기준 `verify-done` 라벨 오픈 이슈
|
|
190
|
+
> 제외된 이슈 (이미 오픈 PR에 포함): #NNN, #NNN
|
|
191
191
|
|
|
192
|
-
{
|
|
192
|
+
{릴리즈 그룹}
|
|
193
193
|
|
|
194
|
-
##
|
|
195
|
-
|
|
|
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
|
-
├──
|
|
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.
|
package/templates/manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.5.
|
|
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-
|
|
8
|
+
"lastUpdated": "2026-05-24T00:00:00.000Z",
|
|
9
9
|
"components": [
|
|
10
10
|
{
|
|
11
11
|
"name": "rules",
|