mirror of
https://github.com/botpress/skills.git
synced 2026-09-19 05:20:42 +08:00
f5a710c585
* docs(adk): fix skill gaps surfaced by the 06-20 benchmark sweep
Each change was verified against agent-lack source (runtime/CLI/bundler)
before editing. Skills-only; no runtime/CLI changes.
- ADK-702: custom events nest authored data at event.payload.payload,
not event.payload (conversations.md, patterns-mistakes.md)
- ADK-703: route natural language to execute()/adk.zai.extract instead
of hand-rolled keyword/regex parsers (conversations.md,
patterns-mistakes.md)
- ADK-704: single-quote `adk chat --single` messages; $ expands in
double quotes and silently mangles input (cli.md, adk-test.md)
- ADK-705: test pushed chat:custom events with an eval event turn +
adk evals, not adk chat --single or curl (adk-test.md,
debug-workflow.md, conversations.md)
- ADK-708/707: ship bundled data via static JSON import; assets.get()
returns a URL only, never file bytes (patterns-mistakes.md, assets.md)
- eval event turns take { payload } only (no type field); pushed events
arrive as chat:custom (adk-evals SKILL.md, eval-format.md,
test-patterns.md)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore: format .claude-plugin manifests with oxfmt
Pre-existing format:check failures on dev (multi-line keywords arrays),
unrelated to the skill doc changes — fixes the Code Quality check.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs(adk): address review — guard message access + link zai reference
- patterns-mistakes.md: use message?.payload.text in the WRONG routing
example so it doesn't model an unguarded-access crash on event turns
- conversations.md: cross-link zai-agent-reference.md where adk.zai.extract
is mentioned, so the API and its import are discoverable
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
name, description, argument-hint
| name | description | argument-hint |
|---|---|---|
| adk-test | Invoke an ADK primitive end-to-end with realistic input to confirm it works | [primitive name] [input] |
Load the adk skill, then run the named primitive immediately.
This is exploratory, one-shot testing — does it work right now?. It is distinct from /adk-eval, which writes persistent assertion-based eval files. If the user wants assertions or coverage, route them there.
If $ARGUMENTS is empty, list the user's primitives and ask which to test.
Workflow
- Locate and identify type. Glob
src/**/<name>.ts. The directory tells you the type (action / tool / workflow / conversation / table / trigger / knowledge base). - Build an invocation appropriate for the type. If the user provided input after the primitive name, use it as-is; otherwise generate a realistic probe from the primitive's schema:
- Tool / conversation handler / agent step:
adk chat --single '<probe message that exercises this primitive>' --format json. The probe should plausibly cause the LLM to call the tool / route to the handler. Single-quote the message — in double quotes the shell expands$, so a probe like"I spent $5"reaches the bot mangled. - Action: invoke through
adk run .adk/scratch/test-<name>.tsafter writing a small disposable runner under.adk/scratch/, or via a chat probe that triggers a tool which calls the action. Prefer the runner when the action has a deterministic input shape. - Workflow: trigger via the documented entry point (chat probe, action call, or trigger event).
- Trigger: a
Triggerfires on an external source event that usually can't be produced locally — invoke its handler directly viaadk runwith a synthetic event. (A Conversation's pushedchat:customevent is different: test it with an evaleventturn andadk evals— see/adk-eval.adk chat --singleonly sends user text and can't push one.) - Table: insert a sample row, run a representative query, then delete the row before reporting. Tag the test row with a recognizable marker (e.g., a
__test_<timestamp>value in a string column) so the cleanup query is unambiguous. If the project is linked to a shared or production workspace, ask the user before inserting at all — offer to scope the test to a local dev table instead. - Knowledge base: run a search query against it.
- Tool / conversation handler / agent step:
- Run it and read traces. Capture the response. Run
adk traces --format jsonfiltered to the most recent invocation if the response alone is not enough to judge correctness. - Report. Show the input used, the output, latency, and any errors or surprising behavior. Be explicit if the trace shows the primitive was not exercised (e.g., the LLM ignored the tool).
- Suggest follow-ups. If the test surfaced something worth pinning down, offer
/adk-eval <name>to capture it as a regression eval. If it failed, offer/adk-debugwith the relevant context.
Clean up any disposable runner scripts under .adk/scratch/test-*.ts after the test unless the user asks to keep them.