Skip to main content

M8ven Score

dotslot

Let agents fill the blanks in a file, and prove they touched nothing else.

ci PyPI · MIT · Spec · Changelog

Mark the editable parts of a file with fixed-width slots. An agent or script fills them; dotslot check proves the diff changed only the slots and that each slot kept its width, so columns and wraps stay put. Works in Markdown, config files and code comments.

Owner: `<./owner:____________>`   Status: `<./status~:____________>`

$ dotslot fill release.md --set owner=Adam --set status="ready for tag" -i
$ dotslot check release.md --git-base HEAD
release.md: fill-safe (2 slot(s) changed)

Install

Surface Install
CLI (Python 3.10+) pip install dotslot (optional: pip install "dotslot[treesitter]")
CLI (Node 18+) npx dotslot — scan, fill, check (npm release pending)
GitHub Action uses: ao3575911/dotslot@v0.8.0
pre-commit repo: https://github.com/ao3575911/dotslot, rev: v0.8.0
MCP server dotslot-mcp --root . (installed with the Python package)
VS Code / Open VSX ao3575911.dotslot (release pending; .vsix is built by CI)

Use

dotslot new owner --width 12                  # print a correctly sized slot
dotslot scan FILE                             # list slots, widths, capacity
dotslot fill FILE --set owner=Adam -i         # fill in place; width kept
dotslot check FILE --git-base HEAD            # prove only slots changed (--allow a,b to narrow)
dotslot check FILE --base OLD --ignore-whitespace
dotslot repad FILE --base OLD -i              # restore padding an editor dropped
dotslot migrate FILE -i                       # convert v0.1 `=` slots
dotslot fit FILE --targets 80,100,120         # where lines will wrap

Slot forms: <./______> unnamed, <./owner:____> named, <./status~:____> ellipsis on overflow (! error, + grow). In Markdown, keep slots in backticks. Grammar: SPEC.md. Exit codes: 0 ok, 1 violation, 2 usage or input error.

GitHub Action

- uses: actions/checkout@v5
  with: { fetch-depth: 0 }
- uses: ao3575911/dotslot@v0.8.0
  with: { files: "docs/**/*.md config/*.yaml", allow: "status,owner" }

Inputs: files (required), allow, base (default: PR base SHA), ignore-whitespace, report (default dotslot-report.json). Violations and the JSON report go to the step summary. No matched files passes; a missing base revision fails.

pre-commit

Run after formatters.

- repo: https://github.com/ao3575911/dotslot
  rev: v0.8.0
  hooks: [{ id: dotslot-check }, { id: dotslot-lint }]

Agents (MCP)

dotslot-mcp serves dotslot_scan, dotslot_fill and dotslot_check over stdio. Arguments are schema-validated, dry_run returns a diff, allow limits which slots may change, writes are atomic and confined to --root. Ready-made setups: Claude Code, Cursor, aider, and an AGENTS.md snippet. See integrations/README.md.

Limits

dotslot is a check, not a sandbox. Without dotslot[treesitter], comment detection is a line heuristic. Formatters such as gofmt can move columns, so run dotslot after them. Trailing whitespace counts as a change unless you pass --ignore-whitespace. Roadmap: PLAN.md.

Development

pip install -e ".[test]" && pytest -q runs the Python tests and the shared conformance fixtures; npm test in npm/ and vscode/ runs the others. slot/ and bin/slot are the v0.1 reference, kept for EXPERIMENTS.md; not installed.

Licence

MIT. Releases are GPG-signed in CI with SHA256SUMS and build provenance; see RELEASING.md and SECURITY.md.

Metadata

Release files for dotslot 0.8.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 dotslot 0.8.0
File Size Uploaded
dotslot-0.8.0.tar.gz 30.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dotslot 0.8.0
File Interpreter ABI Platform
dotslot-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.5 kB

Release files / dotslot-0.8.0.tar.gz

Download URL dotslot-0.8.0.tar.gz
Size 30.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d86351860749d5ef522af50062a44e1a4055b1597b3e4ec8fa80d24c17aaa4f3
BLAKE2b-256 checksum
How to use checksums
f604cf6de450fcb72e24e254eee356b81ec72f88b891c9d827db97634b9e41c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / dotslot-0.8.0-py3-none-any.whl

Download URL dotslot-0.8.0-py3-none-any.whl
Size 24.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4cb686ab467dc1684668b7be2d66d1c311a2f1d254670230ebdfa35b11ced18a
BLAKE2b-256 checksum
How to use checksums
aa8859e693c12d99c0a3e54d9462a1a696d86ebce6282ffe777e0cd45d9d3e7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.1

2 release files

This release

0.8.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

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