Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate recorded, valid to 2026-12-26
Authorization not required
Changed the definition of "cancel_plan", "get_plan", "get_watch" and 3 more
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨33 unchanged words⟩ a paid plan the tool answers not_paid. Contract0.6.0.0.7.0. Needs an organisation token (Authorization: Bearer hodds_... ⟨9 unchanged words⟩
⟨191 unchanged words⟩ "title":"HODDS My ways plan stop (0.6.00.7.0)","type":"object"}
⟨107 unchanged words⟩ even if closed, regardless of agent. Contract0.6.0.0.7.0. Needs an organisation token (Authorization: Bearer hodds_... ⟨9 unchanged words⟩
⟨651 unchanged words⟩ a-z0-9])?$","type":"string"},"target":{"additionalProperties":false,"properties":{"capability_ids":{"items":{"maxLength":160,"type":"string"},"maxItems":64,"type":"array","uniqueItems":true},"kind":{"const":"product"},"solution_id":{"maxLength":100,"type":"string"}},"required":["kind","solution_id","capability_ids"],"type":"object"},"watch_id":{"pattern":"^w_[a-z2-7]{20} ⟨680 unchanged words⟩ ],"title":"HODDS My ways plan (0.6.00.7.0)","type":"object"}
before
{"additionalProperties":false,"description":"Activated/closed watch; API/MCP semantics: public contract §8/§10. Alerts inline, same shape as hodds-alert.","properties":{"alert_budget":{"maximum":20,"minimum":1,"type":"integer"},"alerts":{"description":"The 50 most recent alerts, unacknowledged first (200 with all=true).","items":{"additionalProperties":false,"properties":{"acked_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"alert_id":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"code":{"description":"CHALLENGER_STRENGTHENED is reserved and never emitted in 0.3.0.","enum":["CHALLENGER_CHANGED","PRICING_MODEL_CHANGED","CONSTRAINT_LIFTED","CHOICE_DEGRADED","NEW_VERSION","GAP_RESOLVED","CATEGORY_CHANGED","DIGEST","CHALLENGER_STRENGTHENED"]},"emitted_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"journal_ref":{"description":"seq of the journal line that triggered the alert, or initial, choice:<instant>, rules, digest:<day>.","minLength":1,"type":"string"},"option_id":{"description":"Solution concerned; null for DIGEST.","pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"rating":{"enum":["relevant","not_relevant",null]},"reason":{"description":"Template sentence naming the changed fact, its old and new value, the day and the source.","minLength":1,"type":"string"},"rules_version":{"description":"Identifier of the public rules that computed this value, e.g. ranking-2026-10 (see /rules/).","minLength":1,"type":"string"}},"required":["alert_id","code","option_id","reason","provenance","rules_version","journal_ref","emitted_at","acked_at","rating"],"type":"object"},"type":"array"},"baseline_request_id":{"description":"Search request_id that deduced process; null if process supplied.","pattern":"^req_[0-9a-f]{32}$","type":["string","null"]},"challenger":{"additionalProperties":false,"properties":{"founder_link":{"description":"Declared founder/solution link; no effect on challenger.","type":["string","null"]},"hodds_status":{"description":"Approved by HODDS / Not yet approved by HODDS; never a criterion.","enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"since":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"switch_brief":{"additionalProperties":false,"description":"Deterministic record-field template; no language model.","properties":{"criteria":{"items":{"additionalProperties":false,"properties":{"challenger":{"enum":["pass","fail","unknown"]},"criterion":{"minLength":1,"type":"string"},"current":{"enum":["pass","fail","unknown",null]}},"required":["criterion","current","challenger"],"type":"object"},"type":"array"},"facts":{"additionalProperties":false,"description":"Side-by-side facts, never criteria. current=null without a current choice.","properties":{"data_residency":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"export_formats":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"hodds_status":{"additionalProperties":false,"properties":{"challenger":{"enum":["approved","not_yet"]},"current":{"enum":["approved","not_yet",null]}},"required":["current","challenger"],"type":"object"},"markets":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"open_source":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"pricing_models":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"self_hosting":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"version":{"additionalProperties":false,"properties":{"challenger":{"type":["string","null"]},"current":{"type":["string","null"]}},"required":["current","challenger"],"type":"object"}},"required":["pricing_models","version","hodds_status","self_hosting","open_source","markets","data_residency","export_formats"],"type":"object"},"migration_prerequisites":{"items":{"type":"string"},"type":"array"},"next_verifiable_step":{"minLength":1,"type":"string"},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":["string","null"]},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"unknown":{"items":{"type":"string"},"type":"array"}},"required":["criteria","facts","unknown","migration_prerequisites","next_verifiable_step","provenance"],"type":"object"}},"required":["option_id","hodds_status","since","rules_version","switch_brief","founder_link"],"type":["object","null"]},"challenger_reason":{"enum":["not_computed","no_criteria","no_candidate","no_dominant_option","no_current_choice","category_watch",null]},"constraints":{"items":{"additionalProperties":false,"properties":{"constraint":{"minLength":1,"type":"string"},"kind":{"enum":["interpreted","uninterpreted"]}},"required":["constraint","kind"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"current_choice":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"current_choice_name":{"description":"Unlinked name.","maxLength":120,"type":["string","null"]},"duplicate":{"description":"Opening: existing active watch reused.","type":"boolean"},"last_review_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"level":{"enum":["NEED","CATEGORY"]},"need":{"description":"Natural-language need; absent/null for CATEGORY.","type":["string","null"]},"pending":{"additionalProperties":false,"description":"Delivery on the next call: alerts that wait for this organisation. Absent when there is nothing to deliver. Only ack_alerts empties it.","properties":{"count":{"description":"Unacknowledged alerts of the organisation.","minimum":1,"type":"integer"},"summary":{"description":"One sentence in English, or in French when the request was in French.","minLength":1,"type":"string"},"watches":{"items":{"additionalProperties":false,"properties":{"alert_ids":{"items":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"type":"array"},"challenger":{"additionalProperties":false,"properties":{"hodds_status":{"enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},"required":["option_id","hodds_status"],"type":["object","null"]},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","challenger","alert_ids"],"type":"object"},"type":"array"}},"required":["count","watches","summary"],"type":"object"},"plan":{"description":"FREE: legacy only; prepaid-v1: PAID. Organisation entitlement: GET /api/plan. No drafts.","minLength":1,"type":"string"},"process":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"quiet_since":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"status":{"description":"payment_required returns a DRAFT error, never ACTIVE success.","enum":["ACTIVE","CLOSED"]},"summary":{"description":"One English/French sentence, per request.","minLength":1,"type":"string"},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","level","process","status","plan","constraints","current_choice","challenger","challenger_reason","alerts","quiet_since","created_at","rules_version"],"title":"HODDS watch (0.6.0)","type":"object"}⟨236 unchanged words⟩ no_candidate","no_dominant_option","no_current_choice","category_watch",null,"product_watch"]},"created_at":{"format":"date-time", ⟨91 unchanged words⟩ "enum":["ACTIVE","CLOSED"]},"target":{"additionalProperties":false,"properties":{"capability_ids":{"items":{"maxLength":160,"type":"string"},"maxItems":64,"type":"array","uniqueItems":true},"kind":{"const":"product"},"solution_id":{"maxLength":100,"type":"string"}},"required":["kind","solution_id","capability_ids"],"type":"object"},"watch_id":{"pattern":"^w_[a-z2-7]{20} ⟨22 unchanged words⟩ free_watch_used"],"title":"HODDS watch list (0.6.00.7.0)","type":"object"}
before
{"additionalProperties":false,"description":"Activated/closed watch; API/MCP semantics: public contract §8/§10. Alerts inline, same shape as hodds-alert.","properties":{"alert_budget":{"maximum":20,"minimum":1,"type":"integer"},"alerts":{"description":"The 50 most recent alerts, unacknowledged first (200 with all=true).","items":{"additionalProperties":false,"properties":{"acked_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"alert_id":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"code":{"description":"CHALLENGER_STRENGTHENED is reserved and never emitted in 0.3.0.","enum":["CHALLENGER_CHANGED","PRICING_MODEL_CHANGED","CONSTRAINT_LIFTED","CHOICE_DEGRADED","NEW_VERSION","GAP_RESOLVED","CATEGORY_CHANGED","DIGEST","CHALLENGER_STRENGTHENED"]},"emitted_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"journal_ref":{"description":"seq of the journal line that triggered the alert, or initial, choice:<instant>, rules, digest:<day>.","minLength":1,"type":"string"},"option_id":{"description":"Solution concerned; null for DIGEST.","pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"rating":{"enum":["relevant","not_relevant",null]},"reason":{"description":"Template sentence naming the changed fact, its old and new value, the day and the source.","minLength":1,"type":"string"},"rules_version":{"description":"Identifier of the public rules that computed this value, e.g. ranking-2026-10 (see /rules/).","minLength":1,"type":"string"}},"required":["alert_id","code","option_id","reason","provenance","rules_version","journal_ref","emitted_at","acked_at","rating"],"type":"object"},"type":"array"},"baseline_request_id":{"description":"Search request_id that deduced process; null if process supplied.","pattern":"^req_[0-9a-f]{32}$","type":["string","null"]},"challenger":{"additionalProperties":false,"properties":{"founder_link":{"description":"Declared founder/solution link; no effect on challenger.","type":["string","null"]},"hodds_status":{"description":"Approved by HODDS / Not yet approved by HODDS; never a criterion.","enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"since":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"switch_brief":{"additionalProperties":false,"description":"Deterministic record-field template; no language model.","properties":{"criteria":{"items":{"additionalProperties":false,"properties":{"challenger":{"enum":["pass","fail","unknown"]},"criterion":{"minLength":1,"type":"string"},"current":{"enum":["pass","fail","unknown",null]}},"required":["criterion","current","challenger"],"type":"object"},"type":"array"},"facts":{"additionalProperties":false,"description":"Side-by-side facts, never criteria. current=null without a current choice.","properties":{"data_residency":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"export_formats":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"hodds_status":{"additionalProperties":false,"properties":{"challenger":{"enum":["approved","not_yet"]},"current":{"enum":["approved","not_yet",null]}},"required":["current","challenger"],"type":"object"},"markets":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"open_source":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"pricing_models":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"self_hosting":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"version":{"additionalProperties":false,"properties":{"challenger":{"type":["string","null"]},"current":{"type":["string","null"]}},"required":["current","challenger"],"type":"object"}},"required":["pricing_models","version","hodds_status","self_hosting","open_source","markets","data_residency","export_formats"],"type":"object"},"migration_prerequisites":{"items":{"type":"string"},"type":"array"},"next_verifiable_step":{"minLength":1,"type":"string"},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":["string","null"]},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"unknown":{"items":{"type":"string"},"type":"array"}},"required":["criteria","facts","unknown","migration_prerequisites","next_verifiable_step","provenance"],"type":"object"}},"required":["option_id","hodds_status","since","rules_version","switch_brief","founder_link"],"type":["object","null"]},"challenger_reason":{"enum":["not_computed","no_criteria","no_candidate","no_dominant_option","no_current_choice","category_watch",null]},"constraints":{"items":{"additionalProperties":false,"properties":{"constraint":{"minLength":1,"type":"string"},"kind":{"enum":["interpreted","uninterpreted"]}},"required":["constraint","kind"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"current_choice":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"current_choice_name":{"description":"Unlinked name.","maxLength":120,"type":["string","null"]},"duplicate":{"description":"Opening: existing active watch reused.","type":"boolean"},"last_review_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"level":{"enum":["NEED","CATEGORY"]},"need":{"description":"Natural-language need; absent/null for CATEGORY.","type":["string","null"]},"pending":{"additionalProperties":false,"description":"Delivery on the next call: alerts that wait for this organisation. Absent when there is nothing to deliver. Only ack_alerts empties it.","properties":{"count":{"description":"Unacknowledged alerts of the organisation.","minimum":1,"type":"integer"},"summary":{"description":"One sentence in English, or in French when the request was in French.","minLength":1,"type":"string"},"watches":{"items":{"additionalProperties":false,"properties":{"alert_ids":{"items":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"type":"array"},"challenger":{"additionalProperties":false,"properties":{"hodds_status":{"enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},"required":["option_id","hodds_status"],"type":["object","null"]},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","challenger","alert_ids"],"type":"object"},"type":"array"}},"required":["count","watches","summary"],"type":"object"},"plan":{"description":"FREE: legacy only; prepaid-v1: PAID. Organisation entitlement: GET /api/plan. No drafts.","minLength":1,"type":"string"},"process":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"quiet_since":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"status":{"description":"payment_required returns a DRAFT error, never ACTIVE success.","enum":["ACTIVE","CLOSED"]},"summary":{"description":"One English/French sentence, per request.","minLength":1,"type":"string"},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","level","process","status","plan","constraints","current_choice","challenger","challenger_reason","alerts","quiet_since","created_at","rules_version"],"title":"HODDS watch (0.6.0)","type":"object"}Watches a need; CATEGORY follows a process. Optional target selects one product and capability_ids (empty = whole product), counted once. Targeted alerts report documented changes, conditions and unknowns, not a guarantee of suitability. Initially not_computed; rules produce challenger/switch brief; alerts on ⟨92 unchanged words⟩
⟨230 unchanged words⟩ improve-ai-discoverability","agentic-cybersecurity"],"type":"string"},"target":{"additionalProperties":false,"properties":{"capability_ids":{"items":{"maxLength":160,"type":"string"},"maxItems":64,"type":"array","uniqueItems":true},"kind":{"const":"product"},"solution_id":{"maxLength":100,"type":"string"}},"required":["kind","solution_id","capability_ids"],"type":"object"}},"type":"object"}
before
{"additionalProperties":false,"description":"Activated/closed watch; API/MCP semantics: public contract §8/§10. Alerts inline, same shape as hodds-alert.","properties":{"alert_budget":{"maximum":20,"minimum":1,"type":"integer"},"alerts":{"description":"The 50 most recent alerts, unacknowledged first (200 with all=true).","items":{"additionalProperties":false,"properties":{"acked_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"alert_id":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"code":{"description":"CHALLENGER_STRENGTHENED is reserved and never emitted in 0.3.0.","enum":["CHALLENGER_CHANGED","PRICING_MODEL_CHANGED","CONSTRAINT_LIFTED","CHOICE_DEGRADED","NEW_VERSION","GAP_RESOLVED","CATEGORY_CHANGED","DIGEST","CHALLENGER_STRENGTHENED"]},"emitted_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"journal_ref":{"description":"seq of the journal line that triggered the alert, or initial, choice:<instant>, rules, digest:<day>.","minLength":1,"type":"string"},"option_id":{"description":"Solution concerned; null for DIGEST.","pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"rating":{"enum":["relevant","not_relevant",null]},"reason":{"description":"Template sentence naming the changed fact, its old and new value, the day and the source.","minLength":1,"type":"string"},"rules_version":{"description":"Identifier of the public rules that computed this value, e.g. ranking-2026-10 (see /rules/).","minLength":1,"type":"string"}},"required":["alert_id","code","option_id","reason","provenance","rules_version","journal_ref","emitted_at","acked_at","rating"],"type":"object"},"type":"array"},"baseline_request_id":{"description":"Search request_id that deduced process; null if process supplied.","pattern":"^req_[0-9a-f]{32}$","type":["string","null"]},"challenger":{"additionalProperties":false,"properties":{"founder_link":{"description":"Declared founder/solution link; no effect on challenger.","type":["string","null"]},"hodds_status":{"description":"Approved by HODDS / Not yet approved by HODDS; never a criterion.","enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"since":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"switch_brief":{"additionalProperties":false,"description":"Deterministic record-field template; no language model.","properties":{"criteria":{"items":{"additionalProperties":false,"properties":{"challenger":{"enum":["pass","fail","unknown"]},"criterion":{"minLength":1,"type":"string"},"current":{"enum":["pass","fail","unknown",null]}},"required":["criterion","current","challenger"],"type":"object"},"type":"array"},"facts":{"additionalProperties":false,"description":"Side-by-side facts, never criteria. current=null without a current choice.","properties":{"data_residency":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"export_formats":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"hodds_status":{"additionalProperties":false,"properties":{"challenger":{"enum":["approved","not_yet"]},"current":{"enum":["approved","not_yet",null]}},"required":["current","challenger"],"type":"object"},"markets":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"open_source":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"pricing_models":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"self_hosting":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"version":{"additionalProperties":false,"properties":{"challenger":{"type":["string","null"]},"current":{"type":["string","null"]}},"required":["current","challenger"],"type":"object"}},"required":["pricing_models","version","hodds_status","self_hosting","open_source","markets","data_residency","export_formats"],"type":"object"},"migration_prerequisites":{"items":{"type":"string"},"type":"array"},"next_verifiable_step":{"minLength":1,"type":"string"},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":["string","null"]},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"unknown":{"items":{"type":"string"},"type":"array"}},"required":["criteria","facts","unknown","migration_prerequisites","next_verifiable_step","provenance"],"type":"object"}},"required":["option_id","hodds_status","since","rules_version","switch_brief","founder_link"],"type":["object","null"]},"challenger_reason":{"enum":["not_computed","no_criteria","no_candidate","no_dominant_option","no_current_choice","category_watch",null]},"constraints":{"items":{"additionalProperties":false,"properties":{"constraint":{"minLength":1,"type":"string"},"kind":{"enum":["interpreted","uninterpreted"]}},"required":["constraint","kind"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"current_choice":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"current_choice_name":{"description":"Unlinked name.","maxLength":120,"type":["string","null"]},"duplicate":{"description":"Opening: existing active watch reused.","type":"boolean"},"last_review_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"level":{"enum":["NEED","CATEGORY"]},"need":{"description":"Natural-language need; absent/null for CATEGORY.","type":["string","null"]},"pending":{"additionalProperties":false,"description":"Delivery on the next call: alerts that wait for this organisation. Absent when there is nothing to deliver. Only ack_alerts empties it.","properties":{"count":{"description":"Unacknowledged alerts of the organisation.","minimum":1,"type":"integer"},"summary":{"description":"One sentence in English, or in French when the request was in French.","minLength":1,"type":"string"},"watches":{"items":{"additionalProperties":false,"properties":{"alert_ids":{"items":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"type":"array"},"challenger":{"additionalProperties":false,"properties":{"hodds_status":{"enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},"required":["option_id","hodds_status"],"type":["object","null"]},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","challenger","alert_ids"],"type":"object"},"type":"array"}},"required":["count","watches","summary"],"type":"object"},"plan":{"description":"FREE: legacy only; prepaid-v1: PAID. Organisation entitlement: GET /api/plan. No drafts.","minLength":1,"type":"string"},"process":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"quiet_since":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"status":{"description":"payment_required returns a DRAFT error, never ACTIVE success.","enum":["ACTIVE","CLOSED"]},"summary":{"description":"One English/French sentence, per request.","minLength":1,"type":"string"},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","level","process","status","plan","constraints","current_choice","challenger","challenger_reason","alerts","quiet_since","created_at","rules_version"],"title":"HODDS watch (0.6.0)","type":"object"}Unknown → Live
First tool surface recorded: 18 tools (server version 0.6.0)
https://hodds.ai/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
after
{"additionalProperties":false,"description":"Activated/closed watch; API/MCP semantics: public contract §8/§10. Alerts inline, same shape as hodds-alert.","properties":{"alert_budget":{"maximum":20,"minimum":1,"type":"integer"},"alerts":{"description":"The 50 most recent alerts, unacknowledged first (200 with all=true).","items":{"additionalProperties":false,"properties":{"acked_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"alert_id":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"code":{"description":"CHALLENGER_STRENGTHENED is reserved and never emitted in 0.3.0.","enum":["CHALLENGER_CHANGED","PRICING_MODEL_CHANGED","CONSTRAINT_LIFTED","CHOICE_DEGRADED","NEW_VERSION","GAP_RESOLVED","CATEGORY_CHANGED","DIGEST","CHALLENGER_STRENGTHENED","PRODUCT_CHANGED"]},"emitted_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"journal_ref":{"description":"seq of the journal line that triggered the alert, or initial, choice:<instant>, rules, digest:<day>.","minLength":1,"type":"string"},"option_id":{"description":"Solution concerned; null for DIGEST.","pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"rating":{"enum":["relevant","not_relevant",null]},"reason":{"description":"Template sentence naming the changed fact, its old and new value, the day and the source.","minLength":1,"type":"string"},"rules_version":{"description":"Identifier of the public rules that computed this value, e.g. ranking-2026-10 (see /rules/).","minLength":1,"type":"string"}},"required":["alert_id","code","option_id","reason","provenance","rules_version","journal_ref","emitted_at","acked_at","rating"],"type":"object"},"type":"array"},"baseline_request_id":{"description":"Search request_id that deduced process; null if process supplied.","pattern":"^req_[0-9a-f]{32}$","type":["string","null"]},"challenger":{"additionalProperties":false,"properties":{"founder_link":{"description":"Declared founder/solution link; no effect on challenger.","type":["string","null"]},"hodds_status":{"description":"Approved by HODDS / Not yet approved by HODDS; never a criterion.","enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"since":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"switch_brief":{"additionalProperties":false,"description":"Deterministic record-field template; no language model.","properties":{"criteria":{"items":{"additionalProperties":false,"properties":{"challenger":{"enum":["pass","fail","unknown"]},"criterion":{"minLength":1,"type":"string"},"current":{"enum":["pass","fail","unknown",null]}},"required":["criterion","current","challenger"],"type":"object"},"type":"array"},"facts":{"additionalProperties":false,"description":"Side-by-side facts, never criteria. current=null without a current choice.","properties":{"data_residency":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"export_formats":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"hodds_status":{"additionalProperties":false,"properties":{"challenger":{"enum":["approved","not_yet"]},"current":{"enum":["approved","not_yet",null]}},"required":["current","challenger"],"type":"object"},"markets":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"open_source":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"pricing_models":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"self_hosting":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"version":{"additionalProperties":false,"properties":{"challenger":{"type":["string","null"]},"current":{"type":["string","null"]}},"required":["current","challenger"],"type":"object"}},"required":["pricing_models","version","hodds_status","self_hosting","open_source","markets","data_residency","export_formats"],"type":"object"},"migration_prerequisites":{"items":{"type":"string"},"type":"array"},"next_verifiable_step":{"minLength":1,"type":"string"},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":["string","null"]},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"unknown":{"items":{"type":"string"},"type":"array"}},"required":["criteria","facts","unknown","migration_prerequisites","next_verifiable_step","provenance"],"type":"object"}},"required":["option_id","hodds_status","since","rules_version","switch_brief","founder_link"],"type":["object","null"]},"challenger_reason":{"enum":["not_computed","no_criteria","no_candidate","no_dominant_option","no_current_choice","category_watch",null,"product_watch"]},"constraints":{"items":{"additionalProperties":false,"properties":{"constraint":{"minLength":1,"type":"string"},"kind":{"enum":["interpreted","uninterpreted"]}},"required":["constraint","kind"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"current_choice":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"current_choice_name":{"description":"Unlinked name.","maxLength":120,"type":["string","null"]},"duplicate":{"description":"Opening: existing active watch reused.","type":"boolean"},"last_review_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"level":{"enum":["NEED","CATEGORY"]},"need":{"description":"Natural-language need; absent/null for CATEGORY.","type":["string","null"]},"pending":{"additionalProperties":false,"description":"Delivery on the next call: alerts that wait for this organisation. Absent when there is nothing to deliver. Only ack_alerts empties it.","properties":{"count":{"description":"Unacknowledged alerts of the organisation.","minimum":1,"type":"integer"},"summary":{"description":"One sentence in English, or in French when the request was in French.","minLength":1,"type":"string"},"watches":{"items":{"additionalProperties":false,"properties":{"alert_ids":{"items":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"type":"array"},"challenger":{"additionalProperties":false,"properties":{"hodds_status":{"enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},"required":["option_id","hodds_status"],"type":["object","null"]},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","challenger","alert_ids"],"type":"object"},"type":"array"}},"required":["count","watches","summary"],"type":"object"},"plan":{"description":"FREE: legacy only; prepaid-v1: PAID. Organisation entitlement: GET /api/plan. No drafts.","minLength":1,"type":"string"},"process":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"quiet_since":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"status":{"description":"payment_required returns a DRAFT error, never ACTIVE success.","enum":["ACTIVE","CLOSED"]},"summary":{"description":"One English/French sentence, per request.","minLength":1,"type":"string"},"target":{"additionalProperties":false,"properties":{"capability_ids":{"items":{"maxLength":160,"type":"string"},"maxItems":64,"type":"array","uniqueItems":true},"kind":{"const":"product"},"solution_id":{"maxLength":100,"type":"string"}},"required":["kind","solution_id","capability_ids"],"type":"object"},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","level","process","status","plan","constraints","current_choice","challenger","challenger_reason","alerts","quiet_since","created_at","rules_version"],"title":"HODDS watch (0.7.0)","type":"object"}after
{"additionalProperties":false,"description":"Activated/closed watch; API/MCP semantics: public contract §8/§10. Alerts inline, same shape as hodds-alert.","properties":{"alert_budget":{"maximum":20,"minimum":1,"type":"integer"},"alerts":{"description":"The 50 most recent alerts, unacknowledged first (200 with all=true).","items":{"additionalProperties":false,"properties":{"acked_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"alert_id":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"code":{"description":"CHALLENGER_STRENGTHENED is reserved and never emitted in 0.3.0.","enum":["CHALLENGER_CHANGED","PRICING_MODEL_CHANGED","CONSTRAINT_LIFTED","CHOICE_DEGRADED","NEW_VERSION","GAP_RESOLVED","CATEGORY_CHANGED","DIGEST","CHALLENGER_STRENGTHENED","PRODUCT_CHANGED"]},"emitted_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"journal_ref":{"description":"seq of the journal line that triggered the alert, or initial, choice:<instant>, rules, digest:<day>.","minLength":1,"type":"string"},"option_id":{"description":"Solution concerned; null for DIGEST.","pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"rating":{"enum":["relevant","not_relevant",null]},"reason":{"description":"Template sentence naming the changed fact, its old and new value, the day and the source.","minLength":1,"type":"string"},"rules_version":{"description":"Identifier of the public rules that computed this value, e.g. ranking-2026-10 (see /rules/).","minLength":1,"type":"string"}},"required":["alert_id","code","option_id","reason","provenance","rules_version","journal_ref","emitted_at","acked_at","rating"],"type":"object"},"type":"array"},"baseline_request_id":{"description":"Search request_id that deduced process; null if process supplied.","pattern":"^req_[0-9a-f]{32}$","type":["string","null"]},"challenger":{"additionalProperties":false,"properties":{"founder_link":{"description":"Declared founder/solution link; no effect on challenger.","type":["string","null"]},"hodds_status":{"description":"Approved by HODDS / Not yet approved by HODDS; never a criterion.","enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"since":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"switch_brief":{"additionalProperties":false,"description":"Deterministic record-field template; no language model.","properties":{"criteria":{"items":{"additionalProperties":false,"properties":{"challenger":{"enum":["pass","fail","unknown"]},"criterion":{"minLength":1,"type":"string"},"current":{"enum":["pass","fail","unknown",null]}},"required":["criterion","current","challenger"],"type":"object"},"type":"array"},"facts":{"additionalProperties":false,"description":"Side-by-side facts, never criteria. current=null without a current choice.","properties":{"data_residency":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"export_formats":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"hodds_status":{"additionalProperties":false,"properties":{"challenger":{"enum":["approved","not_yet"]},"current":{"enum":["approved","not_yet",null]}},"required":["current","challenger"],"type":"object"},"markets":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"open_source":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"pricing_models":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"self_hosting":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"version":{"additionalProperties":false,"properties":{"challenger":{"type":["string","null"]},"current":{"type":["string","null"]}},"required":["current","challenger"],"type":"object"}},"required":["pricing_models","version","hodds_status","self_hosting","open_source","markets","data_residency","export_formats"],"type":"object"},"migration_prerequisites":{"items":{"type":"string"},"type":"array"},"next_verifiable_step":{"minLength":1,"type":"string"},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":["string","null"]},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"unknown":{"items":{"type":"string"},"type":"array"}},"required":["criteria","facts","unknown","migration_prerequisites","next_verifiable_step","provenance"],"type":"object"}},"required":["option_id","hodds_status","since","rules_version","switch_brief","founder_link"],"type":["object","null"]},"challenger_reason":{"enum":["not_computed","no_criteria","no_candidate","no_dominant_option","no_current_choice","category_watch",null,"product_watch"]},"constraints":{"items":{"additionalProperties":false,"properties":{"constraint":{"minLength":1,"type":"string"},"kind":{"enum":["interpreted","uninterpreted"]}},"required":["constraint","kind"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"current_choice":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"current_choice_name":{"description":"Unlinked name.","maxLength":120,"type":["string","null"]},"duplicate":{"description":"Opening: existing active watch reused.","type":"boolean"},"last_review_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"level":{"enum":["NEED","CATEGORY"]},"need":{"description":"Natural-language need; absent/null for CATEGORY.","type":["string","null"]},"pending":{"additionalProperties":false,"description":"Delivery on the next call: alerts that wait for this organisation. Absent when there is nothing to deliver. Only ack_alerts empties it.","properties":{"count":{"description":"Unacknowledged alerts of the organisation.","minimum":1,"type":"integer"},"summary":{"description":"One sentence in English, or in French when the request was in French.","minLength":1,"type":"string"},"watches":{"items":{"additionalProperties":false,"properties":{"alert_ids":{"items":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"type":"array"},"challenger":{"additionalProperties":false,"properties":{"hodds_status":{"enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},"required":["option_id","hodds_status"],"type":["object","null"]},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","challenger","alert_ids"],"type":"object"},"type":"array"}},"required":["count","watches","summary"],"type":"object"},"plan":{"description":"FREE: legacy only; prepaid-v1: PAID. Organisation entitlement: GET /api/plan. No drafts.","minLength":1,"type":"string"},"process":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"quiet_since":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"status":{"description":"payment_required returns a DRAFT error, never ACTIVE success.","enum":["ACTIVE","CLOSED"]},"summary":{"description":"One English/French sentence, per request.","minLength":1,"type":"string"},"target":{"additionalProperties":false,"properties":{"capability_ids":{"items":{"maxLength":160,"type":"string"},"maxItems":64,"type":"array","uniqueItems":true},"kind":{"const":"product"},"solution_id":{"maxLength":100,"type":"string"}},"required":["kind","solution_id","capability_ids"],"type":"object"},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","level","process","status","plan","constraints","current_choice","challenger","challenger_reason","alerts","quiet_since","created_at","rules_version"],"title":"HODDS watch (0.7.0)","type":"object"}after
{"additionalProperties":false,"description":"Activated/closed watch; API/MCP semantics: public contract §8/§10. Alerts inline, same shape as hodds-alert.","properties":{"alert_budget":{"maximum":20,"minimum":1,"type":"integer"},"alerts":{"description":"The 50 most recent alerts, unacknowledged first (200 with all=true).","items":{"additionalProperties":false,"properties":{"acked_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"alert_id":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"code":{"description":"CHALLENGER_STRENGTHENED is reserved and never emitted in 0.3.0.","enum":["CHALLENGER_CHANGED","PRICING_MODEL_CHANGED","CONSTRAINT_LIFTED","CHOICE_DEGRADED","NEW_VERSION","GAP_RESOLVED","CATEGORY_CHANGED","DIGEST","CHALLENGER_STRENGTHENED","PRODUCT_CHANGED"]},"emitted_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"journal_ref":{"description":"seq of the journal line that triggered the alert, or initial, choice:<instant>, rules, digest:<day>.","minLength":1,"type":"string"},"option_id":{"description":"Solution concerned; null for DIGEST.","pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"rating":{"enum":["relevant","not_relevant",null]},"reason":{"description":"Template sentence naming the changed fact, its old and new value, the day and the source.","minLength":1,"type":"string"},"rules_version":{"description":"Identifier of the public rules that computed this value, e.g. ranking-2026-10 (see /rules/).","minLength":1,"type":"string"}},"required":["alert_id","code","option_id","reason","provenance","rules_version","journal_ref","emitted_at","acked_at","rating"],"type":"object"},"type":"array"},"baseline_request_id":{"description":"Search request_id that deduced process; null if process supplied.","pattern":"^req_[0-9a-f]{32}$","type":["string","null"]},"challenger":{"additionalProperties":false,"properties":{"founder_link":{"description":"Declared founder/solution link; no effect on challenger.","type":["string","null"]},"hodds_status":{"description":"Approved by HODDS / Not yet approved by HODDS; never a criterion.","enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"since":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"switch_brief":{"additionalProperties":false,"description":"Deterministic record-field template; no language model.","properties":{"criteria":{"items":{"additionalProperties":false,"properties":{"challenger":{"enum":["pass","fail","unknown"]},"criterion":{"minLength":1,"type":"string"},"current":{"enum":["pass","fail","unknown",null]}},"required":["criterion","current","challenger"],"type":"object"},"type":"array"},"facts":{"additionalProperties":false,"description":"Side-by-side facts, never criteria. current=null without a current choice.","properties":{"data_residency":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"export_formats":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"hodds_status":{"additionalProperties":false,"properties":{"challenger":{"enum":["approved","not_yet"]},"current":{"enum":["approved","not_yet",null]}},"required":["current","challenger"],"type":"object"},"markets":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"open_source":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"pricing_models":{"additionalProperties":false,"properties":{"challenger":{"items":{"type":"string"},"type":"array"},"current":{"items":{"type":"string"},"type":["array","null"]}},"required":["current","challenger"],"type":"object"},"self_hosting":{"additionalProperties":false,"properties":{"challenger":{"enum":["yes","no","unknown",null]},"current":{"enum":["yes","no","unknown",null]}},"required":["current","challenger"],"type":"object"},"version":{"additionalProperties":false,"properties":{"challenger":{"type":["string","null"]},"current":{"type":["string","null"]}},"required":["current","challenger"],"type":"object"}},"required":["pricing_models","version","hodds_status","self_hosting","open_source","markets","data_residency","export_formats"],"type":"object"},"migration_prerequisites":{"items":{"type":"string"},"type":"array"},"next_verifiable_step":{"minLength":1,"type":"string"},"provenance":{"items":{"additionalProperties":false,"properties":{"retrieved_on":{"format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":["string","null"]},"url":{"pattern":"^https://\\S+$","type":"string"}},"required":["url","retrieved_on"],"type":"object"},"type":"array"},"unknown":{"items":{"type":"string"},"type":"array"}},"required":["criteria","facts","unknown","migration_prerequisites","next_verifiable_step","provenance"],"type":"object"}},"required":["option_id","hodds_status","since","rules_version","switch_brief","founder_link"],"type":["object","null"]},"challenger_reason":{"enum":["not_computed","no_criteria","no_candidate","no_dominant_option","no_current_choice","category_watch",null,"product_watch"]},"constraints":{"items":{"additionalProperties":false,"properties":{"constraint":{"minLength":1,"type":"string"},"kind":{"enum":["interpreted","uninterpreted"]}},"required":["constraint","kind"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"current_choice":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":["string","null"]},"current_choice_name":{"description":"Unlinked name.","maxLength":120,"type":["string","null"]},"duplicate":{"description":"Opening: existing active watch reused.","type":"boolean"},"last_review_at":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":["string","null"]},"level":{"enum":["NEED","CATEGORY"]},"need":{"description":"Natural-language need; absent/null for CATEGORY.","type":["string","null"]},"pending":{"additionalProperties":false,"description":"Delivery on the next call: alerts that wait for this organisation. Absent when there is nothing to deliver. Only ack_alerts empties it.","properties":{"count":{"description":"Unacknowledged alerts of the organisation.","minimum":1,"type":"integer"},"summary":{"description":"One sentence in English, or in French when the request was in French.","minLength":1,"type":"string"},"watches":{"items":{"additionalProperties":false,"properties":{"alert_ids":{"items":{"pattern":"^a_[a-z2-7]{20}$","type":"string"},"type":"array"},"challenger":{"additionalProperties":false,"properties":{"hodds_status":{"enum":["approved","not_yet"]},"option_id":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},"required":["option_id","hodds_status"],"type":["object","null"]},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","challenger","alert_ids"],"type":"object"},"type":"array"}},"required":["count","watches","summary"],"type":"object"},"plan":{"description":"FREE: legacy only; prepaid-v1: PAID. Organisation entitlement: GET /api/plan. No drafts.","minLength":1,"type":"string"},"process":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"},"quiet_since":{"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$","type":"string"},"rules_version":{"description":"Public computation rules identifier; see /rules/.","minLength":1,"type":"string"},"status":{"description":"payment_required returns a DRAFT error, never ACTIVE success.","enum":["ACTIVE","CLOSED"]},"summary":{"description":"One English/French sentence, per request.","minLength":1,"type":"string"},"target":{"additionalProperties":false,"properties":{"capability_ids":{"items":{"maxLength":160,"type":"string"},"maxItems":64,"type":"array","uniqueItems":true},"kind":{"const":"product"},"solution_id":{"maxLength":100,"type":"string"}},"required":["kind","solution_id","capability_ids"],"type":"object"},"watch_id":{"pattern":"^w_[a-z2-7]{20}$","type":"string"}},"required":["watch_id","level","process","status","plan","constraints","current_choice","challenger","challenger_reason","alerts","quiet_since","created_at","rules_version"],"title":"HODDS watch (0.7.0)","type":"object"}