addrbookFor publishers
← The evidence ledger

Evidence row 383130

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 6911ea5d-a4d2-47eb-96c9-d13ca70ea7a3
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
55ffb65466e9706e66dfeeaf7f3363da5d9c2c36e68ed44cdac4ca7ebad1b2a2
Leaf
0xf604b6257b4804267123f6e8d66d9fca5097f0c77dfad38b3c92d7440993c406

What was observed

{
  "count": 11,
  "tools": [
    {
      "description": "Assess one product's obsolescence risk. Provide exactly ONE of description/url/pitch_company_id/deck_text. Async — returns job_id; poll get_assessment. Defaults to deep mode. Optionally pass requested_by to identify the caller (shown in the activity feed).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "deck_text": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "mode": {
            "default": "deep",
            "enum": [
              "quick",
              "deep"
            ],
            "type": "string"
          },
          "pitch_company_id": {
            "type": "string"
          },
          "requested_by": {
            "description": "Who is requesting this assessment (name/handle/agent id) — shown in the #doom-activity feed; defaults to anonymous.",
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "assess_product"
    },
    {
      "description": "Prep Gate. Validates config + confirms the roadmap-signals KB is within the staleness threshold. Fails closed if stale. Call before assess_product.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "doom_prep"
    },
    {
      "description": "Poll an assessment job_id. Returns status + the typed assessment when complete. Hard timeout — never hangs on pending.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "type": "string"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "get_assessment"
    },
    {
      "description": "Recent assessments, filterable by verdict.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 20,
            "type": "number"
          },
          "verdict": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_assessments"
    },
    {
      "description": "List the active (signed, grounding) roadmap signals with their ids — use to find a signal_id to retire. Operator-only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "operator_key": {
            "type": "string"
          }
        },
        "required": [
          "operator_key"
        ],
        "type": "object"
      },
      "name": "list_kb_signals"
    },
    {
      "description": "KB-refresh review queue. List auto-scraped candidate roadmap signals (default: pending). Operator-only. Approve/reject with review_signal_candidate; the weekly cron signs approved ones into the live KB.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 50,
            "type": "number"
          },
          "operator_key": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pending",
              "approved",
              "rejected",
              "signed"
            ],
            "type": "string"
          }
        },
        "required": [
          "operator_key"
        ],
        "type": "object"
      },
      "name": "list_signal_candidates"
    },
    {
      "description": "Inspectable State. No input. Counts, recent activity, roadmap-signal freshness, health, last calibration run.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "overview"
    },
    {
      "description": "Outcome-feedback (learning loop). Record what ACTUALLY happened to a previously-assessed product as a labeled calibration case; the weekly recalibration folds it into the gate. Operator-only (requires operator_key). Provide either job_id (links the case to that assessment + reuses its product) or product text.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actual_outcome": {
            "enum": [
              "sherlocked",
              "survived",
              "thrived"
            ],
            "type": "string"
          },
          "expected_verdict": {
            "enum": [
              "roadkill",
              "squeezed",
              "defensible",
              "riding-the-wave"
            ],
            "type": "string"
          },
          "job_id": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "operator_key": {
            "type": "string"
          },
          "product": {
            "type": "string"
          },
          "year_observed": {
            "type": "number"
          }
        },
        "required": [
          "operator_key",
          "actual_outcome",
          "expected_verdict"
        ],
        "type": "object"
      },
      "name": "record_outcome"
    },
    {
      "description": "UNLEARN a KB signal that became false/obsolete (e.g. a rumored feature cancelled, or a signal no longer predictive). Soft-deletes it (active=false) so it stops grounding assessments immediately — recoverable. Operator-only. Find the id via list_kb_signals.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "operator_key": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "signal_id": {
            "type": "string"
          }
        },
        "required": [
          "operator_key",
          "signal_id",
          "reason"
        ],
        "type": "object"
      },
      "name": "retire_signal"
    },
    {
      "description": "Approve or reject a KB-refresh candidate signal. Operator-only. Approved candidates are signed (Ed25519) into the live roadmap_signals KB by the next refresh run; rejected ones are dropped. Controls what becomes grounding truth.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "approve",
              "reject"
            ],
            "type": "string"
          },
          "candidate_id": {
            "type": "string"
          },
          "operator_key": {
            "type": "string"
          }
        },
        "required": [
          "operator_key",
          "candidate_id",
          "action"
        ],
        "type": "object"
      },
      "name": "review_signal_candidate"
    },
    {
      "description": "UNLEARN a calibration case whose label turned out wrong or obsolete — retires it (active=false) so the recalibration gate stops scoring it. To correct, retire the wrong case then record_outcome the right one. Operator-only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "type": "string"
          },
          "operator_key": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "operator_key",
          "case_id",
          "reason"
        ],
        "type": "object"
      },
      "name": "supersede_calibration_case"
    }
  ]
}

What the leaf hashes

{"body":"55ffb65466e9706e66dfeeaf7f3363da5d9c2c36e68ed44cdac4ca7ebad1b2a2","id":383130,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793059768016941,"prev":null,"subject":"6911ea5d-a4d2-47eb-96c9-d13ca70ea7a3","subject_kind":"endpoint"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON