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
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
bump: patch
---

### Changed

- The README no longer explains why ShellCheck misbehaves under actionlint or where actionlint
finds its configuration file. It keeps the choice to turn the run-block linters off at commit
and run them in CI, and points at actionlint's ShellCheck integration and configuration file
sections, each with an as-of date and a recheck trigger.
- `setup` no longer describes how a missing `node` shows up in the transcript; the FAIL and its
reason stay.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
bump: patch
---

### Changed

- `map-components`, `map-containers` and `map-context` drop the claim that mermaid C4 is experimental and point at
the Mermaid C4 page.
- `map-landscape` no longer states Structurizr's landscape view type. It keeps why the mermaid
output is a `C4Context` diagram without a focal system and points at the Structurizr
`systemLandscape` view and the Mermaid C4 page.
- `reference/config.md` no longer calls mermaid C4 experimental or restates the recheck
trigger; it points at the authoring-formats convention's record.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
bump: patch
---

### Changed

- The README no longer describes what `.editorconfig` and `--apply-ignore` do for shfmt, or how
ShellCheck and shfmt find their configuration. It keeps the choice to pass no style flags and
to pass `--apply-ignore`, and that configuration comes from your repository, and points at the
shfmt manual page and ShellCheck's RC FILES section.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
bump: patch
---

### Changed

- `lookup` and its MCP reference no longer list the MCP tools' parameters or describe them; they
keep the tool-list check, the tool-to-CLI mapping and why the two transports are treated alike,
and point at Context7's MCP Tools section.
- The Windows Git Bash gotcha keeps the rewrite it guards against and the `MSYS_NO_PATHCONV=1`
prefix rule, and points at MSYS2's automatic path conversion section.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
bump: patch
---

### Changed

- The README no longer spells out Go's generated-code marker or what `goimports` knows about
it; the skip-generated-files rule and the header-before-marker case stay, with a pointer to the
`go generate` section.
- The `goimports` requirement no longer carries the install command or the toolchain and
`GOPATH` notes. It keeps that `goimports` must be on `PATH`, is never downloaded, and that the
batch row skips and the SessionStart probe reports when it is absent, with a pointer to the
`goimports` docs.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
bump: patch
---

### Changed

- The `find` CI-health context no longer states the REST `per_page` cap, what `run_attempt` and
the latest attempt's duration record, or the `get_job_logs` failed-jobs option. It keeps the
window and paging rules with their reasons, the three fields per run, why `created_at` is not
used, and why the MCP path cannot window by date, and points at the workflow-runs REST sections
and the GitHub MCP Server tools list.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
bump: patch
---

### Changed

- `manage` no longer names the installer version Amazon stages. The hard safety rules and their
reasons stay.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
bump: patch
---

### Changed

- `setup` no longer states which settings file either `plugin configure` route writes. It keeps
the scope and failure-signal guidance with their reasons, and points at the `plugin configure`
and `plugin install` sections of the plugin commands reference.
- The Windows check catalog's environment and PATH health entry no longer names the System
Properties editor as the source of the 2047 User Path `CRIT` threshold; it keeps that further
appends are silently discarded.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
bump: patch
---

### Changed

- The README no longer spells out the plugin cache path layout or how Node runs TypeScript. It
keeps the step to locate the cached `launch.ts` again after an update and the choice of no
build step and no committed build output, and points at the plugin loading reference and
Node's type stripping section.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
bump: patch
---

### Changed

- `skill-authoring`'s skill criteria exempt replacing a restated upstream fact with a pointer to
its live upstream section from the cut eval rule. A removed sentence that gives a reason the
skill acts on still needs eval evidence of no loss, or it stays.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
bump: patch
---

### Changed

