dacp-interpreter

$npx mdskill add Tibsfox/gsd-skill-creator/dacp-interpreter

Loads, validates, and integrates DACP bundles into execution context.

  • Processes incoming DACP bundles alongside .msg files for structured context.
  • Depends on manifest schema, fidelity levels, and provenance validation.
  • Validates bundle integrity using manifest, fidelity, and provenance checks.
  • Builds ExecutionContext with typed data and scripts as review-only references.

SKILL.md

.github/skills/dacp-interpreterView on GitHub ↗
---
name: dacp-interpreter
description: "Load, validate, and use DACP bundles as structured execution context. Detects .bundle/ companion directories, validates integrity (manifest schema, fidelity, provenance), loads typed data, and builds ExecutionContext for receiving agents. Scripts are NEVER auto-executed. Use when processing incoming DACP bundles, interpreting .bundle/ directories alongside .msg files, validating bundle integrity, or building execution context from bundle payloads."
---

# DACP Interpreter

Scripts in bundles are **review-only references** — the interpreter NEVER auto-executes any script (SAFE-01).

## Summary

The DACP Interpreter handles receiving-side bundle processing. When a `.bundle/` directory appears alongside a `.msg` file, the interpreter detects, validates, loads, and integrates the bundle into a structured `ExecutionContext`.

### Fidelity Level Guide

| Level | Contents | What to Do |
|-------|----------|------------|
| 0 | Intent markdown only | Read intent.md, proceed with instructions |
| 1 | Intent + structured data | Access `typedData` for structured parameters |
| 2 | Intent + data + schemas | Validate your understanding against schemas |
| 3 | Intent + data + code | Review scripts, decide whether to execute or reference |
| 4 | Intent + data + code + tests | Verify with provided test fixtures before proceeding |

### Interpretation Pipeline

```
DETECT -> VALIDATE -> LOAD -> INTEGRATE
  |          |         |         |
  |          |         |         +-- buildExecutionContext()
  |          |         +-- loadBundle()
  |          +-- validateBundle()
  +-- Check for .bundle/ directory
```

## Workflow

### Step 1: Detect Bundle Companion

Look for a `.bundle/` directory alongside the `.msg` file. If found, prefer the bundle over raw `.msg` content.

### Step 2: Validate Bundle

Call `validateBundle(bundlePath)` to check:
   - `.complete` marker exists (atomicity guarantee)
   - `manifest.json` parses and validates against Zod schema
   - Fidelity level matches actual directory contents
   - All referenced data and code files exist on disk
   - Size limits respected (50KB data, 10KB per script, 100KB total)
   - Data payloads validate against referenced JSON schemas
   - All scripts have provenance (source skill attribution)

### Step 3: Load Bundle

Call `loadBundle(bundlePath)` to get a typed `LoadedBundle` with:
   - Parsed manifest object
   - Raw intent markdown
   - JSON data payloads as typed objects
   - Schema definitions
   - Script content loaded for review

### Step 4: Build Execution Context

Call `buildExecutionContext(loadedBundle)` to get:
   - `intentSummary` -- what the sender wants done
   - `intentMarkdown` -- full instructions
   - `typedData` -- structured parameters you can use directly
   - `scriptReferences` -- scripts to review (NOT execute blindly)
   - `assemblyRationale` -- why the bundle was composed this way

### Step 5: Review Scripts Before Use

For each script in `scriptReferences`:
   - Read the script content
   - Understand what it does
   - Decide: execute it, reference its logic, or skip it
   - NEVER execute without reviewing first

### Step 6: Report Outcome

After completing the work, report the handoff outcome (intent alignment, rework needed, verification status) for drift tracking.

## Error Handling

### Invalid Bundles

If `validateBundle()` returns `valid: false`:
- Check if a `.msg` fallback file exists alongside the bundle
- If yes: fall back to `.msg` content (backward compatibility)
- If no: report the validation errors and request a re-send

### Provenance Failures

Scripts without a valid `source_skill` in the manifest are rejected. This ensures
every executable artifact traces back to a known, versioned skill. If provenance
validation fails:
- Do NOT use the script
- Report which scripts failed provenance
- Request a corrected bundle from the sender

