$npx -y skills add zhaoxuya520/reverse-skill --skill competition-graphql-rpc-driftInternal downstream skill for ctf-sandbox-orchestrator. CTF-sandbox workflow for GraphQL schemas, persisted queries, RPC manifests, generated clients, OpenAPI drift, hidden operations, and contract-to-handler mismatches. Use when the user asks to inspect GraphQL or RPC requests,
| 1 | # Competition Graphql Rpc Drift |
| 2 | |
| 3 | Use this skill only as a downstream specialization after `$ctf-sandbox-orchestrator` is already active and has established sandbox assumptions, node ownership, and evidence priorities. If that has not happened yet, return to `$ctf-sandbox-orchestrator` first. |
| 4 | |
| 5 | Use this skill when the hard part is matching declared contracts with live handlers to find hidden, stale, or privileged operations. |
| 6 | |
| 7 | Reply in Simplified Chinese unless the user explicitly requests English. |
| 8 | |
| 9 | ## Quick Start |
| 10 | |
| 11 | 1. Collect the declared contract surface first: schema, manifest, generated client, persisted query map, or OpenAPI spec. |
| 12 | 2. Record actual request shapes, operation names, variables, method, path, and auth context before mutating anything. |
| 13 | 3. Compare declared contract, generated client behavior, and live handler behavior side by side. |
| 14 | 4. Preserve one accepted operation and one drifted or hidden operation with the smallest delta. |
| 15 | 5. Reproduce the smallest contract-to-handler mismatch that proves the decisive branch. |
| 16 | |
| 17 | ## Workflow |
| 18 | |
| 19 | ### 1. Map The Declared Contract Surface |
| 20 | |
| 21 | - Record GraphQL schema, introspection output, persisted query ids, RPC manifests, generated clients, or OpenAPI documents that define the intended surface. |
| 22 | - Note versioned endpoints, client-only guards, hidden enums, optional fields, and operation naming conventions. |
| 23 | - Keep document source and generation path tied to the observed requests. |
| 24 | |
| 25 | ### 2. Prove Live Handler Behavior |
| 26 | |
| 27 | - Capture the real request and response pairs, including operation name, variables, headers, cookies, and status. |
| 28 | - Compare client-side validation, schema expectations, and live handler normalization or fallback behavior. |
| 29 | - Record hidden operations, stale fields, undocumented methods, or handler-only branches that still execute. |
| 30 | |
| 31 | ### 3. Reduce To The Decisive Drift Path |
| 32 | |
| 33 | - Compress the result to the smallest sequence: declared contract -> actual request -> handler branch -> resulting capability. |
| 34 | - State clearly whether the decisive drift lives in generated client assumptions, persisted query mapping, schema version skew, RPC manifest mismatch, or handler-side hidden logic. |
| 35 | - If the task shifts into generic JWT, OAuth, or queue behavior after acceptance, hand off to the tighter specialized skill. |
| 36 | |
| 37 | ## Read This Reference |
| 38 | |
| 39 | - Load `references/graphql-rpc-drift.md` for the contract checklist, live-handler checklist, and evidence packaging. |
| 40 | |
| 41 | ## What To Preserve |
| 42 | |
| 43 | - Schemas, manifests, generated clients, persisted query ids, operation names, and version markers |
| 44 | - One accepted and one drifted request pair that proves the mismatch |
| 45 | - One minimal contract-to-handler sequence that reaches the decisive effect |