DKP is an open standard for packaging curated domain knowledge so both Human and AI agents actually use it well.
Most knowledge fed to AI agents is unstructured — raw documents, loosely formatted notes, or ad-hoc context dumps. DKP changes that. It gives producers a clear, validated bundle format and gives processors (agents, RAG pipelines, LLM apps) something they can reliably load, search, and trust.
DKP builds on Open Knowledge Format (OKF) — every DKP bundle contains a fully conformant OKF bundle in its okf/ layer — and adds the structure that OKF deliberately leaves open: a type taxonomy, a machine-readable layer, quality gates, provenance tracking, and an optional skill and localization layer.
Knowledge engineers and domain experts who want to package what they know — terminology, rules, constraints, decision logic — into a format that AI tools can use without hallucinating or making up facts.
Developers building AI agents, RAG pipelines, or LLM applications who want a reliable, validated input format instead of raw files. DKP bundles come with structured retrieval chunks, a knowledge graph, eval sets, and optional MCP tool integration out of the box.
Teams deploying AI at scale who need provenance, rights tracking, audience scoping, localization, and supply-chain integrity for the knowledge they put in front of a model.
A bundle is a directory (or .zip) with six layers:
| Layer | What it contains |
|---|---|
machine/ |
Structured JSON/JSONL assets: glossary, rules, constraints, decision trees, retrieval chunks, knowledge graph, eval set. Source of truth. |
okf/ |
OKF-native Markdown concept files generated from the machine layer. Compatible with any OKF-supporting agent framework. |
human/ |
A handbook, quickstart, cheatsheet, and FAQ written for human readers — no AI tooling required. |
evidence/ |
Source citations, rights log, and editorial review notes. |
skills/ |
Procedural SKILL.md-compatible skills bundled alongside the declarative knowledge. |
l10n/ |
Translated or locale-adapted content for non-base locales. |
A single manifest.json at the root declares the pack's identity, audience, compatibility, access control, retrieval hints, and optional MCP surface.
DKP defines an 8-gate quality standard with three conformance tiers:
- DKP-Conformant — structural gates (4 and 8) enforced automatically by
dkp validate: schema validity, graph integrity, OKF conformance. - DKP-Evaluated — a DKP-Conformant bundle that additionally includes a populated
eval_set.jsonland passes Gate 7, demonstrating measurable retrieval improvement above themin_eval_deltathreshold. - DKP-Reviewed — a DKP-Evaluated bundle that additionally satisfies the editorial gates (1–3, 5–6), attested by a dated, named sign-off in
evidence/review_notes.md.
An optional eval set (machine/eval_set.jsonl) lets you measure how much the pack actually improves model answers compared to a baseline — and dkp eval runs it.
A conformant processor can serve any bundle's resources and tools (inject, search, chunk, get, and optionally list_procedures/run_procedure) over MCP without custom integration work. The optional mcp field in the manifest provides advisory configuration — preferred transport, auth scheme, tool whitelist — that processors SHOULD respect.
The dkp CLI is the primary tool for authoring, inspecting, and deploying packs. Install it and run dkp --help for a full command listing.
These flags apply to every command:
| Flag | Description |
|---|---|
--output <FORMAT> |
Output format: plain (default), table, json |
-q, --quiet |
Suppress informational output; print only results |
-v, --verbose |
Print debug info (schema paths, provider calls, etc.) |
--audience <ID> |
Filter content to assets tagged for a specific audience profile |
# Scaffold a new pack directory with all required files
dkp init my-pack/
# Or: scaffold and LLM-generate a complete pack in one command
dkp new "ACME widget troubleshooting" --domain support --dir acme-widgets/# Run (or re-run) LLM generation on an existing pack
dkp generate acme-widgets/
# Run the eval set through the LLM
dkp eval acme-widgets/
# Failure-aware chunk regeneration using eval results
dkp fix acme-widgets/
# Generate evidence drafts for manual review gates
dkp review acme-widgets/# Print a summary: name, version, asset counts, compliance status
dkp info acme-widgets/
# List all packs under a root directory
dkp list ~/packs/
# Retrieve a specific asset or all assets of a type
dkp get acme-widgets/ term
dkp get acme-widgets/ rule "widget power"
# Print a ready-to-inject LLM context block
dkp inject acme-widgets/
dkp inject acme-widgets/ --scope full --format xml
dkp inject acme-widgets/ --scope chunks --max-tokens 4000
# Inspect and validate the knowledge graph
dkp graph acme-widgets/ stats
dkp graph acme-widgets/ validate
dkp graph acme-widgets/ list
# Inspect and validate cross_refs.json
dkp cross-refs acme-widgets/ list
dkp cross-refs acme-widgets/ validate# Full-text BM25 search across machine assets
dkp search acme-widgets/ "widget not turning on"
# Retrieve the top-N most relevant retrieval chunks for a query
dkp chunk acme-widgets/ "power LED behavior" --top 5
# Search the registry instead of a local pack
dkp search --registry "widget troubleshooting"# Run schema and compliance checks; exits non-zero on failure
dkp validate acme-widgets/
dkp validate acme-widgets/ --gate 4 # structural only
dkp validate acme-widgets/ --gate 7 # eval only
dkp validate acme-widgets/ --strict # treat warnings as errors
# Run eval set against baseline and grounded prompts; print delta report
dkp eval acme-widgets/
# Interactive grounded prompt REPL — see "Interactive interfaces" above for full usage
dkp prompt acme-widgets/ --api-key $OPENAI_API_KEY
# Compare two pack versions and report what changed
dkp diff acme-widgets-v1/ acme-widgets-v2/# Manage and validate the skills/ layer
dkp skills acme-widgets/ list
dkp skills acme-widgets/ validate
dkp skills acme-widgets/ show <name>
# Manage and validate the l10n/ localization layer
dkp l10n acme-widgets/ list
dkp l10n acme-widgets/ validate
dkp l10n acme-widgets/ export fr-FR --out ./acme-widgets-fr/# List and validate executable procedures
dkp procedures acme-widgets/ list
dkp procedures acme-widgets/ validate
# Scaffold a new procedure
dkp procedures acme-widgets/ new macro-calc
# Invoke a procedure by ID
dkp run acme-widgets/ macro-calc --input '{"dose": 70}'# Open a full-screen terminal UI for browsing a pack
dkp tui acme-widgets/
# Start a local web UI in your browser
dkp webui acme-widgets/
dkp webui acme-widgets/ --port 9000
# Interactive REPL: ask questions against a pack using any OpenAI-compatible model
dkp prompt acme-widgets/ --api-key $OPENAI_API_KEY
dkp prompt acme-widgets/ "What are the power LED error codes?" --api-key $OPENAI_API_KEY
dkp prompt acme-widgets/ \
--base-url https://openrouter.ai/api/v1 \
--api-key $OPENROUTER_API_KEY \
--model anthropic/claude-sonnet-4-5dkp tui is a keyboard-driven browser for pack layers, asset details, search, and validation results. dkp webui serves the same content as a local web app with expandable trees and hyperlinked cross-references. Both require their respective features (tui, webui), which are included by default.
dkp prompt injects the pack into an LLM context and lets you query it interactively — the fastest way to verify a pack improves model answers during authoring. For automated scoring, use dkp eval.
# Summary of sources and rights coverage
dkp rights acme-widgets/ status
# Flag entries with missing or expired fields
dkp rights acme-widgets/ check
# Add a source record interactively
dkp rights acme-widgets/ add-source
# Formatted rights compliance report
dkp rights acme-widgets/ report# Convert machine assets to another format
dkp export acme-widgets/ okf --out ./okf-bundle/
dkp export acme-widgets/ langchain --out ./langchain-docs/
dkp export acme-widgets/ llamaindex --out ./llama-docs/
dkp export acme-widgets/ openai-files --out ./openai-docs/
dkp export acme-widgets/ markdown --out ./md-docs/
dkp export acme-widgets/ csv --out ./csv-export/
dkp export acme-widgets/ anki --out ./anki-export/
# OKF-specific operations (export, validate, stats, links)
dkp okf acme-widgets/ validate
dkp okf acme-widgets/ stats# Pre-release compliance checklist (runs all gates, checks human fields)
dkp release-check acme-widgets/
# Package the pack into a versioned archive with checksums.json
dkp build acme-widgets/ --out dist/
# Generate or regenerate machine/mcp_manifest.json
dkp mcp-manifest acme-widgets/
# Start the pack as an MCP server
dkp serve acme-widgets/# Generate an Ed25519 keypair for signing packs
dkp keygen --out keys/
# Sign a built archive with a private key
dkp sign dist/acme-widgets-1.0.0.zip --key keys/signing.key# Account management
dkp registry register --email you@example.com
dkp registry login --email you@example.com
dkp registry logout
dkp registry token rotate
dkp registry keys add --key keys/signing.pub
# Per-pack management
dkp registry pack versions acme/widgets
dkp registry pack set-visibility acme/widgets public
dkp registry pack grant acme/widgets --to colleague@example.com
dkp registry pack revoke acme/widgets --from colleague@example.com
dkp registry pack access acme/widgets
# Install a pack from the registry
dkp install acme/widgets@1.0.0
# Remove an installed pack
dkp uninstall acme/widgets
# Update installed packs to satisfy lock-file constraints
dkp update
# Publish a built and signed pack
dkp publish dist/acme-widgets-1.0.0.zip
# Mark a published version as yanked
dkp yank acme/widgets@1.0.0
# Deprecate a version with a message shown on install (or clear it)
dkp deprecate acme/widgets@1.0.0 --message "Use 2.x instead"
dkp deprecate acme/widgets@1.0.0 --undoThe full DKP Specification is in SPEC.md. It covers:
- Bundle structure (§5) and all layer schemas (§9–§14)
- The manifest and all its fields (§6)
- The 8-gate quality standard (§16)
- MCP surface declaration and tool schemas (§15)
- Normative JSON Schemas for every machine-layer asset (Appendix B)
- A complete worked example bundle (Appendix A)
License: Apache 2.0