Skip to content
Open
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
2 changes: 1 addition & 1 deletion plugins/ai-slop/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "ai-slop",
"version": "0.3.9",
"version": "0.3.10",
"description": "Detects and removes AI-writing tells (slop) in checked-in markdown prose: em dashes, emoji formatting, AI vocabulary, negative parallelisms, chatbot phrases, filler, stacked hedging, citation artifacts, and the rest of a catalog distilled from Wikipedia's Signs of AI writing. Read-only audit by default with a deterministic detector plus a judgment rubric; an explicit fix action rewrites findings behind a semantic-diff guard. Findings conform to the detector-findings convention so the review fanout fix relay can consume them.",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/ai-slop/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## [0.3.10]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.3.9]

- **Three directory-expansion defects survived 0.3.8.** A tracked file
Expand Down
6 changes: 5 additions & 1 deletion plugins/ai-slop/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,8 @@ Everything `check` does, then the confirmed write:
2. Write ONLY the team layer (`.claude/ai-slop.json`), showing the diff and getting explicit
confirmation before writing. Never write the user-global or overlay layers on the user's
behalf; name them as options the user edits themselves.
3. Re-run `--show-config` and report the new effective state.
3. Re-run `--show-config` and report the new effective state. Then run the tracked-file pair on
the written team file: `git check-ignore -v .claude/ai-slop.json` reports no match (a match is
FAIL with the pattern) AND `git ls-files --error-unmatch .claude/ai-slop.json` exits 0
(non-zero right after a fresh write means "written but untracked: commit it to share with the
team", never success).
2 changes: 1 addition & 1 deletion plugins/claude-config/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "claude-config",
"version": "0.40.2",
"version": "0.40.3",
"description": "Nine configuration-health skills (plus setup) for a repo's Claude Code configuration: audit (settings.json / .mcp.json / hooks / plugins / permissions drift), audit-automation-gaps (evidence-gated verdicts on automation gaps), audit-permission-grants (allow-rule / allowed-tools grants for auto-mode durability and portability), audit-permission-state (the permission rules actually in effect — every settings scope merged with per-rule provenance, what auto mode drops on entry, config written where nothing reads it, and which managed intents are enforced versus loosenable), draft-auto-mode-rules (interview and draft a paste-ready autoMode classifier block; prints only, never writes), audit-instructions (locally-owned instruction surfaces vs current model capability — proposes removals/rewrites of instructions the model no longer needs, and detects cross-surface instruction conflicts), audit-prompting-postures (the additive lane — posture guidance the prompting guide says a component's purpose needs but the component does not carry), audit-pass (one coordinated, ordered, resumable pass over a named target — three-scope inventory, run-time-derived exclusion set, stable finding identity, suppression memory, resume, one human gate — delegating every check to the plugin that owns it), and unhobble (the empirical bare-baseline experiment: reversibly strip a repo's standing instructions, log real stumbles against the current model, re-add only what evidence earns).",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/claude-config/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
All notable changes to the `claude-config` plugin are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

## [0.40.3]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.40.2]

### Fixed
Expand Down
4 changes: 3 additions & 1 deletion plugins/claude-config/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,9 @@ nested worktree the skill was invoked from, then report one row per layer. The s
tracked/ignored question has opposite correct answers per layer, so verify each on its own terms:

- **user-global** `~/.claude/audit-pass.md`: outside the worktree; no git command applies. INFO only.
- **team** `.claude/audit-pass.md`: must be tracked. Untracked while present is a hard STOP:
- **team** `.claude/audit-pass.md`: must be tracked, probed as the pair —
`git check-ignore -v` reports no match (a match is FAIL with the pattern) AND
`git ls-files --error-unmatch` exits 0. Untracked while present is a hard STOP:
teammates never receive the shared suppressions.
- **local overlay** `.claude/audit-pass.local.md`: must be gitignored and never staged. Staged or
tracked is a FAIL: a personal deviation can reach team history.
Expand Down
2 changes: 1 addition & 1 deletion plugins/code-tidying/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "code-tidying",
"version": "0.14.5",
"version": "0.14.6",
"description": "Code tidying and comment hygiene: /code-tidying:tidy proactively hunts a rotated, glob-scoped lane for Beck-style tidyings under a research-backed scope budget and ships one tight PR; /code-tidying:batch-simplify sweeps a time window, a branch, or an entire repository through grouped, dependency-ordered simplification waves with a never-drop deferred-items contract; /code-tidying:dissolve-comments enforces self-describing expressive code over a diff or target, widening to the branch diff and then the whole repository when the tree is clean — deletes zero-information comments, dissolves code-expressible ones into names and structure behind a tests gate (safe mode restricts applied edits to removals), and keeps only terse load-bearing comments code cannot express; /code-tidying:audit-comment-residue is a read-only classifier that flags history, plan, conversational, and ticket/PR residue in code comments for author-applied deletion; /code-tidying:audit-dead-code is a read-only whole-repo dead-code hunter running four labelled lanes of unequal confidence (knip for TS/JS, vulture for Python, gopls for Go, and a portable grep lane for shell and other symbol languages), adjudicating every candidate against dynamic-usage evidence into a dead, uncertain, or alive verdict. Project-specific tidy lanes are scaffolded into a tracked .claude/tidy-lanes/ config folder by a re-runnable setup skill.",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/code-tidying/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
All notable changes to the `code-tidying` plugin are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

## [0.14.6]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.14.5]

### Changed
Expand Down
22 changes: 14 additions & 8 deletions plugins/code-tidying/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,13 @@ FAIL. Modify nothing, and do NOT run a tidy sweep. That is `/code-tidying:tidy`.
headings. Unkeyed entries name no language to replace. Framing prose above the first `###` is fine.
3. **No unreplaced placeholders**, a lane still containing a template `<placeholder>` resolves to a
broken scope glob or watch-for pattern; FAIL, naming the file and the leftover token.
4. **Tracked, not ignored**. Run `git check-ignore -v <file>` per lane file. A non-empty result means a
`.gitignore` pattern excludes that lane; these lanes are team-shared and take effect only when
committed, so an ignored lane is FAIL with the matching pattern in the remediation line (a directory
can be tracked while a pattern excludes an individual `.md` inside it).
4. **Tracked, not ignored**. Per lane file, run both halves of the tracked-file pair:
`git check-ignore -v <file>` (a non-empty result means a `.gitignore` pattern excludes that lane;
FAIL with the matching pattern in the remediation line — a directory can be tracked while a
pattern excludes an individual `.md` inside it) AND `git ls-files --error-unmatch <file>`
(non-zero exit means the lane is un-ignored but untracked: report it — "commit it to share with
the team", downgraded to INFO only when the user confirms it is a deliberately private,
uncommitted lane per the declared deviation below).
5. **Bundled lanes and templates**. INFO: report the bundled lanes and templates available as scaffold
sources, so the reader knows what `apply` can generate.

Expand Down Expand Up @@ -115,10 +118,13 @@ only where a lane's scope genuinely needs the user's call.
5. **Write the lane files.** Materialize each accepted lane at `.claude/tidy-lanes/<lane>.md`. Write only
lanes the user confirmed; produce no empty scaffolds.
6. **Verify after remediation.** Re-run the `check` probes on each written file, required sections
present, no leftover placeholder, and (per file) `git check-ignore -v <file>` confirms it is tracked,
not ignored. A non-empty `check-ignore` result means a `.gitignore` pattern excludes that lane; surface
the matching pattern and offer to fix `.gitignore` before reporting success, since these lanes are
team-shared and must be committed to take effect. `/code-tidying:tidy` resolves a lane only from
present, no leftover placeholder, and (per file) both halves of the tracked-file pair:
`git check-ignore -v <file>` reports no match (a non-empty result means a `.gitignore` pattern
excludes that lane; surface the matching pattern and offer to fix `.gitignore` before reporting
success) AND `git ls-files --error-unmatch <file>` exits 0 (non-zero means un-ignored but still
untracked, the guaranteed state right after a fresh write, so report "written but untracked:
commit it to share with the team", never success), since these lanes are team-shared and must
be committed to take effect. `/code-tidying:tidy` resolves a lane only from
`.claude/tidy-lanes/<lane>.md` (then the bundled lane of that name), and its catalog lists
`.claude/tidy-lanes/*.md`. There is no user-global or `*.local.*` overlay resolution (declared
deviation per the config-cascade contract, #723). Every scaffolded lane is a tracked, team-shared file;
Expand Down
2 changes: 1 addition & 1 deletion plugins/codebase-health/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "codebase-health",
"version": "0.8.4",
"version": "0.8.5",
"description": "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.",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/codebase-health/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
All notable changes to the `codebase-health` plugin are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

## [0.8.5]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.8.4]

### Changed
Expand Down
9 changes: 6 additions & 3 deletions plugins/codebase-health/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,12 @@ the repo make the values unambiguous; ask only where a dimension's targets genui
[`${CLAUDE_PLUGIN_ROOT}/skills/setup/templates/config-template.md`](templates/config-template.md) (replace every placeholder comment
with real values; drop unused placeholder rows).
6. **Verify after remediation.** Re-run the `check` probes on the written file. Dimension source lists
parse and name real paths, and `git check-ignore -v .claude/codebase-health.md` confirms it is
tracked, not ignored (surface the matching pattern and offer to fix `.gitignore` before reporting
success). Then **offer the overlay convention**: personal overrides go in
parse and name real paths, and both halves of the tracked-file pair hold:
`git check-ignore -v .claude/codebase-health.md` reports no match (a match is FAIL; surface the
pattern and offer to fix `.gitignore` before reporting success) AND
`git ls-files --error-unmatch .claude/codebase-health.md` exits 0 (non-zero means un-ignored but
still untracked, the guaranteed state right after a fresh write, so report "written but
untracked: commit it to share with the team", never success). Then **offer the overlay convention**: personal overrides go in
`.claude/codebase-health.local.md`; recommend the consumer add the recursive `.claude/**/*.local.*`
line to `.gitignore` if not already covered. A user-global base at `~/.claude/codebase-health.md` is also honored. Layers
resolve user-global → team → local overlay, additively.
Expand Down
2 changes: 1 addition & 1 deletion plugins/discovery/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "discovery",
"version": "0.16.5",
"version": "0.16.6",
"description": "Structured discovery before changes: explore the local codebase, run disciplined multi-source external research, and reconstruct why a past decision was made from evidence outside the code — each dispatching a purpose-built subagent by default so the reading stays out of the main conversation, with source tiers, falsification, recency gates, an intent-evidence tier, and a corpus-coverage ledger — persisting EXPLORE.md / RESEARCH.md / INTENT.md index-plus-sidecar handoff artifacts.",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/discovery/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog — discovery plugin

## [0.16.6]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.16.5]

### Fixed
Expand Down
5 changes: 4 additions & 1 deletion plugins/discovery/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ reports "already configured".
schema's `type: object`). Verify-or-create the memory root's self-ignoring `.gitignore` (announce the
creation). **Never edit the consumer's root `.gitignore`.**
3. **Verify.** Re-read `.claude/topic-docs.yaml` and report its effective values, never claim
persisted on the write alone.
persisted on the write alone. Then run the tracked-file pair on it: `git check-ignore -v`
reports no match (a match is FAIL with the pattern) AND `git ls-files --error-unmatch` exits 0
(non-zero right after a fresh write means "written but untracked: commit it to share with the
team", never success).

## Output

Expand Down
2 changes: 1 addition & 1 deletion plugins/github/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "github",
"version": "0.3.5",
"version": "0.3.6",
"description": "GitHub admin-plane audit, advice, and guided setup over the authenticated user's own gh CLI: billing and cost control, security posture, rulesets and settings drift, Actions policy, and every other org/repo/enterprise settings area. Grounded in live state and current official GitHub docs (zero vendored knowledge); read-only by default, every mutation user-in-loop.",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
All notable changes to the `github` plugin are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

## [0.3.6]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.3.5]

### Changed
Expand Down
6 changes: 5 additions & 1 deletion plugins/github/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ config). No action given: run `check`, then offer `apply` if anything is missing
| Layer | Verdict to check |
|---|---|
| user-global | exists / absent. No git verdict applies outside the worktree |
| team | must be tracked in git; untracked team config is a hard finding |
| team | must be tracked in git, probed as the pair (`git check-ignore -v` no match AND `git ls-files --error-unmatch` exit 0); untracked team config is a hard finding |
| local overlay | must be gitignored and never staged |

All three layers absent is a **valid state**, reported as "unconfigured: routing resolves to
Expand Down Expand Up @@ -72,6 +72,10 @@ config). No action given: run `check`, then offer `apply` if anything is missing
never overwrite or append to a consumer's existing conventions.
4. **Idempotency check**: when the merged answers equal the existing config, report "no changes
needed" and write nothing. A second run with the same answers must produce zero file changes.
After a team-layer write, re-run the tracked-file pair on each written path
(`git check-ignore -v` no match AND `git ls-files --error-unmatch` exit 0); non-zero `ls-files`
right after a fresh write means "written but untracked: commit it to share with the team",
never success.
5. **Recommend** the recursive gitignore line (`.claude/**/*.local.*`) if the consumer's
`.gitignore` lacks it. The edit is theirs to make.

Expand Down
2 changes: 1 addition & 1 deletion plugins/planning/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "planning",
"version": "0.34.4",
"version": "0.34.5",
"userConfig": {
"use_ask_user_question": {
"type": "boolean",
Expand Down
6 changes: 6 additions & 0 deletions plugins/planning/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
All notable changes to the `planning` plugin are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

## [0.34.5]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.34.4]

### Changed
Expand Down
9 changes: 8 additions & 1 deletion plugins/planning/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,10 @@ writes. Every bootstrap write is user-accepted.
the user chose. Absent keys mean the documented defaults, so an all-defaults answer may
yield a file with `contract_tier: branch` alone or the schema-valid empty mapping `{}`
(optionally followed by comments), never a comment-only document, which YAML parses as null.
Preserve every schema key an existing file carries.
Preserve every schema key an existing file carries. After the write, run the tracked-file pair
on it: `git check-ignore -v` reports no match (a match is FAIL with the pattern) AND
`git ls-files --error-unmatch` exits 0 (non-zero right after a fresh write means "written but
untracked: commit it to share with the team", never success).

### Second concern. Standards bootstrap

Expand All @@ -111,6 +114,10 @@ implement it by reference, do not restate it. Plugin-side notes only:
its `standards-contract` frontmatter at the binding's version, and the setup-owned
`<standards_dir>/.gitignore` containing `*.local.md` (the personal-overlay ignore). Write
`.claude/standards.yaml` only when the user relocates the root from the documented default.
After a bootstrap write, run the tracked-file pair on each written team file:
`git check-ignore -v` reports no match (a match is FAIL with the pattern) AND
`git ls-files --error-unmatch` exits 0 (non-zero right after a fresh write means "written but
untracked: commit it to share with the team", never success).
- **Optional offers, never demands:** pointer-rule generation for indexed ecosystem surfaces
(interactive only), and reorganizing mixed or spread standards content toward the SRP + index
shape.
Expand Down
2 changes: 1 addition & 1 deletion plugins/repo-fleet-hygiene/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "repo-fleet-hygiene",
"version": "0.23.10",
"version": "0.23.11",
"description": "Cross-repository Git/GitHub fleet discovery, evidence rollup, and a gated apply verb that executes a prior fleet action plan behind one confirmation. Audit stays read-only and confidence-tiered; apply mutates only with --apply plus interactive confirmation or --yes.",
"author": {
"name": "Melodic Software",
Expand Down
6 changes: 6 additions & 0 deletions plugins/repo-fleet-hygiene/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
All notable changes to `repo-fleet-hygiene` are documented here. Format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning.

## [0.23.11]

### Changed

- `setup` verifies tracked config writes with the check-ignore + ls-files pair and reports written-but-untracked instead of success (#3584, customization-consistency Phase 1c).

## [0.23.10]

### Changed
Expand Down
Loading
Loading