skills/feature-define/SKILL.md
Interactive creator for a project feature: scaffolds the domain knowledge markdown at ai-context/features/<slug>.md AND the antenna skill at .claude/skills/<slug>/SKILL.md, both from the canonical templates. Also registers the antenna in the project's CLAUDE.md. Trigger: /feature-define <name>, define feature, documentar funcionalidad, nueva feature.
npx skillsauth add fearovex/claude-config feature-defineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Creates the two artifacts every project feature MUST have:
ai-context/features/<slug>.md— the authoritative domain knowledge..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
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.
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.
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.
Ask the user, one question at a time. STOP and wait between questions.
Feature name (human-readable, e.g. "Checkout Flow"). Derive
feature_slug = lowercase + hyphens (e.g. checkout-flow). Validate:
^[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.One-line purpose: what user problem does this feature solve?
Sub-flows or subpages (optional, multi-line): list each with a one-line description. Used to populate the Domain Overview bullets.
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.
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.
~/.claude/skills/_templates/feature/_template.md.<Feature Name> with the user's feature name.Last updated by: to the git user name (read from
git config user.name; fallback to "human").Last run: to today's date (YYYY-MM-DD).[auto-updated] markers intact — they are required by the
contract (see feature-domain-expert Pattern 4).ai-context/features/<slug>.md. Create the directory if
absent.~/.claude/skills/_templates/feature/SKILL.md.template.{{feature_slug}} → the slug from Step 1.{{feature_name}} → the human-readable name.{{triggers}} → comma-separated triggers from Step 1..claude/skills/<slug>/SKILL.md. Create the directory if
absent.Read the project's CLAUDE.md.
Locate the ## Force-read inline section. If a sub-section "Feature
skills (project-local)" does NOT exist below it, create it with this
header:
### Feature skills (project-local)
Each feature with non-trivial domain logic has an antenna skill that
forces a read of `ai-context/features/<slug>.md` when its triggers fire.
| Feature | Antenna | Domain knowledge |
|---------|---------|------------------|
Append a row for the new feature:
| <Feature Name> | `.claude/skills/<slug>/SKILL.md` | `ai-context/features/<slug>.md` |
If the Force-read inline section does not exist at all in the project
CLAUDE.md, do NOT auto-create it — emit a warning instead:
"Project CLAUDE.md has no '## Force-read inline' section. Add the Feature skills block manually (template available in docs/templates/project-claude-template.md)."
Emit:
Created:
- ai-context/features/<slug>.md (domain knowledge — fill in business
rules, integrations, gotchas as you learn them)
- .claude/skills/<slug>/SKILL.md (antenna — auto-activates on triggers:
<triggers>)
Registered in: CLAUDE.md → Force-read inline → Feature skills (project-local)
Next steps:
1. Open ai-context/features/<slug>.md and add at least one Business Rule
(BR-1). Empty feature files are noise.
2. Restart Claude Code to pick up the new antenna skill in
available-skills.
3. When the feature ships its first change, use /sdd-propose <change> —
the markdown will be preloaded automatically via slug matching.
.claude/ or
CLAUDE.md).feature-domain-expert.[auto-updated] markers in the generated markdown so
codebase-teach can later coexist without overwriting human content.development
Governs AI-assisted generation of images, video, and audio (Gemini Nano Banana Pro, FLUX, etc.) from any project, with a focus on key security and cost control. Trigger: generate an image/illustration/asset with AI, "generate an image", nano banana, gemini image, generate video, configure an image API.
business
Turns an already-investigated customer issue into a short, non-technical engineering-to-CS brief: one natural message that leads with the finding (root cause, real scope, open question), ready to paste into Slack for the support team. Trigger: /support-brief, support brief, brief for support, resumen soporte.
development
Parks the current Claude Code session before going to sleep. Analyzes the conversation, writes a handoff document to docs/handoffs/ in the current project, mirrors the same summary to engram tagged with the session ID, and prints the exact `claude --resume <id>` command for tomorrow. Zero interaction — runs end-to-end on a single invocation. Trigger: /night-park, night park, park session, me voy a dormir, guardar sesion.
data-ai
Generates a short, non-technical, informal English summary of an already-investigated customer issue, ready to paste into Slack/email for support, CX, or ops teammates. Trigger: /customer-summary, customer summary, resumir customer issue, slack summary.