Skip to content
Back to skills

Hands On Labs

ASecurity

**Duration:** 30 minutes **Difficulty:** Beginner **Prerequisites:** Kiro IDE or CLI installed ---

  • 10 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added June 13, 2026
ai-agentspythongobashreactnodefastapitestinggitapidocumentation

Works with

  • vscode
  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned June 13, 2026

npx -y skills add timwukp/agent-skills-best-practice --skill hands-on-labs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hands On Labs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hands On Labs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/timwukp-hands-on-labs/badge)](https://www.skillsdirectory.com/skills/timwukp-hands-on-labs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Lab 1: Build a Simple Document Creation Skill

**Duration:** 30 minutes  
**Difficulty:** Beginner  
**Prerequisites:** Kiro IDE or CLI installed

---

## Objective

Build a skill that creates standardized project documentation with your team's templates.

## Skills You'll Practice

- SKILL.md structure
- YAML frontmatter
- Basic instructions
- Testing triggering

---

## Scenario

Your team needs to create project documentation for every new project. The documentation should include:
- Project README with standard sections
- CONTRIBUTING.md with team guidelines
- LICENSE file
- .gitignore for your tech stack

Currently, team members copy-paste from old projects or forget sections. You'll create a skill to automate this.

---

## Step 1: Plan Your Skill (10 minutes)

### Define Use Cases

**Use Case 1:** Create new project documentation
- **Trigger:** "Set up project docs", "create project documentation", "initialize project files"
- **Steps:** Create README, CONTRIBUTING, LICENSE, .gitignore
- **Result:** Complete documentation set

**Use Case 2:** Add missing documentation
- **Trigger:** "Add CONTRIBUTING file", "create LICENSE"
- **Steps:** Create specific missing file
- **Result:** Single file created

### Define Success Criteria

**Quantitative:**
- Triggers on 90% of "project docs" queries
- Creates all 4 files in < 30 seconds
- 0 formatting errors

**Qualitative:**
- Team members don't need to ask what sections to include
- Consistent documentation across all projects

---

## Step 2: Create SKILL.md (20 minutes)

### Create Folder Structure

```bash
mkdir -p ~/.kiro/skills/project-docs
cd ~/.kiro/skills/project-docs
touch SKILL.md
```

### Write SKILL.md

```yaml
---
name: project-docs
description: Creates standardized project documentation including README, 
  CONTRIBUTING, LICENSE, and .gitignore files. Use when user says "set up 
  project docs", "create project documentation", "initialize project files", 
  or "add project README".
metadata:
  author: Your Name
  version: 1.0.0
  category: documentation
---

# Project Documentation Creator

Creates complete, standardized project documentation for new projects.

## Instructions

### Step 1: Gather Project Information
Ask the user for:
- Project name
- Project description (1-2 sentences)
- Tech stack (e.g., Python, Node.js, React)
- License type (MIT, Apache-2.0, or other)

### Step 2: Create README.md
Generate README with these sections:
```markdown
# [Project Name]

[Project Description]

## Features
- [Key feature 1]
- [Key feature 2]
- [Key feature 3]

## Installation
\`\`\`bash
# Installation commands based on tech stack
\`\`\`

## Usage
\`\`\`bash
# Basic usage examples
\`\`\`

## Contributing
See CONTRIBUTING.md for guidelines.

## License
This project is licensed under the [License Type] License - see LICENSE file.
```

### Step 3: Create CONTRIBUTING.md
Generate CONTRIBUTING with:
- Code of conduct
- How to report bugs
- How to suggest features
- Pull request process
- Coding standards

### Step 4: Create LICENSE
Generate LICENSE file based on user's choice:
- MIT License
- Apache 2.0 License
- Or other specified license

### Step 5: Create .gitignore
Generate .gitignore based on tech stack:
- Python: `__pycache__/`, `*.pyc`, `.env`, `venv/`
- Node.js: `node_modules/`, `.env`, `dist/`
- General: `.DS_Store`, `*.log`, `.vscode/`

### Step 6: Confirm Completion
List all created files and their locations.

## Examples

### Example 1: New Python Project
User says: "Set up project docs for a new Python API"

Actions:
1. Ask for project name, description, license
2. Create README.md with Python-specific installation
3. Create CONTRIBUTING.md
4. Create LICENSE (MIT)
5. Create .gitignore with Python patterns

Result: 4 files created in current directory

### Example 2: Add Missing File
User says: "Add a CONTRIBUTING file"

Actions:
1. Create only CONTRIBUTING.md
2. Use team's standard guidelines

Result: CONTRIBUTING.md created

## Troubleshooting

### Error: File already exists
**Cause:** Documentation files already present  
**Solution:** Ask user if they want to overwrite or skip

### Error: Unknown tech stack
**Cause:** User specified unfamiliar technology  
**Solution:** Ask for clarification or use general .gitignore patterns
```

---

## Step 3: Test Your Skill (10 minutes)

### Test Triggering

Try these phrases in Kiro:

**Should Trigger:**
- "Set up project docs"
- "Create project documentation"
- "Initialize project files"
- "Add project README"
- "I need documentation for a new project"

**Should NOT Trigger:**
- "What's the weather?"
- "Write Python code"
- "Explain documentation"

### Test Functionality

1. **Full Documentation Set:**
```
"Set up project docs for a new Python API called 'FastAPI Demo' 
that provides REST endpoints. Use MIT license."
```

Expected: 4 files created (README, CONTRIBUTING, LICENSE, .gitignore)

2. **Single File:**
```
"Add a CONTRIBUTING file"
```

Expected: Only CONTRIBUTING.md created

3. **Different Tech Stack:**
```
"Create project docs for a React app"
```

Expected: .gitignore includes node_modules/, not Python patterns

---

## Step 4: Iterate (5 minutes)

### If Skill Doesn't Trigger
- Add more trigger phrases to description
- Make description more "pushy"
- Include specific keywords like "documentation", "README", "project setup"

### If Output is Incorrect
- Clarify instructions for each file
- Add more examples
- Specify exact format expected

### If Errors Occur
- Add error handling for edge cases
- Include troubleshooting section
- Test with various inputs

---

## Success Criteria

You've successfully completed this lab if:
- ✅ Skill triggers on project documentation requests
- ✅ Creates all 4 documentation files
- ✅ Files contain appropriate content for tech stack
- ✅ Skill doesn't trigger on unrelated queries
- ✅ You can explain how progressive disclosure works

---

## Bonus Challenges

1. **Add Templates:** Create `assets/` folder with template files
2. **Add Validation:** Check if files already exist before creating
3. **Add Customization:** Let users specify which files to create
4. **Add Styling:** Include team-specific branding in README

---

## Next Steps

- Deploy to your team
- Collect feedback
- Iterate on description and instructions
- Move on to Lab 2 for MCP integration

---

## Solution

A complete solution is available in `./examples.md`

Compare your implementation and note differences.

Files in this skill

  • LAB1-SIMPLE-SKILL.md6.3 KB
  • LAB2-MCP-INTEGRATION.md8.7 KB
  • LAB3-ENTERPRISE-WORKFLOW.md11.5 KB
  • examples.md1.7 KB
  • exercises.md600 B
  • templates.md620 B
  • test-cases.md998 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.