Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Summary

monban CLI (@mulyu/monban) の使い方スキルと monban.yml 雛形生成コマンド。プロジェクト構造の一貫性を検証する言語非依存のハーネス。

Install to Claude Code

/plugin install monban@mulyu

Run in Claude Code. Add the marketplace first with /plugin marketplace add Mulyu/monban if you haven't already.

README.md

monban

> 日本語 | English

> A guardhouse for coding agents. The gatekeeper checks whether code is allowed through the checkpoint.

monban is a harness CLI that statically inspects code generated or edited by coding agents (Claude Code, Cursor, Copilot, etc.) — in CI or locally.

Language-agnostic. No AST required. Works on projects in any language.

For the design philosophy, see docs/concepts.md.

---

Checks

| Command | Target | Docs | |---------|------|-------------| | monban path | File and directory existence, naming, depth, count | docs/path.md | | monban content | Regex-based forbidden/required patterns, BOM, invisible characters, secrets | docs/content.md | | monban doc | Doc reference hashes and broken links | docs/doc.md | | monban github | GitHub Actions workflows (pinning, permissions, triggers, etc.) and CODEOWNERS | docs/github.md | | monban deps | Validate manifest dependency names against registries: existence, freshness, popularity, similarity | docs/deps.md | | monban git | Commit messages, trailers, issue references, change granularity, ignore bypasses | docs/git.md | | monban runtime | Runtime version pins (.nvmrc / engines / Dockerfile FROM / GitHub Actions matrix) — cross-file consistency | docs/runtime.md | | monban license | LICENSE file detection (SPDX tag / template) and source-header SPDX identifiers | docs/license.md | | monban docker | Dockerfile checks: tag pinning, USER, HEALTHCHECK, forbidden instructions | docs/docker.md |

The --diff flag, which scopes a run to a PR diff, works on every command (docs/diff.md). For reusing organization-wide rule sets, see docs/extends.md.

---

Install

# Global install
npm install -g @mulyu/monban

# One-off run (recommended for CI)
npx @mulyu/monban all

> The package name is @mulyu/monban, but the installed command is monban.

See docs/getting-started.md for the fastest path to a first run.

---

Usage

# Run every check
monban all

# Run checks individually
monban path
monban content
monban doc
monban github
monban deps
monban git
monban runtime
monban license
monban docker

# Run a single rule
monban path --rule forbidden

# Scope to a PR diff
monban all --diff=main

# JSON output
monban all --json

---

Configuration

Place monban.yml at the project root. See the per-command docs for the configuration fields.

# monban.yml
extends:
  - type: local
    path: "./shared/base.yml"

exclude:
  - "**/node_modules/**"
  - "**/dist/**"

path:    { ... }   # docs/path.md
content: { ... }   # docs/content.md
doc:     { ... }   # docs/doc.md
github:  { ... }   # docs/github.md
deps:    { ... }   # docs/deps.md
git:     { ... }   # docs/git.md
runtime: { ... }   # docs/runtime.md
license: { ... }   # docs/license.md
docker:  { ... }   # docs/docker.md

---

Coding agent integration

Claude Code

Add the following to CLAUDE.md to encourage the agent to run the checks after every change:

## Post-change verification

After changing code, always run `npx @mulyu/monban all` and confirm every check passes.

Install as a plugin (recommended)

The monban skill and the /monban:init command can be installed through the Claude Code marketplace.

/plugin marketplace add Mulyu/monban
/plugin install monban@mulyu
/reload-plugins
  • monban skill: supplies the command table, output interpretation, fix workflow, and monban.yml conventions to the agent
  • /monban:init: surveys an existing project and generates a monban.yml scaffold

The marketplace manifest is at .claude-plugin/marketplace.json; the plugin itself is at plugins/monban/.

GitHub Actions

- name: monban
  run: npx @mulyu/monban all --diff=${{ github.event.pull_request.base.sha }}

Omitting --diff runs a full scan. For PR review, passing the base SHA so only the diff is checked is the recommended setup.

---

Docs

---

License

MIT

Related plugins

Browse all →