MCP
Tool catalog
Every MCP tool, grouped by DigitalStack capability. Each is labeled by whether its full path works today — no tool is shown as available unless you can actually run it.
Context & search
Ask a question, get an evidence-backed answer across your workspace.
DigitalStack help
digitalstack_helpShow what DigitalStack can do inside an MCP client: a capability guide and live status console covering version, connected modules, the kinds of questions that can be asked, example prompts by role, and what is coming next. Makes NO DigitalStack API call and returns no customer data, so it is safe to call at any time and needs no scope. For an actual answer about a customer or project, use query_context.
- Input
- No arguments.
- Output
- Capability guide and status console: version, connected modules, answerable question kinds, example prompts by role, and upcoming capabilities.
Try this
Query context (flagship)
query_contextAsk a question and receive an evidence-backed Operational Delivery Brief assembled live from Project Health and Project Risk authorities. Project IDs target one project; engagement IDs compose caller-visible projects; no ID means portfolio scope. Read-only. It does NOT retrieve uploaded documents, transcripts, decisions, assumptions, or requirements, and performs no semantic search.
- Scope
agent:read(required)- Input
- A question plus a preferred project_id, engagement_id, or customer_id for deterministic targeting. Omit IDs only for portfolio questions; subject/focus remain conversational fallbacks.
- Output
- A brief: summary, findings, risks, blockers, evidence, provenance. `provenance.generated_at` is assembly time; `freshness` reports source data-age (currently `unknown` — the operational adapters expose no observation timestamp); `truncation` is present only when a bounded collection was capped.
Try this
Search context evidence
search_contextSearch the Engagement Knowledge Corpus: ranked full-text retrieval of evidence spans from ingested Context Sources bound to an authorized project or engagement. Returns exact passages with provenance (source, page/paragraph/section, provenance quality, timestamps) — evidence, not a synthesized answer. It does NOT return project health or risks, does NOT synthesize decisions, and performs NO semantic/vector search (PostgreSQL full-text only). Project queries search directly-bound sources; engagement queries fan out to caller-visible child projects (direct engagement-bound sources are not yet supported). Read-only. This is the legacy Knowledge-only tool; for cross-domain Context Platform search across evidence, adopted definitions, and decisions in one call, use the platform-native search_unified_context tool.
- Scope
context-engine:read(required)- Input
- subject_ref { type: project|engagement, id } plus query, and optional include_parent_context, include_child_projects, source_types, occurred_after, occurred_before, limit, cursor.
- Output
- Ranked evidence spans (span text, source title/id, project binding, direct|child_project origin, page/paragraph/section, provenance quality, source timestamps, content/segmentation versions), plus explicit scope states, freshness, coverage, truncation, and a keyset continuation cursor.
- Related REST
- View endpoint
Try this
Search unified context
search_unified_contextCross-domain Context Platform search over the authorization-safe router. Searchable providers are Knowledge, Adoption, Decisions, Context Opportunities, and derived Context Concepts. Opportunity is advisory and included in the router’s bounded default; Concept is advisory, project-scoped, derived on read, and must be requested explicitly. Delivery, commitment snapshots, and relationships do not support search. Results include per-provider status, item authority, freshness, coverage, limitations, partial failure, and an opaque continuation cursor. Provider-local ordering; no global relevance score. Read-only.
- Scope
context-engine:read(required)- Input
- subject { type, id } plus query, and optional domains (knowledge|adoption|decision|opportunity|concept), kinds, include_evidence, occurred_after, occurred_before, limit, cursor. Omitted domains use the router’s bounded knowledge + delivery + decision + opportunity default; concept is never implicit.
- Output
- The unified envelope: subject, operation, outcome, per-provider status, results with kind/authority/evidence/version, aggregate + per-provider freshness and coverage, limitations, truncated, and an opaque continuation cursor.
- Related REST
- View endpoint
Try this
Get context projection
get_context_projectionRetrieve a named, registry-driven Context Platform projection for a subject. The only implemented public projection today is delivery.health (advisory delivery health and risk signals, with financial and staffing fields independently gated). Reserved projections (execution.*, decision.current/history, context.current_version/history) are planned and not callable. Read-only.
- Scope
context-engine:read(required)- Input
- subject { type, id } plus projection (currently delivery.health).
- Output
- The unified envelope with the projection result, provider status, freshness, coverage, and limitations.
- Related REST
- View endpoint
Try this
Get context object
get_context_objectRetrieve one context object by its namespaced, domain-owned id, within at least one explicit domain among adoption, decision, commitment (vSOW snapshots), relationship, opportunity, and concept. Opportunity records are advisory platform-owned objects; Concepts are advisory derived projections and are never persisted. The platform never searches every provider by raw id, never infers account or workspace from the input, and preserves non-oracle not-found behavior. Read-only.
- Scope
context-engine:read(required)- Input
- subject { type, id } plus object_id and at least one domain (adoption|decision|commitment|relationship|opportunity|concept), and optional include_evidence, include_history.
- Output
- The unified envelope with the retrieved object (or a non-oracle empty result), provider status, freshness, coverage, and limitations.
- Related REST
- View endpoint
Try this
List context objects
list_context_objectsList context objects for a subject within explicitly requested domains among adoption, decision, commitment (vSOW snapshots), relationship, opportunity, and concept. Opportunity records are advisory; Concepts are project-scoped derived projections. At least one explicit domain is required to avoid accidental broad fan-out. Pagination is provider-specific inside one opaque continuation cursor; ordering is deterministic but not a universal cross-domain chronology; lifecycle and history semantics remain provider-owned. Read-only.
- Scope
context-engine:read(required)- Input
- subject { type, id } plus at least one domain (adoption|decision|commitment|relationship|opportunity|concept), and optional kinds, include_history, occurred_after, occurred_before, limit, cursor.
- Output
- The unified envelope with the listed objects, provider status, freshness, coverage, limitations, truncated, and an opaque continuation cursor.
- Related REST
- View endpoint
Try this
Record context opportunity
record_context_opportunityRecord one Context Opportunity: an evidence-backed proposal that some governed domain (decision, requirement, commitment, definition, assumption, risk, architecture, execution, knowledge) may warrant an action. Advisory only — this tool does NOT approve a decision, does NOT change a requirement, does NOT update a commitment, and does NOT change a ticket or a sprint. It creates exactly one opportunity record; only a human, through the owning domain’s own workflow, can later approve, reject, or promote it. Idempotent: the same idempotency key with the same content is a safe no-op replay, never a duplicate.
- Scope
context-opportunity:write(required)- Input
- source { source_kind, source_id, source_system, actor { kind, id?, system? }, … } plus opportunity { opportunity_type, target_domain, proposed_operation, title, summary, … }, required privacy { visibility_classification, excerpt_permission }, and optional evidence[], relationships[], dedup { idempotency_key }.
- Output
- opportunity_id, lifecycle_state, idempotent_replay, recorded_at, and the opportunity’s own authority (always advisory).
- Related REST
- View endpoint
Coming to MCP
Search context opportunities
search_context_opportunitiesSearch Context Opportunities for a subject — evidence-backed, advisory proposals that some governed domain may warrant an action. The read partner of record_context_opportunity and a convenience over search_unified_context pre-scoped to the opportunity domain: same authorization-safe router and U7R.3 Opportunity Provider, returning per-item authority, lifecycle, target domain, proposed operation, source, evidence (subject to authorization), freshness, coverage, and an opaque continuation cursor. Opportunities are advisory — never an approved decision, requirement, commitment, or definition. Read-only.
- Scope
context-engine:read(required)- Input
- subject { type, id } plus query, and optional kinds, include_history, occurred_after, occurred_before, limit, cursor. The opportunity domain is fixed by the tool — no domains argument is needed.
- Output
- The unified envelope scoped to the opportunity provider: advisory opportunity items with authority/lifecycle/source/evidence, provider status, freshness, coverage, limitations, truncated, and an opaque continuation cursor.
- Related REST
- View endpoint
Coming to MCP
List recovered context (project discoveries)
list_recovered_contextList the Context Opportunities recovered for a project — the "project discoveries" from Bootstrap and other producers (discovered decisions, requirements, assumptions, risks, architecture findings, definitions, commitment impacts). Answers "what has this project learned?". Same authorization-safe router and U7R.3 Opportunity Provider; per-item type, target domain, proposed operation, lifecycle, confidence, source, evidence (subject to authorization), and an opaque cursor. Every item is advisory and pending review — present it distinctly from governed truth, never merged. Read-only.
- Scope
context-engine:read(required)- Input
- subject { type, id } plus optional include_history, limit, cursor. The list_objects operation and opportunity domain are fixed by the tool.
- Output
- The unified envelope scoped to the opportunity provider: advisory opportunity items with type/authority/lifecycle/confidence/source/evidence, provider status, freshness, coverage, limitations, truncated, and an opaque continuation cursor.
- Related REST
- View endpoint
Coming to MCP
Get Context Engine overview
get_context_engineRead Context Engine availability, package/provider counts, freshness posture, supported capabilities, and recent packages.
- Scope
context-engine:read(required)- Input
- Optional project_id or engagement_id; omit both for portfolio scope.
- Output
- Scoped overview, counts, freshness summary, capabilities, and recent packages.
- Related REST
- View endpoint
Try this
List context packages
list_context_packagesList governed context packages with evidence coverage, provenance, freshness, and provider attribution.
- Scope
context-engine:read(required)- Input
- Optional project_id or engagement_id plus limit, cursor, contribution_type, provider, and status filters.
- Output
- A bounded package collection and pagination metadata.
- Related REST
- View endpoint
Try this
Get context package
get_context_packageRetrieve one governed context package with canonical source reference, provenance, freshness, and coverage.
- Scope
context-engine:read(required)- Input
- A package_id.
- Output
- One governed context package.
- Related REST
- View endpoint
Try this
Search structured context
search_context_packagesSearch persisted context contributions without invoking arbitrary model execution.
- Scope
context-engine:read(required)- Input
- A query plus optional project_id or engagement_id and bounded filters.
- Output
- Scored package matches with provenance and freshness.
- Related REST
- View endpoint
Try this
Get context package evidence
get_context_package_evidenceRead policy-safe evidence references and provenance without exposing raw source bodies.
- Scope
context-engine:read(required)- Input
- A package_id.
- Output
- Evidence references, freshness, source capability, and provenance.
- Related REST
- View endpoint
Try this
List context providers
list_context_providersInspect provider capabilities, contribution counts, coverage, freshness, and authority boundaries.
- Scope
context-engine:read(required)- Input
- Optional project_id or engagement_id; omit both for portfolio coverage.
- Output
- Native and governed contribution provider descriptors for the selected scope.
- Related REST
- View endpoint
Try this
Today & My Work
Read a daily focus package and record explicit attention-item actions.
Get Today & My Work
get_today_my_workRead the caller’s daily focus package with an evidence-backed summary, attention items, related entities, coverage, and provenance.
- Scope
agent:read(required)- Input
- Optional daily-focus question; defaults to “What should I focus on today?”.
- Output
- A Context Package plus a typed Today & My Work view in metadata.
- Related REST
- View endpoint
Try this
Record Today attention-item action
record_today_attention_item_actionRecord an explicit resolve, dismiss, or snooze action for a Today & My Work attention item and emit the matching webhook event.
- Scope
agent:read(required)- Input
- Attention item id, action, optional note/snooze timestamp/context timestamp, and confirm=true.
- Output
- Accepted action status plus the emitted attention_item webhook event type.
- Related REST
- View endpoint
Try this
Projects
Enumerate projects and inspect a single project’s health.
List projects
list_projectsList the workspace’s projects (engagements) with client name, status, and last-updated time. Useful to enumerate work or resolve a project name to its id.
- Scope
agent:read(required)- Input
- Optional name query, status filter (active/archived/draft), and limit.
- Output
- Projects with client name, status, and last-updated timestamp.
Try this
Get project health
get_project_healthA one-call health snapshot for a project: delivery status, alerts, phase and milestone progress, workstream states, and directional financial/staffing signals (governed by your permissions).
- Scope
agent:read(required)- Input
- A project_id.
- Output
- Delivery status, alerts, phase/milestone progress, and directional signals.
- Related REST
- View endpoint
Try this
Acknowledge project health alert
acknowledge_project_health_alertRecord a confirmed acknowledgement for one advisory Project Health alert and emit project_health.alert_acknowledged.
- Scope
project-health:write(required)- Input
- project_id, alert_key, optional note, idempotency_key, and confirm=true.
- Output
- Acknowledgement command payload with event type and idempotency replay flag.
- Related REST
- View endpoint
Try this
List projects (public API)
list_projects_publicList visible canonical projects/engagements through the governed public API.
- Scope
projects:read(required)- Input
- Optional query, status, and limit.
- Output
- Project identity rows with lifecycle status and relationship ids.
- Related REST
- View endpoint
Try this
Get project
get_projectRetrieve one visible canonical project/engagement identity record.
- Scope
projects:read(required)- Input
- A project_id.
- Output
- Project identity, lifecycle status, and relationship ids.
- Related REST
- View endpoint
Try this
Create project
create_projectCreate one canonical project/engagement identity through a confirmed, idempotent command.
- Scope
projects:write(required)- Input
- Name, optional client identity fields, idempotency_key, and confirm=true.
- Output
- Project command payload with project, changed fields, event type, and replay status.
- Related REST
- View endpoint
Try this
Update project
update_projectUpdate bounded project identity and relationship fields.
- Scope
projects:write(required)- Input
- Project id, accepted identity fields, idempotency_key, and confirm=true.
- Output
- Project command payload with changed fields and project.updated event type.
- Related REST
- View endpoint
Try this
Update project status
update_project_statusRun one explicit project lifecycle status command.
- Scope
projects:write(required)- Input
- Project id, status, idempotency_key, and confirm=true.
- Output
- Project command payload with project.status_changed or project.archived event type.
- Related REST
- View endpoint
Try this
Archive project
archive_projectArchive one project through the explicit project lifecycle command path.
- Scope
projects:write(required)- Input
- Project id, idempotency_key, and confirm=true.
- Output
- Project command payload with project.archived event type.
- Related REST
- View endpoint
Try this
List project members
list_project_membersList governed project membership rows for one visible project.
- Scope
projects:read(required)- Input
- A project_id.
- Output
- Project members with user id and project-local role.
- Related REST
- View endpoint
Try this
Add project member
add_project_memberAdd one new project member through a confirmed command. Conflicts if the user is already a member; the subject must be an active member of the project account.
- Scope
projects:write(required)- Input
- Project id, user_id, optional role, idempotency_key, and confirm=true.
- Output
- Project command payload with the created member and project.member_added event type; 409 project_member_already_exists or 422 project_member_subject_not_eligible otherwise.
- Related REST
- View endpoint
Try this
Update project member
update_project_memberUpdate one project member role through a confirmed command. This is the only operation that changes an existing membership role.
- Scope
projects:write(required)- Input
- Project id, member id, role, idempotency_key, and confirm=true.
- Output
- Project command payload with member and project.member_updated event type.
- Related REST
- View endpoint
Try this
Remove project member
remove_project_memberRemove one project member through a confirmed command.
- Scope
projects:write(required)- Input
- Project id, member id, idempotency_key, and confirm=true.
- Output
- Project command payload with removed member and project.member_removed event type.
- Related REST
- View endpoint
Try this
Get project settings
get_project_settingsRead bounded public project settings.
- Scope
projects:read(required)- Input
- A project_id.
- Output
- Workflow, portal, AI, and ticket-prefix settings.
- Related REST
- View endpoint
Try this
Update project settings
update_project_settingsUpdate bounded project settings through a confirmed command.
- Scope
projects:write(required)- Input
- Project id, accepted settings fields, idempotency_key, and confirm=true.
- Output
- Project command payload with settings and project.settings_updated event type.
- Related REST
- View endpoint
Try this
Delivery & sprint intelligence
Sprint reports and work-item detail.
Get estimates, effort, and scope
get_estimates_scopeRead one governed estimate, or list estimates for a project, with scope, effort, role demand, risks, timeline, provenance, and immutable-baseline identity.
- Scope
estimates:read(required)- Input
- Exactly one of estimate_id or project_id.
- Output
- One estimate or a project-scoped estimate collection with allowed actions.
- Related REST
- View endpoint
Try this
Draft estimate or scope change
draft_estimates_scope_changePersist a reviewable estimate change proposal without mutating canonical estimate, staffing, schedule, or baseline state.
- Scope
estimates:write(required)- Input
- estimate_id, requested_outcome, proposed_changes, optional evidence_refs and expected_version, plus idempotency_key.
- Output
- A persisted, replay-safe draft proposal with version binding and provenance.
- Related REST
- View endpoint
Try this
Request estimate baseline review
request_estimates_scope_actionSubmit a confirmed draft proposal for human baseline review. The MCP tool cannot freeze, approve, sign, or supersede a baseline.
- Scope
estimates:operate(required)- Input
- estimate_id, proposal_id, expected_version, reason, idempotency_key, and confirm=true.
- Output
- Pending human-review request and durable event identity.
- Related REST
- View endpoint
Try this
Get sprint report
get_sprint_reportReport on a project’s active (or specified) sprint: goal, totals, work items by status, blocked items, and spillover risk.
- Scope
agent:read(required)- Input
- A project_id and optional sprint_id (defaults to the single active sprint; required if the project has more than one active sprint at once).
- Output
- Sprint goal, work items by status, blocked items, and spillover risk.
Try this
Get sprint planning
get_sprint_planningRead a project sprint-planning context and readiness score as a read-only projection.
- Scope
sprints:read(required)- Input
- A project_id.
- Output
- Planning payload, context projections, readiness score, criteria, and generated timestamp.
- Related REST
- View endpoint
Try this
Suggest sprint planning moves
suggest_sprint_planning_movesGenerate citation-gated planning intents for review. Proposal-only; it does not apply a plan or move work.
- Scope
sprints:read(required)- Input
- A project_id and confirm=true.
- Output
- Suggested planning intents, observations, readiness, computed timestamp, and webhook event type.
- Related REST
- View endpoint
Try this
Get delivery timeline
get_delivery_timelineRead governed delivery milestones and workstreams for one project without moving execution coordinates.
- Scope
delivery-timeline:read(required)- Input
- A project_id.
- Output
- Delivery milestones, workstreams, source-mode disclosure, and generated timestamp.
- Related REST
- View endpoint
Try this
List delivery milestones
list_delivery_milestonesList Delivery-owned milestones for one project with scoped work-item ids.
- Scope
delivery-timeline:read(required)- Input
- A project_id.
- Output
- Milestones with status, target date, progress, owner derivation, and scoped work-item ids.
- Related REST
- View endpoint
Try this
Get delivery milestone
get_delivery_milestoneRetrieve one governed Delivery milestone.
- Scope
delivery-timeline:read(required)- Input
- A milestone_id.
- Output
- Milestone detail with scoped work-item ids.
- Related REST
- View endpoint
Try this
List delivery workstreams
list_delivery_workstreamsList project workstreams through the execution read provider. Read-only in this slice.
- Scope
delivery-timeline:read(required)- Input
- A project_id.
- Output
- Workstreams with id, name, slug, status, and default flag.
- Related REST
- View endpoint
Try this
Update delivery milestone status
update_delivery_milestone_statusRun one confirmed governed milestone status command.
- Scope
delivery-timeline:write(required)- Input
- Milestone id, status, optional expected_updated_at/reason, idempotency_key, and confirm=true.
- Output
- Command payload with milestone, changed fields, emitted event type, and replay status.
- Related REST
- View endpoint
Try this
Update delivery milestone target date
update_delivery_milestone_target_dateRun one explicit milestone target-date command; does not resize phases or move work.
- Scope
delivery-timeline:write(required)- Input
- Milestone id, target_date, optional expected_updated_at/reason, idempotency_key, and confirm=true.
- Output
- Command payload with milestone, changed fields, emitted event type, and replay status.
- Related REST
- View endpoint
Try this
Update delivery milestone progress
update_delivery_milestone_progressRun one explicit milestone progress command for completion percentage and/or projected date.
- Scope
delivery-timeline:write(required)- Input
- Milestone id, completion_pct and/or projected_date, optional expected_updated_at/reason, idempotency_key, and confirm=true.
- Output
- Command payload with milestone, changed fields, emitted event type, and replay status.
- Related REST
- View endpoint
Try this
List work items
list_work_itemsRead canonical DigitalStack work items using board-safe filters such as team, sprint, parent, assignee, and status bucket. Use this to find the right work item before drilling in or running Work Item Enhance.
- Scope
work-items:read(required)- Input
- A required project_id, plus optional team_id, sprint_id, parent_id, assignee_user_id, status_bucket array, limit, and cursor (DS-592 — for retrieving results past the first page; the live dsmcp gateway tool schema does not yet expose this parameter, so only the REST endpoint can page past `limit` today).
- Output
- Canonical work items with identity, title, hierarchy, status bucket, sprint/team context, and assignee summary.
- Related REST
- View endpoint
Try this
Get work item board
get_work_item_boardRead the canonical DigitalStack work-item board grouped by status bucket. This is a read-only projection over Execute work items and does not move cards or mutate workflow state.
- Scope
work-items:read(required)- Input
- Optional team_id, sprint_id, assignee_user_id, status_bucket array, and limit.
- Output
- Board columns keyed by canonical status bucket with bounded work-item cards and counts.
- Related REST
- View endpoint
Try this
Get canonical work item
get_work_itemRead one source-aware Execute work item through the governed public Work Items API. Jira-backed reads hydrate authoritative description, discussion, people, hierarchy, and relationships without asking the model to infer missing facts.
- Scope
work-items:read(required)- Input
- A work_item_id (provider UUID or source key such as EA-1650) and the required project_id.
- Output
- Canonical identity plus source detail, bounded comments, parent and children, relationships, and capture states that distinguish absent data from data DigitalStack did not capture.
- Related REST
- View endpoint
Try this
List work item transitions
list_work_item_transitionsRead transition history for one canonical work item without changing status, ranking, or board placement.
- Scope
work-items:read(required)- Input
- A work_item_id and optional limit.
- Output
- Canonical transition records with from/to bucket, actor, source, note, and timestamp.
- Related REST
- View endpoint
Try this
Get work item operation context
get_work_item_operation_contextInspect the current version, allowed transitions, editable fields, and supported commands before an agent proposes a work-item operation.
- Scope
work-items:read(required)- Input
- A work_item_id.
- Output
- Operation context with version, allowed transitions, editable fields, and command support.
- Related REST
- View endpoint
Try this
Add work item comment
add_work_item_commentAdd an attributable comment after explicit confirmation. If the work item is Jira-backed, DigitalStack validates and passes the comment through to Jira. DS-40 (comment sub-scope) — a ticket-backed work item (the substrate every DS-native project uses) is fully supported: the comment writes to that project's own ticket_comments, not the canonical execute_work_item_comment table. `mentions` and `evidence_refs` are refused (422 capability_unsupported), not silently dropped, for a ticket-backed item — ticket_comments has neither column. Ticket #565C — attachments: the REST endpoint accepts an optional `attachments: [{ filename, mime_type, data_base64 }]` array (images only, 25MB/file), requires a work item backed by a native DigitalStack ticket (422 ATTACHMENTS_REQUIRE_NATIVE_TICKET otherwise, which today means every case — canonical execute_work_item items have never supported attachments) and a principal bound to a DigitalStack user (422 ATTACHMENTS_REQUIRE_USER_PRINCIPAL otherwise). The response includes `attachment_ids` when attachments were supplied; it does NOT include a separate `ticket_comment_id` — the created comment IS the ticket_comments row, not a mirror of one. The `attachments` parameter is not yet exposed by the live dsmcp tool schema — this doc overlay records the target contract for whoever updates that separate gateway service; it is not something this repo can change.
- Scope
work-items:comment(required)- Input
- work_item_id, body, optional mentions/evidence refs/attachments, expected_version, confirm=true, and idempotency_key.
- Output
- Created comment, updated work-item summary, webhook event type, source writeback result, and (attachment-bearing calls only) attachment_ids.
- Related REST
- View endpoint
Try this
Transition work item status
transition_work_item_statusApply one allowed Execute flow-state transition after confirmation. Jira-backed work items pass the mapped transition through to Jira.
- Scope
work-items:transition(required)- Input
- work_item_id, to_state_id, optional provider_transition_id/note, expected_version, confirm=true, and idempotency_key.
- Output
- Updated work item, transition record, webhook event type, and source writeback result.
- Related REST
- View endpoint
Try this
Assign work item
assign_work_itemAssign, reassign, or unassign a work item after confirmation, with Jira pass-through for Jira-backed work items.
- Scope
work-items:assign(required)- Input
- work_item_id, assignee_user_id or null, expected_version, confirm=true, and idempotency_key.
- Output
- Updated work-item assignment, webhook event type, and source writeback result.
- Related REST
- View endpoint
Try this
Update work item dates
update_work_item_datesSet or clear start, due, target, sprint, or ordering fields through the scheduling command boundary. Jira due-date writeback is supported when mapped.
- Scope
work-items:schedule(required)- Input
- work_item_id, date/sprint patch, expected_version, confirm=true, and idempotency_key.
- Output
- Updated dates, changed fields, webhook event type, and source writeback result.
- Related REST
- View endpoint
Try this
Update work item estimate
update_work_item_estimateSet or clear work-item points after confirmation. Jira-backed estimates require a configured story-points field mapping.
- Scope
work-items:estimate(required)- Input
- work_item_id, points or null, expected_version, confirm=true, and idempotency_key.
- Output
- Updated estimate, webhook event type, and source writeback result.
- Related REST
- View endpoint
Try this
Update work item labels
update_work_item_labelsAdd, remove, or replace normalized labels after confirmation. Jira-backed labels are passed through to Jira.
- Scope
work-items:link(required)- Input
- work_item_id, labels/add/remove, expected_version, confirm=true, and idempotency_key.
- Output
- Updated labels, webhook event type, and source writeback result.
- Related REST
- View endpoint
Try this
Link work item dependency
link_work_item_dependencyCreate a dependency or relationship after validating target visibility and cycles.
- Scope
work-items:link(required)- Input
- work_item_id, target_work_item_id, relationship, expected_version, confirm=true, and idempotency_key.
- Output
- Created dependency, webhook event type, and affected work-item summary.
- Related REST
- View endpoint
Try this
Manage work item blocker
manage_work_item_blockerRaise, update, transition, or resolve a blocker linked to a work item after confirmation.
- Scope
work-items:blockers(required)- Input
- work_item_id, action, blocker fields, expected_version, confirm=true, and idempotency_key.
- Output
- Blocker state, webhook event type, and affected work-item summary.
- Related REST
- View endpoint
Try this
Update work item focus
update_work_item_focusPin, reprioritize, snooze, annotate, or clear a work item in focus views without mutating authoritative schedule or staffing.
- Scope
work-items:focus(required)- Input
- work_item_id, action, priority/reason/notes/expires_at, confirm=true, and idempotency_key.
- Output
- Focus record, webhook event type, and affected work-item summary.
- Related REST
- View endpoint
Try this
Attach an engineering link to a work item
create_development_linkAttach a commit, pull request, branch, deployment, release, build, or evidence reference to a work item through the same governed path as the app’s "Add Link" action. Refuses a duplicate (same provider + artifact_type + external_ref) with a conflict rather than creating a second link. Not idempotent by key — there is no replay ledger on this endpoint; duplicate protection is the refusal itself, so a retry after a successful call is refused, not replayed. Distinct from link_work_item_dependency, which links work item to work item, not work item to external artifact.
- Scope
work-items:link(required)- Input
- work_item_id, artifact_type, repository_full_name, external_ref, optional external_url/title/provider_key/link_method, and confirm=true. No idempotency_key.
- Output
- The created development link: id, provider, repository, artifact type, external ref/url, title, and link method.
- Related REST
- View endpoint
Try this
Claim next work item
claim_next_work_itemAtomically reserve the highest-priority claimable work item in a project under a time-bound lease, so two concurrent agents are never handed the same item. Candidates are not_started and ready items only — never blocked, and never a container — ordered critical, high, medium, low, then oldest first. A ticket with live children is a container: claiming one would reserve a folder rather than work, so parents are excluded structurally (by having children, not by declared type). `backlog` is deliberately out of scope as the unrefined pool, so a critical item sitting in backlog is a signal to refine it rather than an empty queue. A claim is a transient agent reservation, NOT an assignment: it never sets or clears the assignee. An expired lease is automatically reclaimable, so a crashed agent’s item returns to the pool without operator intervention. Deliberately not idempotent — two calls should return two different items.
- Scope
work-items:assign(required)- Input
- project_id, claim_owner (an agent or session identifier, 200 characters or fewer), and optional lease_seconds (default 900, maximum 3600).
- Output
- The claimed work item with id, key, title, status, priority, project, claim owner, claimed_at, and claim_expires_at — or claimed: null when the queue is empty, which is a normal empty result and not an error.
- Related REST
- View endpoint
Try this
Renew work item claim
renew_work_item_claimExtend a lease the caller still holds, for an agent whose unit of work outlives the original lease window. Holder-only: a non-holder extending someone else’s lease would be a silent steal, so a non-holder or already-expired lease is a conflict rather than a quiet no-op.
- Scope
work-items:assign(required)- Input
- work_item_id, the same claim_owner that holds the lease, and optional lease_seconds (default 900, maximum 3600).
- Output
- The renewed claim with its new claim_expires_at, or a claim_not_held conflict when the caller is not the holder or the lease already expired.
- Related REST
- View endpoint
Try this
Release work item claim
release_work_item_claimGive up a claim the caller holds, returning the work item to the claimable pool immediately rather than at lease expiry. Releasing a claim you do not hold is reported rather than swallowed, because an agent that believes it released will not retry.
- Scope
work-items:assign(required)- Input
- work_item_id and the same claim_owner that holds the lease.
- Output
- released: true with the work-item id, or a claim_not_held conflict when the caller does not hold the claim.
- Related REST
- View endpoint
Try this
Create work item
create_work_itemCreate a work item through the source provider bound to the project, converging on the same create path as the DigitalStack UI and the public REST and GraphQL surfaces. NOT idempotent: DigitalStack does not deduplicate creates by a caller-supplied key, so a retry after a network failure may create a second item. Confirm before calling.
- Scope
work-items:write(required)- Input
- project_id, title, confirm=true, and optional description, kind (story/task/bug/epic/subtask/spike, anything else maps to custom), parent_id, sprint_id, assignee_user_id, labels, points, and due_date.
- Output
- The created work item, immediately visible to get_work_item and list_work_items.
Try this
Reparent work item
reparent_work_itemSet or clear a work item’s parent. DS-native items are validated against the same rules the DigitalStack UI enforces: no self-parent, parent must be in the same project and workstream, no circular reference, and a maximum nesting depth of 2 (three-level trees). A null parent clears it.
- Scope
work-items:link(required)- Input
- work_item_id, parent_ticket_id (or null to clear), idempotency_key, confirm=true, and optional expected_version.
- Output
- The reparented work item with its new parent, or a validation error naming the rule that rejected it.
Try this
Get work item execution
get_work_item_executionAnswer "what has already happened against this ticket?" without reconstructing it from Jira, GitHub, or a previous conversation. Returns whether execution started, which session is active and its state, the latest and recent structured activity with who performed it, Launch Package availability and freshness, prior attempts, and the actions available to the caller. Read this BEFORE starting execution to discover work already in progress. A summary whose source does not exist yet is returned as explicitly unavailable with the milestone that will supply it, never as zero.
- Scope
execution:read(required)- Input
- work_item_id (uuid or key) and project_id.
- Output
- Execution state, active session, recent attributed activity, Launch Package availability and freshness, prior attempts, and available actions.
Try this
Create delivery milestone
create_delivery_milestoneCreate a governed Delivery milestone for a project. Requires an acting user: session and delegated OAuth callers are attributed as the creator, and API-key callers are refused, since a key identifies no caller.
- Scope
delivery-timeline:write(required)- Input
- project_id, title, idempotency_key, confirm=true, and optional status, target_date, projected_date, completion_pct, commitment_id, vsow_package_id, and metadata.
- Output
- The created milestone with its attributed creator.
Try this
Assign work item to milestone
assign_work_item_milestoneAdd one work item into a governed Delivery milestone’s scope. Requires an acting user: session and delegated OAuth callers are attributed as who added it, and API-key callers are refused, since a key identifies no caller.
- Scope
delivery-timeline:write(required)- Input
- milestone_id, item_type, source_item_id, idempotency_key, confirm=true, and optional source_system, source_item_key, source_item_title, source_item_url, and notes.
- Output
- The updated milestone scope with the added item and its attribution.
Try this
Start or resume execution
start_or_resume_executionBegin a durable execution session for a work item, or rejoin the existing live one. At most one live session exists per work item, so calling again RESUMES rather than creating a rival session — safe to use when reconnecting or when unsure whether work already started. Records execution state only: it advances no phase, approves nothing, and touches no provider.
- Scope
execution:write(required)- Input
- project_id, work_item_id, intent (the outcome being pursued, not the steps), and optional title and idempotency_key.
- Output
- The session, whether it was created or resumed, the current Launch Package state, and the actions the caller is authorized to take next.
Try this
Get Launch Package
get_launch_packageRetrieve the canonical launch context for an execution session: mission, work item, acceptance criteria, execution state, the next authorized action, required outputs, applicable policies, and supporting context. Read this before starting work rather than assembling context by hand. Every section carries its own provenance and freshness, and a structured reason when absent — a section marked `filtered` exists but is outside the caller’s access, while `empty` genuinely has nothing. An absent section never means "nothing to know". Does not recompose; use refresh_launch_package for that.
- Scope
execution:read(required)- Input
- session_id, and optional revision to read an earlier immutable package revision.
- Output
- The Launch Package for that revision, each section carrying provenance, freshness, and an explicit reason when absent.
Try this
Refresh Launch Package
refresh_launch_packageRecompose the Launch Package and append a NEW immutable revision. Prior revisions are never modified, so what an actor was previously given stays auditable. Use when resuming after a gap, or when the surrounding context is believed to have changed. A partial composition is returned honestly with its warnings rather than as an error.
- Scope
execution:write(required)- Input
- session_id, and optional idempotency_key and expected_revision (which fails with stale_revision rather than composing against unseen state).
- Output
- The new package revision with any composition warnings.
Try this
Get execution Understanding
get_execution_understandingRead the Cognitive Runtime state for an execution session: the current Understanding summary and version, its review state, every version in history, the open and blocking questions, and the actions this caller may take. Understanding is what an actor ASSERTS they understood the work to be, which is distinct from the Launch Package, which is what the system knows. Content the caller may not see is returned marked `filtered`, never omitted: a filtered field is withheld, not absent.
- Scope
execution:read(required)- Input
- session_id.
- Output
- Current Understanding and version, review state, version history, open and blocking questions, and caller-available actions.
Try this
Materialize Understanding
materialize_understandingCreate or wholly replace the session’s Understanding draft. WHOLE-CONTENT AND ATOMIC: there is no patch or autosave tool, and a revision is a new version rather than an edit. Facts and assumptions are SEPARATE fields and every known fact must carry a citation — an uncited claim belongs in assumptions. From version 2 onward a proposed_revision_impact is stated, but DigitalStack independently computes an enforced minimum from structural change and a proposal cannot lower it. The returned fingerprint and enforced impact are the server’s.
- Scope
execution:write(required)- Input
- session_id, requested_outcome, acceptance_criteria_interpretation, and optional known_facts (each with citations), assumptions, constraints, dependencies, risks, affected_boundaries, evidence_references, open_question_ids, proposed_revision_impact, and idempotency_key.
- Output
- The new Understanding version with the server-computed content fingerprint, the enforced revision impact, and which detectors fired.
Try this
Get Understanding version
get_understanding_versionRead one exact, immutable Understanding version with its structured content, its content fingerprint, the impact its author proposed, the minimum the system enforced and which detectors fired, its contributors, and its submission and review attribution. The fingerprint returned here is what a human reviewer’s decision binds to.
- Scope
execution:read(required)- Input
- session_id and version (versions start at 1 and never restart).
- Output
- That exact version’s content, fingerprint, proposed and enforced impact, detectors fired, contributors, and attribution.
Try this
Submit Understanding
submit_understandingFreeze a draft for review. After this the version’s content, authorship, and enforced impact are immutable, and the previous version is superseded. Submitting does NOT accept the Understanding — a human must still review it. A replayed submit returns the already-submitted version rather than failing.
- Scope
execution:write(required)- Input
- session_id, version, and optional idempotency_key.
- Output
- The frozen version, or the already-submitted version on replay.
Try this
Request Understanding review
request_understanding_reviewAsk for a HUMAN to review an exact submitted version. This is the agent’s move: it requests that a human act and cannot perform the act. It changes no state (a submitted version is already reviewable) and it neither accepts nor notifies. Accepting, rejecting, or requesting changes requires an interactive human session in DigitalStack and is unavailable to any credential, whatever its scopes.
- Scope
execution:write(required)- Input
- session_id, version, and content_fingerprint — the fingerprint of the version actually read, which binds the request to that exact content and refuses if the version moved.
- Output
- The recorded review request, or a refusal when the fingerprint no longer matches.
Try this
List execution questions
list_execution_questionsList the durable open questions for an execution session, with counts in meta. Questions are PLURAL by design: there is no single "current question", because a session with three unresolved things does not have one. What a question ASKS is immutable; only its answer advances.
- Scope
execution:read(required)- Input
- session_id.
- Output
- Open questions with their priority and evidence, plus counts in meta.
Try this
Raise execution question
raise_execution_questionRecord a durable question against an execution session. What a question ASKS — its text, evidence, origin, and attribution — is immutable once raised; only its answer advances. A blocking question does not prevent an Understanding being submitted or accepted: an artifact whose job is to record what is unresolved would be self-defeating if unresolved questions blocked recording it.
- Scope
execution:write(required)- Input
- session_id, question, and optional priority (blocking/important/informational, default important), evidence_refs, and raised_on_version for provenance.
- Output
- The recorded question with its immutable text, priority, and attribution.
Try this
Resolve execution question
resolve_execution_questionAnswer or withdraw a question. Accepts ONLY resolution fields: the original question text, its evidence, its attribution, and its PRIORITY are not reachable here, so answering can never rewrite what was asked. Changing a question’s priority is a separate, separately audited act performed by a human in DigitalStack. resolution_impact is distinct from priority — a blocking question can resolve immaterial when the answer confirms what was assumed. Replaying the same outcome is stable; a different outcome is a conflict.
- Scope
execution:write(required)- Input
- session_id, question_id, outcome (answer or withdraw, default answer), and when answering, resolution and resolution_impact plus optional resolution_evidence_refs.
- Output
- The resolved question with its answer and resolution impact, or a conflict when replayed with a different outcome.
Try this
Get work item detail
get_work_item_detailDetail on a single work item: description excerpt, status, assignee, parent/children, open blockers, and recent status transitions.
- Scope
agent:read(required)- Input
- A work_item_id.
- Output
- Work item detail, blockers, and recent status transitions.
Try this
List Work Item Enhance runs
list_work_item_enhancement_runsList proposal-first enhancement runs by target work item and state.
- Scope
work-item-enhance:read(required)- Input
- Optional target_work_item_id, state, and limit.
- Output
- Enhancement runs with target, state, drafts, artifacts, and allowed next actions.
- Related REST
- View endpoint
Try this
Enhance work item
enhance_work_itemCreate a proposal-first Work Item Enhance run with selected actions such as requirements, description, design, implementation plan, acceptance criteria, test plan, estimate, and risk check.
- Scope
work-item-enhance:run(required)- Input
- Work-item id, selected actions, optional instructions, idempotency key, and confirm=true.
- Output
- Persisted enhancement run with drafts, artifacts, evidence references, and allowed next actions.
- Related REST
- View endpoint
Try this
Get Work Item Enhance run
get_work_item_enhancement_runRetrieve one Work Item Enhance run with target, requested actions, drafts, artifacts, allowed actions, and apply history.
- Scope
work-item-enhance:read(required)- Input
- Enhancement run id.
- Output
- One enhancement run with proposal artifacts and allowed next actions.
- Related REST
- View endpoint
Try this
Get Work Item Enhance operation status
get_work_item_enhancement_operationRead the operation-style status view for a Work Item Enhance run.
- Scope
work-item-enhance:read(required)- Input
- Enhancement run / operation id.
- Output
- Operation status, target summary, counts, and allowed next actions.
- Related REST
- View endpoint
Try this
Run Work Item Enhance action
run_work_item_enhancement_actionRun any allowlisted action on an existing enhancement run, such as code context, implementation plan, acceptance criteria, test plan, estimate, or risk check.
- Scope
work-item-enhance:run(required)- Input
- Enhancement run id, action, optional instructions, idempotency key, and confirm=true.
- Output
- Updated enhancement run with generated drafts/artifacts.
- Related REST
- View endpoint
Try this
Draft work item requirements
draft_work_item_requirementsRun the requirements action on an existing enhancement run and return generated field-level drafts for review.
- Scope
work-item-enhance:run(required)- Input
- Enhancement run id, optional instructions, idempotency key, and confirm=true.
- Output
- Updated enhancement run containing requirement-oriented drafts.
- Related REST
- View endpoint
Try this
Draft work item description
draft_work_item_descriptionRun the description action on an existing enhancement run and return a clearer work-item description draft.
- Scope
work-item-enhance:run(required)- Input
- Enhancement run id, optional tone/template instructions, idempotency key, and confirm=true.
- Output
- Updated enhancement run containing a description draft.
- Related REST
- View endpoint
Try this
Draft work item design
draft_work_item_designRun the design action and return an advisory design artifact without changing the work item.
- Scope
work-item-enhance:run(required)- Input
- Enhancement run id, optional architecture constraints, idempotency key, and confirm=true.
- Output
- Updated enhancement run containing a design artifact.
- Related REST
- View endpoint
Try this
Inspect work item code context
inspect_work_item_code_contextRead generated code-context artifacts for a Work Item Enhance run: likely files, likely tests, implementation areas, missing context, and guardrails.
- Scope
work-item-enhance:code-context(required)- Input
- Enhancement run id.
- Output
- Read-only code-context artifact summaries, file/test candidates, evidence references, and connector gaps.
- Related REST
- View endpoint
Try this
List Work Item Enhance drafts
list_work_item_enhancement_draftsList generated field-level drafts for a run, optionally filtered by action, field, or apply eligibility.
- Scope
work-item-enhance:read(required)- Input
- Enhancement run id, optional action, field, and apply_eligible filter.
- Output
- Generated drafts with proposed values, confidence, evidence references, and apply eligibility.
- Related REST
- View endpoint
Try this
List Work Item Enhance artifacts
list_work_item_enhancement_artifactsList generated review artifacts for a run, optionally filtered by artifact type.
- Scope
work-item-enhance:read(required)- Input
- Enhancement run id and optional artifact type.
- Output
- Generated artifacts such as design notes, code context, implementation plans, and test plans.
- Related REST
- View endpoint
Try this
Prepare Work Item Enhance apply
prepare_work_item_enhancement_applyRead selected drafts and prepare the field-level apply preview. The actual apply remains an explicit confirmed REST command.
- Scope
work-item-enhance:apply(required)- Input
- Enhancement run id and selected draft ids.
- Output
- Draft field diffs, target version, required scope, and conflict notes for user confirmation.
- Related REST
- View endpoint
Try this
Apply Work Item Enhance drafts
apply_work_item_enhancement_draftsApply selected reviewed drafts to the canonical work item using explicit confirmation, optimistic target versioning, and idempotency.
- Scope
work-item-enhance:apply(required)- Input
- Enhancement run id, selected draft ids, expected target version, idempotency key, and confirm=true.
- Output
- Updated enhancement run with applied draft ids and target version.
- Related REST
- View endpoint
Try this
Risks & decisions
Aggregated risks, blockers, and dependencies.
Get risks and blockers
get_risks_and_blockersAggregated risk picture for a project: delivery alerts, client-dependency blocks, and open risk/gap/request issues, with a coverage block.
- Scope
agent:read(required)- Input
- A project_id and optional severity floor.
- Output
- Delivery alerts, client-dependency blocks, and open risks with coverage.
Try this
Time Management
Review, draft, record, submit, and approve time through governed commands.
List time entries
list_time_entriesList the caller’s self-scoped canonical time entries by date range, project, status, and limit.
- Scope
time:read_self(required)- Input
- Optional start, end, project_id, status, and limit.
- Output
- Canonical self-owned time entries without raw activity evidence or rates.
- Related REST
- View endpoint
Try this
Get time entry
get_time_entryRead one self-scoped canonical time entry.
- Scope
time:read_self(required)- Input
- Time entry id.
- Output
- One canonical time entry without raw activity evidence or rates.
- Related REST
- View endpoint
Try this
Update time entry
update_time_entryUpdate one editable self-scoped time entry with optimistic versioning and explicit confirmation.
- Scope
time:write_self(required)- Input
- Entry id, expected version, optional editable fields, and confirm=true.
- Output
- Updated canonical time entry.
- Related REST
- View endpoint
Try this
Void time entry
void_time_entryVoid one editable self-scoped time entry with optimistic versioning and explicit confirmation.
- Scope
time:write_self(required)- Input
- Entry id, expected version, and confirm=true.
- Output
- Voided entry id, status, and version.
- Related REST
- View endpoint
Try this
Get timer
get_timerRead the caller’s current canonical timer, if any.
- Scope
time:read_self(required)- Input
- No input.
- Output
- Current timer state, elapsed seconds, attribution, and version, or null.
- Related REST
- View endpoint
Try this
Get my time day
get_my_dayRead the caller's privacy-safe work day, including entries, attributed sessions, conflicts, gaps, timer, draft, totals, and submission state.
- Scope
time:read_self(required)- Input
- Optional workspace-local date; defaults to today in the workspace timezone.
- Output
- A bounded, self-scoped day view without rates or raw activity evidence.
- Related REST
- View endpoint
Try this
Draft today's time
draft_today_timePersist a proposal from fully attributed DigitalStack work sessions. Conflicts and unresolved evidence remain gaps; no actual time is created.
- Scope
time:write_self(required)- Input
- Optional workspace-local date.
- Output
- A versioned draft with proposed blocks, evidence references, and unresolved sessions.
- Related REST
- View endpoint
Try this
Apply a reviewed time draft
apply_time_draftApply a reviewed proposal to canonical entries with optimistic versioning, idempotency, and explicit confirmation.
- Scope
time:write_self(required)- Input
- Draft id, expected version, idempotency key, and confirm=true.
- Output
- The applied draft and canonical entry ids.
- Related REST
- View endpoint
Try this
Log explicit time
log_timeRecord one user-supplied time entry. It cannot silently convert inferred activity into an actual.
- Scope
time:write_self(required)- Input
- Date, duration, category, optional attribution and notes, idempotency key, and confirm=true.
- Output
- The canonical self-owned entry.
- Related REST
- View endpoint
Try this
Start timer
start_timerStart the caller's single canonical timer for an explicit target.
- Scope
time:write_self(required)- Input
- Category, optional project/work item, and confirm=true.
- Output
- The running canonical timer.
- Related REST
- View endpoint
Try this
Pause timer
pause_timerPause the caller’s active canonical timer with optimistic versioning and explicit confirmation.
- Scope
time:write_self(required)- Input
- Expected timer version and confirm=true.
- Output
- Paused timer state.
- Related REST
- View endpoint
Try this
Resume timer
resume_timerResume the caller’s paused canonical timer with optimistic versioning and explicit confirmation.
- Scope
time:write_self(required)- Input
- Expected timer version and confirm=true.
- Output
- Running timer state.
- Related REST
- View endpoint
Try this
Stop timer
stop_timerAtomically stop the active timer and create exactly one draft entry.
- Scope
time:write_self(required)- Input
- Expected timer version, idempotency key, optional final fields, and confirm=true.
- Output
- The stopped timer result and created entry.
- Related REST
- View endpoint
Try this
Discard timer
discard_timerDiscard the caller’s active or paused canonical timer without creating a time entry.
- Scope
time:write_self(required)- Input
- Expected timer version and confirm=true.
- Output
- Discard result with replay metadata.
- Related REST
- View endpoint
Try this
Submit time day
submit_timesheetValidate and submit one reviewed work day into the canonical approval lifecycle.
- Scope
time:submit_self(required)- Input
- Optional date, idempotency key, and confirm=true.
- Output
- Submission state and validation result.
- Related REST
- View endpoint
Try this
Recall time day
recall_timesheetRecall one submitted work day while policy permits, using explicit confirmation.
- Scope
time:submit_self(required)- Input
- Optional date and confirm=true.
- Output
- Recalled day state and timestamp.
- Related REST
- View endpoint
Try this
List time approvals
list_time_approvalsList eligible team time approvals for the authenticated reviewer.
- Scope
time:read_team(required)- Input
- Optional status filter.
- Output
- Eligible approval records only.
- Related REST
- View endpoint
Try this
Decide time approval
decide_time_approvalApprove or reject an eligible submission as the authenticated human approver.
- Scope
time:approve_team(required)- Input
- Approval id, approve/reject decision, rejection reason when required, and confirm=true.
- Output
- The durable approval decision and resulting submission state.
- Related REST
- View endpoint
Try this
List time imports
list_time_importsList governed provider time import runs for authorized administrators.
- Scope
time:import(required)- Input
- No input.
- Output
- Provider import runs and statuses.
- Related REST
- View endpoint
Try this
Create time import
create_time_importCreate a governed provider time import run with date range, idempotency, and explicit confirmation.
- Scope
time:import(required)- Input
- Provider, date_from, date_to, idempotency key, and confirm=true.
- Output
- Import run result and replay metadata.
- Related REST
- View endpoint
Try this
List time reconciliation findings
list_time_reconciliation_findingsList governed provider reconciliation findings without exposing raw provider payloads or financial rates.
- Scope
time:reconcile(required)- Input
- Optional status, date_from, date_to, and limit.
- Output
- Reconciliation findings and status metadata.
- Related REST
- View endpoint
Try this
Scan time reconciliation
scan_time_reconciliationRun a reconciliation scan for a date range. It records findings only and does not mutate approved entries.
- Scope
time:reconcile(required)- Input
- date_from, date_to, and confirm=true.
- Output
- Reconciliation scan result.
- Related REST
- View endpoint
Try this
Resolve time reconciliation finding
resolve_time_reconciliation_findingResolve one reconciliation finding through DigitalStack policy with explicit confirmation.
- Scope
time:reconcile(required)- Input
- Finding id, resolution action, and confirm=true.
- Output
- Resolution result.
- Related REST
- View endpoint
Try this