## References

- `src/interpreter/validator.ts` -- bundle validation pipeline
- `src/interpreter/loader.ts` -- bundle loading into typed structures
- `src/interpreter/context-builder.ts` -- execution context assembly
- `src/interpreter/provenance-guard.ts` -- deep provenance validation
- `src/interpreter/types.ts` -- type definitions (LoadedBundle, ExecutionContext, etc.)
- `src/dacp/types.ts` -- DACP type system (BundleManifest, FidelityLevel, etc.)

More from Tibsfox/gsd-skill-creator

SkillDescription
3d-interaction-designDesign heuristics for three-dimensional interaction — input modalities (6DoF controllers, gaze, gesture, voice), selection and manipulation techniques (ray-cast, virtual hand, go-go, world-in-miniature), navigation (teleport, continuous, redirected walking), and feedback loops (haptic, audio, visual). Covers Fitts' law in 3D, discoverability vs affordance, safe-zone design, and comfort/simulator sickness mitigation. Use when designing VR/AR interactions, immersive walkthroughs, or any input system where the user's body is the controller.
accessibility-patternsProvides web accessibility best practices for semantic HTML, ARIA, keyboard navigation, color contrast, and screen reader patterns. Use when building UI components, reviewing accessibility, or when user mentions 'a11y', 'accessibility', 'ARIA', 'screen reader', 'keyboard navigation', 'WCAG'.
active-listeningActive listening techniques for effective communication. Covers attending behaviors, paraphrasing, reflective listening, clarifying questions, empathic response, barriers to listening, listening in conflict, and cross-cultural listening. Use when building listening skills, improving understanding in conversation, mediating disputes, or analyzing communication breakdowns.
adversarial-pr-reviewAdversarial spec-compliance PR review — cross-references diffs against approved specs, verifies runtime claims against source, detects competing PRs, audits scope/convention compliance. Use before merging.
agile-methodsAgile and Lean software development methodologies for iterative, adaptive project execution. Covers Scrum (roles, ceremonies, artifacts), Kanban (WIP limits, flow metrics), XP (TDD, pair programming, CI), SAFe overview, Lean Software Development (Poppendieck's 7 principles), user stories (INVEST criteria), estimation via story points and velocity, and the Agile Manifesto's values and principles. Includes Cynefin framework for methodology selection and GSD's relationship to Agile as a structured Lean variant.
algebraic-reasoningSymbolic manipulation, equation solving, and algebraic structures for mathematical reasoning. Covers distributive law, factoring, completing the square, linear through polynomial equation solving, systems of equations (substitution, elimination, Gaussian elimination, matrix methods), algebraic structures (groups, rings, fields), modular arithmetic, polynomial theory, and inequalities. Use when solving equations, simplifying expressions, working with algebraic structures, or performing symbolic manipulation.
algorithmic-awarenessUnderstanding how algorithmic systems shape what users see, know, and do -- from recommendation feeds to search ranking to credit scoring to hiring software. Covers the mechanics of recommendation systems, algorithmic bias and its sources, personalization's effects on information diets, opacity and accountability, AI limitations (hallucination, confident wrongness), and the human-in-the-loop question. Use when a learner needs to think critically about why particular content reached them.
algorithms-data-structuresAlgorithms and data structures from first principles through advanced analysis. Covers sorting (bubble, insertion, selection, merge, quick, heap, radix), searching (linear, binary, BFS, DFS, Dijkstra, A*), fundamental data structures (arrays, linked lists, stacks, queues, hash tables, trees, heaps, graphs, tries), complexity analysis (Big-O, Big-Omega, Big-Theta, amortized), recurrence relations, and algorithm design paradigms (divide-and-conquer, greedy, dynamic programming, backtracking). Use when analyzing, selecting, implementing, or comparing algorithms and data structures.
aminet-browserAminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching, browsing, or managing package collections.
aminet-emulatorFS-UAE emulator configuration and launch: hardware profiles, ROM management, WHDLoad integration, config generation, and state snapshots. Use when configuring emulation, managing ROMs, or launching Amiga software.