Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.
日本語の概要は準備中です。原文の説明を表示しています。
Maintain docs of record, ADRs, changelog, and house style. Use when writing repo docs. Do not use for release steps; use night-market-operations instead.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
This skill maps every document of record in claude-night-market, states which are hand-authored and which are generated, and gives the house prose style with the commands that enforce it. "Docs of record" means the files other contributors treat as canonical truth. Editing the wrong file (or a generated one) creates drift that CI then flags.
| File | Canonical for | Authored or generated | Update trigger |
|---|---|---|---|
CONSTITUTION.md | Supreme law: 10 non-negotiable rules | Hand-authored | Amendment PR titled constitution: amend rule N plus repo-owner sign-off |
STEWARDSHIP.md | Values and virtues behind the rules | Hand-authored | Rarely; value-level shifts only |
.claude/rules/ (8 files) | Repo-wide behavioral rules loaded into every session | Hand-authored | A research finding or audit graduates into policy |
docs/adr/ (0001-0017) | Load-bearing decisions with status and supersession | Hand-authored | New architectural decision; supersede, never rewrite |
docs/quality-gates.md | Three-layer gate system and skill gate composition | Hand-authored | Gate or threshold changes |
docs/testing-guide.md | Test discipline and coverage practice | Hand-authored | Testing policy changes |
docs/plugin-development-guide.md | Plugin authoring, release checklist, Python tiers | Hand-authored | Plugin conventions change |
docs/skill-description-guide.md | The 160-char description contract | Hand-authored | Description policy changes |
docs/skill-integration-guide.md | Skill role taxonomy (entrypoint, library, hook-target) | Hand-authored | Skill graph restructuring |
docs/backlog/queue.md, docs/backlog/technical-debt.md | Work intake and debt registry. LOCAL ONLY, not a doc of record: docs/backlog/ is gitignored with zero tracked files, so these exist only on the authoring machine. The durable record of a deferred item is a GitHub issue | Hand-authored, gitignored | New backlog item or debt entry |
docs/research/ | Dated research syntheses feeding the rules pipeline. LOCAL ONLY, not a doc of record: gitignored, absent on fresh clones. Background material; put load-bearing citations into the rule or ADR itself (see night-market-research-methodology) | Hand-authored, gitignored | New research pass completes |
CHANGELOG.md | Release history, Keep a Changelog 1.1.0 | Hand-authored | Every release and notable change |
docs/api-overview.md | Plugin version table and CLI entry points | Hand-authored | Every release (version table row per plugin) |
book/src/ | Published mdBook (GitHub Pages) | Mixed: see below | Content changes; deploys on push to book/** |
book/src/reference/capabilities-*.md | Skill/command/agent/hook lookup tables | GENERATED via sync | Never hand-edit; run /sanctum:sync-capabilities --fix |
.claude-plugin/marketplace.json | Ecosystem version source of truth | Hand-authored (bumped by script) | Release version bump |
docs/tradeoffs.md, docs/lessons-learned.md | Decision journal (TR-NNN / LL-NNN entries) | Hand-authored, append-only | Recording a tradeoff or lesson (contract: leyline:decision-journal) |
| GitHub Discussions | Collective memory ([Learning], [PR Finding], [War Room]) | Mixed (hooks post automatically) | See night-market-collective-memory |
Notes on the map:
mdbook static-site generator. The book builds from
book/book.toml (src = "src", create-missing = false) and its
table of contents is book/src/SUMMARY.md (Getting Started, then
Plugins grouped by layer, then Reference).leyline:decision-journal contract creates them on
first append. Do not scaffold them empty.docs/dependency-audit.md and other dated reports are point-in-time
artifacts, not living docs of record.docs/project-brief.md, docs/specification.md, and
docs/implementation-plan.md are per-feature working documents. Each
feature cycle OVERWRITES them (current occupant as of 2026-07-02: the
insight-palace bridge, spec v0.1.0 Draft). Never treat their content as
permanent record. If a decision inside them must outlive the feature,
promote it to an ADR or a decision journal entry before the next cycle.
Full rules live in .claude/rules/markdown-formatting.md and
.claude/rules/slop-scan-for-docs.md, with the detection catalog in
Skill(scribe:slop-detector) modules. The load-bearing subset:
# Title). Blank line before AND after every
heading and every list."Slop" is the repo term for machine-generated prose patterns that waste reader time or ship falsehoods. Every new or edited markdown file passes three layers before it is done:
scribe:slop-detector module document-economy.md;
tier table and extraction protocol: module
audience-targeting.md.scribe:slop-detector module
vocabulary-patterns.md and the rule file's tier lists..github/workflows/slop-check.yml runs on any PR touching a .md
file. It scans only files under docs/ and book/src/ and scores
each file:
score = (tier1_hits * 3 + tier2_hits * 2 + em_dashes) / words * 100
Any file scoring above 3.0 fails the job and gets a PR comment.
The workflow no longer holds its own word lists. It calls
scripts/slop_score.py, which reads
plugins/scribe/data/languages/en.yaml, so a category added there
reaches CI with no workflow edit.
Three modes, one script. Gate mode answers whether this merges. Ratchet mode answers whether a changed file got worse than its committed version, which is what the pre-commit hook asks of staged markdown and what CI asks of a PR's markdown against the merge base. Audit mode answers where the slop is, which is the question you have while fixing it:
uv run --with pyyaml python scripts/slop_score.py --audit <files>
uv run --with pyyaml python scripts/slop_score.py --threshold 3.0 docs book/src
uv run --with pyyaml python scripts/slop_score.py --ratchet HEAD <changed files>
Audit takes files or directories, prints a file and a line per
finding, and exits 0. It also runs the categories the gate declines
to score: semicolon splices, negative definition, over-explained
fixes, contrastive scaffolds, and the per-document negation-density
reading. Those are labeled (low) or (medium). A person judges
them. Nothing auto-rewrites them.
Files outside docs/ and book/src/ (plugin skills, READMEs) skip
this CI job but still fall under the rule file and review.
Every doc is paid for in cumulative reader-time: audience size times
read frequency times per-read time. Estimate that product BEFORE
drafting and match your writing time to it. A skill loaded hundreds
of times a day earns hours of polish. A one-off report earns minutes.
If the budget is near zero, do not write the doc. Full framework:
scribe:slop-detector module document-economy.md.
An ADR (Architecture Decision Record) captures a decision that is
expensive to reverse. They live in docs/adr/ as
NNNN-kebab-slug.md with zero-padded sequential numbers (0001-0017
as of 2026-07-02).
Header template (verified against ADR-0001 and ADR-0017):
# ADR-NNNN: Title
**Date**: YYYY-MM-DD
**Status**: Accepted
**Deciders**: Claude Night Market maintainers
**Source**: Issue #NNN, Discussion #NNN
**Supersedes**: ADR-NNNN
## Context
## Decision
## Consequences
Rules:
Source links the issue or discussion that forced the decision.| Record | Use for | Where |
|---|---|---|
| ADR | Load-bearing, hard-to-reverse design decision | docs/adr/NNNN-*.md |
| Decision journal | Tradeoff taken or lesson learned, append-only, stable TR-NNN / LL-NNN ids | docs/tradeoffs.md, docs/lessons-learned.md per leyline:decision-journal |
| Discussion post | Ambient collective memory: [Learning], [PR Finding], [War Room] | GitHub Discussions via GraphQL (no gh discussion subcommand exists) |
For the Discussions mechanics and promotion path, use the sibling skill night-market-collective-memory.
CHANGELOG.md follows Keep a Changelog 1.1.0 and SemVer:
## [Unreleased] stays at the top; new entries land there and get
moved under a ## [X.Y.Z] - YYYY-MM-DD heading at release.### Added, ### Fixed, ### Changed.scribe:slop-detector module anti-goals.md)
explicitly exempt changelog history: it is a record, not prose to
polish.Every SKILL.md and command description: field is loaded into the
model's skill-discovery budget, so length is policed:
[Verb phrase] [domain]. Use when [trigger]. Do not use when [negative]; use [alternative] instead.docs/skill-description-guide.md.Two pre-commit hooks enforce it:
python3 plugins/abstract/scripts/validate_budget.py
python3 scripts/fix_descriptions.py --check
validate_budget.py hard-fails any description over 160 chars and
warns when the ecosystem total approaches its budget (default 90,000
chars, override via SLASH_COMMAND_TOOL_CHAR_BUDGET). Note:
docs/skill-description-guide.md still cites an older 60,000-char
ceiling; the script value is current (the script is the enforcer).
book/src/SUMMARY.md to add pages;
create-missing = false means a SUMMARY entry without a file
breaks the build.cd book && mdbook build (output in book/build/).
mdbook is installed separately; CI uses the unpinned latest..github/workflows/deploy-book.yml publishes to GitHub
Pages on push to master touching book/**. PRs touching book/**
get a build check.book/src/reference/capabilities-*.md are generated from plugin
manifests. Check drift with make docs-sync-check (runs
scripts/capabilities-sync-check.sh); fix drift with the
/sanctum:sync-capabilities --fix command, not by hand.Run before committing markdown:
python3 scripts/check-markdown-links.py path/to/file.md
python3 plugins/abstract/scripts/validate_budget.py # if SKILL.md touched
make docs-sync-check # if manifests touched
Then walk the three slop layers manually or via
Skill(scribe:slop-detector). Every new or modified SKILL.md also
needs a ## Exit Criteria section (.claude/rules/skill-exit-criteria.md,
issue #454).
git diff --stat shows no book/src/reference/capabilities-*
unless produced by the sync command).python3 scripts/check-markdown-links.py <file> exits 0 for
each markdown file touched.python3 plugins/abstract/scripts/validate_budget.py exits 0
and the file contains a ## Exit Criteria section.## [Unreleased] as its first version
heading and no historical entry was reworded.Compiled 2026-07-02 against repo v1.9.15 (branch discussions-fix-1.9.14). Volatile facts and how to re-verify:
ls docs/adr/ and
rg -l "Superseded" docs/adr/..github/workflows/slop-check.yml.rg "DESCRIPTION_MAX|DEFAULT_BUDGET" plugins/abstract/scripts/validate_budget.py.ls .claude/rules/.head -5 docs/project-brief.md.ls docs/tradeoffs.md docs/lessons-learned.md..github/workflows/deploy-book.yml.docs/skill-description-guide.md in case the guide was updated.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.
日本語の概要は準備中です。原文の説明を表示しています。
Inverts burden of proof for code additions. Use when reviewing PRs, planning refactors, or running unbloat to challenge every addition's necessity.
日本語の概要は準備中です。原文の説明を表示しています。
Tracks per-agent token usage and flags waste in parallel dispatch. Use when evaluating parallel agent efficiency or after a multi-agent run.
日本語の概要は準備中です。原文の説明を表示しています。
Coordinates Claude agent teams via filesystem protocol. Use when orchestrating parallel agents with task dependencies. Do not use for single-agent tasks.
日本語の概要は準備中です。原文の説明を表示しています。
Evaluates API surface design, consistency, and exemplar alignment. Use when reviewing public API changes or before releasing a new API surface.
日本語の概要は準備中です。原文の説明を表示しています。
Selects architecture paradigm via research before scaffolding. Use when architecture is undecided and the choice needs justification and documentation.
日本語の概要は準備中です。原文の説明を表示しています。