oh-my-customcodex 0.3.10 → 0.4.0
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 +6 -5
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/agents/mgr-sauron.md +1 -1
- package/templates/.claude/agents/tracker-checkpoint.md +77 -0
- package/templates/.claude/rules/MUST-agent-design.md +1 -1
- package/templates/.claude/skills/dag-orchestration/SKILL.md +20 -0
- package/templates/.claude/skills/pipeline-guards/SKILL.md +19 -0
- package/templates/.claude/skills/sauron-watch/SKILL.md +16 -4
- package/templates/.claude/skills/sdd-dev/SKILL.md +6 -3
- package/templates/.claude/skills/sdd-dev/templates/decision-record.md +45 -0
- package/templates/.claude/skills/secretary-routing/SKILL.md +3 -0
- package/templates/.github/scripts/verify-fork-list.sh +97 -0
- package/templates/AGENTS.md.en +6 -5
- package/templates/AGENTS.md.ko +6 -5
- package/templates/CLAUDE.md +5 -4
- package/templates/CLAUDE.md.en +5 -4
- package/templates/CLAUDE.md.ko +5 -4
- package/templates/manifest.json +3 -3
- package/templates/workflows/auto-dev.yaml +7 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
49 agents. 112 skills. 22 rules. One command.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g oh-my-customcodex && cd your-project && omcustomcodex init
|
|
@@ -112,7 +112,7 @@ Agent(arch-documenter):haiku ┘
|
|
|
112
112
|
|
|
113
113
|
---
|
|
114
114
|
|
|
115
|
-
### Agents (
|
|
115
|
+
### Agents (49)
|
|
116
116
|
|
|
117
117
|
| Category | Count | Agents |
|
|
118
118
|
|----------|-------|--------|
|
|
@@ -121,13 +121,14 @@ Agent(arch-documenter):haiku ┘
|
|
|
121
121
|
| Frontend | 5 | fe-vercel, fe-vuejs, fe-svelte, fe-flutter, fe-design |
|
|
122
122
|
| Data Engineering | 6 | de-airflow, de-dbt, de-spark, de-kafka, de-snowflake, de-pipeline |
|
|
123
123
|
| Database | 4 | db-supabase, db-postgres, db-redis, db-alembic |
|
|
124
|
-
| Tooling |
|
|
124
|
+
| Tooling | 3 | tool-npm, tool-optimizer, tool-bun |
|
|
125
125
|
| Architecture | 2 | arch-documenter, arch-speckit |
|
|
126
126
|
| Infrastructure | 2 | infra-docker, infra-aws |
|
|
127
127
|
| QA | 3 | qa-planner, qa-writer, qa-engineer |
|
|
128
128
|
| Security | 1 | sec-codeql |
|
|
129
129
|
| Managers | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
130
|
-
| System |
|
|
130
|
+
| System | 3 | sys-memory-keeper, sys-naggy, tracker-checkpoint |
|
|
131
|
+
| Auxiliary | 2 | slack-cli, wiki-curator |
|
|
131
132
|
|
|
132
133
|
Each agent declares its tools, model, memory scope, and limitations in YAML frontmatter. Tool budgets are enforced per agent type for accuracy.
|
|
133
134
|
|
|
@@ -277,7 +278,7 @@ omcustomcodex serve-stop # Stop Web UI
|
|
|
277
278
|
your-project/
|
|
278
279
|
├── AGENTS.md # Entry point
|
|
279
280
|
├── .codex/
|
|
280
|
-
│ ├── agents/ #
|
|
281
|
+
│ ├── agents/ # 49 agent definitions
|
|
281
282
|
│ ├── rules/ # 22 governance rules (R000-R021)
|
|
282
283
|
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
283
284
|
│ ├── schemas/ # Tool input validation schemas
|
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@ You are an automated verification specialist that executes the mandatory R017 ve
|
|
|
30
30
|
6. Verify philosophy compliance (R006-R011)
|
|
31
31
|
7. Verify Claude-native compatibility
|
|
32
32
|
8. Spec density analysis: detects agents with excessive inline implementation detail (R006 compliance)
|
|
33
|
-
9. Structural linting: routing coverage (unreachable agents), orphan skill detection, circular dependency check, context:fork cap verification
|
|
33
|
+
9. Structural linting: routing coverage (unreachable agents), orphan skill detection, circular dependency check, context:fork cap verification, R006 fork-list/frontmatter cross-validation
|
|
34
34
|
10. Auto-fix simple issues (count mismatches, missing fields)
|
|
35
35
|
11. Generate verification report
|
|
36
36
|
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tracker-checkpoint
|
|
3
|
+
description: Pipeline execution state tracker with checkpoint persistence. Reads and writes /tmp/.codex-pipeline-*-{PPID}.json state files and validates state transitions for pipeline and DAG resume flows.
|
|
4
|
+
model: sonnet
|
|
5
|
+
effort: medium
|
|
6
|
+
tools: [Read, Write, Edit, Bash, Glob, Grep]
|
|
7
|
+
memory: project
|
|
8
|
+
skills: [dag-orchestration, pipeline-guards]
|
|
9
|
+
domain: universal
|
|
10
|
+
permissionMode: bypassPermissions
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Tracker Checkpoint Agent
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Manage pipeline execution state through persistent checkpoint files. This agent works with `/pipeline resume`, `dag-orchestration`, and `pipeline-guards` so failed or preempted runs can resume from a known state.
|
|
18
|
+
|
|
19
|
+
## Capabilities
|
|
20
|
+
|
|
21
|
+
- Read and write `/tmp/.codex-pipeline-{name}-{PPID}.json` state files
|
|
22
|
+
- Read and write `/tmp/.codex-dag-{PPID}.json` DAG state files when a DAG workflow owns the run
|
|
23
|
+
- Validate state transitions: `pending -> running -> completed | failed`
|
|
24
|
+
- Preserve failure context for halted pipeline steps
|
|
25
|
+
- Support `/pipeline resume` by loading the last known state
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
### 1. Pipeline Start
|
|
30
|
+
|
|
31
|
+
- Create `/tmp/.codex-pipeline-{name}-{PPID}.json` with initial state
|
|
32
|
+
- Record pipeline name, start timestamp, total steps, and `current_step: 0`
|
|
33
|
+
|
|
34
|
+
### 2. Step Checkpoint
|
|
35
|
+
|
|
36
|
+
- Update state after each step
|
|
37
|
+
- Record step name, status, duration, and artifact paths
|
|
38
|
+
- Use atomic write semantics: write temporary JSON, then move it into place
|
|
39
|
+
|
|
40
|
+
### 3. Failure Freeze
|
|
41
|
+
|
|
42
|
+
- Mark the pipeline status as `halted`
|
|
43
|
+
- Preserve failed step, error message, and partial artifact paths
|
|
44
|
+
- Leave the checkpoint file available for resume inspection
|
|
45
|
+
|
|
46
|
+
### 4. Resume Coordination
|
|
47
|
+
|
|
48
|
+
- Scan `/tmp/.codex-pipeline-*-{PPID}.json`
|
|
49
|
+
- Return pipeline name, failed step, error, and retry/skip/abort options to the orchestrator
|
|
50
|
+
- On retry, reset the failed step to `pending` and resume execution from that step
|
|
51
|
+
|
|
52
|
+
## State File Schema
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"pipeline": "{name}",
|
|
57
|
+
"started": "ISO-8601",
|
|
58
|
+
"status": "running|completed|halted",
|
|
59
|
+
"current_step": 0,
|
|
60
|
+
"steps": [
|
|
61
|
+
{"name": "triage", "status": "completed", "duration_ms": 5000, "artifacts": []},
|
|
62
|
+
{"name": "plan", "status": "running"}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Integration Points
|
|
68
|
+
|
|
69
|
+
- `pipeline` skill: `/pipeline resume` state loader
|
|
70
|
+
- `dag-orchestration` skill: step dependency resolution and checkpoint restoration
|
|
71
|
+
- `pipeline-guards` skill: guard gate state snapshots
|
|
72
|
+
|
|
73
|
+
## Rules Compliance
|
|
74
|
+
|
|
75
|
+
- R006: this is an agent artifact; checkpoint workflow logic remains in skills
|
|
76
|
+
- R010: orchestrator owns scheduling, this agent owns checkpoint file operations
|
|
77
|
+
- R017: structural changes to checkpoint contracts require sauron verification
|
|
@@ -344,7 +344,7 @@ Default: `core` (when field is omitted)
|
|
|
344
344
|
|
|
345
345
|
### Context Fork Criteria
|
|
346
346
|
|
|
347
|
-
Use `context: fork` for multi-agent orchestration skills only. Cap: **12 total**. Current:
|
|
347
|
+
Use `context: fork` for multi-agent orchestration skills only. Cap: **12 total**. Current: 10/12 (secretary-routing, dev-lead-routing, de-lead-routing, qa-lead-routing, dag-orchestration, task-decomposition, worker-reviewer-pipeline, pipeline-guards, deep-plan, professor-triage).
|
|
348
348
|
|
|
349
349
|
<!-- DETAIL: Context Fork decision table
|
|
350
350
|
| Use context:fork | Do NOT use context:fork |
|
|
@@ -193,6 +193,26 @@ Execute? [Y/n]
|
|
|
193
193
|
|
|
194
194
|
The orchestrator builds the DAG from this inline format and executes using the same algorithm.
|
|
195
195
|
|
|
196
|
+
## State Management via tracker-checkpoint
|
|
197
|
+
|
|
198
|
+
Pipeline and DAG state is delegated to the `tracker-checkpoint` agent.
|
|
199
|
+
|
|
200
|
+
### Flow
|
|
201
|
+
|
|
202
|
+
1. Pipeline start: orchestrator delegates to `tracker-checkpoint` to create an initial state file (`/tmp/.codex-pipeline-{name}-{PPID}.json`)
|
|
203
|
+
2. After each step: `tracker-checkpoint` updates step state with atomic writes
|
|
204
|
+
3. Step failure: `tracker-checkpoint` freezes the state as `halted`
|
|
205
|
+
4. `/pipeline resume`: `tracker-checkpoint` loads state and returns restore options to the orchestrator
|
|
206
|
+
|
|
207
|
+
### Integration
|
|
208
|
+
|
|
209
|
+
- PPID-scoped pipeline state path: `/tmp/.codex-pipeline-{name}-{PPID}.json`
|
|
210
|
+
- PPID-scoped DAG state path: `/tmp/.codex-dag-{PPID}.json`
|
|
211
|
+
- Delegate before and after step execution when resume support is required
|
|
212
|
+
- On resume, rebuild the DAG from checkpoint state and continue from incomplete steps
|
|
213
|
+
|
|
214
|
+
See `.codex/agents/tracker-checkpoint.md` for the agent contract.
|
|
215
|
+
|
|
196
216
|
## Limitations
|
|
197
217
|
|
|
198
218
|
- No cycles allowed (DAG = acyclic)
|
|
@@ -158,6 +158,25 @@ Guard warnings appear inline:
|
|
|
158
158
|
| stuck-recovery | Guard triggers feed into stuck detection |
|
|
159
159
|
| model-escalation | Repeated failures trigger escalation advisory |
|
|
160
160
|
|
|
161
|
+
## Checkpoint Gate Integration
|
|
162
|
+
|
|
163
|
+
Guard pass/fail state is recorded through the `tracker-checkpoint` agent when a pipeline needs resumable execution.
|
|
164
|
+
|
|
165
|
+
### Flow
|
|
166
|
+
|
|
167
|
+
1. Guard entry: record gate state as `running`
|
|
168
|
+
2. Guard pass: record gate state as `passed` with relevant metrics
|
|
169
|
+
3. Guard failure: record gate state as `failed` and freeze failure reason
|
|
170
|
+
4. Next step: read checkpoint state to decide whether to resume or halt
|
|
171
|
+
|
|
172
|
+
### Benefits
|
|
173
|
+
|
|
174
|
+
- Long pipelines gain restore points at guard boundaries
|
|
175
|
+
- Partial failures can retry from the prior guard boundary
|
|
176
|
+
- Guard metrics accumulate for release-quality trend analysis
|
|
177
|
+
|
|
178
|
+
See `.codex/agents/tracker-checkpoint.md` for the checkpoint contract.
|
|
179
|
+
|
|
161
180
|
## Override Policy
|
|
162
181
|
|
|
163
182
|
- Defaults can be overridden in pipeline spec (within hard caps)
|
|
@@ -99,10 +99,22 @@ Build dependency graph:
|
|
|
99
99
|
Count skills with context: fork in frontmatter:
|
|
100
100
|
grep "context: fork" .codex/skills/*/SKILL.md
|
|
101
101
|
|
|
102
|
-
If count >
|
|
103
|
-
ERROR: "Context fork cap exceeded: {count}/
|
|
104
|
-
If count >=
|
|
105
|
-
WARN: "Context fork usage high: {count}/
|
|
102
|
+
If count > 12:
|
|
103
|
+
ERROR: "Context fork cap exceeded: {count}/12"
|
|
104
|
+
If count >= 10:
|
|
105
|
+
WARN: "Context fork usage high: {count}/12 — only {12-count} slots remaining"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Lint 5: R006 Fork List Cross-Validation**
|
|
109
|
+
```
|
|
110
|
+
Run: bash .github/scripts/verify-fork-list.sh
|
|
111
|
+
|
|
112
|
+
Compare:
|
|
113
|
+
- R006 Context Fork Criteria current count/list
|
|
114
|
+
- Actual .codex/skills/*/SKILL.md frontmatter with context: fork
|
|
115
|
+
|
|
116
|
+
If count or list differs:
|
|
117
|
+
ERROR: "R006 fork list drift detected"
|
|
106
118
|
```
|
|
107
119
|
|
|
108
120
|
All structural lints are **advisory** (WARN level) except circular dependencies and fork cap exceeded (ERROR level — should block commit).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: sdd-dev
|
|
3
3
|
description: Spec-Driven Development workflow — enforces sdd/ folder hierarchy with planning-first gates, current-state artifacts, and completion verification
|
|
4
4
|
scope: core
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.1.0
|
|
6
6
|
user-invocable: true
|
|
7
7
|
argument-hint: "[task description or leave empty for guided workflow]"
|
|
8
8
|
---
|
|
@@ -27,7 +27,8 @@ sdd/
|
|
|
27
27
|
├── 03_build/ # Current build state, implementation notes
|
|
28
28
|
├── 04_verify/ # Verification evidence, test results, residual risks
|
|
29
29
|
├── 05_operate/ # Deployment notes, runbooks (conditional)
|
|
30
|
-
|
|
30
|
+
├── 99_toolchain/ # Tool configs, scripts, environment setup
|
|
31
|
+
└── decisions/ # Decision records for major design choices
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
**Key Principle**: These folders are **current-state artifacts**, not history archives. Each file reflects the current state of the work — update in place rather than appending new versions.
|
|
@@ -44,7 +45,7 @@ ls sdd/ 2>/dev/null || echo "sdd/ folder not found"
|
|
|
44
45
|
|
|
45
46
|
If `sdd/` does not exist:
|
|
46
47
|
1. Inform the user that SDD workflow requires a `sdd/` folder
|
|
47
|
-
2. Offer to create the folder structure: `mkdir -p sdd/{01_planning,02_plan,03_build,04_verify,05_operate,99_toolchain}`
|
|
48
|
+
2. Offer to create the folder structure: `mkdir -p sdd/{01_planning,02_plan,03_build,04_verify,05_operate,99_toolchain,decisions}`
|
|
48
49
|
3. Ask user to confirm before proceeding
|
|
49
50
|
|
|
50
51
|
If `sdd/` exists, continue to Step 1.
|
|
@@ -121,6 +122,7 @@ Artifact to produce or update: `sdd/03_build/current.md`
|
|
|
121
122
|
|
|
122
123
|
## Decisions Made
|
|
123
124
|
- {decision}: {rationale}
|
|
125
|
+
- Write decision records for major choices: `sdd/decisions/{YYYY-MM-DD}-{topic}.md` using `templates/decision-record.md`
|
|
124
126
|
|
|
125
127
|
## Known Issues
|
|
126
128
|
- {issue}: {planned resolution}
|
|
@@ -129,6 +131,7 @@ Artifact to produce or update: `sdd/03_build/current.md`
|
|
|
129
131
|
During implementation:
|
|
130
132
|
- Follow the plan from Step 2
|
|
131
133
|
- Update `sdd/03_build/current.md` as work progresses
|
|
134
|
+
- Create or update a decision record when a choice materially changes architecture, workflow behavior, dependency strategy, or release risk
|
|
132
135
|
- Keep the artifact current (not a log — overwrite stale entries)
|
|
133
136
|
|
|
134
137
|
**Display**:
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {Decision title}
|
|
3
|
+
date: YYYY-MM-DD
|
|
4
|
+
status: proposed | accepted | superseded | deprecated
|
|
5
|
+
context: guides/harness-engineering/README.md
|
|
6
|
+
decision_makers: [{agent or role}]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# {Decision title}
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
{What is the problem and why is a decision needed? Include relevant constraints, goals, and the situation that makes this decision necessary.}
|
|
14
|
+
|
|
15
|
+
## Options Considered
|
|
16
|
+
|
|
17
|
+
1. **Option A**: {Description}
|
|
18
|
+
- Pros: {benefits}
|
|
19
|
+
- Cons: {drawbacks, trade-offs}
|
|
20
|
+
|
|
21
|
+
2. **Option B**: {Description}
|
|
22
|
+
- Pros: {benefits}
|
|
23
|
+
- Cons: {drawbacks, trade-offs}
|
|
24
|
+
|
|
25
|
+
3. **Option C** *(if applicable)*: {Description}
|
|
26
|
+
- Pros: {benefits}
|
|
27
|
+
- Cons: {drawbacks, trade-offs}
|
|
28
|
+
|
|
29
|
+
## Decision
|
|
30
|
+
|
|
31
|
+
**Chosen**: Option {A|B|C}
|
|
32
|
+
|
|
33
|
+
{Explain the rationale for the choice. Why does this option best satisfy the constraints and goals from the Context section?}
|
|
34
|
+
|
|
35
|
+
## Consequences
|
|
36
|
+
|
|
37
|
+
- **Positive**: {What improves as a result of this decision}
|
|
38
|
+
- **Negative**: {Trade-offs and costs accepted}
|
|
39
|
+
- **Risks**: {Future considerations, potential issues to monitor}
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- guides/harness-engineering/README.md
|
|
44
|
+
- {related skill or agent, e.g. .codex/skills/action-validator/SKILL.md}
|
|
45
|
+
- {link to issue or PR if applicable}
|
|
@@ -24,6 +24,7 @@ Routes agent management tasks to the appropriate manager agent. This skill conta
|
|
|
24
24
|
| mgr-claude-code-bible | Claude Code spec compliance | "spec check", "verify compliance" |
|
|
25
25
|
| sys-memory-keeper | Memory operations | "save memory", "recall", "memory search" |
|
|
26
26
|
| sys-naggy | TODO management | "todo", "track tasks", "task list" |
|
|
27
|
+
| tracker-checkpoint | Pipeline checkpoint state | "pipeline resume", "checkpoint", "state restore" |
|
|
27
28
|
|
|
28
29
|
## Routing Decision (Priority Order)
|
|
29
30
|
|
|
@@ -51,6 +52,7 @@ verify → mgr-sauron
|
|
|
51
52
|
spec → mgr-claude-code-bible
|
|
52
53
|
memory → sys-memory-keeper
|
|
53
54
|
todo → sys-naggy
|
|
55
|
+
checkpoint → tracker-checkpoint
|
|
54
56
|
improve-report → omcodex:improve-report (skill invocation)
|
|
55
57
|
auto-improve → omcodex:auto-improve (skill invocation)
|
|
56
58
|
batch → multiple (parallel)
|
|
@@ -106,6 +108,7 @@ When command requires multiple independent operations:
|
|
|
106
108
|
| mgr-claude-code-bible | sonnet | Spec compliance checks |
|
|
107
109
|
| sys-memory-keeper | sonnet | Memory operations, search |
|
|
108
110
|
| sys-naggy | haiku | Simple TODO tracking |
|
|
111
|
+
| tracker-checkpoint | sonnet | Pipeline state recovery |
|
|
109
112
|
|
|
110
113
|
## No Match Fallback
|
|
111
114
|
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Verify R006 Context Fork Criteria matches actual SKILL.md frontmatter.
|
|
3
|
+
# Usage: bash .github/scripts/verify-fork-list.sh
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
7
|
+
RULE_FILE="${ROOT}/.codex/rules/MUST-agent-design.md"
|
|
8
|
+
SKILLS_DIR="${ROOT}/.codex/skills"
|
|
9
|
+
|
|
10
|
+
if [[ ! -f "${RULE_FILE}" ]]; then
|
|
11
|
+
echo "error: ${RULE_FILE} not found" >&2
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
if [[ ! -d "${SKILLS_DIR}" ]]; then
|
|
16
|
+
echo "error: ${SKILLS_DIR} not found" >&2
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
DOC_LINE="$(grep -E 'Current: [0-9]+/12 \(' "${RULE_FILE}" | head -1 || true)"
|
|
21
|
+
|
|
22
|
+
if [[ -z "${DOC_LINE}" ]]; then
|
|
23
|
+
echo "error: R006 Context Fork Criteria line not found" >&2
|
|
24
|
+
exit 1
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
DOC_COUNT="$(printf '%s\n' "${DOC_LINE}" | sed -E 's#.*Current: ([0-9]+)/12.*#\1#')"
|
|
28
|
+
DOC_LIST="$(printf '%s\n' "${DOC_LINE}" | sed -E 's#.*Current: [0-9]+/12 \(([^)]*)\).*#\1#' | tr ',' '\n' | sed 's/^ *//; s/ *$//' | sort)"
|
|
29
|
+
|
|
30
|
+
ACTUAL_LIST="$(
|
|
31
|
+
for skill_file in "${SKILLS_DIR}"/*/SKILL.md; do
|
|
32
|
+
[[ -f "${skill_file}" ]] || continue
|
|
33
|
+
if awk '
|
|
34
|
+
BEGIN { in_frontmatter = 0; found = 0 }
|
|
35
|
+
NR == 1 && $0 == "---" { in_frontmatter = 1; next }
|
|
36
|
+
in_frontmatter && $0 == "---" { exit }
|
|
37
|
+
in_frontmatter && $0 ~ /^context:[[:space:]]*fork[[:space:]]*$/ { found = 1 }
|
|
38
|
+
END { exit found ? 0 : 1 }
|
|
39
|
+
' "${skill_file}"; then
|
|
40
|
+
skill_name="$(awk '
|
|
41
|
+
NR == 1 && $0 == "---" { in_frontmatter = 1; next }
|
|
42
|
+
in_frontmatter && $0 == "---" { exit }
|
|
43
|
+
in_frontmatter && $0 ~ /^name:[[:space:]]*/ {
|
|
44
|
+
sub(/^name:[[:space:]]*/, "")
|
|
45
|
+
gsub(/^"|"$/, "")
|
|
46
|
+
print
|
|
47
|
+
exit
|
|
48
|
+
}
|
|
49
|
+
' "${skill_file}")"
|
|
50
|
+
if [[ -z "${skill_name}" ]]; then
|
|
51
|
+
echo "error: context: fork skill has no frontmatter name: ${skill_file}" >&2
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
printf '%s\n' "${skill_name}"
|
|
55
|
+
fi
|
|
56
|
+
done | sort
|
|
57
|
+
)"
|
|
58
|
+
|
|
59
|
+
ACTUAL_COUNT="$(printf '%s\n' "${ACTUAL_LIST}" | sed '/^$/d' | wc -l | tr -d ' ')"
|
|
60
|
+
DOC_LIST_COUNT="$(printf '%s\n' "${DOC_LIST}" | sed '/^$/d' | wc -l | tr -d ' ')"
|
|
61
|
+
|
|
62
|
+
DOC_TMP="$(mktemp)"
|
|
63
|
+
ACTUAL_TMP="$(mktemp)"
|
|
64
|
+
trap 'rm -f "${DOC_TMP}" "${ACTUAL_TMP}"' EXIT
|
|
65
|
+
|
|
66
|
+
printf '%s\n' "${DOC_LIST}" | sed '/^$/d' > "${DOC_TMP}"
|
|
67
|
+
printf '%s\n' "${ACTUAL_LIST}" | sed '/^$/d' > "${ACTUAL_TMP}"
|
|
68
|
+
|
|
69
|
+
MISSING="$(comm -23 "${ACTUAL_TMP}" "${DOC_TMP}" || true)"
|
|
70
|
+
EXTRA="$(comm -13 "${ACTUAL_TMP}" "${DOC_TMP}" || true)"
|
|
71
|
+
|
|
72
|
+
echo "R006 documented count: ${DOC_COUNT}"
|
|
73
|
+
echo "R006 listed skills: ${DOC_LIST_COUNT}"
|
|
74
|
+
echo "Actual fork skill count: ${ACTUAL_COUNT}"
|
|
75
|
+
echo ""
|
|
76
|
+
echo "Actual fork skills:"
|
|
77
|
+
sed 's/^/ - /' "${ACTUAL_TMP}"
|
|
78
|
+
|
|
79
|
+
if [[ "${DOC_COUNT}" != "${ACTUAL_COUNT}" || "${DOC_LIST_COUNT}" != "${ACTUAL_COUNT}" || -n "${MISSING}" || -n "${EXTRA}" ]]; then
|
|
80
|
+
echo ""
|
|
81
|
+
echo "ERROR: R006 fork list drift detected"
|
|
82
|
+
[[ "${DOC_COUNT}" != "${ACTUAL_COUNT}" ]] && echo " - documented count ${DOC_COUNT} != actual count ${ACTUAL_COUNT}"
|
|
83
|
+
[[ "${DOC_LIST_COUNT}" != "${ACTUAL_COUNT}" ]] && echo " - listed skill count ${DOC_LIST_COUNT} != actual count ${ACTUAL_COUNT}"
|
|
84
|
+
if [[ -n "${MISSING}" ]]; then
|
|
85
|
+
echo " - missing from R006:"
|
|
86
|
+
printf '%s\n' "${MISSING}" | sed 's/^/ - /'
|
|
87
|
+
fi
|
|
88
|
+
if [[ -n "${EXTRA}" ]]; then
|
|
89
|
+
echo " - extra in R006:"
|
|
90
|
+
printf '%s\n' "${EXTRA}" | sed 's/^/ - /'
|
|
91
|
+
fi
|
|
92
|
+
echo " Fix: update Context Fork Criteria in ${RULE_FILE}"
|
|
93
|
+
exit 1
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
echo ""
|
|
97
|
+
echo "OK: R006 fork list matches actual SKILL.md frontmatter (${ACTUAL_COUNT}/12)"
|
package/templates/AGENTS.md.en
CHANGED
|
@@ -128,7 +128,7 @@ NO EXCEPTIONS. NO EXCUSES.
|
|
|
128
128
|
project/
|
|
129
129
|
+-- AGENTS.md # Entry point
|
|
130
130
|
+-- .codex/
|
|
131
|
-
| +-- agents/ # Subagent definitions (
|
|
131
|
+
| +-- agents/ # Subagent definitions (49 files)
|
|
132
132
|
| +-- rules/ # Global rules (R000-R020)
|
|
133
133
|
| +-- hooks/ # Hook scripts (security, validation, HUD)
|
|
134
134
|
| +-- contexts/ # Context files (ecomode)
|
|
@@ -164,17 +164,18 @@ This is the core oh-my-customcodex philosophy: **"No expert? CREATE one, connect
|
|
|
164
164
|
|------|-------|--------|
|
|
165
165
|
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java21-expert |
|
|
166
166
|
| SW Engineer/Backend | 6 | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert, be-django-expert |
|
|
167
|
-
| SW Engineer/Frontend |
|
|
167
|
+
| SW Engineer/Frontend | 5 | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
168
168
|
| SW Engineer/Tooling | 3 | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
169
169
|
| DE Engineer | 6 | de-airflow-expert, de-dbt-expert, de-spark-expert, de-kafka-expert, de-snowflake-expert, de-pipeline-expert |
|
|
170
|
-
| SW Engineer/Database |
|
|
170
|
+
| SW Engineer/Database | 4 | db-supabase-expert, db-postgres-expert, db-redis-expert, db-alembic-expert |
|
|
171
171
|
| Security | 1 | sec-codeql-expert |
|
|
172
172
|
| SW Architect | 2 | arch-documenter, arch-speckit-agent |
|
|
173
173
|
| Infra Engineer | 2 | infra-docker-expert, infra-aws-expert |
|
|
174
174
|
| QA Team | 3 | qa-planner, qa-writer, qa-engineer |
|
|
175
175
|
| Manager | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
176
|
-
| System |
|
|
177
|
-
|
|
|
176
|
+
| System | 3 | sys-memory-keeper, sys-naggy, tracker-checkpoint |
|
|
177
|
+
| Auxiliary | 2 | slack-cli-expert, wiki-curator |
|
|
178
|
+
| **Total** | **49** | |
|
|
178
179
|
|
|
179
180
|
## Agent Teams (MUST when enabled)
|
|
180
181
|
|
package/templates/AGENTS.md.ko
CHANGED
|
@@ -128,7 +128,7 @@ oh-my-customcodex로 구동됩니다.
|
|
|
128
128
|
project/
|
|
129
129
|
+-- AGENTS.md # 진입점
|
|
130
130
|
+-- .codex/
|
|
131
|
-
| +-- agents/ # 서브에이전트 정의 (
|
|
131
|
+
| +-- agents/ # 서브에이전트 정의 (49 파일)
|
|
132
132
|
| +-- rules/ # 전역 규칙 (R000-R020)
|
|
133
133
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
134
134
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
@@ -164,17 +164,18 @@ project/
|
|
|
164
164
|
|------|------|----------|
|
|
165
165
|
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java21-expert |
|
|
166
166
|
| SW Engineer/Backend | 6 | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert, be-django-expert |
|
|
167
|
-
| SW Engineer/Frontend |
|
|
167
|
+
| SW Engineer/Frontend | 5 | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
168
168
|
| SW Engineer/Tooling | 3 | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
169
169
|
| DE Engineer | 6 | de-airflow-expert, de-dbt-expert, de-spark-expert, de-kafka-expert, de-snowflake-expert, de-pipeline-expert |
|
|
170
|
-
| SW Engineer/Database |
|
|
170
|
+
| SW Engineer/Database | 4 | db-supabase-expert, db-postgres-expert, db-redis-expert, db-alembic-expert |
|
|
171
171
|
| Security | 1 | sec-codeql-expert |
|
|
172
172
|
| SW Architect | 2 | arch-documenter, arch-speckit-agent |
|
|
173
173
|
| Infra Engineer | 2 | infra-docker-expert, infra-aws-expert |
|
|
174
174
|
| QA Team | 3 | qa-planner, qa-writer, qa-engineer |
|
|
175
175
|
| Manager | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
176
|
-
| System |
|
|
177
|
-
|
|
|
176
|
+
| System | 3 | sys-memory-keeper, sys-naggy, tracker-checkpoint |
|
|
177
|
+
| Auxiliary | 2 | slack-cli-expert, wiki-curator |
|
|
178
|
+
| **총계** | **49** | |
|
|
178
179
|
|
|
179
180
|
## Agent Teams (MUST when enabled)
|
|
180
181
|
|
package/templates/CLAUDE.md
CHANGED
|
@@ -114,7 +114,7 @@ oh-my-customcodex로 구동됩니다.
|
|
|
114
114
|
project/
|
|
115
115
|
+-- AGENTS.md # 진입점
|
|
116
116
|
+-- .codex/
|
|
117
|
-
| +-- agents/ # 서브에이전트 정의 (
|
|
117
|
+
| +-- agents/ # 서브에이전트 정의 (49 파일)
|
|
118
118
|
| +-- rules/ # 전역 규칙 (R000-R022)
|
|
119
119
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
120
120
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
@@ -166,7 +166,7 @@ oh-my-customcodex는 소프트웨어 컴파일과 동일한 구조를 따릅니
|
|
|
166
166
|
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java21-expert |
|
|
167
167
|
| SW Engineer/Backend | 6 | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert, be-django-expert |
|
|
168
168
|
| SW Engineer/Frontend | 5 | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
169
|
-
| SW Engineer/Tooling |
|
|
169
|
+
| SW Engineer/Tooling | 3 | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
170
170
|
| DE Engineer | 6 | de-airflow-expert, de-dbt-expert, de-spark-expert, de-kafka-expert, de-snowflake-expert, de-pipeline-expert |
|
|
171
171
|
| SW Engineer/Database | 4 | db-supabase-expert, db-postgres-expert, db-redis-expert, db-alembic-expert |
|
|
172
172
|
| Security | 1 | sec-codeql-expert |
|
|
@@ -174,8 +174,9 @@ oh-my-customcodex는 소프트웨어 컴파일과 동일한 구조를 따릅니
|
|
|
174
174
|
| Infra Engineer | 2 | infra-docker-expert, infra-aws-expert |
|
|
175
175
|
| QA Team | 3 | qa-planner, qa-writer, qa-engineer |
|
|
176
176
|
| Manager | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
177
|
-
| System | 3 | sys-memory-keeper, sys-naggy,
|
|
178
|
-
|
|
|
177
|
+
| System | 3 | sys-memory-keeper, sys-naggy, tracker-checkpoint |
|
|
178
|
+
| Auxiliary | 2 | slack-cli-expert, wiki-curator |
|
|
179
|
+
| **총계** | **49** | |
|
|
179
180
|
|
|
180
181
|
## Agent Teams (MUST when enabled)
|
|
181
182
|
|
package/templates/CLAUDE.md.en
CHANGED
|
@@ -131,7 +131,7 @@ NO EXCEPTIONS. NO EXCUSES.
|
|
|
131
131
|
project/
|
|
132
132
|
+-- AGENTS.md # Entry point
|
|
133
133
|
+-- .codex/
|
|
134
|
-
| +-- agents/ # Subagent definitions (
|
|
134
|
+
| +-- agents/ # Subagent definitions (49 files)
|
|
135
135
|
| +-- skills/ # Skills (109 directories)
|
|
136
136
|
| +-- rules/ # Global rules (22 files)
|
|
137
137
|
| +-- hooks/ # Hook scripts (security, validation, HUD)
|
|
@@ -167,7 +167,7 @@ This is the core oh-my-customcodex philosophy: **"No expert? CREATE one, connect
|
|
|
167
167
|
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java21-expert |
|
|
168
168
|
| SW Engineer/Backend | 6 | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert, be-django-expert |
|
|
169
169
|
| SW Engineer/Frontend | 5 | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
170
|
-
| SW Engineer/Tooling |
|
|
170
|
+
| SW Engineer/Tooling | 3 | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
171
171
|
| DE Engineer | 6 | de-airflow-expert, de-dbt-expert, de-spark-expert, de-kafka-expert, de-snowflake-expert, de-pipeline-expert |
|
|
172
172
|
| SW Engineer/Database | 4 | db-supabase-expert, db-postgres-expert, db-redis-expert, db-alembic-expert |
|
|
173
173
|
| Security | 1 | sec-codeql-expert |
|
|
@@ -175,8 +175,9 @@ This is the core oh-my-customcodex philosophy: **"No expert? CREATE one, connect
|
|
|
175
175
|
| Infra Engineer | 2 | infra-docker-expert, infra-aws-expert |
|
|
176
176
|
| QA Team | 3 | qa-planner, qa-writer, qa-engineer |
|
|
177
177
|
| Manager | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
178
|
-
| System | 3 | sys-memory-keeper, sys-naggy,
|
|
179
|
-
|
|
|
178
|
+
| System | 3 | sys-memory-keeper, sys-naggy, tracker-checkpoint |
|
|
179
|
+
| Auxiliary | 2 | slack-cli-expert, wiki-curator |
|
|
180
|
+
| **Total** | **49** | |
|
|
180
181
|
|
|
181
182
|
## Agent Teams (MUST when enabled)
|
|
182
183
|
|
package/templates/CLAUDE.md.ko
CHANGED
|
@@ -131,7 +131,7 @@ oh-my-customcodex로 구동됩니다.
|
|
|
131
131
|
project/
|
|
132
132
|
+-- AGENTS.md # 진입점
|
|
133
133
|
+-- .codex/
|
|
134
|
-
| +-- agents/ # 서브에이전트 정의 (
|
|
134
|
+
| +-- agents/ # 서브에이전트 정의 (49 파일)
|
|
135
135
|
| +-- skills/ # 스킬 (109 디렉토리)
|
|
136
136
|
| +-- rules/ # 전역 규칙 (22 파일)
|
|
137
137
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
@@ -167,7 +167,7 @@ project/
|
|
|
167
167
|
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java21-expert |
|
|
168
168
|
| SW Engineer/Backend | 6 | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert, be-django-expert |
|
|
169
169
|
| SW Engineer/Frontend | 5 | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
170
|
-
| SW Engineer/Tooling |
|
|
170
|
+
| SW Engineer/Tooling | 3 | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
171
171
|
| DE Engineer | 6 | de-airflow-expert, de-dbt-expert, de-spark-expert, de-kafka-expert, de-snowflake-expert, de-pipeline-expert |
|
|
172
172
|
| SW Engineer/Database | 4 | db-supabase-expert, db-postgres-expert, db-redis-expert, db-alembic-expert |
|
|
173
173
|
| Security | 1 | sec-codeql-expert |
|
|
@@ -175,8 +175,9 @@ project/
|
|
|
175
175
|
| Infra Engineer | 2 | infra-docker-expert, infra-aws-expert |
|
|
176
176
|
| QA Team | 3 | qa-planner, qa-writer, qa-engineer |
|
|
177
177
|
| Manager | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
178
|
-
| System | 3 | sys-memory-keeper, sys-naggy,
|
|
179
|
-
|
|
|
178
|
+
| System | 3 | sys-memory-keeper, sys-naggy, tracker-checkpoint |
|
|
179
|
+
| Auxiliary | 2 | slack-cli-expert, wiki-curator |
|
|
180
|
+
| **총계** | **49** | |
|
|
180
181
|
|
|
181
182
|
## Agent Teams (MUST when enabled)
|
|
182
183
|
|
package/templates/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
3
|
-
"lastUpdated": "2026-04-
|
|
2
|
+
"version": "0.4.0",
|
|
3
|
+
"lastUpdated": "2026-04-24T14:35:00.000Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "rules",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"name": "agents",
|
|
13
13
|
"path": ".codex/agents",
|
|
14
14
|
"description": "AI agent definitions (flat .md files with prefixes)",
|
|
15
|
-
"files":
|
|
15
|
+
"files": 49
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"name": "skills",
|
|
@@ -29,7 +29,13 @@ steps:
|
|
|
29
29
|
foreach: release-group
|
|
30
30
|
|
|
31
31
|
- name: implement
|
|
32
|
-
prompt:
|
|
32
|
+
prompt: |
|
|
33
|
+
Execute implementation plan with appropriate agents.
|
|
34
|
+
|
|
35
|
+
Codex-native sensitive-path policy:
|
|
36
|
+
- Codex-managed `.codex/` edits use the normal edit/patch flow.
|
|
37
|
+
- Do not adopt upstream Claude-only `/tmp` bypass guidance as the default path.
|
|
38
|
+
- If a port requires `.claude` template parity changes, make the change explicit and verify sensitive-path guard tests.
|
|
33
39
|
description: Execute implementation plan with appropriate agents
|
|
34
40
|
foreach: planned-issue
|
|
35
41
|
|