# benchweave dispose


Dispose overdue delete-tier rows through the audit trail (at-rest).


``` bash
benchweave dispose [OPTIONS]
```


Dry run by default (`--execute` to act). Review-tier rows are blocked, never deleted; archive-tier rows execute only with `--archive-target` (verified content-addressed offline copies; the store copy is reclaimed), otherwise they stay blocked. A schema mismatch refuses typed (the store is never migrated).


<span class="gd-details-chevron" aria-hidden="true"></span>Full --help output


    Usage: benchweave dispose [OPTIONS]

      Dispose overdue delete-tier rows through the audit trail (at-rest).

      Dry run by default (--execute to act). Review-tier rows are blocked, never
      deleted; archive-tier rows execute only with --archive-target (verified
      content-addressed offline copies; the store copy is reclaimed), otherwise
      they stay blocked. A schema mismatch refuses typed (the store is never
      migrated).

    Options:
      --data-dir PATH        At-rest data directory (holds state.sqlite +
                             content/).  [required]
      --bench TEXT           Restrict the disposition to one bench id (default:
                             every bench).
      --policy PATH          Retention policy file (required: disposition never
                             runs ungoverned). Default: <data-dir>/retention-
                             policy.json.
      --execute              Actually dispose. Default: dry run -- the plan is
                             projected and NOTHING is written; --execute commits
                             the whole invocation (audit rows, guarded deletions,
                             artifact GC) as one transaction.
      --archive-target PATH  Archive destination directory (content-addressed
                             objects/ plus per-invocation manifests/) for overdue
                             archive-tier rows. Without it, archive-tier rows stay
                             blocked (counted, never deleted). Refuses if it
                             resolves inside the data dir.
      --verify-archive       With --archive-target: re-verify every archived audit
                             row's destination object against its content address
                             (read-only -- the command verifies and exits, never
                             executes; orphan objects are reported, never
                             deleted).
      --out PATH             Write the disposition report to FILE (markdown; JSON
                             with --json) instead of stdout.
      --json                 Emit the stable machine JSON contract instead of
                             text.
      --help                 Show this message and exit.


# Options


`--data-dir: PATH`  
**Required.** At-rest data directory (holds state.sqlite + content/). Environment variable: `BENCHWEAVE_DATA_DIR`.

`--bench: TEXT`  
Restrict the disposition to one bench id (default: every bench).

`--policy: PATH`  
Retention policy file (required: disposition never runs ungoverned). Default: /retention-policy.json.

`--execute`  
Actually dispose. Default: dry run -- the plan is projected and NOTHING is written; `--execute` commits the whole invocation (audit rows, guarded deletions, artifact GC) as one transaction.

`--archive-target: PATH`  
Archive destination directory (content-addressed objects/ plus per-invocation manifests/) for overdue archive-tier rows. Without it, archive-tier rows stay blocked (counted, never deleted). Refuses if it resolves inside the data dir.

`--verify-archive`  
With `--archive-target`: re-verify every archived audit row's destination object against its content address (read-only -- the command verifies and exits, never executes; orphan objects are reported, never deleted).

`--out: PATH`  
Write the disposition report to FILE (markdown; JSON with `--json`) instead of stdout.

`--json`  
Emit the stable machine JSON contract instead of text.
