oh-my-customcodex 0.5.14 → 0.5.16
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 +31 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MAY-optimization.md +7 -0
- package/templates/.claude/rules/MUST-agent-design.md +5 -1
- package/templates/.claude/rules/MUST-agent-teams.md +4 -0
- package/templates/.claude/rules/MUST-permissions.md +13 -0
- package/templates/.claude/rules/MUST-safety.md +16 -0
- package/templates/.claude/rules/SHOULD-memory-integration.md +4 -0
- package/templates/AGENTS.md.en +6 -0
- package/templates/AGENTS.md.ko +6 -0
- package/templates/guides/claude-code/15-version-compatibility.md +33 -0
- package/templates/manifest.json +1 -1
- package/templates/workflows/auto-dev.yaml +12 -1
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.
|
|
3094
|
+
version: "0.5.16",
|
|
3095
3095
|
requiresCC: ">=2.1.121",
|
|
3096
3096
|
claudeCode: {
|
|
3097
3097
|
minimumVersion: "2.1.121",
|
|
@@ -27574,6 +27574,34 @@ async function checkOmx() {
|
|
|
27574
27574
|
fixable: false
|
|
27575
27575
|
};
|
|
27576
27576
|
}
|
|
27577
|
+
function checkOmxModelRouting() {
|
|
27578
|
+
const frontierModel = process.env.OMX_DEFAULT_FRONTIER_MODEL?.trim() || null;
|
|
27579
|
+
const sparkModel = process.env.OMX_DEFAULT_SPARK_MODEL?.trim() || process.env.OMX_SPARK_MODEL?.trim() || null;
|
|
27580
|
+
const usingLegacySpark = !process.env.OMX_DEFAULT_SPARK_MODEL?.trim() && Boolean(sparkModel);
|
|
27581
|
+
if (!frontierModel && !sparkModel) {
|
|
27582
|
+
return {
|
|
27583
|
+
name: "OMX model lanes",
|
|
27584
|
+
status: "pass",
|
|
27585
|
+
message: "OMX model lane routing uses runtime defaults (no explicit env override)",
|
|
27586
|
+
fixable: false
|
|
27587
|
+
};
|
|
27588
|
+
}
|
|
27589
|
+
const details = [
|
|
27590
|
+
`frontier=${frontierModel ?? "runtime-default"}`,
|
|
27591
|
+
`spark=${sparkModel ?? "runtime-default"}`
|
|
27592
|
+
];
|
|
27593
|
+
if (usingLegacySpark) {
|
|
27594
|
+
details.push("legacy OMX_SPARK_MODEL detected; prefer OMX_DEFAULT_SPARK_MODEL");
|
|
27595
|
+
}
|
|
27596
|
+
const sameExplicitLane = frontierModel !== null && sparkModel !== null && frontierModel === sparkModel;
|
|
27597
|
+
return {
|
|
27598
|
+
name: "OMX model lanes",
|
|
27599
|
+
status: sameExplicitLane ? "warn" : "pass",
|
|
27600
|
+
message: sameExplicitLane ? `OMX Spark/model lane routing uses the same explicit model for frontier and spark (${frontierModel})` : "OMX Spark/model lane routing overrides detected",
|
|
27601
|
+
fixable: false,
|
|
27602
|
+
details
|
|
27603
|
+
};
|
|
27604
|
+
}
|
|
27577
27605
|
async function checkContexts(targetDir, rootDir = ".codex") {
|
|
27578
27606
|
const contextsDir = path.join(targetDir, rootDir, "contexts");
|
|
27579
27607
|
const exists2 = await isDirectory(contextsDir);
|
|
@@ -27830,7 +27858,8 @@ async function runAllChecks(targetDir, layout, packageVersion, includeUpdates) {
|
|
|
27830
27858
|
checkCustomComponents(targetDir, layout.rootDir),
|
|
27831
27859
|
checkRtk(),
|
|
27832
27860
|
checkCodex(),
|
|
27833
|
-
checkOmx()
|
|
27861
|
+
checkOmx(),
|
|
27862
|
+
checkOmxModelRouting()
|
|
27834
27863
|
]);
|
|
27835
27864
|
const frameworkCheck = await checkFrameworkDrift(targetDir, packageVersion);
|
|
27836
27865
|
const checksWithFramework = frameworkCheck ? [...baseChecks, frameworkCheck] : baseChecks;
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
## Efficiency
|
|
6
6
|
|
|
7
|
+
> **Tool availability note**: On first exploration, do not assume a specific tool surface is available without confirming the current session's tool set. Prefer the available native repository inspection tools; fall back to bounded shell `find`/`grep`/`rg` when higher-level glob/search tools are unavailable.
|
|
8
|
+
|
|
7
9
|
| Strategy | When | Example |
|
|
8
10
|
|----------|------|---------|
|
|
9
11
|
| Parallel | 3+ independent I/O tasks | Read multiple files simultaneously |
|
|
@@ -43,6 +45,11 @@ Inspired by [ouroboros PR #353](https://github.com/Q00/ouroboros/pull/353) capab
|
|
|
43
45
|
|
|
44
46
|
Readability > Optimization. No optimization without measurement.
|
|
45
47
|
|
|
48
|
+
|
|
49
|
+
### Measure-Before-Adopt Gate
|
|
50
|
+
|
|
51
|
+
For new workflow heuristics, TIDE-style discovery shortcuts, or routing optimizations, measure before adoption. A small proof-of-concept that fails its confidence gate should be recorded as deferred rather than promoted into default guidance. Future adoption needs a broader multi-session corpus or deterministic benchmark evidence, not a single-session impression.
|
|
52
|
+
|
|
46
53
|
## Context Optimization via HTML Comments (v2.1.72+)
|
|
47
54
|
|
|
48
55
|
HTML comments in all auto-injected .md files (AGENTS.md and rules/*.md) are hidden from the model during auto-injection but visible via Read tool.
|
|
@@ -27,6 +27,10 @@ tools: [Read, Write, ...] # Allowed tools
|
|
|
27
27
|
|
|
28
28
|
Extended context suffix: `[1m]` (e.g., `claude-opus-4-6[1m]`) — enables 1M token context window.
|
|
29
29
|
|
|
30
|
+
<!-- DETAIL: Fallback Models and Thinking Toggle (Claude Code v2.1.166+)
|
|
31
|
+
Claude compatibility settings can declare up to three `fallbackModel` entries tried in order when the primary Claude model is overloaded or unavailable. `--fallback-model` also applies to interactive Claude sessions. Treat this as platform availability failover, not Codex-native model routing or outcome-based escalation. Claude Code v2.1.166+ also supports disabling default thinking with `MAX_THINKING_TOKENS=0`, `--thinking disabled`, or the per-model thinking toggle. Codex-native agents continue to use the OMX model contract and `reasoning_effort` routing.
|
|
32
|
+
-->
|
|
33
|
+
|
|
30
34
|
### Optional Frontmatter
|
|
31
35
|
|
|
32
36
|
Key optional fields: `memory`, `effort`, `skills`, `soul`, `isolation`, `background`, `maxTurns`, `maxTokens`, `mcpServers`, `hooks`, `permissionMode`, `disallowedTools`, `limitations`, `domain`, `disableSkillShellExecution`. Supported since CC v2.1.63+. See full optional frontmatter via Read tool.
|
|
@@ -83,7 +87,7 @@ This Codex port ships `.claude` compatibility templates. When updating those tem
|
|
|
83
87
|
- v2.1.161: independent parallel tool calls no longer cancel siblings when one Bash call fails; this supports R009 same-message batching for independent work.
|
|
84
88
|
- v2.1.162: `claude agents --json` includes waiting/blocker metadata and explicit `--tools Grep/Glob` behavior is fixed; compatibility prompts may use those fields when diagnosing stuck Claude sessions.
|
|
85
89
|
- v2.1.163: managed `requiredMinimumVersion`/`requiredMaximumVersion`, `/plugin list`, Stop/SubagentStop `hookSpecificOutput.additionalContext`, and skill command literal `\$` escaping are available. Hook/skill template changes should preserve these affordances.
|
|
86
|
-
- v2.1.165: bug-fix/reliability release; no local template change required beyond compatibility confirmation.
|
|
90
|
+
- v2.1.165: bug-fix/reliability release; no local template change required beyond compatibility confirmation. v2.1.166: fallbackModel availability failover and thinking-disable controls are Claude compatibility settings, not Codex/OMX routing. v2.1.167/v2.1.168: bug-fix-only compatibility confirmation.
|
|
87
91
|
-->
|
|
88
92
|
|
|
89
93
|
## Hook Event Types
|
|
@@ -33,6 +33,10 @@ When enabled and criteria match, Agent Teams is required.
|
|
|
33
33
|
|
|
34
34
|
Do not confuse these mechanisms.
|
|
35
35
|
|
|
36
|
+
<!-- DETAIL: Cross-Session Relay Authority Hardening (Claude Code v2.1.166+)
|
|
37
|
+
Claude Code v2.1.166+ no longer propagates user authority through cross-session relays: permission requests relayed from another session are refused, and auto mode blocks them. A relayed message from session A cannot grant session B permissions the user did not authorize in session B. This hardens `send_message` / peer relay against privilege escalation. Intra-session Agent Teams `SendMessage` is unaffected, but privileged actions still require authority in the receiving session.
|
|
38
|
+
-->
|
|
39
|
+
|
|
36
40
|
## Self-Check Before Agent Tool
|
|
37
41
|
|
|
38
42
|
Quick rule: explicit user preference for plain subagents wins. Otherwise use Teams for 3+ agents, review cycles, shared state, complex debugging, dynamic creation, or multi-issue batches; use Agent Tool for 1-2 simple tasks, sequential scaffolding, or mechanical disjoint-file batches with explicit scopes.
|
|
@@ -42,6 +42,19 @@ Current guidance:
|
|
|
42
42
|
- For `.claude/**` or `templates/.claude/**`, direct writes are acceptable when the target Claude Code runtime is new enough and the session is running with `bypassPermissions`.
|
|
43
43
|
- Treat the old `/tmp/{skill}-{timestamp}.md` wrapper flow as a historical fallback only for older Claude Code versions, non-bypass sessions, or interactive runs that still surface a protected-path prompt.
|
|
44
44
|
|
|
45
|
+
|
|
46
|
+
## Deny Rule Glob Patterns (Claude Code v2.1.166+)
|
|
47
|
+
|
|
48
|
+
Claude Code compatibility templates may rely on v2.1.166+ deny-rule glob behavior:
|
|
49
|
+
|
|
50
|
+
| Position | Glob support |
|
|
51
|
+
|----------|-------------|
|
|
52
|
+
| Deny rule tool-name | Supported; `"*"` denies all tools |
|
|
53
|
+
| Allow rule tool-name | MCP tool-name globs only; non-MCP globs are rejected |
|
|
54
|
+
| Unknown tool in deny rule | Startup warning |
|
|
55
|
+
|
|
56
|
+
Use `"*"` deny rules only for Claude compatibility settings that intentionally enforce deny-by-default, then add explicit allow rules. This is separate from Codex/OMX sandbox policy and the advisory tool-tier table above.
|
|
57
|
+
|
|
45
58
|
## Permission Request Format
|
|
46
59
|
|
|
47
60
|
```
|
|
@@ -37,6 +37,22 @@ Treat these commands as destructive even when they look like routine cleanup:
|
|
|
37
37
|
|
|
38
38
|
Advisory hooks may warn on these patterns, but warnings do not replace the approval and preservation requirements.
|
|
39
39
|
|
|
40
|
+
|
|
41
|
+
### Pre-Delegation Blast-Radius Enumeration
|
|
42
|
+
|
|
43
|
+
Before delegating any destructive git command from the table above, enumerate the exact discard targets and present them for explicit approval. Do not delegate destructive operations from a paraphrase such as "discard local changes" without showing what will be lost.
|
|
44
|
+
|
|
45
|
+
Required evidence before delegation:
|
|
46
|
+
|
|
47
|
+
| Scope | Command |
|
|
48
|
+
|-------|---------|
|
|
49
|
+
| Modified/staged tracked files | `git status --short` |
|
|
50
|
+
| Uncommitted diff size | `git diff --stat` and `git diff --stat --cached` |
|
|
51
|
+
| Stash contents, when relevant | `git stash show --stat` |
|
|
52
|
+
| Untracked files at risk, for clean | `git clean -nd` |
|
|
53
|
+
|
|
54
|
+
Prefer non-destructive alternatives such as `git stash` when the user's goal can be met without permanent loss.
|
|
55
|
+
|
|
40
56
|
## On Violation
|
|
41
57
|
|
|
42
58
|
1. Stop all operations
|
|
@@ -39,6 +39,10 @@ If both backend families are available, warn before writing. Dual-write is accep
|
|
|
39
39
|
|
|
40
40
|
-->
|
|
41
41
|
|
|
42
|
+
<!-- DETAIL: Safety Feedback Memory
|
|
43
|
+
When a session exposes a safety-relevant correction (credential handling, destructive git blast radius, privileged-scope chaining, or permission-boundary mistakes), write the durable lesson with confidence metadata instead of leaving it only in chat. Record what was verified, what behavior should change, and the source issue/session when available. Do not store secrets or raw credential material in memory.
|
|
44
|
+
-->
|
|
45
|
+
|
|
42
46
|
## Best Practices
|
|
43
47
|
|
|
44
48
|
- Consult memory before starting work
|
package/templates/AGENTS.md.en
CHANGED
|
@@ -137,6 +137,12 @@ project/
|
|
|
137
137
|
+-- guides/ # Reference docs (51 topics)
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
+
## OMX Command Routing
|
|
141
|
+
|
|
142
|
+
- `omx explore` is deprecated and must not be recommended for new repository lookup work. Use normal Codex repository inspection tools/subagents for file, symbol, pattern, relationship, and implementation discovery.
|
|
143
|
+
- `USE_OMX_EXPLORE_CMD` is compatibility-only for legacy callers; truthy values do not make `omx explore` preferred.
|
|
144
|
+
- Use `omx sparkshell -- <command>` only when the operator explicitly wants shell-native read-only evidence, bounded verification, or a tmux-pane summary.
|
|
145
|
+
|
|
140
146
|
## Orchestration
|
|
141
147
|
|
|
142
148
|
Orchestration is handled by routing skills in the main conversation:
|
package/templates/AGENTS.md.ko
CHANGED
|
@@ -137,6 +137,12 @@ project/
|
|
|
137
137
|
+-- guides/ # 레퍼런스 문서 (51 토픽)
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
+
## OMX 명령 라우팅
|
|
141
|
+
|
|
142
|
+
- `omx explore`는 deprecated 상태이며 새 저장소 조회 작업에 권장하지 않습니다. 파일, 심볼, 패턴, 관계, 구현 탐색에는 일반 Codex 저장소 검사 도구/서브에이전트를 사용합니다.
|
|
143
|
+
- `USE_OMX_EXPLORE_CMD`는 레거시 호출자 호환용일 뿐이며 truthy 값이어도 `omx explore`가 선호 경로가 되지 않습니다.
|
|
144
|
+
- `omx sparkshell -- <command>`는 사용자가 shell-native 읽기 전용 근거, 제한된 검증, tmux-pane 요약을 명시적으로 원할 때만 사용합니다.
|
|
145
|
+
|
|
140
146
|
## 오케스트레이션
|
|
141
147
|
|
|
142
148
|
오케스트레이션은 메인 대화의 라우팅 스킬로 처리됩니다:
|
|
@@ -2,6 +2,39 @@
|
|
|
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.168
|
|
6
|
+
|
|
7
|
+
Published: 2026-06-07.
|
|
8
|
+
|
|
9
|
+
Source: upstream oh-my-customcode #1315, Codex port #1479.
|
|
10
|
+
|
|
11
|
+
| Change | Impact on oh-my-customcodex | Action |
|
|
12
|
+
|--------|------------------------------|--------|
|
|
13
|
+
| Bug-fix/reliability release after the v2.1.166 compatibility surface | No new repo-owned template, agent, skill, hook, or rule behavior was identified beyond the v2.1.166 notes. | Record as compatibility-confirmed; do not add speculative runtime behavior. |
|
|
14
|
+
|
|
15
|
+
## v2.1.167
|
|
16
|
+
|
|
17
|
+
Published: 2026-06-07.
|
|
18
|
+
|
|
19
|
+
Source: upstream oh-my-customcode #1313, Codex port #1479.
|
|
20
|
+
|
|
21
|
+
| Change | Impact on oh-my-customcodex | Action |
|
|
22
|
+
|--------|------------------------------|--------|
|
|
23
|
+
| Bug-fix/reliability release after the v2.1.166 compatibility surface | No new repo-owned template, agent, skill, hook, or rule behavior was identified beyond the v2.1.166 notes. | Record as compatibility-confirmed; do not add speculative runtime behavior. |
|
|
24
|
+
|
|
25
|
+
## v2.1.166
|
|
26
|
+
|
|
27
|
+
Published: 2026-06-07.
|
|
28
|
+
|
|
29
|
+
Source: upstream oh-my-customcode #1314/#1316, Codex port #1479.
|
|
30
|
+
|
|
31
|
+
| Change | Impact on oh-my-customcodex | Action |
|
|
32
|
+
|--------|------------------------------|--------|
|
|
33
|
+
| Deny rules support glob patterns in the tool-name position, including `"*"` to deny all tools; allow-rule globs remain limited to MCP tool-name globs | Relevant to Claude compatibility settings and permission debugging. Codex/OMX sandboxing remains the active runtime boundary for this package. | Port R002 compatibility note; do not treat Claude settings globs as Codex policy. |
|
|
34
|
+
| `fallbackModel` supports up to three ordered fallback models and `--fallback-model` applies to interactive sessions | Useful Claude platform availability failover. It is distinct from per-agent `model:` metadata, the `model-escalation` skill, and Codex-native model routing. | Port R006 note; keep Codex child agents on the OMX model contract and `reasoning_effort`. |
|
|
35
|
+
| `MAX_THINKING_TOKENS=0`, `--thinking disabled`, and per-model thinking toggles can disable default thinking | Claude compatibility sessions can reduce thinking overhead for low-effort work. | Document as Claude-only compatibility; do not infer Codex reasoning behavior. |
|
|
36
|
+
| Cross-session relayed `SendMessage` no longer carries user authority; relayed permission requests are refused and auto mode blocks them | Hardens peer-relay workflows against privilege escalation between Claude sessions. Intra-session Agent Teams are unaffected. | Port R018 note and keep privileged actions scoped to the receiving session. |
|
|
37
|
+
|
|
5
38
|
## v2.1.158
|
|
6
39
|
|
|
7
40
|
Published: 2026-05-30.
|
package/templates/manifest.json
CHANGED
|
@@ -74,9 +74,20 @@ steps:
|
|
|
74
74
|
Gate transparency:
|
|
75
75
|
- Do not add or change labels solely to qualify for docs-only or lite mode.
|
|
76
76
|
- If labels were changed during triage and affect compression eligibility, state that fact in the mode decision.
|
|
77
|
+
- Whenever a skill stage is replaced by integrated analysis, log a concrete justification:
|
|
78
|
+
`[compression-mode] lite — skill stage replaced by integrated analysis; scope={n}; low-risk evidence={issue_refs}`.
|
|
79
|
+
- If the justification cannot be stated concretely, do not compress that stage; run the full skill.
|
|
80
|
+
|
|
81
|
+
Cross-tier pre-existing converged artifact substitution:
|
|
82
|
+
- A triage, plan, deep-plan, or deep-verify step may be satisfied by an existing converged research/plan/verification artifact instead of a fresh skill spawn, even in standard mode.
|
|
83
|
+
- The artifact must explicitly cover the scoped issue domain, be current for the release scope, and provide output equivalent to the skipped step.
|
|
84
|
+
- This substitution never applies to implement, verify-build, release, publish, or CI/publish verification.
|
|
85
|
+
- Log the artifact path or URL and why it is equivalent before substituting.
|
|
77
86
|
|
|
78
87
|
In docs-only mode, replace heavyweight triage/plan/deep-plan/deep-verify spawns with direct summaries plus local self-review.
|
|
79
88
|
In lite mode, keep a concise implementation plan and local self-review, but still run verify-build.
|
|
89
|
+
In lite mode deep-verify, if the change set has no structural surface (for example workflow-YAML/docs-only with no agent/skill/guide/rule frontmatter changes), the R017/deep-verify spawn may be skipped and replaced by deterministic self-checks: template parity, multi-copy checksum, YAML parse, and the normal verify-build gate. Log:
|
|
90
|
+
`[compression-mode] lite deep-verify — R017 spawn skipped (no structural surface); deterministic self-check only`.
|
|
80
91
|
Otherwise use standard mode.
|
|
81
92
|
Output the selected compression_mode for downstream steps.
|
|
82
93
|
description: Evaluate docs-only compression eligibility
|
|
@@ -130,7 +141,7 @@ steps:
|
|
|
130
141
|
- name: verify
|
|
131
142
|
depends_on: verify-build
|
|
132
143
|
skill: deep-verify
|
|
133
|
-
description: Multi-angle release quality verification; self-review checklist
|
|
144
|
+
description: Multi-angle release quality verification; self-review checklist if compression_mode=docs-only, or deterministic self-check in lite mode when no structural surface changed
|
|
134
145
|
|
|
135
146
|
- name: release
|
|
136
147
|
depends_on: verify
|