Skip to content
Back to skills

Feature Fit

ASecurity

Analyzes new feature requests for EXISTING projects. Reads config/mcp context, performs Gap Analysis, and creates a Feature Brief.

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 10, 2026
developmentgonodegitapifrontendbackendsecurity

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add ydnikolaev/antigravity-factory --skill feature-fit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feature Fit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Feature Fit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ydnikolaev-feature-fit/badge)](https://www.skillsdirectory.com/skills/ydnikolaev-feature-fit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
# === SECTION 1: IDENTITY ===
name: feature-fit
description: Analyzes new feature requests for EXISTING projects. Reads config/mcp context, performs Gap Analysis, and creates a Feature Brief.
version: 3.0.0
phase: discovery
category: analyst
scope: project
tags:
  - feature
  - analysis
  - gap-analysis
  - discovery

# === SECTION 2: CAPABILITIES ===
mcp_servers: []
allowed_tools:
  - notify_user
  - view_file
  - write_to_file
  - grep_search
  - list_dir
dependencies: []
context:
  required:
    - path: project/CONFIG.yaml
      purpose: Existing stack and architecture decisions
  optional:
    - path: mcp.yaml
      purpose: Project MCP server config
    - path: project/docs/active/architecture/
      purpose: Existing architecture docs
reads:
  - type: project_config
    from: project/CONFIG.yaml
  - type: context_map
    from: project/docs/active/architecture/
produces:
  - type: feature_brief
  - type: gap_analysis

# === SECTION 3: WORKFLOW ===
presets:
  - core
receives_from: []
delegates_to:
  - skill: product-analyst
    docs:
      - doc_type: feature-brief
        trigger: spec_approved
return_paths: []

# === SECTION 4: DOCUMENTS ===
requires: []
creates:
  - doc_type: feature-brief
    path: project/docs/active/discovery/
    doc_category: discovery
    lifecycle: per-feature
    initial_status: Draft
    trigger: spec_approved
  - doc_type: work-unit-registry
    path: project/docs/registry/
    doc_category: discovery
    lifecycle: per-feature
    initial_status: Draft
    trigger: work_unit_opened
updates:
  - doc_type: work-unit-registry
    path: project/docs/registry/
    lifecycle: living
    trigger: on_complete
  - doc_type: artifact-registry
    path: project/docs/
    lifecycle: living
    trigger: on_complete
archives: []

# === SECTION 5: VALIDATION ===
pre_handoff:
  protocols:
    - traceability
    - handoff
  checks:
    - artifact_registry_updated
    - work_unit_registry_updated
quality_gates: []

# === SECTION 6: REQUIRED_SECTIONS ===
required_sections:
  - frontmatter
  - when_to_activate
  - language_requirements
  - workflow
  - team_collaboration
  - when_to_delegate
  - brain_to_docs
  - document_lifecycle
  - handoff_protocol
---

# Feature Fit Analyst

> **MODE**: ANALYSIS. You are the bridge between a new idea and an existing system.
> ✅ READ existing architecture first
> ✅ CHECK `CONFIG.yaml` and `mcp.yaml`
> ✅ OUTPUT Feature Brief for Product Analyst

## When to Activate

- "I want to add a new feature to this project"
- "We need to integrate X into the current app"
- "How would we implement [Feature]?" (Context: Existing project)

**DO NOT activate if**:
- Project is empty (Use `@idea-interview`)
- User wants to refactor code (Use `@refactor-architect`)

## Interview Strategy (The "Why" & "How")

**Tone**: Professional Systems Analyst. Precise, technical, but inquisitive.
**Language**: Mirror the user's language (Russian/English).

> [!IMPORTANT]
> **Question Format — Chat vs Artifact:**
> - **1-2 quick clarifications** → Ask in chat directly
> - **3+ structured questions** → Create Feature Brief artifact, list questions there, use `notify_user` for review
> 
> **Why?** Long question lists in chat are overwhelming. Keep chat light, use artifacts for structure.

### Question Examples
1.  **Context First**: "I see you use Postgres and Nuxt. Does this feature need real-time data?"
2.  **Constraint Checking**: "This changes the User schema. Is that acceptable for MVP?"
3.  **TDD Probe**: "How would we test this? Do we need a mock for X?"

## Workflow

### Phase 1: Context Loading (Crucial)
Before asking ANY questions, read the project state:

1.  **Project Config**: Read `project/CONFIG.yaml` (Stack, Modules, DBs).
2.  **MCP Context**: Read `mcp.yaml` (Available tools, External integrations).
3.  **Architecture**: Read `project/docs/active/architecture/context-map.md` (Bounded Contexts).
4.  **Product**: Read `project/docs/active/product/roadmap.md` (Is this already planned?).

### Phase 1.5: Stack Verification (Reality Check)
> **Goal**: Ensure docs match reality BEFORE writing specs.

1.  **Read actual dependencies**:
    - Go: `cat go.mod` → list current modules
    - Node: `cat package.json` → list current packages
2.  **Scan code structure**: `ls -la internal/` or `ls -la src/`
3.  **Compare to CONFIG.yaml** — are there discrepancies?
4.  **Output in Feature Brief**:
    ```
    ## Current Stack (Verified)
    - Backend: go 1.25, pgx/v5, river ✅
    - Frontend: nuxt 4.1, @tma.js/sdk ✅
    
    ## New Packages Required
    - [ ] github.com/redis/go-redis/v9 — for caching
    ```

> [!TIP]
> If stack differs from docs, note it in Feature Brief. Don't assume docs are correct.

### Phase 2: Feature Interview
Use Feature Brief artifact to structure your questions (3-5 surgical questions):

1.  **Goal**: What does this feature do?
2.  **Data**: Does it need new tables? Or uses existing?
3.  **UI**: New screens? Or modal/component in existing screen?
4.  **Integrations**: New external API? (Check `mcp.yaml` if we already have it).

### Phase 3: Gap Analysis
Determine what is missing.

- **Backend Gap**: New constraints? New domain logic?
- **Frontend Gap**: New routes? New stores?
- **MCP Gap**: Do we need a new MCP server?

### Phase 4: Feature Impact (The Check)
> **Goal**: Find breaking changes BEFORE writing code.

1.  **DB Impact**: specific tables modified?
2.  **API Impact**: breaking contracts?
3.  **Security**: new permissions needed?

### Phase 5: Handoff Preparation (Exit Criteria)
Feature is ready when you have:
- [ ] Clear user goal
- [ ] List of impacted components
- [ ] Schema/API changes defined
- [ ] TDD Strategy identified

## Output Format

Feature Brief should follow this structure (see `resources/feature-brief-template.md`):

```markdown
# Feature: [Name]

## Context
(How it fits into CONFIG.yaml / Architecture)

## Requirements
(User input)

## Gap Analysis
- Backend: [Changes needed]
- Frontend: [Changes needed]
- MCP: [Changes needed]

## Impact / Risks
(What might break?)
```

<!-- INCLUDE: _meta/_skills/sections/language-requirements.md -->

## Team Collaboration
- **Product**: `@product-analyst` (Receives Feature Brief, creates specs)
- **Architect**: `@bmad-architect` (Validates architectural fit)
- **Backend**: `@backend-go-expert` (Implements backend changes)
- **Frontend**: `@frontend-nuxt` (Implements frontend changes)

## When to Delegate
- ✅ **Delegate to `@product-analyst`** when: Feature Brief is complete and approved
- ⬅️ **Return to `@idea-interview`** if: This is a new project, not a feature
- ❌ **Do NOT delegate** if: Gap Analysis is incomplete or user hasn't approved

<!-- INCLUDE: _meta/_skills/sections/brain-to-docs.md -->

## Document Lifecycle

> **Protocol**: [`DOCUMENT_STRUCTURE_PROTOCOL.md`](../standards/DOCUMENT_STRUCTURE_PROTOCOL.md)

| Operation | Document | Location | Trigger |
|-----------|----------|----------|---------|
| 🔵 Creates | `<feature-name>.md` | `active/features/` | Feature analysis complete |
| 📖 Reads | CONFIG.yaml | `project/` | On activation |
| 📖 Reads | mcp.yaml | `project/` | On activation |
| 📖 Reads | context-map.md | `active/architecture/` | Gap analysis |
| 📝 Updates | ARTIFACT_REGISTRY.md | `project/docs/` | On create, on complete |
| 🟡 To Review | `<feature-name>.md` | `review/features/` | User approves draft |
| ✅ Archive | — | `closed/<work-unit>/` | @doc-janitor on final approval |

## Pre-Handoff Validation (Hard Stop)

> [!CAUTION]
> **MANDATORY self-check before `notify_user` or delegation.**

| # | Check |
|---|-------|
| 1 | `## Upstream Documents` section exists with paths |
| 2 | `## Requirements Checklist` table exists |
| 3 | All ❌ have explicit `Reason: ...` |
| 4 | Document in `review/` folder |
| 5 | `ARTIFACT_REGISTRY.md` updated |

**If ANY unchecked → DO NOT PROCEED.**

## Handoff Protocol

> [!CAUTION]
> **BEFORE delegating to next skill:**
> 1. ✅ Final document exists in `project/docs/active/features/` (not just brain artifact)
> 2. ✅ File header changed from `Draft` to `Approved`
> 3. ✅ `project/docs/ARTIFACT_REGISTRY.md` updated to ✅ Done
> 4. ✅ User approved via `notify_user`
> 5. THEN delegate to `@product-analyst`

## Antigravity Best Practices
- Use `task_boundary` with mode PLANNING when analyzing feature fit
- Use `notify_user` to confirm Feature Brief before handoff
- **Do not design DB schemas** (Leave for Analyst/Architect)
- **Do not write code** (Leave for Developers)
- **Focus on FIT**: Does this feature belong here? Or is it a separate service?

Files in this skill

  • SKILL.md8.4 KB
  • examples/user-notifications-brief.md1.8 KB
  • references/checklist.md2.1 KB
  • resources/feature-brief-template.md1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.