# How to Install All Curriculum Skills and Prompts at Once in AI Engineering from Scratch

> Install all AI Engineering curriculum skills and prompts at once using a single command. Streamline your setup with our easy to follow guide for rohitg00/ai-engineering-from-scratch.

- Repository: [Rohit Ghumare/ai-engineering-from-scratch](https://github.com/rohitg00/ai-engineering-from-scratch)
- Tags: how-to-guide
- Published: 2026-06-17

---

**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`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py).

## The Installation Script: [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/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)](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)](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`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/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:

```bash

# 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:

```bash
python3 scripts/install_skills.py ~/my-ai-toolbox \
  --type all \
  --layout by-phase \
  --dry-run

```

Force overwrite existing files without confirmation:

```bash
python3 scripts/install_skills.py ~/my-ai-toolbox \
  --type all \
  --layout by-phase \
  --force

```

Install only skills (default behavior) in a flat structure:

```bash
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`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/manifest.json) file. This manifest provides a complete inventory:

```json
{
  "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`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/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`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/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.