oh-my-codex-cli 0.2.0 → 0.2.2

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.
@@ -54,7 +54,7 @@ aireview --pr [PR_NUMBER] # Review specific PR
54
54
  aireview --pr --comment # Post review as PR comment
55
55
 
56
56
  # Deep review (Multi-AI collaboration)
57
- aireview --diff --deep # Gemini + Codex parallel analysis
57
+ aireview --diff --deep # Gemini + Claude Code parallel analysis
58
58
 
59
59
  # Standard file/directory review
60
60
  aireview ./src/auth
@@ -107,7 +107,7 @@ Layer 2: Gemini Deep Analysis (via gemp)
107
107
  - Security analysis
108
108
  - Performance implications
109
109
 
110
- Layer 3: Codex Quality Audit
110
+ Layer 3: Claude Code Quality Audit
111
111
  - TypeScript/React best practices (ISTJ persona)
112
112
  - Code maintainability
113
113
  - Pattern adherence
@@ -389,8 +389,8 @@ If MODE == "deep":
389
389
 
390
390
  cat /tmp/gemini_prompt.txt | node ~/.gemini/long_task_runner.js 2>&1
391
391
 
392
- Layer 3 - Codex Quality Audit:
393
- cat > /tmp/codex_prompt.txt << 'PROMPT_EOF'
392
+ Layer 3 - Claude Code Quality Audit:
393
+ cat > /tmp/claude_prompt.txt << 'PROMPT_EOF'
394
394
  你是 ISTJ 工程师,进行代码质量审计。
395
395
 
396
396
  已发现的高置信度问题:
@@ -415,7 +415,7 @@ If MODE == "deep":
415
415
  - 总体质量评分 (1-10)
416
416
  PROMPT_EOF
417
417
 
418
- cat /tmp/codex_prompt.txt | codex exec --dangerously-bypass-approvals-and-sandbox - 2>&1
418
+ cat /tmp/claude_prompt.txt | claude -p --output-format text --dangerously-skip-permissions 2>&1
419
419
 
420
420
  Layer 4 - Synthesis:
421
421
  Combine findings from all layers
@@ -481,8 +481,8 @@ Else:
481
481
  **Gemini 架构评分**: {gemini_score}/10
482
482
  {gemini_highlights}
483
483
 
484
- **Codex 质量评分**: {codex_score}/10
485
- {codex_highlights}
484
+ **Claude Code 质量评分**: {claude_score}/10
485
+ {claude_highlights}
486
486
  {end if}
487
487
 
488
488
  🤖 Generated with Codex
@@ -550,7 +550,7 @@ If --comment flag && pr_mode:
550
550
  - ✅ Git history 上下文分析
551
551
  - ✅ 相关 PR 分析
552
552
  - ✅ 代码注释合规性检查
553
- - ✅ 分层分析 (multi-agent → Gemini → Codex → synthesis)
553
+ - ✅ 分层分析 (multi-agent → Gemini → Claude Code → synthesis)
554
554
  - ✅ 详���的置信度评分标准
555
555
 
556
556
  ## CLI Implementation Templates
@@ -568,18 +568,18 @@ cat /tmp/gemini_prompt.txt | node ~/.gemini/long_task_runner.js 2>&1
568
568
  cat /tmp/gemini_prompt.txt | gemini --yolo 2>&1 | grep -v "STARTUP|YOLO|Load"
569
569
  ```
570
570
 
571
- ### Codex CLI
571
+ ### Claude Code CLI
572
572
  ```bash
573
- cat > /tmp/codex_prompt.txt << 'PROMPT_EOF'
573
+ cat > /tmp/claude_prompt.txt << 'PROMPT_EOF'
574
574
  {persona} 你的审查任务...
575
575
  PROMPT_EOF
