feature_list.json. They use compare-and-swap writes and reject duplicate IDs. Interactive commands perform their documented input checks; the full schema and structural preflight applies specifically to new-feature --input.
new-feature
Create a feature interactively or import one from a JSON file in the repository.
The input can be a feature object directly or
{ "feature": { ... } }. id, milestone, behavior, and a non-empty verification array are required. The milestone must already exist. A new feature can only have the not_started status and cannot include a preconfigured claim, workspace, or evidence. Before writing, this mode runs [schema], [structural], [dependency-cycles], [milestone-order], and [stage-gate] checks against the candidate feature list. See the feature_list.json reference for the full field definitions.
Without --input, the command prompts for the ID, milestone, title, observable behavior, owner, verification commands, dependencies, source references, and priority. Priority must be an integer. Lower values are selected first by claim --next.
new-milestone
Create a milestone interactively.
feature_list.json.
milestone archive
Move a completed milestone, and every feature in it, out of feature_list.json into .harness/archive/<milestone-id>.json.
Every feature in the milestone must already be
passing; the command refuses and lists the blocking features otherwise, without changing anything. The archive file is written before the milestone is removed from feature_list.json, so an interrupted run can leave a duplicate archive record but never loses the milestone’s data.
Archived features are not deleted from the project’s history — they still satisfy dependencies for new features (claim, feature start, dependency-cycles), and traceability still counts them as covering their requirements, stories, and acceptance criteria. Archiving only relocates completed work so a new milestone starts from a lean feature_list.json; it never invalidates what already shipped. See Archiving milestones for the archive file’s shape.
milestone list-archived
List archived milestones.
id, title, feature count, and archived_at/archived_by.