chore: keep widget sources only
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: shd-active-projects
|
||||
description: Use when the user asks for all active SHD projects, project deadlines, project statuses, or a project register sorted by the nearest completion date.
|
||||
---
|
||||
|
||||
# Active SHD projects
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Call `shd_list_projects` once with `archived: false` and `limit: 100`.
|
||||
2. If the user supplied a search term, pass it as `q`; otherwise do not add a
|
||||
search filter.
|
||||
3. Use the project fields returned by that tool. Do not call
|
||||
`shd_get_project` once per row just to repeat list data.
|
||||
4. Sort projects with a non-null `deadline` in ascending order. Put projects
|
||||
without a deadline after dated projects; do not invent a date.
|
||||
5. If the user is in a UI-capable MCP host, call `shd_render_projects_widget`
|
||||
after the data call, passing the returned `data` array as `projects` and the
|
||||
returned `meta` object as `meta`. When rendering succeeds, keep the project
|
||||
rows inside the widget and give only a short confirmation in the final
|
||||
response; do not repeat the rows as prose or a Markdown table.
|
||||
6. If the UI host is unavailable or the render tool returns an error, return
|
||||
the compact fallback table:
|
||||
|
||||
`Проект | Дата завершения | Статус`
|
||||
|
||||
7. Preserve the server's project name/code and status. If a deadline is a
|
||||
datetime, format it with its returned timezone when available; otherwise
|
||||
keep the value unmodified and state that timezone data was unavailable.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- “Активные” defaults to non-archived projects (`archived: false`). If the user
|
||||
means a particular business status rather than archive state, ask which
|
||||
status or report the returned statuses without filtering them locally.
|
||||
- Do not use task due dates as project completion dates.
|
||||
- If the server indicates more records than the tool can return, report that
|
||||
the current tool limit was reached; do not claim a complete list.
|
||||
- This workflow is read-only and must not update, archive or delete projects.
|
||||
|
||||
See `references/project-widget.md` for the data/render boundary.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: Active SHD projects
|
||||
short_description: Project deadlines and statuses
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,8 @@
|
||||
# Project widget contract
|
||||
|
||||
Call the data tool first. Pass only the returned project array and metadata to
|
||||
the render tool. The widget is a presentation layer: it must not invent dates,
|
||||
statuses or project rows. When the render succeeds, keep the rows in the
|
||||
widget and do not repeat them in the assistant response. Keep the plain
|
||||
structured table only as the fallback for hosts without MCP Apps UI or when
|
||||
the render tool fails.
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: shd-agents-operations
|
||||
description: Use when the user asks to inspect SHD agents, controllers, diagnostics, tunnels, access rules, endpoints, monitoring or agent runtime actions.
|
||||
---
|
||||
|
||||
# SHD agents operations
|
||||
|
||||
See `references/agent-operations.md` before touching runtime, network or access
|
||||
configuration.
|
||||
|
||||
## Diagnose first
|
||||
|
||||
- Resolve the controller, user agent or tunnel identity from
|
||||
`shd_agents_overview`, status and diagnostic tools.
|
||||
- Read current access policies, settings, history and async status before
|
||||
proposing an action.
|
||||
- Keep diagnostics, configuration, endpoint publication and network routing as
|
||||
separate operations. Never expose credentials, private keys or tunnel data.
|
||||
|
||||
## Controller data and widgets
|
||||
|
||||
- For a controller device list, call `shd_get_controller_source_inventory`, then
|
||||
`shd_render_controller_devices_widget` with the complete result and scoped
|
||||
`meta.sourceArgs`.
|
||||
- For current states across controllers, call `shd_get_home_live_state`, then
|
||||
`shd_render_controller_live_state_widget`.
|
||||
- For one presence, binary state or numeric sensor statistics, call
|
||||
`shd_get_controller_state_statistics`, then
|
||||
`shd_render_controller_statistics_widget`. The server result is authoritative
|
||||
for counts, intervals, durations, percentages, medians and hourly buckets;
|
||||
do not calculate them from raw history in the model.
|
||||
- For raw time-series history, call `shd_get_controller_source_history`, then
|
||||
`shd_render_controller_history_widget`. Keep the detailed rows in the widget
|
||||
after a successful render and use plain text only when the UI call is
|
||||
unavailable or fails.
|
||||
|
||||
## High-impact actions
|
||||
|
||||
Creating/closing tunnels, publishing or revoking endpoints, replacing access
|
||||
policies, rebooting an agent, changing exit-network routing or enabling
|
||||
monitoring requires an explicit target and user request. For asynchronous
|
||||
actions, return the operation ID, poll only as needed and report terminal
|
||||
status. Do not retry a network or reboot action blindly.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD agents operations"
|
||||
short_description: "Diagnose agents and guarded runtime actions"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,14 @@
|
||||
# Agent operations contract
|
||||
|
||||
Start with `shd_agents_overview`, `shd_get_controller_status`,
|
||||
`shd_agents_get_controller_diagnostics`, `shd_agents_get_diagnostics`, history
|
||||
and the relevant access-policy tools. Use `shd_agents_get_async_status` for an
|
||||
operation already returned by the server.
|
||||
|
||||
Treat tunnels, endpoint publication/revocation, access-policy replacement,
|
||||
agent reboot, exit-node/network routing and controller/user-agent settings as
|
||||
high-impact mutations. Tools such as `shd_agents_create_tunnel`,
|
||||
`shd_agents_close_tunnel`, `shd_agents_publish_controller_endpoint`,
|
||||
`shd_agents_revoke_controller_endpoint`, `shd_agents_reboot_user_agent` and
|
||||
`shd_agents_force_exit_network_route` require explicit authorization and exact
|
||||
scope. Preserve audit/readback and never print secrets returned by diagnostics.
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: shd-airbase-audit
|
||||
description: Use when the user asks to inspect AirBase tables, validate project data, find duplicate or broken links, or audit AirBase quality without changing records.
|
||||
---
|
||||
|
||||
# AirBase audit
|
||||
|
||||
See `references/audit-contract.md` for the bounded read and evidence format.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Resolve the canonical Base identity. A supplied `project_code` is accepted
|
||||
as the legacy alias only when the server accepts it; prefer the returned
|
||||
Base identity for subsequent calls.
|
||||
2. If no table is named, call `shd_airbase_tables` first and select only the
|
||||
relevant tables. Do not load every table by default.
|
||||
3. Call `shd_airbase_schema` for each selected table before reading its
|
||||
records. Pass the table explicitly when a single-table audit is requested.
|
||||
4. Call `shd_airbase_records` with bounded reads and the selected table.
|
||||
5. Compare records with the returned schema and report only evidence visible in
|
||||
the response.
|
||||
|
||||
## Findings
|
||||
|
||||
Check for duplicate business numbers, missing required values, invalid select
|
||||
values, unresolved linked records, orphaned references, conflicting DALI or
|
||||
electrical identifiers, formula/derived-field risks and incomplete source data
|
||||
when the selected tables expose those fields.
|
||||
|
||||
Report `table → record → field → observed value → reason → priority`. Distinguish
|
||||
confirmed defects from data that could not be checked because the schema or
|
||||
records were unavailable.
|
||||
|
||||
## Safety
|
||||
|
||||
This workflow is read-only. Do not call create, update, delete, import, bulk
|
||||
upsert or generic action tools while auditing. If the user asks to repair
|
||||
findings, first present the proposed records and then use the dedicated
|
||||
validation/dry-run contract before any explicit write.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: AirBase audit
|
||||
short_description: Read-only schema and data audit
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,20 @@
|
||||
# AirBase audit contract
|
||||
|
||||
Use this contract for every read-only AirBase audit.
|
||||
|
||||
1. Resolve the canonical Base identity before selecting tables. Treat a
|
||||
user-provided project code as an alias until the server returns the
|
||||
authoritative identity.
|
||||
2. Discover tables only when the request does not name them. Do not load every
|
||||
table just to find a possible issue.
|
||||
3. Read the schema before records for every selected table. Keep the table
|
||||
name explicit in each subsequent request.
|
||||
4. Bound record reads with the smallest useful limit and preserve the server's
|
||||
pagination or truncation metadata.
|
||||
5. Report evidence as `table → record → field → observed value → reason →
|
||||
priority`. Mark a finding as unverified when the schema or record needed to
|
||||
prove it was unavailable.
|
||||
|
||||
Never repair an audit finding inside the audit workflow. A repair requires a
|
||||
separate proposal, an explicit mutation request, the current schema and
|
||||
records, the server's validation/dry-run contract, and final readback.
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name: shd-analytics
|
||||
description: Use when the user asks for SHD project or company analytics, trends, comparisons, metrics, charts, reports, or time summaries.
|
||||
---
|
||||
|
||||
# SHD analytics and reports
|
||||
|
||||
## Scope
|
||||
|
||||
1. Resolve the organization or project scope before aggregating values. Use an
|
||||
exact `project_code` when the user supplied one; otherwise resolve it with
|
||||
`shd_list_projects`.
|
||||
2. Use `shd_get_project_context` for a bounded cross-module summary and request
|
||||
only the sections needed for the question.
|
||||
3. For task effort use `shd_get_task_time_report`; use
|
||||
`shd_export_task_time_report` only when the user asks for an export.
|
||||
4. For proposal analytics use `shd_get_proposal_public_analytics` only for a
|
||||
resolved proposal or public analytics scope accepted by its schema.
|
||||
5. If the requested metric does not map to a known tool, call
|
||||
`shd_capabilities` and report the unavailable capability instead of inventing
|
||||
an endpoint or field.
|
||||
|
||||
## Reporting rules
|
||||
|
||||
- State the period, scope, currency and timezone returned by SHD.
|
||||
- Distinguish totals returned by the server from calculations made from rows.
|
||||
- Preserve null, unavailable and permission-denied sections as separate states.
|
||||
- Do not infer profitability, completion, approval or trend direction from one
|
||||
record or from a missing section.
|
||||
- Present chart-ready data as a compact table with labels, units and source
|
||||
fields. Use a UI resource only when the server advertises a matching widget.
|
||||
|
||||
See `references/analytics-contract.md` before composing a multi-section report.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD analytics
|
||||
short_description: Metrics, comparisons and reports
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,9 @@
|
||||
# Analytics contract
|
||||
|
||||
- Every metric has an explicit scope, period, unit and source operation.
|
||||
- A server total is authoritative; a locally calculated total must be marked as
|
||||
calculated and list the rows used.
|
||||
- A comparison must use the same period boundaries and unit on both sides.
|
||||
- Missing data, denied access and a zero value are different outcomes.
|
||||
- Recommendations follow the evidence and are not written back to SHD unless a
|
||||
separate mutation is explicitly requested.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: shd-discussions
|
||||
description: Use when the user asks to find, read, search, create or edit SHD discussion channels, topics, messages or attachments.
|
||||
---
|
||||
|
||||
# SHD discussions
|
||||
|
||||
See `references/discussion-contract.md` for the tool map and message safety
|
||||
rules.
|
||||
|
||||
## Resolve and read
|
||||
|
||||
- Resolve the organization or project context before selecting a channel.
|
||||
- Use `shd_list_discussion_channels` and `shd_list_discussion_topics` before
|
||||
reading messages when an ID is not already known.
|
||||
- Use bounded reads with `shd_list_discussion_messages` or
|
||||
`shd_search_discussions`; preserve pagination and returned identifiers.
|
||||
- Treat private channels and messages as server-authorized data. Do not infer
|
||||
membership or quote content outside the returned scope.
|
||||
|
||||
## Mutations
|
||||
|
||||
Only create or edit a message, or upload an attachment, when the user asks for
|
||||
that exact operation. Confirm the target topic, preserve the latest message
|
||||
identity/version when available, and report the server result. Never delete or
|
||||
rewrite discussion history by guessing a topic from its display name.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD discussions"
|
||||
short_description: "Search and manage discussion threads"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,14 @@
|
||||
# Discussion contract
|
||||
|
||||
Use the narrowest tool for the request:
|
||||
|
||||
- discovery: `shd_list_discussion_channels`,
|
||||
`shd_list_discussion_topics`;
|
||||
- content: `shd_list_discussion_messages`, `shd_search_discussions`;
|
||||
- writes: `shd_add_discussion_message`, `shd_update_discussion_message`;
|
||||
- files: `shd_upload_discussion_attachment`.
|
||||
|
||||
Resolve the canonical channel/topic/message identifiers before a write. Keep
|
||||
searches bounded, distinguish no results from denied scope, and retain the
|
||||
server's pagination or conflict fields. A message edit or attachment upload is
|
||||
a side effect: require explicit user intent and report the final server result.
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: shd-documents
|
||||
description: Use when the user asks to inspect, generate, send, publish, revise or audit SHD documents, templates, comments or public links.
|
||||
---
|
||||
|
||||
# SHD documents
|
||||
|
||||
See `references/document-safety.md` before handling publication, PDF or
|
||||
contract-related document actions.
|
||||
|
||||
## Read and prepare
|
||||
|
||||
- Resolve the project and document identifiers before reading content.
|
||||
- Read the document, relevant template/configuration, revisions and comments
|
||||
needed for the requested result; do not treat a filename as authorization.
|
||||
- Keep document status, approval state, external links and public links
|
||||
separate in the report.
|
||||
- Use the document's returned revision or version when a write accepts one.
|
||||
- In a UI-capable MCP host, pass normalized list records to
|
||||
`shd_render_documents_widget`; keep the structured document list as the
|
||||
fallback and use `shd_get_contract` only for an explicitly selected record.
|
||||
|
||||
## Mutations and publication
|
||||
|
||||
Generating a PDF, sending a document, saving a contract, publishing a public
|
||||
link or changing document state requires an explicit request. Explain the
|
||||
target and audience before publication, preserve the server's ACL and expiry
|
||||
rules, and perform readback when the tool provides it. Never expose private
|
||||
links, bearer values or document content outside the authorized result.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD documents"
|
||||
short_description: "Inspect and safely manage documents"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,14 @@
|
||||
# Document safety contract
|
||||
|
||||
Useful read tools include `shd_list_contracts`, `shd_get_contract`,
|
||||
`shd_list_document_revisions`, `shd_list_document_templates`,
|
||||
`shd_list_document_comments`, `shd_list_document_external_links` and
|
||||
`shd_list_document_public_links`. PDF inspection uses
|
||||
`shd_download_document_pdf`; generation uses `shd_generate_document_pdf`.
|
||||
|
||||
Treat these as separate side effects: `shd_send_document`,
|
||||
`shd_publish_document_public_link`, `shd_save_document_contract` and
|
||||
`shd_document_contract_workflow`. Before any of them, resolve the document,
|
||||
read the current state and require the exact requested action. Report recipient,
|
||||
visibility, expiry, revision and server validation when returned. A public link
|
||||
is never a harmless preview and must not be created just to test access.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: shd-entity-resolution
|
||||
description: Use when the user asks to find a CRM entity, resolve duplicate names, compare counterparties, or determine whether records refer to the same business object.
|
||||
---
|
||||
|
||||
# SHD entity resolution
|
||||
|
||||
## Resolve first
|
||||
|
||||
1. Prefer an exact returned ID, code or external reference over a name.
|
||||
2. Search with `shd_list_crm`, then read candidates with
|
||||
`shd_get_crm_entity`.
|
||||
3. Inspect `shd_list_crm_entity_links` when relationships, projects or deals
|
||||
are part of the identity decision.
|
||||
4. Compare only fields returned by SHD. Report candidate records, matching
|
||||
evidence, conflicting evidence and unresolved fields separately.
|
||||
|
||||
## Safety
|
||||
|
||||
- A similar name is not proof of a duplicate.
|
||||
- Do not merge, delete, reassign ownership or change a relationship while
|
||||
resolving identity.
|
||||
- A write requires an exact target, an explicit user request and the current
|
||||
server validation contract. Read the record again after a permitted write.
|
||||
|
||||
See `references/entity-resolution.md` for the candidate-report format.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD entity resolution
|
||||
short_description: Resolve CRM records and duplicates
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,8 @@
|
||||
# Entity-resolution report
|
||||
|
||||
Report each candidate as:
|
||||
|
||||
`candidate → identifiers → matching fields → conflicting fields → related records → confidence → next action`
|
||||
|
||||
Confidence is an explanation of returned evidence, not a server permission or
|
||||
an authorization to merge records.
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: shd-estimate-management
|
||||
description: Use when the user asks to inspect, compare, validate, create or update SHD estimates, proposals, terms or document contracts.
|
||||
---
|
||||
|
||||
# SHD estimates and proposal documents
|
||||
|
||||
## Read path
|
||||
|
||||
1. Resolve the project, proposal, terms document or contract before acting.
|
||||
2. Use `shd_list_proposals` and `shd_get_proposal` for proposal registers and
|
||||
details.
|
||||
3. Use `shd_list_contracts`, `shd_get_contract`,
|
||||
`shd_get_pdf_scheme_editor_completeness` and `shd_validate_pdf_scheme_editor_document` for
|
||||
terms and completeness checks.
|
||||
4. Inspect template capabilities before proposing a template-driven change.
|
||||
5. Report line items, versions, completeness, approvals and publication state
|
||||
only when those fields are returned by the server.
|
||||
|
||||
## Mutations
|
||||
|
||||
- Creating, replacing items, requesting approval, publishing, restoring or
|
||||
deleting a proposal/document requires an exact explicit request.
|
||||
- Read the latest version and use the tool's concurrency and idempotency fields
|
||||
before a write.
|
||||
- Never publish or request approval as a side effect of an audit or comparison.
|
||||
|
||||
See `references/estimate-safety.md` before a proposal or terms mutation.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD estimates and proposals
|
||||
short_description: Estimate and document workflows
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,7 @@
|
||||
# Estimate and proposal safety
|
||||
|
||||
- Draft, validated, approved and published are separate states.
|
||||
- A calculated total is not an approval and a generated PDF is not a
|
||||
publication.
|
||||
- Compare revisions before restoring or replacing a document.
|
||||
- Keep the project, counterparty and version identifiers in the final report.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: shd-event-positions
|
||||
description: Use when the user asks about SHD events, booking availability, scheduling slots, event types or booking positions.
|
||||
---
|
||||
|
||||
# SHD events and scheduling
|
||||
|
||||
## Read path
|
||||
|
||||
1. Start with `shd_get_scheduling_overview` when the scope is broad.
|
||||
2. Use `shd_list_scheduling_event_types`,
|
||||
`shd_list_scheduling_availability`, `shd_list_scheduling_slots` and
|
||||
`shd_list_scheduling_bookings` for the exact requested view.
|
||||
3. Preserve the returned timezone, slot state, booking state and integration
|
||||
status. Do not turn an available slot into a confirmed booking.
|
||||
|
||||
## Mutations
|
||||
|
||||
`shd_hold_scheduling_slot`, `shd_create_scheduling_booking`,
|
||||
`shd_confirm_scheduling_booking`, `shd_reschedule_scheduling_booking` and
|
||||
`shd_cancel_scheduling_booking` are explicit writes. Read the current slot or
|
||||
booking first, pass the current concurrency/idempotency values accepted by the
|
||||
schema and report the final server state.
|
||||
|
||||
See `references/scheduling-safety.md` for the state boundaries.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD events and scheduling
|
||||
short_description: Slots, bookings and event positions
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,7 @@
|
||||
# Scheduling state boundaries
|
||||
|
||||
- Availability is not a hold.
|
||||
- A hold is not a booking.
|
||||
- A booking is not confirmed until SHD returns confirmation.
|
||||
- A cancellation or reschedule must identify the exact booking and preserve
|
||||
the server's conflict response.
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: shd-finance-crm
|
||||
description: Use when the user asks for finance or CRM information, document/payment checks, customer records, deals, relationships, or a project business overview in SHD.
|
||||
---
|
||||
|
||||
# SHD Finance and CRM
|
||||
|
||||
For a high-level project overview, prefer `shd_get_project_context` and request
|
||||
only the `finance` or `summary` sections needed. For a detailed request use
|
||||
the module tools below.
|
||||
|
||||
## Finance
|
||||
|
||||
- Find documents with `shd_list_finance_documents`.
|
||||
- Read one with `shd_get_finance_document`.
|
||||
- Read payments with `shd_list_finance_payments` or
|
||||
`shd_get_finance_payment`.
|
||||
- Resolve allowed references with `shd_list_finance_refs`.
|
||||
- In a UI-capable MCP host, pass normalized finance records to
|
||||
`shd_render_finance_widget`; keep the structured list as the fallback.
|
||||
|
||||
When auditing, compare document type, project/counterparty links, line items,
|
||||
currency, totals, due dates, payment state and returned validation. Never infer
|
||||
approval, payment or publication from a document's title or amount.
|
||||
|
||||
## CRM
|
||||
|
||||
- Find entities with `shd_list_crm` and read one with `shd_get_crm_entity`.
|
||||
- In a UI-capable MCP host, pass normalized CRM records to
|
||||
`shd_render_crm_widget`; keep the structured list as the fallback.
|
||||
- Resolve relationships with `shd_list_crm_entity_links` and inspect available
|
||||
pipelines/stages before a deal change.
|
||||
- Use `shd_save_crm_entity` only for an explicitly requested create/update after
|
||||
duplicate and relationship checks.
|
||||
|
||||
Do not approve, publish, delete, merge, move a deal stage, create a payment or
|
||||
change ownership unless the user explicitly requests that exact operation.
|
||||
Report IDs, resolved links, changed fields and server validation separately from
|
||||
recommendations.
|
||||
|
||||
See `references/finance-crm-audit.md` for the finance/CRM audit boundary.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD finance and CRM
|
||||
short_description: Finance and customer workflows
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,6 @@
|
||||
# Finance and CRM audit boundary
|
||||
|
||||
Finance documents, payments, allocations, CRM entities, links and stages are
|
||||
different objects. Report their identifiers and returned state separately.
|
||||
Use the dedicated `shd-financial-account-audit` workflow for reconciliation,
|
||||
balances, settlements or audit-log questions.
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: shd-financial-account-audit
|
||||
description: Use when the user asks to audit SHD finance accounts, balances, payments, documents, allocations, settlements or finance history.
|
||||
---
|
||||
|
||||
# SHD financial audit
|
||||
|
||||
## Read path
|
||||
|
||||
1. Resolve project, legal entity, counterparty and period before reading.
|
||||
2. Use `shd_list_finance_refs` for allowed categories, accounts and reference
|
||||
values when the request depends on them.
|
||||
3. Read documents and payments with `shd_list_finance_documents`,
|
||||
`shd_get_finance_document`, `shd_list_finance_payments` and
|
||||
`shd_get_finance_payment`.
|
||||
4. Use `shd_get_finance_account_balance` and
|
||||
`shd_list_finance_audit_log` when balances or history are requested.
|
||||
5. Reconcile only records returned for the same scope and period. Mark missing
|
||||
links, currency differences and permission gaps explicitly.
|
||||
|
||||
## Settlement safety
|
||||
|
||||
- Allocation, removal of allocation, payment creation, approval, deletion and
|
||||
document replacement are writes; do not perform them during an audit.
|
||||
- A document total is not proof of payment, and a payment is not proof of
|
||||
allocation.
|
||||
- For an explicitly requested write, read the latest payment/document and use
|
||||
the server's idempotency and concurrency contract, then read back the result.
|
||||
|
||||
See `references/finance-audit.md` for the reconciliation format.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD financial audit
|
||||
short_description: Balances, payments and settlements
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,8 @@
|
||||
# Finance audit format
|
||||
|
||||
Report:
|
||||
|
||||
`scope → period → currency → source record → observed amount/state → linked record → discrepancy → priority`
|
||||
|
||||
Do not hide an unresolved counterparty, currency conversion, allocation or
|
||||
permission boundary behind an aggregate number.
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
name: shd-gitea
|
||||
description: Use when the user asks to inspect or manage SHD-linked Gitea issues, labels, comments or issue attachments.
|
||||
---
|
||||
|
||||
# SHD Gitea
|
||||
|
||||
See `references/gitea-contract.md` for repository and issue safety.
|
||||
|
||||
## Read and resolve
|
||||
|
||||
- Resolve the canonical repository and issue identifiers returned by SHD before
|
||||
acting.
|
||||
- Read the issue, labels and current state before creating a comment or
|
||||
changing labels.
|
||||
- Keep Gitea state separate from SHD project/task state; do not claim that a
|
||||
label or issue update changed the SHD record unless the server says so.
|
||||
|
||||
## Mutations
|
||||
|
||||
Creating an issue, commenting, changing labels or uploading an attachment
|
||||
requires an explicit request. Report repository, issue number, changed labels,
|
||||
comment/attachment result and server validation. Never put credentials or
|
||||
private attachment URLs in the response or repository.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD Gitea"
|
||||
short_description: "Review and update linked Gitea issues"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,11 @@
|
||||
# Gitea contract
|
||||
|
||||
Use `shd_list_gitea_issues` and `shd_list_gitea_labels` for discovery. Writes
|
||||
are `shd_create_gitea_issue`, `shd_comment_gitea_issue`,
|
||||
`shd_update_gitea_issue_labels` and `shd_upload_gitea_issue_attachment`.
|
||||
|
||||
Resolve the repository and issue from returned server data, preserve the
|
||||
current issue state before a label update, and use an idempotency key when the
|
||||
tool schema offers one. A comment or attachment is an external side effect;
|
||||
require exact user intent and report readback. Do not assume Gitea permissions
|
||||
from SHD project permissions alone.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: shd-inventory
|
||||
description: Use when the user asks to inspect or change SHD inventory items, assets, stock, procurement, reservations, receipts or stocktakes.
|
||||
---
|
||||
|
||||
# SHD inventory
|
||||
|
||||
See `references/inventory-safety.md` before any stock, asset or procurement
|
||||
mutation.
|
||||
|
||||
## Inspect
|
||||
|
||||
- Resolve the project, location, item, asset or procurement identity from
|
||||
server results.
|
||||
- Read current stock, lots, reservations, movements, receipts, maintenance,
|
||||
assignments and audit data relevant to the question.
|
||||
- Keep available, reserved, received, written-off and counted quantities
|
||||
distinct. Do not calculate an authoritative balance from partial pages.
|
||||
|
||||
## Mutations
|
||||
|
||||
Reserve, release, receive, write off or close a stocktake only on an explicit
|
||||
request. Creating/updating resources and generic inventory actions require the
|
||||
same read-before-write and conflict/idempotency handling. Report quantities,
|
||||
location, source document, server validation and readback; never silently
|
||||
repair a discrepancy by changing stock.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD inventory"
|
||||
short_description: "Audit stock, assets and procurement"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,14 @@
|
||||
# Inventory safety contract
|
||||
|
||||
Read tools cover items/assets, procurement, locations, movements, lots,
|
||||
reservations, receipts, stocktakes, labels, assignments, maintenance and the
|
||||
inventory audit log. Use the narrowest `shd_list_inventory_*` or
|
||||
`shd_get_inventory_*` tool and preserve pagination.
|
||||
|
||||
Side-effecting operations include `shd_reserve_inventory_stock`,
|
||||
`shd_release_inventory_stock`, `shd_receive_inventory_stock`,
|
||||
`shd_write_off_inventory_stock`, `shd_close_inventory_stocktake`,
|
||||
`shd_create_inventory_resource`, `shd_update_inventory_resource` and
|
||||
`shd_inventory_action`. Resolve the exact target and latest quantity first;
|
||||
require explicit confirmation for irreversible or bulk operations and verify
|
||||
the resulting movement/audit record.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: shd-notifications
|
||||
description: Use when the user asks to inspect SHD notifications, notification modules, read state or preferences, or mark notifications read.
|
||||
---
|
||||
|
||||
# SHD notifications
|
||||
|
||||
See `references/notification-contract.md` for read-state and preference
|
||||
boundaries.
|
||||
|
||||
## Read
|
||||
|
||||
- Use `shd_list_notifications` with bounded filters and preserve notification
|
||||
IDs and timestamps.
|
||||
- Use module, read-state and preference tools only for the authenticated user
|
||||
or the explicitly authorized scope.
|
||||
- Distinguish unread, read, muted and unavailable data; do not invent a missing
|
||||
notification source.
|
||||
|
||||
## State changes
|
||||
|
||||
Marking one or more notifications read or changing preferences changes user
|
||||
state. Do it only when explicitly requested, use the returned IDs, and report
|
||||
the number and final state. Never mark a whole feed read merely because it was
|
||||
displayed or summarized.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD notifications"
|
||||
short_description: "Review alerts and notification state"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,11 @@
|
||||
# Notification contract
|
||||
|
||||
Read with `shd_list_notifications`, `shd_list_notification_modules`,
|
||||
`shd_get_notification_read_state`, `shd_get_notification_preferences` and,
|
||||
for document-specific items, `shd_list_document_notifications`.
|
||||
|
||||
State-changing tools are `shd_update_notification_preferences`,
|
||||
`shd_mark_notification_read`, `shd_mark_all_notifications_read` and
|
||||
`shd_mark_notifications_read`. Require explicit scope for bulk marking,
|
||||
prefer stable notification IDs, and report server readback. A list response is
|
||||
not authorization to alter every item in it.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: shd-organizations-acl
|
||||
description: Use when the user asks to inspect or change SHD organizations, members, invitations, roles, access audits or two-factor policies.
|
||||
---
|
||||
|
||||
# SHD organizations and ACL
|
||||
|
||||
See `references/organization-acl.md` for identity resolution and mutation
|
||||
boundaries.
|
||||
|
||||
## Inspect
|
||||
|
||||
- Resolve the canonical organization ID; never use a guessed name as a write
|
||||
target.
|
||||
- Read members, invitations, audit entries and the current two-factor policy
|
||||
before explaining access.
|
||||
- Report organization, user, role, invitation state and policy as separate
|
||||
facts. A denied or incomplete list is not proof that a member is absent.
|
||||
|
||||
## Change access
|
||||
|
||||
Inviting, adding, updating or removing a member, changing a two-factor policy,
|
||||
or creating, archiving or restoring an organization requires explicit intent.
|
||||
Show the exact organization and user scope before the mutation. Preserve server
|
||||
authorization, conflict checks and audit readback; never broaden access to
|
||||
make a failed request succeed.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD organizations and ACL"
|
||||
short_description: "Audit members, roles and access policies"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,13 @@
|
||||
# Organization and ACL contract
|
||||
|
||||
Read with `shd_list_organization_members`, `shd_list_organization_invitations`,
|
||||
`shd_list_organization_audit` and
|
||||
`shd_get_organization_two_factor_policy`. Resolve users and organizations from
|
||||
server-returned IDs.
|
||||
|
||||
Mutations include invitation operations, member add/update/remove,
|
||||
organization create/update/archive/restore and
|
||||
`shd_update_organization_two_factor_policy`. Every mutation needs explicit
|
||||
authorization, the latest relevant state, and final server/audit readback when
|
||||
available. Do not disclose invitation secrets or use an email/name match as a
|
||||
substitute for a returned user identity.
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: shd-project-files
|
||||
description: Use when the user asks to inspect project files, obtain a file link, share or zip a file, rename or move a path, or delete project files.
|
||||
---
|
||||
|
||||
# SHD project files
|
||||
|
||||
## Resolve paths
|
||||
|
||||
1. Call `shd_list_files` with the exact `project_code` and, when supplied, the
|
||||
path.
|
||||
2. Resolve the exact file or directory path and distinguish files from
|
||||
directories before any action.
|
||||
3. Use `shd_get_file_link` only when the user asks for a temporary file link or
|
||||
download.
|
||||
|
||||
## Actions
|
||||
|
||||
`shd_create_file_action` supports the explicit actions `share-link`, `zip-link`,
|
||||
`rename`, `move` and `delete`. Use the exact action matching the request. For
|
||||
rename, move and delete, confirm the source/destination and replacement scope
|
||||
from the current listing first. Mutating actions require a stable
|
||||
`idempotency_key`; delete additionally requires `confirm: true` and the server
|
||||
version/confirmation fields accepted by its schema.
|
||||
|
||||
Do not expose bearer tokens or raw secret material in prose or logs. Return a
|
||||
temporary URL only when the user explicitly asks for it. Do not overwrite,
|
||||
publish, share or delete a path merely because the user asked to inspect it.
|
||||
|
||||
See `references/file-actions.md` for the file-action boundary.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD project files
|
||||
short_description: Inspect and safely manage files
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,5 @@
|
||||
# File action boundary
|
||||
|
||||
Resolve the exact project path first. Inspection, temporary link retrieval,
|
||||
share/zip, rename/move and delete are separate intents. Mutating actions need
|
||||
the server's current version, confirmation and idempotency fields.
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: shd-project-status
|
||||
description: Use when the user asks for a status report, operational summary, risks, blockers, next actions, or a cross-module overview of one SHD project.
|
||||
---
|
||||
|
||||
# SHD project status
|
||||
|
||||
## Resolve the project
|
||||
|
||||
- If the user supplied an exact project code, use it directly.
|
||||
- If the user supplied only a name, call `shd_list_projects` with `q` once,
|
||||
choose only an unambiguous exact match, and ask for the project code when
|
||||
multiple projects match.
|
||||
|
||||
## Read the context
|
||||
|
||||
For a full summary call `shd_get_project_context` with the resolved
|
||||
`project_code`, `include` set to the requested sections, and
|
||||
`limit_per_section: 100`. The available sections are:
|
||||
|
||||
`summary`, `tasks`, `discussions`, `documents`, `finance`, `terms`, `agents`.
|
||||
|
||||
Request only the sections needed for a narrow question. Do not pretend that a
|
||||
section is empty when the server reported it unavailable or the user lacks
|
||||
access.
|
||||
|
||||
## Report
|
||||
|
||||
Separate the result into:
|
||||
|
||||
- confirmed project state;
|
||||
- current deadlines or status values returned by SHD;
|
||||
- blockers and risks supported by retrieved records;
|
||||
- next actions, clearly marked as recommendations;
|
||||
- unavailable or unresolved sections.
|
||||
|
||||
Do not convert a task deadline into a project deadline, infer a completion date
|
||||
from activity, or claim deployment success from a status field. This workflow is
|
||||
read-only unless the user separately requests a specific change.
|
||||
|
||||
See `references/context-sections.md` for section selection and unavailable data.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD project status
|
||||
short_description: Project summaries and risks
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,5 @@
|
||||
# Project context sections
|
||||
|
||||
Use only the sections requested by the user. Available sections currently
|
||||
include `summary`, `tasks`, `discussions`, `documents`, `finance`, `terms` and
|
||||
`agents`; unavailable or denied sections must remain visible in the report.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: shd-realtime-activity
|
||||
description: Use when the user asks to inspect SHD realtime events, start or terminate a realtime session, or review operational activity and audit history.
|
||||
---
|
||||
|
||||
# SHD realtime and activity
|
||||
|
||||
See `references/realtime-contract.md` for session lifecycle and event handling.
|
||||
|
||||
## Read and observe
|
||||
|
||||
- Resolve the authorized project/module scope before reading events or audit
|
||||
history.
|
||||
- Use bounded event reads and preserve event IDs, cursors and timestamps.
|
||||
- Distinguish historical audit records from a live realtime session; do not
|
||||
claim that an event stream is complete when it was truncated or disconnected.
|
||||
|
||||
## Session lifecycle
|
||||
|
||||
Starting or terminating a realtime session is a stateful operation. Require an
|
||||
explicit request, retain the returned session ID and scope, avoid duplicate
|
||||
starts on retry, and terminate only the requested session. Report connection
|
||||
or terminal state rather than fabricating an event.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD realtime and activity"
|
||||
short_description: "Inspect events and manage live sessions"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,11 @@
|
||||
# Realtime and activity contract
|
||||
|
||||
Use `shd_start_realtime_session`, `shd_get_realtime_events` and
|
||||
`shd_terminate_realtime_session` for the session lifecycle. Use the relevant
|
||||
read-only audit/activity tool for historical records, such as
|
||||
`shd_get_audit_history`, when the request is about what already happened.
|
||||
|
||||
Keep session IDs, scopes, cursors and last-seen timestamps separate. A retry
|
||||
must not create a second session unless the server explicitly supports an
|
||||
idempotency key. Termination requires the exact returned session ID and should
|
||||
be confirmed by terminal readback.
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
name: shd-routing
|
||||
description: Use for any request that asks SHD for data, a project operation, a module workflow, or a change to SHD records. Route the request to the narrowest existing SHD MCP tool and preserve server-side permissions.
|
||||
---
|
||||
|
||||
# SHD routing and safety
|
||||
|
||||
SHD MCP is the source of truth for live data, tool schemas, permissions,
|
||||
organization/project scope, conflicts, idempotency, audit and persisted
|
||||
readback. Do not invent fields, statuses, identifiers, routes or capabilities.
|
||||
|
||||
## Route the request
|
||||
|
||||
- Project list, project status, deadlines or project context: use the Projects
|
||||
Core tools and the `shd-active-projects` or `shd-project-status` workflow.
|
||||
- AirBase schema, records, links or data quality: use AirBase tools and
|
||||
the `shd-airbase-audit` workflow.
|
||||
- Tasks, task projects, task status or task dates: use Tasks tools and the
|
||||
`shd-task-workflow` workflow.
|
||||
- Project files and paths: use Files tools and the `shd-project-files` workflow.
|
||||
- Discussions, channels, topics, messages or attachments: use Discussions tools and the `shd-discussions` workflow.
|
||||
- Documents, templates, revisions, PDFs or publication links: use Documents tools and the `shd-documents` workflow.
|
||||
- Organizations, members, invitations, roles or two-factor policy: use Organizations tools and the `shd-organizations-acl` workflow.
|
||||
- Notifications, preferences or read state: use Notifications tools and the `shd-notifications` workflow.
|
||||
- Inventory, stock, assets, procurement or stocktakes: use Inventory tools and the `shd-inventory` workflow.
|
||||
- Agents, controllers, diagnostics, tunnels or network access: use Agents tools and the `shd-agents-operations` workflow.
|
||||
- Controller devices, current states, presence/history or sensor statistics: use the controller-integrations source tools; in a UI-capable host call the matching controller render tool after the data tool and before the final response (`shd_render_controller_devices_widget`, `shd_render_controller_live_state_widget`, `shd_render_controller_history_widget` or `shd_render_controller_statistics_widget`).
|
||||
- Status-page monitors, history, groups or incidents: use Status Page tools and the `shd-status-page` workflow.
|
||||
- Realtime sessions, event cursors or historical activity: use Realtime tools and the `shd-realtime-activity` workflow.
|
||||
- Terms documents, revisions, completeness or contract discussions: use Terms tools and the `shd-terms-contracts` workflow.
|
||||
- Linked Gitea issues, labels, comments or attachments: use Gitea tools and the `shd-gitea` workflow.
|
||||
- Finance or CRM records: use the specific module tools and the
|
||||
`shd-finance-crm` workflow; use project context for a high-level overview.
|
||||
- Finance reconciliation, balances, settlements or audit history:
|
||||
`shd-financial-account-audit`.
|
||||
- Proposals, estimates, quotes or estimate-document contracts:
|
||||
`shd-estimate-management`.
|
||||
- Scheduling, event types, slots or bookings: `shd-event-positions`.
|
||||
- Wiki, notes, pages, revisions or note databases: `shd-wiki-management`.
|
||||
- Entity matching or possible duplicates: `shd-entity-resolution`.
|
||||
- Analytics, comparisons, trends or reports: `shd-analytics`.
|
||||
- A multi-record change: use `shd-safe-bulk-change` before any mutation.
|
||||
|
||||
Use `shd_capabilities` only when the available module or permission boundary is
|
||||
unclear. If a tool or module is unavailable, report that fact instead of
|
||||
falling back to an undocumented endpoint.
|
||||
|
||||
## Read-first rule
|
||||
|
||||
For every write, first read the target and its relevant schema or metadata.
|
||||
Only perform a mutation when the user explicitly requested that mutation. A
|
||||
request to inspect, summarize, compare, audit or suggest is not permission to
|
||||
write.
|
||||
|
||||
Preserve the exact server result. Separate confirmed values from inference,
|
||||
and include affected identifiers, conflicts, validation errors and final
|
||||
readback when the server returns them.
|
||||
|
||||
## Scope and secrets
|
||||
|
||||
Never ask for or expose access tokens, passwords, cookies, private keys, raw
|
||||
public-link bearer tokens or integration secrets. Never use a user-provided
|
||||
project name as an identifier when SHD has not resolved it to a returned
|
||||
project code or ID.
|
||||
|
||||
See `references/module-map.md` for the current high-level routing map.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD routing and safety
|
||||
short_description: Route requests to safe MCP tools
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,25 @@
|
||||
# SHD module map
|
||||
|
||||
- Projects and project context → `shd_list_projects`, `shd_get_project`,
|
||||
`shd_get_project_context`.
|
||||
- ProjectBase → `shd_project_db_*`, `shd_project_base_*`.
|
||||
- Tasks → `shd_list_tasks`, `shd_get_task`, task mutation tools.
|
||||
- Files → `shd_list_files`, file action tools.
|
||||
- Discussions → channel, topic, message search and attachment tools.
|
||||
- Documents → document, template, revision, PDF and publication-link tools.
|
||||
- Organizations and ACL → members, invitations, audit and two-factor policy
|
||||
tools.
|
||||
- Notifications → notification, preference and read-state tools.
|
||||
- Inventory → stock, asset, procurement, reservation and stocktake tools.
|
||||
- Agents → controller/user-agent status, diagnostics, tunnels, endpoints and
|
||||
network-operation tools.
|
||||
- Status Page → monitor, history, group and incident tools.
|
||||
- Realtime and activity → session, event-cursor and audit/activity tools.
|
||||
- Terms and contracts → Terms documents, completeness, revisions and point
|
||||
discussion tools.
|
||||
- Gitea → linked issue, label, comment and attachment tools.
|
||||
- Finance and CRM → module-specific finance/CRM tools.
|
||||
- Proposals, terms and document contracts → proposal/terms/document tools.
|
||||
- Scheduling → `shd_get_scheduling_overview` and scheduling tools.
|
||||
- Wiki and notes → note-space, page, revision and database tools.
|
||||
- Unknown or permission-sensitive capability → `shd_capabilities` first.
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: shd-safe-bulk-change
|
||||
description: Use before any SHD bulk create, update, import, archive, delete, or other multi-record mutation, and whenever the user asks to plan a mass change.
|
||||
---
|
||||
|
||||
# Safe SHD bulk changes
|
||||
|
||||
## Plan first
|
||||
|
||||
1. Confirm the target module, organization/project scope, exact match rule and
|
||||
intended side effect.
|
||||
2. Read current schemas and records. Estimate affected, skipped, invalid and
|
||||
ambiguous rows.
|
||||
3. Prefer a server validation or dry-run operation. For AirBase use
|
||||
`shd_airbase_validate_records`, then
|
||||
`shd_airbase_bulk_create_records` or
|
||||
`shd_airbase_bulk_upsert_records` with `dry_run: true` when applicable.
|
||||
4. Present the plan and stop unless the user explicitly authorized execution.
|
||||
|
||||
## Execute safely
|
||||
|
||||
Use stable idempotency keys, expected versions and exact match fields accepted
|
||||
by the selected tool. Do not silently widen a project, organization, table or
|
||||
record filter. Do not convert a failed or conflicting row into a new record.
|
||||
|
||||
After execution, report created, updated, skipped, rejected and conflicted
|
||||
rows, then use the server's persisted readback when available. Destructive
|
||||
operations require explicit confirmation and remain subject to server ACL.
|
||||
|
||||
See `references/write-preflight.md` for the required preflight record.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD safe bulk changes
|
||||
short_description: Plan and validate bulk mutations
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,7 @@
|
||||
# Write preflight
|
||||
|
||||
Before a multi-record write, record:
|
||||
|
||||
`module → scope → match rule → current count → affected count → skipped/ambiguous count → validation result → idempotency key`
|
||||
|
||||
Stop on an ambiguous match, validation failure, conflict or missing readback.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: shd-status-page
|
||||
description: Use when the user asks to inspect SHD status-page monitors, history, groups or incidents, or to change public status monitoring.
|
||||
---
|
||||
|
||||
# SHD status page
|
||||
|
||||
See `references/status-page-safety.md` for monitor and incident boundaries.
|
||||
|
||||
## Read
|
||||
|
||||
- Resolve the status-page scope and monitor IDs before reporting health.
|
||||
- Read current monitors and history; distinguish current state from historical
|
||||
observations and from an incident declaration.
|
||||
- Report unavailable, stale or unauthorized monitors explicitly.
|
||||
|
||||
## Mutations
|
||||
|
||||
Publishing an incident, creating/updating/deleting a group or monitor changes
|
||||
an externally visible monitoring surface. Require an explicit request, exact
|
||||
scope and current readback. Do not publish an incident to test the integration
|
||||
and do not infer an outage from one missing response.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD status page"
|
||||
short_description: "Inspect monitors and publish incidents safely"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,14 @@
|
||||
# Status-page safety contract
|
||||
|
||||
Read with `shd_get_status_page_monitors` and
|
||||
`shd_get_status_page_monitor_history`. Mutations are
|
||||
`shd_publish_status_page_incident`, `shd_create_status_page_group`,
|
||||
`shd_update_status_page_group`, `shd_delete_status_page_group`,
|
||||
`shd_create_status_page_monitor`, `shd_update_status_page_monitor` and
|
||||
`shd_delete_status_page_monitor`.
|
||||
|
||||
Before a mutation, resolve the canonical monitor/group IDs, read the latest
|
||||
state and show the public scope, message, duration or target being changed.
|
||||
Report server validation and final status. Deletion and incident publication
|
||||
are consequential actions and must never be inferred from a question asking for
|
||||
diagnosis.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: shd-task-workflow
|
||||
description: Use when the user asks to find, inspect, create, update, reschedule, archive, or delete SHD tasks or task-project data.
|
||||
---
|
||||
|
||||
# SHD task workflow
|
||||
|
||||
See `references/task-contract.md` for identifier resolution, conflict handling
|
||||
and mutation readback requirements.
|
||||
|
||||
## Read and resolve
|
||||
|
||||
- Use `shd_list_task_projects` when the request concerns a task project or its
|
||||
status.
|
||||
- Use `shd_list_tasks` with `project_code`, `project_id`, `q`, `archived`,
|
||||
`limit` or `offset` to find tasks.
|
||||
- Use `shd_get_task` for one resolved task and
|
||||
`shd_get_task_project_meta` for statuses, tags, sprints, views and custom
|
||||
fields.
|
||||
- Read comments or attachments only when they are relevant to the request.
|
||||
- After `shd_list_tasks` returns, always pass normalized task records to
|
||||
`shd_render_tasks_widget` before the final response when the host supports
|
||||
MCP Apps UI. Use the structured task list or plain text only when the render
|
||||
tool is unavailable or returns an error.
|
||||
|
||||
Do not create a task from an ambiguous project name or duplicate a task that
|
||||
already matches the request.
|
||||
|
||||
## Mutations
|
||||
|
||||
Only mutate when the user explicitly asks for the exact operation:
|
||||
|
||||
- create with `shd_create_task`;
|
||||
- update fields with `shd_update_task`;
|
||||
- change status with `shd_update_task_status`;
|
||||
- archive with `shd_archive_task`;
|
||||
- delete with `shd_delete_task` and the server's explicit confirmation contract.
|
||||
|
||||
Before updating, pass the latest `updated_at` when the tool accepts it. Use an
|
||||
idempotency key when the tool schema accepts one. If the server reports a
|
||||
conflict, stop and show the current state; do not overwrite it by guessing.
|
||||
|
||||
Report the task ID, changed fields, server validation, conflict state and final
|
||||
status. Never treat a suggested change as authorization to execute it.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD task workflow
|
||||
short_description: Read and safely update tasks
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,20 @@
|
||||
# Task workflow contract
|
||||
|
||||
Resolve task context before acting:
|
||||
|
||||
- use a canonical task-project identifier when the server returns one;
|
||||
- search by explicit project, task ID or bounded query rather than guessing
|
||||
from a display name;
|
||||
- read task-project metadata before changing status, sprint, tags or custom
|
||||
fields;
|
||||
- retain `updated_at`, version or equivalent conflict data from the latest
|
||||
read whenever the mutation schema supports it.
|
||||
|
||||
For a write, report the exact operation, task ID, changed fields, idempotency
|
||||
key when used, server validation, conflict result and readback state. A
|
||||
conflict or ambiguous match is a stop condition: show the current state and
|
||||
ask for a narrower target instead of overwriting it.
|
||||
|
||||
Delete and archive operations require their server-side confirmation contract.
|
||||
Never treat a proposed task change or a natural-language suggestion as write
|
||||
authorization.
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
name: shd-terms-contracts
|
||||
description: Use when the user asks to inspect, compare, discuss, revise or restore SHD Terms documents and contract points.
|
||||
---
|
||||
|
||||
# SHD Terms and contracts
|
||||
|
||||
See `references/terms-contract.md` for revision, completeness and discussion
|
||||
rules.
|
||||
|
||||
## Inspect
|
||||
|
||||
- Resolve the canonical Terms document and project context.
|
||||
- Read completeness, current revision and relevant history before comparing or
|
||||
summarizing contractual content.
|
||||
- Keep document text, comments, point discussions and completeness findings
|
||||
distinct; identify unavailable sections instead of filling them in.
|
||||
|
||||
## Changes
|
||||
|
||||
Restoring a revision or adding a contract comment/discussion point requires an
|
||||
explicit request and the exact document/point scope. Preserve the latest
|
||||
revision or conflict token where available, report the created comment or
|
||||
restored revision, and never present a draft as an approved contract.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: "SHD Terms and contracts"
|
||||
short_description: "Review revisions and contract completeness"
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,11 @@
|
||||
# Terms and contract contract
|
||||
|
||||
Read with `shd_list_terms_documents`, `shd_get_terms_document`,
|
||||
`shd_get_terms_document_completeness`, `shd_list_terms_document_revisions` and
|
||||
`shd_get_terms_document_revision`. Use `shd_terms_description_comment` and
|
||||
`shd_terms_point_discussion` only for explicit comment/discussion requests.
|
||||
|
||||
`shd_restore_terms_document_revision` is a mutation: resolve the document and
|
||||
revision, read current state, require confirmation and report readback. Never
|
||||
restore merely because an older revision looks cleaner, and never confuse
|
||||
completeness analysis with legal approval.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: shd-wiki-management
|
||||
description: Use when the user asks to search, read, compare, create or update SHD Wiki, notes, pages, collections, databases, revisions or attachments.
|
||||
---
|
||||
|
||||
# SHD Wiki and notes
|
||||
|
||||
## Read path
|
||||
|
||||
1. Resolve the note space and page tree with `shd_list_note_spaces`,
|
||||
`shd_get_note_space_tree` and `shd_list_note_pages`.
|
||||
2. Search with `shd_search_note_blocks`, then read the selected page with
|
||||
`shd_read_note_document` or `shd_get_note_page`.
|
||||
3. Use revision and operation tools to compare versions before proposing a
|
||||
replacement or restore.
|
||||
4. Keep attachments, backlinks, comments, database records and page content as
|
||||
separate objects in the report.
|
||||
|
||||
## Mutations
|
||||
|
||||
Creating, replacing, moving, archiving, deleting, importing, granting members
|
||||
or changing review state requires an exact explicit request. Read the current
|
||||
object first, preserve the latest revision/version and use the dedicated
|
||||
operation contract. Read back the persisted result after a successful write.
|
||||
|
||||
See `references/wiki-safety.md` for content and revision boundaries.
|
||||
@@ -0,0 +1,5 @@
|
||||
interface:
|
||||
display_name: SHD Wiki and notes
|
||||
short_description: Pages, revisions and note databases
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,7 @@
|
||||
# Wiki safety
|
||||
|
||||
- A search result is not the full page.
|
||||
- A revision diff is not a write proposal.
|
||||
- A replacement must preserve the selected page and revision identifiers.
|
||||
- Deleting a page, collection, database or attachment requires an exact target
|
||||
and the server's explicit confirmation fields.
|
||||
Reference in New Issue
Block a user