Feature Changelog Skill
Owns docs/ai-context/FEATURE_CHANGELOG.md: a registry of product
behavior used to decide
whether requested work already exists, extends something, or is new. It
records meaningful business logic only — never commits, renames,
formatting, or refactors without behavior change. The whole file is English.
When to Use
init with no docs/ai-context/FEATURE_CHANGELOG.md → baseline
discovery
(references/baseline-analysis.md).
- Before any
docs/ai-context/TASK_PLAN.md is created or accepted →
feature search
(references/feature-detection.md).
- New IDs → references/feature-id-rules.md.
- After a valid Codex
APPROVED, during finalization → registry update.
- Any registry edit → references/index-validation.md.
Inputs
docs/ai-context/FEATURE_CHANGELOG.md (or its absence), the task
description/plan, docs/ai-context/PROJECT_CONTEXT.md, the repository
itself.
- Deterministic helpers:
bin/frappe-workflow feature search <query>,
feature next-id --type <type> --module <module>,
feature validate-index.
Outputs
- Search verdicts for planning: already implemented / related (extension) /
new — always confirmed by inspecting actual files, never by text
similarity alone.
- Registry entries following the template format in
templates/project/FEATURE_CHANGELOG.md in the plugin (Index row +
detailed entry
grouped by module).
Preconditions
- Registry updates (beyond baseline) happen only in finalization —
after implementation complete, validations and tests passed, and a valid
APPROVED with matching fingerprint.
Stopping Conditions
bin/frappe-workflow feature validate-index passes after every edit.
- Baseline: all High-confidence entries written; Medium noted; Low listed
for user confirmation — then stop.
Prohibited
- Updating the registry during implementation or review rounds.
- Calculating IDs by guessing — only
feature next-id output.
- Changing an existing ID, ever (renames keep the ID).
- Statuses other than
Active, Deprecated, Replaced, Removed.
- Inventing feature history or dates (unknown dates stay
Unknown).
Update Rules at Finalization
- New capability → new entry (Index row + detail, next deterministic ID).
- Extension → same ID: update
Last Updated, Behavior/Main Files when
needed, add a Change History dated entry.
- Bugfix of an existing feature → Change History entry on that feature;
an independent
BUG- entry only when important, independent, and not
clearly owned by an existing feature.
- Replacement → old entry
Status: Replaced + Replaced By:; new entry
may carry Replaces:.
Shared Rules
shared-workflow-rules.md,
file-lifecycle.md.
1---2name: feature-changelog3description: Maintain FEATURE_CHANGELOG.md - the functional feature registry. Baseline discovery, duplicate/extension detection before planning, deterministic feature IDs, post-approval updates, and index validation.4---56# Feature Changelog Skill78Owns `docs/ai-context/FEATURE_CHANGELOG.md`: a registry of product9behavior used to decide10whether requested work already exists, extends something, or is new. It11records meaningful business logic only — never commits, renames,12formatting, or refactors without behavior change. The whole file is English.1314## When to Use1516- `init` with no `docs/ai-context/FEATURE_CHANGELOG.md` → baseline17 discovery18 ([references/baseline-analysis.md](references/baseline-analysis.md)).19- Before any `docs/ai-context/TASK_PLAN.md` is created or accepted →20 feature search21 ([references/feature-detection.md](references/feature-detection.md)).22- New IDs → [references/feature-id-rules.md](references/feature-id-rules.md).23- After a valid Codex `APPROVED`, during finalization → registry update.24- Any registry edit → [references/index-validation.md](references/index-validation.md).2526## Inputs2728- `docs/ai-context/FEATURE_CHANGELOG.md` (or its absence), the task29 description/plan, `docs/ai-context/PROJECT_CONTEXT.md`, the repository30 itself.31- Deterministic helpers: `bin/frappe-workflow feature search <query>`,32 `feature next-id --type <type> --module <module>`,33 `feature validate-index`.3435## Outputs3637- Search verdicts for planning: already implemented / related (extension) /38 new — always confirmed by inspecting actual files, never by text39 similarity alone.40- Registry entries following the template format in41 `templates/project/FEATURE_CHANGELOG.md` in the plugin (Index row +42 detailed entry43 grouped by module).4445## Preconditions4647- Registry updates (beyond baseline) happen **only** in finalization —48 after implementation complete, validations and tests passed, and a valid49 `APPROVED` with matching fingerprint.5051## Stopping Conditions5253- `bin/frappe-workflow feature validate-index` passes after every edit.54- Baseline: all High-confidence entries written; Medium noted; Low listed55 for user confirmation — then stop.5657## Prohibited5859- Updating the registry during implementation or review rounds.60- Calculating IDs by guessing — only `feature next-id` output.61- Changing an existing ID, ever (renames keep the ID).62- Statuses other than `Active`, `Deprecated`, `Replaced`, `Removed`.63- Inventing feature history or dates (unknown dates stay `Unknown`).6465## Update Rules at Finalization6667- New capability → new entry (Index row + detail, next deterministic ID).68- Extension → same ID: update `Last Updated`, Behavior/Main Files when69 needed, add a Change History dated entry.70- Bugfix of an existing feature → Change History entry on that feature;71 an independent `BUG-` entry only when important, independent, and not72 clearly owned by an existing feature.73- Replacement → old entry `Status: Replaced` + `Replaced By:`; new entry74 may carry `Replaces:`.7576## Shared Rules7778[shared-workflow-rules.md](../../references/shared-workflow-rules.md),79[file-lifecycle.md](../../references/file-lifecycle.md).