How it works

Dum tracks what you can build and implement only that. The goal: you could take the AI away and still understand the architecture, start implementing, and ask precise questions.

The corner pair stays out of your way. Choose Write to dum or Tell dum what I built when you're ready; hiding input keeps the draft.

The thin top strip reads newbie → intern → good → cracked at 0 / 8 / 24 / 64 currently usable built skills. Recognition and chat volume don't advance it; revoked prerequisites can lower it. The labels aren't proficiency ratings.

Skill tree

Your skills are stored locally in ~/.dum/skills/ as plain Markdown files you can read, edit, or delete. Nothing is inferred from the code in your project.

Skills come in two categories:

Prerequisites and language scope are enforced in code. Unlocking a skill in Python does not grant it in Go. Revoking a prerequisite locks dependent capability without deleting historical notes.

:tree or :skills shows tracks, levels, prerequisites, and available next steps.

Evidence levels

Recognize

Explain what a skill is and why it fits a problem. Tools become available after recognition. Advice, images, and personal context never count as recognition.

Build

Implement the skill yourself, without AI assistance, then explicitly say so. Use :submit <task> <file> --unaided to submit an implementation for review. A saved file alone is not proof of unaided authorship — the self-report is required. Concepts become available after build evidence.

Apply

Explain when and why to use the skill, citing a real decision, after build evidence is on record. Reasoning without prior build evidence only records recognition.

A separate model audits implied requirements and prerequisite coverage. Reviews and expected outputs are model judgments — dum can get arithmetic wrong, so check its numbers. The tree is yours to correct with :skill -name.


Building and telling

Work in your own editor. Run builds, tests, and programs in your own terminal. Dum has no integrated editor, file tree, or embedded shell.

When you are satisfied with what you built, open Tools → Tell dum what I built. This prepares a draft — the story of what you made, the decisions, and why they fit. The draft never sends automatically. You review it and send it yourself.

Explaining what you built is not the same as build evidence. A story written with wizard help is AI-assisted and does not establish unaided build. Core algorithms use the same evidence gates as everything else; the gate is checked in code even when a prerequisite is later removed.

:changes shares your current saved diff. :inspect path/to/file shares a bounded excerpt. Dum can also read bounded files in the selected project when needed. It does not watch keystrokes or scan your home directory.


The wizard

The wizard is the taller character floating beside your IDE. It gives occasional unprompted advice — not on every action, and not as a tutor.

When the wizard cites a source, the anchor words and link come from a verified catalog. The connecting sentence passes a word-pattern screen for dates, statistics, unsourced names, and causal claims. The screen does not fact-check everything, and the wizard may stay silent when no anchor fits.

Screen advice and sharing

On a fresh install, the wizard uses periodic screen snapshots for unprompted advice. Pause or resume advice with the one-click button in the companion panel, or switch its source to saved project files in Settings. Screen mode can see anything visible, including private information and unsent drafts. macOS requires Screen Recording permission; denied access pauses advice, not a silent switch to files.

Manual sharing is separate: pick a screen or window, review the preview, then press Send with a message. An unsent preview expires after five minutes. Neither path writes screenshots to disk.

When you send, a text description of what Claude sees enters the local conversation and may persist in project memory. That does not mean Claude's service never retains an image on its end.

No key logging or passive audio recording. Voice uses bundled OpenSuperWhisper on macOS 14+ with Apple Silicon: configure its local model, permissions, and shortcut; focus dum's input, dictate, review the transcript, then Send. Opening voice setup doesn't start recording. OpenSuperWhisper may keep recordings locally in its own storage.


Project ideas

:practice projects in go (or another language) suggests substantial projects sized to your current tree. Suggestions draw on your skill tree, project memory, and — if you have configured it — optional personal context.

Projects are ordered by estimated active-work hours, then difficulty. Each suggestion shows why it fits and an ordered path through several skill levels, so you have milestones rather than a single finish line.

Choosing a project does not unlock anything. Cross-language experience informs suggestions but does not grant skill credit in an unfamiliar language. Build evidence is always language-specific.

Estimates and recommendations are model judgments, not promises. :practice <skill> stays available for focused work on a single skill when a large project is not what you need.