@erclx/canon 4.33.0 → 4.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/claude/.claude-plugin/plugin.json +1 -1
- package/claude/skills/canon-cli/SKILL.md +1 -0
- package/claude/skills/claude-pr-review/SKILL.md +1 -1
- package/package.json +1 -1
- package/tooling/base/configs/.github/workflows/phase-label-gate.yml +29 -0
- package/tooling/base/seeds/.cspell/tech-stack.txt +1 -0
|
@@ -41,6 +41,7 @@ Run `canon tooling sync <stack> <target> --check` for the list resolved against
|
|
|
41
41
|
|
|
42
42
|
- `.editorconfig`
|
|
43
43
|
- `.github/pull_request_template.md`
|
|
44
|
+
- `.github/workflows/phase-label-gate.yml`
|
|
44
45
|
- `.github/workflows/verify.yml`
|
|
45
46
|
- `.husky/commit-msg`
|
|
46
47
|
- `.husky/post-merge`
|
|
@@ -228,7 +228,7 @@ The `What is right` section is optional, capped at three bullets, and included o
|
|
|
228
228
|
|
|
229
229
|
Close the body with `🤖 Reviewed by Claude Code` on its own line so the review reads as an independent machine pass, not a human sign-off.
|
|
230
230
|
|
|
231
|
-
Before posting, run the scan in `${CLAUDE_SKILL_DIR}/../../standards/publish.md` against the body. The hook skips `.canon/tmp/`, so this scan is the only gate ahead of the post. A finding phrased against an internal phase label is what the label half of the scan catches here. This repository reads the same text again once posted, on `phase-label-gate.yml`'s `pull_request_review` trigger, which is what closes the gap this scan leaves open for a review a person writes and posts by hand with no scripted step in front of it. That workflow
|
|
231
|
+
Before posting, run the scan in `${CLAUDE_SKILL_DIR}/../../standards/publish.md` against the body. The hook skips `.canon/tmp/`, so this scan is the only gate ahead of the post. A finding phrased against an internal phase label is what the label half of the scan catches here. This repository reads the same text again once posted, on `phase-label-gate.yml`'s `pull_request_review` trigger, which is what closes the gap this scan leaves open for a review a person writes and posts by hand with no scripted step in front of it. That workflow now reaches every target on the `base` stack, seeded at `tooling/base/configs/.github/workflows/phase-label-gate.yml` invoking the published CLI rather than this checkout's own source tree, so a target's coverage extends past this pre-post scan to the same post-trigger re-read this repository gets.
|
|
232
232
|
|
|
233
233
|
Do not run the command below when `<prior-heading>` from Step 2 reads `## Review closed` and this pass carries nothing owed. That pass replaces the standing comment rather than adding one, under `### A close-out that repeats the standing one` at the end of this step. Posting first and reaching that section afterward leaves two close-outs both naming the new head, which is worse than the pair the guard exists against.
|
|
234
234
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Phase Label Gate
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, edited, reopened, synchronize]
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
# pull_request_review carries no branches filter GitHub Actions reads, so the
|
|
9
|
+
# base ref is checked in the job's own `if:` below instead.
|
|
10
|
+
pull_request_review:
|
|
11
|
+
types: [submitted, edited]
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
phase-label-gate:
|
|
16
|
+
name: 🏷️ Phase Label Gate
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
if: github.event_name == 'workflow_dispatch' || github.event.pull_request.base.ref == 'main'
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Setup Bun
|
|
24
|
+
uses: oven-sh/setup-bun@v2
|
|
25
|
+
with:
|
|
26
|
+
bun-version: latest
|
|
27
|
+
|
|
28
|
+
- name: Scan the pull request or review for a phase label, a board identifier, or a session link
|
|
29
|
+
run: bunx -y @erclx/canon labels scan --event "$GITHUB_EVENT_PATH"
|