Install
$ agentstack add skill-skmtc-skmtc-skmtc-graphql ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
SKMTC GraphQL pipeline
Everything in the skmtc-generator skill applies unchanged — same axioms, same producers, same register/insert machinery, same ContentSettings. GraphQL differs in exactly four places: the entry factory, the operation object, enrichment resolution, and how mutation arguments become a schema. This skill is those differences.
1. The entry factory
Scaffold C variant: GraphQL entry (toGqlOperationEntry)
```ts fragment import { toGqlOperationEntry, synthesizeArgsObject } from '@skmtc/core'
export const MyGqlEntry = toGqlOperationEntry({ id: denoJson.name,
// ⬇ Mutations only, gated on a synthesizable args object. isSupported({ operation }) { return operation.rootKind === 'mutation' && synthesizeArgsObject(operation) !== undefined },
transform({ context, operation, variant }) { if (operation.rootKind !== 'mutation') return context.insertOperation({ projection: MyGen, operation, variant }) },
toEnrichmentSchema })
GQL-specific notes:
1. **Enrichments arrive parsed on `settings.enrichments`**, exactly
as for OAS operations and models — read them there; never index
the raw umbrella by hand. The subject keys are
`[id][rootKind][fieldName][variant]`.
2. **Mutation args come via `synthesizeArgsObject(operation)`** — GQL
has no `requestBody`; this turns the field's arguments into an
object schema for `insertNormalizedModel`.
Background: [`concepts/the-graphql-pipeline.md`](../../concepts/the-graphql-pipeline.md).
## 2. The four GraphQL differences
1. **Entries come from `toGqlOperationEntry`**; `transform` receives
`operation: GqlOperation` (fields: `rootKind` —
`'query' | 'mutation'` — and `fieldName`; `operation.identifier`
is `_`). The companion projection-base
factory is the lang package's
`toGqlOperationProjectionBase`.
2. **Enrichments arrive parsed on `settings.enrichments`, same as
OAS** — the base's `static toEnrichments` parses the umbrella with
`subjectSegments: [operation.rootKind, operation.fieldName,
variant]` (`toGqlOperationProjectionBase.ts`). Only the subject
keys differ: two nested segments (`rootKind`, `fieldName`) where
OAS has path+method. `operation.identifier`
(`_`) is a file-naming/cache key, never an
enrichment key.
3. **Mutation args come via `synthesizeArgsObject(operation)`** — GQL
has no `requestBody`; this turns the field's arguments into an
object schema suitable for `insertNormalizedModel`.
4. **Routing keys**: enrichment routing is
`enrichments....`; the
`GeneratorKey` is `id|rootKind|fieldName|variant`. Compose with
`this.insertOperation(Peer, op, { variant? })` exactly as for
OAS.
## 3. Boundary with other skills
- **skmtc-generator** — everything engine-side; load it first.
- **skmtc-lang-typescript / skmtc-lang-kotlin** — the target-language
layer, exactly as for OAS generators.
- Deep dive: `concepts/the-graphql-pipeline.md`; the
operation-reference protocol's GraphQL example is in
`concepts/cross-generator-coordination.md`.
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [skmtc](https://github.com/skmtc)
- **Source:** [skmtc/skmtc](https://github.com/skmtc/skmtc)
- **License:** Apache-2.0
- **Homepage:** https://skm.tc
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.