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

# Configuration reference

> Configure collaboration, testing strategy, stage applicability, environment commands, and feature list rules.

## `harness.config.json`

The generated template is:

```json theme={null}
{
  "projectName": "your-project",
  "requiredAdrTopics": [],
  "testStrategy": "isolated-tdd",
  "defaultOwner": "agent",
  "collaborationMode": "solo",
  "deploymentMode": "required",
  "observabilityMode": "feedback-only",
  "commands": {
    "bootstrap": "",
    "verify": "",
    "health": ""
  }
}
```

The same default semantics apply when the configuration file is missing. `projectName` defaults to `"unnamed-project"`, and commands are empty.

## Fields

| Field | Default | Allowed values or purpose |
| - | - | - |
| `projectName` | `"unnamed-project"` | Project display name |
| `requiredAdrTopics` | `[]` | Topics that must be covered by frontmatter in `docs/adr/` |
| `testStrategy` | `"isolated-tdd"` | `isolated-tdd`, `in-session-tdd`, `team-default` |
| `defaultOwner` | `"agent"` | Used when `--owner` is omitted |
| `collaborationMode` | `"solo"` | `solo` or `team` |
| `deploymentMode` | `"required"` | `required`, `optional`, `none` |
| `observabilityMode` | `"feedback-only"` | `runtime`, `feedback-only`, `none` |
| `commands` | `{}` | Project-level environment commands, described below |

Unknown enum values or command keys produce an error immediately so typos are not silently ignored.

## Test strategy

| Value | Workflow meaning |
| - | - |
| `isolated-tdd` | Default. Non-trivial features use a TDD flow that separates the test author from the implementer. |
| `in-session-tdd` | Complete RED, GREEN, and refactoring in the same session. |
| `team-default` | Follow the project's contribution documentation or existing CI conventions. |

This setting controls the workflow in `docs/workflow/06-agile-tdd.md`. It does not mean `validate` can judge test design quality.

## Collaboration mode

`solo` hides routine claim operations: when necessary, `verify` temporarily claims the feature for `defaultOwner` and releases it afterward. It still rejects a competing write when someone else holds an active claim.

`team` requires the caller to explicitly hold an active claim before verification. It suits collaboration among multiple people, Agents, or machines.

## Stage applicability

* `deploymentMode: required` requires the deployment workflow; `optional` runs it when a target exists; `none` suits libraries or scripts that are not deployed.
* `observabilityMode: runtime` requires runtime signals and feedback; `feedback-only` requires only a feedback loop; `none` skips stage 9 and feedback log audits.

## Environment commands

The only allowed keys are `bootstrap`, `start`, `verify`, `e2e`, `health`, and `cleanup`.

```json theme={null}
{
  "commands": {
    "bootstrap": "npm ci",
    "start": "npm run dev",
    "verify": "npm test && npm run build",
    "e2e": "npm run test:e2e",
    "health": "curl --fail http://localhost:3000/health",
    "cleanup": "npm run stop"
  }
}
```

`env check` currently runs `bootstrap`, `verify`, `e2e`, and `health`. Project workflows use `start` and `cleanup` explicitly.

## ADR topics

```json theme={null}
{ "requiredAdrTopics": ["database", "authentication"] }
```

The corresponding ADR frontmatter is:

```md theme={null}
---
topic: authentication
---
```

## `feature_list.json.rules`

```json theme={null}
{
  "wip_limit_per_owner": 1,
  "passing_requires_evidence": true,
  "do_not_skip_verification": true,
  "feature_should_fit_one_session": true,
  "passing_is_monotonic": true,
  "dependencies_must_be_passing_before_start": true
}
```

`wip_limit_per_owner` is the enforced concurrency limit. `single_active_feature` is a deprecated alias and is ignored when WIP is set explicitly. The remaining booleans express the project contract, but cannot disable the core pass, dependency, and monotonicity gates.

## Git baseline

```bash theme={null}
HARNESS_BASE_REF=origin/main npx @caesarlo/sdlc-harness validate
```

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

GitHub Actions' `GITHUB_BASE_REF` is also supported. When no Git baseline is available, the command falls back to `.harness/last-validated-features.json`. This file is a derived cache and should not be committed.

For more status fields, see the [`feature_list.json` reference](/sdlc-harness-docs/reference/feature-list).


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