---
title: feature-enum
description: Generate or refine a code-backed feature inventory.
---

`feature-enum` scans the repository and produces grouped, SCREAMING_SNAKE_CASE feature names. It can also refine an existing inventory using prior feature groups and a previous commit hash.

```bash
bunx smithers-orchestrator workflow run feature-enum --input '{"refineIterations":3}'
```

<Frame caption="The feature-enum UI shows the scan and refine timeline that produces a code-backed, grouped feature inventory.">
  <img src="/images/workflow-ui/feature-enum.png" alt="feature-enum workflow UI showing the scan and refine timeline for a feature inventory" />
</Frame>

## Inputs

| Input | Type | Default |
| --- | --- | --- |
| `refineIterations` | integer | `1` |
| `existingFeatures` | `Record<string, string[]>` or null | `null` |
| `lastCommitHash` | string or null | `null` |
| `additionalContext` | string | `""` |

## Use it when

- You need a feature inventory for audits.
- You want stable feature names for documentation, tests, or release planning.
- You want an agent to compare the current repo against a previous inventory.

Follow with `audit`.

## Use something else when

- You already have a feature map and want to evaluate it: go straight to [`audit`](/workflows/audit).

## Resume & retry

`feature-enum` returns a feature inventory in the run output; nothing is written to disk. Runs are durable and resume with `up --resume`.
