DAL skills and packages: how the system is organized

Skills and packages are how DAL stays modular—focused capability files and larger domain bundles instead of one giant prompt.

This article explains how they are organized in the repository and when to reach for each.

  • packages: higher-level capability bundles under packages/
  • skills: focused .skill.dal files that describe what the agent can do in a narrow domain

Together, they form a practical modular system for extending the agent without stuffing everything into one prompt or one giant runtime file.

What a package is

A package groups related functionality, templates, scripts, tests, and skills.

In this repo, the main packages are:

  • packages/office/
  • packages/creative/
  • packages/shopkeeper/

Each package has its own README and supporting files. That makes it easier to treat a package like a product area or domain module rather than a loose folder of prompts.

What a skill is

A skill is a DAL file with a .skill.dal extension. Skills are small, purpose-built capability descriptions or tool-oriented behaviors that the agent can load and use.

Examples from this repo include:

  • packages/office/skills/office_core.skill.dal
  • packages/office/skills/office_docs.skill.dal
  • packages/office/skills/office_sheets.skill.dal
  • packages/creative/skills/creative_arts.skill.dal
  • packages/shopkeeper/skills/shopkeeper_orders.skill.dal
  • packages/shopkeeper/skills/shopkeeper_support.skill.dal

The naming convention is straightforward: package name first, then the capability area.

Why split skills from packages

This split gives a few benefits:

  1. 1. Discoverability — package folders show the domain at a glance.
  2. 2. Reuse — skills can be reused across workflows without duplicating the whole package.
  3. 3. Maintainability — updates to one skill do not require rewriting the rest of the package.
  4. 4. Testability — packages can include tests and scripts around the same domain.
  5. 5. Prompt hygiene — the agent can stay focused by loading only the relevant skill set.

Package examples in this repo

Office

The office package includes skills for common productivity work:

  • communications
  • core actions
  • docs
  • sheets
  • slides

This suggests an office automation stack where different document types and workflows are separated cleanly.

Creative

The creative package is smaller and more focused. It currently contains a creative arts skill, which implies a domain for ideation, composition, or other creative assistance.

Shopkeeper

The shopkeeper package is the most feature-rich of the three. It includes skills for:

  • assistance
  • catalog management
  • channels
  • core operations
  • growth
  • orders
  • pricing
  • support

That structure looks like a commerce assistant split into operational subdomains.

How this helps DAL development

For DAL development, this layout is useful because it encourages a layered architecture:

  • packages define the domain boundary
  • skills define the agent behavior within that boundary
  • templates/scripts/tests support execution and validation

That means you can evolve a capability by improving a single skill, then validate it with package-level scripts and tests.

Practical takeaway

If you are adding a new capability to DAL:

  • create or extend the relevant package under packages/
  • add a narrowly scoped .skill.dal file under that package’s skills/
  • keep the skill focused on one job
  • add scripts/templates/tests around it if the package needs operational support

This keeps the system modular and makes the agent easier to reason about over time.