# Self Bank Agent Skills

Curated set of agent skills for sandbox-first integration with Self Bank. Each skill is an agent-operable capability with a defined purpose, inputs, output, permission scope, and availability state.

## Recommended starting sequence

1. `getProductCatalog` — understand the surface.
2. `simulateOnboarding` — validate a corporate onboarding path.
3. `simulateAccountOpening` — explore account lifecycle.
4. `simulatePayment` — validate payment routing logic.
5. `generateAnalyticsSummary` — review operational dimensions (planned capability).

## Risk profile summary

- All skills run in a sandbox environment.
- No real customers, accounts, funds, or production records are affected.
- Every skill is bounded by an explicit OAuth-style scope.
- Escalation to non-sandbox flows always requires human review.

## Capability types

- `read` — retrieves information without changing state.
- `simulation` — executes a workflow in sandbox without production effect.

## Intended consumers

- LLM-driven agents performing structured exploration of Self Bank capabilities.
- Browser agents and server-side automation evaluating integration fit.
- Internal Self Bank teams validating agent-facing surfaces.

## Skills

### 1. getProductCatalog
- Purpose: Retrieve the available product and service categories exposed by Self Bank for sandbox exploration.
- Inputs: `category` (optional), `clientType` (optional), `country` (optional).
- Output: list of products or service categories, product metadata, availability information.
- Permission scope: `catalog.read`
- Availability: Sandbox available

### 2. simulateOnboarding
- Purpose: Simulate a corporate onboarding flow for Self Bank without creating a real customer.
- Inputs: `clientType`, `country`, `industry`, `requestedProducts`.
- Output: recommended onboarding flow, required documents, estimated review path, risk indicators.
- Permission scope: `simulation.onboarding`
- Availability: Sandbox available

### 3. simulatePayment
- Purpose: Validate and simulate a payment flow in Self Bank without moving real funds.
- Inputs: payment type, payer, beneficiary, amount, currency, purpose, priority, sandbox flag.
- Output: validation result, workflow preview, estimated controls, environment marker.
- Permission scope: `simulation.payments`
- Availability: Sandbox available

### 4. simulateAccountOpening
- Purpose: Simulate the full account-opening lifecycle for a Self Bank account.
- Inputs: organization type, residency, currency, requested account type, document set indicator.
- Output: lifecycle stages, required checks, human-review trigger, environment marker.
- Permission scope: `simulation.account_opening`
- Availability: Sandbox available

### 5. generateAnalyticsSummary
- Purpose: Generate an aggregated sandbox analytics summary across selected operational dimensions.
- Inputs: period range, dimensions, organization identifier, format, sandbox flag.
- Output: aggregated metrics, highlights, environment marker.
- Permission scope: `analytics.summary.read`
- Availability: Planned capability

## Operating principles

- Sandbox-first execution for every skill.
- Contract-bound inputs and outputs (OpenAPI 3.1).
- Deterministic, auditable responses with stable error envelopes.
- No silent escalation: any move beyond sandbox is explicit.

## Permission scopes summary

- `catalog.read` — read product and service catalog.
- `simulation.onboarding` — execute onboarding simulations.
- `simulation.payments` — execute payment simulations.
- `simulation.account_opening` — execute account-opening simulations.
- `analytics.summary.read` — read aggregated analytics summaries (planned).

## Related resources

- Agent API: https://cube.self.team/api/agent
- OpenAPI contract: https://cube.self.team/api/openapi-agent-v1.yaml
- Integration guide: https://cube.self.team/docs/agent-integration
