use-case-specification

$npx mdskill add awslabs/agent-plugins/use-case-specification

Creates a use case specification for model customization.

  • Solves the need for a documented business problem and success criteria.
  • Depends on user conversation and existing project files.
  • Infers details from context and asks only for missing information.
  • Produces a reusable markdown file for the project.

SKILL.md

.github/skills/use-case-specificationView on GitHub ↗
---
name: use-case-specification
description: Creates a reusable use case specification file that defines the business problem, stakeholders, and measurable success criteria for model customization, as recommended by the AWS Responsible AI Lens. Use as the default first step in any model customization plan. Skip only if the user explicitly declines or already has a use case specification to reuse. Captures problem statement, primary users, and LLM-as-a-Judge success tenets.
metadata:
  version: "1.0.0"
---

# Use Case Specification

Multi-turn conversation to gather use case details and produce a use case specification document.

## Principles

1. **One thing at a time.** Each response advances exactly one decision or collects one piece of information.
2. **Confirm before proceeding.** Wait for the user to approve the spec before considering this skill complete.
3. **Infer, don't interrogate.** Use what's already known from the conversation. Only ask when you truly can't infer.
4. **Do NOT ask about base model selection.** Model selection is handled exclusively by the model-selection skill.

## Workflow

### Step 0: Check for Existing Spec

Before starting discovery, check if a `*_use_case_spec.md` file already exists in the project. If it does, present it to the user and ask whether they want to reuse it, modify it, or start fresh.

### Phase 1: Discovery (1–3 turns)

Review what is already known from the conversation so far, then identify what is still missing. You need these three things:

- **What** is the problem the user is trying to solve with model customization
- **Who** will use the finetuned model and in what context
- **Which** success criteria can be used to evaluate how well the custom model performs compared to the base model on a test set. Success criteria must be measurable by an LLM-as-a-Judge (e.g., response accuracy, tone adherence) — not things like latency or throughput.

**Guidelines**:

- Infer as much as possible from what the user has already said
- If the user gave examples, use them to fill gaps rather than asking again
- Only ask clarifying questions when you cannot infer the information needed for Phase 2
- If everything is already clear, say "You've given me a clear picture. I'll put together a use case specification now." and move to Phase 2.

⏸ Wait for user after each clarifying question.

### Phase 2: Producing a Use Case Specification Document

1. Save all generated artifacts under the project directory structure defined by the directory-management skill, if available.
2. Synthesize the information you collected from the user into a Markdown document called [relevant_title]_use_case_spec.md containing the following fields (and only these fields):

```
Use case description
  - Concise problem statement + what the custom model will do
  - Field name: “Business Problem”
  - Type: String

Key stakeholders
  - Who uses the model and in what context
  - Field name: “Primary Users”
  - Type: String, comma separated if there are multiple 

Success criteria
  - A list of 3 criteria (a short name and a description) with which the user measure the success of the custom model. 
  - Field name: “Success Tenets”
  - Type: list of name-description pairs
```

1. Present the use case specification in a human-readable format as follows:

I have put together a use case specification and saved it in [relevant_title]_use_case_spec.md.

A use case specification is a design principle recommended by the [AWS Responsible AI Lens](https://docs.aws.amazon.com/wellarchitected/latest/responsible-ai-lens/design-principles.html).

[use case in human-readable format]

Does this match your intent?

⏸ Wait for user approval.

## use_case_specification Edit Protocol

- If the user requests changes pertaining to any information covered by use_case_spec.md, you must edit it accordingly and ask for confirmation again.
- The user can edit use_case_spec.md directly if they want to. If the user says they've updated the file directly, read it to get the latest in your context.

More from awslabs/agent-plugins

SkillDescription
amazon-location-serviceIntegrates 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 places and businesses through text search, nearby search, or autocomplete suggestions; retrieve detailed place information including hours, contacts, and addresses; monitor geographical boundaries with geofences; or track device locations. Covers authentication, SDK integration, and all Amazon Location Service capabilities.
amplify-workflow'Build and deploy full-stack web and mobile apps with AWS Amplify Gen2
aws-architecture-diagramGenerate validated AWS architecture diagrams as draw.io XML using official AWS4 icon libraries. Use this skill whenever the user wants to create, generate, or design AWS architecture diagrams, cloud infrastructure diagrams, or system design visuals. Also triggers for requests to visualize existing infrastructure from CloudFormation, CDK, or Terraform code. Supports two modes: analyze an existing codebase to auto-generate diagrams, or brainstorm interactively from scratch. Exports .drawio files with optional PNG/SVG/PDF export via draw.io desktop CLI.
aws-lambdaDesign, build, deploy, test, and debug serverless applications with AWS Lambda. Triggers on phrases like: Lambda function, event source, serverless application, API Gateway, EventBridge, Step Functions, serverless API, event-driven architecture, Lambda trigger. For deploying non-serverless apps to AWS, use deploy-on-aws plugin instead.
aws-lambda-durable-functions>
aws-lambda-managed-instances>
aws-lambda-microvms>
aws-serverless-deploymentAWS SAM and AWS CDK deployment for serverless applications. Triggers on phrases like: use SAM, SAM template, SAM init, SAM deploy, CDK serverless, CDK Lambda construct, NodejsFunction, PythonFunction, SAM and CDK together, serverless CI/CD pipeline. For general app deployment with service selection, use deploy-on-aws plugin instead.
aws-step-functionsBuild workflows with AWS Step Functions state machines using the JSONata query language. Covers Amazon States Language (ASL) structure, state types, variables, data transformation, error handling, AWS service integration, and migrating from the JSONPath to the JSONata query language.
aws-transformMigrate, modernize, and upgrade codebases to AWS. Run analysis on repos for tech debt, security vulnerabilities, and modernization opportunities. Transforms .NET Framework to .NET 8/10, mainframe COBOL to Java, VMware VMs to EC2, SQL Server to Aurora, and upgrades Java/Python/Node.js versions and AWS SDKs. Use when the user says "migrate .NET to AWS", "upgrade Java to 17/21", "modernize COBOL", "modernize mainframe", "move VMware to EC2", "convert SQL Server to Aurora", "upgrade Python version", "migrate AWS SDK", "transform this codebase", "analyze for issues", "find tech debt", "what tech debt", "security vulnerabilities", "CVEs", "what's wrong with my code", "assess my repos", "where do I start", "find what's outdated", "analyze my repos", "AWS Transform - continuous modernization", "continuous modernization" or "continuous-modernization". Don't use for infrastructure provisioning, CI/CD pipelines, or general coding tasks.