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)
| File | Size | Uploaded | |
|---|---|---|---|
| diff_dsl-0.1.0.tar.gz | 17.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|