--- name: scaffold-workshop description: Scaffold and draft a new AgentCore workshop. Use when someone wants to create, scaffold, or start a new workshop directory with boilerplate and initial content. allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Task, TaskCreate, TaskUpdate, TaskList, AskUserQuestion, WebSearch, WebFetch --- # Scaffold Workshop Generate boilerplate files for a new AgentCore workshop, then draft workshop-specific content by researching AWS documentation and following established patterns. ## Usage - `/scaffold-workshop 05_evaluation` — Scaffold and draft content for step 05 - `/scaffold-workshop 08_policy --title "AgentCore Policy"` — Scaffold with a custom title - `/scaffold-workshop 09_browser_use --title "AgentCore Browser Use" --description "Web automation with persistent browser profiles"` — Full custom scaffold ## Arguments `$ARGUMENTS` contains the workshop directory name and optional flags. Parse `$ARGUMENTS` for: - **Positional**: directory name (required, e.g. `05_evaluation`) - **--title**: Workshop title (optional, will be inferred from directory name if not given) - **--description**: One-line description (optional, will be drafted if not given) ## Steps ### 1. Resolve parameters Parse `$ARGUMENTS` to extract `dir_name`, `--title`, and `--description`. If `--title` is missing, infer it from the directory name: - `05_evaluation` → `"AgentCore Evaluation"` - `08_policy` → `"AgentCore Policy"` - `09_browser_use` → `"AgentCore Browser Use"` If `--description` is missing, ask the user with `AskUserQuestion` what the workshop should cover, or let them provide a free-text description. ### 2. Run the scaffold script ```bash cd uv run python .claude/tools/scaffold_workshop.py --title "" --description "<description>" ``` If files already exist, the script will SKIP them (safe to re-run). Inform the user which files were created vs skipped. ### 3. Research the feature Search AWS documentation for the AgentCore feature covered by this workshop: - Use `WebSearch` to find relevant AWS docs, blog posts, and SDK references - Use `WebFetch` to read key documentation pages - Look at existing workshop implementations in the repo for patterns (`Glob` + `Read`) Gather: - The main boto3 / SDK client and API calls involved - Key concepts and terminology - Typical setup → use → cleanup lifecycle - Prerequisites and IAM permissions needed ### 4. Draft README content Edit the generated `README.md` to replace TODO markers with drafted content. **CRITICAL: Preserve all heading levels (`#`, `##`, `###`) and the overall section order exactly as generated by the scaffold template. Only replace the TODO placeholder text and code block contents — never remove, rename, or reorder headings.** Replace TODO content in each section: - **Process Overview**: Replace the TODO mermaid diagram with one showing actual service interactions - **Prerequisites**: Replace TODO items with real AWS permissions and prior workshop dependencies - **File Structure**: Update the tree with likely files the workshop will contain - **Step 1/2 headings**: Replace `TODO: First Action` etc. with real action names, fill in commands and explanations - **Key Implementation Pattern subsections**: Replace `### TODO: Setup Pattern` etc. with named patterns (e.g., `### Policy Client Setup`), add real code snippets based on SDK docs - **Usage Example**: Replace `pass` with a complete working code example - **Benefits section**: Replace TODO bullets with real benefits of the feature - **References**: Replace placeholder links with actual AWS documentation URLs Mark any content that needs verification with `<!-- DRAFT: verify this -->` HTML comments. ### 5. Draft README_ja.md content Edit the generated `README_ja.md` to mirror the English README: - **Preserve all heading levels (`#`, `##`, `###`) and section order exactly** - Translate only the prose and TODO text to Japanese — keep heading structure intact - Keep code blocks, mermaid diagrams, and technical terms in English - Follow the same translation patterns as existing `README_ja.md` files (e.g., 01, 03, 06) ### 6. Draft clean_resources.py Edit the generated `clean_resources.py` with realistic cleanup logic: - Identify what AWS resources the workshop will create - Add proper boto3 client setup and API calls for deletion - Follow the pattern from existing cleanup scripts (06_identity, 07_gateway) - Keep TODO markers for resource IDs that depend on runtime config ### 7. Summary Print a summary of what was created and drafted: - List all files created/modified - Note which sections still need manual review (marked with `<!-- DRAFT -->`) - Suggest next steps (implement the main test script, verify API calls, etc.) ## Reference: Existing Workshop Patterns ### Directory → Feature mapping | Directory | Feature | Category | |-----------|---------|----------| | 01-05 | Foundation capabilities | Foundation | | 06-09 | Extension capabilities | Extension | ### Section heading patterns (English / Japanese) | English | Japanese | |---------|----------| | Process Overview | プロセス概要 | | Prerequisites | 前提条件 | | How to use | 使用方法 | | File Structure | ファイル構成 | | Step N: | ステップN: | | Key Implementation Pattern | 主要な実装パターン | | Usage Example | 使用例 | | References | 参考資料 | | Next Steps | 次のステップ | ### clean_resources.py pattern - Read config from JSON file (if applicable) - Create boto3 client: `boto3.client("bedrock-agentcore-control", region_name=region)` - Delete resources in reverse dependency order - Print status for each deletion - Remove config files at the end - Guard with `if __name__ == "__main__":` ## Important Notes - Never overwrite files the user has already edited — check with `AskUserQuestion` first - All drafted content should use real AWS API names and SDK patterns - Follow CLAUDE.md: no dummy data, meaningful names, proper error handling - The scaffold script lives at `.claude/tools/scaffold_workshop.py`