Use when widening a shared coralogix_dashboard widget schema helper like LineChartSchema(). Checks whether dashboard_schema/v1..v3 also use it; prior schemas must stay frozen.
69
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Trigger: You are about to widen a schema helper such as LineChartSchema(). Before editing,
check who else calls it:
rg "LineChartSchema\(\)" internal/provider/dashboards/dashboard_schemaIf a v1.go..v3.go calls it, your new attribute lands in that prior version too.
Fix: Give the prior version its own frozen copy and point it there. Name it for the version it serves, keep it in the same package, and say in a comment that it must not be redirected back:
// v3.go
"line_chart": dashboardwidgets.LineChartSchemaV3(), // frozen snapshot, not the shared helperTestPriorSchemasStayFrozen in
internal/provider/dashboards/dashboard_schema/frozen_prior_schema_test.go fingerprints V1 to V3
and fails on any change, including one made through a shared helper. Run it after touching any
helper; a failure means you widened a prior schema, not that the fingerprint is stale.
Why: Prior schema versions exist only to decode state written by older provider releases. Widening one changes how that old state is interpreted. Most prior versions in this repo declare widgets inline for exactly this reason — a shared helper is the exception, and it is the one that bites. Duplication is correct here: a frozen snapshot is meant to drift from the current schema.
d49bc4c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.