# Outbound Call Skill Creator

> Create directly usable outbound phone-call Agent Skills that bind source and durable result-output contracts at the right level, connect data such as Google Forms, TikTok Ads, local CSV, or custom systems to an MCP one-off call provider route, compile per-record call goals, enforce safety rules, and configure source writeback, source-adjacent result artifacts, or new local result CSV output.

- **Type:** Skill
- **Install:** `agentstack add skill-calle-ai-awesome-phone-call-agents-outbound-call-skill-creator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [CALLE-AI](https://agentstack.voostack.com/s/calle-ai)
- **Installs:** 0
- **Category:** [Data & Analytics](https://agentstack.voostack.com/c/data-and-analytics)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [CALLE-AI](https://github.com/CALLE-AI)
- **Source:** https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/outbound-call-skill-creator

## Install

```sh
agentstack add skill-calle-ai-awesome-phone-call-agents-outbound-call-skill-creator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Outbound Call Skill Creator

Use this skill when the user wants to create a new outbound phone-call workflow skill that can later process source records directly, compile one call goal per eligible record, run calls through the configured MCP provider route, and write results back, save a source-adjacent result artifact, or save a new local result CSV.

`outbound-call-skill-creator` creates focused business skills. It does not process campaign data itself, does not create a generic outbound runtime platform, and does not use a CLI bootstrap path.

Generated skills should bind enough source, durable result-output, and safety detail to make later runs predictable. The minimum source binding level is `parameterized-bound`: the source family, field schema, source-level outreach basis or consent rule, dedupe rule, goal contract, and result-output policy are fixed at creation time, while runtime requests can still provide approved parameters such as a date window, form ID, CSV path, campaign ID, source writeback target, source-adjacent artifact target, or output file path.

## Core Rule

Generate a directly usable business skill using the scope-first output rule in `references/output-targets.md`. Do not assume the current project has a usable `skills/` directory.

When this creator is used from a normal project after being installed by a skill installer, default to a user-level reusable skill unless the workflow depends on project-local files or the user asks for repository-scoped output. If the installed `outbound-call-skill-creator` folder is inside a recognized user-level skills root, create the generated business skill as a sibling of this creator. Otherwise choose a host-compatible skills root from `references/output-targets.md`, or ask the user when discoverability is unclear.

Use a project-local skills directory only when the user explicitly wants the generated skill versioned with the current project, when the skill depends on project files, or when working inside this reference repository. Never write a generated business skill into the downloaded `outbound-call-skill-creator` skill folder itself.

The generated skill must let a future user make a concrete request such as "process all June 20 records" and have the skill handle source access, filtering, candidate validation, outbound goal compilation, approved MCP execution, dedupe, and durable result output.

Minimum source binding is mandatory. If creation-time onboarding cannot reach a `parameterized-bound` source and durable result-output contract, do not generate a business skill.

Do not create `template.md`. The creator captures the source, goal, execution, and result-output contract during skill creation and writes that contract into the generated skill instructions and reference files.

## Required Creator Workflow

1. Confirm that the user wants to create a new outbound phone-call workflow skill.
2. Ask for or derive a lowercase hyphenated business skill name.
3. Read `references/output-targets.md`, choose the scope, and choose a host-compatible output parent.
4. Ask which source family to use: `google-form`, `tiktok-ads`, `local-csv`, or `other`.
5. Read `references/data-sources.md` for the selected source family.
6. Read `references/binding-contract.md` and choose whether the workflow should remain at the minimum `parameterized-bound` level or be upgraded to `fully-bound` when the user wants a concrete fixed source instance.
7. Run creation-time source onboarding for the selected binding level:
   - `fully-bound`: authenticate or verify the concrete source, fetch a representative sample from that source, confirm schema and durable result-output readiness, and stop before generating a real-call skill if onboarding cannot complete.
   - `parameterized-bound`: authenticate or verify the source family, fetch a representative sample from one approved source instance, confirm the schema contract, and record which runtime parameters may vary later.
   If source onboarding cannot support the minimum `parameterized-bound` contract because the source or result-output contract is still unknown, do not write the generated skill yet; continue source onboarding or stop with the missing contract details.
   For any authenticated or connector-backed source family, ask only for the minimum connection details needed to authorize or locate the source before source access and sample fetch complete. Do not ask the user to manually provide the full field mapping before source access has been checked and a representative sample has been fetched.
