Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Monomind Dev Rules

ASecurity

Operating rules every role of monomind's monomind-dev org follows on every command: repo and worktree layout, environment prefix, scratch and tmp hygiene, git identity and sandbox limits, evidence format, independent tests, cross-run lessons, lint/build/baseline traps, brevity.

21 stars
0 votes
0 copies
0 views
Added 9/22/2026
ai-agentstypescriptgoshellbashnodegit

Works with

cli

Security Analysis

A100/100

Scanned 9/28/2026

$npx -y skills add monoes/monomind --skill monomind-dev-rules --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Monomind Dev Rules?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Monomind Dev Rules
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/monoes-monomind-dev-rules/badge)](https://www.skillsdirectory.com/skills/monoes-monomind-dev-rules)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: monomind-dev-rules
description: "Operating rules every role of monomind's monomind-dev org follows on every command: repo and worktree layout, environment prefix, scratch and tmp hygiene, git identity and sandbox limits, evidence format, independent tests, cross-run lessons, lint/build/baseline traps, brevity."
tags: ["engineering","operations"]
tools: []
license: Apache-2.0
source: https://github.com/monoes/monomind
---
# monomind-dev rules (every role, every command)

**Names used below.** REPO is the main checkout — the directory your session
starts in (`pwd` before you `cd` anywhere); it is on branch main. RUN is
`REPO/.monomind/orgs/monomind-dev/runs/<run-id>` and holds ledger.json, plans/,
logs/, evidence/ and REPORT.md. Each item works in its own worktree
WT=`REPO/.monomind/orgs/monomind-dev/work/<item-id>` on branch `dev/<item-id>`.
TMPDIR is `$HOME/mdev-tmp`. Every task message gives you the run id, the item id,
the SHA to work on and the paths of earlier evidence — use those, never values
remembered from an earlier task or run.

## The main checkout
- REPO may hold the owner's own uncommitted work: never modify, stash, reset,
  checkout or commit it. Only integrator changes local main, and only by
  fast-forward.

## Environment
- Prefix EVERY command that runs node, pnpm, npm, vitest or monomind with
  `env -u MONOMIND_SDK_AGENT -u MONOMIND_HOOK_QUIET -u MONOMIND_GRAPH_GATE -u MONOMIND_NO_LOCAL_EMBEDDINGS MONOMIND_CRASH_REPORTING=off MONOMIND_AUTO_UPDATE=false CI=true TMPDIR=$HOME/mdev-tmp`.
  Org sessions inject variables that silently change monomind's own behavior
  (issue #249).
- Never write under /tmp: it is a RAM tmpfs with a per-user quota, and filling it
  breaks every shell.
- SCRATCH: files you need to Read/Write/Edit with the file tools go in
  `REPO/.monomind/orgs/monomind-dev/scratch/<item-id>-<check>` (the file tools
  cannot reach paths outside the repo, issue #303). Sample projects that
  monograph must watch, and fake HOMEs, go in `$HOME/mdev-tmp/<item-id>-<check>`
  and are handled with Bash only (no dot-directories there: monograph's watcher
  ignores dot-segment paths).

## Git
- Never run `git config` in any checkout of this repo (worktrees share
  .git/config; issue #250).
- NEVER use `git stash` in any form: the stash stack is shared by every worktree
  and the owner has entries on it (issue #300). Use `git diff > $SCRATCH/x.patch`
  + `git apply -R`, or a scratch worktree at the base SHA.
- Known policy gaps (#299): at policy.git read, `merge-base`, `ls-remote`,
  `show-ref`, `reflog` are denied — use `git diff main...HEAD` /
  `git log main..HEAD` instead.
- Commit only with
  `GIT_AUTHOR_NAME=nokhodian GIT_AUTHOR_EMAIL=nokhodian@gmail.com GIT_COMMITTER_NAME=nokhodian GIT_COMMITTER_EMAIL=nokhodian@gmail.com git commit`
  using conventional commits (when it resolves an issue, put `Fixes #N` in the
  body; a bare `(#N)` leaves the issue open), and NO trailers (no
  Co-Authored-By, Claude-Session or 'Generated with').
- Stage explicit paths, never `git add -A` / `git add .`.
- Never push, never touch origin, npm or GitHub.

## Evidence
- Every claim is backed by a log under `RUN/logs/<role>/<item-id>-<check>.log`
  produced in THIS run, with the SHA it ran against.
- Report each check as {name, command, exit_code, PASS|FAIL|SKIP|FLAKY, log path,
  one-line evidence}. SKIP needs the exact error proving the check is impossible;
  never call a failure 'environmental' or 'pre-existing' without reproducing it
  on main.
- Finish every task with `org_task_done`, putting that table in the result.
  This org requires EVIDENCE: pass `evidence` = { `headSha`: the commit your
  checks ran on (`git -C <dir> rev-parse HEAD`), `worktree`: the item's WT when
  the work is on an item (omit it only for work on REPO itself, such as triage
  or the final report), `checks`: one { command, exitCode, output } per
  acceptance criterion — the real command, its real exit code, the tail of its
  output }. When the correct outcome is a non-zero exit, add `expectExit: <code>`
  to that check plus a one-line `expectReason` saying why ("404 = branch not
  protected") — never append `|| true`, and `expectExit` without a reason is
  refused. `expectExit` is for SINGLE-PURPOSE commands only: it is refused on a
  test suite or any aggregate runner (`vitest`, `jest`, a `pnpm`/`npm`/`yarn`
  test script, `node --test`, `pnpm -r`, `pnpm --filter … test`, `run verify`,
  `test:all`), because a suite's exit code means "at least one of many things
  failed" and accepting it accepts every OTHER failure too. With one
  known-failing test, run that file alone (`npx vitest run path/to/one.test.ts`)
  and declare `expectExit` on THAT check, or exclude it so the suite exits 0 and
  record the exclusion in the result. A check that misses its expected exit
  or a sha that is no longer that worktree's HEAD is refused; after 3 refusals the task is failed and escalated to dev-lead. A task
  with nothing to run (a verdict, a plan) still names the command that proves
  it — e.g. `test -s <plan or verdict path>`, or `head -1 <verdict file>`.
- The evidence proves the task was done, not that the item is good: a FAIL,
  REJECT, REVISE or DROP verdict is a completed task. Its evidence checks are
  the commands that prove the verdict file exists and names the SHA; the failing
  commands and their exit codes go in the result's check table.

## Independent tests
- test-author creates WT (`git -C REPO worktree add -b dev/<item-id> WT main`)
  and, before BUILD, commits the item's failing tests in ONE commit that touches
  only test files, fixtures and test helpers. It writes
  `RUN/evidence/<item-id>-tests.md`: line 1 `TESTS: <full SHA of that commit>`
  (or `TESTS: none — <reason>` when nothing can be tested automatically), then
  one `- <path>` line per file of that commit (the PROTECTED paths), then per
  acceptance criterion the test that covers it (or `manual: <why>`) and the log
  of its failing run.
- Protected paths are read-only for every other role. Developers make those
  tests pass and may ADD tests in other files, but never edit, rename or delete
  a protected path. A developer who finds one wrong stops and reports it with
  evidence; only a test-author TESTS revision changes it (a new commit, and
  tests.md names the new SHA and paths).
- TEST INTEGRITY (verifier's ITEM VERIFY, integrator's MERGE GATE): with T the
  SHA on line 1 and P the protected paths,
  `git -C WT log --format=%H main..HEAD | grep -qx T` (T is on the branch) and
  `git -C WT diff --name-only T..HEAD -- P` prints nothing. Otherwise it is a
  FAIL (verifier) or a REFUSE (integrator) naming the changed path. `TESTS: none`
  passes trivially.

## Lessons across runs
Org memory persists across runs of this org (`org_remember` writes it,
`org_recall` searches it). Lessons are how a finding in one run stops the same
mistake in the next.
- RECORD (dev-lead): for every FAIL (verifier), REJECT (reviewer) and REVISE
  (product-evaluator) finding, distill ONE short reusable rule — what to do next
  time, not what went wrong in this item; at most two sentences; name the AREA
  (the package or subsystem, e.g. `orgrt`, `monograph`, `cli init`, `skills`).
  First `org_recall` with `lesson <area> <key words>`; if a lesson already says
  it, do not store a reworded copy. Otherwise `org_remember` with scope `org`
  and content `lesson: [<area>] <rule> (<run-id>/<item-id>, <role> <verdict>)`.
  Also append that line to `RUN/lessons.md`, this run's list.
- APPLY (architect, test-author, developer-1, developer-2): at the start of
  every task, `org_recall` with `lesson <area>` for each area the task touches
  (from the plan or the task message) and apply the lessons that fit. Name the
  ones you applied in your `org_task_done` result, one line each. A lesson
  never overrides the task message, the plan or these rules; when one
  conflicts, follow those and say so in the result.
- PROPOSE (dev-lead, at FINISH): REPORT.md gets a `## Lessons` section listing
  every line of `RUN/lessons.md`, then the lessons you PROPOSE as permanent
  rules for this skill, each with the exact sentence and the section it belongs
  in. Never edit this skill or an org config yourself: the owner decides.

## Destructive commands
- `cleanup` (any variant), `init --force`, recursive deletes, `git clean`,
  `git reset --hard` and anything else that deletes or overwrites files run ONLY
  inside the item's WT or a scratch dir you created, with `cd` into it in the
  SAME command and a `pwd` check first. Never in REPO: on 2026-09-22
  `cleanup --force` run from the main checkout deleted 1003 tracked files and
  the project's memory store.

## Build, lint and test traps
- LINT: `pnpm run lint` from a worktree under .monomind/ silently checks 0 files
  (issue #297) — run `npx biome check packages tests scripts` and treat any
  output that does not report >1000 checked files as a FAIL.
- BUILD: if tsgo dies on a signal (SIGSEGV, not a TypeScript error), rerun that
  build once and log both; never copy dist/ from another checkout.
- BASELINE: the org's git guard env makes 17 git-config tests fail inside roles
  (issue #298: @monoes/monograph hooks-marker/hooks-install/hooks-status,
  role-sandbox.test.ts excludesFile) — a failure is a regression only if it is
  not in the verifier's baseline taken in the same role environment.

## Working style
- BREVITY: messages to other roles are instructions and evidence, not essays —
  at most ~20 lines plus log paths. Findings about the milestone go in the
  ledger entry, not in prose.
- Use monograph first for code navigation (monograph_suggest /
  monograph_context / monograph_impact), grep only as a fallback.
- Keep files under 500 lines. Follow the repo's CLAUDE.md coding principles:
  surgical changes, no speculative features, match surrounding style.

## Unattended
- After dev-lead's PREFLIGHT nobody asks the human anything:
  org_gate is denied for every role, and ask_human for every role except
  dev-lead, which may use it only during PREFLIGHT.

Attribution

monoesmonoes
View sourceSee grades on GitHubMore from monoes →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698461 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →