MCP 服务器

Atisbo

io.github.brian8a1/atisbo
商业与运营 数据与分析 生产力 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Manages workspace signals, opportunities, decisions, backlogs, documents, integrations, evidence, analytics, and operational maps.

atisbo_analyze
Broad analytical query over claims, solutions, or activity: time filters, grouping, metrics, ready-to-render chart artifact. Use FIRST for analytical questions spanning entities or time windows; a single-entity drill-down is atisbo_lookup mode=get with the entity id.
只读
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'number', 'minimum': 1, 'description': '      Max grouped rows; over-asks clamp.'}, 'cursor': {'type': 'string', 'description': 'From stream.next_cursor â\x80\x94 pages grouped rows beyond `limit`.'}, 'domain': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Free-text product area, resolved to map nodes.'}, 'filters': {'type': 'object', 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Transport, not provenance (captures store `manual`); claim/solution aggregates ignore it.'}, 'node_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 20}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 50}, 'lifecycle': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Known lifecycle stages (case-insensitive).'}, 'claim_status': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Known claim statuses (case-insensitive).'}, 'signal_origin': {'type': 'array', 'items': {'enum': ['customer', 'internal', 'operational'], 'type': 'string'}, 'maxItems': 3, 'description': 'customer | internal | operational â\x80\x94 separates what `sources` cannot (claim matches if ANY snippet matches).'}}, 'description': 'Filters: AND across fields, OR within a field.'}, 'metrics': {'type': 'array', 'items': {'enum': ['claim_count', 'snippet_count', 'avg_power_score', 'decision_count', 'activity_count', 'effort_proxy_avg'], 'type': 'string', 'description': 'Aggregate metric computed per group.'}, 'maxItems': 4, 'description': 'Aggregate metrics per group (1-4).'}, 'subject': {'enum': ['claims', 'solutions', 'activity'], 'type': 'string', 'description': 'Dataset: claims (opportunities), solutions, or activity (decisions + events).'}, 'analysis': {'enum': ['summary', 'table', 'bar', 'line', 'scatter'], 'type': 'string', 'description': 'summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.'}, 'group_by': {'type': 'array', 'items': {'enum': ['claim', 'node', 'day', 'week', 'status', 'source'], 'type': 'string', 'description': 'Row grouping dimension. lifecycle is an alias for status.'}, 'maxItems': 2, 'description': 'Row grouping dimensions (1-2).'}, 'time_range': {'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'preset': {'enum': ['7d', '30d', '90d'], 'type': 'string', 'description': 'Relative time window preset.'}}, 'description': 'Preset (7d/30d/90d) or explicit from/to ISO dates. Defaults to 30d.'}}}
输出模式
{'type': 'object', 'required': ['data', 'meta'], 'properties': {'data': {'type': 'object', 'required': ['resolved_query', 'summary', 'dataset', 'sources', 'warnings', 'assumptions'], 'properties': {'chart': {'type': 'object', 'required': ['kind', 'title', 'x_key', 'y_key'], 'properties': {'kind': {'enum': ['bar', 'line', 'scatter'], 'type': 'string'}, 'title': {'type': 'string'}, 'x_key': {'type': 'string'}, 'y_key': {'type': 'string'}, 'series_key': {'type': 'string'}}}, 'stream': {'type': 'object', 'required': ['checkpoint', 'has_more'], 'properties': {'has_more': {'type': 'boolean'}, 'checkpoint': {'type': 'string'}, 'next_cursor': {'type': 'string'}}}, 'dataset': {'type': 'object', 'required': ['columns', 'rows', 'row_count'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {}}}, 'columns': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'total_rows': {'type': 'number', 'minimum': 0}}}, 'sources': {'type': 'object', 'required': ['views_used', 'row_count'], 'properties': {'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'views_used': {'type': 'array', 'items': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'artifact': {'type': 'object', 'required': ['artifact_type', 'artifact_data'], 'properties': {'artifact_data': {'type': 'object', 'required': ['title', 'summary', 'resolved_query', 'dataset', 'sources', 'warnings', 'assumptions'], 'properties': {'chart': {'type': 'object', 'required': ['kind', 'title', 'x_key', 'y_key'], 'properties': {'kind': {'enum': ['bar', 'line', 'scatter'], 'type': 'string'}, 'title': {'type': 'string'}, 'x_key': {'type': 'string'}, 'y_key': {'type': 'string'}, 'series_key': {'type': 'string'}}}, 'title': {'type': 'string'}, 'dataset': {'type': 'object', 'required': ['columns', 'rows', 'row_count'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {}}}, 'columns': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'total_rows': {'type': 'number', 'minimum': 0}}}, 'sources': {'type': 'object', 'required': ['views_used', 'row_count'], 'properties': {'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'views_used': {'type': 'array', 'items': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'resolved_query': {'type': 'object', 'required': ['subject', 'time_range', 'group_by', 'metrics', 'analysis', 'filters', 'resolved_nodes'], 'properties': {'domain': {'type': 'string'}, 'filters': {'type': 'object', 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'node_ids': {'type': 'array', 'items': {'type': 'string'}}, 'claim_ids': {'type': 'array', 'items': {'type': 'string'}}, 'lifecycle': {'type': 'array', 'items': {'type': 'string'}}, 'claim_status': {'type': 'array', 'items': {'type': 'string'}}}}, 'metrics': {'type': 'array', 'items': {'enum': ['claim_count', 'snippet_count', 'avg_power_score', 'decision_count', 'activity_count', 'effort_proxy_avg'], 'type': 'string', 'description': 'Aggregate metric computed per group.'}}, 'subject': {'enum': ['claims', 'solutions', 'activity'], 'type': 'string', 'description': 'Dataset: claims (opportunities), solutions, or activity (decisions + events).'}, 'analysis': {'enum': ['summary', 'table', 'bar', 'line', 'scatter'], 'type': 'string', 'description': 'summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.'}, 'group_by': {'type': 'array', 'items': {'enum': ['claim', 'node', 'day', 'week', 'status', 'source'], 'type': 'string', 'description': 'Row grouping dimension. lifecycle is an alias for status.'}}, 'time_range': {'type': 'object', 'required': ['from', 'to', 'timezone', 'preset'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'preset': {'enum': ['7d', '30d', '90d', 'custom'], 'type': 'string'}, 'timezone': {'type': 'string'}}}, 'resolved_nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'score': {'type': 'number'}}}}}}}}, 'artifact_type': {'enum': ['analytics-report'], 'type': 'string'}}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'resolved_query': {'type': 'object', 'required': ['subject', 'time_range', 'group_by', 'metrics', 'analysis', 'filters', 'resolved_nodes'], 'properties': {'domain': {'type': 'string'}, 'filters': {'type': 'object', 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'node_ids': {'type': 'array', 'items': {'type': 'string'}}, 'claim_ids': {'type': 'array', 'items': {'type': 'string'}}, 'lifecycle': {'type': 'array', 'items': {'type': 'string'}}, 'claim_status': {'type': 'array', 'items': {'type': 'string'}}}}, 'metrics': {'type': 'array', 'items': {'enum': ['claim_count', 'snippet_count', 'avg_power_score', 'decision_count', 'activity_count', 'effort_proxy_avg'], 'type': 'string', 'description': 'Aggregate metric computed per group.'}}, 'subject': {'enum': ['claims', 'solutions', 'activity'], 'type': 'string', 'description': 'Dataset: claims (opportunities), solutions, or activity (decisions + events).'}, 'analysis': {'enum': ['summary', 'table', 'bar', 'line', 'scatter'], 'type': 'string', 'description': 'summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.'}, 'group_by': {'type': 'array', 'items': {'enum': ['claim', 'node', 'day', 'week', 'status', 'source'], 'type': 'string', 'description': 'Row grouping dimension. lifecycle is an alias for status.'}}, 'time_range': {'type': 'object', 'required': ['from', 'to', 'timezone', 'preset'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'preset': {'enum': ['7d', '30d', '90d', 'custom'], 'type': 'string'}, 'timezone': {'type': 'string'}}}, 'resolved_nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'score': {'type': 'number'}}}}}}}}, 'meta': {'type': 'object', 'required': ['tenant_plan', 'workspace_id', 'workspace_name', 'timestamp'], 'properties': {'persona': {'type': 'string'}, 'timestamp': {'type': 'string'}, 'tenant_plan': {'enum': ['free', 'pro', 'enterprise'], 'type': 'string'}, 'workspace_id': {'type': 'string'}, 'gates_applied': {'type': 'array', 'items': {'type': 'string'}}, 'scoring_model': {'type': 'string'}, 'workspace_name': {'type': 'string'}, 'contract_version': {'type': 'string'}}}}}
atisbo_capture
Capture Signals or knowledge; update, patch or add evidence to artefacts.
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['mode'], 'properties': {'ops': {}, 'body': {}, 'mode': {'enum': ['signal', 'signal_batch', 'knowledge', 'update_artefact', 'patch_artefact', 'add_artefact_evidence'], 'type': 'string', 'description': 'Capture mode. Notes per mode in meta.guidance.'}, 'note': {'type': 'string', 'maxLength': 500, 'description': 'Why it matters (signal).'}, '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': {}, 'node_id': {'type': 'string', 'format': 'uuid', 'description': 'knowledge: alias for scope_id (scope_type=node).'}, 'patches': {}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'knowledge: free-form category label â\x89¤60 chars.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'knowledge: alias for scope_id (scope_type=claim).'}, '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; inferred if omitted.'}, 'patchOps': {}, 'scope_id': {'type': 'string', 'format': 'uuid', 'description': 'Target scope UUID; required for node/claim/solution/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 = active 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 (artefact modes).'}, 'solution_id': {'type': 'string', 'format': 'uuid', 'description': 'knowledge: alias for scope_id (scope_type=solution).'}, '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 top-level change_summary (or note) â\x80\x94 one sentence of what changed.'}, 'classification': {'enum': ['problem', 'idea', 'question'], 'type': 'string', 'description': 'Signal classification hint.'}, 'dirty_event_id': {'type': 'string', 'format': 'uuid', 'description': 'Dirty event resolved on success'}, 'knowledge_kind': {'enum': ['auto', 'transcript', 'transcript_customer', 'notes'], 'type': 'string'}, 'coverage_updates': {'description': 'buckets snippets/ideas/claims; snippets[].{snippet_id, status, rationale}'}, 'client_request_id': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'signal: retry key.'}, 'expected_content_hash': {'type': 'string', 'maxLength': 64, 'description': 'doc_patch_context content_hash'}, 'corrects_prior_evidence': {'type': 'boolean', 'description': 'signal: TRUE to CORRECT prior evidence, not repeat it (skips dedup; when/why in meta.guidance).'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}}
atisbo_connect
WHERE Atisbo gets its signals. Modes: list, catalog, create (returns endpoint), configure, pause, resume, sync_now, delete (soft-disconnect). THE CATALOG IS NOT THE BOUNDARY: almost anything connects (push app, daily-pull app, raw webhook/email) — call catalog and read `fallback` before ever saying "Atisbo cannot ingest that". Atisbo only READS a connected system. create returns endpoint + signing secret shown ONCE — relay to the human immediately.
可能执行破坏性操作
输入模式
{'type': 'object', 'properties': {'kind': {'enum': ['webhook', 'email'], 'type': 'string', 'description': 'mode=create: "email" provisions the ingest address; default webhook.'}, 'mode': {'enum': ['list', 'catalog', 'create', 'configure', 'pause', 'resume', 'sync_now', 'delete', 'composio_catalog', 'composio_actions', 'composio_create', 'composio_authorize'], 'type': 'string', 'description': 'list/catalog need no ids; others need connection_id or create fields.'}, 'label': {'type': 'string', 'maxLength': 120, 'description': 'create/configure: human name for the source, e.g. "Freshdesk".'}, 'query': {'type': 'string', 'maxLength': 100, 'description': 'mode=catalog only: filter by name, category or description.'}, 'config': {'type': 'object', 'properties': {}, 'description': 'mode=create with provider: catalog required_fields. Stored encrypted, never readable again.'}, 'toolkit': {'type': 'string', 'maxLength': 80, 'description': 'composio_actions / composio_create: Composio app slug (e.g. "freshdesk", "jira").'}, 'provider': {'type': 'string', 'maxLength': 40, 'description': 'mode=create: NATIVE provider from catalog native_providers. Pair with config.'}, 'pull_tool': {'type': 'string', 'maxLength': 120, 'description': 'composio_create, DAILY apps: read-only action from composio_actions.'}, 'recipe_id': {'type': 'string', 'maxLength': 100, 'description': 'mode=create: catalog recipe id â\x80\x94 applies its curated mapping.'}, 'json_paths': {'type': 'object', 'required': ['raw_text'], 'properties': {'source': {'type': 'string'}, 'channel': {'type': 'string'}, 'user_id': {'type': 'string', 'description': 'Path to who said it â\x80\x94 enables company attribution.'}, 'raw_text': {'type': 'string', 'description': 'REQUIRED: path to the customer\'s own words, e.g. "ticket.description".'}, 'occurred_at': {'type': 'string', 'description': 'Path to the timestamp; else ingestion time.'}, 'deep_link_url': {'type': 'string', 'description': 'Path to a URL opening the item in the origin tool.'}, 'native_object_id': {'type': 'string'}, 'native_revision_id': {'type': 'string'}}, 'description': "create/configure: dotted paths into the POSTed payload's JSON body."}, 'rate_limit': {'type': 'number', 'maximum': 10000, 'description': 'create/configure: max requests per minute accepted. Default 100.'}, 'sync_every': {'enum': ['hourly', 'daily', 'weekly'], 'type': 'string', 'description': 'PULL sources only: cadence. Default daily.'}, 'trigger_slug': {'type': 'string', 'maxLength': 120, 'description': 'composio_create, INSTANT apps: trigger from composio_catalog.'}, 'connection_id': {'type': 'string', 'format': 'uuid', 'description': 'Connection id from mode=list; required for configure/pause/resume/sync_now/delete.'}, 'pull_arguments': {'type': 'object', 'properties': {}, 'description': 'composio_create with pull_tool: action arguments.'}, 'collection_path': {'type': 'string', 'maxLength': 200, 'description': 'composio_create with pull_tool: dotted path to the record array if not inferable.'}, 'source_category': {'enum': ['conversation_message', 'survey_response', 'document_revision', 'transcript_session', 'operational_event'], 'type': 'string', 'description': 'mode=create with your own mapping: what the payload carries.'}, 'skip_attribution': {'type': 'boolean', 'description': 'mode=create: true for anonymous public-forum sources with no attributable customer.'}}}
输出模式
{'type': 'object', 'properties': {'result': {}}}
atisbo_decide
PM decision facade. 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.
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['mode'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'delete_knowledge/set_knowledge_category doc id.'}, 'mode': {'enum': ['triage', 'rename_claim', 'delete_claim', 'combine_claims', 'reassign_snippet', 'create_claim_from_snippet', 'split_snippet', 'create_solution', 'create_living_doc', 'update_solution', 'dispatch_solution', 'record_outcome', 'delete_solution', 'apply_solution_spec', 'update_strategy', 'log_decision', 'update_artefact_schedule', 'create_solution_doc', 'deal_breaker', 'declare_pm_exception', 'delete_knowledge', 'set_knowledge_category', 'set_claim_review_status', 'set_snippet_status', 'check_coverage', 'mark_reviewed', 'validate_delivery'], 'type': 'string', 'description': 'Resolve names to UUIDs before mutating; notes per mode in meta.guidance.'}, 'note': {'type': 'string', 'maxLength': 5000, 'description': 'record_outcome narrative max 5000; triage/log_decision rationale max 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': 'Confirms a source-deleting reassignment; omit = CONFIRMATION_REQUIRED.'}, 'title': {'type': 'string', 'maxLength': 500}, 'effort': {'type': 'number', 'maximum': 52, 'minimum': 0.5, 'description': 'Size estimate, person-weeks. Sizing only, never affects order.'}, 'matrix': {'type': 'array', 'items': {'type': 'object', 'required': ['criterion', 'status'], 'properties': {'note': {'type': 'string', 'maxLength': 500, 'description': 'Required for an incomplete to be accepted: 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 â\x80\x94 required in spirit for *_verified.'}, 'criterion': {'type': 'string', 'maxLength': 200, 'description': "Success criterion, in the living doc's words where possible."}, 'evidence_refs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 300}, 'maxItems': 10, 'description': 'Durable refs: PR, dashboard, log.'}}}, 'maxItems': 20, 'description': 'validate_delivery: one entry per success 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: thread report as the agent.'}, 'mission': {'type': 'string', 'maxLength': 2000, 'description': 'update_strategy: informational only. â\x89¤2000.'}, '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. â\x89¤5000.'}, 'verdict': {'enum': ['real_fixed', 'noise'], 'type': 'string', 'description': 'mode=triage: BOTH values close the claim â\x80\x94 see guidance.'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'label to set; null clears.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'decision': {'type': 'string'}, '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. Default "Agent".'}, 'kpi_before': {'type': 'string', 'maxLength': 200}, 'risk_notes': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 50, 'description': 'check_coverage: 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}, '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 â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, '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 from 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: durable evidence refs.'}, 'main_features': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'description': {'type': 'string', 'maxLength': 1000}}}}, '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': 'update_solution: divergence loser (ADR-224); needs CANCELED.'}, 'force_reassign': {'type': 'boolean', 'description': 'dispatch_solution: audited takeover of an in-progress Solution; omit refuses contested dispatch.'}, 'metric_current': {'type': 'number', 'description': 'record_outcome (automated): fresh metric reading.'}, 'priority_boost': {'type': 'number', 'maximum': 5, 'minimum': 0.5, 'description': 'update_solution: PM multiplier over evidence-weighted priority.'}, 'assign_to_agent': {'type': 'boolean', 'description': 'update_solution: take ownership.'}, 'is_deal_breaker': {'type': 'boolean', 'description': 'deal_breaker: true = confirm/flag, false = reject/unflag.'}, 'target_claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'attach_claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 20}, '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': 'update_solution: 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': 'validate_delivery: true ONLY to confirm deliberately replacing a longer recorded matrix with a shorter one.'}, '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'}, 'pm_exception_reason': {'type': 'string', 'maxLength': 1000, 'description': 'update_solution / declare_pm_exception: needs a PERSON decision; not ops (use 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 criterion is out; required with criteria_left_out.'}, 'operational_block_reason': {'type': 'string', 'maxLength': 500, 'description': 'update_solution: operational blocker; not a decision.'}, 'operational_block_category': {'enum': ['credentials', 'permissions', 'budget', 'provider_capacity', 'external_dependency'], 'type': 'string'}}}
输出模式
{'type': 'object', 'properties': {'result': {}}}
atisbo_lookup
Find or open Atisbo entities. Modes expose snippet text + attachment URLs, queues, outcomes and implementation context.
只读
输入模式
{'type': 'object', 'required': ['mode'], 'properties': {'ref': {'type': 'string', 'maxLength': 120, 'minLength': 3, 'description': 'open: a handle ref (claim:UUID, snippet://UUID).'}, 'mode': {'enum': ['open', 'resolve', 'claims', 'get', 'similar_claims', 'solutions', 'outcome_review', 'similar_solutions', 'work_queue', 'orphans', 'maps', 'context', 'knowledge', 'living_doc', 'attachments', 'accounts', 'deal_breakers', 'doc_patch_context', 'implementation_context', 'receipts'], 'type': 'string', 'description': 'Named by its enum value; notes per mode in meta.guidance.'}, 'refs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'minLength': 3}, 'maxItems': 10, 'description': 'open: several refs (max 10).'}, 'type': {'enum': ['problem', 'idea', 'question', 'unclassified'], 'type': 'string', 'description': 'claims: classification.'}, 'view': {'enum': ['executable', 'propose', 'needs_pm'], 'type': 'string', 'description': 'work_queue: one whole bucket by whose move it is.'}, 'depth': {'enum': ['summary', 'work'], 'type': 'string', 'description': 'summary (alias: brief) = compact fields; work = full context (default).'}, 'focus': {'enum': ['agent_work', 'all'], 'type': 'string', 'description': 'claims: agent_work | all.'}, 'limit': {'type': 'number', 'maximum': 200, 'minimum': 1, 'description': 'Max results (1â\x80\x93200); page with next_cursor.'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 2, 'description': 'Topic search: claims/solutions/knowledge/context; resolve: nameâ\x86\x92id.'}, 'scope': {'enum': ['company', 'node', 'claim', 'solution', 'map'], 'type': 'string', 'description': 'Scope for context / living_doc list.'}, 'state': {'enum': ['active', 'todo', 'draft', 'in_review', 'launched', 'monitoring', 'needs_review', 'came_back', 'didnt_work', 'partly_worked', 'worked', 'delivered', 'replaced', 'canceled'], 'type': 'string', 'description': 'work tokens (todo=DESIGNING, active=agent-consumable) or post-launch kinds.'}, 'types': {'type': 'array', 'items': {'enum': ['claim', 'solution', 'node', 'map'], 'type': 'string'}, 'maxItems': 4, 'description': 'resolve: entity kinds.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'entity': {'enum': ['claim', 'solution', 'node', 'map'], 'type': 'string', 'description': 'get: which entity kind the id field carries. Omit â\x80\x94 the id field names the entity.'}, 'map_id': {'type': 'string', 'format': 'uuid', 'description': 'Map UUID (mode=get).'}, 'status': {'enum': ['active', 'all', 'archived'], 'type': 'string', 'description': 'Status filter.'}, 'node_id': {'type': 'string', 'format': 'uuid', 'description': 'Node UUID (get; claims/solutions filter).'}, 'sort_by': {'enum': ['priority', 'created_at', 'lifecycle'], 'type': 'string', 'description': 'Solution order (priority = evidence-weighted Ã\x97 boost).'}, 'anchored': {'enum': ['any', 'anchored', 'unanchored'], 'type': 'string', 'description': 'Claim list anchoring filter.'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'knowledge: exact category filter.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'scope_id': {'type': 'string', 'format': 'uuid', 'description': 'Scope UUID unless scope/scope_type is company/workspace.'}, 'lifecycle': {'type': 'array', 'items': {'enum': ['IDEA', 'DESIGNING', 'IN_DEVELOPMENT', 'IN_REVIEW', 'LAUNCHED', 'CANCELED'], 'type': 'string'}, 'maxItems': 10, 'description': 'Solution lifecycle filters.'}, 'target_id': {'type': 'string', 'format': 'uuid', 'description': 'UUID for claim/solution/node/map/doc.'}, 'command_id': {'type': 'string', 'maxLength': 200, 'description': 'receipts: probe ONE write â\x80\x94 the exact key on a listed receipt; omit for your 25 latest.'}, 'scope_type': {'enum': ['company', 'workspace', 'node', 'claim', 'solution', 'map'], 'type': 'string', 'description': 'Alias of scope (either name works); workspace is treated as company.'}, 'claim_state': {'enum': ['open', 'in_progress', 'resolved'], 'type': 'string', 'description': 'Claim state; open=untouched.'}, 'debug_score': {'type': 'boolean', 'description': 'get claim: PowerScore breakdown.'}, 'document_id': {'type': 'string', 'format': 'uuid', 'description': 'Living document UUID.'}, 'review_kind': {'enum': ['signal_triage', 'claim_structure', 'solution_quality'], 'type': 'string', 'description': 'unreviewed only (see atisbo_decide mode=mark_reviewed).'}, 'solution_id': {'type': 'string', 'format': 'uuid', 'description': 'Solution UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'action_cursor': {'type': 'string', 'description': 'work_queue action_queue cursor; restart at page 1 after a mutation.'}, 'content_limit': {'type': 'number'}, 'include_stale': {'type': 'boolean', 'description': 'claims: include stale claims.'}, 'content_offset': {'type': 'number'}, 'dirty_event_id': {'type': 'string', 'format': 'uuid', 'description': "doc_patch_context: loads this event's snippets."}, 'evidence_limit': {'type': 'number', 'maximum': 25, 'minimum': 1, 'description': 'get entity=claim: evidence rows on page one (1â\x80\x9325); cursor reaches the rest.'}, 'exception_cursor': {'type': 'string', 'description': 'pages pm_exceptions.'}, 'judgement_cursor': {'type': 'string', 'description': 'pages needs_judgement.'}, 'operational_block_cursor': {'type': 'string', 'description': 'work_queue: pages operational_blocks.'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}}
atisbo_map
Map facade: create/apply maps, generate/edit nodes and edges, anchor claims/snippets, bind metrics, manage claim-snipe maps, regroup (merge/split). Prefer mode=apply for full MECE categorization. TWO WAYS TO PUT A CLAIM ON A NODE, not interchangeable: mode=anchor sets the TAXONOMY category (auto_node_id; refuses non-taxonomy maps); mode=link_claims adds STRUCTURAL-map membership (claim keeps its category; refuses taxonomy maps).
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['mode'], 'properties': {'mode': {'enum': ['apply', 'create', 'rename', 'delete', 'generate_nodes', 'create_node', 'update_node', 'delete_node', 'anchor', 'create_edge', 'delete_edge', 'metric_bind', 'metric_update', 'preview_claim_snipes', 'sync_claim_snipes', 'regroup', 'link_claims'], 'type': 'string', 'description': 'Notes per mode in meta.guidance.'}, 'name': {'type': 'string', 'maxLength': 200, 'description': 'Map, node, or metric name.'}, 'note': {'type': 'string', 'maxLength': 500, 'description': 'link_claims: rationale stored on every link.'}, 'label': {'type': 'string', 'maxLength': 100}, 'level': {'type': 'number', 'maximum': 5, 'minimum': 1, 'description': 'Node hierarchy depth.'}, 'map_id': {'type': 'string', 'format': 'uuid', 'description': 'Map UUID.'}, 'anchors': {'type': 'array', 'items': {'type': 'object', 'properties': {'node_id': {'type': 'string', 'format': 'uuid'}, 'claim_id': {'type': 'string', 'format': 'uuid'}}}, 'maxItems': 200, 'description': 'Batch claim anchors.'}, 'edge_id': {'type': 'string', 'format': 'uuid', 'description': 'Edge UUID for delete_edge mode.'}, 'node_id': {'type': 'string', 'format': 'uuid', 'description': 'Node UUID.'}, 'preview': {'type': 'boolean', 'description': 'regroup: read-only preview â\x80\x94 ALWAYS run it first.'}, 'branches': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 500}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Branch description.'}}}, 'maxItems': 50, 'description': 'Branches for apply mode.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'map_type': {'enum': ['taxonomy', 'kpi_tree', 'ost', 'custom'], 'type': 'string'}, 'provider': {'type': 'string', 'description': 'Metric provider: posthog, amplitude, stripe, manualâ\x80¦'}, 'template': {'enum': ['taxonomy', 'metric_tree', 'goal_tree', 'opportunity_solution_tree', 'freeform'], 'type': 'string'}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 200, 'description': 'link_claims: claims to place under node_id.'}, 'direction': {'enum': ['broader', 'specific'], 'type': 'string', 'description': 'regroup: broader merges; specific splits.'}, 'edge_type': {'enum': ['causal', 'sequential', 'associative'], 'type': 'string'}, 'new_level': {'type': 'number', 'maximum': 5, 'minimum': 1, 'description': 'New depth after a move.'}, 'parent_id': {'type': 'string', 'format': 'uuid', 'description': 'Parent node UUID.'}, 'binding_id': {'type': 'string', 'format': 'uuid', 'description': 'metric_update: binding to update (atisbo_lookup mode=get, metrics[].id).'}, 'event_name': {'type': 'string', 'maxLength': 200}, 'snippet_id': {'type': 'string', 'format': 'uuid'}, 'updated_at': {'type': 'string', 'format': 'date-time', 'description': 'metric_update: binding updated_at from your last read (stale edits fail).'}, 'assignments': {'type': 'array', 'items': {'type': 'object', 'properties': {'branchKey': {'type': 'string', 'maxLength': 120}, 'snippetId': {'type': 'string', 'format': 'uuid'}, 'branchName': {'type': 'string', 'maxLength': 200}, 'branch_key': {'type': 'string', 'maxLength': 120}, 'snippet_id': {'type': 'string', 'format': 'uuid'}, 'branch_name': {'type': 'string', 'maxLength': 200}}, 'description': 'One snippet per L2 branch: snippet_id + branch_key.'}, 'maxItems': 500}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Map/node/branch description.'}, 'metric_name': {'type': 'string', 'maxLength': 200}, 'metric_type': {'enum': ['input', 'north_star', 'business_kpi'], 'type': 'string'}, 'target_value': {'type': 'number'}, 'current_value': {'type': 'number', 'description': "metric_update: today's value; same-day re-entry replaces it."}, 'grouping_mode': {'enum': ['classification', 'mece', 'tasks', 'journey', 'severity', 'custom'], 'type': 'string'}, 'new_parent_id': {'type': 'string', 'format': 'uuid', 'description': 'Move target parent; null promotes to root.'}, 'regroup_level': {'enum': ['conservative', 'moderate', 'aggressive'], 'type': 'string', 'description': 'regroup broader: merge aggressiveness.'}, 'source_map_id': {'type': 'string', 'format': 'uuid'}, 'branch_options': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string', 'maxLength': 120}, 'label': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 20}, 'source_node_id': {'type': 'string', 'format': 'uuid'}, 'target_node_id': {'type': 'string', 'format': 'uuid'}, 'workspace_wide': {'type': 'boolean', 'description': 'regroup: explicit YES to run WORKSPACE-WIDE (refused without it).'}, 'context_answers': {'type': 'object', 'properties': {}, 'description': 'Grounding answers for AI map generation.'}, 'historical_data': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string'}, 'value': {'type': 'number'}}}, 'maxItems': 365, 'description': 'metric_update: full series REPLACEMENT (omit to append current_value).'}, 'time_range_days': {'type': 'number'}, 'target_threshold': {'type': 'number', 'maximum': 0.98, 'minimum': 0.5, 'description': 'regroup direction=specific: split threshold.'}}}
输出模式
{'type': 'object', 'properties': {'result': {}}}
atisbo_orient
Workspace orientation. Modes: snapshot, whats_new, strategy, integrations. Continue the user's existing workflow; never create a parallel backlog. Living docs cite snippet:// refs — open with atisbo_lookup mode=open, full corpus via claim depth=work, aggregates via atisbo_analyze. Edit via atisbo_lookup mode=doc_patch_context then atisbo_capture mode=patch_artefact.
只读
输入模式
{'type': 'object', 'properties': {'mode': {'enum': ['snapshot', 'whats_new', 'strategy', 'integrations'], 'type': 'string', 'description': 'snapshot (alias: workspace) uses task; whats_new uses since_checkpoint; strategy/integrations need no IDs.'}, 'task': {'enum': ['triage', 'planning', 'operations', 'executive'], 'type': 'string', 'description': 'triage = untriaged inbox; planning = confirmed opportunities by priority; operations = signals & integrations; executive = KPIs & strategy.'}, 'depth': {'enum': ['summary', 'work'], 'type': 'string', 'description': 'summary (alias: brief) = compact fields; work = full context (default).'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Max items. snapshot clamps to 20; whats_new to 50.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor.'}, 'since_checkpoint': {'type': 'string', 'description': 'ISO 8601 checkpoint for delta reads.'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}}
atisbo_support
Diagnose Atisbo, including "I connected a source and nothing appeared", "I sent text and no opportunity formed", or "my data is missing". Checks integrations, ingestion, clustering, gates and key scope, then returns a playbook. share_report files only diagnostics + your text. Use atisbo_lookup/atisbo_analyze for backlog.
只读
输入模式
{'type': 'object', 'required': ['problem'], 'properties': {'area': {'enum': ['ingestion', 'integrations', 'clustering', 'mcp', 'workspace', 'billing', 'unknown'], 'type': 'string', 'description': 'Narrows which checks run. Omit when unsure â\x80\x94 the full set costs the same round-trip.'}, 'problem': {'type': 'string', 'maxLength': 2000, 'minLength': 10, 'description': 'What went wrong, in your words. Do NOT paste customer feedback, document bodies or credentials â\x80\x94 this string IS filed if a report is created.'}, 'share_report': {'type': 'boolean', 'description': 'File a verdict-only report when the problem is not caller-side; false = diagnose only.'}, 'observed_error': {'type': 'string', 'maxLength': 1000, 'description': 'The failing error string VERBATIM â\x80\x94 diagnostics cannot see the failed call, so this is often the only evidence.'}}}
输出模式
{'type': 'object', 'required': ['data', 'meta'], 'properties': {'data': {'type': 'object', 'required': ['outcome', 'headline', 'explanation', 'findings', 'next_steps', 'reported'], 'properties': {'outcome': {'enum': ['resolved', 'answer', 'known_issue', 'captured'], 'type': 'string'}, 'findings': {'type': 'array', 'items': {'type': 'object', 'required': ['check', 'status', 'facts', 'detail'], 'properties': {'check': {'type': 'string'}, 'facts': {'type': 'object', 'properties': {}}, 'detail': {'type': 'string'}, 'status': {'enum': ['ok', 'warn', 'fail', 'skipped'], 'type': 'string'}, 'playbook': {'type': 'string'}}}}, 'headline': {'type': 'string'}, 'reported': {'type': 'boolean'}, 'report_id': {'type': 'string'}, 'next_steps': {'type': 'array', 'items': {'type': 'string'}}, 'explanation': {'type': 'string'}, 'known_issue': {'type': 'object', 'required': ['claim_id', 'title', 'status', 'affected_report_count'], 'properties': {'title': {'type': 'string'}, 'status': {'type': 'string'}, 'claim_id': {'type': 'string'}, 'affected_report_count': {'type': 'number'}}}}}, 'meta': {'type': 'object', 'required': ['tenant_plan', 'workspace_id', 'workspace_name', 'timestamp'], 'properties': {'persona': {'type': 'string'}, 'timestamp': {'type': 'string'}, 'tenant_plan': {'enum': ['free', 'pro', 'enterprise'], 'type': 'string'}, 'workspace_id': {'type': 'string'}, 'gates_applied': {'type': 'array', 'items': {'type': 'string'}}, 'scoring_model': {'type': 'string'}, 'workspace_name': {'type': 'string'}, 'contract_version': {'type': 'string'}}}}}
已更改
atisbo_support
2026年10月1日 02:44
已更改
atisbo_analyze
2026年10月1日 02:44
已更改
atisbo_connect
2026年10月1日 02:44
已更改
atisbo_map
2026年10月1日 02:44
已更改
atisbo_decide
2026年10月1日 02:44
已更改
atisbo_capture
2026年10月1日 02:44
已更改
atisbo_lookup
2026年10月1日 02:44
已更改
atisbo_orient
2026年10月1日 02:44
已更改
atisbo_support
2026年9月29日 02:51
已更改
atisbo_analyze
2026年9月29日 02:51
已更改
atisbo_map
2026年9月29日 02:51
已更改
atisbo_decide
2026年9月29日 02:51
已更改
atisbo_capture
2026年9月29日 02:51
已更改
atisbo_lookup
2026年9月29日 02:51
已更改
atisbo_orient
2026年9月29日 02:51
已更改
atisbo_analyze
2026年9月27日 02:43
已更改
atisbo_connect
2026年9月27日 02:43
已更改
atisbo_map
2026年9月27日 02:43
已更改
atisbo_decide
2026年9月27日 02:43
已更改
atisbo_capture
2026年9月27日 02:43
已更改
atisbo_lookup
2026年9月27日 02:43
已更改
atisbo_orient
2026年9月27日 02:43
已更改
atisbo_analyze
2026年9月25日 02:51
已更改
atisbo_map
2026年9月25日 02:51
已更改
atisbo_decide
2026年9月25日 02:51
已更改
atisbo_capture
2026年9月25日 02:51
已更改
atisbo_lookup
2026年9月25日 02:51
已更改
atisbo_lookup
2026年9月23日 02:42
已更改
atisbo_connect
2026年9月21日 02:50
已更改
atisbo_map
2026年9月21日 02:50