8. Capture the source fields from the sampled schema for phone number, recipient label, dedupe key, date filtering, source-level outreach basis or optional consent field, goal inputs, and any runtime parameters allowed by the binding level.
9. Show a small redacted sample summary and prompt the user to confirm or adjust field mapping.
10. Prompt the user to define the default outbound goal from the sampled fields: call purpose, required context, allowed questions, prohibited claims, completion criteria, result values, summary format, and escalation cases.
11. Read `references/mcp-provider-route.md` and run creation-time provider onboarding for the default CALL-E MCP provider route in the current host runtime: configure or verify the MCP route, complete or verify provider authentication, and confirm compatible plan/run/status tools without placing a real call. For Codex, use the `codex mcp` adapter commands in the reference. For Claude, Antigravity, Cursor, or another MCP host, use that host's connector or MCP server setup and authorization flow. Do not treat app connector tools, plugin tools, or similarly named non-MCP tools as proof that this provider route is authenticated. If provider onboarding still cannot complete, record a provider onboarding blocker and keep the generated skill dry-run-only.
12. Read `references/execution-modes.md` and ask the user to choose an execution mode, defaulting to `dry-run-then-batch-approval`. For both supported binding levels, available modes are `dry-run-then-batch-approval` or `approved-direct-execution`.
13. Capture the result-output policy at creation time and capture field mapping, supported target modes, or allowed runtime output parameters. Prefer verified source writeback when available. Treat source writeback narrowly: it updates the bound source instance or canonical source record store, not a newly created side file. When the result should live in the same source system but not mutate the source records, configure `source-adjacent-result-artifact` with a verified container, artifact ID or creation policy, schema, and append or upsert behavior. When source writeback and source-adjacent output are unavailable or not requested, configure a new local result CSV as the durable fallback. Keep session-table output as a last-resort non-persistent fallback only when durable output validation is blocked; do not proactively present session table as a normal user-facing option.
14. Run best-effort creation-time preflight checks when tools and permissions are available: read-only source auth/schema checks, non-mutating source writeback checks, source-adjacent artifact checks, local result CSV path checks, and MCP route/tool readiness. If preflight cannot run for a bound workflow, record the blocker and do not generate a real-call skill until source and provider onboarding requirements are satisfied.
15. Read `references/safety.md` and include the required safety boundaries in the generated skill.
16. Generate the business skill folder and files in the selected output parent using `references/generated-skill-contract.md`.
17. Run this skill's bundled checker script with `--skill-dir `.
18. Read `references/creation-summary.md` and show the user a creation summary covering skill name, path, binding level, source onboarding, provider onboarding, source contract, goal contract, execution mode, result-output target, provider route, validation result, and reload or discovery note.
19. Run repository validation only when the generated skill is being committed to a repository that provides a validation command.

## Built-In Choices

Present these source families by default:

- `google-form`: Google Forms responses with local OAuth or an explicitly configured Apps Script fallback.
- `tiktok-ads`: records obtained from TikTok Ads through exposed MCP tools, resources, or approved connectors.
- `local-csv`: records from a user-provided CSV file.
- `other`: a custom source that requires multi-turn clarification before generating the skill.

If the user selects `other`, do not guess API schemas, credentials, identifiers, date filters, result-output behavior, or MCP tool names. Ask for the missing contract details one at a time.

## Creation-Time Source Onboarding

Creation-time source onboarding happens after source family and binding level selection, and before final goal and result-output contract generation.

For `fully-bound` generated skills, authenticate or verify the concrete source, fetch a representative sample from that exact source, confirm schema and durable result-output readiness, and stop before generating a real-call skill when onboarding cannot complete.

For `parameterized-bound` generated skills, authenticate or verify the source family, fetch a representative sample from one approved source instance, confirm the schema contract, and allow runtime instances only when the runtime gate verifies the same schema and source contract.

If source onboarding cannot produce enough source, schema, outreach-basis or consent, dedupe, and durable result-output detail for the minimum `parameterized-bound` contract, stop before writing the generated skill and ask for the missing contract details.

During onboarding, show the user a small redacted sample summary, never full private phone numbers, credentials, tokens, cookies, callback URLs, or provider confirmation tokens. Use the sampled fields to help the user define the default outbound goal.

