Concepts

Proof of Work

Every task ends with a record of what Dus did and what proves it, built only from what ran: a verdict, the evidence one click away, and the commands to reproduce it.

Every task that changes or runs something ends with a Proof of Work: what Dus did, what checked it, and what is still open. It is built only from what actually ran: the commands and their exit codes, the project's checks, the diffs, the browser, the audit log and the cost. What Dus says it did is never evidence. If Dus writes "all tests pass" but no test ran, the proof says Not checked.

The verdict

Status When
Verified Something checked the final state (a check, a test, a look in the browser, a verified deploy) and nothing is left open.
Partially verified Checks passed, but something isn't covered. The card lists what, for example a requirement nothing showed, UI files nobody looked at in a browser, or a speed target nobody measured.
Failed A check still fails, a requirement isn't met, or the change holds what looks like a secret.
Blocked The task stopped before finishing (you pressed Stop, a budget, a loop, the turn limit), or a requirement can't be met as asked, so it needs your decision.
Not checked Nothing that ran checked the final state. Checks that ran before the last edit don't count.

A proof never claims your code is "vulnerability-free" or "regression-free". It says what ran and what that covers.

Reading the card

The card is compact: the verdict, why, and one line of facts (requirements met, files changed, checks, browser, secrets, cost, git, audit log, reproduce). Click a fact to open its section, or All details to open them all. Every claim opens what it stands on:

  • a requirement's evidence opens the run or the diff that shows it;
  • a check opens its output, exit code and duration, and its entry in the audit log;
  • a screenshot opens full size.

The task's changed files are in Changes, with Review, Open in editor and Undo last change. Looks good and Change something are at the foot of the newest task.

Secrets

Every task's change is scanned for secrets: known key formats (AWS, GitHub, Stripe, private keys and others), values from your vault and long random-looking strings. Findings show where they are, never the value. Before any commit or push of a change with a finding, you decide: Dus asks before its own git commit or git push, in every permission mode, and the Changes view's commit, push and pull request ask again.

Pull requests and export

A pull request opened from Duscode starts with the proof of each task on the branch: a short summary, the exact commands to reproduce the checks, and the full record folded underneath.

The card's Export menu downloads the proof as Markdown or as a single HTML report (with the screenshots, readable offline). From a terminal:

sh
duscode proof                # the newest task, as Markdown
duscode proof 3f9a --html    # a task by the start of its id, as an HTML report
duscode proof --list         # every proof in this project

Proofs are kept in .duscode/proof/ in your project, which Duscode keeps out of git.

Something missing or wrong? Email support@duscode.com.