Packs, Skills, and Hooks

The three primitives DOS is built from — what each one is, where it lives, and how they compose.

DOS is built from three primitives. Name them precisely and the rest of the system gets much easier to reason about.

Packs

A Pack is a bundled capability — the unit DOS ships and installs. Packs contain one or more Skills, optional Tools (scripts, bridges, helpers), optional Hooks, optional prompts and workflows, and a manifest.

Packs ship as curated bundles from the DOS team. Installing DOS v0.0.3 gives you 26 Packs covering research, media, scraping, brand, sales, memory, security, thinking, investigation, and more. Each Pack lives under Packs/<PackName>/ in the Durante repository and mirrors to ~/.claude/skills/<PackName>/ on install.

A Pack is not a monolith. It is a directory of related workflows that share a domain — MemPalace, for example, contains the Search workflow, the Mine workflow, a Python bridge, and several lifecycle hooks, all bundled because they serve the same job: persistent semantic memory.

Examples from v0.0.3:

  • Research — quick/standard/extensive/deep modes, multi-agent parallel runs, content extraction, Fabric pattern integration.
  • Media — image generation, video rendering, voice cloning, music, podcast production.
  • MemPalace — semantic memory, knowledge graph, content classification, graph exploration.
  • Brand — messaging frameworks, three-layer token architecture, 9-agent research, logo systems.
  • Scraping — Bright Data proxy escalation plus Apify actors for Twitter, Instagram, LinkedIn, TikTok, YouTube.

Want a Pack that does not exist yet?

When you find yourself asking for the same outcome three times, file a Feature Request. Pack authoring is a contributor activity — see contributing to DOS if you want to build one yourself.

Skills

A Skill is a workflow you invoke with the Skill tool. It is the unit of execution inside a Pack.

Invoking Skills
$ Skill("Research", "quick research on post-quantum crypto")

Each Skill has a SKILL.md declaring its name, triggers, description, workflows, and routing rules. When the Algorithm selects a capability during OBSERVE, it commits to calling that capability via the Skill tool (or Task for agents) during BUILD or EXECUTE. Text that looks like a Skill's output but came from no real tool call is not counted — the Algorithm treats phantom invocation as a critical failure.

You almost never name Skills directly. The Algorithm picks them based on the outcome you asked for.

Real Skills in v0.0.3:

  • Skill("Research") — from the Research Pack.
  • Skill("MemPalace") — from the MemPalace Pack.
  • Skill("Thinking") — first principles, iterative depth, council, red teaming.
  • Skill("simplify") — platform-level quality review after code changes.
  • Skill("Agents") — compose custom agents from base traits, voice, specialization.

Some Skills, like simplify, ship with Claude Code itself rather than with a Pack. The Algorithm treats them the same way — selected alongside Pack Skills based on the task.

Hooks

A Hook is code that runs automatically at a Claude Code lifecycle event. Hooks extend the harness without you remembering to do anything.

Hooks are registered in settings.json and fire on events like:

  • SessionStart — MemPalace loads L0+L1 context here.
  • UserPromptSubmit — CorrectionDetector catches real-time corrections here.
  • PreToolUse / PostToolUse — run before/after a tool executes (PRDSync reads PRD.md writes here).
  • Stop — MemPalace auto-checkpoints every 15 messages here.
  • PreCompact — MemPalace emergency-saves before context compaction here.
  • SessionEnd — MemoryHarvest extracts decisions and facts from the transcript here.

Hooks read the PRD, never write it

The model writes the PRD directly during Algorithm runs. Hooks observe the file and sync derived state like work.json from it. A hook that wrote to PRD.md would break the contract.

One example of all three at once

You ask: "Research the top 5 PQC libraries and remember which one we picked."

  • The Algorithm selects two capabilities: the Research Pack and MemPalace.
  • The Research Skill runs — it is the unit invoked via Skill("Research", ...).
  • When the session ends, a Hook (MemoryHarvest.hook.ts) harvests your decision from the transcript into MemPalace so next week's session already knows the answer.

Packs ship. Skills execute. Hooks observe.

Where each one lives

  • PacksPacks/<PackName>/ in the Durante repo, mirrored into ~/.claude/skills/<PackName>/ on install.
  • Skills — inside Packs, declared by a SKILL.md, invoked via the Skill tool at runtime.
  • Hooks — inside Packs under src/Hooks/, registered in ~/.claude/settings.json, executed by the Claude Code harness.

You will install Packs, invoke Skills (indirectly, by asking for outcomes), and configure Hooks once when you first set up DOS. After that, the system runs.

Was this page helpful?