Skip to content

Workflow

Eugene Tartakovsky edited this page May 17, 2026 · 1 revision

Workflow

Create a starter manifest:

fixture3 init

Create suite scaffolding:

fixture3 new suite lint-rules

new suite creates a sample fixture and an initial approved output, then prints the manifest block to add under suites:. It does not edit fixture3.yaml; the project keeps ownership of feature grouping and manifest formatting.

Inspect setup before running behavior:

fixture3 explain --suite lint-rules
fixture3 doctor

Run behavior:

fixture3 check --suite lint-rules
fixture3 check --all
fixture3 check --tag lint
fixture3 check --feature linting

Review drift:

fixture3 diff --suite lint-rules
fixture3 diff --suite lint-rules --refresh

Approve a reviewed change:

fixture3 approve --suite lint-rules --comment "reviewed lint rule update"

Show state:

fixture3 status
fixture3 status --suite lint-rules
fixture3 status --tag lint
fixture3 status --feature linting
fixture3 status --all

Reduce a copied fixture tree:

fixture3 reduce --suite lint-rules --fixture-root behavior/fixtures/lint-rules/copied-project --work-dir .fixture3/reduce-lint-rules --max-oracle-calls 200
fixture3 reduce --suite lint-rules --fixture-root behavior/fixtures/lint-rules/copied-project --work-dir .fixture3/reduce-lint-rules --reducers dirs,files
fixture3 reduce --suite lint-rules --fixture-root behavior/fixtures/lint-rules/copied-project --work-dir .fixture3/reduce-lint-rules --reducers dirs
fixture3 reduce --suite lint-rules --fixture-root behavior/fixtures/lint-rules/copied-project --work-dir .fixture3/reduce-lint-rules --reducers files

reduce uses DDMin to remove directory subtrees and file candidates from a trial copy while preserving the selected suite's approved output. It never edits --fixture-root directly. The default reducer list is --reducers dirs,files: top-down directory subtree reduction first, then individual file reduction. --reducers dirs runs only the directory pass. --reducers files runs only the file pass. All reducers share the same --max-oracle-calls budget.

It writes JSON to stdout and writes the same report to <work-dir>/reduce-report.json, plus <work-dir>/removed-files.txt and <work-dir>/remaining-files.txt. During the run, the best known matched candidate is written under <work-dir>/best/. The active trial tree is reused at <work-dir>/trial-current/.

Clone this wiki locally