576
- cat /tmp/codex_prompt.txt | codex exec --dangerously-bypass-approvals-and-sandbox - 2>&1
576
+ cat /tmp/claude_prompt.txt | claude -p --output-format text --dangerously-skip-permissions 2>&1
577
577
  ```
578
578
 
579
579
  ## Requirements
580
580
 
581
581
  - Gemini CLI (gemp/long_task_runner.js) configured
582
- - Codex CLI configured
582
+ - Claude Code CLI configured
583
583
  - GitHub CLI (`gh`) for PR mode
584
584
  - CLAUDE.md files (optional but recommended)
585
585
 
@@ -663,7 +663,7 @@ $ aireview origin/feature-payment --deep
663
663
 
664
664
  ✅ Layer 1: 多 agent 并行审查 (5 agents)
665
665
  ✅ Layer 2: Gemini 架构分析 (INTJ)
666
- ✅ Layer 3: Codex 质量审计 (ISTJ)
666
+ ✅ Layer 3: Claude Code 质量审计 (ISTJ)
667
667
  ✅ Layer 4: 综合分析
668
668
 
669
669
  ## 深度 AI 审查报告
@@ -678,7 +678,7 @@ $ aireview --diff --deep
678
678
 
679
679
  ✅ Layer 1: 多 agent 并行审查 (5 agents)
680
680
  ✅ Layer 2: Gemini 架构分析 (INTJ)
681
- ✅ Layer 3: Codex 质量审计 (ISTJ)
681
+ ✅ Layer 3: Claude Code 质量审计 (ISTJ)
682
682
  ✅ Layer 4: 综合分析
683
683
 
684
684
  ## 深度 AI 审查报告
package/AGENTS.md CHANGED
@@ -1,10 +1,10 @@
1
- <!-- Generated: 2026-01-31 | Updated: 2026-01-31 -->
1
+ <!-- Generated: 2026-01-31 | Updated: 2026-02-25 -->
2
2
 
3
3
  # oh-my-codex
4
4
 
5
5
  Skill pack and workflow orchestration for **OpenAI Codex CLI**.
6
6
 
7
- **Version:** 0.1.0
7
+ **Version:** 0.2.0
8
8
  **Purpose:** Make Codex behave like a multi-agent conductor using structured skills
9
9
 
10
10
  ## Purpose
@@ -20,25 +20,47 @@ oh-my-codex enhances Codex with:
20
20
  |------|-------------|
21
21
  | `README.md` | Entry point documentation |
22
22
  | `docs/CODEX.md` | Codex-specific install and usage guide |
23
- | `.agent/skills/` | All Codex skill definitions |
23
+ | `.codex/skills/` | All Codex skill definitions |
24
24
  | `scripts/install-codex.sh` | Global skill installer |
25
25
 
26
26
  ## For AI Agents
27
27
 
28
+ ### High-Priority Rules (Do First)
29
+
30
+ 1. Prefer retrieval-led reasoning over memory-led guessing.
31
+ 2. Build project context first, then apply skills/tools.
32
+ 3. Keep context lean: load only files needed for the current task.
33
+ 4. Verify with concrete evidence before claiming completion.
34
+
35
+ ### Retrieval-Led Reasoning (Mandatory)
36
+
37
+ For framework/runtime/library-specific work:
38
+ - Read the relevant repo docs/scripts first (`README.md`, `docs/`, `scripts/`, changed files).
39
+ - Treat docs as source of truth when conflict exists with model memory.
40
+ - Avoid speculative edits when version-specific behavior is unclear.
41
+
42
+ Execution order:
43
+ 1. Inspect task + affected files.
44
+ 2. Retrieve exact docs/config relevant to that task.
45
+ 3. Implement the minimal correct change.
46
+ 4. Validate with commands/checks.
47
+ 5. Report result with evidence.
48
+
28
49
  ### Skill Invocation
29
50
 
30
- Codex auto-loads skills from:
31
- - `~/.codex/skills/<skill>/SKILL.md`
32
- - `<repo>/.codex/skills/<skill>/SKILL.md`
51
+ Use skills as action workflows, not as the only knowledge source.
33
52
 
34
- When the user mentions a skill name or uses `$skill`, you should follow that skill.
53
+ Trigger rules:
54
+ - If user explicitly mentions a skill (or `$skill`), use it.
55
+ - If task clearly maps to a skill's purpose, use the minimal matching skill set.
56
+ - If a skill conflicts with repo source-of-truth docs, follow repo docs and state the conflict briefly.
35
57
 
36
58
  ### Source-of-Truth Workflow (Mandatory)
37
59
 
38
60
  For this repository, **`oh-my-codex` is the single source of truth** for skills and docs.
39
61
 
40
62
  Required order:
41
- 1. Edit and validate files in this repo first (for example `.agent/skills/**/SKILL.md`).
63
+ 1. Edit and validate files in this repo first (for example `.codex/skills/**/SKILL.md`).
42
64
  2. Commit/push repository changes.
43
65
  3. Install/sync to runtime using installer scripts (for example `scripts/install-codex.sh` / `scripts/install-codex-force.sh`).
44
66
 
@@ -52,7 +74,7 @@ Codex does **not** support Claude Code plugins, interception lifecycle APIs, or
52
74
  - `.claude/` plugin cache paths
53
75
  - Claude Code-specific CLI commands
54
76
 
55
- should be treated as **legacy** references from the original oh-my-claudecode.
77
+ ...should be treated as **legacy** references from the original oh-my-claudecode.
56
78
 
57
79
  ### Testing
58
80
 
package/README.md CHANGED
@@ -57,6 +57,31 @@ Installs:
57
57
  ./scripts/install-codex.sh --all --project
58
58
  ```
