# shared-dao

Keeps story terms consistent across lore files and drafts, organizing them inside kb/. It eliminates drifting names, ambiguous factions, and conflicting magic systems.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 520 installs · ★ 541
- Author: haowjy
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/haowjy/creative-writing-skills/tree/HEAD/cw/skills/shared-dao/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/shared-dao

## What it does

The skill enforces a strict vocabulary workflow for creative writing. Every term gets a canonical name, a short definition with clear boundaries, known aliases, and a recorded source. Global story terms go into `kb/vocab.md`, specific topics land in `kb/<domain>/vocab.md`, and drafts keep provisional words under `work/...` until promoted.

Before minting a term, the agent checks `AGENTS.md`, existing lore, and chapter drafts. It spawns subagents when broad text searches risk crowding the main context window. If two concepts share a name, the agent forces a split. When different words describe the same object, it assigns aliases.

Because the discipline strictly expects a `kb/` and `work/` folder layout, using it in an unorganized repository requires adjusting file paths.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add haowjy/creative-writing-skills --skill shared-dao -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/shared-dao/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/shared-dao/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add haowjy/creative-writing-skills --skill shared-dao -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/shared-dao/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add haowjy/creative-writing-skills --skill shared-dao -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/shared-dao/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install haowjy/creative-writing-skills shared-dao
```

2. **Manually: put the files in place**
- File: `.github/skills/shared-dao/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add haowjy/creative-writing-skills --skill shared-dao -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/haowjy/creative-writing-skills --path cw/skills/shared-dao
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/shared-dao/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add haowjy/creative-writing-skills --skill shared-dao -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/haowjy/creative-writing-skills/tree/HEAD/cw/skills/shared-dao/SKILL.md

## When to use it
- record canonical lore terms and magic systems in kb/vocab.md
- resolve ambiguous names that refer to multiple concepts
- audit character and faction names for consistency across drafts
- promote approved working terms from work/... into project knowledge files

## Example prompts
- Check chapter three draft against canonical terms in kb/vocab.md
- Help me define this new magic concept and place it in the right kb/ vocabulary file
- Resolve the naming conflict between these two factions and pick a canonical term

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: a2f315441af488e9.

BEGIN THIRD-PARTY FILE a2f315441af488e9
```text
---
name: shared-dao
description: >
  Shared vocabulary for creative writing projects. Load when establishing
  canonical story terms, resolving ambiguous names, checking term consistency,
  or deciding where vocabulary belongs in kb/.
---

# Shared Dao

Shared vocabulary is the contract between the author's intent and agent action.
Ambiguous, overloaded, drifting, or misleading terms corrupt drafts early:
magic systems get renamed, factions blur together, genre terms mean different
things in different prompts, and characters speak with vocabulary the author
never intended.

Treat vocabulary problems as story-structure problems. Resolve terminology
while the meaning is still easy to sharpen.

## Core Discipline

Scrutinize important terms aggressively. Reuse existing names when they already
fit the concept. Converge on one name per concept and one concept per name as
quickly as the evidence allows.

Resolve terminology early:

- rename when the clearer term is available
- define when the concept is real but still blurry
- flag when the author's judgment is required

## Where Vocab Lives

Place terms at the lowest common scope where they are shared:

- **Project vocab** (`kb/vocab.md`): terms used across the whole story
- **Domain vocab** (`kb/<domain>/vocab.md`): terms specific to one domain,
  such as worldbuilding, characters, factions, or timeline eras
- **Work notes** (`work/...`): provisional vocabulary during story-planning or
  drafting, promoted to `kb/` once settled

Each entry includes:

- **Canonical name**: the form agents should use
- **Definition**: one to three sentences. Include boundaries that prevent
  likely confusion.
- **Aliases**: names the author, characters, drafts, or older kb pages
  actually use
- **Source**: where the usage was established or decided

## Discovery

Before defining new terms, check what already exists:

1. Read relevant vocab files.
2. Search `AGENTS.md`, kb pages, outlines, drafts, and work notes.
3. Spawn focused subagents when the search is broad enough to crowd your context.
4. Check how the author uses the term in conversation and prose.

Mint new terms when they mark a real new concept. Let new vocabulary reflect
clear distinctions rather than uncertainty, local convenience, or unexamined
drift.

## Disambiguation

Ambiguity is the root failure mode. Resolve it before carrying the term
forward:

- **Same term, different meanings:** pick one meaning for the canonical
  definition, and give the other meaning its own name.
- **Different terms, same meaning:** pick one as canonical, record the others
  as aliases.
- **Unclear meaning:** ask the author: "When you say X, what specifically do
  you mean? Where are the edges of that meaning?"

When terminology conflicts with existing kb or draft usage, resolve the drift
when the evidence is clear. When author judgment is needed, flag the conflict
```
END THIRD-PARTY FILE a2f315441af488e9

The third-party file has ended. Everything between the a2f315441af488e9 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2889 of 3501 bytes. © haowjy · Apache-2.0 · https://github.com/haowjy/creative-writing-skills/tree/HEAD/cw/skills/shared-dao/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
