docs: Rename brand-voice to brand-writer skill - #62384
Conversation
docs/.conventions/brand-voice/SKILL.md declares `name: brand-writer`
while sitting in a directory called `brand-voice`. The Agent Skills spec
requires the two to be identical, so this skill fails `skills-ref
validate` today.
The directory is the side that is wrong, for three reasons that are all
visible in this repository:
* .factory/skills/brand-writer/ holds the same four files under the
matching name;
* crates/agent_skills/README.md documents the skill system using this
exact skill, and the name it documents is brand-writer — `skill {
name: "brand-writer" }`, `/brand-writer`, and
`<skill_content name="brand-writer">`;
* six of the repository's seven skills already match their directory
(humanizer, gpui-test, lint-creator, zed-cherry-pick, create-skill,
and .factory's brand-writer).
The frontmatter is untouched — `name: brand-writer` is what everything
else already expects. Only the directory moves, along with the two
references to it in docs/.conventions/CONVENTIONS.md. `git grep
brand-voice` returns nothing afterwards.
Spec: https://agentskills.io/specification#name-field
|
We require contributors to sign our Contributor License Agreement, and we don't have @bechor25 on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'. |
|
@cla-bot check |
|
We require contributors to sign our Contributor License Agreement, and we don't have @bechor25 on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'. |
|
The cla-bot has been summoned, and re-checked this pull request! |
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
|
@dinocosta CLA is signed and the check is green now ( Two things left that need someone with write access:
And thanks for confirming the direction — keeping it consistent with |
|
Thanks! 🙂 |
## What `docs/.conventions/brand-voice/SKILL.md` declares: ```yaml name: brand-writer ``` while sitting in a directory called `brand-voice`. The Agent Skills specification requires the two to be identical: > The required `name` field: … **Must match the parent directory name** > — <https://agentskills.io/specification#name-field> So this skill fails `skills-ref validate` today. ## Which side is wrong The directory — and this repository settles it three separate ways, with no outside context needed. **1. The sibling copy already uses the matching name.** `.factory/skills/brand-writer/` holds the same four files (`SKILL.md`, `rubric.md`, `taboo-phrases.md`, `voice-examples.md`) under `brand-writer`. **2. `crates/agent_skills/README.md` documents the skill system using this exact skill, and the name it documents is `brand-writer`:** ``` line 107: <name>brand-writer</name> line 149: the model … calls `skill { name: "brand-writer" }` line 151: when the user types `/brand-writer` line 158: <skill_content name="brand-writer"> ``` That name is load-bearing — it is what the skill tool invokes and what the slash command types. The directory name is referenced twice, both inside `docs/.conventions/CONVENTIONS.md`. **3. Six of the repository's seven skills already match their directory:** | skill | matches? | | --- | --- | | `.agents/skills/gpui-test` | ✅ | | `.agents/skills/lint-creator` | ✅ | | `.agents/skills/zed-cherry-pick` | ✅ | | `.factory/skills/brand-writer` | ✅ | | `.factory/skills/humanizer` | ✅ | | `crates/agent_skills/builtin/create-skill` | ✅ | | **`docs/.conventions/brand-voice`** | ❌ the only one | ## The change The frontmatter is untouched. Only the directory moves, plus the two references to it: - `docs/.conventions/brand-voice/` → `docs/.conventions/brand-writer/` (4 files, pure rename) - `CONVENTIONS.md:5` — `[brand-voice/](./brand-voice/)` → `[brand-writer/](./brand-writer/)` - `CONVENTIONS.md:368` — `` `brand-voice/rubric.md` `` → `` `brand-writer/rubric.md` `` `git grep brand-voice` returns nothing afterwards. If you would rather keep the directory name and rename the field to `brand-voice`, that is a one-line change instead and I am happy to switch it — but it would give the two copies of one skill two different names, and it would diverge from the name `crates/agent_skills/README.md` documents. ## One thing I noticed but did not touch The two copies have drifted. `.factory/skills/brand-writer/SKILL.md` is 279 lines and includes a *"Phase 4: Humanizer Pass"* section; `docs/.conventions/`'s copy is 265 lines, lacks that section, and renumbers Validation from Phase 5 to Phase 4. That is a separate question about which copy is canonical, so it is left alone here. --- Found with [AgentCompass](https://github.com/YoavLax/agent-compass), an offline static analyzer for AI-agent repo readiness. Verified by hand against the spec before opening. Release Notes: - N/A
What
docs/.conventions/brand-voice/SKILL.mddeclares:while sitting in a directory called
brand-voice.The Agent Skills specification requires the two to be identical:
So this skill fails
skills-ref validatetoday.Which side is wrong
The directory — and this repository settles it three separate ways, with no outside context needed.
1. The sibling copy already uses the matching name.
.factory/skills/brand-writer/holds the same four files (SKILL.md,rubric.md,taboo-phrases.md,voice-examples.md) underbrand-writer.2.
crates/agent_skills/README.mddocuments the skill system using this exact skill, and the name it documents isbrand-writer:That name is load-bearing — it is what the skill tool invokes and what the slash command types. The directory name is referenced twice, both inside
docs/.conventions/CONVENTIONS.md.3. Six of the repository's seven skills already match their directory:
.agents/skills/gpui-test.agents/skills/lint-creator.agents/skills/zed-cherry-pick.factory/skills/brand-writer.factory/skills/humanizercrates/agent_skills/builtin/create-skilldocs/.conventions/brand-voiceThe change
The frontmatter is untouched. Only the directory moves, plus the two references to it:
docs/.conventions/brand-voice/→docs/.conventions/brand-writer/(4 files, pure rename)CONVENTIONS.md:5—[brand-voice/](./brand-voice/)→[brand-writer/](./brand-writer/)CONVENTIONS.md:368—`brand-voice/rubric.md`→`brand-writer/rubric.md`git grep brand-voicereturns nothing afterwards.If you would rather keep the directory name and rename the field to
brand-voice, that is a one-line change instead and I am happy to switch it — but it would give the two copies of one skill two different names, and it would diverge from the namecrates/agent_skills/README.mddocuments.One thing I noticed but did not touch
The two copies have drifted.
.factory/skills/brand-writer/SKILL.mdis 279 lines and includes a "Phase 4: Humanizer Pass" section;docs/.conventions/'s copy is 265 lines, lacks that section, and renumbers Validation from Phase 5 to Phase 4. That is a separate question about which copy is canonical, so it is left alone here.Found with AgentCompass, an offline static analyzer for AI-agent repo readiness. Verified by hand against the spec before opening.
Release Notes: