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
4 changes: 3 additions & 1 deletion .agents/skills/pr-review-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
clean one that counts no finding prints its headline under `VERDICT WITH NO COUNTED FINDING`,
and `status` and `wait` exit `50`. The
headline is the one place that round names what it flags, so answer it as a suppressed finding.
The exit code repeats on that head after the answer.
The exit code repeats on that head after the answer. A clean verdict on the same terms prints
its headline under `CLEAN VERDICT HEADLINE`, which changes no exit code. Read that headline,
since it can name a nit no thread carries, and answer any such nit with `comment`.
The body read in that format so far carried no `Suppressed comments` heading, so `suppressed=`
finds nothing in it and there is no collapsed block to quote a count from: the digest's
shortfall and the body's own prose are what an answer cites instead. A later body that does
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8e3f5e82dbdaf90c
9466ae9eb9866c94
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
clean one that counts no finding prints its headline under `VERDICT WITH NO COUNTED FINDING`,
and `status` and `wait` exit `50`. The
headline is the one place that round names what it flags, so answer it as a suppressed finding.
The exit code repeats on that head after the answer.
The exit code repeats on that head after the answer. A clean verdict on the same terms prints
its headline under `CLEAN VERDICT HEADLINE`, which changes no exit code. Read that headline,
since it can name a nit no thread carries, and answer any such nit with `comment`.
The body read in that format so far carried no `Suppressed comments` heading, so `suppressed=`
finds nothing in it and there is no collapsed block to quote a count from: the digest's
shortfall and the body's own prose are what an answer cites instead. A later body that does
Expand Down
3 changes: 2 additions & 1 deletion .github/actions/python-directories/python_directories.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@

UNCOVERED_SHOWN = 10
# The catalog's hook snippets carry this helper into repos of every language, so it is fleet tooling rather than the repo's own Python.
CARRIED_HELPERS = {"hub-fetch-run.py"}
# A repo that copied it before the rename keeps the hyphenated name until it is next resynced.
CARRIED_HELPERS = {"hub_fetch_run.py", "hub-fetch-run.py"}


def escape_command(value: str) -> str:
Expand Down
4 changes: 3 additions & 1 deletion .github/skills/pr-review-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
clean one that counts no finding prints its headline under `VERDICT WITH NO COUNTED FINDING`,
and `status` and `wait` exit `50`. The
headline is the one place that round names what it flags, so answer it as a suppressed finding.
The exit code repeats on that head after the answer.
The exit code repeats on that head after the answer. A clean verdict on the same terms prints
its headline under `CLEAN VERDICT HEADLINE`, which changes no exit code. Read that headline,
since it can name a nit no thread carries, and answer any such nit with `comment`.
The body read in that format so far carried no `Suppressed comments` heading, so `suppressed=`
finds nothing in it and there is no collapsed block to quote a count from: the digest's
shortfall and the body's own prose are what an answer cites instead. A later body that does
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/validate-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ jobs:

# The spell check covers README + HISTORY only, per CODESTYLE.md "Markdown and Spelling".
- name: Spell check step
uses: streetsidesoftware/cspell-action@6f3c77c1406bc930f944ba97e9801a22e42caf58 # v9.1.0
uses: streetsidesoftware/cspell-action@ce1816e4ce36532956ac6e983737392774b6e169 # v9.2.0
with:
files: |
README.md
Expand Down
4 changes: 2 additions & 2 deletions AUDIT.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Look up the repo in [`registry/repos.json`][repos]. An entry with status `archiv
Otherwise read its `types[]`. If the entry is `classificationPending` (a backlog repo), classify it from the tree and propose a registry update:

- `*.csproj` / `*.slnx` -> `csharp`, a `dotnet nuget push` workflow -> `nuget`, a `System.CommandLine` console -> `console`.
- a tracked `.py` file other than the carried `hub-fetch-run.py` hook helper -> `python`, a `pypa/gh-action-pypi-publish` workflow -> `pypi`.
- a tracked `.py` file other than the carried hook helper `hub_fetch_run.py` or its former name `hub-fetch-run.py` -> `python`, a `pypa/gh-action-pypi-publish` workflow -> `pypi`.
- `Dockerfile` + a docker build/push workflow -> `docker`, an `upstream-version.json` tracker -> `upstream-wrapper`.
- `custom_components/*/manifest.json` + `hacs.json` -> `homeassistant`, a codegen workflow -> `codegen`, no `build-*` task -> `source-only`, governance-only -> `docs`.
- `hugo.yaml` / `hugo.toml` / `config/_default/hugo.yaml` -> `hugo`. A repo may carry it alongside `source-only`, since a site deploy leaf is not a `build-*` task and both declarations stay true.
Expand Down Expand Up @@ -88,7 +88,7 @@ A check with `intentRef`/`workflowRef` points at the prose section that owns the
- **verbatim-tree** - every applicable `trees[]` declaration in [`spec/files.json`][files] owns its target tree. The audit reports missing files as letter findings, stale or modified bytes as drift, and extra files under a pruned target as drift. An unreadable or truncated repository tree is undecided and produces drift rather than a clean result.
- **repo-setup** - every required secret for the repo's publish mechanisms is configured, and no forbidden secret is present (per [`spec/secrets.json`][secrets]).
- **runtime-secrets** - a repo-scoped runtime-secrets directory, when present, is named `.secrets/` (dotted, not a bare `secrets/`), a single opaque credential file carries no extension, and every real secret file has a tracked `<name>.example` beside it cataloged in `.secrets/README.md`. N/A for a repo with no such directory. See [GOVERNANCE.md "Repo-Scoped Secrets"][governance-repo-scoped-secrets].
- **linter-parity** - one config per linter (`.markdownlint-cli2.jsonc`, `cspell.json`, ruff/pyright, editorconfig/csharpier, actionlint) drives the CLI, CI, and the editor extension where the workspace recommends one, and CI runs each. That count is of the root config, so a nested `.markdownlint-cli2.jsonc` is not a second one. A local hook exists and runs at minimum the diff-scoped prose gate and the eol check via `hub-fetch-run.py`, or the hub's own local script copies for the hub repo itself (`parity.hooks`, intent). A repo with none wired is a defect, and one mid-convergence on the language-formatting half stays operational.
- **linter-parity** - one config per linter (`.markdownlint-cli2.jsonc`, `cspell.json`, ruff/pyright, editorconfig/csharpier, actionlint) drives the CLI, CI, and the editor extension where the workspace recommends one, and CI runs each. That count is of the root config, so a nested `.markdownlint-cli2.jsonc` is not a second one. A local hook exists and runs at minimum the diff-scoped prose gate and the eol check via `hub_fetch_run.py`, or the hub's own local script copies for the hub repo itself (`parity.hooks`, intent). The helper's former name `hub-fetch-run.py` counts too. A repo with none wired is a defect, and one mid-convergence on the language-formatting half stays operational.
- **recurring-violations** - comments concise and non-narrative, ASCII only (no em-dash, no smart quotes) apart from the letters of a recorded name, US spelling, line endings per `.editorconfig`. These are frequent regressions, so this dimension is high priority and always runs, and each check is grep-able (see below).
- **readme-structure** - the README follows [`spec/readme-structure.md`][readme-structure] (applicable sections, in order). Mechanically checked against the declared model in [`spec/readme-sections.json`][readme-sections]: required sections present, declared sections in their relative order, `License` last, the shields each deliverable implies, the license shield in the closing License section, and the tagline and its mirrors. A heading the model does not name is dropped before the order comparison, so a repo-specific section is never a finding.

Expand Down
Loading
Loading