oh-my-customcodex 0.4.1 → 0.4.3
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 +4 -4
- package/dist/cli/index.js +17 -4
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/visual-ralph/SKILL.md +126 -0
- package/templates/.claude/skills/visual-verdict/SKILL.md +49 -0
- package/templates/manifest.json +3 -3
- package/templates/workflows/auto-dev.yaml +4 -4
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
49 agents.
|
|
16
|
+
49 agents. 116 skills. 22 rules. One command.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g oh-my-customcodex && cd your-project && omcustomcodex init
|
|
@@ -134,7 +134,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
|
|
|
134
134
|
|
|
135
135
|
---
|
|
136
136
|
|
|
137
|
-
### Skills (
|
|
137
|
+
### Skills (116)
|
|
138
138
|
|
|
139
139
|
| Category | Count | Includes |
|
|
140
140
|
|----------|-------|----------|
|
|
@@ -147,7 +147,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
|
|
|
147
147
|
| Package | 3 | npm-publish, npm-version, npm-audit |
|
|
148
148
|
| Optimization | 3 | optimize-analyze, optimize-bundle, optimize-report |
|
|
149
149
|
| Security | 3 | adversarial-review, cve-triage, jinja2-prompts |
|
|
150
|
-
| Other |
|
|
150
|
+
| Other | 12 | codex-exec, claude-native, visual-ralph, visual-verdict, vercel-deploy, skills-sh-search, result-aggregation, writing-clearly-and-concisely, and more |
|
|
151
151
|
|
|
152
152
|
Skills use a 3-tier scope system: `core` (universal), `harness` (agent/skill maintenance), `package` (project-specific).
|
|
153
153
|
|
|
@@ -286,7 +286,7 @@ your-project/
|
|
|
286
286
|
│ ├── contexts/ # 4 shared context files
|
|
287
287
|
│ └── ontology/ # Knowledge graph for RAG
|
|
288
288
|
├── .agents/
|
|
289
|
-
│ └── skills/ #
|
|
289
|
+
│ └── skills/ # 116 installed skill modules
|
|
290
290
|
└── guides/ # 40 reference documents
|
|
291
291
|
```
|
|
292
292
|
|
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.
|
|
3094
|
+
version: "0.4.3",
|
|
3095
3095
|
description: "Batteries-included agent harness on top of GPT Codex + OMX",
|
|
3096
3096
|
type: "module",
|
|
3097
3097
|
bin: {
|
|
@@ -28619,16 +28619,29 @@ import { join as join8 } from "node:path";
|
|
|
28619
28619
|
var PROJECT_CONFIG_DIR = ".codex";
|
|
28620
28620
|
var PROJECT_CONFIG_FILE = "config.toml";
|
|
28621
28621
|
var ONTOLOGY_SERVER_TABLE = "[mcp_servers.ontology-rag]";
|
|
28622
|
+
var ONTOLOGY_SERVER_COMMAND = "uv";
|
|
28623
|
+
var ONTOLOGY_SERVER_ARGS = [
|
|
28624
|
+
"run",
|
|
28625
|
+
"--no-project",
|
|
28626
|
+
"--python",
|
|
28627
|
+
".venv",
|
|
28628
|
+
"python",
|
|
28629
|
+
"-m",
|
|
28630
|
+
"ontology_rag.mcp_server"
|
|
28631
|
+
];
|
|
28622
28632
|
function getProjectMCPConfigPath(targetDir) {
|
|
28623
28633
|
return join8(targetDir, PROJECT_CONFIG_DIR, PROJECT_CONFIG_FILE);
|
|
28624
28634
|
}
|
|
28635
|
+
function renderTomlString(value) {
|
|
28636
|
+
return `"${value.replaceAll("\\", "\\\\").replaceAll('"', "\\\"")}"`;
|
|
28637
|
+
}
|
|
28625
28638
|
function renderOntologyMCPBlock(ontologyDir) {
|
|
28626
28639
|
return `${ONTOLOGY_SERVER_TABLE}
|
|
28627
|
-
command =
|
|
28628
|
-
args = ["
|
|
28640
|
+
command = ${renderTomlString(ONTOLOGY_SERVER_COMMAND)}
|
|
28641
|
+
args = [${ONTOLOGY_SERVER_ARGS.map(renderTomlString).join(", ")}]
|
|
28629
28642
|
|
|
28630
28643
|
[mcp_servers.ontology-rag.env]
|
|
28631
|
-
ONTOLOGY_DIR =
|
|
28644
|
+
ONTOLOGY_DIR = ${renderTomlString(ontologyDir)}
|
|
28632
28645
|
`;
|
|
28633
28646
|
}
|
|
28634
28647
|
function hasOntologyMCPConfig(content) {
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-ralph
|
|
3
|
+
description: Visual Ralph orchestration for frontend UI using approved references, Ralph implementation, Visual Verdict scoring, and reproducible design-system evidence
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Visual Ralph Skill
|
|
7
|
+
|
|
8
|
+
Use this skill when the user wants a frontend UI implemented or restyled through
|
|
9
|
+
a measured visual loop rather than subjective design feedback.
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Create a frontend delivery loop:
|
|
14
|
+
|
|
15
|
+
`user description or live URL -> approved visual reference -> $ralph implementation -> $visual-verdict + optional pixel diff -> reusable design system`.
|
|
16
|
+
|
|
17
|
+
For live URL cloning or recreation requests, Visual Ralph owns the flow. Preserve
|
|
18
|
+
the URL, viewport, content state, and interaction notes in the handoff instead of
|
|
19
|
+
routing new work to a standalone web-clone path.
|
|
20
|
+
|
|
21
|
+
## Use When
|
|
22
|
+
|
|
23
|
+
- The user describes a web/app UI and wants implementation.
|
|
24
|
+
- The user provides a live URL and wants a measured visual implementation.
|
|
25
|
+
- A generated raster mockup or static reference image would clarify the target.
|
|
26
|
+
- The task needs screenshot-based pass/fail iteration.
|
|
27
|
+
- The final result should leave reusable tokens/components, not only a one-off visual match.
|
|
28
|
+
|
|
29
|
+
## Do Not Use When
|
|
30
|
+
|
|
31
|
+
- The user only wants design critique or frontend advice.
|
|
32
|
+
- The task is non-visual backend/API work.
|
|
33
|
+
- The user supplied a final static reference and only needs a comparison/fix loop; hand directly to `$ralph` with `$visual-verdict`.
|
|
34
|
+
- The requested output is a deterministic SVG/vector/code-native asset.
|
|
35
|
+
|
|
36
|
+
## Workflow
|
|
37
|
+
|
|
38
|
+
### 1. Ground The Target Repo
|
|
39
|
+
|
|
40
|
+
Inspect local evidence before choosing stack-specific tactics:
|
|
41
|
+
- package manager and scripts,
|
|
42
|
+
- frontend framework and routing,
|
|
43
|
+
- styling system and design-token conventions,
|
|
44
|
+
- screenshot/test tooling,
|
|
45
|
+
- existing components that should be reused.
|
|
46
|
+
|
|
47
|
+
Do not assume React, Vue, Tailwind, Playwright, or another stack without repo evidence.
|
|
48
|
+
|
|
49
|
+
### 2. Establish The Visual Reference
|
|
50
|
+
|
|
51
|
+
For live URL work, record:
|
|
52
|
+
- source URL and scope note,
|
|
53
|
+
- viewport(s), route/state, and seed/login assumptions,
|
|
54
|
+
- baseline screenshot path or capture command,
|
|
55
|
+
- interaction parity notes,
|
|
56
|
+
- known exclusions such as backend/auth/personalized data/third-party widget parity.
|
|
57
|
+
|
|
58
|
+
For generated UI concepts, use `$imagegen` to produce the reference. Prompt for a
|
|
59
|
+
`ui-mockup` with viewport/aspect ratio, intended surface, hierarchy, typography,
|
|
60
|
+
color direction, exact text, and a ban on unrequested logos/watermarks.
|
|
61
|
+
|
|
62
|
+
For project-bound implementation, save the approved reference in the workspace,
|
|
63
|
+
for example `.omx/artifacts/visual-ralph/<slug>/reference.png`.
|
|
64
|
+
|
|
65
|
+
### 3. Require User Approval
|
|
66
|
+
|
|
67
|
+
Stop after reference generation or URL-derived reference capture and ask the user
|
|
68
|
+
to approve one reference image/state or request targeted changes. Do not start
|
|
69
|
+
frontend implementation before approval.
|
|
70
|
+
|
|
71
|
+
### 4. Hand Off To Ralph
|
|
72
|
+
|
|
73
|
+
Invoke `$ralph` with:
|
|
74
|
+
- approved reference image path or URL-derived artifact,
|
|
75
|
+
- source URL and scope note when relevant,
|
|
76
|
+
- viewport/content state,
|
|
77
|
+
- detected repo/frontend context,
|
|
78
|
+
- exact screenshot command and output path,
|
|
79
|
+
- the completion checklist below.
|
|
80
|
+
|
|
81
|
+
### 5. Use Visual Verdict Before Every Next Edit
|
|
82
|
+
|
|
83
|
+
For each visual iteration:
|
|
84
|
+
1. Capture the current screenshot with recorded viewport/state.
|
|
85
|
+
2. Run `$visual-verdict` against the approved reference.
|
|
86
|
+
3. Treat the JSON verdict as authoritative.
|
|
87
|
+
4. If `score < 90`, convert `differences[]` and `suggestions[]` into the next edit plan.
|
|
88
|
+
5. Rerun before the next edit.
|
|
89
|
+
|
|
90
|
+
Pixel diff is secondary evidence only. It helps translate mismatch hotspots into
|
|
91
|
+
concrete edits, but it does not replace `$visual-verdict`.
|
|
92
|
+
|
|
93
|
+
### 6. Leave A Reproducible Design System
|
|
94
|
+
|
|
95
|
+
Encode the match in repo-native reusable artifacts: CSS variables, theme tokens,
|
|
96
|
+
Tailwind config, component variants, stories, docs, or the existing equivalent.
|
|
97
|
+
Capture applicable colors, spacing, typography, radii, shadows, and key states.
|
|
98
|
+
|
|
99
|
+
## Completion Checklist
|
|
100
|
+
|
|
101
|
+
- Approved reference or URL-derived artifact is saved in the workspace.
|
|
102
|
+
- Screenshot reproduction command, viewport, route/state, and output paths are documented.
|
|
103
|
+
- Final `$visual-verdict` score is `>= 90`.
|
|
104
|
+
- Pixel diff or overlay evidence is recorded when useful.
|
|
105
|
+
- Design tokens/components are repo-native and reusable.
|
|
106
|
+
- Build/lint/test or the repo equivalent passes.
|
|
107
|
+
- Remaining visual differences are documented with rationale.
|
|
108
|
+
|
|
109
|
+
## Handoff Template
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
$ralph "Implement the approved frontend reference.
|
|
113
|
+
Reference: <workspace-reference-image-or-url-derived-artifact>
|
|
114
|
+
Source URL: <url and permission/scope note, if relevant>
|
|
115
|
+
Viewport/content state: <viewport, route/state, seed/login assumptions>
|
|
116
|
+
Interaction parity notes: <visible controls and known exclusions>
|
|
117
|
+
Route/surface: <route or component>
|
|
118
|
+
Screenshot command: <command and viewport>
|
|
119
|
+
Use $visual-verdict before every next edit; pass threshold score >= 90.
|
|
120
|
+
Use pixel diff only as secondary debug evidence.
|
|
121
|
+
Extract reusable design tokens/components.
|
|
122
|
+
Run build/lint/test before completion.
|
|
123
|
+
Do not make major design pivots unless explicitly requested."
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Task: {{ARGUMENTS}}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-verdict
|
|
3
|
+
description: Structured visual QA verdict for screenshot-to-reference comparisons
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Visual Verdict Skill
|
|
7
|
+
|
|
8
|
+
Use this skill when a UI task needs a strict visual comparison between one or
|
|
9
|
+
more reference images and the current generated screenshot.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- `reference_images[]`: one or more reference image paths
|
|
14
|
+
- `generated_screenshot`: current output screenshot path
|
|
15
|
+
- `category_hint`: optional UI category, such as `dashboard`, `landing-page`, or `editor`
|
|
16
|
+
|
|
17
|
+
## Output Contract
|
|
18
|
+
|
|
19
|
+
Return JSON only:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"score": 0,
|
|
24
|
+
"verdict": "revise",
|
|
25
|
+
"category_match": false,
|
|
26
|
+
"differences": ["..."],
|
|
27
|
+
"suggestions": ["..."],
|
|
28
|
+
"reasoning": "short explanation"
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Rules:
|
|
33
|
+
- `score` is an integer from 0 to 100.
|
|
34
|
+
- `verdict` is `pass`, `revise`, or `fail`.
|
|
35
|
+
- `category_match` is true only when the screenshot matches the intended UI category.
|
|
36
|
+
- `differences[]` lists concrete visual mismatches.
|
|
37
|
+
- `suggestions[]` lists concrete next edits tied to the mismatches.
|
|
38
|
+
- `reasoning` is one or two short sentences.
|
|
39
|
+
|
|
40
|
+
## Threshold And Loop
|
|
41
|
+
|
|
42
|
+
- Target pass threshold is `score >= 90`.
|
|
43
|
+
- If `score < 90`, continue editing and rerun `$visual-verdict` before the next edit.
|
|
44
|
+
- Persist useful verdict evidence in `.omx/state/{scope}/ralph-progress.json` when Ralph is active.
|
|
45
|
+
|
|
46
|
+
## Debug Visualization
|
|
47
|
+
|
|
48
|
+
Pixel diff or pixelmatch overlays are secondary debugging aids. They help locate
|
|
49
|
+
hotspots, but `$visual-verdict` remains the authoritative pass/fail signal.
|
package/templates/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.4.
|
|
3
|
-
"lastUpdated": "2026-04-
|
|
2
|
+
"version": "0.4.3",
|
|
3
|
+
"lastUpdated": "2026-04-27T02:00:00.000Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "rules",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"name": "skills",
|
|
19
19
|
"path": ".agents/skills",
|
|
20
20
|
"description": "Reusable skill modules (project-scoped repo skills)",
|
|
21
|
-
"files":
|
|
21
|
+
"files": 116
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "guides",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# /pipeline auto-dev — Full-auto release pipeline
|
|
2
|
-
# Pre-triages open issues → triage verify-done → plan → implement → verify → PR/release → publish → followup
|
|
2
|
+
# Pre-triages open issues and release monitors → triage verify-done → plan → implement → verify → PR/release → publish → followup
|
|
3
3
|
|
|
4
4
|
name: auto-dev
|
|
5
5
|
description: "Full-auto release pipeline: pre-triage → triage → plan → implement → verify → PR → publish → followup"
|
|
@@ -11,11 +11,11 @@ steps:
|
|
|
11
11
|
parallel:
|
|
12
12
|
- name: pre-triage
|
|
13
13
|
skill: professor-triage
|
|
14
|
-
description: Run professor-triage on open issues that lack verify-done label
|
|
15
|
-
condition: "open issues without label:verify-done exist"
|
|
14
|
+
description: Run professor-triage on open issues that lack verify-done label, including release-monitor labels codex-release and oh-my-codex-release
|
|
15
|
+
condition: "open issues without label:verify-done exist OR open release-monitor issues with label:codex-release or label:oh-my-codex-release exist"
|
|
16
16
|
- name: triage
|
|
17
17
|
skill: professor-triage
|
|
18
|
-
description: Analyze verify-done issues against current codebase and perform automated triage
|
|
18
|
+
description: Analyze verify-done and release-monitor issues against current codebase and perform automated triage
|
|
19
19
|
|
|
20
20
|
- name: plan
|
|
21
21
|
depends_on: issue-analysis
|