Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/whitelonng/dshcode/mangit clone --depth 1 https://github.com/whitelonng/dshcodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/whitelonng/dshcode/man)<a href="https://agentmods.dev/commands/whitelonng/dshcode/man"><img src="https://agentmods.dev/badge/commands/whitelonng/dshcode/man.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00009 | $0.02256 |
| Opus 5 | $0.00005 | $0.01128 |
| Sonnet 5 | $0.00002 | $0.00451 |
| Haiku 4.5 | $0.00001 | $0.00226 |
Grade A, and why
man scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 52 lines — stays where its author put it; the contents beside it link to each section on GitHub.
mancode mode: man
Purpose: clarify, plan, implement, verify, and review governed work.
Enter through mancode
Before the first command, use ./node_modules/.bin/mancode when it exists, otherwise mancode; check that selected binary with --version once and never mix binaries or versions. In every command below, replace the literal mancode with that selected binary path when the local binary exists.
- Reuse a
mancode status --brief --jsonsnapshot already obtained in this conversation. Only when none exists, run it once from the project root. Never read or write the legacy authority file. - If the request is only a read-only project orientation, introduction, explanation, or summary, inspect the repository and answer directly without creating an actor, session, TaskRef, or workflow. Do not turn an orientation request into a
plan_onlyworkflow. - Only for requested governed task work, if
identity.actorIdis absent, ask for a display name and runmancode team identity create --name "<display name>". - Reuse
session.sessionIdwhen present. If status has no current session, reuse an explicit session ID already retained in this conversation. Only if neither exists, runmancode context session new --client cursorexactly once and retain the returned session ID. Use--client cursoron every command that uses this session. - Reuse the current TaskRef. To bind a supplied existing task, run
mancode context resume <namespace:ULID> --session <id> --client cursor. - For an existing task, read only the needed Context Pack with
mancode context show --purpose plan --session <id> --client cursor; include--task <namespace:ULID>when it is not yet bound. For a new task, create it through the mode action first, then read the returned TaskRef's Context Pack.
Mode action
- For a read-only project orientation, inspect and answer directly; do not create governance records.
- For a new task, run
mancode workflow create man "<task>" --session <id> --client cursor. - Read
.mancode/shared/context/glossary.jsonwhen it exists and prefer its confirmed terms in clarification, requirements, plans, reports, and naming. - Before requirements, run a bounded read-only decision-impact discovery: test the operator's factual premise against repository evidence, inspect the end-to-end user goal and common domain failure/edge paths, and retain at most three findings with stable IDs F-1 through F-3 and type
premise,scope,technical,risk, oracceptance. Mark each asrepository_factordomain_hypothesis; an unverified domain hypothesis becomes a focused question, never a fact. Discovery produces evidence and recommendations, never execution authority. - Before writing requirements, inspect the relevant project facts and implementation, then run a decision-readiness gate covering both clarity and soundness. Treat the request as ready only when the goal, in-scope/out-of-scope behavior, acceptance boundary, semantic owner/source of truth, and decision-changing constraints are supplied and consistent with evidence, verifiable from the repository, or explicitly recorded as safe defaults. A supplied instruction is not automatically correct. Do not ask ceremonial questions or manufacture alternatives when the request is already clear and sound.
- Classify unresolved decisions as blocking, recommendable, or defaultable. Ask and wait for blocking decisions; for recommendable decisions, present 2–3 bounded options with tradeoffs and one clear recommendation; use a default only when it is low-impact, reversible, consistent with repository conventions, and recorded with its reason. Give every F-ID one type-directed disposition: Accepted scope or behavior findings enter
confirmedScopeand the matchingacceptanceCriteria; accepted technical choices entertechnicalDecisions; only low-impact reversible details enterdefaults; Only explicitly excluded behavior entersexcludedScope. An unaccepted proposal remains unauthorized without being copied into every field. - If any unresolved ambiguity could change the goal, scope, user-visible behavior, acceptance, architecture, data, security, compatibility, owner, or source of truth, stop before requirements finalization, explain the missing decision, ask focused questions, and wait for the user answer. Ask in as many batches as needed, do not repeat answered questions, and never turn an unverified assumption into confirmed scope or confirmed coverage.
- Before waiting on a blocking answer, persist the known facts, partial decisions, and each open question with
mancode workflow requirements <namespace:ULID> draft --file <requirements.json> --expected-revision <n> --session <id> --client cursor. A draft may leave scope, coverage, technical decisions, or acceptance incomplete only whileblockingUnknownsnames the open decisions. After every answer, update the draft or finalize it so another session can resume the exact clarification state. - If an explicit direction conflicts with repository evidence or creates a hard-risk authentication, payment, sensitive-data, deletion, migration, public-API, untrusted-input, concurrency, infrastructure, or irreversible change, stop before requirements finalization. Show the evidence and impact, recommend a safer path, ask for a focused confirmation or choice, and wait; clarity does not waive risk.
- After the user answers, summarize the resolved requirements and any remaining defaults. Continue only when no decision-changing blocking unknown remains; otherwise keep the task in clarification and ask again.
- Write requirements as semantic JSON with
version: 1, a non-emptygoal, non-emptyconfirmedScope, and the arraysexcludedScope,technicalDecisions,defaults, andblockingUnknowns. Every array item must be a non-empty string; an array may be empty exceptconfirmedScope, andtechnicalDecisionsmust be non-empty whenevertechnical_stackapplies. coveragemust contain exactly one item for each dimension:platform,core_scope,technical_stack,data_and_persistence,performance,compatibility, andsecurity. Each item has the shape{ "dimension": "platform", "status": "confirmed", "rationale": "..." };statusis exactlyconfirmed,defaulted, ornot_applicable, andrationaleis non-empty.acceptanceCriteriamust contain at least one required item shaped as{ "id": "AC-1", "description": "...", "required": true, "method": "automated" };methodis exactlyautomated,manual, orhybrid.- Finalize requirements with
mancode workflow requirements <namespace:ULID> finalize --file <requirements.json> --expected-revision <n> --session <id> --client cursor. - Let mancode assign internal IDs and digests; do not invent canonical IDs or digests in the semantic input.
- Make the plan name a user-visible
implementationScopewith non-empty repo-relativeinclude, plusexcludeandmodules; include is the file-write upper bound, exclude wins, and modules never authorize files alone. Bind plan and scope atomically withmancode workflow plan <namespace:ULID> revise --expected-revision <n> --file <plan.md> --scope-file <scope.json> --session <id> --client cursor. - Confirm the current plan with
mancode workflow plan <namespace:ULID> confirm --expected-revision <n> --plan-decision <plan_only|governed_execution> --session <id> --client cursor. - Before editing in governed execution, read the confirmed plan and
activeTask.implementationScope, state material assumptions and verifiable success criteria, reuse existing code and dependencies, and implement the smallest direct solution. Every changed line must trace to confirmed behavior or acceptance and stay inside include without matching exclude; do not add speculative features, one-off abstractions, unnecessary configurability, adjacent cleanup, or unrelated defenses. - If an upgraded, already-running local
mantask has no executable implementation scope, completion remains blocked. Show the complete replacement boundary and wait for explicit operator approval, then rerun plan revise with the exact unchanged current plan and--scope-file <scope.json>. This compatibility binding only increments plan authority and stales prior review/verification; it must not change the plan, behavior, acceptance, or an already executable boundary. - During implementation, a newly discovered out-of-scope need authorizes only a read-only
NEEDS_REALIGNMENTreport until the operator approves reframe. In review, compare the actual diff with canonicalfunctionalScope.inScope/functionalScope.outOfScope, decisions, acceptance criteria, andimplementationScope; unauthorized changes are blockers. - Confirming with
--plan-decision plan_onlykeeps the plan as planned authority and clears this session's active workflow pointer. Resume the TaskRef explicitly before any later governed mutation. - When new evidence materially invalidates confirmed requirements and the operator explicitly chooses to realign the same local task, resume its TaskRef if needed, generate a fresh canonical checkpoint ULID, and run
mancode workflow reframe <namespace:ULID> --expected-revision <n> --checkpoint-id <fresh-ULID> --summary "<reason>" --next-action "<step-2 action>" --session <id> --client cursor. Reframe archives the confirmed requirements and plan, clears the plan decision, and stops at Step 2 with draft requirements. Do not substitute plan revise, scope-change, or workflow update for reframe. - Read reframe evidence without opening private authority files:
mancode workflow archive <namespace:ULID> show <archive-ULID> --jsonandmancode workflow checkpoint <namespace:ULID> show <checkpoint-ULID> --json. - Apply verification and review ledgers with their mancode
apply --filecommands, then usemancode workflow complete <namespace:ULID> --expected-revision <n> --session <id> --client cursor. - When a new high-frequency domain term emerges, propose it to the operator; only after explicit confirmation register it with
mancode context glossary add --term "<term>" --definition "<definition>" --expected-revision <n> --session <id> --client cursor. Never write to the glossary without operator confirmation.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 52 lines · 9 tokens per session scan A 86443727f4a4
man is a command published in the GitHub repository whitelonng/dshcode (711 stars, last pushed yesterday), licensed MIT. It adds 9 tokens to every session and 2,256 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other commands, from other repositories
delegate-review
Run OCR in delegation mode — OCR handles file selection and rules, the host agent performs the actual review.
sdlc
Route a task to the next synced SDLC workflow based on current artifacts and repo state.
dashboard-session-fork
Fork a session into a new one. Usage /dashboard:session-fork.
dashboard-session-hide
Hide a session from the dashboard list. Usage /dashboard:session-hide.
thoth:dashboard
Alias for status --dashboard; manage the local dashboard backed by .thoth ledgers.
refresh
Auto-enumerate the agent-runnable To-Do set and write it to state/todo-ids.json. No arguments. The operator's only job upstream is to mark rows in Notion with Exec=Agent; refresh then fetches them via the Notion REST API and the sidecar is the enumeration substrate for run.