Files
git.stella-ops.org/docs/features/unchecked/tools/fixture-harvester-tool.md

23 lines
1.8 KiB
Markdown

# Fixture Harvester Tool
## Module
Tools
## Status
IMPLEMENTED
## Description
CLI tool (harvest/validate/regen commands) for deterministic test fixture management. Supports tiered fixtures (Synthetic, Spec Examples, Real Samples, Regression), SHA-256 hash pinning, YAML manifests with schema versioning, and configurable refresh policies.
## Implementation Details
- **Fixture Updater App**: `src/Tools/FixtureUpdater/StellaOps.Tools.FixtureUpdater/FixtureUpdaterApp.cs` -- CLI entry point that parses commands (harvest, validate, regen) and dispatches to the runner; manages fixture tier selection and output directory configuration.
- **Fixture Updater Runner**: `src/Tools/FixtureUpdater/StellaOps.Tools.FixtureUpdater/FixtureUpdaterRunner.cs` -- core execution engine that walks fixture manifests, computes SHA-256 hashes, compares against pinned baselines, and regenerates stale fixtures according to refresh policies.
## E2E Test Plan
- [ ] Run the `harvest` command against a known fixture source directory and verify it produces a YAML manifest with SHA-256 hashes for each harvested artifact
- [ ] Run the `validate` command against an existing manifest and verify it reports all fixtures as valid when hashes match, and flags mismatches when a fixture file is modified
- [ ] Run the `regen` command for a single fixture tier (e.g., Synthetic) and verify only fixtures in that tier are regenerated while other tiers remain untouched
- [ ] Modify a fixture file's content, run `validate`, and verify the tool reports the specific file and expected vs. actual hash
- [ ] Verify the YAML manifest includes schema version metadata and that the tool rejects manifests with an unsupported schema version
- [ ] Run the tool with a configurable refresh policy (e.g., "refresh if older than 7 days") and verify it only regenerates fixtures that exceed the staleness threshold