Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -381,8 +381,8 @@
"tags": ["audit", "drift", "documentation", "configuration", "architecture", "verification", "claims", "skill"]
},
{
"name": "re-anchor",
"source": "./plugins/re-anchor",
"name": "discipline",
"source": "./plugins/discipline",
"category": "quality",
"tags": ["re-anchor", "discipline", "corrector", "research", "standards", "duplication", "incumbency", "terseness", "upstream", "conformance", "selection", "communication", "determinism", "consistency", "skills", "audit", "skill"]
},
Expand Down Expand Up @@ -486,6 +486,7 @@
"claude-config-audit": "claude-config",
"boris": "playbooks",
"thariq-skills": "playbooks",
"fable-5-playbook": "playbooks"
"fable-5-playbook": "playbooks",
"re-anchor": "discipline"
}
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ user opts in with `/plugin enable`; an existing install is never flipped by cata
- [`mcp-tools`](plugins/mcp-tools) — Audits MCP server tool definitions against MCP-specification and Anthropic tool-design criteria and reports a per-tool PASS/WARN/FAIL scorecard covering description, parameters, naming, and annotations. Language-agnostic — Python (FastMCP), TypeScript, and .NET.
- [`review`](plugins/review) — Code-review toolkit: six read-only reviewer agents (code, security, architecture, doc drift, build/test/lint, CI-log audit) plus two orchestration skills — a single-lens quality gate and a multi-surface review fan-out with severity-ranked, deduplicated findings.
- [`codebase-health`](plugins/codebase-health) — Repo-wide drift audit between docs, config, code, and architecture: verifies every factual claim against reality via parallel subagent fan-out, severity-rates findings, and reports read-only, delegating remediation to the implementation/verification lanes. Audit dimensions are configurable through a tracked .claude/codebase-health.md config file written by the setup skill.
- [`re-anchor`](plugins/re-anchor) — Discipline correctors that re-anchor a standing rule mid-session, then audit both the work in flight and the pre-existing state and choices it trusts, and correct what has drifted: do-your-research (research and no-assumptions discipline; sibling do-your-research-deep escalates to a typed full inventory of the session's claims — assumptions, asserted facts, concrete specifics, load-bearing premises — verified at a configurable depth and reported as a per-item ledger), follow-our-standards (alignment to the consuming org's engineering conventions), point-dont-copy (pointer-over-copy discipline — no copied content, internal-name coupling, or closed capability lists), reason-dont-recite (interrogate inherited content — precedent is evidence of what is, never self-justifying authority), tighten-your-output (terseness discipline — fewer words or lines with no loss of meaning or correctness), recheck-against-upstream (existing state is not evidence of its own correctness — audit config, code, and infra against current official upstream docs; sibling recheck-against-upstream-deep fans subagents doc-by-doc over a whole subsystem), pick-for-the-problem (tool, library, framework, and approach selection fitted to the problem, not reached for out of habit, availability, incumbency, or preconception), mind-your-maxims (cooperative-communication discipline per Grice plus the AI-augmented transparency maxim), script-the-deterministic-work (offload deterministic sub-work — counts, diffs, sorts, transforms, and scaffolds — to a script that runs, reserving model output for judgment over its real output; the audit runs both ways, also catching an existing script that over-reaches into judgement), use-your-skills (actually use the skills already in context — scan the listing, map the task, invoke the fitting skill instead of reinventing it, and name skills when delegating to a subagent), and reuse-or-replace (anti-fragmentation — new work reuses an established way of doing something or openly replaces it (migrate the old uses, record the decision), never silently stands up a second parallel way; divergence is allowed but owes a recorded reason proportional to blast radius), and scrutinize-dont-coast (adversarial self-scrutiny — stop coasting on your own recent output and re-examine whether it is sound, not merely confidently produced, through a fresh-context pass blind to the reasoning that made it, then remediate with the user; it stops the trajectory first and remediates collaboratively rather than autonomously). Plus sweep-all-disciplines, a posture-batch runbook — not a corrector but a declared second species that composes them: it fans out an audit-only subagent per in-scope corrector, then applies the corrections on the main thread in a fixed order, with batch membership and order set by each corrector's own colocated tier metadata and an optional userConfig overlay. Firing one is a re-anchor, not an accusation; the audit may return clean.
- [`discipline`](plugins/discipline) — Discipline correctors that re-anchor a standing rule mid-session, then audit both the work in flight and the pre-existing state and choices it trusts, and correct what has drifted: do-your-research (research and no-assumptions discipline; sibling do-your-research-deep escalates to a typed full inventory of the session's claims — assumptions, asserted facts, concrete specifics, load-bearing premises — verified at a configurable depth and reported as a per-item ledger), follow-our-standards (alignment to the consuming org's engineering conventions), point-dont-copy (pointer-over-copy discipline — no copied content, internal-name coupling, or closed capability lists), reason-dont-recite (interrogate inherited content — precedent is evidence of what is, never self-justifying authority), tighten-your-output (terseness discipline — fewer words or lines with no loss of meaning or correctness), recheck-against-upstream (existing state is not evidence of its own correctness — audit config, code, and infra against current official upstream docs; sibling recheck-against-upstream-deep fans subagents doc-by-doc over a whole subsystem), pick-for-the-problem (tool, library, framework, and approach selection fitted to the problem, not reached for out of habit, availability, incumbency, or preconception), mind-your-maxims (cooperative-communication discipline per Grice plus the AI-augmented transparency maxim), script-the-deterministic-work (offload deterministic sub-work — counts, diffs, sorts, transforms, and scaffolds — to a script that runs, reserving model output for judgment over its real output; the audit runs both ways, also catching an existing script that over-reaches into judgement), use-your-skills (actually use the skills already in context — scan the listing, map the task, invoke the fitting skill instead of reinventing it, and name skills when delegating to a subagent), and reuse-or-replace (anti-fragmentation — new work reuses an established way of doing something or openly replaces it (migrate the old uses, record the decision), never silently stands up a second parallel way; divergence is allowed but owes a recorded reason proportional to blast radius), and scrutinize-dont-coast (adversarial self-scrutiny — stop coasting on your own recent output and re-examine whether it is sound, not merely confidently produced, through a fresh-context pass blind to the reasoning that made it, then remediate with the user; it stops the trajectory first and remediates collaboratively rather than autonomously). Plus sweep-all, a posture-batch runbook — not a corrector but a declared second species that composes them: it fans out an audit-only subagent per in-scope corrector, then applies the corrections on the main thread in a fixed order, with batch membership and order set by each corrector's own colocated tier metadata and an optional userConfig overlay. Firing one is a re-anchor, not an accusation; the audit may return clean.

