Skip to main content
Glama

lore_create

Generates a new novel's foundation—world facts, cast, and tracking entities—from a brief, honoring an approved StoryProfile or genre, and refuses to overwrite existing settings.

Instructions

새 작품의 기반을 모델이 자동 설계한다: 세계 사실, 3~5인 캐스트(characters/.md), 추적 엔티티를 만들어 world/setting.md와 .vibelore/에 저장한다. 보통 lore_profile → lore_profile_decide(approve) 다음에 호출하며, 그러면 StoryProfile의 엔진 장르·시점·언어·분량을 따른다. StoryProfile 없이 genre만으로도 호출할 수 있다. 직접 쓴 설정으로 시작하려면 lore_init을 쓴다. 이미 기반이 있으면 덮어쓰지 않고 거부하며, StoryProfile이 있는데 승인 전이면 거부한다. 세계·캐스트·엔티티·언어 검증마다 status=needs_model을 돌려주므로 lore_resume을 여러 번 이어야 하고, 모두 끝나기 전에는 아무 파일도 저장하지 않는다. 성공하면 {created:true, genre, language, length, worldFacts(개수), characters[{id,name,contradiction}], entities[{id,kind,name}]}. 다음 단계는 lore_story_plan.

Input Schema

NameRequiredDescriptionDefault
briefYes작품 전제와 방향을 담은 자연어 브리프. 승인된 StoryProfile이 있으면 그 독서 계약과 합쳐 설계 입력이 된다.
genreNo엔진 장르 id(lore_init과 같은 목록). StoryProfile이 없을 때만 필요하며, 있으면 무시하고 StoryProfile의 엔진 장르를 쓴다.
titleYes작품 제목. 세계·캐스트 설계 입력으로도 쓰인다.
lengthNo화당 분량 계약. unit 은 legacyCodeUnits|graphemes|words, target 은 양의 정수. 생략하면 StoryProfile 값, 없으면 3000(ko는 legacyCodeUnits, 그 외는 graphemes).
workIdYes작품 식별자 ([A-Za-z0-9_-]). 한 디렉터리에는 작품 하나만 둔다.
povModeNo시점(예: 3인칭제한, 1인칭). 생략하면 StoryProfile의 시점, 그것도 없으면 제한 3인칭.
projectNo작품 디렉터리의 절대 경로. 생략하면 서버 실행 디렉터리.
languageNo작품 언어 BCP 47 태그(예: ko, en-US, ja, zh-Hant). 생략하면 저장된 계약을 따른다. StoryProfile이 있으면 그 언어와 같아야 한다.
targetChaptersNo완결 목표 화수. 기본 40.
chapterWordCountNo구형 분량 인자. 이름과 달리 단어가 아니라 legacyCodeUnits(대략 UTF-16 글자 수)로 해석한다. 새 호출은 length를 쓴다. 둘 다 주면 unit=legacyCodeUnits이고 target이 같아야 하며 아니면 LENGTH_CONTRACT_CONFLICT.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.4.8
    • addedInput schema / properties / length / properties / target / minimum
      Added value: +1
    • changedInput schema / properties / length / properties / target / type
      Previous value: -"number"New value: +"integer"
  2. Changed9 schema fields changedv0.4.4
    • addedInput schema / properties / brief / description
      Added value: +"작품 전제와 방향을 담은 자연어 브리프. 승인된 StoryProfile이 있으면 그 독서 계약과 합쳐 설계 입력이 된다."
    • addedInput schema / properties / chapterWordCount / description
      Added value: +"구형 분량 인자. 이름과 달리 단어가 아니라 legacyCodeUnits(대략 UTF-16 글자 수)로 해석한다. 새 호출은 length를 쓴다. 둘 다 주면 unit=legacyCodeUnits이고 target이 같아야 하며 아니면 LENGTH_CONTRACT_CONFLICT."
    • addedInput schema / properties / genre / description
      Added value: +"엔진 장르 id(lore_init과 같은 목록). StoryProfile이 없을 때만 필요하며, 있으면 무시하고 StoryProfile의 엔진 장르를 쓴다."
    • changedInput schema / properties / language / description
      Previous value: -"작품 언어 BCP 47 태그(예: ko, en-US, ja, zh-Hant). 생략하면 저장된 계약을 따른다."New value: +"작품 언어 BCP 47 태그(예: ko, en-US, ja, zh-Hant). 생략하면 저장된 계약을 따른다. StoryProfile이 있으면 그 언어와 같아야 한다."
    • changedInput schema / properties / length / description
      Previous value: -"화당 분량 계약. unit 은 legacyCodeUnits|graphemes|words."New value: +"화당 분량 계약. unit 은 legacyCodeUnits|graphemes|words, target 은 양의 정수. 생략하면 StoryProfile 값, 없으면 3000(ko는 legacyCodeUnits, 그 외는 graphemes)."
    • addedInput schema / properties / povMode / description
      Added value: +"시점(예: 3인칭제한, 1인칭). 생략하면 StoryProfile의 시점, 그것도 없으면 제한 3인칭."
    • addedInput schema / properties / targetChapters / description
      Added value: +"완결 목표 화수. 기본 40."
    • addedInput schema / properties / title / description
      Added value: +"작품 제목. 세계·캐스트 설계 입력으로도 쓰인다."
    • changedInput schema / properties / workId / description
      Previous value: -"작품 식별자 ([A-Za-z0-9_-])."New value: +"작품 식별자 ([A-Za-z0-9_-]). 한 디렉터리에는 작품 하나만 둔다."
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond by disclosing the non-overwrite refusal policy, the unapproved-StoryProfile refusal, the multi-pass validation loop returning status=needs_model that must be continued via lore_resume, and the all-or-nothing atomicity ('모두 끝나기 전에는 아무 파일도 저장하지 않는다'). This is precisely the kind of behavioral context structured fields cannot convey.

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-loads the core action, then sequencing/refusal conditions, then return shape and next step. Dense but nearly every clause carries operational information; the only mild cost is length, which is justified by the multi-agent handshake flow it documents.

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

Completeness5/5

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

For a 10-parameter creating tool with no output schema, the description supplies the return payload fields ({created, genre, language, length, worldFacts, characters, entities}), the multi-resume workflow, abort/refusal conditions, and the explicit next step (lore_story_plan). Nothing an agent needs to call this correctly is missing.

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 description coverage is already 100%, so the schema documents all 10 parameters with format and defaults. The description echoes a few of these (genre only needed without StoryProfile, length fallback behavior) but adds no new syntax, constraints, or semantics beyond what the schema already provides, so baseline 3 applies.

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 concrete verb and resource ('새 작품의 기반을 모델이 자동 설계한다') plus exactly what artifacts it produces (world facts, 3-5 cast, entities saved to world/setting.md and .vibelore/). It explicitly differentiates itself from lore_init ('직접 쓴 설정으로 시작하려면 lore_init을 쓴다'), so an agent can route correctly without opening schemas.

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?

Gives the canonical call sequence (lore_profile → lore_profile_decide(approve) → this tool), the fallback path (callable with genre only when StoryProfile is absent), and names the alternative lore_init for hand-written settings. It also specifies refusal conditions (existing foundation, unapproved StoryProfile), which is exactly the when-not guidance needed.

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