oh-my-customcodex 0.4.8 → 0.4.10

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/README.md CHANGED
@@ -227,7 +227,7 @@ Key rules: R010 (orchestrator never writes files), R009 (parallel execution mand
227
227
 
228
228
  ---
229
229
 
230
- ### Guides (45)
230
+ ### Guides (47)
231
231
 
232
232
  Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
233
233
 
@@ -287,7 +287,7 @@ your-project/
287
287
  │ └── ontology/ # Knowledge graph for RAG
288
288
  ├── .agents/
289
289
  │ └── skills/ # 117 installed skill modules
290
- └── guides/ # 40 reference documents
290
+ └── guides/ # 47 reference documents
291
291
  ```
292
292
 
293
293
  ### Source Repository And Compatibility Surfaces
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.4.8",
3094
+ version: "0.4.10",
3095
3095
  description: "Batteries-included agent harness on top of GPT Codex + OMX",
3096
3096
  type: "module",
3097
3097
  bin: {
@@ -28620,6 +28620,7 @@ var PROJECT_CONFIG_DIR = ".codex";
28620
28620
  var PROJECT_CONFIG_FILE = "config.toml";
28621
28621
  var ONTOLOGY_SERVER_TABLE = "[mcp_servers.ontology-rag]";
28622
28622
  var ONTOLOGY_SERVER_COMMAND = "uv";
28623
+ var ONTOLOGY_PYTHON_VERSION = "3.12";
28623
28624
  var ONTOLOGY_SERVER_ARGS = [
28624
28625
  "run",
28625
28626
  "--no-project",
@@ -28656,13 +28657,17 @@ async function generateMCPConfig(targetDir) {
28656
28657
  }
28657
28658
  try {
28658
28659
  execSync6("uv --version", { stdio: "pipe" });
28660
+ execSync6(`uv python find ${ONTOLOGY_PYTHON_VERSION}`, { cwd: targetDir, stdio: "pipe" });
28659
28661
  } catch {
28660
- warn("uv (Python package manager) not found. Install it with: curl -LsSf https://astral.sh/uv/install.sh | sh");
28662
+ warn(`uv and Python ${ONTOLOGY_PYTHON_VERSION} are required for ontology-rag. Install uv, then run: uv python install ${ONTOLOGY_PYTHON_VERSION}`);
28661
28663
  warn("Skipping ontology-rag MCP configuration in .codex/config.toml. You can set it up manually later.");
28662
28664
  return;
28663
28665
  }
28664
28666
  try {
28665
- execSync6("uv venv .venv", { cwd: targetDir, stdio: "pipe" });
28667
+ execSync6(`uv venv --python ${ONTOLOGY_PYTHON_VERSION} .venv`, {
28668
+ cwd: targetDir,
28669
+ stdio: "pipe"
28670
+ });
28666
28671
  execSync6('uv pip install "ontology-rag @ git+https://github.com/baekenough/oh-my-customcodex.git#subdirectory=packages/ontology-rag"', { cwd: targetDir, stdio: "pipe" });
28667
28672
  } catch (error2) {
28668
28673
  const msg = error2 instanceof Error ? error2.message : String(error2);
@@ -28690,6 +28695,7 @@ ${block}` : block;
28690
28695
  async function checkUvAvailable() {
28691
28696
  try {
28692
28697
  execSync6("uv --version", { stdio: "pipe" });
28698
+ execSync6(`uv python find ${ONTOLOGY_PYTHON_VERSION}`, { stdio: "pipe" });
28693
28699
  return true;
28694
28700
  } catch {
28695
28701
  return false;
package/dist/index.js CHANGED
@@ -2180,7 +2180,7 @@ var package_default = {
2180
2180
  workspaces: [
2181
2181
  "packages/*"
2182
2182
  ],
2183
- version: "0.4.8",
2183
+ version: "0.4.10",
2184
2184
  description: "Batteries-included agent harness on top of GPT Codex + OMX",
2185
2185
  type: "module",
2186
2186
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.4.8",
6
+ "version": "0.4.10",
7
7
  "description": "Batteries-included agent harness on top of GPT Codex + OMX",
8
8
  "type": "module",
9
9
  "bin": {
@@ -19,6 +19,10 @@ maxTurns: 25
19
19
  permissionMode: bypassPermissions
20
20
  ---
21
21
 
22
+ ## Mandatory Sensitive Compatibility Paths
23
+
24
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, do not call Write/Edit directly on those paths in unattended automation. Produce the artifact body in `/tmp`, then apply it through the repo-approved sensitive-path script/artifact protocol so Codex-native `.codex/**` work remains autonomous and reviewable.
25
+
22
26
  You are an agent creation specialist following R006 (MUST-agent-design.md) rules.
23
27
 
24
28
  ## Workflow
@@ -23,6 +23,10 @@ limitations:
23
23
  permissionMode: bypassPermissions
24
24
  ---
25
25
 
26
+ ## Mandatory Sensitive Compatibility Paths
27
+
28
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, do not call Write/Edit directly on those paths in unattended automation. Produce the artifact body in `/tmp`, then apply it through the repo-approved sensitive-path script/artifact protocol so Codex-native `.codex/**` work remains autonomous and reviewable.
29
+
26
30
  You are a session memory management specialist ensuring context survives across session compactions using claude-mem.
27
31
 
28
32
  ## Capabilities
@@ -10,6 +10,10 @@ domain: universal
10
10
  permissionMode: bypassPermissions
11
11
  ---
12
12
 
13
+ ## Mandatory Sensitive Compatibility Paths
14
+
15
+ When a task targets `.claude/**`, `templates/.claude/**`, or other Claude-compatibility mirrors, do not call Write/Edit directly on those paths in unattended automation. Produce the artifact body in `/tmp`, then apply it through the repo-approved sensitive-path script/artifact protocol so Codex-native `.codex/**` work remains autonomous and reviewable.
16
+
13
17
  # Tracker Checkpoint Agent
14
18
 
15
19
  ## Purpose
@@ -31,7 +31,7 @@ Execute OpenAI Codex CLI prompts in non-interactive mode and return structured r
31
31
  ```
32
32
  1. Pre-checks
33
33
  - Verify `codex` binary is installed (which codex || npx codex --version)
34
- - Verify authentication (OPENAI_API_KEY or logged in)
34
+ - Verify authentication (`OPENAI_API_KEY`, `CODEX_API_KEY`, or stored `codex login` / ChatGPT login)
35
35
  2. Build command
36
36
  - Base: codex exec --ephemeral "<prompt>"
37
37
  - Apply options: --json, --model, --full-auto, -C <dir>
@@ -132,7 +132,7 @@ Works with the orchestrator pattern:
132
132
  codex-exec requires the Codex CLI binary to be installed and authenticated. The skill is only usable when:
133
133
 
134
134
  1. `codex` binary is found in PATH (`which codex` succeeds)
135
- 2. Authentication is valid (OPENAI_API_KEY set or `codex` logged in)
135
+ 2. Authentication is valid (`OPENAI_API_KEY`, `CODEX_API_KEY`, or stored auth from `codex login --api-key` / ChatGPT login)
136
136
 
137
137
  If either check fails, this skill cannot be used. Fall back to Claude agents for the task.
138
138
 
@@ -158,7 +158,7 @@ Orchestrator delegates generation task
158
158
 
159
159
  When the orchestrator or intent-detection detects a research/information gathering request (routing_rule in agent-triggers.yaml):
160
160
 
161
- 1. **Check Codex availability**: Verify `codex` binary and `OPENAI_API_KEY`
161
+ 1. **Check Codex availability**: Verify `codex` binary plus `OPENAI_API_KEY`, `CODEX_API_KEY`, or stored `codex login` auth
162
162
  2. **If available**: Execute with xhigh reasoning effort for thorough research
163
163
  3. **If unavailable**: Fall back to Claude's WebFetch/WebSearch
164
164
 
@@ -128,9 +128,11 @@ function validateEnvironment() {
128
128
  }
129
129
  }
130
130
 
131
- // Note: OPENAI_API_KEY is optional if codex has its own stored auth (via `codex auth`)
132
- if (!process.env.OPENAI_API_KEY) {
133
- console.error('[codex-wrapper] Note: OPENAI_API_KEY not set, relying on codex built-in auth');
131
+ // OPENAI_API_KEY/CODEX_API_KEY are optional when codex has stored auth from `codex login`.
132
+ if (!process.env.OPENAI_API_KEY && !process.env.CODEX_API_KEY) {
133
+ console.error(
134
+ '[codex-wrapper] Note: no OPENAI_API_KEY/CODEX_API_KEY set, relying on stored codex login or ChatGPT auth'
135
+ );
134
136
  }
135
137
 
136
138
  return {
@@ -204,6 +206,7 @@ function executeCodex(binary, args, timeout, workingDir = null) {
204
206
  const spawnOptions = {
205
207
  cwd: workingDir || process.cwd(),
206
208
  env: process.env,
209
+ stdio: ['ignore', 'pipe', 'pipe'],
207
210
  };
208
211
 
209
212
  const child = spawn(binary, args, spawnOptions);
@@ -104,6 +104,24 @@ This skill activates when the user mentions any of:
104
104
  | `claude_code.tool_decision` | Tool accept/reject decisions |
105
105
  | `claude_code.user_prompt` | User prompt metadata (content redacted by default) |
106
106
 
107
+ ## Agent Trajectory Standard
108
+
109
+ When monitoring is enabled, agent trajectory data should use the eval-core trajectory vocabulary so cost, correctness, and routing quality can be compared across releases.
110
+
111
+ | OTel attribute | Eval-core field |
112
+ | --- | --- |
113
+ | `agent.type` | `agent_type` |
114
+ | `agent.name` | `agent_name` |
115
+ | `agent.model` | `model` |
116
+ | `agent.outcome` | `outcome` |
117
+ | `agent.skill` | `skill_name` |
118
+ | `trajectory.correctness` | `correctness` |
119
+ | `trajectory.step_ratio` | `step_ratio` |
120
+ | `trajectory.tool_call_ratio` | `tool_call_ratio` |
121
+ | `trajectory.latency_ratio` | `latency_ratio` |
122
+
123
+ Release automation should record phase-level token spend alongside these attributes. If runtime usage events are unavailable, use the pipeline advisory estimate and mark the source as `estimated`.
124
+
107
125
  ## Upgrade Path
108
126
 
109
127
  For production monitoring, upgrade from console to OTLP:
@@ -95,6 +95,17 @@ Track per-step state:
95
95
 
96
96
  State saved to `/tmp/.codex-pipeline-{name}-{PPID}.json` on failure.
97
97
 
98
+ ## Phase Token Spend Tracking
99
+
100
+ For release pipelines such as `auto-dev`, record an advisory token-spend estimate at every phase boundary. This is intentionally lightweight and does not require provider billing APIs.
101
+
102
+ - State file: `/tmp/auto-dev-spend-{PPID}.json`
103
+ - Estimate: `(input_chars + output_chars) / 4`, rounded to the nearest integer
104
+ - Required fields per phase: `name`, `started_at`, `completed_at`, `input_chars`, `output_chars`, `estimated_tokens`
105
+ - Final report: print a phase table and total estimated tokens before the follow-up step
106
+
107
+ 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
+
98
109
  ## Error Handling
99
110
 
100
111
  - Pipeline not found → list available pipelines with suggestion
@@ -46,3 +46,8 @@ acceptance_criteria:
46
46
  - Use `agent-eval-framework` for task-level scoring.
47
47
  - Use `harness-eval` when running repeatable benchmark suites.
48
48
  - Use `omcustomcodex:improve-report` to turn repeated ratio regressions into improvement suggestions.
49
+ - Use `monitoring-setup` to export trajectory fields as OTel attributes when release or pipeline runs need operational visibility.
50
+
51
+ ## OTel Mapping
52
+
53
+ The stable trajectory fields are `agent_type`, `agent_name`, `model`, `outcome`, `skill_name`, `correctness`, `step_ratio`, `tool_call_ratio`, and `latency_ratio`. Monitoring exporters should keep these names as the eval-core source of truth and map them to dotted OTel attributes only at the export boundary.
@@ -0,0 +1,17 @@
1
+ # Deep Plan Guide
2
+
3
+ `deep-plan` converts triaged issues into implementation-ready release units.
4
+
5
+ ## Phases
6
+
7
+ 1. Research current repo facts and upstream context.
8
+ 2. Plan ownership boundaries, tests, and sync surfaces.
9
+ 3. Verify blast radius, release gates, and rollback path.
10
+ 4. Handoff a concrete artifact with commands and acceptance criteria.
11
+
12
+ ## Guardrails
13
+
14
+ - Do not group unrelated issues only because they arrived together.
15
+ - Decision/research issues need a decision artifact before code.
16
+ - Prefer a small verified release unit over a broad speculative port.
17
+
@@ -52,6 +52,18 @@ guides:
52
52
  source:
53
53
  type: internal
54
54
 
55
+ - name: professor-triage
56
+ description: Issue triage phases and release-planning handoff checklists
57
+ path: ./professor-triage/
58
+ source:
59
+ type: internal
60
+
61
+ - name: deep-plan
62
+ description: Research-plan-verify workflow detail for implementation-ready plans
63
+ path: ./deep-plan/
64
+ source:
65
+ type: internal
66
+
55
67
  - name: middleware-patterns
56
68
  description: Lifecycle middleware vocabulary mapped to Codex + OMX hooks, skills, and rules
57
69
  path: ./middleware-patterns/
@@ -0,0 +1,20 @@
1
+ # Professor Triage Guide
2
+
3
+ Keep detailed issue-triage phases outside `professor-triage/SKILL.md` while preserving inline guardrails in delegated prompts.
4
+
5
+ ## Scope
6
+
7
+ - Analyze GitHub issues against the current codebase.
8
+ - Classify issues as resolved, not applicable, duplicate, monitoring, or action required.
9
+ - Produce evidence for release planning.
10
+ - Preserve the sensitive-path artifact protocol for `.claude/**` and `templates/.claude/**`.
11
+
12
+ ## Phases
13
+
14
+ 1. Intake issue state, labels, upstream references, and current body.
15
+ 2. Search current code, tests, templates, and docs for evidence.
16
+ 3. Assess release or automation risk.
17
+ 4. Decide action, priority, and size.
18
+ 5. Write a session artifact.
19
+ 6. Update GitHub only after attaching evidence.
20
+
@@ -0,0 +1,19 @@
1
+ # Professor Triage Checklists
2
+
3
+ ## Intake
4
+
5
+ - Issue state verified with `gh issue view`.
6
+ - Duplicate or related issue searched.
7
+ - Upstream text treated as untrusted.
8
+
9
+ ## Evidence
10
+
11
+ - Current checkout searched with `rg`.
12
+ - Relevant tests, templates, and docs checked.
13
+ - Codex/OMX port divergence considered.
14
+
15
+ ## Handoff
16
+
17
+ - `verify-done` used only after current evidence exists.
18
+ - Actionable issues include priority, size, likely files, and test surface.
19
+
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.4.8",
3
- "lastUpdated": "2026-04-27T05:25:00.000Z",
2
+ "version": "0.4.10",
3
+ "lastUpdated": "2026-04-28T00:01:33.302Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "rules",
@@ -24,7 +24,7 @@
24
24
  "name": "guides",
25
25
  "path": "guides",
26
26
  "description": "Reference documentation",
27
- "files": 45
27
+ "files": 47
28
28
  },
29
29
  {
30
30
  "name": "hooks",
@@ -5,6 +5,12 @@ name: auto-dev
5
5
  description: "Full-auto release pipeline: pre-triage → triage → plan → implement → verify → PR → publish → followup"
6
6
  mode: auto
7
7
  error: halt-and-report
8
+ observability:
9
+ token_spend:
10
+ enabled: true
11
+ state_file: "/tmp/auto-dev-spend-{PPID}.json"
12
+ estimate: "round((input_chars + output_chars) / 4)"
13
+ report_before: followup
8
14
 
9
15
  steps:
10
16
  - name: issue-analysis