Files
ss-tools/scripts/full_flow_v2/prepare_recipe_driver.py
busya bcc69f4bbe feat(dashboard-testing): add sampled traversal and ClickHouse test lab
Add versioned metric graph authority, owned browser evidence, paginated and all-tab traversal, deterministic sampling policies, and analyst-facing run inspection.

Provision the DEV/PREPROD/PROD Superset, Gitea and million-row ClickHouse lab; retain reproducible lifecycle evidence and explicit incomplete-traversal limits.
2026-10-02 10:54:42 +03:00

38 lines
2.0 KiB
Python

#!/usr/bin/env python3
# #region Tooling.FullFlowV2RecipePrepare [C:2] [TYPE Module] [SEMANTICS test,recipe,driver,provenance,history]
# @BRIEF Bootstrap a separate recipe evidence ledger from existing publication/capture locators without carrying old runtime handles or writing external state.
import argparse
import json
from pathlib import Path
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--base-fixture', type=Path, required=True)
parser.add_argument('--base-report', type=Path, required=True)
parser.add_argument('--provider-id', required=True)
parser.add_argument('--fixture', type=Path, required=True)
parser.add_argument('--output', type=Path, required=True)
args = parser.parse_args()
if args.output.exists() or args.fixture.exists():
raise SystemExit('Fresh destination required; preserve previous ledgers')
fixture = json.loads(args.base_fixture.read_text())
report = json.loads(args.base_report.read_text())
fixture.update(evidence_recipe='table_text_v1', evaluation_provider_id=args.provider_id,
recipe_evidence_file=str(args.output / 'recipe-evidence-map.json'))
copied_ids = ('release_id', 'baseline_id', 'capture_artifact_ids', 'publication_commit_hash')
ids = {key: report['ids'][key] for key in copied_ids}
steps = [step for step in report['steps'] if step['step'] in {'fixture-filtered-metric', 'live-authoritative-model'}]
if not any(step['step'] == 'fixture-filtered-metric' for step in steps):
raise SystemExit('Missing actual captured coordinate locator')
args.output.mkdir(parents=True)
args.fixture.write_text(json.dumps(fixture, indent=2) + '\n')
(args.output / 'report.json').write_text(json.dumps({'ids':ids, 'steps':steps,
'overall':'NO-GO', 'claim_scope':'Fresh recipe proof pending; copied provenance locators are historical'}, indent=2) + '\n')
print('Prepared separate recipe driver; no external writes or old runtime handles copied')
if __name__ == '__main__':
main()
# #endregion Tooling.FullFlowV2RecipePrepare