Summary
skill publish refuses a name that already exists for this account with:
You already have a skill named "team-greeting" in this workspace. It was published from somewhere else, so this machine cannot update it — rename this one, or edit it in the workspace.
The phrase "in this workspace" is wrong. Skill names are unique per creator, across the account (#1280: "Names are unique per creator, so a blind re-create answers 409"). The message is shown when the workspace the project is linked to has never held a skill by that name, so the user goes looking in the wrong place. Observed on 0.12.1 (tenant anandtest1) while testing #1280/#1313 end to end.
Reproduction
- Project A, linked to workspace 11: author
.opencode/skills/team-greeting/SKILL.md, altimate-code skill publish team-greeting → Published "team-greeting" … (workspace 11 lists it).
- Fresh project B (never linked),
altimate-code link → "Create a quick workspace" → workspace 14 (empty, no skills).
- In B, author a different
team-greeting skill and run altimate-code skill publish team-greeting.
- Output is the message above. Workspace 14 has no skill named
team-greeting; the owner is workspace 11.
Source: packages/opencode/src/altimate/workspace/skill-publish.ts:261-267 (SkillNameConflictError).
Why it matters
- The user is told to "edit it in the workspace", opens workspace 14, finds nothing, and cannot tell where the conflicting skill lives.
- The local ledger explains the real situation (the id for that name is not known on this machine, or belongs to another project); the message should say that and name the workspace that holds the skill when the API returns it, or say "in your account" when it does not.
Suggested fix
Reword to the actual scope, e.g. A skill named "team-greeting" already exists in your account (published from another project or machine), so this publish cannot update it. Rename this skill, or update the original from where it was published. If the 409 detail carries the owning workspace or skill id, include it.
Summary
skill publishrefuses a name that already exists for this account with:The phrase "in this workspace" is wrong. Skill names are unique per creator, across the account (#1280: "Names are unique per creator, so a blind re-create answers 409"). The message is shown when the workspace the project is linked to has never held a skill by that name, so the user goes looking in the wrong place. Observed on 0.12.1 (tenant anandtest1) while testing #1280/#1313 end to end.
Reproduction
.opencode/skills/team-greeting/SKILL.md,altimate-code skill publish team-greeting→Published "team-greeting" …(workspace 11 lists it).altimate-code link→ "Create a quick workspace" → workspace 14 (empty, no skills).team-greetingskill and runaltimate-code skill publish team-greeting.team-greeting; the owner is workspace 11.Source:
packages/opencode/src/altimate/workspace/skill-publish.ts:261-267(SkillNameConflictError).Why it matters
Suggested fix
Reword to the actual scope, e.g.
A skill named "team-greeting" already exists in your account (published from another project or machine), so this publish cannot update it. Rename this skill, or update the original from where it was published.If the 409 detail carries the owning workspace or skill id, include it.