← Files Public Equity InvestingARCHIVED FILE

skills/public-equity-investing/internal-support/dashboard-builder/scripts/validate_payload.py

1.33 KB · Oct 2, 2026 · 00:03 UTC

↓ Download file

#!/usr/bin/env python3
"""Validate a Public Equity Investing dashboard payload."""

from __future__ import annotations

import argparse
import json
import sys
from pathlib import Path

PLUGIN_ROOT = Path(__file__).resolve().parents[5]
sys.path.insert(0, str(PLUGIN_ROOT))

from shared.dashboard.qa import load_payload, validate_payload  # noqa: E402


def main() -> int:
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("payload", help="Path to dashboard payload JSON.")
    parser.add_argument(
        "--profile",
        choices=["draft", "production"],
        default="production",
        help="Validation profile. Production hard-fails missing metadata, sources, readiness, and citations.",
    )
    parser.add_argument("--json", action="store_true", help="Print full validation JSON.")
    args = parser.parse_args()

    payload = load_payload(args.payload)
    report = validate_payload(payload, profile=args.profile)
    if args.json:
        print(json.dumps(report, indent=2))
    else:
        print(f"status={report['status']}")
        for warning in report["warnings"]:
            print(f"warning: {warning}")
        for failure in report["hard_failures"]:
            print(f"failure: {failure}")
    return 1 if report["hard_failures"] else 0


if __name__ == "__main__":
    raise SystemExit(main())

SHA-256: e9235b55247f25203ecf00c95ffb74321fdeceff072149bef21b41467e1c31c8