refactor(cli)!: rename all skills and agents to consistent ce- prefix (#503)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -108,6 +108,21 @@ describe("writeCodexBundle", () => {
|
||||
)).toBe(true)
|
||||
})
|
||||
|
||||
test("preserves same-named user prompts during stale prompt cleanup", async () => {
|
||||
const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), "codex-prompts-preserve-"))
|
||||
const codexRoot = path.join(tempRoot, ".codex")
|
||||
const promptsDir = path.join(codexRoot, "prompts")
|
||||
await fs.mkdir(promptsDir, { recursive: true })
|
||||
await fs.writeFile(
|
||||
path.join(promptsDir, "ce-plan.md"),
|
||||
"---\ndescription: \"Project-local ce-plan helper\"\n---\n\nCustom prompt body\n",
|
||||
)
|
||||
|
||||
await writeCodexBundle(codexRoot, { prompts: [], skillDirs: [], generatedSkills: [] })
|
||||
|
||||
expect(await exists(path.join(promptsDir, "ce-plan.md"))).toBe(true)
|
||||
})
|
||||
|
||||
test("preserves existing user config when writing MCP servers", async () => {
|
||||
const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), "codex-backup-"))
|
||||
const codexRoot = path.join(tempRoot, ".codex")
|
||||
@@ -267,31 +282,32 @@ describe("writeCodexBundle", () => {
|
||||
await fs.writeFile(
|
||||
path.join(sourceSkillDir, "SKILL.md"),
|
||||
`---
|
||||
name: ce:brainstorm
|
||||
name: ce-brainstorm
|
||||
description: Brainstorm workflow
|
||||
---
|
||||
|
||||
Continue with /ce:plan when ready.
|
||||
Continue with /ce-plan when ready.
|
||||
Or use /workflows:plan if you're following an older doc.
|
||||
Use /todo-resolve for deeper research.
|
||||
`,
|
||||
)
|
||||
await fs.writeFile(
|
||||
path.join(sourceSkillDir, "notes.md"),
|
||||
"Reference docs still mention /ce:plan here.\n",
|
||||
"Reference docs still mention /ce-plan here.\n",
|
||||
)
|
||||
|
||||
const bundle: CodexBundle = {
|
||||
prompts: [],
|
||||
skillDirs: [{ name: "ce:brainstorm", sourceDir: sourceSkillDir }],
|
||||
skillDirs: [{ name: "ce-brainstorm", sourceDir: sourceSkillDir }],
|
||||
generatedSkills: [],
|
||||
invocationTargets: {
|
||||
promptTargets: {
|
||||
"ce-plan": "ce-plan",
|
||||
"workflows-plan": "ce-plan",
|
||||
"todo-resolve": "todo-resolve",
|
||||
},
|
||||
skillTargets: {},
|
||||
skillTargets: {
|
||||
"ce-plan": "ce-plan",
|
||||
"workflows-plan": "ce-plan",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -301,7 +317,7 @@ Use /todo-resolve for deeper research.
|
||||
path.join(tempRoot, ".codex", "skills", "ce-brainstorm", "SKILL.md"),
|
||||
"utf8",
|
||||
)
|
||||
expect(installedSkill).toContain("/prompts:ce-plan")
|
||||
expect(installedSkill).toContain("the ce-plan skill")
|
||||
expect(installedSkill).not.toContain("/workflows:plan")
|
||||
expect(installedSkill).toContain("/prompts:todo-resolve")
|
||||
|
||||
@@ -309,7 +325,7 @@ Use /todo-resolve for deeper research.
|
||||
path.join(tempRoot, ".codex", "skills", "ce-brainstorm", "notes.md"),
|
||||
"utf8",
|
||||
)
|
||||
expect(notes).toContain("/ce:plan")
|
||||
expect(notes).toContain("/ce-plan")
|
||||
})
|
||||
|
||||
test("transforms namespaced Task calls in copied SKILL.md files", async () => {
|
||||
@@ -319,7 +335,7 @@ Use /todo-resolve for deeper research.
|
||||
await fs.writeFile(
|
||||
path.join(sourceSkillDir, "SKILL.md"),
|
||||
`---
|
||||
name: ce:plan
|
||||
name: ce-plan
|
||||
description: Planning workflow
|
||||
---
|
||||
|
||||
@@ -337,7 +353,7 @@ Also run bare agents:
|
||||
|
||||
const bundle: CodexBundle = {
|
||||
prompts: [],
|
||||
skillDirs: [{ name: "ce:plan", sourceDir: sourceSkillDir }],
|
||||
skillDirs: [{ name: "ce-plan", sourceDir: sourceSkillDir }],
|
||||
generatedSkills: [],
|
||||
invocationTargets: {
|
||||
promptTargets: {},
|
||||
@@ -386,7 +402,7 @@ API examples:
|
||||
- https://www.proofeditor.ai/share/markdown
|
||||
|
||||
Workflow handoff:
|
||||
- /ce:plan
|
||||
- /ce-plan
|
||||
`,
|
||||
)
|
||||
|
||||
@@ -395,10 +411,10 @@ Workflow handoff:
|
||||
skillDirs: [{ name: "proof", sourceDir: sourceSkillDir }],
|
||||
generatedSkills: [],
|
||||
invocationTargets: {
|
||||
promptTargets: {
|
||||
promptTargets: {},
|
||||
skillTargets: {
|
||||
"ce-plan": "ce-plan",
|
||||
},
|
||||
skillTargets: {},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -413,7 +429,7 @@ Workflow handoff:
|
||||
expect(installedSkill).toContain("/settings")
|
||||
expect(installedSkill).toContain("https://www.proofeditor.ai/api/agent/{slug}/state")
|
||||
expect(installedSkill).toContain("https://www.proofeditor.ai/share/markdown")
|
||||
expect(installedSkill).toContain("/prompts:ce-plan")
|
||||
expect(installedSkill).toContain("the ce-plan skill")
|
||||
expect(installedSkill).not.toContain("/prompts:users")
|
||||
expect(installedSkill).not.toContain("/prompts:settings")
|
||||
expect(installedSkill).not.toContain("https://prompts:www.proofeditor.ai")
|
||||
|
||||
Reference in New Issue
Block a user