Customer Health Contract Normalizer
Scenario
Use when account health signals arrive from product usage exports, billing tables, support tickets, surveys, or CRM snapshots with inconsistent fields.
Input and output
Input is redacted JSON with an account reference, plan, revenue band, activity, usage change, support load, sentiment, and renewal timing. Output contains canonical fields, safe references, validation findings, and a repeatable contract hash.
Execution and recovery
Run python scripts/normalize.py examples/input.json. Missing account or activity fields return a visible review status. Correct the redacted input and rerun; this skill never contacts a customer or changes a subscription.
Privacy boundary and acceptance
Use placeholders and coarse revenue bands instead of customer data. Acceptance requires stable field names, an explicit missing-signal list, and a repeatable contract hash.