Farther ShoreDocs
Go to Farther Shore
Use agents across the platform
Event-driven automation
Farther Shore Agent
Your coding agent
Ownership boundaries
The four execution pathsRepository-owned contract statePlatform-owned operating stateNon-obvious examplesDecision procedure
Retries and idempotency
Enable the Farther Shore Agent
Automation request schemas
Status
Docs/Work with agents/Ownership boundaries

Ownership boundaries

Decide whether a task belongs in business code, application code, Git automation, or a platform operation.

Farther Shore has one source of truth for each fact. The dashboard and CLI may display repository-owned state, but that does not make it editable there.

The four execution paths

PathOwnsHow it changes
Business contractroutes, plans, prices, meters, limits, resources, grants, policies, RBAC, backend declarations, frontend integrationsedit any module under business/, build, and push
Application codebackend logic, frontend source, database schema, product-specific dataedit the managed repository and use its normal build/deploy workflow
Git automationvalidating and applying pushed business code; production frontend builds; preview frontend buildspush the mapped branch or create the production GitHub Release
Platform operationslive state without a code representationuse farthershore CLI or the equivalent dashboard action

The compiler discovers the whole business/ folder and requires one default-exported fs.business() result. No filename is part of the contract.

Repository-owned contract state

These are code changes, even when the dashboard displays them:

  • routes, route groups, features, and surfaces;
  • plans (declared kind, recurring price, usage-pricing binding, funding buckets, lifecycle, spend policy), pricing catalogs, and grants;
  • measures, dimensions, meters, and meter-route bindings with their admission bounds;
  • rate, quota, concurrency, resource, and capacity limits;
  • tenancy, RBAC, and backend/frontend integration declarations.

The loop is always edit → farthershore build → push → inspect checks and Apply Timeline. There is no imperative contract writer.

Platform-owned operating state

Typical CLI jobs include:

  • business presentation metadata and origin settings;
  • preview-environment lifecycle and organization context;
  • backend instances, origin bindings, runtime tokens, and variables;
  • frontend status and rollback pointers;
  • subscriber inspection, blocking, removal, and accepted-version migration;
  • usage, analytics, denials, audit logs, notifications, and workflow status;
  • webhook endpoints (always platform-owned — never repository state), test personas, operating agents, and Bulletin handoffs.

Use the live catalog rather than inferring a command:

bash
farthershore operations list --format json
farthershore business --help

An operation without a command is not automatically missing. The catalog tells you whether it is repository-authored, Git-triggered, a subscriber-portal or human decision, a runtime SDK action, covered by another command, or a genuine platform gap.

Non-obvious examples

RequestOwnerCorrect path
Declare a backend named apiRepositoryadd fs.backend("api") and attach routes
Bind that backend to a preview originPlatformcreate/read the environment-local backend row, then use backend bind
Deploy a production hosted frontendGitcreate the approved GitHub Release; there is no frontend deploy command
Roll back a hosted frontendPlatformfarthershore frontend rollback … --release-id …
Roll back a bad business publishPlatformfarthershore business rollback …, which starts a new forward workflow from a captured snapshot
Change a priceRepositoryedit fs.plan(), then follow the economic release gate
Rebind existing commercial pinsDeferredgeneralized recurring/non-current pricing rebind is unavailable; pricing.current() still follows activated catalogs forward
Store a customer recordApplicationuse the signed principal and a race-safe database upsert

Decision procedure

  1. Can the desired fact be represented in business/? Edit the repository.
  2. Is it application behavior or data? Edit the application, not the platform contract.
  3. Does the operation catalog say git_triggered? Push or release, then poll status.
  4. Does the operation have a CLI command? Run it and read the resource back.
  5. Does it belong to a human or subscriber principal? Hand it off.
  6. Only report a platform gap when the live catalog labels it not_implemented.

See Your coding agent for the complete loop and the live documentation index for task-specific details.

PreviousYour coding agentNextRetries and idempotency

On this page

The four execution pathsRepository-owned contract statePlatform-owned operating stateNon-obvious examplesDecision procedure