Frontmatter schema, signing, and validation tools for .ds.md workflow files
Project description
dossier-tools
CLI and library for validating, signing, and running Dossier workflow files (.ds.md).
What is a Dossier?
A Dossier is a markdown file with structured frontmatter that AI agents can execute. Think of it as a recipe for automation—clear instructions that LLMs like Claude Code can follow intelligently.
Why use Dossiers instead of scripts?
- Adaptive: LLMs understand context and handle edge cases naturally
- Portable: Same dossier works across different projects and environments
- Verifiable: Built-in checksums and signatures ensure integrity
- Human-readable: Plain markdown that anyone can read and modify
---
schema_version: "1.0.0"
title: Setup Development Environment
version: "1.0.0"
status: stable
objective: Configure dev environment with proper tooling
authors:
- name: Alice
checksum:
algorithm: sha256
hash: a3b5c8d9...
---
# Setup Development Environment
## Objective
Configure a development environment with linting, testing, and git hooks.
## Steps
1. Detect project type (Node.js, Python, etc.)
2. Install appropriate dev dependencies
3. Configure pre-commit hooks
4. Verify setup works
## Validation
- All linters pass
- Tests run successfully
- Git hooks are installed
📖 Learn more: What is a Dossier?
Installation
pip install dossier-tools
Or with uv:
uv add dossier-tools
Quick Start
Run a Dossier from the Registry
# Run a workflow (starts interactive Claude Code session)
dossier run myorg/setup-dev
# Preview without executing
dossier run myorg/setup-dev --print-only
Note: Currently only Claude Code is supported as an execution agent.
Create a New Dossier
# Create with AI assistance (interactive)
dossier new
# Or from an existing markdown file
dossier from-file workflow.md \
--name "my-workflow" \
--title "My Workflow" \
--objective "Automate something useful" \
--author "you"
Sign and Verify
# Initialize and generate signing keys
dossier init
dossier generate-keys
# Validate and sign
dossier validate workflow.ds.md
dossier sign workflow.ds.md --signed-by "you"
dossier verify workflow.ds.md
Registry
Browse and download dossiers from the public registry:
# List available dossiers
dossier list
# Get metadata
dossier get myorg/deploy
# Download locally
dossier pull myorg/deploy
Publish your own (requires GitHub authentication):
dossier login
dossier publish workflow.ds.md --namespace myorg/tools
Commands
| Command | Description |
|---|---|
new |
Create a new dossier with AI assistance |
run |
Pull and execute a dossier with Claude Code |
from-file |
Create a dossier from an existing markdown file |
validate |
Validate frontmatter schema |
checksum |
Verify or update checksum |
sign |
Sign a dossier |
verify |
Verify checksum and signature |
list |
List dossiers from the registry |
pull |
Download a dossier |
get |
Get dossier metadata |
publish |
Publish to the registry |
login / logout |
Manage authentication |
Environment Variables
| Variable | Description | Default |
|---|---|---|
DOSSIER_REGISTRY_URL |
Registry API URL | https://dossier-registry-mvp-ten.vercel.app |
DOSSIER_SIGNING_KEY |
Default signing key name | default |
DOSSIER_LOG_LEVEL |
Log level (DEBUG, INFO, WARNING, ERROR) | WARNING |
Documentation
- What is a Dossier? — Concept, use cases, and comparisons
- Skills and Dossiers — Why both matter and how they work together
- Use Case: Start Issue — Example skill + dossier workflow
- Blog: Streamlining Issue Workflow — Step-by-step tutorial
- CLI Reference — All commands and options
- Python API — Using dossier-tools as a library
- Schema Reference — Frontmatter field reference
- Signing Guide — Signing and verification workflow
Development
git clone https://github.com/liberioai/dossier-tools.git
cd dossier-tools
make setup # Install dependencies
make test # Run tests
make format # Format code
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dossier_tools-0.1.10.tar.gz.
File metadata
- Download URL: dossier_tools-0.1.10.tar.gz
- Upload date:
- Size: 146.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fecde83ed1e87faa41e68adf71b29ef474b3ff1b26146a3a7249cb4785d1e24
|
|
| MD5 |
f9116b32fb6a8a5fcefaa0b0f7d1af55
|
|
| BLAKE2b-256 |
9cfa7daff2d497f8e9acffe0c234a327337fbc79fbc4c7310019566cec139f4c
|
File details
Details for the file dossier_tools-0.1.10-py3-none-any.whl.
File metadata
- Download URL: dossier_tools-0.1.10-py3-none-any.whl
- Upload date:
- Size: 45.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f404da16d6f6b24b2cb65f19723423b6bd6b35cda1daf132996c71c33401f64a
|
|
| MD5 |
875d0e9136c5652ee209e4ab6930cf6e
|
|
| BLAKE2b-256 |
cc742214ec17d5e665e93c50bdfa4830ede264e166e1bb4e31ffeb82b863a2fe
|