Skip to main content
Glama

KRDS 페이지 뼈대

get_page_scaffold
Read-onlyIdempotent

Returns an accessible KRDS page scaffold for new pages, with optional official patterns (login, board, apply, search) or an empty skeleton, before filling body sections with components.

Instructions

KRDS 페이지의 시작 골격을 반환한다. 새 페이지를 만들 때 get_component보다 먼저 부른다. pattern을 주면 공식 KRDS 패턴을 접근성 교정한 완성 템플릿을 주고(apply-complete, apply-detail, apply-form, apply-issue, apply-list, board-detail, board-list, login-id, login-select, login-tabs, main-portal, search-results, sub-page), 없으면 빈 뼈대를 준다. 로그인·신청·검색·게시판 같은 정형 화면은 반드시 pattern을 쓴다 — 레이아웃을 직접 창작하지 않는 것이 KRDS 준수의 기본이다. withSiteChrome: true면 정부 배너·헤더·푸터까지 조립한다. 본문 부품은 get_component로 채운다. 필수 입력(pageTitle, 패턴의 필수 슬롯)이 비면 isError 응답으로 채울 값을 안내한다. 반환: 마크다운 — 페이지 HTML(또는 include 조각), 교정 내역, 조립 지침.

Input Schema

NameRequiredDescriptionDefault
langNo<html lang> 언어 코드(BCP 47) — 예: "ko", "en". 기본 "ko" (kwcag:7.1.1)
slotsNo패턴 슬롯 값(슬롯 이름 → 문자열). 슬롯 이름은 패턴마다 다르다 — 처음엔 slots 없이 pattern만 주고 부르면 필수 슬롯 이름과 설명이 isError 응답으로 온다. pageTitle·lang·assetBase는 슬롯이 아니라 위 입력으로 준다
outputNo"parts"면 조각(head·header·main·footer·scripts)으로 나눠 준다 — 여러 화면이 공통부를 공유할 때(JSP include, 정적 사이트 공통 조각, 레이아웃 컴포넌트) 손으로 떼어 내지 말고 이것을 써라. 기본 "page"
logoSrcNo기관 로고 이미지 경로 — 킷 로고(CSS 배경)를 바꾸는 CSS를 헤더·푸터에 넣는다. 고대비 모드에도 같은 이미지를 쓴다
orgNameNo기관명 — withSiteChrome의 헤더·푸터 로고 대체 텍스트가 된다(로고는 CSS 배경이라 유일한 텍스트). 실제 기관명을 넣어라
patternNoKRDS 패턴 이름 — apply-complete, apply-detail, apply-form, apply-issue, apply-list, board-detail, board-list, login-id, login-select, login-tabs, main-portal, search-results, sub-page. 계열 이름(apply, board, login)만 주면 변형 목록과 고르는 기준을 돌려준다
homeHrefNo로고 링크 — 기본 "/"
siteMenuNowithSiteChrome의 헤더 메뉴(1~3단계) — 주면 킷 데모 메뉴(자리 문구 수십 개) 대신 이 트리로 데스크톱 메뉴와 모바일 전체메뉴를 만든다. orgName이 함께 필요하다. 하위가 없는 항목은 href 필수(3단계는 언제나 href), 하위가 있는 항목은 여닫는 버튼이 된다. 예: [{label:"민원",children:[{label:"민원 신청",href:"/apply"}]},{label:"알림",href:"/notice"}]
assetBaseNo킷 자산 경로 — 기본 "node_modules/krds-uiux". 킷을 복사·CDN으로 서빙하면 그 경로
loginHrefNo있으면 헤더에 로그인 링크를 둔다 (siteMenu와 함께)
pageTitleYes페이지 제목 — <title>과 h1에 들어간다 (kwcag:6.4.2). 비어있으면 안 된다
withCarouselNo캐러셀을 쓸 예정이면 true — swiper 번들 스크립트를 넣는다. pattern 없이 빈 뼈대를 받을 때만 반영된다
withSiteChromeNotrue면 사이트 공통부(공식 배너·헤더·푸터·운영기관 식별자)를 도구가 올바른 랜드마크 구조로 조립해 포함한다 — 직접 조립보다 이 옵션을 권장. siteMenu·orgName·logoSrc로 메뉴와 로고까지 만든다

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.2.0
    • changedInput schema / properties / lang / description
      Previous value: -"주 언어 코드. 기본 \"ko\" (kwcag:7.1.1)"New value: +"<html lang> 언어 코드(BCP 47) — 예: \"ko\", \"en\". 기본 \"ko\" (kwcag:7.1.1)"
    • changedInput schema / properties / pattern / description
      Previous value: -"KRDS 패턴 이름 (예: \"login\"). 정형 화면이면 지정하라 — 완성 구조를 반환한다"New value: +"KRDS 패턴 이름 — apply-complete, apply-detail, apply-form, apply-issue, apply-list, board-detail, board-list, login-id, login-select, login-tabs, main-portal, search-results, sub-page. 계열 이름(apply, board, login)만 주면 변형 목록과 고르는 기준을 돌려준다"
    • changedInput schema / properties / siteMenu / description
      Previous value: -"withSiteChrome의 헤더 메뉴(1~3단계) — 주면 킷 데모 메뉴(자리 문구 수십 개) 대신 이 트리로 데스크톱 메뉴와 모바일 전체메뉴를 만든다. 하위가 없는 항목은 href 필수, 하위가 있는 항목은 여닫는 버튼이 된다. 예: [{label:\"민원\",children:[{label:\"민원 신청\",href:\"/apply\"}]},{label:\"알림\",href:\"/notice\"}]"New value: +"withSiteChrome의 헤더 메뉴(1~3단계) — 주면 킷 데모 메뉴(자리 문구 수십 개) 대신 이 트리로 데스크톱 메뉴와 모바일 전체메뉴를 만든다. orgName이 함께 필요하다. 하위가 없는 항목은 href 필수(3단계는 언제나 href), 하위가 있는 항목은 여닫는 버튼이 된다. 예: [{label:\"민원\",children:[{label:\"민원 신청\",href:\"/apply\"}]},{label:\"알림\",href:\"/notice\"}]"
    • changedInput schema / properties / slots / description
      Previous value: -"패턴 슬롯 값 — 필수 슬롯 미입력 시 무엇을 채울지 안내만 반환한다"New value: +"패턴 슬롯 값(슬롯 이름 → 문자열). 슬롯 이름은 패턴마다 다르다 — 처음엔 slots 없이 pattern만 주고 부르면 필수 슬롯 이름과 설명이 isError 응답으로 온다. pageTitle·lang·assetBase는 슬롯이 아니라 위 입력으로 준다"
    • changedInput schema / properties / withCarousel / description
      Previous value: -"캐러셀 사용 예정이면 true — swiper 번들 스크립트 포함"New value: +"캐러셀을 쓸 예정이면 true — swiper 번들 스크립트를 넣는다. pattern 없이 빈 뼈대를 받을 때만 반영된다"
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare read-only/idempotent safety; the description adds the error contract (missing pageTitle or required slots produce an isError that tells you what to supply) and the return shape (markdown with page HTML, accessibility-correction notes, assembly instructions). This is exactly the kind of non-schema behavior an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and call ordering, then pattern requirements, then options, then return format. Dense but nearly every sentence carries a decision the agent must make; the long inline enumeration of 13 pattern names is the only bulky stretch, and it earns its place as the selection menu.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter tool with nested objects and no output schema, the description covers the generation workflow, the pattern-vs-empty-scaffold branch, error behavior, and output composition. Rich per-parameter details (siteMenu tree semantics, assetBase defaults) are left to the schema, which already handles them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented, and the description's parameter content (pattern list, withSiteChrome assembling banner/header/footer, slot discovery via isError) largely restates what the schema says. It adds the workflow hint that slots should be omitted on a first call, but nothing about syntax or value formats beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('KRDS 페이지의 시작 골격을 반환한다') and immediately distinguishes itself from the sibling get_component by establishing call ordering. An agent can tell what it produces (page HTML or include fragments) without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call this before get_component, to use a named pattern for standard screens (로그인·신청·검색·게시판) rather than hand-rolling layout, and to fill body parts with get_component afterward. Both when-to-use and when-not-to-improvise are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.