Skip to main content

diff-dsl

DSL complementarity analysis library.

diff-dsl compares wellmanifest.dsl/manifest/v1 manifests from multiple repositories to detect overlaps, gaps, and pipeline composition opportunities.

What it does

Given two or more dsl-manifest.json files, diff-dsl produces a structured complementarity report across these dimensions:

Dimension Question answered
Command overlap Do two DSLs declare the same command names?
Domain overlap Do two DSLs serve the same domain?
Effect model compatibility Can the output of one DSL feed into another?
LLM boundary direction Who produces, who consumes LLM payloads?
Schema cross-reference Does one DSL reference another's schemas?
Declared mappings Do manifests declare maps-to / compatible-with edges?
Adopt drift Do x-adopts local copies still cover the shared core?
Pipeline position Where does each DSL sit in the source→extract→graph→validate→synthesize→execute chain?
Projection overlap Do two DSLs share projection formats?
Owned path conflicts Do two manifests claim the same paths?

Usage

# Compare all manifests in a directory
diff-dsl analyze --dir /home/tom/github/autogrammar/

# With explicit shared command schemas (adopt-drift checks)
diff-dsl analyze --dir /home/tom/github/autogrammar/ \
  --shared-schemas /home/tom/github/wellmanifest/dsl/schemas/commands

# Compare two specific manifests
diff-dsl compare a.json b.json

# Output as JSON
diff-dsl analyze --dir /home/tom/github/autogrammar/ --format json

When --shared-schemas is omitted, diff-dsl looks for WELLMANIFEST_DSL_COMMANDS or a sibling ../wellmanifest/dsl/schemas/commands. Adopt drift exits with code 2 when incompatible divergence is found.

Known non-adopted overlap: shared VALIDATE is validate-path (verb + path). nlp2dsl VALIDATE is validate-workflow and intentionally does not x-adopts the shared schema — treat as separate contracts.

Output

The report is a diff-dsl.report/v1 JSON document:

{
  "schemaVersion": "diff-dsl.report/v1",
  "manifests": ["autogrammar.todo2code.intent", "autogrammar.doql", ...],
  "pairs": [
    {
      "a": "autogrammar.todo2code.intent",
      "b": "autogrammar.doql",
      "commandOverlap": [],
      "domainOverlap": false,
      "effectModelCompatibility": "sequential",
      "llmDirection": "todo2code→doql",
      "schemaCrossRefs": [],
      "pipelinePosition": {"a": "extract+graph", "b": "generate"},
      "projectionOverlap": [],
      "pathConflicts": [],
      "complementarityScore": 0.75
    }
  ],
  "summary": {
    "totalPairs": 10,
    "complementary": 7,
    "overlapping": 1,
    "conflicting": 0,
    "orthogonal": 2
  }
}

Pipeline position model

source → extract → graph/IR → validate → synthesize → generate → execute

Each DSL is mapped to one or more positions based on its effectModel and declared commands:

Position Effect models Typical commands
extract descriptive, propose-only ANALYZE, EXTRACT
graph descriptive LINK, DIFF
validate declarative-policy VALIDATE, ASSERT
synthesize propose-only GENERATE, QUERY
generate declarative-policy GENERATE, RENDER
execute controlled-effects PATCH, APPLY, RUN

Metadata

Release files for diff-dsl 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for diff-dsl 0.1.0
File Size Uploaded
diff_dsl-0.1.0.tar.gz 17.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for diff-dsl 0.1.0
File Interpreter ABI Platform
diff_dsl-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.9 kB

Release files / diff_dsl-0.1.0.tar.gz

Download URL diff_dsl-0.1.0.tar.gz
Size 17.8 kB
Tags Source
SHA-256 checksum
How to use checksums
294242a0b5212cbd99420e12cca0d170b06392188adc8b28ce5ce0bbf98f00d5
BLAKE2b-256 checksum
How to use checksums
47119c5cbb87f80ba4ccd51accd05245092248d67f70b5d80b4c642ba1c770d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / diff_dsl-0.1.0-py3-none-any.whl

Download URL diff_dsl-0.1.0-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93d36ef5fb57bbc14d3ccd78d522e5cc23e8e4f78d840490d38b061bca04634a
BLAKE2b-256 checksum
How to use checksums
6e21dc8be6d3196ed89dccad14f4dc51ab40615929a14f29c01b0d43e9898564
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page