polyai/adk/poly-adk-workflow
Claude Code and agent skill by polyai/adk
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
This skill should be used when the user wants to "build an agent", "update an agent", "create a PolyAI project", "push changes to Agent Studio", or work with the PolyAI ADK (`poly`) in any way. Entrypoint for the PolyAI ADK skills suite — covers setup, project structure, resource choice, and the core edit/validate/push/test/merge workflow, and routes to the task-specific skills (testing, branching, conversations, rtc).
Install
npx vskill@latest install polyai/adk/poly-adk-workflowSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
PolyAI ADK workflow
The PolyAI ADK (poly) is a CLI for building dialog agents on the Agent Studio platform. It gives you a Git-like local workflow: agent resources (flows, functions, topics, entities, settings) live on disk as YAML, text, and Python files, and you pull, push, branch, and merge them against the platform.
Use poly <command> --help as the source of truth for flags. Almost every command accepts --json (a single JSON object on stdout, exit code 0 on success) — prefer it when you need to parse output.
Task-specific skills
This skill covers setup and the core loop. Load the matching skill when the task goes deeper:
| Task | Skill | |
|---|---|---|
| Testing the agent — scripted chat, running the test suite, writing test cases | poly-adk-testing | |
| Merge conflicts, branch management, sharing reviews | poly-adk-branching | |
| Inspecting real conversations, logging and metrics | poly-adk-conversations | |
| Per-environment real-time configuration | poly-adk-rtc |
1. Installing and updating
Assume poly is installed. If a command fails because it isn't:
- Install →
uv tool install polyai-adk(installuvfirst if needed:curl -LsSf https://astral.sh/uv/install.sh | sh) - Update to latest →
uv tool upgrade polyai-adk
2. Authentication
Assume the user is already logged in — do not check credentials up front. Only if a command fails with an authentication error, ask the user to run poly login — it opens a browser to sign in, so they must complete it themselves. Regions: studio for self-serve accounts, us / eu / uk for enterprise workspaces. On a fresh machine, poly setup runs sign-in plus shell completion, AI skills, and project setup in one command.
Credentials are resolved in this order: ~/.poly/credentials.json (written by poly login), then a region-scoped env var (POLY_ADK_KEY_US / POLY_ADK_KEY_EUW / POLY_ADK_KEY_UK / POLY_ADK_KEY_STUDIO), then POLY_ADK_KEY — useful when debugging why the CLI is using the wrong account or region. POLY_API_KEY is an account API key for the PolyAI APIs; the ADK does not read it, so exporting it does not log the CLI in. When no ADK key resolves, the error names the region, any other regions that already hold a key, and poly login --region <region> as the fix.
3. Load the resource documentation
Before creating or editing any resource, load the built-in docs — they define each resource type's exact schema, valid values, and conventions:
Read the relevant sections before writing files. Do not guess at resource schemas — poly docs is authoritative for the installed version.
Choosing the right resource type
The three that overlap most are rules, topics, and functions. The test: if an instruction is always true, it belongs in agent_settings/rules.txt; if it's only relevant when a subject comes up, it belongs in a topic; if it needs a comparison, calculation, or API call, it belongs in a Python function. Prompts are for collecting and presenting information; Python is for branching, routing, and validation — never write "if X then Y" conditionals in prompt text.
Resources reference each other by name with {{prefix:name}} placeholders ({{fn:}} functions, {{entity:}} entities, {{ho:}} handoffs, {{attr:}} variant attributes, {{vrbl:}} state variables, {{twilio_sms:}} SMS templates, {{tn:}} translations). poly validate checks every reference resolves.
4. Set up or connect a project
Projects land in a <account_id>/<project_id>/ directory. Run all `poly` commands from inside the project directory, or pass --path.
A project looks like:
5. The core development loop
You cannot work on `main`. Every change goes on a branch. The branch you are on determines what poly push writes to and what poly chat talks to.
Key distinctions:
poly status/poly diffshow unpushed local edits;poly branch status/poly branch diffshow everything on the branch since it was created. Use the branch-level commands before merging.poly revertdiscards local changes;poly formatnormalizes resource files.poly pullthree-way merges rather than overwriting, andpoly branch mergecan conflict — if either reports conflicts, loadpoly-adk-branchingfor the resolution workflow.
6. Testing
Four layers, catching different problems — load poly-adk-testing for the details of each:
| Command | Catches | Runs against | |
|---|---|---|---|
poly validate | Invalid resources, missing values, broken references | Local files | |
poly chat | Conversational behavior, judged by reading | Last pushed state | |
poly test run | Regressions, repeatably | Last pushed state | |
poly conversations | What happened on real calls | Live traffic |
poly chat and poly test run run against the last pushed state, not local files — push first, or use poly chat --push / poly test run --push.
7. Deployment
Merging into main deploys to sandbox automatically. From there, promotion is one step at a time up the ladder — sandbox → pre-release → live:
Never promote to `pre-release` or `live` unless the user explicitly asks — live is production. Use --dry-run first to preview, and re-run tests against each environment after promoting. See poly deployments --help for the full surface, including rollback.
Rules and gotchas
- Never edit anything under
_gen/— generated stubs. - Never work on
main; checkpoly branch currentif unsure. - Run
poly validatebefore every push — push runs the same validation and rejects what validate rejects. - Python functions callable by the model need
@func_descriptionand@func_parameterdecorators; without them the platform creates the function with no parameters and calls fail at runtime. Lifecycle functions and function steps don't need them. - Keep resource names stable — resources reference each other by name (
{{prefix:name}}syntax). - Keep branches small and focused; pull before starting work so conflicts stay small.
- The web UI edits the same branches — someone may change the branch in Agent Studio while you work;
poly pullreconciles.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/poly-adk-workflow/SKILL.md
Popularity
- Repository stars
- 83
- Repository forks
- 20
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/polyai/adk/poly-adk-workflow)