Skip to content
Back to skills

Feature Docs

ASecurity

Maintain ever-evolving feature documentation that stays in sync with the codebase. Use after adding, changing, or removing features — API endpoints, database models, services, UI pages, integrations, or workers. Also use when the user mentions "update feature docs," "document this feature," "sync docs with code," "feature documentation," "what features exist," or "changelog."

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
documentationbashgitapidatabasefrontendbackenddocumentation

Works with

  • api

Security analysis

A100/100

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

Scanned September 9, 2026

npx -y skills add gengirish/social-media-agency --skill feature-docs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feature Docs?

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

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

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
---
name: feature-docs
description: Maintain ever-evolving feature documentation that stays in sync with the codebase. Use after adding, changing, or removing features — API endpoints, database models, services, UI pages, integrations, or workers. Also use when the user mentions "update feature docs," "document this feature," "sync docs with code," "feature documentation," "what features exist," or "changelog."
---

# Feature Documentation — Living Codebase Docs

Keep `docs/features/` in sync with the actual codebase so documentation never drifts from reality.

## When to Run

Trigger this skill whenever code changes touch:
- API routers/endpoints (`backend/src/agency/routers/`)
- Database models or migrations (`backend/src/agency/models/`, `backend/alembic/`)
- Services (`backend/src/agency/services/`)
- Celery workers (`backend/src/agency/workers/`)
- Platform integrations (`backend/src/agency/integrations/`)
- WebSocket handlers (`backend/src/agency/websocket/`)
- Frontend pages (`frontend/src/app/`)
- Frontend components (`frontend/src/components/`)
- Environment variables (`.env.example`, `backend/src/agency/config.py`)
- Middleware (`backend/src/agency/middleware/`)

## Workflow

### Step 1: Detect What Changed

Scan the areas that were modified. Use git diff when available:

```bash
git diff --name-only HEAD~1
```

Or compare against the documented state in `docs/features/`.

### Step 2: Read Current Feature Docs

Read the relevant section(s) in `docs/features/`:

```
docs/features/
├── README.md              # Feature index with status overview
├── api-endpoints.md       # All REST API endpoints
├── database-schema.md     # Tables, columns, relationships
├── services.md            # Business logic services
├── workers.md             # Background jobs (Celery)
├── integrations.md        # Platform connectors
├── websocket.md           # Real-time features
├── frontend-pages.md      # UI pages and routes
├── frontend-components.md # Reusable UI components
├── auth-and-rbac.md       # Authentication & roles
├── billing.md             # Stripe billing features
└── changelog.md           # Chronological change log
```

### Step 3: Update the Docs

For each changed area, update the matching doc file. Follow the format in [templates.md](templates.md).

**Rules:**
- Scan the actual source code, don't guess
- Include function signatures, route paths, model fields from real code
- Mark features as `[PLANNED]`, `[IN PROGRESS]`, `[LIVE]`, or `[DEPRECATED]`
- Add date of last verification: `<!-- verified: 260324 -->`
- Keep entries atomic — one feature per section, easy to update individually

### Step 4: Update the Index

Update `docs/features/README.md` with:
- New features added
- Changed feature statuses
- Removed/deprecated features
- Last-updated date

### Step 5: Update the Changelog

Append to `docs/features/changelog.md`:

```markdown
## YYMMDD — Brief Description

- **Added**: [feature] — short explanation
- **Changed**: [feature] — what changed and why
- **Deprecated**: [feature] — replacement or removal plan
- **Fixed**: [feature] — what was broken
```

## Scan Targets Reference

For detailed scan patterns per area, see [scan-targets.md](scan-targets.md).

## Feature Doc Format

Each feature doc follows this pattern:

```markdown
## Feature Name
<!-- verified: YYMMDD -->
**Status**: [LIVE] | [PLANNED] | [IN PROGRESS] | [DEPRECATED]

### Purpose
One-line description of what this feature does.

### Implementation
- **File(s)**: `path/to/file.py`
- **Route**: `POST /api/v1/content` (API only)
- **Model**: `Content` table (DB only)

### Key Details
Bullet list of important behaviors, constraints, or config.

### Dependencies
What this feature depends on (other services, env vars, etc.)
```

## Verification Protocol

When asked to verify docs are current:

1. **Glob** for all source files in scan targets
2. **Grep** for route decorators, model classes, page exports, service methods
3. Compare against documented features
4. Flag any **undocumented features** or **stale docs**
5. Output a diff report:

```
SYNC REPORT — YYMMDD
━━━━━━━━━━━━━━━━━━━
✅ In sync:      12 features
⚠️  Undocumented:  2 features (list them)
🗑️  Stale docs:    1 feature  (list them)
━━━━━━━━━━━━━━━━━━━
```

## Integration with Other Workflows

- After running this skill, update `agency-project` SKILL.md if the project structure changed
- Notify `docs-manager` agent if marketing-facing features changed (pricing, billing, analytics)
- If new env vars were added, update `.env.example` and `docs/features/README.md`

Files in this skill

  • SKILL.md4.6 KB
  • scan-targets.md3.7 KB
  • templates.md5.1 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…