/planning
Discovers user intent and generates a structured, step-by-step plan for model customization workflows. This skill must always be activated alongside any other skill when the user's request relates to model customization — including fine-tuning, training, building, customizing,
$ npx -y skills add awslabs/agent-plugins --skill planning --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/planning
Context preview
The summary Claude sees to decide when to auto-load this skill.
Discovers user intent and generates a structured, step-by-step plan for model customization workflows. This skill must always be activated alongside any other skill when the user's request relates to model customization — including fine-tuning, training, building, customizing,
SKILL.md
planning.SKILL.mdname: planning
description: Discovers user intent and generates a structured, step-by-step plan for model customization workflows. This skill must always be activated alongside any other skill when the user's request relates to model customization — including fine-tuning, training, building, customizing, reviewing data, or getting advice on approach, regardless of domain. Do not skip this skill even if the immediate ask is narrow (e.g., reviewing data format or a single workflow step), because planning discovers the full scope of work needed. Also activate when the user wants to resume, continue, or modify an existing plan.
metadata:
version: "2.0.0"
Principles
- **One question at a time.** Each question should resolve a branching decision in the plan. Avoid generic or out-of-domain questions.
- **Surface constraints early.** If a user decision would constrain downstream options, flag it before the plan is finalized.
- **Keep plans short.** Only include tasks that are necessary for the user's stated goal.
- **Don't ask what you already know.** Check conversation history and project files before asking the user.
---
Phase 1: Brainstorming
**Goal:** Understand what the user wants to accomplish and identify which skills belong in the plan.
Read `references/input-output-contracts.md`, `references/model-customization-plan.md`, and `references/evaluate-first-plan.md` to:
- Identify which skills could be relevant to the user's stated goal.
- Check whether the user has the necessary input artifacts for each skill. If not, find the skills that generate those inputs and add them first.
- Order skills to allow a smooth transition from one to the next and avoid dead ends.
- Check if a recommended workflow matches the user's needs. If not, assess what modifications are needed and verify they are possible against the contracts table.
- Decide which skills in a matching workflow can be skipped.
- Surface limitations early — if a user decision (model choice, region, evaluation method) would constrain downstream options, mention it proactively, get user feedback, and adapt the plan accordingly.
**During brainstorming:**
- **Workflow choice gate:** Before generating any plan, determine whether the user wants the evaluate-first workflow or the direct fine-tuning workflow. If the user has explicitly chosen (e.g., "evaluate first", "skip evaluation", "already evaluated the base model"), proceed with their choice. Otherwise, present both options with brief pros/cons and ask the user to choose. Saying "fine-tune" or naming a technique alone is NOT an explicit choice to skip evaluation — the user may not know evaluate-first is an option. Do NOT present a plan until the user has chosen a path. After they choose, read ONLY the corresponding reference plan.
- Use the Restrictions column of the contracts table to flag constraints as soon as the relevant decision is made. Examples (non-comprehensive list, check contracts table for the full picture):
- User picks a Nova model → alert that deployment regions are limited.
- User picks a region → alert if it conflicts with model availability.
- If a restriction applies, check whether it requires changes to other steps in the plan.
- Do NOT ask the user about base model selection or preferences. Model selection is handled exclusively by the `model-selection` skill.
- Move to Phase 2 as soon as you can determine which skills and tools the plan needs.
---
Phase 2: Plan Generation
**Goal:** Propose a structured plan for the user to review.
Generate a plan as a numbered list of tasks. Each task has:
- A short name
- A one-sentence description of what happens
- Which skill handles it (if applicable)
**Format:**
Based on what you've described, here's what I propose:
1. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])*
2. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])*
3. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])*
Does this plan look right, or would you like to change anything?
**Rules for plan generation:**
- Infer ordering from the Prerequisites column in the contracts table — a skill cannot appear before its prerequisites. If unsure, consult `references/skill-routing-constraints.md`.
- Only offer capabilities covered by an available skill. If the user needs something no skill supports, say so.
- Tailor the plan to the user's actual intent. Not every plan needs every skill.
- If the user already has input artifacts (e.g., a trained model), skip the steps that produce them.
When the user approves the plan, write it to `PLAN.md` and save it under the project directory structure defined by the directory-management skill.
# Plan
1. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
2. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
3. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
**Status indicators:**
- ⬜ Not Started
- 🔄 In Progress
- ✅ Completed
Update `PLAN.md` whenever a task's status changes.
---
Phase 3: Plan Iteration
**Goal:** Refine the plan until the user approves it.
- If the user suggests changes, regenerate the plan incorporating their feedback.
- If the user approves, begin execution by handing off to the first task's skill.
---
Execution
Once the plan is approved:
1. Before starting a task, update its status in `PLAN.md` to 🔄 (In Progress). 2. If the task maps to a skill, load that skill's full SKILL.md before doing any work. Do not attempt the task from general knowledge — always defer to the skill's instructions. 3. Execute the task by following the loaded skill's workflow. 4. When the task completes:
- Update its status in `PLAN.md` to ✅ (Completed). If the task generated output files (scripts, notebooks, manifests), record the file paths under the completed task:
- [x] Fine-tune model
- Output: `scripts/01_sft_finetuning.py`
- Output: `manifests/sft-llama-20260515.json`Read more
name: planning description: Discovers user intent and generates a structured, step-by-step plan for model customization workflows. This skill must always be activated alongside any other skill when the user's request relates to model customization — including fine-tuning, training, building, customizing, reviewing data, or getting advice on approach, regardless of domain. Do not skip this skill even if the immediate ask is narrow (e.g., reviewing data format or a single workflow step), because planning discovers the full scope of work needed. Also activate when the user wants to resume, continue, or modify an existing plan. metadata: version: "2.0.0"
Principles
- **One question at a time.** Each question should resolve a branching decision in the plan. Avoid generic or out-of-domain questions.
- **Surface constraints early.** If a user decision would constrain downstream options, flag it before the plan is finalized.
- **Keep plans short.** Only include tasks that are necessary for the user's stated goal.
- **Don't ask what you already know.** Check conversation history and project files before asking the user.
---
Phase 1: Brainstorming
**Goal:** Understand what the user wants to accomplish and identify which skills belong in the plan.
Read `references/input-output-contracts.md`, `references/model-customization-plan.md`, and `references/evaluate-first-plan.md` to:
- Identify which skills could be relevant to the user's stated goal.
- Check whether the user has the necessary input artifacts for each skill. If not, find the skills that generate those inputs and add them first.
- Order skills to allow a smooth transition from one to the next and avoid dead ends.
- Check if a recommended workflow matches the user's needs. If not, assess what modifications are needed and verify they are possible against the contracts table.
- Decide which skills in a matching workflow can be skipped.
- Surface limitations early — if a user decision (model choice, region, evaluation method) would constrain downstream options, mention it proactively, get user feedback, and adapt the plan accordingly.
**During brainstorming:**
- **Workflow choice gate:** Before generating any plan, determine whether the user wants the evaluate-first workflow or the direct fine-tuning workflow. If the user has explicitly chosen (e.g., "evaluate first", "skip evaluation", "already evaluated the base model"), proceed with their choice. Otherwise, present both options with brief pros/cons and ask the user to choose. Saying "fine-tune" or naming a technique alone is NOT an explicit choice to skip evaluation — the user may not know evaluate-first is an option. Do NOT present a plan until the user has chosen a path. After they choose, read ONLY the corresponding reference plan.
- Use the Restrictions column of the contracts table to flag constraints as soon as the relevant decision is made. Examples (non-comprehensive list, check contracts table for the full picture):
- User picks a Nova model → alert that deployment regions are limited.
- User picks a region → alert if it conflicts with model availability.
- If a restriction applies, check whether it requires changes to other steps in the plan.
- Do NOT ask the user about base model selection or preferences. Model selection is handled exclusively by the `model-selection` skill.
- Move to Phase 2 as soon as you can determine which skills and tools the plan needs.
---
Phase 2: Plan Generation
**Goal:** Propose a structured plan for the user to review.
Generate a plan as a numbered list of tasks. Each task has:
- A short name
- A one-sentence description of what happens
- Which skill handles it (if applicable)
**Format:**
Based on what you've described, here's what I propose: 1. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])* 2. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])* 3. ⬜ **[Task Name]** — [What happens]. *(Skill: [skill-name])* Does this plan look right, or would you like to change anything?
**Rules for plan generation:**
- Infer ordering from the Prerequisites column in the contracts table — a skill cannot appear before its prerequisites. If unsure, consult `references/skill-routing-constraints.md`.
- Only offer capabilities covered by an available skill. If the user needs something no skill supports, say so.
- Tailor the plan to the user's actual intent. Not every plan needs every skill.
- If the user already has input artifacts (e.g., a trained model), skip the steps that produce them.
When the user approves the plan, write it to `PLAN.md` and save it under the project directory structure defined by the directory-management skill.
# Plan 1. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_ 2. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_ 3. ⬜ **[Task Name]** — [Description]. _(Skill: [skill-name])_
**Status indicators:**
- ⬜ Not Started
- 🔄 In Progress
- ✅ Completed
Update `PLAN.md` whenever a task's status changes.
---
Phase 3: Plan Iteration
**Goal:** Refine the plan until the user approves it.
- If the user suggests changes, regenerate the plan incorporating their feedback.
- If the user approves, begin execution by handing off to the first task's skill.
---
Execution
Once the plan is approved:
1. Before starting a task, update its status in `PLAN.md` to 🔄 (In Progress). 2. If the task maps to a skill, load that skill's full SKILL.md before doing any work. Do not attempt the task from general knowledge — always defer to the skill's instructions. 3. Execute the task by following the loaded skill's workflow. 4. When the task completes:
- Update its status in `PLAN.md` to ✅ (Completed). If the task generated output files (scripts, notebooks, manifests), record the file paths under the completed task:
- [x] Fine-tune model
- Output: `scripts/01_sft_finetuning.py`
- Output: `manifests/sft-llama-20260515.json`Read this in other languages: 日本語 Generative AI can make mistakes. You should consider reviewing all output and costs generated by your chosen AI model and agentic coding assistant. See AWS Responsible AI Policy.
Other skills on agent-plugins.
- /amazon-location-service
Integrates Amazon Location Service APIs for AWS applications. Use this skill when users want to add maps (interactive MapLibre or static images); geocode addresses to coordinates or reverse geocode coordinates to addresses; calculate routes, travel times, or service areas; find
Open skill - /amplify-workflow
Build and deploy full-stack web and mobile apps with AWS Amplify Gen2
Open skill - /api-gateway
Build, manage, and operate APIs with Amazon API Gateway (REST, HTTP, and WebSocket). Triggers on phrases like: API Gateway, REST API, HTTP API, WebSocket API, custom domain, Lambda authorizer, usage plan, throttling, CORS, VPC link, private API. Also covers troubleshooting API
Open skill - /aws-lambda-durable-functions
Build resilient, long-running, multi-step applications with AWS Lambda durable functions with automatic state persistence, retry logic, and orchestration for long-running executions. Covers the critical replay model, step operations, wait/callback patterns, error handling with
Open skill - /aws-lambda-managed-instances
Evaluate, configure, and migrate workloads to AWS Lambda Managed Instances (LMI). Triggers on: Lambda Managed Instances, LMI, capacity provider, multi-concurrency Lambda, dedicated instance Lambda, EC2-backed Lambda, cold start elimination, Graviton Lambda, instance type for
Open skill - /aws-lambda-microvms
Build, run, debug, and operate applications on AWS Lambda MicroVMs — Firecracker-isolated, snapshot-resumable serverless compute environments that run inside a container with up to 8-hour lifetimes. Triggers on: Lambda MicroVMs, Firecracker isolation, snapshot-resumable compute,
Open skill

