feat(docs): add Tom & Jerry onboarding skill (Claude Code, Codex, Cursor)#330
Open
alon-zino-rosenblum-thenvoi wants to merge 4 commits into
Open
feat(docs): add Tom & Jerry onboarding skill (Claude Code, Codex, Cursor)#330alon-zino-rosenblum-thenvoi wants to merge 4 commits into
alon-zino-rosenblum-thenvoi wants to merge 4 commits into
Conversation
Adds skills/onboarding/SKILL.md, a fetch-and-transform skill that scaffolds a working Tom & Jerry agent pair on the Band.ai platform from credentials in pasted onboarding text. Fetches the live example files at runtime and applies documented transformations, so the skill tracks upstream changes without duplicating agent code. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AskUserQuestion caps at 4 options, so the original single-question picker silently dropped parlant and pydantic_ai. Split into a runtime-category question (framework / Anthropic / Claude SDK / Parlant) followed by a framework-specific question that only fires for the framework bucket. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- crewai+Anthropic and pydantic_ai+Anthropic now add the right extras to pyproject.toml so the native Anthropic providers resolve correctly - Cap requires-python at <3.14 and write a .python-version to avoid pydantic-core PyO3 build failures on Python 3.14 - Replace the upstream module docstring with a one-liner so the file doesn't claim it must be run from the SDK repo root - Fail loudly if the SKILL.md branch can't be parsed from the URL instead of silently falling back to main - Add an explicit uv sync step before the background launches in the "Claude runs them" path Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Same procedure as Claude Code's SKILL.md, adapted for platforms that lack a structured picker UI: - Numbered text lists for user questions instead of AskUserQuestion - curl from the shell instead of WebFetch - nohup + captured PIDs for background launches (in lieu of Claude Code's run_in_background / BashOutput) Three files share the same procedure body and live alongside each other in skills/onboarding/ so band.ai's onboarding flow can serve a per-platform URL. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
skills/onboarding/directory with three platform-flavored markdown skills (Claude Code, Codex, Cursor) that scaffold a working Tom & Jerry agent pair from credentials supplied by band.ai's onboarding flow. The skills fetch the liveexamples/<adapter>/*_agent.pyfiles at runtime and apply documented transformations, so no example code is duplicated and the skill auto-tracks upstream SDK changes.Changes
skills/onboarding/SKILL.md— Claude Code variant (usesAskUserQuestion,WebFetch,run_in_background).skills/onboarding/codex.md— OpenAI Codex variant (numbered-list questions,curl,nohup).skills/onboarding/cursor.md— Cursor Agent variant (same conventions as Codex).langgraph,crewai,pydantic_ai,anthropic,claude_sdk,parlant.crewai+pydantic_aiwhen paired with Anthropic LLM (crewai[anthropic]==1.14.3/pydantic-ai-slim[anthropic]>=1.56.0).requires-python = ">=3.11,<3.14"+.python-version=3.12in the generatedpyproject.tomlto avoid pydantic-core's PyO3 3.14 build failure.band-sdkfrom PyPI (no git source).mainfallback) so the skill never pulls examples from a different branch than where it was loaded from.Related Issues
None opened against this repo yet. Three upstream SDK bugs were surfaced during testing — none caused by this PR, but worth tracking separately:
pydantic_aiadapter passesoutput_type=Nonetopydantic_ai.Agent(...); currentpydantic-ai-slimrejects this and the adapter crashes at startup. Bothpydantic_aicombos fail.parlantadapter has no per-agent uvicorn port override; Tom + Jerry on one machine collide on the default port (8818).claude_sdkadapter intermittently (~20% repro rate) ends its turn mid-task without invokingthenvoi_send_message; subsequent inbound messages don't recover the session, only a process restart does.Testing
Verified end-to-end by scaffolding agents into per-combo directories, launching them locally, creating fresh chats via the human REST API (
POST /me/chats→POST /me/chats/{id}/participants→POST /me/chats/{id}/messages), sending@Tom catch jerry, and confirming both agents exchanged messages on the platform:Also verified by giving the same procedure to Codex via
codex.md: Codex compiled the skill into a Python scaffolder and produced functionally identical outputs across all 9 adapter combos. The skill is platform-portable.uv run pytest tests/ --ignore=tests/integration/)uv run pre-commit run --all-files)Checklist