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:

  • --type accepts skill, prompt, agent, or all (default is skill)
  • --phase filters by specific phase numbers (e.g., --phase 1,2,3)
  • --tag filters by tags defined in the front-matter

Layout Planning

The build_plan() function computes target paths based on your chosen layout strategy:

  • flat dumps all files into the root target directory
  • by-phase organizes files into phase-NN/ subdirectories
  • skills groups 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.py to install all curriculum skills and prompts at once without manual copying.
  • Specify --type all to include skills, prompts, and agents in a single operation.
  • Choose a layout (flat, by-phase, or skills) to control how files organize in your target directory.
  • Leverage --dry-run to preview changes before committing them to disk.
  • Trust the manifest.json to 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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →