Namecraft
Name new projects and renames for the Agent Bench portfolio.
Read before every run:
references/portfolio-matrix.md — slot map, backfilled projects, story script
references/naming-sessions.md — prior decisions (Barrow, merge-scout, HiClaw)
references/reject-lexicon.md — hard rejects
references/audit-checklist.md — collision audit commands
Worldview (non-negotiable)
The Agent Bench — tools that let coding agents work like senior engineers.
Two materials coexist in one story:
- Workshop — shaping, parallel runs, signals at the bench (lathe, gmc, mote)
- Strata — what the bench produces sinks underground: layered, excavated, dreamed (barrow)
CLI name = brand name. No separate marketing alias.
English only. No Chinese brand names.
Lane selection (Step 2)
| Lane |
When |
Style |
Examples |
| A — Strata |
Flagship, worldview, memory/depth products |
Poetic noun, myth/literary/craft metaphor, memory or earth texture |
barrow, stele, alethe |
| B — Bench |
Utility CLI, daily-driver tools |
Verb-first, steipete line, Unix tool family |
pick, recall, lathe* |
* lathe is workshop craft but short enough to be a proper noun tool — treat as Bench craft slot, not Strata.
Decision tree:
- Is this a flagship / narrative anchor / memory layer? → Lane A
- Is this a CLI the user types 20× per day? → Lane B
- If both (embeddable crate + CLI): pick ONE word ≤6 letters; prefer matrix slot over lane purity
Hard constraints
- Length: ≤6 letters for repo, crate, npm, and CLI binary. No hyphens in the primary name.
- Collision: Full audit before recommending (see
references/audit-checklist.md). One RED = drop.
- Implementation leak: Name must not encode internal algorithms (e.g.
merge for merge-probability).
- Normal words ban: See
references/reject-lexicon.md for default rejects; add project-specific bans in intake.
- Matrix fit: Name must occupy a clear slot in
portfolio-matrix.md or justify a new slot.
Workflow
Step 1 — Intake
Ask or infer:
Product one-liner:
User action (verb):
Stack (rust/go/ts/...):
Lane A or B (or unsure):
Matrix slot (Shaping / Parallel / Strata / Discovery / Signal / Craft / Peripheral):
Flagship or utility:
Prior names considered:
Rename or greenfield:
If intake is incomplete, ask at most 3 targeted questions, then proceed.
Step 2 — Diverge (15–20 candidates)
Generate across these angles (not all required):
- Strata: earth, burial, inscription, amber, palimpsest, dream-consolidation
- Workshop: lathe, forge, bench, chisel, tap, die
- Bench verbs: pick, recall, sift, glean, tap, cast
- Short fusions: ≤6 letters only (aletir, barve, steir — only if natural to pronounce)
Tag each candidate: lane, letters, matrix slot, one-line metaphor.
Step 3 — Reject pass
Drop any candidate that:
- Exceeds 6 letters
- Hits
reject-lexicon.md
- Duplicates an existing portfolio name or confusable sibling
- Fails pronunciation as CLI (
barve OK; aletve borderline — note in output)
Step 4 — Full audit (mandatory)
Run checks in references/audit-checklist.md for top 8–10 survivors. Record GREEN/YELLOW/RED.
Steipete pass (Lane B or borderline): Would Peter name it this? One syllable verb beats two-word compound.
Step 5 — Matrix fit score
For each audited survivor, score 1–5:
| Criterion |
Question |
| Metaphor precision |
Does it map 1:1 to core differentiation? |
| Matrix slot |
Clear place in Agent Bench story? |
| CLI ergonomics |
Easy to type, no confusion with git/docker/npm builtins? |
| Collision cleanliness |
All audits GREEN? |
| Story hook |
One sentence in the portfolio pitch? |
Recommend the highest total. Tie-break: fewer YELLOW, better matrix narrative.
Step 6 — Deliver
Output this structure:
## Namecraft verdict: <recommended>
### Intake summary
...
### Top 5 (audited)
| Rank | Name | Lane | Letters | Matrix slot | Audit | Score | Story hook |
...
### Recommended: **<name>**
- Why this name
- Matrix sentence (where it sits in Agent Bench)
- CLI examples: `<name> <subcommand> ...`
- Collision summary
### Runners-up
...
### If rename: touch list estimate
(package.json, bin/, skills/, cache path, docs — enumerate)
### Portfolio pitch snippet
(2–3 sentences placing this project in the Bench story)
Step 7 — Update references (when user confirms a name)
After user picks a winner:
- Append decision to
references/naming-sessions.md (date, name, lane, runners-up, audit notes)
- Update
references/portfolio-matrix.md (new row or rename old → new)
- Do not commit unless user asks
Subcommands (user may say)
| User says |
Action |
/namecraft |
Full workflow from intake |
/namecraft audit <name> |
Collision audit only |
/namecraft matrix |
Print portfolio story + slot map |
/namecraft rename <project> |
Intake + audit for existing repo rename |
/namecraft backfill |
Refresh matrix from ~/git/samzong/ |
Anti-patterns (learned from prior sessions)
- merge-scout — activity word + leaks
merge implementation; user rejected
- Oneira — beautiful but RED on GitHub (dreaming AI agent) + oneira.dev
- pick — perfect steipete but npm taken
- oss-scout — GREEN npm but semantic collision with OSS health tools
- Hyphen compounds (issue-pick) — acceptable only if ≤6 letters total impossible; user prefers single word
- Long fusions (Alethebarrow, Oneirstele) — user explicitly dislikes
Related skills
- Renaming an existing repo: namecraft deliverable includes touch list; implementation uses normal agent edit flow
- Shipping renamed project:
/ship after rename commit
1---2name: namecraft3description: Project naming for samzong's Agent Bench portfolio. Dual-lane naming (poetic flagship vs steipete verb CLI), ≤6-letter hard limit, full collision audit, matrix fit scoring, and storytelling pitch. Use ONLY when the user explicitly invokes /namecraft or asks to run the namecraft skill for naming a new project, renaming, or portfolio matrix work. Do not auto-invoke on casual mentions of "name" or "rename".4---56# Namecraft78Name new projects and renames for the **Agent Bench** portfolio.910Read before every run:11- `references/portfolio-matrix.md` — slot map, backfilled projects, story script12- `references/naming-sessions.md` — prior decisions (Barrow, merge-scout, HiClaw)13- `references/reject-lexicon.md` — hard rejects14- `references/audit-checklist.md` — collision audit commands1516## Worldview (non-negotiable)1718**The Agent Bench** — tools that let coding agents work like senior engineers.1920Two materials coexist in one story:21- **Workshop** — shaping, parallel runs, signals at the bench (lathe, gmc, mote)22- **Strata** — what the bench produces sinks underground: layered, excavated, dreamed (barrow)2324CLI name = brand name. No separate marketing alias.2526English only. No Chinese brand names.2728## Lane selection (Step 2)2930| Lane | When | Style | Examples |31|------|------|-------|----------|32| **A — Strata** | Flagship, worldview, memory/depth products | Poetic noun, myth/literary/craft metaphor, memory or earth texture | barrow, stele, alethe |33| **B — Bench** | Utility CLI, daily-driver tools | Verb-first, steipete line, Unix tool family | pick, recall, lathe* |3435\* `lathe` is workshop craft but short enough to be a proper noun tool — treat as **Bench craft** slot, not Strata.3637**Decision tree:**381. Is this a flagship / narrative anchor / memory layer? → Lane A392. Is this a CLI the user types 20× per day? → Lane B403. If both (embeddable crate + CLI): pick ONE word ≤6 letters; prefer matrix slot over lane purity4142## Hard constraints4344- **Length:** ≤6 letters for repo, crate, npm, and CLI binary. No hyphens in the primary name.45- **Collision:** Full audit before recommending (see `references/audit-checklist.md`). One RED = drop.46- **Implementation leak:** Name must not encode internal algorithms (e.g. `merge` for merge-probability).47- **Normal words ban:** See `references/reject-lexicon.md` for default rejects; add project-specific bans in intake.48- **Matrix fit:** Name must occupy a clear slot in `portfolio-matrix.md` or justify a new slot.4950## Workflow5152### Step 1 — Intake5354Ask or infer:5556```57Product one-liner:58User action (verb):59Stack (rust/go/ts/...):60Lane A or B (or unsure):61Matrix slot (Shaping / Parallel / Strata / Discovery / Signal / Craft / Peripheral):62Flagship or utility:63Prior names considered:64Rename or greenfield:65```6667If intake is incomplete, ask **at most 3** targeted questions, then proceed.6869### Step 2 — Diverge (15–20 candidates)7071Generate across these angles (not all required):72- Strata: earth, burial, inscription, amber, palimpsest, dream-consolidation73- Workshop: lathe, forge, bench, chisel, tap, die74- Bench verbs: pick, recall, sift, glean, tap, cast75- Short fusions: ≤6 letters only (aletir, barve, steir — only if natural to pronounce)7677Tag each candidate: lane, letters, matrix slot, one-line metaphor.7879### Step 3 — Reject pass8081Drop any candidate that:82- Exceeds 6 letters83- Hits `reject-lexicon.md`84- Duplicates an existing portfolio name or confusable sibling85- Fails pronunciation as CLI (`barve` OK; `aletve` borderline — note in output)8687### Step 4 — Full audit (mandatory)8889Run checks in `references/audit-checklist.md` for top 8–10 survivors. Record GREEN/YELLOW/RED.9091Steipete pass (Lane B or borderline): *Would Peter name it this? One syllable verb beats two-word compound.*9293### Step 5 — Matrix fit score9495For each audited survivor, score 1–5:9697| Criterion | Question |98|-----------|----------|99| Metaphor precision | Does it map 1:1 to core differentiation? |100| Matrix slot | Clear place in Agent Bench story? |101| CLI ergonomics | Easy to type, no confusion with git/docker/npm builtins? |102| Collision cleanliness | All audits GREEN? |103| Story hook | One sentence in the portfolio pitch? |104105Recommend the highest total. Tie-break: fewer YELLOW, better matrix narrative.106107### Step 6 — Deliver108109Output this structure:110111```markdown112## Namecraft verdict: <recommended>113114### Intake summary115...116117### Top 5 (audited)118| Rank | Name | Lane | Letters | Matrix slot | Audit | Score | Story hook |119...120121### Recommended: **<name>**122- Why this name123- Matrix sentence (where it sits in Agent Bench)124- CLI examples: `<name> <subcommand> ...`125- Collision summary126127### Runners-up128...129130### If rename: touch list estimate131(package.json, bin/, skills/, cache path, docs — enumerate)132133### Portfolio pitch snippet134(2–3 sentences placing this project in the Bench story)135```136137### Step 7 — Update references (when user confirms a name)138139After user picks a winner:1401. Append decision to `references/naming-sessions.md` (date, name, lane, runners-up, audit notes)1412. Update `references/portfolio-matrix.md` (new row or rename old → new)1423. Do not commit unless user asks143144## Subcommands (user may say)145146| User says | Action |147|-----------|--------|148| `/namecraft` | Full workflow from intake |149| `/namecraft audit <name>` | Collision audit only |150| `/namecraft matrix` | Print portfolio story + slot map |151| `/namecraft rename <project>` | Intake + audit for existing repo rename |152| `/namecraft backfill` | Refresh matrix from ~/git/samzong/ |153154## Anti-patterns (learned from prior sessions)155156- **merge-scout** — activity word + leaks `merge` implementation; user rejected157- **Oneira** — beautiful but RED on GitHub (dreaming AI agent) + oneira.dev158- **pick** — perfect steipete but npm taken159- **oss-scout** — GREEN npm but semantic collision with OSS health tools160- **Hyphen compounds** (issue-pick) — acceptable only if ≤6 letters total impossible; user prefers single word161- **Long fusions** (Alethebarrow, Oneirstele) — user explicitly dislikes162163## Related skills164165- Renaming an existing repo: namecraft deliverable includes touch list; implementation uses normal agent edit flow166- Shipping renamed project: `/ship` after rename commit