oh-my-customcodex 0.4.8 → 0.4.9

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.9",
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.9",
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.9",
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
@@ -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,5 +1,5 @@
1
1
  {
2
- "version": "0.4.8",
2
+ "version": "0.4.9",
3
3
  "lastUpdated": "2026-04-27T05:25:00.000Z",
4
4
  "components": [
5
5
  {
@@ -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