beforedone
Require fresh, file-bound verification evidence before coding agents declare completion.
What it is
Require fresh, file-bound verification evidence before coding agents declare completion.
How to install
Run this in the DSH web profile, then refresh the page.
$ dsh plugin --profile web add 'git+https://github.com/rrrrrredy/beforedone.git#367b77d0ef037f33448146d6a5e834a442a5b4cd'
DSH versions accepted
Undeclared
Author and traction
rrrrrredy · ★ 2 · Updated 2026-11-05
About this plugin
BeforeDone
Know whether your checks still match your code.
BeforeDone runs your existing verification commands and records which files
they checked. Before a coding agent finishes, it checks whether those results
still apply to the current work. Start with the CLI; add an agent integration
when you want the completion check to run automatically. Incident reports and
replay are available for investigating a failed run.
It is most useful when a task continues after verification or when you want to
reuse a previous result without rerunning an expensive check. If your normal
test and CI workflow already makes this clear, the extra tool may add little.
BeforeDone tracks configured verification; choosing checks that cover the task
remains part of development.
[Website and guide](https://rrrrrredy.github.io/beforedone/)
Requirements
- A Git repository. BeforeDone resolves its local runtime through Git.
- A filesystem that supports same-directory hard links for the Git directory;
on Windows, keep the repository on NTFS rather than FAT/exFAT removable media.
- The verifier programs named in
.beforedone.yaml, such asgo,npm, or
pytest.
- Codex only if you use the Plugin, standalone Skills, or project-local hooks.
- DeepSeek Harness
0.1.0-rc.6and Node.js 22.19+ or 24+ only if you use the
dsh-beforedone community Bundle.
- A current Pi release exposing
agent_settled,pi.exec,pi.appendEntry,
and pi.sendUserMessage only if you use the Pi integration.
1. Install the CLI
With Go installed:
go install github.com/rrrrrredy/beforedone/cmd/beforedone@latest beforedone version
Alternatively, download the archive for Windows, macOS, or Linux from
[GitHub Releases](https://github.com/rrrrrredy/beforedone/releases/latest),
verify it against checksums.txt, and put the beforedone executable on
PATH.
To install a reproducible version with Go, replace @latest with a release tag,
for example @v1.2.0.
2. Initialize a repository
With BeforeDone v1.2.0 or newer, connect an existing project command from the target Git repository. For
a Python project, for example:
beforedone init --files "src/**/*.py" --files "tests/**/*" --files "pyproject.toml" -- python -m pytest beforedone doctor
Older CLIs do not accept these initialization options. Upgrade to v1.2.0 or
newer; existing configurations and historical receipts are preserved.
Everything after -- is saved as the argv of the test check; initialization
does not run it. Put BeforeDone options, including --json, before --.
Repeat --files for the inputs your command uses. Without --files, a custom
command uses **/*; narrow that scope if it includes generated output or
installed dependencies. Paths and commands are relative to the repository root.
init creates .beforedone.yaml and local runtime data under .git/beforedone.
With no existing configuration, bare beforedone init uses go test ./... for
a Go module. Other projects must supply a verifier; otherwise it exits with
configuration error code 64 and writes no configuration. It can be rerun without
replacing a valid configuration. If a configuration already exists, edit it to
change the command or file scope; initialization options do not overwrite it.
Review the generated configuration before running checks. Commands are argv
arrays, not shell command strings:
schema_version: 1 checks: test:
Compare in this category
The five most-starred plugins in the same category.
| Plugin | Author | Stars | Version | Updated |
|---|---|---|---|---|
| Mole | tw93 | 74.5K | 0.0.0 | 2026-11-10 |
| DeepSeek-Reasonix | esengine | 36.1K | 0.0.0 | 2026-11-10 |
| dsh-desktop | anywhere-labs | 35.6K | 0.4.1 | 2026-11-06 |
| awesome-dsh-plugin | awesome-dsh-plugin | 24.1K | 0.1.0 | 2026-11-10 |
| dsh-market | dsh-market | 11.8K | 1.73.17 | 2026-11-09 |