13 Commits

Author SHA1 Message Date
Augusto Mota Pinheiro 1f12077c0b Update ADK skills from agent-lack master (#54)
* docs(adk): update skills from agent-lack master

* docs(adk): address skill review comments

* docs(adk): address greptile review notes
2026-07-06 11:40:56 -04:00
Yiming Su f5a710c585 docs(adk): fix skill gaps surfaced by the 06-20 benchmark sweep (#52)
* 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>
2026-06-22 16:16:15 -04:00
Augusto Mota Pinheiro 32bbd8cfe1 docs(adk): refresh dependency workflow guidance (#49)
* docs(adk): refresh dependency workflow guidance

* docs(adk): align plugin snapshot terminology

* chore: format plugin metadata

* docs(adk): note that `adk check` does not typecheck — run `tsc --noEmit`

---------

Co-authored-by: Yiming Su <yiming.su@botpress.com>
2026-06-17 11:06:06 -04:00
Aj@Botpress 0acd69a9ce Format ADK skills (#48) 2026-06-12 11:34:27 -04:00
Augusto Mota Pinheiro 117fa0a7f4 refactor(adk): consolidate adk-integrations into main adk skill (#35)
* refactor(adk): consolidate adk-integrations into main adk skill

Merge the standalone adk-integrations skill into the main adk skill's
integrations.md reference. Update all CLI docs to reflect the new
`adk integrations` subcommand structure and lock file system from
agent-lack, replacing the old flat commands and agent.config.ts
dependencies pattern.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(adk): remove stale ADK 1.9+ note from agent-config.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(adk): remove incorrect plugin references from integration docs

Plugins have their own `adk plugins` commands — they don't belong
in `adk integrations` examples.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(adk): add plugins.md reference for plugin management

Document the `adk plugins` CLI subcommands, interface dependency
resolution, lock file structure, and plugin lifecycle. Add to SKILL.md
reference listing and cli.md quick reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: mention plugins in README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs(adk): mention plugins in main SKILL.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(adk): address Greptile review comments

- Add lock files to project structure tree, remove stale "(includes
  integrations)" from agent.config.ts comment
- Add missing --to flag on adk integrations upgrade
- Add missing --dry-run on sync, --from/--to on copy

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(adk): route plugin queries to adk plugins commands in /adk-integration

Addresses Greptile P1: plugin names like desk-hitl were silently
routed to adk integrations commands which can't find them.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs(adk): rename sync/apply to pull-lock/push-lock

Matches agent-lack#594 which renames the dependency-management CLI
commands so direction is unambiguous (pull = cloud → lockfile,
push = lockfile → cloud). "sync" and "apply" were ambiguous because
both are reused elsewhere (kb sync, assets sync) with different meaning.

Also documents the new bundled top-level commands `adk pull-lock` and
`adk push-lock` that run both integrations and plugins at once.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(adk): fix flag scope contradictions in cli.md

- Move `--to <version>` out of "Plugin-specific flags" since
  `adk integrations upgrade` supports it too.
- Add a `pull-lock` options callout — it supports `--dry-run`
  like `push-lock`, but the cli.md callout was missing.

Addresses Greptile review on PR #35.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 15:45:31 -04:00
Augusto Mota Pinheiro 6630ef80f3 feat(adk): document plugin support and --format json for CLI commands (#33)
* feat(adk): document plugin support and --format json for add, remove, upgrade

Syncs skill documentation with agent-lack feat/cli-format-flag branch which
adds plugin support to `adk add/remove/upgrade` and `--format json` to
`remove` and `upgrade`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(adk): clarify adk info/search are integration-only, address Greptile feedback

- Note that `adk info` and `adk search` do not support plugins
- Fix inconsistent `adk list` description ("integrations" → "dependencies")
- Add note about pinned version upgrades via `adk add <name>@<version>`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(adk): use desk-hitl as plugin example instead of hitl

hitl is an integration, not a plugin.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 14:53:01 -04:00
botpress-patchwork[bot] dfba21029d fix(ADK-542): Update skills references from Control Panel to Dev Console (#29)
* chore: initialize branch for ADK-542

* docs(ADK-542): replace 'Control Panel' with 'Dev Console' across skills and commands

Update all references from 'Control Panel' to 'Dev Console' in skills
(adk-integrations, adk-evals, adk-debugger) and commands (adk-ship,
adk-dev-console) to use the canonical term. Also removes redundant
'(control panel)' parenthetical from adk-ship.md.

---------

Co-authored-by: Patchwork <patchwork[bot]@botpress.com>
2026-04-30 17:05:04 +00:00
Augusto Mota Pinheiro dd6736eb9f fix(commands): use relative paths in manifest generation (#27)
* fix(commands): use relative paths in manifest generation

* chore(commands): include generated timestamp in manifest

* chore(commands): stop including generated timestamp in manifest
2026-04-28 11:02:26 -04:00
Augusto Mota Pinheiro 0b790caa4a feat(adk): improve command guidance and add dev console docs (#24)
* feat(adk): improve command guidance and add dev console docs

Update debug, eval, explain, integration, and init command flows to use more specific project context.
Add the adk-dev-console skill, UI references, and register the new command.

* feat(adk-dev-console): add dev console command guidance

* feat(adk-document): consolidate documentation commands

* fix: address greptile review comments

- Fix `}}` typo in Glob calls in adk-eval.md and adk-frontend.md
- Add /adk-dev-console to command discovery menu in adk/SKILL.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(adk): add build, validate, test, and ship commands

Adds four new commands to round out the ADK lifecycle:
- /adk-build: interview the user about a new primitive, then build it
- /adk-validate: proactive schema/imports/config-deps check (counterpart to /adk-debug)
- /adk-test: one-shot end-to-end invocation (distinct from /adk-eval)
- /adk-ship: pre-flight checks + deploy, never auto --yes

Updates SKILL.md command index with a new Ship group and regenerates manifest.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-build): interview about outcomes, not implementation

Replace schema/return-type/durability questions with outcome and
user-visible behavior questions. The agent infers implementation
details from the description and existing primitives.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-ship): drop adk chat smoke test, it hits dev bot

adk chat --single runs against the linked local dev bot, not the
deployed one, so it can't validate a production deploy. Direct the
user to the Dev Console for live verification instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-test): use .adk/scripts/ for disposable runners

Disposable test runners belong under the project's .adk/ workspace,
not the repo's top-level scripts/ directory.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-validate): run typecheck and adk check before reading file

Project-wide compilation issues should surface before primitive-level
inspection — they often explain or supersede the primitive's apparent
problems. Run typecheck (project script if defined, else tsc --noEmit)
and adk check in parallel as step 1, then filter their output against
the primitive in step 4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(adk/cli): warn that adk chat hits dev bot, not production

Make the dev-vs-prod distinction explicit in the cli reference so
future command authors don't reintroduce adk chat as a post-deploy
smoke test. Also document --single, which the commands rely on but
the reference didn't mention.

Addresses Greptile P2 on PR #25.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk): address remaining greptile review comments

- adk-ship: drop unused [message] from argument-hint
- adk-ship: always re-run pre-flight; filesystem changes between
  invocations are not detectable from within the conversation
- adk-validate: gate fix-mode on a literal --fix flag, never on a
  bare "fix" token, so it doesn't clash with a primitive named "fix"
- adk-test: require deletion of the inserted table row after the
  query, mark it with a recognizable tag, and prompt before inserting
  into a shared/production workspace

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-ship): drop --env flag entirely

Remove the --env <env> argument-hint and all references in the
workflow. /adk-ship now always deploys to the project's default
environment via plain `adk deploy`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-validate): remove --fix mode

Drop the auto-fix path entirely. /adk-validate is now report-only —
let the user decide which fixes to apply. This also removes the
ambiguity with a primitive legitimately named "fix".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(adk-validate): accept a feature, not just a single primitive

The argument can be either a single primitive (one file under src/) or
a feature spanning multiple primitives (e.g. a checkout flow as
workflow + action + table). Resolution tries an exact primitive match
first, falls back to a codebase search and asks the user to confirm
the candidate set, then runs the same baseline + static checks across
all matched files. Feature mode adds a wiring summary to the report.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(adk-build): build a primitive or a whole feature

Mirror /adk-validate's primitive-or-feature distinction: the target
can be a single primitive (one file) or a feature spanning several
primitives wired together. Detection: if the first token is a
recognized primitive type, build single; otherwise treat the whole
argument as a feature description and decompose it.

Adds a Decompose step (feature mode only) where the agent identifies
which primitives the feature needs and explains the choice. The Build
step now writes files in dependency order so imports resolve. The
suggest-next-steps line includes /adk-validate for wiring confirmation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-ship): name slash commands in wrap-up nudges

User-facing next-steps should point at agent commands, not CLI. Step
6's "regression eval" / "soak check" suggestions now route to
/adk-eval and /schedule explicitly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk): enforce post-build adk check, prefer existing conversations,
drop /schedule from /adk-ship

- /adk-build step 1 now globs src/conversations/*.ts up front; new
  conversation behavior must extend an existing handler rather than
  spawn a new file unless none exists or the user asked for one.
- /adk-build step 5 reinforces the same rule at the write step.
- /adk-build step 6 makes adk check --format json mandatory after
  every build, with errors and warnings resolved in the same turn
  before reporting done.
- /adk-ship wrap-up no longer references /schedule. ADK slash commands
  should keep suggestions within the /adk-* family.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk): use .adk/scratch for disposable runners; tighten ship confirm

- cli.md Best Practices: keep "don't edit .adk/" but carve out an
  explicit exception for .adk/scratch/, which is reserved for
  disposable user/agent files. adk dev does not touch it.
- /adk-test: rename .adk/scripts/ -> .adk/scratch/ in both the runner
  invocation and the cleanup line. The previous .adk/scripts/ path
  conflicted with the "don't edit .adk/" rule and could be wiped by
  the next adk dev run.
- /adk-ship step 3: always confirm before deploying. The previous
  wording only handled blockers and warnings; an all-green pre-flight
  fell through to step 4 unconfirmed, contradicting the preamble.

Addresses Greptile P1 comments on PR #25.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adk-build): block overlapping-channel conversation handlers

The previous "extend an existing conversation handler" rule wasn't
strict enough — /adk-build kept creating new conversation files whose
channel: array duplicated the default handler's, so both fired on the
same message and routing got ambiguous.

Make the rule precise:

- Step 1 now requires reading *every* handler under src/conversations/
  and recording its channel: field. Defines overlap explicitly: * is
  universal, identical arrays overlap, arrays sharing any one channel
  overlap.
- Default behavior is extend-not-add when channels overlap.
- A new conversation file is only justified when its channel set is
  fully disjoint from every existing handler, or the user explicitly
  asked for a separate handler.
- Step 4 requires a one-line "channel-overlap check" in the plan
  whenever a new conversation file is proposed, so the choice can be
  challenged before code is written.
- Step 5 enforces the rule at build time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(adk/cli): document check, status, logs, traces, evals

These commands are referenced extensively across the adk-debugger,
adk-evals, and adk skills, and used by the new /adk-build, /adk-test,
/adk-validate, and /adk-ship commands — but none of them appeared in
the cli.md reference. Greptile correctly flagged that future agents
have no way to verify these commands exist.

Documents each one with the flag patterns the existing skills already
use:

- adk check: offline validation, --format
- adk status: link/version metadata, read-only
- adk logs: severity filter, --follow, since=
- adk traces: execution traces, --conversation-id
- adk evals: name filter, --tag, --type, runs subcommand

Inserted after adk chat in the Commands section so debug-flow tools
sit together.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Aj@Botpress <ajaykumar.mudaliar@botpress.com>
2026-04-28 09:49:42 -04:00
Augusto Mota Pinheiro f65cc8a007 chore: add manifest generation script and CI check (#23)
* chore: add script to generate commands manifest

Adds scripts/generate-manifest.sh that scans commands/*.md frontmatter
and produces commands/manifest.json with all commands listed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: add CI check for manifest freshness

Runs generate-manifest.sh on PRs touching commands/ and fails if the
committed manifest.json doesn't match.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: remove auto-commit generate-manifest workflow

Replaced by the check-manifest CI check and the local script.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(commands): regenerate manifest to include adk-explain command

* address greptile review feedback (greploop iteration 1)

- Remove generatedAt field to avoid date drift CI failures
- Use jq for safe JSON construction (no injection from descriptions)
- Fix double trailing newline
- Add scripts/generate-manifest.sh to CI path trigger

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use sed instead of awk for description extraction

Avoids truncating descriptions containing ': ' (awk $2 only captures
the first field after the delimiter).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 17:11:44 -04:00
Augusto Mota Pinheiro b2ee35b766 feat(adk-explain): add adk-explain slash command (ADK-529) (#22)
* feat(adk-explain): add adk-explain slash command (ADK-529)

Add a new command that explains an ADK bot's architecture, flow, and
components using `adk status --format json` and the existing
explain-config reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: add agent.json and agent.local.json data-gathering steps

Address Greptile review: explicitly read agent.json (bot/workspace IDs)
and agent.local.json (dev bot ID) before following the explanation
patterns, matching the four data sources in explain-config.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add GitHub Action to auto-generate commands manifest

Adds a workflow that regenerates commands/manifest.json whenever
command .md files change on master. Also includes the initial
manifest with all 11 commands.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: add check-shells workflow from agent-lack

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: enable check_actions in check-shells workflow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: shell precedence bug in manifest workflow, revert check_actions

Wrap commit+push in a subshell so git push only runs when there's
actually a new commit. Revert check_actions to false.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 16:00:17 -04:00
Augusto Mota Pinheiro df9e30f001 feat(adk-docs): add adk-docs skill with 5 doc commands (ADK-262) (#14)
* feat: add commands layer and plugin manifest (ADK-263)

- Add commands/ directory with 5 Claude Code slash commands:
  adk-init, adk-debug, adk-eval, adk-frontend, adk-integration
- Add .claude-plugin/plugin.json to make repo a valid CC plugin
- Update adk SKILL.md with plugin installation prompt
- Update README with commands section and install instructions

Closes ADK-263

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: quote argument-hint brackets in command frontmatter

YAML interprets unquoted [...]  as a flow sequence. Wrap in quotes
to avoid parsing issues in Claude Code TUI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(adk-docs): add adk-docs skill with 5 doc commands (ADK-262)

Port the adk-doc-* commands from botpress-claude-marketplace into a new
adk-docs skill. Helps users create, review, update, sync-check, and
search documentation for their own ADK bot projects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* address greptile review feedback (greploop iteration 1)

- Fix $1/$2 positional vars in adk-doc-update (only $ARGUMENTS is valid)
- Fix regex precedence bug in adk-doc-sync grep pattern

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:19:32 -04:00
Augusto Mota Pinheiro 6f1e6e34cb feat: add commands layer and plugin manifest (#13)
* feat: add commands layer and plugin manifest (ADK-263)

- Add commands/ directory with 5 Claude Code slash commands:
  adk-init, adk-debug, adk-eval, adk-frontend, adk-integration
- Add .claude-plugin/plugin.json to make repo a valid CC plugin
- Update adk SKILL.md with plugin installation prompt
- Update README with commands section and install instructions

Closes ADK-263

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: quote argument-hint brackets in command frontmatter

YAML interprets unquoted [...]  as a flow sequence. Wrap in quotes
to avoid parsing issues in Claude Code TUI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:07:23 -04:00