Skip to main content
Glama

lore_arc_plan

Destructive

Generate the next novel arc's promise and 3-20 episode beats, validate structure and quality, and save the plan to replace any existing arc plan.

Instructions

다음 아크의 약속과 3~20개 얇은 회차 비트(사건·압력·전환·다음 상태)를 생성하고 구조·품질 검증을 거쳐 .vibelore/arc-plan.json에 저장한다(아크별 사본은 .vibelore/arcs/). lore_write 전에 lore_arc_status로 활성 아크가 없음을 확인했을 때, 또는 아크가 끝났을 때 호출한다. 기반과 승인된 StoryProfile·StorySpine·WriterSkill이 필요하다. 현재 계획을 무조건 교체한다: pending이면 같은 번호로 덮어쓰고, 진행 중인 활성 아크도 다음 번호의 새 아크로 대체하므로 아크 중간에는 호출하지 않는다. 생성·품질 판정·언어 검증에 status=needs_model이 약 3회 나온다. 반환은 {plan(episodes, quality), needsApproval, instruction}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoreview(기본)=사용자 승인 전까지 pending이며 집필할 수 없다. auto=검증 통과 즉시 활성화. 사용자가 "알아서·묻지 말고"라고 한 경우만 auto.
workIdYes작품 식별자 ([A-Za-z0-9_-]). 한 디렉터리에는 작품 하나만 둔다.
projectNo작품 디렉터리의 절대 경로. 생략하면 서버 실행 디렉터리.
episodesNo아크 화수 3~20(범위 밖은 잘라낸다). 기본 8.
feedbackNo거절한 계획을 다시 만들 때 반영할 피드백. 이전 계획은 모델에 다시 보내지 않으므로 피드백만으로 이해되게 쓴다.
directionNo사용자가 원하는 아크 방향. 비우면 작품 브리프와 StorySpine에서 자율 설계.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.4.4
    • changedInput schema / properties / direction / description
      Previous value: -"사용자가 원하는 아크 방향. 비우면 자율 설계."New value: +"사용자가 원하는 아크 방향. 비우면 작품 브리프와 StorySpine에서 자율 설계."
    • changedInput schema / properties / episodes / description
      Previous value: -"아크 화수 3~20"New value: +"아크 화수 3~20(범위 밖은 잘라낸다). 기본 8."
    • changedInput schema / properties / feedback / description
      Previous value: -"거절한 계획을 다시 만들 때 반영할 피드백."New value: +"거절한 계획을 다시 만들 때 반영할 피드백. 이전 계획은 모델에 다시 보내지 않으므로 피드백만으로 이해되게 쓴다."
    • changedInput schema / properties / mode / description
      Previous value: -"review=사용자 검토, auto=자동 승인"New value: +"review(기본)=사용자 승인 전까지 pending이며 집필할 수 없다. auto=검증 통과 즉시 활성화. 사용자가 \"알아서·묻지 말고\"라고 한 경우만 auto."
    • changedInput schema / properties / workId / description
      Previous value: -"작품 식별자 ([A-Za-z0-9_-])."New value: +"작품 식별자 ([A-Za-z0-9_-]). 한 디렉터리에는 작품 하나만 둔다."
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say destructiveHint=true/readOnlyHint=false; the description goes far beyond by stating it unconditionally replaces the current plan (overwriting a pending plan at the same number and replacing an in-progress active arc with a next-numbered arc). It also discloses that status=needs_model will surface roughly three times during generation/quality/language validation, which is critical multi-turn behavior.

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, then preconditions, then replacement semantics and return shape. Every sentence carries load, though the single dense block is longer than strictly necessary and could be split for scannability.

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 complex, destructive, multi-turn planning tool with no output schema, the description covers preconditions, side effects, approval flow, expected needs_model cycles, and the return shape {plan(episodes, quality), needsApproval, instruction}. Nothing an agent needs to call it safely 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 100%, so the schema already documents all six parameters (mode enum semantics, workId pattern, episodes range, feedback/direction usage). The description adds the unconditional-replacement behavior but no additional per-parameter meaning, so the 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 specific verb+resource with scope: generates the next arc's promise plus 3-20 episode beats, runs structural/quality validation, and writes .vibelore/arc-plan.json (with per-arc copies in .vibelore/arcs/). This clearly separates it from siblings lore_arc_status, lore_arc_review, and lore_arc_decide.

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 explicit invocation conditions ('call before lore_write once lore_arc_status confirms no active arc, or when an arc has ended') and an explicit exclusion ('do not call mid-arc'). It also names the required upstream artifacts (foundation, approved StoryProfile/StorySpine/WriterSkill) and references the sibling tool that gates it.

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