### Maintenance

Expand Down
6 changes: 3 additions & 3 deletions docs/conventions/loop-lane/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,12 +178,12 @@ start; new automated intake arriving mid-cycle is **reported, never chased**, so
bot cannot hold a drain open indefinitely.

**Subagent discipline preamble.** Every subagent a lane dispatches carries a standing discipline
preamble. When the `re-anchor` plugin is installed, the dispatch prompt invokes its sweep —
sweep-all-disciplines, use-your-skills, do-your-research; when it is absent, the dispatch prompt
preamble. When the `discipline` plugin is installed, the dispatch prompt invokes its sweep —
sweep-all, use-your-skills, do-your-research; when it is absent, the dispatch prompt
inlines the equivalent standing instructions (verify claims against authoritative sources before
acting, prefer installed skills over ad-hoc approaches, and re-check work against the active
conventions). The reference is presence-gated with this inline fallback per the
[seam-phrasing convention](../seam-phrasing/README.md) — `re-anchor` is never a hard dependency.
[seam-phrasing convention](../seam-phrasing/README.md) — `discipline` is never a hard dependency.

## 5. Consumers and launch surfaces

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "re-anchor",
"version": "0.8.0",
"description": "Discipline correctors that re-anchor a standing rule mid-session, then audit both the work in flight and the pre-existing state and choices it trusts, and correct what has drifted: do-your-research (research and no-assumptions discipline; sibling do-your-research-deep escalates to a typed full inventory of the session's claims — assumptions, asserted facts, concrete specifics, load-bearing premises — verified at a configurable depth and reported as a per-item ledger), follow-our-standards (alignment to the consuming org's engineering conventions), point-dont-copy (pointer-over-copy discipline \u2014 no copied content, internal-name coupling, or closed capability lists), reason-dont-recite (interrogate inherited content \u2014 precedent is evidence of what is, never self-justifying authority), tighten-your-output (terseness discipline \u2014 fewer words or lines with no loss of meaning or correctness), recheck-against-upstream (existing state is not evidence of its own correctness \u2014 audit config, code, and infra against current official upstream docs; sibling recheck-against-upstream-deep fans subagents doc-by-doc over a whole subsystem), pick-for-the-problem (tool, library, framework, and approach selection fitted to the problem, not reached for out of habit, availability, incumbency, or preconception), mind-your-maxims (cooperative-communication discipline per Grice plus the AI-augmented transparency maxim), script-the-deterministic-work (offload deterministic sub-work \u2014 counts, diffs, sorts, transforms, and scaffolds \u2014 to a script that runs, reserving model output for judgment over its real output; the audit runs both ways, also catching an existing script that over-reaches into judgement), use-your-skills (actually use the skills already in context \u2014 scan the listing, map the task, invoke the fitting skill instead of reinventing it, and name skills when delegating to a subagent), and reuse-or-replace (anti-fragmentation \u2014 new work reuses an established way of doing something or openly replaces it (migrate the old uses, record the decision), never silently stands up a second parallel way; divergence is allowed but owes a recorded reason proportional to blast radius), and scrutinize-dont-coast (adversarial self-scrutiny \u2014 stop coasting on your own recent output and re-examine whether it is sound, not merely confidently produced, through a fresh-context pass blind to the reasoning that made it, then remediate with the user; it stops the trajectory first and remediates collaboratively rather than autonomously). Plus sweep-all-disciplines, a posture-batch runbook — not a corrector but a declared second species that composes them: it fans out an audit-only subagent per in-scope corrector, then applies the corrections on the main thread in a fixed order, with batch membership and order set by each corrector's own colocated tier metadata and an optional userConfig overlay. Firing one is a re-anchor, not an accusation; the audit may return clean.",
"name": "discipline",
"version": "0.9.0",
"description": "Discipline correctors that re-anchor a standing rule mid-session, then audit both the work in flight and the pre-existing state and choices it trusts, and correct what has drifted: do-your-research (research and no-assumptions discipline; sibling do-your-research-deep escalates to a typed full inventory of the session's claims — assumptions, asserted facts, concrete specifics, load-bearing premises — verified at a configurable depth and reported as a per-item ledger), follow-our-standards (alignment to the consuming org's engineering conventions), point-dont-copy (pointer-over-copy discipline \u2014 no copied content, internal-name coupling, or closed capability lists), reason-dont-recite (interrogate inherited content \u2014 precedent is evidence of what is, never self-justifying authority), tighten-your-output (terseness discipline \u2014 fewer words or lines with no loss of meaning or correctness), recheck-against-upstream (existing state is not evidence of its own correctness \u2014 audit config, code, and infra against current official upstream docs; sibling recheck-against-upstream-deep fans subagents doc-by-doc over a whole subsystem), pick-for-the-problem (tool, library, framework, and approach selection fitted to the problem, not reached for out of habit, availability, incumbency, or preconception), mind-your-maxims (cooperative-communication discipline per Grice plus the AI-augmented transparency maxim), script-the-deterministic-work (offload deterministic sub-work \u2014 counts, diffs, sorts, transforms, and scaffolds \u2014 to a script that runs, reserving model output for judgment over its real output; the audit runs both ways, also catching an existing script that over-reaches into judgement), use-your-skills (actually use the skills already in context \u2014 scan the listing, map the task, invoke the fitting skill instead of reinventing it, and name skills when delegating to a subagent), and reuse-or-replace (anti-fragmentation \u2014 new work reuses an established way of doing something or openly replaces it (migrate the old uses, record the decision), never silently stands up a second parallel way; divergence is allowed but owes a recorded reason proportional to blast radius), and scrutinize-dont-coast (adversarial self-scrutiny \u2014 stop coasting on your own recent output and re-examine whether it is sound, not merely confidently produced, through a fresh-context pass blind to the reasoning that made it, then remediate with the user; it stops the trajectory first and remediates collaboratively rather than autonomously). Plus sweep-all, a posture-batch runbook — not a corrector but a declared second species that composes them: it fans out an audit-only subagent per in-scope corrector, then applies the corrections on the main thread in a fixed order, with batch membership and order set by each corrector's own colocated tier metadata and an optional userConfig overlay. Firing one is a re-anchor, not an accusation; the audit may return clean.",
"author": {
"name": "Melodic Software",
"email": "info@melodicsoftware.com"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,57 @@
# Changelog

All notable changes to the `re-anchor` plugin are documented here. Format follows
All notable changes to the `discipline` plugin are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

Entries below `0.9.0` were released under the plugin's former name, `re-anchor`.

## [0.9.0]

### Changed

- **Renamed the plugin `re-anchor` -> `discipline`; every skill moves from
`/re-anchor:*` to `/discipline:*`.** Three defects in the old name, each verified rather
than asserted. (1) It was a bare verb — the sole outlier among 60 sibling plugins, all of
which are nouns or noun-phrases. (2) The `re-` prefix presumes a prior anchoring, but the
shared method's documented conversation-start case is a *first* posture-set with nothing
yet to re-anchor. (3) "Anchoring" is the cognitive-bias term of art — the plugin was named
after a bias `reason-dont-recite` exists to fight.

`discipline` is the word the plugin already used for itself 189 times ("a drift corrector
for research discipline"), so the name is the authors' own revealed vocabulary rather than
a coinage. Container/member word overlap (`/discipline:sweep-all`) is routine in this
marketplace — `/planning:plan`, `/debugging:debug`, `/visualization:visualize`,
`/work-items:work` all ship that shape.

Candidates rejected on evidence: `steering` (fails the conversation-start case; collides
with Codex "mid-turn steering" and ML "activation steering"), `calibration` (implies
adjustment against a measurable reference with quantified error — this work is
judgment-based, the same objection that rules out `invariants`), `salience` (accurate but
not a word a reader reaches for first), `grounding` (slug already taken).

**Migration, and its one manual step.** On Claude Code >= 2.1.193 the marketplace
`renames` map is followed at session start: an enabled `re-anchor@melodic-software`
loads as `discipline` instead of failing `plugin-not-found`, and the old key is
rewritten to the new one in the user, project, and local settings scopes for BOTH
`enabledPlugins` and `pluginConfigs` — so configured `batch_exclude` / `batch_promote` /
`batch_demote` / `research_deep_verification` values move across with no action. Two
edges: managed and policy scopes are read-only to Claude Code and are not rewritten, and
if `discipline@melodic-software` already carries its own `pluginConfigs` entry the new
id's values win and the old ones are dropped rather than merged. Below 2.1.193 nothing
is lost — the rename simply does not migrate, and the old name reports
`plugin-not-found`.

What the map does NOT rewrite is any invocation stored outside settings. In a consuming
repository's instruction files, an agent prompt, a saved workflow, or automation,
`/re-anchor:<skill>` must become `/discipline:<skill>` and `/plugin configure re-anchor`
must become `/plugin configure discipline` by hand.

- **Renamed `sweep-all-disciplines` -> `sweep-all`.** Removes the one genuinely awkward
pairing the plugin rename introduced (`/discipline:sweep-all-disciplines`). This leaf
rename has NO compatibility entry — the `renames` map keys plugins, not skills — so
`/re-anchor:sweep-all-disciplines` becomes `/discipline:sweep-all` and any stored
reference to the old skill name must be updated by hand.

## [0.8.0]

### Added
Expand Down
Loading