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

# Team collaboration

> Coordinate multiple people or Agents with claims, leases, WIP, cross-machine synchronization, and independent workspaces.

## Enable Team mode

```json theme={null}
{
  "defaultOwner": "alice",
  "collaborationMode": "team"
}
```

Team mode does not implicitly claim or release features. Before subsequent write operations such as `verify`, run `feature start` or `claim` so the caller holds a valid claim.

## `owner` and `actor`

* `owner` identifies the person ultimately responsible, such as a developer or team member.
* `actor` identifies a particular Agent session, such as `codex-1`.
* Multiple Agent sessions can share the same `owner` and use distinct `actor` IDs, but each feature can have only one claim.

```bash theme={null}
npx @caesarlo/sdlc-harness claim M1-AUTH-001 \
  --owner alice --actor codex-1 --ttl 120
```

[See the `claim` options →](/sdlc-harness-docs/reference/command-claim#claim)

## Leases

Renew long-running work before its lease expires:

```bash theme={null}
npx @caesarlo/sdlc-harness claim renew M1-AUTH-001 --owner alice --ttl 120
```

[See the `claim renew` options →](/sdlc-harness-docs/reference/command-claim#renew)

A takeover is allowed only after the lease expires:

```bash theme={null}
npx @caesarlo/sdlc-harness claim M1-AUTH-001 \
  --takeover-expired --owner bob --actor claude-2
```

[See the expired-takeover options →](/sdlc-harness-docs/reference/command-claim#takeover-expired)

The takeover preserves the previous `owner` information for auditing. An active lease cannot be forcibly overwritten.

## WIP limit

`feature_list.json.rules.wip_limit_per_owner` defaults to 1. After reaching the limit, an `owner` cannot claim another feature. Complete, block, or release the current feature instead of bypassing the limit with a new `owner` name.

## Claim the next feature

```bash theme={null}
npx @caesarlo/sdlc-harness claim --next --owner alice
```

[See the `claim --next` options →](/sdlc-harness-docs/reference/command-claim#next)

The command selects only a `not_started` feature with no valid claim and with all dependencies in `passing`. Lower `priority` values take precedence.

## Cross-machine synchronization

```bash theme={null}
npx @caesarlo/sdlc-harness claim M1-AUTH-001 --owner alice --push
```

[See the `claim --push` options →](/sdlc-harness-docs/reference/command-claim#push)

`--push` commits to `origin/main` by default. Use `--remote` and `--branch` to change the target. Two devices can still claim the same feature locally at the same time. If a push conflicts, the tool synchronizes with the remote and attempts to fall back to the next ready feature.

## Independent workspaces

```bash theme={null}
npx @caesarlo/sdlc-harness workspace create M1-AUTH-001 --base main
npx @caesarlo/sdlc-harness workspace status
```

Options: [Create a workspace](/sdlc-harness-docs/reference/command-workspace#create) · [View workspaces](/sdlc-harness-docs/reference/command-workspace#status)

The workspace is located at `.worktrees/<feature-id>`, and its branch is `feature/<id>`. The status command shows both whether the claim is active and whether the path still exists.

Remove it after completing and pushing the work:

```bash theme={null}
npx @caesarlo/sdlc-harness workspace remove M1-AUTH-001
npx @caesarlo/sdlc-harness workspace prune
```

Options: [Remove a workspace](/sdlc-harness-docs/reference/command-workspace#remove) · [Prune workspaces](/sdlc-harness-docs/reference/command-workspace#prune)

`remove` refuses a dirty or unpushed workspace. `prune` removes only safe items whose claims have been released or expired; it never removes a workspace with an active claim.

## Recommended parallel workflow

1. Every Agent synchronizes with the remote and reads `status`.
2. Each Agent claims a different feature and creates its corresponding workspace.
3. Renew leases as needed, and run `feature block` immediately when blocked.
4. A reviewer with a different `owner` identity records the review.
5. After completion, push the code and state, run `session close`, and then clean up the workspace.

<Warning>
  A Git claim is an auditable collaboration protocol, not a real-time distributed lock. Cross-machine work must synchronize with the remote and cannot rely only on the local `feature_list.json`.
</Warning>


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