> ## Documentation Index
> Fetch the complete documentation index at: https://gump.top/sdlc-harness-docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Feature lifecycle commands

> Arguments and gates for feature start, complete, block, and reopen.

The `feature` subcommands change feature status. Every `<feature-id>` is the string ID of an existing feature in `feature_list.json`.

<h2 id="start">
  `feature start`
</h2>

Claim a ready feature and move it to `in_progress`.

```bash theme={null}
npx @caesarlo/sdlc-harness feature start <feature-id> \
  [--owner <name>] [--actor <id>] [--ttl <minutes>]
```

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `<feature-id>` | string | Yes | — | Feature ID to start. Its status must be `not_started`, and all dependencies must be `passing`. |
| `--owner` | string | No | `harness.config.json.defaultOwner` | Responsible party for the claim. It also counts toward the per-owner WIP limit. |
| `--actor` | string | No | owner | Specific Agent or session identifier initiating the claim. |
| `--ttl` | number | No | `120` | Claim lease duration in minutes. The current CLI converts the input to a number but does not yet enforce a positive integer. |

<h2 id="complete">
  `feature complete`
</h2>

Set a feature to `passing` after it passes the completion gate.

```bash theme={null}
npx @caesarlo/sdlc-harness feature complete <feature-id> [--owner <name>]
```

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `<feature-id>` | string | Yes | — | Feature ID to complete. Placeholder features cannot be completed directly. |
| `--owner` | string | No | `defaultOwner` | Must match the owner of the active claim. |

The feature must be `in_progress`, its claim must be active, all dependencies must be `passing`, and every verification item must have passing evidence for the current commit. The passing review must be newer than the verification evidence, and the reviewer cannot be the claim owner. On success, the command clears the claim and blocker.

<h2 id="block">
  `feature block`
</h2>

Record a blocking reason, release the claim, and set the feature to `blocked`.

```bash theme={null}
npx @caesarlo/sdlc-harness feature block <feature-id> \
  --reason <text> [--owner <name>]
```

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `<feature-id>` | string | Yes | — | Feature ID to block. A `passing` feature cannot move back to `blocked`. |
| `--reason` | string | Yes | — | Non-empty blocking reason. Use quotes when it contains spaces. |
| `--owner` | string | No | `defaultOwner` | Must match the owner when an active claim exists. |

<h2 id="reopen">
  `feature reopen`
</h2>

Clear the blocker and return a `blocked` feature to `not_started`.

```bash theme={null}
npx @caesarlo/sdlc-harness feature reopen <feature-id> [--actor <id>]
```

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `<feature-id>` | string | Yes | — | ID of a feature that must currently be `blocked`. |
| `--actor` | string | No | `defaultOwner` | Actor recorded in the reopen event. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.