Platform operation catalog
Ownership, permissions, commands, MCP tools and explicit handoff boundaries.
Ownership, permissions, commands, MCP tools and explicit handoff boundaries.
Every registered platform operation, including explicit repository-owned and human handoff boundaries. CLI and MCP availability are separate fields; absence never authorizes a private API workaround.
{
"opKey": "plan.create",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the plan with `fs.plan()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "plan.update",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the plan's new shape with `fs.plan()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "plan.delete",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the removal (delete the `fs.plan()` call) in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "plan.read",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "read",
"permission": "plan:read",
"targetKind": "business",
"scope": [
"plan:read"
],
"cliCommand": "farthershore plan list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_plan_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "plan.variant.create",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the plan variant with `fs.plan()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "plan.promote",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the promoted plan version in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "plan.rollback",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "plans",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the prior plan shape (revert the commit) in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "route.define",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "routes",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the route with `fs.route()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "gateway.config",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "gateway",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the gateway block on `fs.business()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "auth_strategy.update",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "gateway",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the auth strategy on `fs.business()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "rate_limit.update",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "gateway",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the limits on the plan or route in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "meter.define",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "metering",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the meter with `fs.meter()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "backend.define",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "backends",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the backend with `fs.backend()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "business.contract_field.update",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "businesses",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "repo_authored",
"unavailableDetail": "Declare the field (name / meters / subscriberChangePolicy) on `fs.business()` in the business repo's business/ folder and push — the platform applies it.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "rbac.read",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "products",
"sideEffect": "read",
"permission": "rbac:read",
"targetKind": "business",
"scope": [
"rbac:read"
],
"cliCommand": "farthershore business rbac",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "organization",
"scope": [
"business:read"
],
"cliCommand": "farthershore business list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.status",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "business",
"scope": [
"business:read"
],
"cliCommand": "farthershore business status",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_status",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "funding.top_up.purchase",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "funding",
"sideEffect": "write",
"permission": null,
"targetKind": null,
"scope": [],
"cliCommand": null,
"unavailableReason": "subscriber_portal",
"unavailableDetail": "POST /portal/businesses/:businessId/me/balance-top-up — a signed-in subscriber with invoice:pay starts Stripe Checkout from its own portal. Use the public Frontend SDK fs.core() handoff documented in /cookbook/prepaid-credits; builder CLI and MCP credentials cannot act as the subscriber.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "apply_timeline.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "change-sets",
"sideEffect": "read",
"permission": "apply_timeline:read",
"targetKind": "business",
"scope": [
"apply_timeline:read"
],
"cliCommand": "farthershore apply-timeline list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "apply_timeline.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "change-sets",
"sideEffect": "read",
"permission": "apply_timeline:read",
"targetKind": "business",
"scope": [
"apply_timeline:read"
],
"cliCommand": "farthershore apply-timeline inspect",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "change_set.propose",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "change-sets",
"sideEffect": "write",
"permission": "change_set:propose",
"targetKind": "business",
"scope": [
"change_set:propose"
],
"cliCommand": "farthershore proposal create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_proposal_create",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "proposal list, then proposal get",
"preview": true,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "change_set.preview",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "change-sets",
"sideEffect": "write",
"permission": "change_set:propose",
"targetKind": "business",
"scope": [
"change_set:propose"
],
"cliCommand": "farthershore proposal preview",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_proposal_preview",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "proposal get",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "change_set.proposal_list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "change-sets",
"sideEffect": "read",
"permission": "change_set:read",
"targetKind": "business",
"scope": [
"change_set:read"
],
"cliCommand": "farthershore proposal list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_proposal_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "change_set.proposal_read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "change-sets",
"sideEffect": "read",
"permission": "change_set:read",
"targetKind": "business",
"scope": [
"change_set:read"
],
"cliCommand": "farthershore proposal get",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_proposal_get",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:delete",
"targetKind": "business",
"scope": [
"business:delete"
],
"cliCommand": "farthershore business delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "business list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "business.config_attempts.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "business",
"scope": [
"business:read"
],
"cliCommand": "farthershore business config-attempts",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.subdomain_availability.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "organization",
"scope": [
"business:read"
],
"cliCommand": "farthershore business subdomain-check",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_subdomain_check",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "frontend.status",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "frontend",
"sideEffect": "read",
"permission": "frontend:read",
"targetKind": "business",
"scope": [
"frontend:read"
],
"cliCommand": "farthershore frontend status",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_frontend_status",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "frontend.rollback",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "frontend",
"sideEffect": "write",
"permission": "frontend:rollback",
"targetKind": "business",
"scope": [
"frontend:rollback"
],
"cliCommand": "farthershore frontend rollback",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_frontend_rollback",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "frontend status",
"preview": true,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "webhook.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "read",
"permission": "webhook:read",
"targetKind": "business",
"scope": [
"webhook:read"
],
"cliCommand": "farthershore webhook list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "webhook.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:create",
"targetKind": "business",
"scope": [
"webhook:create"
],
"cliCommand": "farthershore webhook create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_create",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "webhook list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "webhook.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:update",
"targetKind": "business",
"scope": [
"webhook:update"
],
"cliCommand": "farthershore webhook update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_update",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "webhook list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "webhook.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:delete",
"targetKind": "business",
"scope": [
"webhook:delete"
],
"cliCommand": "farthershore webhook delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_delete",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "webhook list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "webhook.test",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:test",
"targetKind": "business",
"scope": [
"webhook:test"
],
"cliCommand": "farthershore webhook test",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_test",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "webhook deliveries",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "webhook.trigger",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:test",
"targetKind": "business",
"scope": [
"webhook:test"
],
"cliCommand": "farthershore webhook trigger",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "webhook deliveries",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "webhook.listen",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:create",
"targetKind": "business",
"scope": [
"webhook:create"
],
"cliCommand": "farthershore webhook listen",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "no_automatic_retry",
"keyRequired": false,
"enforcement": "reconcile_before_repeat",
"responseSemantics": "outcome_may_be_unknown",
"reconcile": "stop the listener and inspect webhook deliveries",
"preview": false,
"rationale": "The request can cause an externally observable effect that cannot be made safe by response replay alone. Reconcile before deciding whether to dispatch a new action."
}
}
{
"opKey": "webhook.rotate_secret",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "write",
"permission": "webhook:update",
"targetKind": "business",
"scope": [
"webhook:update"
],
"cliCommand": "farthershore webhook rotate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_rotate_secret",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "webhook list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "webhook.event_type.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "read",
"permission": "webhook:read",
"targetKind": "business",
"scope": [
"webhook:read"
],
"cliCommand": "farthershore webhook event-types",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_event_types",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "agents.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "read",
"permission": "agent:read",
"targetKind": "business",
"scope": [
"agent:read"
],
"cliCommand": "farthershore agents list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_agents_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "agents.status",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "read",
"permission": "agent:read",
"targetKind": "business",
"scope": [
"agent:read"
],
"cliCommand": "farthershore agents status",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_agents_status",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "agents.runs.show",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "read",
"permission": "agent:read",
"targetKind": "business",
"scope": [
"agent:read"
],
"cliCommand": "farthershore agents runs-show",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_agents_run_show",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "agents.enable",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "write",
"permission": "agent:configure",
"targetKind": "business",
"scope": [
"agent:configure"
],
"cliCommand": "farthershore agents enable",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_agents_enable",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "agents status",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "agents.disable",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "write",
"permission": "agent:configure",
"targetKind": "business",
"scope": [
"agent:configure"
],
"cliCommand": "farthershore agents disable",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_agents_disable",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "agents status",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "bulletin.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "read",
"permission": "bulletin:read",
"targetKind": "business",
"scope": [
"bulletin:read"
],
"cliCommand": "farthershore bulletin list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_bulletin_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "bulletin.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "read",
"permission": "bulletin:read",
"targetKind": "business",
"scope": [
"bulletin:read"
],
"cliCommand": "farthershore bulletin show",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_bulletin_show",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "bulletin.ack",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "write",
"permission": "bulletin:ack",
"targetKind": "business",
"scope": [
"bulletin:ack"
],
"cliCommand": "farthershore bulletin ack",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_bulletin_ack",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "bulletin show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "bulletin.resolve",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agents",
"sideEffect": "write",
"permission": "bulletin:resolve",
"targetKind": "business",
"scope": [
"bulletin:resolve"
],
"cliCommand": "farthershore bulletin resolve",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_bulletin_resolve",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "bulletin show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "webhook.delivery.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "webhooks",
"sideEffect": "read",
"permission": "webhook:delivery_read",
"targetKind": "business",
"scope": [
"webhook:delivery_read"
],
"cliCommand": "farthershore webhook deliveries",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_webhook_deliveries",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "promo_code.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "promo-codes",
"sideEffect": "read",
"permission": "promo_code:read",
"targetKind": "business",
"scope": [
"promo_code:read"
],
"cliCommand": "farthershore promo-code list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_promo_code_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "promo_code.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "promo-codes",
"sideEffect": "write",
"permission": "promo_code:create",
"targetKind": "business",
"scope": [
"promo_code:create"
],
"cliCommand": "farthershore promo-code create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_promo_code_create",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "promo-code list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "promo_code.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "promo-codes",
"sideEffect": "write",
"permission": "promo_code:update",
"targetKind": "business",
"scope": [
"promo_code:update"
],
"cliCommand": "farthershore promo-code update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_promo_code_update",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "promo-code list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "promo_code.archive",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "promo-codes",
"sideEffect": "write",
"permission": "promo_code:archive",
"targetKind": "business",
"scope": [
"promo_code:archive"
],
"cliCommand": "farthershore promo-code archive",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_promo_code_archive",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "promo-code list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "promo_code.reactivate",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "promo-codes",
"sideEffect": "write",
"permission": "promo_code:reactivate",
"targetKind": "business",
"scope": [
"promo_code:reactivate"
],
"cliCommand": "farthershore promo-code reactivate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_promo_code_reactivate",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "promo-code list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "consumer.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "consumers",
"sideEffect": "read",
"permission": "consumer:read",
"targetKind": "business",
"scope": [
"consumer:read"
],
"cliCommand": "farthershore consumer list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_consumer_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "consumer.block",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "consumers",
"sideEffect": "write",
"permission": "consumer:block",
"targetKind": "business",
"scope": [
"consumer:block"
],
"cliCommand": "farthershore consumer block",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_consumer_block",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "consumer list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "consumer.migrate_latest",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "consumers",
"sideEffect": "write",
"permission": "consumer:migrate_latest",
"targetKind": "business",
"scope": [
"consumer:migrate_latest"
],
"cliCommand": "farthershore consumer migrate-latest",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_consumer_migrate_latest",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "consumer list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "consumer.remove",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "consumers",
"sideEffect": "write",
"permission": "consumer:remove",
"targetKind": "business",
"scope": [
"consumer:remove"
],
"cliCommand": "farthershore consumer remove",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_consumer_remove",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "consumer list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "consumer.roles.assign",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "consumers",
"sideEffect": "write",
"permission": "consumer:roles_assign",
"targetKind": "business",
"scope": [
"consumer:roles_assign"
],
"cliCommand": "farthershore consumer rbac assign",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_consumer_rbac_assign",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "consumer list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "business_variable.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "variables",
"sideEffect": "read",
"permission": "business_variable:read",
"targetKind": "business",
"scope": [
"business_variable:read"
],
"cliCommand": "farthershore variables list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_variable_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business_variable.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "variables",
"sideEffect": "write",
"permission": "business_variable:create",
"targetKind": "business",
"scope": [
"business_variable:create"
],
"cliCommand": "farthershore variables set",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_variable_set",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "variables status",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "business_variable.rotate",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "variables",
"sideEffect": "write",
"permission": "business_variable:rotate",
"targetKind": "business",
"scope": [
"business_variable:rotate"
],
"cliCommand": "farthershore variables rotate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_variable_rotate",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "variables status",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "business_variable.revoke",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "variables",
"sideEffect": "write",
"permission": "business_variable:revoke",
"targetKind": "business",
"scope": [
"business_variable:revoke"
],
"cliCommand": "farthershore variables revoke",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_variable_revoke",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "variables status",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "business_variable.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "variables",
"sideEffect": "write",
"permission": "business_variable:delete",
"targetKind": "business",
"scope": [
"business_variable:delete"
],
"cliCommand": "farthershore variables rm",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_variable_rm",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "variables list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "business_variable.operation.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "variables",
"sideEffect": "read",
"permission": "business_variable:operation_read",
"targetKind": "business",
"scope": [
"business_variable:operation_read"
],
"cliCommand": "farthershore variables status",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_variable_operation_get",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "runtime_token.mint",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "runtime-tokens",
"sideEffect": "write",
"permission": "runtime_token:mint",
"targetKind": "business",
"scope": [
"runtime_token:mint"
],
"cliCommand": "farthershore backend tokens create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_runtime_token_mint",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "backend tokens list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "runtime_token.rotate",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "runtime-tokens",
"sideEffect": "write",
"permission": "runtime_token:rotate",
"targetKind": "business",
"scope": [
"runtime_token:rotate"
],
"cliCommand": "farthershore backend tokens rotate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_runtime_token_rotate",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "backend tokens list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "runtime_token.revoke",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "runtime-tokens",
"sideEffect": "write",
"permission": "runtime_token:revoke",
"targetKind": "business",
"scope": [
"runtime_token:revoke"
],
"cliCommand": "farthershore backend tokens revoke",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_runtime_token_revoke",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "backend tokens list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "runtime_token.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "runtime-tokens",
"sideEffect": "read",
"permission": "runtime_token:read",
"targetKind": "business",
"scope": [
"runtime_token:read"
],
"cliCommand": "farthershore backend tokens list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_runtime_token_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "usage.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "usage",
"sideEffect": "read",
"permission": "usage:read",
"targetKind": "business",
"scope": [
"usage:read"
],
"cliCommand": "farthershore usage summary",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_usage_read",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "backend.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "backends",
"sideEffect": "write",
"permission": "backend:create",
"targetKind": "business",
"scope": [
"backend:create"
],
"cliCommand": "farthershore backend create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_backend_create",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "backend list",
"preview": true,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "backend.bind",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "backends",
"sideEffect": "write",
"permission": "backend:bind",
"targetKind": "business",
"scope": [
"backend:bind"
],
"cliCommand": "farthershore backend bind",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_backend_bind",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "backend list",
"preview": true,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "backend.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "backends",
"sideEffect": "write",
"permission": "backend:delete",
"targetKind": "business",
"scope": [
"backend:delete"
],
"cliCommand": "farthershore backend delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_backend_delete",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "backend list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "backend.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "backends",
"sideEffect": "read",
"permission": "backend:read",
"targetKind": "business",
"scope": [
"backend:read"
],
"cliCommand": "farthershore backend list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_backend_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "backend.status.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "backends",
"sideEffect": "read",
"permission": "backend:read",
"targetKind": "business",
"scope": [
"backend:read"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "`farthershore backend list` (backend.read) already returns each backend's derived status — there is no separate status command.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "persona.bootstrap",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:issue",
"targetKind": "business",
"scope": [
"persona:issue"
],
"cliCommand": "farthershore persona bootstrap",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_persona_bootstrap",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "persona list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "persona.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "read",
"permission": "persona:read",
"targetKind": "business",
"scope": [
"persona:read"
],
"cliCommand": "farthershore persona list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_persona_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "persona.login",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:issue",
"targetKind": "business",
"scope": [
"persona:issue"
],
"cliCommand": "farthershore persona login",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "no_automatic_retry",
"keyRequired": false,
"enforcement": "reconcile_before_repeat",
"responseSemantics": "outcome_may_be_unknown",
"reconcile": "inspect the target browser session before requesting a fresh handoff",
"preview": false,
"rationale": "The request can cause an externally observable effect that cannot be made safe by response replay alone. Reconcile before deciding whether to dispatch a new action."
}
}
{
"opKey": "persona.local_preview.issue",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:issue",
"targetKind": "business",
"scope": [
"persona:issue"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "Sign a persona in with `farthershore persona login` (hosted portal). This lease is CLI-process-only machinery for the localhost preview that `farthershore frontend dev|preview --live --business --env --persona` drives automatically; never call it by hand.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "persona.local_preview.renew",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:issue",
"targetKind": "business",
"scope": [
"persona:issue"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "Renewed automatically by the running `farthershore frontend dev|preview --live --persona` process (CLI local-preview proxy); there is no standalone command and nothing to call by hand. Use `farthershore persona login` for hosted sign-in.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "persona.local_preview.revoke",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:issue",
"targetKind": "business",
"scope": [
"persona:issue"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "Revoked automatically when the `farthershore frontend dev|preview --live --persona` process exits; a lease otherwise expires within five minutes. Nothing to call by hand.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "persona.rotate",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:rotate",
"targetKind": "business",
"scope": [
"persona:rotate"
],
"cliCommand": "farthershore persona rotate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_persona_rotate",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "persona list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "persona.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "personas",
"sideEffect": "write",
"permission": "persona:revoke",
"targetKind": "business",
"scope": [
"persona:revoke"
],
"cliCommand": "farthershore persona delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_persona_delete",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "persona list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "agreement.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agreements",
"sideEffect": "read",
"permission": "agreement:read",
"targetKind": "business",
"scope": [
"agreement:read"
],
"cliCommand": "farthershore agreements list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_agreement_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "agreement.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agreements",
"sideEffect": "write",
"permission": "agreement:create",
"targetKind": "business",
"scope": [
"agreement:create"
],
"cliCommand": "farthershore agreements create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "agreements list, then agreements show",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation.",
"liveWhenFieldPresent": "confirm"
}
}
{
"opKey": "agreement.amend",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "agreements",
"sideEffect": "write",
"permission": "agreement:amend",
"targetKind": "business",
"scope": [
"agreement:amend"
],
"cliCommand": "farthershore agreements amend",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "agreements list, then agreements show",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation.",
"liveWhenFieldPresent": "confirm"
}
}
{
"opKey": "analytics.timeseries",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "analytics",
"sideEffect": "read",
"permission": "analytics:read",
"targetKind": "business",
"scope": [
"analytics:read"
],
"cliCommand": "farthershore analytics timeseries",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_analytics_timeseries",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "analytics.latency",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "analytics",
"sideEffect": "read",
"permission": "analytics:read",
"targetKind": "business",
"scope": [
"analytics:read"
],
"cliCommand": "farthershore analytics latency",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_analytics_latency",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "analytics.top",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "analytics",
"sideEffect": "read",
"permission": "analytics:read",
"targetKind": "business",
"scope": [
"analytics:read"
],
"cliCommand": "farthershore analytics top",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_analytics_top",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "analytics.log",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "analytics",
"sideEffect": "read",
"permission": "analytics:read",
"targetKind": "business",
"scope": [
"analytics:read"
],
"cliCommand": "farthershore analytics log",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_analytics_log",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization:read",
"targetKind": "self",
"scope": [
"organization:read"
],
"cliCommand": "farthershore organization list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization:create",
"targetKind": "self",
"scope": [
"organization:create"
],
"cliCommand": "farthershore organization create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "organization list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "organization.role.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization_role:read",
"targetKind": "organization",
"scope": [
"organization_role:read"
],
"cliCommand": "farthershore organization role list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.role.show",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization_role:read",
"targetKind": "organization",
"scope": [
"organization_role:read"
],
"cliCommand": "farthershore organization role show",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.role.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_role:create",
"targetKind": "organization",
"scope": [
"organization_role:create"
],
"cliCommand": "farthershore organization role create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "organization role list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "organization.role.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_role:update",
"targetKind": "organization",
"scope": [
"organization_role:update"
],
"cliCommand": "farthershore organization role update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization role show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.role.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_role:delete",
"targetKind": "organization",
"scope": [
"organization_role:delete"
],
"cliCommand": "farthershore organization role delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization role list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.member.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization_member:list",
"targetKind": "organization",
"scope": [
"organization_member:list"
],
"cliCommand": "farthershore organization members",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.invitation.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_invitation:create",
"targetKind": "organization",
"scope": [
"organization_invitation:create"
],
"cliCommand": "farthershore organization invite",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "organization invitation-list-sent",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "organization.invitation.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization_invitation:list",
"targetKind": "self",
"scope": [
"organization_invitation:list"
],
"cliCommand": "farthershore organization invitation-list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.invitation.list_sent",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization_invitation:list",
"targetKind": "organization",
"scope": [
"organization_invitation:list"
],
"cliCommand": "farthershore organization invitation-list-sent",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.invitation.revoke",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_invitation:revoke",
"targetKind": "organization",
"scope": [
"organization_invitation:revoke"
],
"cliCommand": "farthershore organization invitation-revoke",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization invitation-list-sent",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.invitation.accept",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_invitation:accept",
"targetKind": "self",
"scope": [
"organization_invitation:accept"
],
"cliCommand": "farthershore organization invitation-accept",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.member.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_member:update",
"targetKind": "organization",
"scope": [
"organization_member:update"
],
"cliCommand": "farthershore organization member-role",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization members",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.member.remove",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization_member:remove",
"targetKind": "organization",
"scope": [
"organization_member:remove"
],
"cliCommand": "farthershore organization member-remove",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization members",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.ownership.transfer",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization:ownership_transfer",
"targetKind": "organization",
"scope": [
"organization:ownership_transfer"
],
"cliCommand": "farthershore organization ownership-transfer",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_organization_ownership_transfer",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "organization overview",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "organization.active.select",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization:read",
"targetKind": "organization",
"scope": [
"organization:read"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "Run `farthershore auth organization use <id-or-slug>` to change the stored default organization, or pass `--org <id>` on any command for a one-off selection. The dashboard's active-organization cookie is browser-local and is not emulated.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "organization.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "write",
"permission": "organization:delete",
"targetKind": "organization",
"scope": [
"organization:delete"
],
"cliCommand": "farthershore organization delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "organization list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "organization.overview.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization:read",
"targetKind": "organization",
"scope": [
"organization:read"
],
"cliCommand": "farthershore organization overview",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "organization.bulletin.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "organizations",
"sideEffect": "read",
"permission": "organization_bulletin:read",
"targetKind": "organization",
"scope": [
"organization_bulletin:read"
],
"cliCommand": "farthershore organization bulletin",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "audit_log.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "audit-logs",
"sideEffect": "read",
"permission": "audit_log:read",
"targetKind": "organization",
"scope": [
"audit_log:read"
],
"cliCommand": "farthershore audit-log list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "audit_log.business.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "audit-logs",
"sideEffect": "read",
"permission": "audit_log:read",
"targetKind": "business",
"scope": [
"audit_log:read"
],
"cliCommand": "farthershore audit-log business-list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "audit_log.business.export",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "audit-logs",
"sideEffect": "read",
"permission": "audit_log:export",
"targetKind": "business",
"scope": [
"audit_log:export"
],
"cliCommand": "farthershore audit-log business-export",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "audit_log.export",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "audit-logs",
"sideEffect": "read",
"permission": "audit_log:export",
"targetKind": "organization",
"scope": [
"audit_log:export"
],
"cliCommand": "farthershore audit-log export",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "notification.preferences.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "notifications",
"sideEffect": "read",
"permission": "notification:preferences_read",
"targetKind": "business",
"scope": [
"notification:preferences_read"
],
"cliCommand": "farthershore notifications preferences",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "notification.preferences.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "notifications",
"sideEffect": "write",
"permission": "notification:preferences_update",
"targetKind": "business",
"scope": [
"notification:preferences_update"
],
"cliCommand": "farthershore notifications preferences-update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "notifications preferences",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "brand.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "branding",
"sideEffect": "write",
"permission": "brand:update",
"targetKind": "business",
"scope": [
"brand:update"
],
"cliCommand": "farthershore business update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_brand_update",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "business show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "business.cors.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:cors_update",
"targetKind": "business",
"scope": [
"business:cors_update"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "Run `farthershore business update <business-id> --allowed-origins <origins>` (or `--clear-allowed-origins`). That shared metadata command is registered under `brand.update`.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "business.docs.enable",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:docs_update",
"targetKind": "business",
"scope": [
"business:docs_update"
],
"cliCommand": "farthershore business docs enable",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_docs_enable",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "business show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "business.docs.disable",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:docs_update",
"targetKind": "business",
"scope": [
"business:docs_update"
],
"cliCommand": "farthershore business docs disable",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_docs_disable",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "business show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "rbac.enable",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:rbac_update",
"targetKind": "business",
"scope": [
"business:rbac_update"
],
"cliCommand": "farthershore business rbac enable",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_rbac_enable",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "business rbac",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "rbac.disable",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:rbac_update",
"targetKind": "business",
"scope": [
"business:rbac_update"
],
"cliCommand": "farthershore business rbac disable",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_rbac_disable",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "business rbac",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "rbac.subjects.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "rbac:read",
"targetKind": "business",
"scope": [
"rbac:read"
],
"cliCommand": "farthershore business rbac subjects list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_rbac_subjects_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.preview_env.set",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:preview_env_update",
"targetKind": "business",
"scope": [
"business:preview_env_update"
],
"cliCommand": "farthershore business preview-env set",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_preview_env_set",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "env list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "business.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "write",
"permission": "business:create",
"targetKind": "organization",
"scope": [
"business:create"
],
"cliCommand": "farthershore business create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "business list, then business show",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "business.compile",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:compile",
"targetKind": "business",
"scope": [
"business:compile"
],
"cliCommand": "farthershore validate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "Remote validation may retain a diagnostic compilation record, but it never accepts or publishes business state. Repeating it returns a fresh validation observation and needs no caller key."
}
}
{
"opKey": "business.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "business",
"scope": [
"business:read"
],
"cliCommand": "farthershore business show",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.routes.read",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "business",
"scope": [
"business:read"
],
"cliCommand": "farthershore business routes",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.contract.read",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "businesses",
"sideEffect": "read",
"permission": "business:read",
"targetKind": "business",
"scope": [
"business:read"
],
"cliCommand": "farthershore business contract",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business.publish",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "lifecycle",
"sideEffect": "write",
"permission": "business:publish",
"targetKind": "business",
"scope": [
"business:publish"
],
"cliCommand": "farthershore business publish",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_business_publish",
"mcpMayWrite": true,
"retry": {
"kind": "same_key_replay",
"reconcile": "business status and apply-timeline list",
"preview": true,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "business.rollback",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "lifecycle",
"sideEffect": "write",
"permission": "business:rollback",
"targetKind": "business",
"scope": [
"business:rollback"
],
"cliCommand": "farthershore business rollback",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "business status and apply-timeline list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "manifest.apply",
"class": "contract",
"canonicalHome": "repo",
"authoringPath": "repo",
"domain": "lifecycle",
"sideEffect": "write",
"permission": "local_repository:write",
"targetKind": "local_repository",
"scope": [
"local_repository:write"
],
"cliCommand": null,
"unavailableReason": "git_triggered",
"unavailableDetail": "The repo pipeline applies the compiled IR on a push/release through the same neutral apply service. `farthershore validate` runs the identical verdict locally WITHOUT applying; `farthershore apply-timeline list` shows what the platform applied.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "environment.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "environments",
"sideEffect": "write",
"permission": "environment:create",
"targetKind": "business",
"scope": [
"environment:create"
],
"cliCommand": "farthershore env create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_env_create",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "env list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "environment.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "environments",
"sideEffect": "write",
"permission": "environment:delete",
"targetKind": "business",
"scope": [
"environment:delete"
],
"cliCommand": "farthershore env delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "env list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "environment.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "environments",
"sideEffect": "read",
"permission": "environment:read",
"targetKind": "business",
"scope": [
"environment:read"
],
"cliCommand": "farthershore env list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_env_list",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "auth.context.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "read",
"permission": "auth_context:read",
"targetKind": "self",
"scope": [
"auth_context:read"
],
"cliCommand": null,
"unavailableReason": "served_by_other_command",
"unavailableDetail": "Use `farthershore auth whoami`.",
"mcpTool": null,
"mcpMayWrite": false,
"retry": null
}
{
"opKey": "auth.context.issue",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "auth_context:issue",
"targetKind": "business",
"scope": [
"auth_context:issue"
],
"cliCommand": "farthershore auth context-token",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "no_automatic_retry",
"keyRequired": false,
"enforcement": "reconcile_before_repeat",
"responseSemantics": "outcome_may_be_unknown",
"reconcile": "request a new context token",
"preview": false,
"rationale": "The request can cause an externally observable effect that cannot be made safe by response replay alone. Reconcile before deciding whether to dispatch a new action."
}
}
{
"opKey": "org_maker_token.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "token list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "org_maker_token.list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "read",
"permission": "maker_token:read",
"targetKind": "organization",
"scope": [
"maker_token:read"
],
"cliCommand": "farthershore token list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "org_maker_token.permission_catalog.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "read",
"permission": "maker_token:read",
"targetKind": "organization",
"scope": [
"maker_token:read"
],
"cliCommand": "farthershore token permission-catalog",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "org_maker_token.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "token list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "org_maker_token.approval_list",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "read",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token approvals",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "org_maker_token.approve",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token approve",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "token approvals, then token list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "org_maker_token.deny",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token deny",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "token approvals",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "org_maker_token.rotate",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token rotate",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "token list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "org_maker_token.revoke",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "authentication",
"sideEffect": "write",
"permission": "maker_token:create_org",
"targetKind": "organization",
"scope": [
"maker_token:create_org"
],
"cliCommand": "farthershore token revoke",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "token list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "stripe_connection.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "billing",
"sideEffect": "read",
"permission": "stripe_connection:read",
"targetKind": "organization",
"scope": [
"stripe_connection:read"
],
"cliCommand": "farthershore stripe status",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_stripe_status",
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "stripe_connection.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "billing",
"sideEffect": "write",
"permission": "stripe_connection:delete",
"targetKind": "organization",
"scope": [
"stripe_connection:delete"
],
"cliCommand": "farthershore stripe disconnect",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": "fs_stripe_disconnect",
"mcpMayWrite": true,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "stripe status",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "tax_settings.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "billing",
"sideEffect": "read",
"permission": "tax_settings:read",
"targetKind": "business",
"scope": [
"tax_settings:read"
],
"cliCommand": "farthershore tax-settings show",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "tax_settings.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "billing",
"sideEffect": "write",
"permission": "tax_settings:update",
"targetKind": "business",
"scope": [
"tax_settings:update"
],
"cliCommand": "farthershore tax-settings update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "tax-settings show",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "resource_count.report",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "resources",
"sideEffect": "write",
"permission": "resource_count:report",
"targetKind": "business",
"scope": [
"resource_count:report"
],
"cliCommand": "farthershore resource-count report",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "usage summary",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "denial.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "observability",
"sideEffect": "read",
"permission": "denial:read",
"targetKind": "business",
"scope": [
"denial:read"
],
"cliCommand": "farthershore denial show",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "business_dependents.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "businesses",
"sideEffect": "read",
"permission": "business_dependents:read",
"targetKind": "business",
"scope": [
"business_dependents:read"
],
"cliCommand": "farthershore dependents list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "workflow.replay",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "workflows",
"sideEffect": "read",
"permission": "workflow:replay",
"targetKind": "business",
"scope": [
"workflow:replay"
],
"cliCommand": "farthershore workflow-control replay",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "workflow.rollback",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "workflows",
"sideEffect": "read",
"permission": "workflow:rollback",
"targetKind": "business",
"scope": [
"workflow:rollback"
],
"cliCommand": "farthershore workflow-control rollback-to-config",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "automation_rule.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "automation",
"sideEffect": "read",
"permission": "automation_rule:read",
"targetKind": "business",
"scope": [
"automation_rule:read"
],
"cliCommand": "farthershore automation list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "automation_rule.create",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "automation",
"sideEffect": "write",
"permission": "automation_rule:create",
"targetKind": "business",
"scope": [
"automation_rule:create"
],
"cliCommand": "farthershore automation create",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "same_key_replay",
"reconcile": "automation list",
"preview": false,
"keyRequired": true,
"enforcement": "idempotency_reservation",
"responseSemantics": "original_attempt_result",
"rationale": "This mutation can create a durable resource, enqueue work, or reveal a one-time result. A caller-persisted key makes an uncertain retry the same logical attempt instead of a second mutation."
}
}
{
"opKey": "automation_rule.update",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "automation",
"sideEffect": "write",
"permission": "automation_rule:update",
"targetKind": "business",
"scope": [
"automation_rule:update"
],
"cliCommand": "farthershore automation update",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "automation list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "automation_rule.delete",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "automation",
"sideEffect": "write",
"permission": "automation_rule:delete",
"targetKind": "business",
"scope": [
"automation_rule:delete"
],
"cliCommand": "farthershore automation delete",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "convergent_write",
"keyRequired": false,
"enforcement": "resource_identity",
"responseSemantics": "point_in_time_write_result",
"reconcile": "automation list",
"preview": false,
"rationale": "This writes a stable desired state. After an ambiguous result, reconcile current state before repeating so an old retry cannot overwrite a newer change. Repeat only if the intent is still current, then reread again."
}
}
{
"opKey": "knowledge.guide.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "knowledge",
"sideEffect": "read",
"permission": "knowledge:read",
"targetKind": "self",
"scope": [
"knowledge:read"
],
"cliCommand": "farthershore knowledge list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}
{
"opKey": "knowledge.business.read",
"class": "operate",
"canonicalHome": "api",
"authoringPath": "api",
"domain": "knowledge",
"sideEffect": "read",
"permission": "knowledge:read",
"targetKind": "business",
"scope": [
"knowledge:read"
],
"cliCommand": "farthershore knowledge business-list",
"unavailableReason": null,
"unavailableDetail": null,
"mcpTool": null,
"mcpMayWrite": false,
"retry": {
"kind": "read_current",
"keyRequired": false,
"enforcement": "fresh_read",
"responseSemantics": "current_observation",
"rationale": "This operation has no persistent side effect; retrying performs a new read of current server state."
}
}