bundled-skills/cross-platform-contract-propagation-audit/SKILL.md
Use when auditing whether a field, enum, flag, or API contract propagates consistently across storage, services, clients, analytics, and tests.
npx skillsauth add FrancoStino/opencode-skills-antigravity cross-platform-contract-propagation-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Audit a contract change from its source through every transformation and consumer before release. Treat a field that exists in one schema as incomplete until its meaning, defaults, wire behavior, rollout controls, client handling, analytics, and tests are proven across all relevant paths.
This is a read-only evidence workflow. It reports propagation gaps; it does not implement them.
Before tracing files, state the business invariant and define every observable state. Distinguish values that languages and serializers often collapse:
| State | Questions to answer |
|---|---|
| missing | Is the property absent on the wire or in an old record? |
| null | Is it unknown, inherited, unsupported, or invalid? |
| false or zero | Is this an explicit disabled value or a default? |
| true or non-zero | What behavior becomes available? |
| unknown enum | Must old consumers ignore, preserve, or reject it? |
Record compatibility requirements, ownership, rollout condition, and the exact user-visible or system behavior for each state. Do not accept optional, nullable, and default false as equivalent without evidence.
List every relevant node before judging completeness:
source of truth
-> persistence and migration
-> domain model and mapper
-> service or policy computation
-> every API, event, cache, and job projection
-> generated or handwritten client model
-> client state and presentation logic
-> analytics and operational observability
-> tests, rollout, and rollback checks
Include alternate read/write endpoints, list/detail projections, background consumers, offline caches, admin surfaces, older app versions, and feature-flag evaluation points when they are in scope. Mark a node not applicable only with a reason.
For each edge, cite the producer, transformation, consumer, and test using file paths, symbols, schema names, or other inspectable evidence. Assign one status:
| Status | Meaning |
|---|---|
| proven | Producer and consumer agree, with direct evidence and relevant test coverage. |
| partial | Some paths or states agree, but coverage is incomplete. |
| missing | A required propagation edge or consumer is absent. |
| conflict | Two layers implement different semantics. |
| unknown | Evidence is unavailable or ambiguous. |
| not_applicable | The layer is outside scope, with a stated reason. |
Do not upgrade likely, convention, type compatibility, or a framework default to proven. A declaration proves shape, not runtime mapping or behavior.
Inspect these boundaries explicitly:
Cross the semantic states from Step 1 with every material path from Step 2. At minimum, include existing-data defaults, enabled and disabled values, flag on and off, alternate endpoints, current clients, and representative older clients.
For each cell, record the expected result, evidence, and status. A unit test at one layer does not prove an end-to-end cell. Use unknown for unexecuted cells.
Derive gates from the stated contract, not from intuition. A release is blocked when an edge or compatibility invariant that the contract explicitly requires is missing, conflict, or unknown, or when rollback cannot contain the new behavior. Use inconclusive only when the release contract itself is absent or ambiguous, so the audit cannot determine which edges or invariants are required. Do not downgrade a known required but unproven gate from blocked to inconclusive.
Return the smallest verification or repair set that would change the verdict. Keep implementation suggestions separate from proven findings.
For a nullable can_complete field that should expose an action only when both the stored capability and server flag are true:
Invariant: show action = (feature_flag == on) AND (can_complete == true)
Path Status Evidence
DB null -> domain false -> detail API partial mapper exists; null case untested
DB true + flag off -> detail API unknown flag branch not tested
DB true + flag on -> list API missing list DTO omits field
missing field -> Web hidden proven client test covers missing
explicit null -> Android hidden unknown decoder behavior untested
impression -> click attribution missing click event lacks capability/cohort
Verdict: blocked by the missing list projection and incomplete flag enforcement;
older-client and explicit-null compatibility remain unverified.
unknown.proven.unknown.@api-analyzer - Validate the correctness of an individual API request.@spec-to-code-compliance - Compare formal blockchain specifications with implementations.@technical-change-tracker - Record implementation progress and handoff state across sessions.tools
Authorized security assessment of LLM applications and AI agents: prompt injection, tool abuse, RAG exposure, memory poisoning, system-prompt extraction, and agent-compliance engineering per OWASP LLM/ASI Top 10.
development
Builds two parameterized UI modes—流光溢彩白 (iridescent white) and 五彩斑斓黑 (colorful black)—with OKLCH, WebGL/CSS fallback, vision gating, screenshot QA, and total/per-color intensity reports. Use when a UI request names either mode or needs measured color parameters.
tools
Delegate coding tasks to the Kimi Code CLI (`kimi`) only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.
development
Front-end JavaScript reverse engineering: locate signature chains, analyze encrypted request parameters, sample runtime behavior, and reproduce logic locally in Node for evidence-based output.