feat(omo-codex): rework skill set around ulw-loop and planner agents

Rename ultragoal skill to ulw-loop with a CLI bootstrap fallback and
openai.yaml hint metadata, while keeping ultragoal as a discoverable
alias. Drop the metis and momus skills in favor of bundled ultrawork
planner agents and rewrite the planing-prometheustic skill. Update
aggregate and sync-skills tests to match.
This commit is contained in:
YeonGyu-Kim
2026-05-29 11:19:00 +09:00
parent a49acecc3a
commit 5030a116f3
12 changed files with 442 additions and 915 deletions
@@ -13,8 +13,6 @@ const expectedSkills = [
"frontend-ui-ux",
"init-deep",
"lsp",
"metis",
"momus",
"planing-prometheustic",
"programming",
"refactor",
@@ -43,6 +41,35 @@ test("#given synced aggregate Codex skills #when inspected #then component and s
}
});
test("#given synced ultragoal skill #when Codex hint metadata is inspected #then ulw-loop surfaces the ultragoal alias", async () => {
// given
const skillRoot = join(root, "skills", "ultragoal");
// when
const skill = await readFile(join(skillRoot, "SKILL.md"), "utf8");
const interfaceMetadata = await readFile(join(skillRoot, "agents", "openai.yaml"), "utf8");
// then
assert.match(skill, /^---\nname: ulw-loop\n/m);
assert.match(skill, /Goal-like loop that uses ultrawork mode to decompose work into systematic, evidence-bound steps\./);
assert.match(interfaceMetadata, /display_name: "ulw loop"/);
assert.doesNotMatch(interfaceMetadata, /ulw-loop \/ ultragoal/);
assert.match(interfaceMetadata, /short_description: "Goal-like ultrawork loop for systematic decomposition"/);
assert.match(interfaceMetadata, /default_prompt: "Use \$ulw-loop/);
});
test("#given synced ultragoal skill #when Codex hint metadata is inspected #then ultragoal remains discoverable as an alias", async () => {
// given
const skillRoot = join(root, "skills", "ultragoal");
// when
const interfaceMetadata = await readFile(join(skillRoot, "agents", "openai.yaml"), "utf8");
// then
assert.match(interfaceMetadata, /search_terms:/);
assert.match(interfaceMetadata, /- "ultragoal"/);
});
test("#given synced aggregate Codex skills #when they contain OpenCode orchestration examples #then Codex tool compatibility guidance is injected", async () => {
// given
const skillsRoot = join(root, "skills");