{"id":307468,"recorded_at":"2026-10-26T23:34:44.990564Z","observed_at":"2026-10-26T23:34:44.990513Z","subject_kind":"endpoint","subject":"6ecd536b-808d-4d2f-8dd8-9e483e076db8","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":9,"tools":[{"description":"Record a lesson result for a learner AFTER grading its quiz/assignment. passed:true marks it done and advances; passed:false records the attempt without advancing (reteach). Always include a `reflection` when you have one — it's the signal that improves the course.","inputSchema":{"additionalProperties":false,"properties":{"learner":{"description":"Same EMAIL address used in start_session.","type":"string"},"passed":{"description":"Did they pass the quiz/assignment? Default true. false = reteach, don't advance.","type":"boolean"},"reflection":{"description":"What confused them, what landed, or what they want next (≤1000 chars). Feeds curriculum improvement.","type":"string"},"slug":{"description":"The lesson slug just attempted.","type":"string"}},"required":["learner","slug"],"type":"object"},"name":"complete_lesson"},{"description":"OPERATOR / Inspectable State: usage snapshot of the whole course — learner count, level mix, completions, per-lesson pass rates, and recent reflections. Requires admin_key. Answers 'what is the state of the work?' for an operator agent.","inputSchema":{"additionalProperties":false,"properties":{"admin_key":{"description":"Operator admin key (Worker secret ADMIN_KEY).","type":"string"}},"required":["admin_key"],"type":"object"},"name":"course_stats"},{"description":"Get the full markdown of one lesson by slug. Teach from it: lead with the why, then run the exercise with the learner's real work.","inputSchema":{"additionalProperties":false,"properties":{"slug":{"description":"Lesson slug from list_lessons / start_session.","type":"string"}},"required":["slug"],"type":"object"},"name":"get_lesson"},{"description":"List lessons (slug, title, track, order, summary), optionally filtered to one track.","inputSchema":{"additionalProperties":false,"properties":{"track":{"description":"Optional track filter.","enum":["scratch","intermediate","power"],"type":"string"}},"type":"object"},"name":"list_lessons"},{"description":"What delegation.school is, the three tracks, and how to run the course as the learner's tutor. Background reading.","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"},"name":"overview"},{"description":"OPERATOR: reclassify an existing learner's track (scratch | intermediate | power). Routes through the learner's record so the change sticks. Use when a learner was placed wrong — e.g. a scratch enrollee who's really a power operator. Requires admin_key. The learner must have started a session first.","inputSchema":{"additionalProperties":false,"properties":{"admin_key":{"description":"Operator admin key (Worker secret ADMIN_KEY).","type":"string"},"learner":{"description":"The learner's name/email (same key used in start_session).","type":"string"},"level":{"description":"The new level: scratch | intermediate | power.","enum":["scratch","intermediate","power"],"type":"string"}},"required":["learner","level","admin_key"],"type":"object"},"name":"set_level"},{"description":"Call FIRST. Place or resume a learner: returns their level, completed lessons, and the recommended next lesson. Ask for the learner's EMAIL ADDRESS and pass it as `learner` — emails are stable and unique; a bare name collides across learners and gets mistyped. Pass their real name as `name` for the certificate.","inputSchema":{"additionalProperties":false,"properties":{"learner":{"description":"The learner's EMAIL ADDRESS — their stable, unique progress key. Ask for it; do not key off a bare name (names collide across learners and get mistyped).","type":"string"},"level":{"description":"Optional: set/override their level (scratch | intermediate | power).","enum":["scratch","intermediate","power"],"type":"string"},"name":{"description":"Optional: the learner's display name, for the certificate and a friendlier greeting. The email stays the key.","type":"string"}},"required":["learner"],"type":"object"},"name":"start_session"},{"description":"Send the course team feedback FOR the learner — what's confusing, a bug, an idea, or praise. No grade, no admin key. Use it the moment a learner is stuck or reacts to something, AND always offer it when a session wraps ('anything confusing, or that you wish it did?'). Routes to the team's Slack + the feedback log so friction becomes a signal instead of a 1:1 text.","inputSchema":{"additionalProperties":false,"properties":{"kind":{"description":"Optional category.","enum":["stuck","bug","idea","praise","other"],"type":"string"},"learner":{"description":"Optional: the learner's name/email so the team can follow up.","type":"string"},"lesson":{"description":"Optional: the lesson slug it's about.","type":"string"},"message":{"description":"The learner's feedback, in their own words (≤2000 chars).","type":"string"}},"required":["message"],"type":"object"},"name":"submit_feedback"},{"description":"OPERATOR (Capital Factory gift shop): validate a reward code (Golden Ticket GT- or Founding Graduate badge FG-) — returns who earned it, the reward, when, and whether it's been redeemed. Pass redeem:true to mark it redeemed at point of redemption. Requires admin_key.","inputSchema":{"additionalProperties":false,"properties":{"admin_key":{"description":"Operator admin key (Worker secret ADMIN_KEY).","type":"string"},"code":{"description":"The reward code, e.g. GT-AB12CD34 (Station ticket) or FG-AB12CD34 (Founding badge).","type":"string"},"redeem":{"description":"If true, mark the ticket redeemed now (one-way).","type":"boolean"}},"required":["code","admin_key"],"type":"object"},"name":"verify_ticket"}]},"body_sha256":"d89e99c859cd2032c581489dbdf30abaa1211545678b6b0c02f5c69cb7f6eb6e","prev_id":null,"leaf":"0x493152adcbdd0e3d87d68593e426cc32ed718fbbe52823dee9e04645e22e20ac","leaf_text":"{\"body\":\"d89e99c859cd2032c581489dbdf30abaa1211545678b6b0c02f5c69cb7f6eb6e\",\"id\":307468,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793057684990513,\"prev\":null,\"subject\":\"6ecd536b-808d-4d2f-8dd8-9e483e076db8\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x49315459b4e97b4b3cedae3cf029538b580d803abbd97a0901c86671a1fcd788","0x56fbfebae600243c6722a3dbbfefd7e9aeb6dd9d0e9929880b2c32d25a2df47a","0xdd4dc2a2b93b8d2a13a9f4ec008b2271e95a324250daacff2d983e2e364351a6","0x39076e1513033a64ecc241f437e40e0941d270bb13ec9034c82b35064b8b595a","0x23472ed69eae975fa85f391f22512924d5090db824de70411f6677d0e9bc9c45","0x8d22ff6f1457b29f50c3b984cb4cddf078feda1288b6f3ed4233e5f67b85fe0b","0x5db15b0f640db361ce4e7fd848035fdd06ce7a9723f2076ec1d421c089e7802c","0xc7030292d06775814630ce84a84f8aace027d708bd27b383e364a8af1e25fd7f","0x7541cd1918e38f4a0f6add627a7846433315f4898be3452c4fe4e6121a5b9747","0x1c31b9fd609755e3d960fab27bd2b1eb3a2104f15e3f9261a56d30e3613f4c01","0xa40c09a143bc388ccac821ec3854902941c513470a57a806c98060a6d63aedf9","0xee7d5711cd2515f4b08f3e4041d3d56304f9db6bffd82d82746f0f4ea43b8f26","0xb86fa861d04737cb507e721eefbb066d26528fdb6017b1145c18d1223b93ee21","0x88e326a39b26e2c125306c9d3805d14398ace088bba9a2a0aa376b811cfb201a","0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497","0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0","0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d","0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}