59
59
 
60
+ ## AGENTS.md Templates (Global + Project)
61
+
62
+ `omcodex setup` (user scope) now installs global guidance automatically:
63
+
64
+ - `templates/AGENTS.global.md` -> `~/.codex/AGENTS.md`
65
+
66
+ Use templates for manual override or project setup:
67
+
68
+ - Global template: `templates/AGENTS.global.md` -> `~/.codex/AGENTS.md`
69
+ - Project template: `templates/AGENTS.project.md` -> `<repo>/AGENTS.md`
70
+
71
+ Example:
72
+
73
+ ```bash
74
+ cp templates/AGENTS.global.md ~/.codex/AGENTS.md
75
+ cp templates/AGENTS.project.md ./AGENTS.md
76
+ ```
77
+
78
+ Optional discovery compatibility in `~/.codex/config.toml`:
79
+
80
+ ```toml
81
+ project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
82
+ project_doc_max_bytes = 65536
83
+ ```
84
+
60
85
  ---
61
86
 
62
87
  ## What You Get
package/README.zh.md CHANGED
@@ -52,6 +52,31 @@ npx oh-my-codex-cli setup
52
52
  ./scripts/install-codex.sh --all --project
53
53
  ```
54
54
 
55
+ ## AGENTS.md 模板(全局 + 项目)
56
+
57
+ `omcodex setup`(user scope)现在会自动安装全局 guidance:
58
+
59
+ - `templates/AGENTS.global.md` -> `~/.codex/AGENTS.md`
60
+
61
+ 模板仍可用于手动覆盖或项目级配置:
62
+
63
+ - 全局模板:`templates/AGENTS.global.md` -> 复制到 `~/.codex/AGENTS.md`
64
+ - 项目模板:`templates/AGENTS.project.md` -> 复制到 `<repo>/AGENTS.md`
65
+
66
+ 示例:
67
+
68
+ ```bash
69
+ cp templates/AGENTS.global.md ~/.codex/AGENTS.md
70
+ cp templates/AGENTS.project.md ./AGENTS.md
71
+ ```
72
+
73
+ 可选:在 `~/.codex/config.toml` 增加发现配置:
74
+
75
+ ```toml
76
+ project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
77
+ project_doc_max_bytes = 65536
78
+ ```
79
+
55
80
  ---
56
81
 
57
82
  ## 安装后你能获得什么
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-codex-cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Codex skill pack and workflow orchestration",
5
5
  "bin": {
6
6
  "omcodex": "bin/omcodex.js"
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-02-23T14:05:41.559Z",
2
+ "generatedAt": "2026-02-25T03:17:26.248Z",
3
3
  "counts": {
4
4
  "skillCount": 86,
5
5
  "promptCount": 3,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "catalogVersion": "2026-02-23",
3
+ "catalogVersion": "2026-02-25",
4
4
  "skills": [
5
5
  {
6
6
  "name": "agent-kb",
package/src/cli/index.js CHANGED
@@ -8,7 +8,7 @@ const { route } = require('./route');
8
8
  const HELP = `oh-my-codex CLI (omcodex)
9
9
 
10
10
  Usage:
11
- omcodex setup [--scope user|project-local|project] [--force] [--dry-run] [--verbose] [--no-prompts]
11
+ omcodex setup [--scope user|project-local|project] [--force] [--dry-run] [--verbose] [--no-prompts] [--no-agents]
12
12
  omcodex doctor
13
13
  omcodex team start \"<task>\"
14
14
  omcodex team status
@@ -54,6 +54,7 @@ async function main(args) {
54
54
  installSkills: !flags.has('--no-skills'),
55
55
  installPrompts: !flags.has('--no-prompts'),
56
56
  installRules: !flags.has('--no-rules'),
57
+ installAgents: !flags.has('--no-agents'),
57
58
  installConfig: !flags.has('--no-config'),
58
59
  });
59
60
  return;
package/src/cli/setup.js CHANGED
@@ -62,6 +62,16 @@ async function copyDirectory(src, dest, options) {
62
62
  return count;
63
63
  }
64
64
 
65
+ async function copyFile(src, dest, options) {
66
+ if (!fs.existsSync(src)) return false;
67
+ if (!options.force && fs.existsSync(dest)) return false;
68
+ if (!options.dryRun) {
69
+ await fsp.mkdir(path.dirname(dest), { recursive: true });
70
+ await fsp.copyFile(src, dest);
71
+ }
72
+ return true;
73
+ }
74
+
65
75
  async function setup(options = {}) {
66
76
  const cwd = process.cwd();
67
77
  const root = path.resolve(__dirname, '..', '..');
@@ -81,6 +91,12 @@ async function setup(options = {}) {
81
91
  const rulesDest = scope === 'user'
82
92
  ? path.join(os.homedir(), '.codex', 'rules')
83
93
  : path.join(cwd, '.codex', 'rules');
94
+ const globalAgentsSources = [
95
+ path.join(root, 'templates', 'AGENTS.global.md'),
96
+ path.join(root, 'templates', 'AGENTS.md'),
97
+ ];
98
+ const globalAgentsSource = globalAgentsSources.find((candidate) => fs.existsSync(candidate)) || null;
99
+ const globalAgentsDest = path.join(os.homedir(), '.codex', 'AGENTS.md');
84
100
  const promptsSrc = promptsSource(root);
85
101
  const promptsDest = codexPromptsPath(scope, cwd);
86
102
 
@@ -97,7 +113,7 @@ async function setup(options = {}) {
97
113
 
98
114
  await persistScope(cwd, scope, options.dryRun);
99
115
 
100
- console.log('[1/5] Installing skills...');
116
+ console.log('[1/6] Installing skills...');
101
117
  const shouldInstallSkills = options.installSkills !== false && scope !== 'project';
102
118
  const skillCount = shouldInstallSkills
103
119
  ? await copyDirectory(skillSrc, skillsDest, options)
@@ -109,7 +125,7 @@ async function setup(options = {}) {
109
125
  console.log(' Skipped for project scope');
110
126
  }
111
127
 
112
- console.log('[2/5] Installing prompts...');
128
+ console.log('[2/6] Installing prompts...');
113
129
  const shouldInstallPrompts = options.installPrompts !== false && scope !== 'project';
114
130
  if (!shouldInstallPrompts) {
115
131
  console.log(' Skipped (--no-prompts or project scope)');
@@ -121,7 +137,7 @@ async function setup(options = {}) {
121
137
  console.log(` ${label} ${promptCount} files -> ${promptsDest}`);
122
138
  }
123
139
 
124
- console.log('[3/5] Installing rules...');
140
+ console.log('[3/6] Installing rules...');
125
141
  if (options.installRules !== false) {
126
142
  const ruleCount = await copyDirectory(rulesSource, rulesDest, options);
127
143
  const label = options.dryRun ? 'Would install/update' : 'Installed/updated';
@@ -130,7 +146,25 @@ async function setup(options = {}) {
130
146
  console.log(' Skipped (--no-rules)');
131
147
  }
132
148
 
133
- console.log('[4/5] Merging config.toml...');
149
+ console.log('[4/6] Installing global AGENTS.md...');
150
+ if (options.installAgents === false) {
151
+ console.log(' Skipped (--no-agents)');
152
+ } else if (scope !== 'user') {
153
+ console.log(' Skipped (only applies to user scope)');
154
+ } else if (!globalAgentsSource) {
155
+ console.log(' Skipped (missing templates/AGENTS.global.md and templates/AGENTS.md)');
156
+ } else {
157
+ const installed = await copyFile(globalAgentsSource, globalAgentsDest, options);
158
+ const label = options.dryRun ? 'Would install/update' : 'Installed/updated';
159
+ if (installed || options.force || options.dryRun) {
160
+ console.log(` ${label} ${globalAgentsDest}`);
161
+ console.log(` Source: ${path.relative(root, globalAgentsSource)}`);
162
+ } else {
163
+ console.log(` Skipped (already exists): ${globalAgentsDest}`);
164
+ }
165
+ }
166
+
167
+ console.log('[5/6] Merging config.toml...');
134
168
  if (options.installConfig !== false && !options.dryRun) {
135
169
  mergeConfig(configPath, root, { enableContext7: options.enableContext7 });
136
170
  }
@@ -141,7 +175,7 @@ async function setup(options = {}) {
141
175
  console.log(' Skipped (--no-config)');
142
176
  }
143
177
 
144
- console.log('[5/5] Catalog check...');
178
+ console.log('[6/6] Catalog check...');
145
179
  const headline = getCatalogHeadlineCounts(root);
146
180
  if (headline) {
147
181
  console.log(` Catalog baseline: ${headline.skills} skills, ${headline.prompts} prompts`);
@@ -0,0 +1,80 @@
1
+ # Global AGENTS.md for Codex
2
+
3
+ This file is designed for `~/.codex/AGENTS.md`.
4
+ It defines stable cross-project behavior and routes work to skills/workflows.
5
+
6
+ ## Objective
7
+
8
+ - Maximize first-pass execution quality.
9
+ - Make skill usage deterministic.
10
+ - Keep behavior consistent across repositories.
11
+
12
+ ## Priority and Conflict Rules
13
+
14
+ 1. System/developer/user instructions have highest priority.
15
+ 2. Repository-local docs and config are source of truth for project specifics.
16
+ 3. Skills are execution workflows, not source-of-truth for project facts.
17
+ 4. If guidance conflicts, follow the highest-priority applicable source and state the conflict briefly.
18
+
19
+ ## Default Work Contract
20
+
21
+ For every non-trivial request, execute in this order:
22
+ 1. Understand scope and affected files.
23
+ 2. Retrieve exact project context (docs/config/code) before implementation.
24
+ 3. Choose the minimal skill/toolset needed.
25
+ 4. Implement smallest correct change.
26
+ 5. Verify with concrete commands.
27
+ 6. Report outcome with evidence.
28
+
29
+ ## Skill Router
30
+
31
+ ### Explicit trigger
32
+
33
+ - If user names a skill (e.g., `$autopilot`, `use review`), invoke it.
34
+
35
+ ### Implicit trigger
36
+
37
+ - Planning/design requests -> `plan`, `review`, `architect-planner`.
38
+ - Build/test failures -> `build-fix`, `verification-loop`, `ultraqa`.
39
+ - Refactor/cleanup -> `refactor-clean`, `verify`.
40
+ - Security-sensitive changes -> `security-review` + relevant implementation skill.
41
+ - Broad delivery tasks -> `autopilot` (or `ultrapilot` for parallelized ownership).
42
+
43
+ ### Multi-skill composition
44
+
45
+ - Use the minimal set of skills that fully covers the task.
46
+ - State skill order before execution.
47
+ - Do not carry skills across turns unless user re-mentions or task scope still clearly requires them.
48
+
49
+ ## Retrieval-Led Reasoning
50
+
51
+ - Prefer current repository facts over memory.
52
+ - For version-sensitive behavior, inspect local docs/config and runtime outputs before editing.
53
+ - Avoid speculative changes when evidence is missing.
54
+
55
+ ## Verification Contract
56
+
57
+ Before claiming completion, provide:
58
+
59
+ 1. Commands executed for validation.
60
+ 2. Key pass/fail results.
61
+ 3. Exact file paths changed.
62
+ 4. Remaining risks or unverified assumptions.
63
+
64
+ ## Safety and Git Rules
65
+
66
+ - Never print or persist secrets/tokens in logs or docs.
67
+ - Do not run destructive git operations unless explicitly requested.
68
+ - Do not revert unrelated changes.
69
+ - Prefer reversible, minimal patches.
70
+
71
+ ## Response Contract
72
+
73
+ Use this output structure:
74
+
75
+ 1. Result summary
76
+ 2. Files changed
77
+ 3. Validation evidence
78
+ 4. Risks / next actions (if any)
79
+
80
+ Keep responses concise and execution-focused.
@@ -4,10 +4,16 @@ Skill pack and workflow orchestration for OpenAI Codex CLI.
4
4
 
5
5
  ## Guidance
6
6
 
7
- - Prefer skills for reusable workflows (`$skill` or explicit skill name in prompt).
8
- - Use Codex native multi-agent tools when a task benefits from delegation.
9
- - Verify outcomes with concrete evidence before claiming completion.
10
- - Keep instructions concise and implementation-focused.
7
+ 1. Prefer retrieval-led reasoning over memory-led guessing.
8
+ 2. Build project context first, then apply skills.
9
+ 3. Keep context lean and implementation-focused.
10
+ 4. Verify outcomes with concrete evidence before claiming completion.
11
+
12
+ ## Skill Usage
13
+
14
+ - Skills are execution workflows; docs/config are source-of-truth knowledge.
15
+ - If the user names a skill (or `$skill`), use it.
16
+ - If a skill conflicts with repository docs, follow repository docs and note the conflict.
11
17
 
12
18
  ## Notify Compatibility
13
19
 
@@ -0,0 +1,65 @@
1
+ # Project AGENTS.md (Enhanced)
2
+
3
+ This template is designed for repository root `AGENTS.md`.
4
+ It should complement global guidance with project-specific rules.
5
+
6
+ ## Project Identity
7
+
8
+ - Project name: <project-name>
9
+ - Runtime/stack: <stack>
10
+ - Main build/test commands: <commands>
11
+ - Deploy boundary: <what must not be touched>
12
+
13
+ ## Source of Truth
14
+
15
+ When rules conflict, use this order:
16
+ 1. Current task instructions.
17
+ 2. This repository's docs/config (`README`, `docs/`, `config files`).
18
+ 3. Skill workflow instructions.
19
+
20
+ ## Repository Working Rules
21
+
22
+ - Edit files in-repo first; do not patch runtime mirrors first.
23
+ - Keep changes minimal and scoped.
24
+ - If touching scripts or build config, run at least one quick verification command.
25
+ - Preserve existing architecture/style unless migration is explicitly requested.
26
+
27
+ ## Mandatory Execution Sequence
28
+
29
+ 1. Read task + locate impacted files.
30
+ 2. Read exact local docs/config related to those files.
31
+ 3. Implement minimal change.
32
+ 4. Run verification commands.
33
+ 5. Report with command evidence and changed file list.
34
+
35
+ ## Skill Policy (Project)
36
+
37
+ - Use explicit skill requests as-is.
38
+ - For ambiguous tasks, prefer conservative skill composition:
39
+ - implementation: `start-dev` or `autopilot`
40
+ - quality: `verification-loop` or `verify`
41
+ - risk-critical areas: `security-review`
42
+ - If a skill suggests behavior that conflicts with this repo's docs/config, follow repo docs/config.
43
+
44
+ ## Definition of Done
45
+
46
+ A task is done only when:
47
+
48
+ 1. Requested code/docs changes are applied.
49
+ 2. Appropriate checks have been run (or explicitly blocked with reason).
50
+ 3. Output includes what changed, where, and validation status.
51
+
52
+ ## High-Risk Guardrails
53
+
54
+ - No credential leaks in code, logs, or docs.
55
+ - No destructive git commands without explicit user request.
56
+ - No silent behavior changes without documenting impact.
57
+
58
+ ## Suggested Project-Specific Additions
59
+
60
+ Add concrete sections for your repo:
61
+
62
+ - Directory ownership (who/what owns `src/*`, `scripts/*`, `docs/*`)
63
+ - Command matrix (`lint`, `typecheck`, `test`, `build`)
64
+ - Release checklist (version bump, changelog, tag, package publish)
65
+ - Runtime compatibility constraints (Node version, package manager, OS)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "catalogVersion": "2026-02-23",
3
+ "catalogVersion": "2026-02-25",
4
4
  "skills": [
5
5
  {
6
6
  "name": "agent-kb",