{"serverId":"mcp-registry/io.github.brian8a1/atisbo","tools":[{"name":"atisbo_capture","fixed":{"name":"atisbo_capture","description":"Capture Signals or knowledge; update, patch or add evidence to artefacts.","inputSchema":{"type":"object","required":["mode"],"properties":{"ops":{"type":"string"},"body":{"type":"string"},"mode":{"type":"string","description":"Capture mode. Notes per mode in meta.guidance. Open string, not a closed enum: a mode added after your tools/list was cached still reaches the server. An unknown mode answers with the nearest accepted value and the full list in invalid_params[].allowed_values."},"note":{"type":"string","maxLength":500,"description":"Why it matters."},"text":{"type":"string","maxLength":5000,"minLength":10,"description":"Signal text."},"items":{"type":"array","items":{"type":"object","required":["text","client_request_id"],"properties":{"text":{"type":"string","maxLength":5000,"minLength":10,"description":"Signal text; max 5000 chars."},"source":{"enum":["manual","github","webhook"],"type":"string"},"modality":{"enum":["Q","O","M"],"type":"string"},"classification":{"enum":["problem","idea","question"],"type":"string"},"client_request_id":{"type":"string","maxLength":200,"minLength":8,"description":"Idempotency key."},"corrects_prior_evidence":{"type":"boolean"}}},"maxItems":100,"description":"Batch; max 100 items."},"title":{"type":"string","maxLength":200,"description":"Knowledge title."},"source":{"enum":["manual","github","webhook"],"type":"string","description":"Signal source."},"content":{"type":"string","maxLength":100000,"description":"Knowledge content."},"message":{"type":"string"},"node_id":{"type":"string","format":"uuid","description":"knowledge: alias for scope_id."},"patches":{"type":"string"},"category":{"type":"string","maxLength":60,"description":"knowledge: label hint."},"claim_id":{"type":"string","format":"uuid","description":"knowledge: alias for scope_id."},"document":{"type":"object","required":["content"],"properties":{"content":{"type":"string","maxLength":20000,"minLength":10},"file_name":{"type":"string","maxLength":200},"mime_type":{"enum":["text/html","text/markdown"],"type":"string"}},"description":"signal: backing doc → claim-scoped Knowledge."},"evidence":{"type":"object","properties":{"title":{"type":"string","maxLength":200,"description":"Evidence block title."},"status":{"enum":["supported","contradicted","inconclusive","tracking_missing","informational"],"type":"string","description":"Relation to the hypothesis."},"provider":{"type":"string","maxLength":80,"description":"Provider name, e.g. posthog, amplitude, custom_sql."},"warnings":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":20,"description":"Provider warnings shown with the block."},"block_type":{"enum":["query","metric","external_insight","chart_snapshot","link"],"type":"string","description":"Evidence block kind."},"confidence":{"type":"number","maximum":1,"minimum":0,"description":"Confidence from 0 to 1."},"query_text":{"type":"string","maxLength":20000,"description":"Query, event name, API request, or investigation prompt."},"external_url":{"type":"string","maxLength":2048,"description":"External insight/dashboard/query URL, if available."},"interpretation":{"type":"string","maxLength":5000,"description":"What this evidence means in the artefact context."},"query_language":{"enum":["hogql","sql","api_request","natural_language","event"],"type":"string","description":"Language of query_text."},"refresh_policy":{"enum":["manual","scheduled","none"],"type":"string","description":"Refresh cadence for the snapshot."},"result_snapshot":{"type":"object","properties":{"summary":{"type":"string","maxLength":5000,"description":"Text summary of tabular or non-numeric provider output."},"event_name":{"type":"string","maxLength":500,"description":"Provider event/metric name for refreshable metric blocks."},"data_points":{"type":"array","items":{"type":"object","required":["date","value"],"properties":{"date":{"type":"string","maxLength":80},"value":{"type":"number"}}},"maxItems":365,"description":"Optional compact time series snapshot."},"latest_date":{"type":"string","maxLength":80,"description":"Date or timestamp for latest_value."},"latest_value":{"type":"number","description":"Latest numeric value from the provider, when available."},"time_range_days":{"type":"number","maximum":365,"minimum":1,"description":"Lookback window for refreshable metric blocks. Defaults to 30."}},"description":"Result snapshot; event_name + time_range_days make it refreshable."}},"description":"Evidence fields; document_id top-level."},"modality":{"enum":["Q","O","M"],"type":"string","description":"Q=Quote, O=Observation, M=Metric; else inferred."},"patchOps":{"type":"string"},"scope_id":{"type":"string","format":"uuid","description":"Target scope UUID; required for node/claim/map."},"file_name":{"type":"string","maxLength":200},"mime_type":{"type":"string","maxLength":120},"patch_ops":{"type":"array","items":{"type":"object","required":["op","section_id","markdown"],"properties":{"op":{"enum":["append_to_section","replace_section","annotate","add_section"],"type":"string"},"kind":{"enum":["note","contradiction","update"],"type":"string"},"markdown":{"type":"string","maxLength":20000},"section_id":{"type":"string","maxLength":64}}},"maxItems":20},"agent_name":{"type":"string","maxLength":120},"scope_type":{"enum":["company","workspace","node","claim","solution","map"],"type":"string","description":"Scope kind; company = workspace."},"attachments":{"type":"array","items":{"type":"object","required":["data_base64","file_name","mime_type"],"properties":{"file_name":{"type":"string","maxLength":200},"mime_type":{"enum":["image/png","image/jpeg","image/webp","application/pdf"],"type":"string"},"data_base64":{"type":"string","maxLength":4200000,"minLength":4,"description":"Base64."}},"description":"PNG/JPG/WebP/PDF; no extraction."},"maxItems":5,"description":"1-5 files; 3 MB combined."},"document_id":{"type":"string","format":"uuid","description":"Living document UUID."},"solution_id":{"type":"string","format":"uuid","description":"knowledge: alias for scope_id."},"capture_mode":{"enum":["context_only","signals_only","context_and_signals"],"type":"string","description":"Knowledge routing."},"captured_from":{"type":"string","maxLength":120},"change_summary":{"type":"string","maxLength":300,"description":"patch_artefact: REQUIRED — change_summary (or note), one sentence of what changed."},"classification":{"enum":["problem","idea","question"],"type":"string","description":"Classification hint."},"dirty_event_id":{"type":"string","format":"uuid","description":"Dirty event"},"knowledge_kind":{"enum":["auto","transcript","transcript_customer","notes"],"type":"string"},"coverage_updates":{"description":"buckets snippets/ideas/claims; snippets[].{snippet_id,status,rationale}","type":"string"},"client_request_id":{"type":"string","maxLength":200,"minLength":8,"description":"signal: retry key."},"proposed_solution":{"type":"object","required":["title"],"properties":{"title":{"type":"string","maxLength":200},"description":{"type":"string","maxLength":2000}},"description":"signal: draft Solution born linked on the clustered claim."},"on_behalf_of_person":{"type":"boolean"},"expected_content_hash":{"type":"string","maxLength":64,"description":"doc_patch_context content_hash"},"corrects_prior_evidence":{"type":"boolean","description":"signal: CORRECTS prior evidence — skips dedup."},"expected_patch_lock_hash":{"type":"string","maxLength":64,"description":"doc_patch_context patch_lock_hash"}}},"annotations":{"category":"write","readOnlyHint":false,"strict_output":false,"destructiveHint":true,"supports_cursor":false,"supports_idempotency":true,"requires_confirmation":false,"supports_since_checkpoint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: ops, body, message, patches, patchOps, coverage_updates. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":2073,"tokensAfter":2098},{"name":"atisbo_decide","fixed":{"name":"atisbo_decide","description":"CURATE: evidence review/grouping, deal-breakers. EXECUTE: create, update, dispatch or delete Solutions, record Outcomes. DOCUMENT/GOVERN: living docs, coverage, schedules, knowledge, strategy. log_decision is only for external decisions; mutations log themselves. Writes require UUIDs. mode=declare_pm_exception marks a CLAIM as needing a human decision.","inputSchema":{"type":"object","required":["mode"],"properties":{"id":{"type":"string","format":"uuid","description":"delete_knowledge/set_knowledge_category doc id."},"mode":{"type":"string","description":"Resolve names to UUIDs before mutating; notes per mode in meta.guidance. Open string, not a closed enum: a mode added after your tools/list was cached still reaches the server. An unknown mode answers with the nearest accepted value and the full list in invalid_params[].allowed_values."},"note":{"type":"string","maxLength":5000,"description":"record_outcome 5000; triage/log_decision rationale 2000."},"spec":{"type":"object","required":["problem","evidence","hypothesis","successCriteria"],"properties":{"files":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":50},"problem":{"type":"string","maxLength":5000},"evidence":{"type":"array","items":{"type":"string","maxLength":1000},"maxItems":30},"proposal":{"type":"string","maxLength":5000,"description":"What we will build; distinct from hypothesis."},"hypothesis":{"type":"string","maxLength":5000},"constraints":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":50},"decisionLog":{"type":"object","required":["alternatives","reasoning"],"properties":{"reasoning":{"type":"string","maxLength":5000},"assumptions":{"type":"string","maxLength":3000},"alternatives":{"type":"array","items":{"type":"string","maxLength":1000},"maxItems":20}}},"successCriteria":{"type":"string","maxLength":5000,"description":"What must be TRUE at launch. Template: implementation_context."}}},"brief":{"type":"string","maxLength":20000,"description":"dispatch_solution: agent brief."},"force":{"type":"boolean","description":"Audited source-deleting reassignment (omit refused)."},"title":{"type":"string","maxLength":500},"effort":{"type":"number","maximum":52,"minimum":0.5,"description":"Size estimate, person-weeks (never affects order)."},"matrix":{"type":"array","items":{"type":"object","required":["criterion","status"],"properties":{"note":{"type":"string","maxLength":500,"description":"Required for incomplete: alternative method, or blocker."},"status":{"enum":["preview_verified","production_verified","not_applicable","incomplete","superseded"],"type":"string"},"evidence":{"type":"string","maxLength":500,"description":"What you did and saw; required in spirit for *_verified."},"criterion":{"type":"string","maxLength":200,"description":"Success criterion, in the living doc's words."},"evidence_refs":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":10,"description":"Durable refs: PR, dashboard, log."}}},"maxItems":20,"description":"validate_delivery / deliver: one entry per criterion."},"pr_url":{"type":"string","format":"uri","maxLength":500},"status":{"enum":["signal","noise","review"],"type":"string","description":"Target classification."},"comment":{"type":"string","maxLength":10000,"description":"update_solution/deliver: thread report."},"mission":{"type":"string","maxLength":2000,"description":"update_strategy: informational only."},"node_id":{"type":"string","format":"uuid"},"outcome":{"enum":["success","partial","miss","unexpected"],"type":"string","description":"record_outcome: launch impact."},"roadmap":{"type":"string","maxLength":5000,"description":"update_strategy: informational only."},"verdict":{"enum":["real_fixed","noise","proceed","defer","drop"],"type":"string","description":"triage closes; log_decision takes the judgement answer."},"category":{"type":"string","maxLength":60,"description":"label to set; null clears."},"claim_id":{"type":"string","format":"uuid","description":"Claim UUID (atisbo_lookup mode=resolve)"},"decision":{"type":"string","maxLength":500,"description":"max 500 chars."},"strategy":{"type":"string","maxLength":5000,"description":"update_strategy: the only functional field."},"unassign":{"type":"boolean"},"claim_ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"kpi_after":{"type":"string","maxLength":200},"lifecycle":{"type":"string","description":"IDEA|DESIGNING|IN_DEVELOPMENT; LAUNCHED only via update_solution."},"target_id":{"type":"string","format":"uuid"},"agent_name":{"type":"string","maxLength":120,"description":"Signs comments/assignments/decisions."},"kpi_before":{"type":"string","maxLength":200},"risk_notes":{"type":"array","items":{"type":"string","maxLength":1000},"maxItems":50,"description":"Unresolved contradictions acknowledged by id."},"snippet_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string","description":"Optimistic lock; stale edits fail STALE_DATA."},"description":{"type":"string","maxLength":2000,"description":"create_solution only; update_solution refuses it."},"document_id":{"type":"string","format":"uuid"},"instruction":{"type":"string","maxLength":2000},"observed_at":{"type":"string","format":"date-time"},"review_kind":{"enum":["signal_triage","claim_structure","solution_quality"],"type":"string"},"snooze_days":{"type":"number"},"solution_id":{"type":"string","format":"uuid","description":"Solution UUID (from a name or SEN-n: atisbo_lookup mode=resolve)"},"target_type":{"enum":["claim","solution","snippet","tenant","pm_context","node","edge","map","chat_session","context_document","mcp_connection","mcp_server_key","decision_signal","integration","workspace","access_link"],"type":"string"},"alternatives":{"type":"array","items":{"type":"string","maxLength":1000},"maxItems":20},"out_of_scope":{"type":"array","items":{"type":"string","maxLength":128},"maxItems":100,"description":"check_coverage: ids intentionally NOT addressed."},"product_name":{"type":"string","maxLength":200},"snooze_clear":{"type":"boolean"},"clear_discard":{"type":"boolean"},"covered_ideas":{"type":"array","items":{"type":"string","maxLength":128},"maxItems":100,"description":"check_coverage: idea ids in the coverage map."},"decision_type":{"type":"string","maxLength":60,"description":"log_decision: e.g. product_decision, note; full list in the error."},"evidence_refs":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":20,"description":"record_outcome: evidence refs."},"main_features":{"type":"array","items":{"type":"object","required":["name","description"],"properties":{"name":{"type":"string","maxLength":200},"description":{"type":"string","maxLength":1000}}}},"merged_commit":{"type":"string","description":"update_solution: landed commit sha (7–40 hex), for a hand merge."},"assign_node_id":{"type":"string","format":"uuid","description":"update_solution: taxonomy node."},"covered_claims":{"type":"array","items":{"type":"string","maxLength":128},"maxItems":50,"description":"check_coverage: claim ids this work implements."},"design_context":{"type":"string","maxLength":8000},"discard_reason":{"type":"string","maxLength":500,"description":"Divergence loser (ADR-224); CANCELED required. ≤500 chars."},"force_reassign":{"type":"boolean","description":"Audited takeover of a Solution in progress."},"metric_current":{"type":"number","description":"record_outcome (automated): fresh metric reading."},"pm_instruction":{"type":"string","maxLength":1000,"description":"update_strategy: the PM's request, quoted."},"priority_boost":{"type":"number","maximum":5,"minimum":0.5,"description":"PM multiplier over evidence-weighted priority."},"assign_to_agent":{"type":"boolean","description":"update_solution: take ownership."},"is_deal_breaker":{"type":"boolean","description":"true = confirm/flag, false = reject/unflag."},"target_claim_id":{"type":"string","format":"uuid","description":"Claim UUID (atisbo_lookup mode=resolve)"},"attach_claim_ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"coverage_updates":{"description":"deliver: buckets snippets/ideas/claims.","type":"string"},"detach_claim_ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"refresh_schedule":{"enum":["none","hourly","daily","weekly","biweekly","monthly"],"type":"string"},"criteria_left_out":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":20,"description":"Criteria left OUT (ADR-234); only with LAUNCHED."},"expected_behavior":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":50,"description":"check_coverage: observable behavior delivered."},"replace_confirmed":{"type":"boolean","description":"true confirms a shorter matrix replacing a longer one."},"snooze_indefinite":{"type":"boolean","description":"until NEW EVIDENCE (not a timer)."},"chosen_solution_id":{"type":"string","format":"uuid","description":"update_solution: the winning sibling."},"clear_pm_exception":{"type":"boolean"},"outcome_confidence":{"enum":["high","medium","low"],"type":"string"},"on_behalf_of_person":{"type":"boolean"},"pm_exception_reason":{"type":"string","maxLength":1000,"description":"a PERSON's choice + alternatives; blockers → operational_block_reason."},"verification_method":{"type":"string","maxLength":500,"description":"record_outcome: how verified (max 500 chars)."},"contradictions_found":{"type":"boolean","description":"record_outcome (automated): attest a contradiction sweep."},"clear_operational_block":{"type":"boolean"},"criteria_left_out_reason":{"type":"string","maxLength":1000,"description":"Why each is out; required with criteria_left_out."},"operational_block_reason":{"type":"string","maxLength":500,"description":"update_solution: operational blocker; not a decision. ≤500 chars."},"operational_block_category":{"enum":["credentials","permissions","budget","provider_capacity","external_dependency"],"type":"string"}}},"annotations":{"category":"write","readOnlyHint":false,"strict_output":false,"destructiveHint":true,"supports_cursor":false,"supports_idempotency":true,"requires_confirmation":false,"supports_since_checkpoint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: coverage_updates. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":2773,"tokensAfter":2777}],"toolsChanged":2,"tokensSaved":0,"todo":[{"tool":"atisbo_capture","params":["ops","body","message","patches","patchOps","file_name","mime_type","patch_ops","agent_name","captured_from","knowledge_kind","on_behalf_of_person"]},{"tool":"atisbo_decide","params":["spec","title","pr_url","node_id","unassign","claim_ids","kpi_after","target_id","kpi_before","snippet_id","document_id","instruction","observed_at","review_kind","snooze_days","target_type","alternatives","product_name","snooze_clear","clear_discard","main_features","design_context","attach_claim_ids","detach_claim_ids","refresh_schedule","clear_pm_exception","outcome_confidence","on_behalf_of_person","clear_operational_block","operational_block_category"]},{"tool":"atisbo_lookup","params":["content_limit","content_offset"]},{"tool":"atisbo_map","params":["label","map_type","template","edge_type","event_name","snippet_id","assignments","metric_name","metric_type","target_value","grouping_mode","source_map_id","branch_options","source_node_id","target_node_id","time_range_days"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}