← The evidence ledger
Evidence row 200983
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint c9dc984d-9236-4418-949b-ffafcee7e837
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 025a1cacac7c548e2c66557f14eac0f0e58429654780cc1674fad2c5c4f4abf4
- Leaf
- 0xe13bdca579721e1f3a6294da181bdf9b17bccd17a7c6a05980a8e478a4be9207
What was observed
{
"count": 10,
"tools": [
{
"description": "The 'what changed & why' feed — the engine's coaching decisions (volume bumps, deloads, swaps) in Coach Fly's voice. Use to explain to the athlete why their plan evolved.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "changelog"
},
{
"description": "The athlete's current multi-day program (render-ready).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_program"
},
{
"description": "Today's workout: exercises, sets/reps, per-exercise load guidance and concrete target weights, plus nutrition targets and cycle status. Auto-applies the user's readiness check-in (autoregulation) if they've done one today. Call this to see what the athlete should do now.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"dayIndex": {
"description": "Which program day (1-based). Defaults to the first day.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "get_todays_session"
},
{
"description": "Valid alternatives for an exercise — same muscle group, filtered to the athlete's equipment/level/injuries. Use before swap_exercise.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"exerciseId": {
"type": "string"
}
},
"required": [
"exerciseId"
],
"type": "object"
},
"name": "list_swap_options"
},
{
"description": "Record what the athlete actually lifted. The engine runs progression (double-progression, e1RM), detects PRs, and returns per-exercise outcomes (established/progressed/held/deloaded) with next-time targets. Weights are in kg.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"dayIndex": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"exercises": {
"description": "Per-exercise completed sets (weights in kg).",
"items": {
"properties": {
"exerciseId": {
"type": "string"
},
"prescribedRepTop": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"sets": {
"items": {
"properties": {
"completed": {
"type": "boolean"
},
"reps": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"rpe": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"weightKg": {
"type": "number"
}
},
"required": [
"weightKg",
"reps"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"exerciseId",
"sets"
],
"type": "object"
},
"type": "array"
},
"goal": {
"enum": [
"strength",
"hypertrophy",
"general_fitness",
"fat_loss"
],
"type": "string"
}
},
"required": [
"exercises"
],
"type": "object"
},
"name": "log_workout"
},
{
"description": "A day of meals hitting the athlete's targets, USDA truth-checked (flags feasible=false with a note when macros are approximate). Slow (~15s AI call).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"dietaryStyle": {
"type": "string"
},
"exclusions": {
"items": {
"type": "string"
},
"type": "array"
},
"mealsPerDay": {
"maximum": 5,
"minimum": 3,
"type": "integer"
},
"trainingDay": {
"type": "boolean"
}
},
"type": "object"
},
"name": "meal_plan"
},
{
"description": "The athlete's daily calorie + macro targets, computed from body stats, activity, and goal.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "nutrition_targets"
},
{
"description": "Record how the athlete feels today (energy, sleep, soreness — each 1–5). The engine scores readiness and, on the next get_todays_session, reshapes the workout accordingly (reduce volume / reduce intensity / recovery day). Returns the readiness score + modifier.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"energy": {
"description": "1 drained … 5 great",
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"sleep": {
"description": "1 terrible … 5 great",
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"soreness": {
"description": "1 none … 5 very sore",
"maximum": 5,
"minimum": 1,
"type": "integer"
}
},
"required": [
"energy",
"sleep",
"soreness"
],
"type": "object"
},
"name": "readiness_checkin"
},
{
"description": "Rebuild the whole program from the stored profile (~20s AI generation). Use after a profile change or a plateau.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "regenerate_program"
},
{
"description": "Replace an exercise with a valid same-area alternative. scope 'today' = just this session; scope 'program' = going forward. The new lift starts fresh (day-one calibration).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"dayIndex": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"exerciseId": {
"type": "string"
},
"scope": {
"description": "Default 'program'.",
"enum": [
"today",
"program"
],
"type": "string"
},
"toExerciseId": {
"type": "string"
}
},
"required": [
"exerciseId",
"toExerciseId"
],
"type": "object"
},
"name": "swap_exercise"
}
]
}What the leaf hashes
{"body":"025a1cacac7c548e2c66557f14eac0f0e58429654780cc1674fad2c5c4f4abf4","id":200983,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793026081115349,"prev":null,"subject":"c9dc984d-9236-4418-949b-ffafcee7e837","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0xe13bf0cc5937df60043db1d21ab6c7dca33d7d3d6f3620ebb81d6157a4b04a8b
- 0x30bb6a42faf31abba3649e77c171c196c9eebd33fd12ba05def22baeff93e975
- 0x50385de724a16e88ae2c5f89129f946175e6d0b3d2edfeb458ec46e41e77a8ad
- 0xeb627f7b1cb0546b80617f05834f2947fa1389ff7d8434595a188430c816501d
- 0x88d07c749a9def130c5e380dbb5d2d8e5b5027b06236b1f21e88a7f631b8ff47
- 0xe17f4e521a8a2a078993ed42bfb2d9d08eff73ff40cafcd799693f0d0386a1ce
- 0xd47eb19d7e464d285918c5451b9c5dc217133e1ead95067fda6dd30f198194aa
- 0x8fc2cc5d114f54b690932aa561854a9e75af313a82d6d84d64372e8df3cbdcfe
- 0xe63f8e4581859c67f54bf7aee4c4a0debf8404ddbf6dd1964ec000823c4caa23
- 0x4b514c272cf743fead7500e2a90fbbb62a667f67d8a586fb32ddc4f005077e2e
- 0x82d0a2528274b883dc22fee84985c9c34404274baadfb76651d0008598f80bff
- 0x714c96bd488ccf4af927c8bc83397404f7f6f1b165b622d0e8216290209825e4
- 0x3fcdf7fa32ccefe771eb57ae3015142065d64e3ce732fea7d11b9a3c99dde44f
- 0x0b7541c75cc482a7134110311d7dbd02095d969ba21177de9b21a52a55981718
- 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
- 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae