본문으로 건너뛰기
cccskills
무료GitHub에 공개

skmtc-graphql

The GraphQL pipeline for SKMTC generators — authoring generators whose input schema is GraphQL SDL rather than OpenAPI. Covers `toGqlOperationEntry`, `GqlOperation`, `synthesizeArgsObject` (mutation args -> object schema), the GQL enrichment routing (`[id][rootKind][fieldName][variant]` — two nested subject keys where OAS has path+method), the `to<Lang>GqlOperationProjectionBase` companion factories, and the `GeneratorKey` shape `id|rootKind|fieldName|variant`. Use this skill ALONGSIDE `skmtc-generator` whenever the schema source is GraphQL SDL or the task mentions "GraphQL", "SDL", "GqlOperation", "toGqlOperationEntry", or GraphQL query/mutation generators. Engine rules (producers, register/insert, the axioms) stay in `skmtc-generator`; this skill carries only what differs for GraphQL.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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)

import { toGqlOperationEntry, synthesizeArgsObject } from '@skmtc/core'

export const MyGqlEntry = toGqlOperationEntry<EnrichmentSchema>({
  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.

2. The four GraphQL differences

  1. Entries come from toGqlOperationEntry; transform receives operation: GqlOperation (fields: rootKind — 'query' | 'mutation' — and fieldName; operation.identifier is <rootKind>_<fieldName>). The companion projection-base factory is the lang package's to<Lang>GqlOperationProjectionBase.
  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 (<rootKind>_<fieldName>) 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.<id>.<rootKind>.<fieldName>.<variant>; the GeneratorKey is id|rootKind|fieldName|variant. Compose with this.insertOperation(Peer, op, { variant?, options }) exactly as for OAS — options only when the peer declares them.

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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Write, restructure, or review documentation — tutorials, how-to guides, reference pages, concept/explanation docs, API references, READMEs, changelogs, release notes, and troubleshooting guides. Distills documentation craft from Mintlify's guides (compiled from technical writers at Stripe, GitHub, Amplitude, and Anaconda), the Diátaxis framework (including the compass and per-type voice), the Google and Microsoft style guides, Every Page Is Page One, Write the Docs, and Docs for Developers: audience analysis, content-type selection, style and word-level rules, procedure writing, structure for humans and AI agents, code-example standards, page templates (templates.md), mechanical enforcement and llms.txt (mechanics.md), maintenance, and success metrics. Use this skill when the user asks to "write docs", "document this feature", "improve this page", "review these docs", "write a tutorial / how-to / reference page", "structure the docs", "write API documentation", "write a README / changelog", or when authoring any file under a `docs/` tree. For SKMTC docs specifically, this skill governs the *craft* (what makes the page good); the content split between skills, `llms.md`, and the docs tree is governed by `docs/skills/README.md`. Distinct from `skmtc-retro` (captures observations about work) and the `skmtc-*` operational skills (guide doing the work) — this skill guides writing *about* the work for readers.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

skmtc/skmtc192026년 10월 17일 업데이트

Understand what SKMTC is, how its engine works, and the architectural invariants — for agents building or extending infrastructure *around* SKMTC rather than authoring generators or running the CLI. Covers the three-phase pipeline, the host/Worker boundary, cross-generator coordination, the manifest, the attribution / gen-maps (provenance) subsystem, the package graph, the dependency substrate, and the design decisions that make SKMTC behave unlike a typical codegen tool. Use this skill when the user asks "what is SKMTC", "how does the SKMTC engine work", "explain the SKMTC architecture", or is building platform infrastructure around SKMTC — a hosted generate API, a schema or generator registry, tracing or provenance tooling, a web app or SaaS that wraps the engine, or platform-level CI integration. This skill is the system mental model. It does NOT cover authoring generators (→ skmtc-generator), running CLI commands (→ skmtc-cli), or diagnosing broken runs (→ skmtc-debug).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

skmtc/skmtc192026년 10월 17일 업데이트

skmtc-cli

무료

Use the Skmtc CLI to scaffold projects, install or clone generators from JSR, configure schema sources and enrichments, and produce code artifacts from an OpenAPI v3 or GraphQL SDL schema. Teaches the workspace mental model (`<root>/.skmtc/<project>/`, client.json, bundle, manifest) and the agent contract (strict text / strict JSON modes, exit codes, recipe errors, `agent-context` + `doctor`); the command surface itself is discovered from the binary — `skmtc --help`, `skmtc <cmd> -h` — rather than carried in this skill. Use this skill when the user asks to "run skmtc", "generate code from an OpenAPI schema", "install a skmtc generator", "scaffold a skmtc project", "watch a skmtc project", "configure enrichments", "publish a stack", "deploy to skmtc-hub" (the command is `publish`; there is no `deploy`), "skmtc in CI", or invokes any CLI subcommand. For *authoring* a generator package (Projections, Snippets, transform functions), defer to `skmtc-generator`. When something is broken (no output, wrong output, error messages, a failed bundle build), verify before proposing a fix: read the manifest and the parse issues, and reproduce the failure first.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

skmtc/skmtc192026년 10월 17일 업데이트

Diagnose failures in SKMTC sessions — no output, wrong output, error messages, failed bundle builds, parseIssues, "Registered definition mismatch", ref cycles, "Module not found" in generated code, or any other broken behavior. Applies across both CLI usage and generator authoring contexts. Use this skill when the user asks "why isn't my generator working", "no output for X", "wrong output", "what does this error mean", "manifest says X", "bundle failed", "INVALID_SCHEMA", "INVALID_DEPENDENCY_REF", "Registered definition mismatch", "Module not found" (in generated code), "ConfigValidationError", or reports any other SKMTC failure. This skill encodes a **verify-first epistemic stance** — read the manifest, check parseIssues, reproduce the failure before proposing fixes. Distinct from `skmtc-cli` and `skmtc-generator` which guide *doing*; this skill guides *diagnosing*.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

skmtc/skmtc192026년 10월 17일 업데이트

Author and edit Skmtc generators — packages that project an OpenAPI domain model into application code. Method: clone the nearest stock generator, then apply the engine rules imitation can't teach. Assumes zero prior Skmtc knowledge. Use when asked to "write a skmtc generator", "author/clone/customize gen-x", "add a field type", "change export paths", "add enrichment options", or when editing generator source. ALWAYS pair with the target language's skill (skmtc-lang-typescript).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

skmtc/skmtc192026년 10월 17일 업데이트

The Kotlin target-language layer for Skmtc generators (@skmtc/lang-kotlin): base factories, KtSnippet, the seven entity kinds, packages-from-paths imports, the head+value render model, KtAnnotation and the composition classes, sanitization and @SerialName placement, plus the current-API worked example (the shipped gen-kotlin-* packages are API-stale — do not copy their call shapes). Use ALONGSIDE skmtc-generator whenever a generator emits Kotlin. Headings mirror skmtc-lang-typescript.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

skmtc/skmtc192026년 10월 17일 업데이트

skmtc의 스킬 모두 보기

이 스킬의 문제 신고