Skip to content
Agentmart
Submit a tool

name

Report or pick the agent's session identity (Dev-Name, Dev-Avatar, Dev-Team)

Skill by Wave-Engineering

IndexedMIT★ 1
Write a review

Chalk Labs

Need help deploying name?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/wave-engineering-name

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Report or pick the agent's session identity (Dev-Name, Dev-Avatar, Dev-Team)

Use cases: documents, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/name

What's inside

Skill name
name
Description
Report or pick the agent's session identity (Dev-Name, Dev-Avatar, Dev-Team)
License
MIT
Instructions
94 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • introduction.md

SKILL.md (first lines)

<!-- introduction-gate: If introduction.md exists in this skill's directory AND
     the marker file /tmp/.skill-intro-name does NOT exist, read introduction.md,
     present its contents to the user, then create the marker: touch /tmp/.skill-intro-name
     Do NOT delete introduction.md — it lives in a protected directory.
     Do this BEFORE executing any skill logic below. -->

# Agent Identity

Report the current session identity, or pick one if not yet established.

## Steps

1. **Resolve identity file path** — Identity is keyed by project root, not PID:
   ```bash
   project_root=$(pwd)
   agent_file="${project_root}/.claude/agent-identity.json"
   ```

2. **Check for existing identity** — Read the resolved `$agent_file`
   - If it exists and has `dev_name`, `dev_avatar`, and `dev_team`: report them
   - If it does not exist, also check the legacy `/tmp` path as a transition fallback:
     ```bash
     dir_hash=$(echo -n "$project_root" | md5sum | cut -d' ' -f1)
     legacy_file="/tmp/claude-agent-${dir_hash}.json"
     # if legacy_file exists and has dev_name, report and migrate: copy to agent_file
     ```
   - If neither exists: pick a new identity (see below)

3. **Read Dev-Team** — Check CLAUDE.md for the `Dev-Team:` field
   - If empty, ask the user what Dev-Team to use

4. **Pick identity (if needed)**
   - `Dev-Name`: A single memorable word or hyphenated phrase in **kebab-case** (e.g., `beacon`, `null-pointer`, `mother`). Draw from nerdcore canon — sci-fi, fantasy, comics, gaming, mythology, tech puns, wordplay. The wittier and more specific the reference, the better. Generic names are boring. Kebab-case is required so the name works as a routing key for `@<dev-name>` addressing.
   - `Dev-Avatar`: A Unicode emoji character (e.g., 🧠, 👾). Should feel like it belongs with the name.
   - Persist to the resolved identity file (dual-write during transition window). It is a **merge**: set only the three keys `/name` owns, and keep every other key, such as a `lead` that `/grunt` wrote before this session ran `/name` (#1365):
     ```bash
     agent_file="${project_root}/.claude/agent-identity.json"
     mkdir -p "${project_root}/.claude"
     [[ -s "$agent_file" ]] || echo '{}' >"$agent_file"
     tmp="$(mktemp "${agent_file}.XXXXXX")"
     jq --arg t "<Dev-Team>" --arg n "<name>" --arg a "<emoji>" \
       '.dev_team = $t | .dev_name = $n | .dev_avatar = $a' "$agent_file" >"$tmp" &&
       mv "$tmp" "$agent_file" || { rm -f "$tmp"; echo "not written: $agent_file is not valid JSON" >&2; }
     # Also keep /tmp copy fresh for sessions that haven't re-run /name yet
     dir_hash=$(echo -n "$project_root" | md5sum | cut -d' ' -f1)
     cp "$agent_file" "/tmp/claude-agent-${dir_hash}.json" 2>/dev/null || true
     ```
     **Never rewrite the whole file.** A whole-file write drops the `lead` field, and `/precheck` then notifies BJ instead of the lead. If the file is not valid JSON, the merge writes nothing: show the user the file and ask before replacing it. `agent_file` is `${project_root}/.claude/agent-identity.json` — no md5 keying needed once the file lives under the project root.

5. **Announce** — Always respond with:
   > I'm **\<Dev-Name\>** \<Dev-Avatar\> from team `<Dev-Team>`.

6. **Check in via Discord** — announce yourself in `#roll-call`, by the dual-mode rule in `/disc` ("Transport: `chat_*` or `disc_*`"):

   ```
   # chat_send in your tool list (crewchat daemon on this host):
   chat_send({ to: "roll-call", text: "<formatted message — see below>", backend: "discord" })

   # otherwise:
   mcp__disc-server__disc_send({
     channel_id: "roll-call",
     message: "<formatted message — see below>"
   })
   ```

   Both accept the channel name directly (`"roll-call"`), so no jq lookup against `~/.claude/discord.json` is needed.

   **Report the chat mode.** The crewchat shim reads `.claude/agent-identity.json` **once, when the session starts**, and registers from it. It does not see what you just wrote. With no identity file at start, it doesn't come up at all.
   - **`chat_send` is in your tool list:** call `chat_health()` and report the backends it lists, for example `chat: mattermost:dev, discord`.
     - If you changed the identity just now (a new name, team or avatar), add `chat: restart the session to register the new identity`.
     - A `chat_health` error is reported as such.
   - **No `chat_send`, but the daemon socket is usable** (`test -S /run/crewchat/crewchat.sock && test -w /run/crewchat/crewchat.sock`, the same test `install-crewchat.sh` gates on). The cause depends on where the identity came from:
     - **This run created the identity file** (step 4): report `chat: crewchat not started (no identity at session start); restart the session`. The shim had nothing to register.
     - **The identity file already existed:** a restart won't help. Report `chat: crewchat not registered or not running; run scripts/install-crewchat.sh check`. Usually `./install` hasn't run since the daemon was deployed.
   - **No `chat_send` and no socket:** report `chat: Discord only (no crewchat daemon on this host)`.

   Message format:
   ```
   **<dev-name>** <dev-avatar> online — team `<dev-team>` @ <project-root>

   — **<dev-name>** <dev-avatar> (<dev-team>)
   ```

   If the `disc-server` MCP is not registered or the call fails, skip silently — check-in is best-effort.

7. **Close with the session-name next-step (FINAL output line)** — Claude Code's native
   session name (shown in the session picker, prompt bar, and `--resume`) is **user-driven
   only**: an agent cannot run `/rename` itself, and there is no hook/setting/API to set the
   name programmatically. So do NOT emit a bare `/rename` and assume it ran. Instead, end the
   skill's output with a single, paste-ready next-step so the operator can mirror the identity
   into CC's UI in one action:

   > Run `/rename <Dev-Name>` to mirror this identity into Claude Code's session name.

   - Use the **bare Dev-Name** (e.g. `/rename babelfish`) — NOT the avatar emoji or the team.
     CC's session name is a plain label; the emoji/parens form does not belong in it.
   - Make this the **last line** of the skill's output. It is the deterministic paste path, and
     because CC's Prompt-Suggestions ghost-text is a model prediction over the recent
     conversation, a single unambiguous closing imperative also maximizes the chance CC
     pre-fills `/rename <Dev-Name>` for →+Enter acceptance. (Non-deterministic — the paste is
     the reliable path.)
   - **Interactive sessions only.** A spawned/background/orchestrated agent has no operator to
     accept the suggestion — skip this line when there is no human in the loop. The identity
     file remains the source of truth; CC's session name is a one-way mirror, never a replacement.

From Wave-Engineering/claudecode-workflow, MIT.

More from Wave-Engineering/claudecode-workflow

Signals

Stars
1
Forks
1
Open issues
85
Last commit (this folder)
Jul 30, 2026 (3 months ago)
Last release
Oct 24, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Wave-Engineering

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get name running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying name?

CallGet help
Cite this page

name skill. Agent Mart. https://agentmart.dev/skills/wave-engineering-name (last updated 2026-10-24)