# What Is the Skills System in AI Engineering from Scratch?

> Understand the AI Engineering Skills System. Discover how this mechanism captures indexes and installs reusable Markdown skills from curriculum lessons in the rohitg00/ai-engineering-from-scratch repository.

- Repository: [Rohit Ghumare/ai-engineering-from-scratch](https://github.com/rohitg00/ai-engineering-from-scratch)
- Tags: deep-dive
- Published: 2026-08-26

---

**The Skills System is the repository-wide mechanism that captures, indexes, and installs reusable Markdown-based skill artifacts produced by the curriculum lessons.**

The Skills System powers the rohitg00/ai-engineering-from-scratch repository by transforming lesson outputs into portable, versioned bundles that learners can discover and install into their own workspaces. It serves as a structured catalog of concrete implementations built throughout the AI engineering curriculum, enabling safe reuse of prompts, agents, and skills across different projects.

## Core Components of the Skills System

### Skill Artifacts and Bundles

At the heart of the system are **skill bundles**—directories located in `phases/**/outputs/` that contain a [`SKILL.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/SKILL.md) file accompanied by supporting assets such as data files or prompt templates. Each bundle includes YAML frontmatter describing the skill’s name, version, description, applicable phase, and tags. These artifacts represent the concrete implementations learners build during each lesson, packaged in a standardized format that the system can index and distribute.

### Discovery Engine in install_skills.py

The discovery logic resides in [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py), which traverses the lesson output directories to identify installable artifacts. According to the source code at lines 185-194, the script specifically looks for directories containing a [`SKILL.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/SKILL.md) file and treats the entire directory as a single skill bundle. The scanner recognizes three distinct artifact types—`skill`, `prompt`, and `agent`—allowing the system to handle diverse curriculum outputs through a unified interface.

### Manifest Generation and Safety

After discovery, the system constructs a [`manifest.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/manifest.json) file that records each artifact’s metadata and target installation path. As implemented in [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) at lines 994-1006, the manifest aggregates totals broken down by artifact type and curriculum phase, providing a comprehensive inventory of available capabilities. The installation process enforces strict safety checks defined at lines 24-50: it rejects symlinks, prevents directory traversal attacks, and performs atomic writes to ensure that skill installations cannot corrupt the target workspace.

### Installation Layout Options

Users can choose from three layout strategies when installing skills. The default `skills` layout places each bundle at `<target>/<skill-name>/SKILL.md`, while the `flat` and `by-phase` alternatives organize files differently to suit various workflow preferences. Regardless of the chosen layout, the system maintains the integrity of skill metadata and preserves the relationship between documentation and supporting files.

## How to Install Skills from the Command Line

The Skills System exposes a command-line interface through [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) that supports filtering by type, phase, and topic tags. The following examples demonstrate common usage patterns:

```bash

# Install all skill bundles into a local "my-skills" directory

python3 scripts/install_skills.py my-skills --type skill --layout skills

# Install only the skill bundles from Phase 07, filtered by the tag "nlp"

python3 scripts/install_skills.py my-skills --phase 7 --tag nlp --layout skills

```

Both commands execute a three-stage pipeline: they scan `phases/**/outputs/` for [`SKILL.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/SKILL.md) bundles, build a safely-validated installation plan, and copy each bundle into the target directory while generating a [`manifest.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/manifest.json) that catalogs every installed skill.

## Integration with Learning Paths

The Skills System integrates with higher-level curriculum tooling through JSON definition files such as [`learning-paths/agent-skills.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/learning-paths/agent-skills.json). These files enumerate available skills and their metadata, enabling certification runners and dynamic curriculum assemblers to reference specific capabilities without hardcoding file paths. This separation between skill definition and skill storage allows the repository to evolve its lesson structure while maintaining stable references for automation scripts.

## Summary

- The Skills System converts lesson outputs into standardized, installable bundles centered on [`SKILL.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/SKILL.md) files located in `phases/**/outputs/`.
- Discovery and installation logic lives in [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py), which generates a [`manifest.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/manifest.json) inventory and enforces security constraints including symlink rejection and atomic writes.
- The system supports three installation layouts (`flat`, `by-phase`, `skills`) and allows filtering by artifact type, curriculum phase, and topical tags.
- Learning path definitions in [`learning-paths/agent-skills.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/learning-paths/agent-skills.json) provide machine-readable catalogs that connect the Skills System to certification and automation workflows.

## Frequently Asked Questions

### What file format defines a skill bundle?

A skill bundle is a directory containing a [`SKILL.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/SKILL.md) file with YAML frontmatter that specifies the skill's name, version, description, phase, and tags. The directory may also include supporting files such as prompts, data samples, or configuration files that the skill requires to function.

### How does the Skills System ensure safe installation?

According to the source code in [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) (lines 24-50), the system implements three safety mechanisms: it explicitly rejects symbolic links to prevent arbitrary file access, validates paths to block directory traversal attacks, and performs atomic write operations to ensure that interrupted installations cannot leave the target workspace in a corrupted state.

### Can I filter skills by phase or topic?

Yes. The [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) CLI accepts `--phase` and `--tag` arguments that limit installation to specific curriculum phases or topical categories. For example, using `--phase 7 --tag nlp` installs only natural-language-processing skills from Phase 07, allowing learners to curate targeted skill collections for specific domains.

### Where is the Skills System source code located?

The primary implementation resides in [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py), which handles discovery, validation, and installation. Supplementary components include [`learning-paths/agent-skills.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/learning-paths/agent-skills.json) (the skill catalog), individual [`SKILL.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/SKILL.md) files within lesson output directories, and [`scripts/build_catalog.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/build_catalog.py) for site-wide catalog generation.