
Feature Define
Scaffold authoritative feature domain markdown plus a pointer-only Claude antenna skill and CLAUDE.md registration for a new product feature.
Install
npx skills add https://github.com/fearovex/claude-config --skill feature-defineWhat is this skill?
- Creates ai-context/features/<slug>.md from global feature templates
- Scaffolds .claude/skills/<slug>/SKILL.md as a pure pointer antenna
- Registers the antenna in the project CLAUDE.md
- Refuses to run inside agent-config; requires .claude and CLAUDE.md in consumer repos
- Interactive define flow for /feature-define and nueva feature triggers
Adoption & trust: 1 installs on skills.sh; 1 GitHub stars; trending (+100% hot-view momentum).
Recommended Skills
Find Skillsvercel-labs/skills
Skill Creatoranthropics/skills
Lark Skill Makerlarksuite/cli
Skills Clixixu-me/skills
Write A Skillmattpocock/skills
Using Superpowersobra/superpowers
Journey fit
Primary fit
Feature documentation and antenna skills are canonically shelved under Build/docs because they define how agents load domain knowledge during implementation. Docs subphase matches ai-context/features artifacts that downstream coding skills must read without duplicating content.
SKILL.md
READMESKILL.md - Feature Define
# feature-define > Creates the two artifacts every project feature MUST have: > 1. `ai-context/features/<slug>.md` — the authoritative domain knowledge. > 2. `.claude/skills/<slug>/SKILL.md` — the antenna that activates on > triggers and forces a read of the markdown. > > Both are scaffolded from `skills/_templates/feature/` in the global > agent-config repo. The antenna is a pure pointer — it never duplicates > markdown content. **Triggers**: `/feature-define`, define feature, nueva feature, documentar feature, documentar funcionalidad, new feature scaffolding --- ## Process ### Step 0 — Guardrails 1. Refuse to run inside the `agent-config` repo itself. Detect via `file_exists("install.sh") AND dir_exists("skills/_shared")` OR `basename(cwd) == "agent-config"`. If true, emit: > "feature-define only runs inside consumer projects. The agent-config > repo holds the templates, not project features." Stop. 2. Require a consumer project root: `dir_exists(".claude")` AND `file_exists("CLAUDE.md")`. If either is missing, emit: > "Run /project-setup first — this project is not configured for Claude > Code yet." Stop. 3. Locate templates at `~/.claude/skills/_templates/feature/`. Required files: - `_template.md` — the 6-section domain knowledge template. - `SKILL.md.template` — the antenna skill template. If either is missing, emit: > "Templates not found at ~/.claude/skills/_templates/feature/. Re-run > install.sh in your agent-config repo to deploy them." Stop. --- ### Step 1 — Gather feature information Ask the user, one question at a time. STOP and wait between questions. 1. **Feature name** (human-readable, e.g. "Checkout Flow"). Derive `feature_slug` = lowercase + hyphens (e.g. `checkout-flow`). Validate: - Slug matches `^[a-z][a-z0-9-]*$`. Reject otherwise. - `ai-context/features/<slug>.md` does NOT already exist. If it does, ask: "A feature file already exists for `<slug>`. Open it, overwrite, or pick a new slug?" Default: open. - `.claude/skills/<slug>/` does NOT already exist. Same handling. 2. **One-line purpose**: what user problem does this feature solve? 3. **Sub-flows or subpages** (optional, multi-line): list each with a one-line description. Used to populate the Domain Overview bullets. 4. **Triggers**: keywords or phrases that, when the user mentions them, should activate the antenna skill. Suggest defaults derived from the feature name; let the user confirm or extend. Comma-separated. 5. **External integrations** (optional, multi-line): systems/APIs this feature talks to. Used to pre-populate the Integration Points table header — the user fills the details later. Do NOT ask for business rules, decisions, or gotchas at scaffolding time. Those are filled in as the feature is built and learned. --- ### Step 2 — Generate the markdown 1. Read `~/.claude/skills/_templates/feature/_template.md`. 2. Replace the title `<Feature Name>` with the user's feature name. 3. Set `Last updated by:` to the git user name (read from `git config user.name`; fallback to "human"). 4. Set `Last run:` to today's date (YYYY-MM-DD). 5. Pre-populate the Domain Overview placeholder with: - The one-line purpose from Step 1. - A bullet list of sub-flows from Step 1 (if provided). 6. If integrations were provided in Step 1, leave the Integration Points table header in place and add one empty row per integration with the system name pre-filled. 7. Keep all `[auto-updated]` markers intact — they are required