Skip to main content
Assets extend dev-workflows beyond rules. They are static files (Markdown, JSON) that get placed in specific directories during compilation.

Asset Types

Commands

Slash commands are Markdown files with prompts that AI editors (like Claude Code) can execute via /command-name.
Commands are stored in .dwf/assets/commands/ and deployed to .claude/commands/ with frontmatter stripped. Available commands:

Templates

Templates are Markdown files that provide structure for documents like feature specs.
Templates are stored in .dwf/assets/templates/ and deployed to the path specified in their output_path frontmatter field (defaults to docs/specs/). Available templates:

Hooks

Hooks are JSON files that configure editor behavior (e.g., auto-formatting after edits).
Hooks are stored in .dwf/assets/hooks/ and their settings object is deep-merged into .claude/settings.local.json. Arrays are concatenated, objects are recursively merged. Available hooks:

Presets

Presets are YAML manifests that bundle multiple rules and assets into a single install.
This installs all rules, commands, templates, and hooks listed in the preset. Available presets:

Asset Lifecycle

  1. Install: devw add command/spec downloads the file to .dwf/assets/commands/spec.md and records it in config.yml
  2. Deploy: devw compile copies the file (stripping frontmatter) to the output location
  3. Remove: devw remove command/spec deletes the source file and removes the config entry
  4. Verify: devw doctor checks that all registered assets have corresponding files on disk

Config Format

Assets are tracked in .dwf/config.yml:
The assets field is optional and backwards-compatible. Configs without it default to an empty array.