Skip to main content
Glama

propose_contract

Create a teaching contract draft from the learning goal, including timeline, success criteria, and cadence, and submit it for the learner's signature before lessons begin.

Instructions

立约前先读 skill intake/contract-establish(prompt _stack 可见全栈)——goal 一句话不足以立好约, 挖掘对话产出 timeline/baseline/cadence 后再填单. 立约对话谈完后, 把 TeachingContract 草案递交给 LS, 状态为等待学习者签字 (setup_status: proposed). 只写 Class A (goal 必答/time_range/success_criteria) + Class B (intensity/interaction_mode/content_modality/pace/weekly_capacity_hours/preferred_time_of_day) — Class C (提醒渠道偏好: push/ical/email 等) 不收, 那是学习者在签字台表单里自己定的. cadence(节奏条款, Contract 2.0)例外: 若立约对话里谈过"定时 or 碎片化学习", 在这里一并写下——它决定的是"存不存在固定节奏约定"这件事本身, 不是 Class C 的渠道细节, 谈过就该带着签字台走, 不用学习者自己再填一遍. source_material(自带教材条款)同理: 学习者带自己的书来学时, 把谈定的教材条款(书名+依赖档位+版本年份)一并记进合同, 见该参数的形状说明. 学习者点开 /contract 页看到草案卡片, 可以拧 Class B/cadence 旋钮再签, 也可以直接 Establish.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalYes学习目标, 课程级别的范围 (必填)
paceNodaily|weekly|flexible
cadenceNo可选 — 节奏条款 (Contract 2.0). 签约时学习者决定学习节奏: 定时(scheduled) 还是碎片化(fragmented). 形状: {mode:"scheduled"|"fragmented", slots?:[{weekday:0-6(0=周日), time:"HH:MM"(24h), tz:string(IANA 时区)}], reminders:"native"|"none", auto_duty:boolean, weekly_review_nudge?:boolean, prep_rhythm?:"per_lesson"|"batch"}. 提醒本身不由 LS 发出——LS 无推送通道且不该造这一层; 这里只是"存约定 + 亮约定", 立钟(设日历/闹钟等实际提醒动作)由 agent/user 在原生工具里完成. auto_duty=提醒触发时 agent 是否自动上岗值更——涉及学习者额度消耗, 签约对话必须明示询问, 不问不写, 省略时按 false 处理, 不要替学习者猜. weekly_review_nudge 只对 fragmented 有意义——碎片化学习者的温和周复习提醒意愿, 可选. prep_rhythm=备课节奏("课程内容你想怎么长出来?", 见 skill intake/contract-establish): per_lesson(随学而备, 推荐默认)——每课带着上一课的真实表现出生, 探针/评估/难度管线全激活; batch(一次备齐)——先看全貌自己掌节奏, 代价是课与课之间不再互相学习. 整个 cadence 都可省略——未谈节奏条款就不写.
intensityNorelaxed|standard|hardcore
time_rangeNo{ start: ISO datetime, end_target?: ISO datetime }. 缺省用 now() 作 start.
idempotency_keyNo可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写".
source_materialNo可选 — 自带教材条款 (迁移 0040)。学习者带自己的教科书 (EPUB/PDF) 来学时, 把立约对话谈定的条款记进合同: {title:书名(必填), author?:作者, year?:出版/版本年份(时效风险开门见山), reliance:依赖档位(必填)}. reliance 三档: strict(严格, 100%: 结构/顺序/口径全随书, 只讲解不延伸) | anchored(锚定, ~80%: 骨架随书, 每课留外延余地) | inspired(启发, ~60%: 书是出发点, 可重组可大幅外延). 合同是文书不是引擎——这个字段只记谈定的条款, 摄取与教学行为语义住 recipe://first-contract-and-lesson (教材摄取段) 与 skill workflow/lesson-prep (教材模式). LS 不解析文件: 书由你的宿主读, 你来拆解. 未谈教材就不写.
content_modalityNotext|visual|mixed
interaction_modeNoasync|realtime|hybrid
success_criteriaNo
preferred_time_of_dayNo每项取 morning|afternoon|evening|late_night
weekly_capacity_hoursNo
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the workflow prerequisite, the output status (proposed/waiting for signature), and the important scoping rule (only Class A/B, not C). It also explains when cadence and source_material should be included. However, it omits mention of idempotency behavior and return format, though idempotency_key is present in the schema.

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?

The description is long but appropriately structured for a complex tool. It front-loads the prerequisite (read skill first) and organizes the class hierarchy clearly. Some redundancy exists in the cadence and source_material elaborations, but the length is justified by the need to prevent misuse.

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?

Given the tool's complexity, no output schema, and no annotations, the description is fairly complete: it covers prerequisites, workflow, parameter scoping, and post-submission behavior (user sees draft card and can adjust Class B/cadence). It does not address return values or error cases, but provides enough context for correct invocation.

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

Parameters4/5

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

Schema description coverage is 83% (>80%), so baseline is 3. The description adds meaning by grouping parameters into Class A/B/C and specifying under which conditions cadence and source_material should be provided (e.g., if discussed in conversation, or if the learner brings their own book). This supplements the schema's per-parameter descriptions.

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?

The description explicitly states that the tool submits a TeachingContract draft to LS with setup_status: proposed (waiting for learner signature), and defines the exact scope: only Class A + Class B, plus cadence/source_material exceptions. This clearly distinguishes it from sibling tools like update_contract_cadence or void_contract.

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?

It gives explicit when-to-use: after the contracting dialogue is finished, and requires reading skill intake/contract-establish first. It also gives when-not-to-use: Class C is not accepted and is instead handled via the signing desk form, while cadence/source_material are exceptions if discussed. This is strong, actionable guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sf-shenfeng/learn-shell'

If you have feedback or need assistance with the MCP directory API, please join our Discord server