> ## 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.

# Claim and lease commands

> Arguments and selection rules for claim, renew, takeover, push, and release.

A claim ensures that a feature has only one responsible party while its lease is active. `--next`, `--takeover-expired`, and `--push` are separate execution modes; do not combine them.

<h2 id="claim">
  `claim`
</h2>

Claim a specific feature.

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

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `<feature-id>` | string | Yes | — | Feature ID to claim. |
| `--owner` | string | No | `defaultOwner` | Claim owner. It also counts toward the WIP limit. |
| `--actor` | string | No | owner | Specific Agent or session identifier. |
| `--ttl` | number | No | `120` | Lease duration in minutes from the current time. The current CLI does not yet enforce a positive integer. |

The command fails if an unexpired claim already exists. Claiming a `not_started` feature sets it to `in_progress`.

<h2 id="next">
  `claim --next`
</h2>

Automatically select a claimable feature.

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

`--next` selects only features whose status is `not_started`, that have no active claim, and whose dependencies are all `passing`. Lower priority values are selected first. Features with the same priority or no priority retain list order.

<h2 id="renew">
  `claim renew`
</h2>

Recalculate an existing claim's lease expiration from the current time.

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

The feature must already have a claim. An explicit owner must match the current claim owner. `--ttl` defaults to `120` minutes.

<h2 id="takeover-expired">
  `claim --takeover-expired`
</h2>

Take over an expired claim.

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

The feature must have a claim whose lease has expired. The command preserves the former owner as `taken_over_from` and creates a new claim.

<h2 id="push">
  `claim --push`
</h2>

Claim a feature, commit the claim change, and push it to the remote.

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

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `--remote` | string | No | `origin` | Git remote used for pushing and conflict synchronization. |
| `--branch` | string | No | `main` | Target branch for the push. |

If the feature was claimed on the remote first, the command synchronizes the remote state and tries to claim the next ready feature.

<h2 id="release">
  `release`
</h2>

Release a claim.

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

| Argument | Type | Required | Default | Description |
| - | - | - | - | - |
| `<feature-id>` | string | Yes | — | Feature ID whose claim is released. Releasing it again is a no-op. |
| `--owner` | string | No | `defaultOwner` | Must match the current owner when a claim exists. |

After release, the claim is cleared. If the feature is `in_progress`, it returns to `not_started`.


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