- The `quality-gate` PR mode no longer states what the `code-review` marketplace plugin targets
or where its findings go; it keeps the plugin gated and points at the plugin's Commands section
and the local review's reads-and-edits section.
- The `security-review` bundled-command record no longer lists what gates the native command;
it keeps that the lane never depends on it and points at the commands reference.
2 changes: 1 addition & 1 deletion docs/review/skills-and-agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
version), even with a stamp; they point at the exact section, and the pointer carries an as-of
date and recheck trigger: [rule](../../.claude/rules/skill-bodies-state-current-rules.md).
- Skill and agent text meets the skill standard, and a cut to an existing skill ships only with
eval evidence of no loss:
eval evidence of no loss, except a restated upstream fact swapped for a pointer:
[skill criteria](../../plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md).
- A generic skill names no `gh` command or GitHub grammar unless it sits behind the operation's
owner or in a declared-provider surface:
Expand Down
14 changes: 8 additions & 6 deletions plugins/actionlint/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ It ships no rules of its own and no binary. It runs the `actionlint` already on
- **A partly staged file is linted as staged.** The check reads the index, so the lint matches
what the commit records.
- **External run-block linters disabled (`-shellcheck= -pyflakes=`).**
actionlint's embedded-bash ShellCheck and `shell: python` pyflakes integrations are turned off.
Each spawns a subprocess per `run:` block. ShellCheck deadlocks on large blocks under the
Windows subprocess IPC path in actionlint 1.7.x. Native workflow diagnostics are unaffected;
run the full integrations in CI.
actionlint's embedded-bash ShellCheck and `shell: python` pyflakes integrations are turned off
at commit time; run the full integrations in CI. For how the integration runs, see
[actionlint checks: ShellCheck integration for `run:`](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#shellcheck-integration-for-run)
(as of 2026-11-03; recheck when that section changes how ShellCheck is invoked per `run:` block).
- **Opt-in end-of-turn check.** With `actionlint_end_of_turn` on, a Stop row runs the same check
over the uncommitted workflow changes (untracked files included) when a turn ends and hands
findings back to Claude once per turn. Nothing is rewritten. Off by default.
Expand Down Expand Up @@ -85,8 +85,10 @@ Then verify prerequisites with `/actionlint:setup check` and register the pre-co

## Configuration

actionlint auto-discovers its own `.github/actionlint.yaml` config from your
repository when present. Two `userConfig` options tune the hooks themselves:
For actionlint's own configuration file, see
[actionlint configuration: Configuration file](https://github.com/rhysd/actionlint/blob/main/docs/config.md#configuration-file)
(as of 2026-11-03; recheck when that section changes where the file is read from). Two
`userConfig` options tune the hooks themselves:

- **`actionlint_enabled`** (boolean, default `true`). Kill switch for the plugin's Claude Code
hooks (the end-of-turn row and the SessionStart probe). It does not govern the git pre-commit
Expand Down
4 changes: 2 additions & 2 deletions plugins/actionlint/skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ enabled-gate.
1. **Bash version.** Check against the hook's documented floor (README Requirements).
2. **`node`.** The pre-computed `node` row. FAIL if absent, even when the toggle is off: every
hook row launches through `node hooks/exec-bash.mjs`, so the hooks do not launch and the
session-start probe does not run. The hooks cannot report this themselves; the transcript shows
a hook error notice. Probed here through Bash, which works without the launcher.
session-start probe does not run. The hooks cannot report this themselves. Probed here
through Bash, which works without the launcher.
3. **`actionlint`.** The pre-computed `actionlint` row. FAIL if absent: the pre-commit entry then
fails the commit of an agent with the install command and gives a person a notice, and the
end-of-turn check does nothing.
Expand Down
5 changes: 2 additions & 3 deletions plugins/architecture/reference/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,10 @@ unkeyed rule for those shapes, the one `/planning:design` applies to its `sequen
flows. Neither emits mermaid C4.

`landscape_dialect` keeps its mermaid default: it predates this decision, and the convention gives
a landscape no key. The mermaid-C4 experimental fact and its recheck trigger live in the
a landscape no key. The record of mermaid's C4 support and its recheck trigger live in the
authoring-formats convention
([Why mermaid is not offered for the system key](../../../docs/contracts/authoring-formats/README.md#why-mermaid-is-not-offered-for-the-system-key)).
This document does not carry a second stamp. That trigger fires when the experimental banner
drops or when mermaid documents a dedicated landscape type. On firing, re-derive whether this
This document does not carry a second stamp. When that trigger fires, re-derive whether this
key's mermaid default should change and whether `/architecture:map-landscape`'s mermaid output
should use a dedicated landscape type instead of a `C4Context` diagram without a focal system,
and record the outcomes in this plugin's `CHANGELOG.md`.
Expand Down
15 changes: 9 additions & 6 deletions plugins/architecture/skills/map-components/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,12 +231,15 @@ Procedure: [`${CLAUDE_PLUGIN_ROOT}/reference/rendered-view.md`](${CLAUDE_PLUGIN_

## Gotchas

- **The dialect key is `diagram_dialect.system`, and it has no default.** The
Every C4 view of the code reads the key the
authoring-formats convention assigns to C4 system views, which refuses
mermaid because mermaid C4 is experimental. The key is documented in
`${CLAUDE_PLUGIN_ROOT}/reference/config.md`. Unset, `components.md` carries the
tables and no diagram, and the report says no view was emitted.
- **The dialect key is `diagram_dialect.system`, and it has no default.** Every C4
view of the code reads the key the authoring-formats convention assigns to C4 system views,
which refuses mermaid. The key is documented in `${CLAUDE_PLUGIN_ROOT}/reference/config.md`.
Unset, `components.md` carries the tables and no diagram, and the report says no view was
emitted.
- **Pointer**: for what mermaid's C4 support covers, see
[Mermaid: C4 Diagrams](https://mermaid.js.org/syntax/c4.html#c4-diagrams).
- **As of**: 2026-11-03
- **Recheck trigger**: that page changes the status of C4 support or adds a diagram type.
- **A component diagram is one container.** Claim: the C4 component diagram
scopes to a single container, and its primary elements are the components
inside that container. The model is notation-independent. Basis:
Expand Down
6 changes: 5 additions & 1 deletion plugins/architecture/skills/map-containers/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -295,9 +295,13 @@ hand-written; the publish destination comes from the `medium` cascade key. Proce
earlier stage takes that stage's image.
- **The dialect key is `diagram_dialect.system`, and it has no default.** Every C4 view of the
code reads the key the authoring-formats convention assigns to C4 system views, the same key `/planning:design` reads for its design container view. It refuses
mermaid because mermaid C4 is experimental. Unset, `containers.md` carries the tables and no diagram,
mermaid. Unset, `containers.md` carries the tables and no diagram,
and the report says no view was emitted. The key is documented in
`${CLAUDE_PLUGIN_ROOT}/reference/config.md`.
- **Pointer**: for what mermaid's C4 support covers, see
[Mermaid: C4 Diagrams](https://mermaid.js.org/syntax/c4.html#c4-diagrams).
- **As of**: 2026-11-03
- **Recheck trigger**: that page changes the status of C4 support or adds a diagram type.
- **A reformatted record reads as empty unless the reader refuses it.** `render-containers.sh`
exits 1 on any other shape and writes nothing.
- **Configuration is untrusted text.** The assignment scanner matches it. It does not source it,
Expand Down
6 changes: 5 additions & 1 deletion plugins/architecture/skills/map-context/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,14 @@ hand-written; the publish destination comes from the `medium` cascade key. Proce
operator-stated `--actors` file. A non-interactive run passes no file, and the artifact says so.
- **The dialect key is `diagram_dialect.system`, and it has no default.** Every C4 view of the code reads the key
the authoring-formats convention assigns to
C4 system views, which refuses mermaid because mermaid C4 is experimental. An unset key is the
C4 system views, which refuses mermaid. An unset key is the
common case: the run still writes `context.json` and a `context.md` with no diagram, and the report says no
view was emitted. The
key is documented in `${CLAUDE_PLUGIN_ROOT}/reference/config.md`.
- **Pointer**: for what mermaid's C4 support covers, see
[Mermaid: C4 Diagrams](https://mermaid.js.org/syntax/c4.html#c4-diagrams).
- **As of**: 2026-11-03
- **Recheck trigger**: that page changes the status of C4 support or adds a diagram type.
- **Redaction keeps the shape.** Host, service kind, and an optional numeric port. A secret-only
key (`Password`, `ClientSecret`, `AccountKey`, and the rest named in `redact-connection.awk`)
produces no row. Loopback hosts are not external systems. Do not paste a raw value into the
Expand Down
14 changes: 8 additions & 6 deletions plugins/architecture/skills/map-landscape/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,12 +235,14 @@ hand-written; the publish destination comes from the `medium` cascade key. Proce

## Gotchas

- **The two dialects are not symmetric, and mermaid is the loose one.** Structurizr has a dedicated
`systemLandscape` view type. Mermaid has no landscape diagram type, so the mermaid output
is a `C4Context` diagram used without a focal system. The mermaid-C4 experimental fact and
the recheck trigger (experimental banner drops, or mermaid documents a dedicated landscape
type) live in `${CLAUDE_PLUGIN_ROOT}/reference/config.md` under C4 dialect surfaces. This
skill does not carry a second stamp.
- **The two dialects are not symmetric, and mermaid is the loose one.** Mermaid has no landscape diagram type, so the mermaid output
is a `C4Context` diagram used without a focal system.
- **Pointer**: for the landscape view each dialect offers, see
[Structurizr DSL: systemLandscape view](https://docs.structurizr.com/dsl/language#systemlandscape-view)
and [Mermaid: C4 Diagrams](https://mermaid.js.org/syntax/c4.html#c4-diagrams).
- **As of**: 2026-11-03
- **Recheck trigger**: either section changes its landscape view, or mermaid documents a
dedicated landscape diagram type.
- **A referenced repository is not a checked-out one, and the portfolio says so.** Under the default
scope only the subject repository has probed facts. Everything else is a node with edges and an
`unknown` row. That is the honest answer without `--remote`, not a gap to fill by guessing.
Expand Down
17 changes: 11 additions & 6 deletions plugins/bash-format/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,12 @@ for formatting. It ships no rules of its own.
as a format gate would rewrite shell files to shfmt's built-in defaults. A repo whose
`.editorconfig` only configures other languages (or has none) likewise leaves shell files
untouched. Path-only sections like `[scripts/**]` are also excluded; use an explicit shell glob.
shfmt runs with no parser/printer flags, so your `.editorconfig` is authoritative, and with
`--apply-ignore` so an `ignore = true` section (e.g. for generated or vendored scripts) is
honored even on a single named file.
shfmt runs with no parser/printer flags and with `--apply-ignore`, so your `.editorconfig`
sets the style and an `ignore = true` section (e.g. for generated or vendored scripts) excludes
a file. For what each does, see the DESCRIPTION section and the `--apply-ignore` entry of the
[shfmt manual page](https://github.com/mvdan/sh/blob/master/cmd/shfmt/shfmt.1.scd), which the
[mvdan/sh README: shfmt](https://github.com/mvdan/sh#shfmt) section links (as of 2026-11-03;
recheck when either changes how EditorConfig options or ignore rules apply).
- **Pre-existing drift is rewritten whole.** The batch payload carries no pre-edit bytes, so a file
that already drifted from your style is formatted in full, as the pre-commit entry would.
- **A rewrite that would change an array subscript is put back.** shfmt parses an unquoted
Expand All @@ -51,9 +54,11 @@ for formatting. It ships no rules of its own.
read with `--to-json`, or with `-tojson` on a shfmt older than 3.8, since 3.4 and 3.5 have no
`--to-json`. When the tree cannot be read, the rewrite is put back, because an unchecked rewrite
may have changed a key. A file shfmt leaves unchanged reads no tree and costs no extra process.
- **Config from the consumer.** ShellCheck discovers `.shellcheckrc` by walking up from the file's
directory; shfmt reads `.editorconfig` the same way. Files under `.githooks/` (installed copies)
are skipped.
- **Config from the consumer.** Both tools read their configuration from your repository:
`.shellcheckrc` for ShellCheck and `.editorconfig` for shfmt. For how each file is found, see
[ShellCheck manual: RC FILES](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md#rc-files)
and the shfmt manual page linked above (as of 2026-11-03; recheck when either changes where it
looks for its file). Files under `.githooks/` (installed copies) are skipped.
- **Gitignored files are skipped by default in the session.** The batch row does not rewrite a file
the repository gitignores, silently, since a rewrite of an ignored file has no git checkout to
undo it. Set `bash_format_lint_gitignored` to `true` to act on them too. A tracked file that
Expand Down
15 changes: 10 additions & 5 deletions plugins/context7/skills/lookup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,13 @@ ctx7 library "<name>" "<question>"
MSYS_NO_PATHCONV=1 ctx7 docs "<libraryId>" "<question>"
```

Or through the MCP server, when configured:
Or through the MCP server, when configured: `mcp__context7__resolve-library-id`, then
`mcp__context7__query-docs` with the resolved ID.

```text
mcp__context7__resolve-library-id(libraryName: "...", query: "...")
mcp__context7__query-docs(libraryId: "/org/project", query: "...")
```
- **Pointer**: for each MCP tool's parameters, fetch
[Context7: MCP Tools](https://github.com/upstash/context7#mcp-tools) live.
- **As of**: 2026-11-03
- **Recheck trigger**: that section renames a tool or changes which parameters it requires.

- Always resolve first; the docs step rejects anything but a resolved ID, unless the user supplied one in `/org/project` form.
- One concept per query; run a separate lookup per independent topic, and at most 3 lookup commands per topic. When Context7 does not cover it, answer from training knowledge and say so.
Expand Down Expand Up @@ -79,6 +80,10 @@ never hand a `${…}` token from those files to the Bash tool.
## Gotchas

- **Windows Git Bash** rewrites `ctx7 docs /org/project` into `C:/Program Files/Git/org/project`. Always prefix `ctx7 docs`, and `ctx7 search --library /org/project`, with `MSYS_NO_PATHCONV=1`; `ctx7 library` is unaffected. Detail: [context/cli.md](context/cli.md).
- **Pointer**: for how an MSYS2-based shell rewrites a `/org/project` argument, see
[MSYS2: Automatic Unix ⟶ Windows Path Conversion](https://www.msys2.org/docs/filesystem-paths/#automatic-unix-windows-path-conversion).
- **As of**: 2026-11-03
- **Recheck trigger**: that section changes which arguments are converted.
- The CLI has no flag for content depth; for more per call, use the MCP server.
- Never run `ctx7 setup`, or `ctx7 skills install` if a guide names it: this plugin owns the lookup surface, and a second copy of Upstash's `find-docs` fragments lookups and drifts on its own.
- This skill retrieves library docs only. Architecture decisions and other questions that need cross-checked sources go to a research workflow.
Loading
Loading