For any authenticated or connector-backed source family, inspect available host-local access routes before asking the user to choose an access route. When a host-local source adapter, connector, MCP tool, or helper script is available, inspect it before asking the user to choose an access route. When a safe source authorization or auth-readiness action is available, start it before asking the user for another confirmation; do not ask the user to say `start auth`, choose a discovered route, or refresh a session before attempting the available non-mutating auth path. For source MCP servers, do not treat a host CLI status such as Codex `Auth: Unsupported` as proof that source access is unavailable when source-native MCP tools or resources are exposed; run the source's read-only auth or inventory probe first. Collect only minimum connection details before access is verified: skill name, binding level, source family, source locator such as form ID or account scope only when no usable route can be discovered or the discovered route needs a concrete locator, and access route such as OAuth, Apps Script fallback, MCP tool, MCP resource, or managed connector. After access verification and representative sample fetch, infer the phone field, recipient field, dedupe key, outreach basis or consent field, goal inputs, and durable result-output capability from the sample. Ask the user to fill or correct only fields that cannot be inferred.

When the user names only an authenticated source family such as `google-form` or `tiktok-ads`, the next creation step must be source access onboarding: choose or confirm the binding level, discover available host access routes, run or request authorization, and attempt a read-only sample fetch before asking for the default outbound goal, result-output mapping, or full field mapping. Do not ask the user to choose `use local OAuth to list accessible forms` when a local OAuth helper can be checked directly. If the user has not provided a skill name yet, derive a temporary candidate name from the source context or ask only for the name in the same onboarding prompt; do not use a missing skill name as a reason to collect goal details first.

## Creation-Time Provider Onboarding

Creation-time provider onboarding happens after source onboarding and before choosing a real-call execution mode. It verifies that the selected host runtime has a configured and authenticated MCP route for the CALL-E provider route, and that a fresh session can expose compatible plan, run, and status tools for one-off calls.

Authentication is the hard gate. A bound generated skill that may place real calls needs explicit evidence for:

- provider host runtime, such as Codex, Claude, Antigravity, Cursor, or another MCP-capable agent host
- MCP route setup check result for `https://seleven-mcp-sg.airudder.com/mcp/openagent_oauth`
- provider authentication or auth readiness check result
- compatible MCP provider tools exposed by that configured route

Use the current host's MCP setup and authorization flow. Host adapter examples:

- Codex adapter: configure a server such as `calle-prod`, authenticate it, and re-check with `codex mcp`.
- Claude, Antigravity, Cursor, or another MCP host adapter: configure the MCP server or connector with the route URL, transport, and authentication settings in that host, complete OAuth or managed authorization, and re-check tool availability in a fresh agent session.
- Managed connector/app route: use only the host's documented connector setup and authorization state as route evidence. Do not use similarly named callable app tools as proof that the MCP route is installed or authorized.

Use this setup sequence when the Codex CLI is the selected host adapter:

```bash
codex mcp get calle-prod
codex mcp add calle-prod --url https://seleven-mcp-sg.airudder.com/mcp/openagent_oauth
codex mcp login calle-prod
codex mcp list
```

Skip `add` when `calle-prod` already exists with the required route. Skip `login` only when `codex mcp list` or `codex mcp get calle-prod` shows that OAuth is already ready. If login requires browser completion, stop and wait for the user to finish it before generating a real-call skill.

Provider onboarding is non-mutating for phone-call side effects: do not create provider plans, run calls, write results, expose credentials, or request confirmation tokens during onboarding. MCP setup and provider authorization are allowed only to prepare the host. Do not infer provider readiness from app connector tools, plugin tools, or `mcp__codex_apps__*` namespaces; those are not evidence that the configured CALL-E MCP route is installed or authorized.

For `fully-bound` and `parameterized-bound` generated skills that may place real calls, provider route setup and provider authentication or auth readiness must pass before generation. If no authenticated MCP route is available, stop and ask the user to connect or authorize it, then re-check. If it still cannot be verified, record a provider onboarding blocker and keep the generated skill dry-run-only until provider auth and compatible tools are available.

## Creation Prompts

Use short, explicit prompts during creation. Prefer recommending a safe default instead of leaving the user to infer it.

### Skill Name

When the user has not provided a name, derive one to three lowercase hyphenated candidates from the business context and ask the user to confirm one. Put the best candidate first.

When the user has already provided a name, validate that it is a lowercase hyphenated slug. If it is not valid, suggest the closest valid slug and ask for confirmation before writing files.

### Output Target

Before writing files, state the selected scope, output parent, generated skill directory, why that target was chosen, and whether the host may need a reload or add-location step. Ask the user only when discoverability is unclear, the output path is explicit but not a known

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [CALLE-AI](https://github.com/CALLE-AI)
- **Source:** [CALLE-AI/awesome-phone-call-agents](https://github.com/CALLE-AI/awesome-phone-call-agents)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-calle-ai-awesome-phone-call-agents-outbound-call-skill-creator
- Seller: https://agentstack.voostack.com/s/calle-ai
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
