How to Install All Curriculum Skills and Prompts at Once in AI Engineering from Scratch
Run python3 scripts/install_skills.py <target-directory> --type all to install every skill, prompt, and agent from the curriculum in a single command.
The rohitg00/ai-engineering-from-scratch repository ships with a dedicated installer that automates the extraction of all reusable artifacts. Instead of manually copying files from individual lessons, you can install all curriculum skills and prompts at once using the helper script located at scripts/install_skills.py.
The Installation Script: scripts/install_skills.py
The repository provides [scripts/install_skills.py](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) as the primary entry point for bulk installation. This script orchestrates the entire workflow from discovery to deployment, handling the complex directory structure under phases/**/outputs/ without requiring external dependencies beyond Python's standard library.
The script leverages a minimal YAML parser defined in [scripts/_lib.py](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/_lib.py) to read front-matter metadata from markdown files. It processes three artifact types: skills (skill-*.md), prompts (prompt-*.md), and agents (agent-*.md), copying them to your chosen destination while preserving their organizational structure.
Step-by-Step Installation Process
The installation follows a clear pipeline that ensures accurate deployment of curriculum materials.
Artifact Discovery
The discover_artifacts() function recursively searches the phases/**/outputs/ directory tree. It identifies markdown files matching the patterns skill-*.md, prompt-*.md, or agent-*.md, then extracts metadata from each file's front-matter to determine the artifact's type, phase, lesson, and version.
Filtering and Selection
You can limit the scope using command-line flags:
--typeacceptsskill,prompt,agent, orall(default isskill)--phasefilters by specific phase numbers (e.g.,--phase 1,2,3)--tagfilters by tags defined in the front-matter
Layout Planning
The build_plan() function computes target paths based on your chosen layout strategy:
flatdumps all files into the root target directoryby-phaseorganizes files intophase-NN/subdirectoriesskillsgroups artifacts by type
This function warns about file collisions unless you pass the --force flag.
Applying the Installation
The apply_plan() function executes the copy operation, creating necessary directories and writing files. It always generates a manifest.json in the target root summarizing every installed artifact with its source path, target path, type, and metadata.
Complete Installation Commands
Install the complete curriculum with skills and prompts organized by phase:
# Install all artifact types (skills, prompts, and agents) in by-phase layout:
python3 scripts/install_skills.py ~/my-ai-toolbox \
--type all \
--layout by-phase
Preview changes before writing any files:
python3 scripts/install_skills.py ~/my-ai-toolbox \
--type all \
--layout by-phase \
--dry-run
Force overwrite existing files without confirmation:
python3 scripts/install_skills.py ~/my-ai-toolbox \
--type all \
--layout by-phase \
--force
Install only skills (default behavior) in a flat structure:
python3 scripts/install_skills.py ~/my-ai-toolbox
Understanding the Output Structure
After installation, the target directory contains all markdown artifacts and a manifest.json file. This manifest provides a complete inventory:
{
"schema_version": 1,
"layout": "by-phase",
"totals": {
"artifacts": 503,
"by_type": { "skill": 260, "prompt": 215, "agent": 28 },
"by_phase": { "phase-01": 45, "phase-02": 38 }
},
"artifacts": [
{
"type": "skill",
"name": "agent-loop",
"phase": 14,
"lesson": 1,
"version": "1.0",
"description": "ReAct-style loop for any tool list",
"tags": ["agent", "loop"],
"source": "phases/14-agent-engineering/01-the-agent-loop/outputs/skill-agent-loop.md",
"target": "phase-14/agent-loop.md"
}
]
}
The manifest serves as a reference for tracking which curriculum version you have installed and enables automated tooling to locate specific skills or prompts by tag.
Summary
- Use
scripts/install_skills.pyto install all curriculum skills and prompts at once without manual copying. - Specify
--type allto include skills, prompts, and agents in a single operation. - Choose a layout (
flat,by-phase, orskills) to control how files organize in your target directory. - Leverage
--dry-runto preview changes before committing them to disk. - Trust the
manifest.jsonto provide a complete audit trail of installed artifacts and their source locations.
Frequently Asked Questions
Can I install only specific types of artifacts?
Yes. Use the --type flag to limit installation to skill, prompt, or agent. Omitting this flag defaults to installing only skills. To install everything, explicitly set --type all.
What happens if target files already exist?
The script warns about file collisions and aborts the operation unless you pass --force. This prevents accidental overwrites of existing work while allowing intentional updates when you specify the flag.
How do I preview changes before installing?
Run the command with --dry-run. This executes the discovery and planning phases without calling apply_plan(), showing you exactly which files would copy to which locations without writing any data to disk.
Where are the source files located in the repository?
All source artifacts live under phases/**/outputs/ in the repository root. Each lesson directory contains an outputs folder with its generated skill-*.md, prompt-*.md, or agent-*.md files. The installer script automatically traverses this structure, so you never need to interact with these paths manually.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →