clud-bug 0.6.13 → 0.6.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clud-bug",
3
- "version": "0.6.13",
3
+ "version": "0.6.14",
4
4
  "description": "Skill-driven Claude PR review. Ship a brand-voice skill, get brand reviews. Each finding cites the skill that motivated it. CLI installs the workflow + a baseline kit; add more from skills.sh.",
5
5
  "homepage": "https://cludbug.dev",
6
6
  "bugs": "https://github.com/thrillmade/clud-bug/issues",
@@ -6,7 +6,40 @@ on:
6
6
  types: [opened, synchronize]
7
7
 
8
8
  jobs:
9
+ # Pre-flight (v0.6.14 / 0.0.W) — see workflow.yml.tmpl for design notes.
10
+ paths-check:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ pull-requests: read
15
+ outputs:
16
+ is_workflow_only: ${{ steps.classify.outputs.is_workflow_only }}
17
+ steps:
18
+ - name: Classify PR diff
19
+ id: classify
20
+ env:
21
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22
+ PR_NUMBER: ${{ github.event.pull_request.number }}
23
+ REPO: ${{ github.repository }}
24
+ run: |
25
+ CHANGED=$(gh pr diff "$PR_NUMBER" -R "$REPO" --name-only)
26
+ if [ -z "$CHANGED" ]; then echo "is_workflow_only=false" >> "$GITHUB_OUTPUT"; exit 0; fi
27
+ IS_WORKFLOW_ONLY=true
28
+ while IFS= read -r f; do
29
+ case "$f" in
30
+ .github/workflows/clud-bug-*.yml) ;;
31
+ .github/actions/strict-mode-gate/*) ;;
32
+ *) IS_WORKFLOW_ONLY=false; break ;;
33
+ esac
34
+ done <<< "$CHANGED"
35
+ echo "is_workflow_only=$IS_WORKFLOW_ONLY" >> "$GITHUB_OUTPUT"
36
+ if [ "$IS_WORKFLOW_ONLY" = "true" ]; then
37
+ echo "::notice title=Clud Bug 🐛::Skipping LLM review — workflow-only PR."
38
+ fi
39
+
9
40
  clud-bug-review:
41
+ needs: paths-check
42
+ if: needs.paths-check.outputs.is_workflow_only != 'true'
10
43
  runs-on: ubuntu-latest
11
44
  permissions:
12
45
  contents: read
@@ -85,6 +118,6 @@ jobs:
85
118
  # Strict-mode gate — composite action; see workflow.yml.tmpl for design notes.
86
119
  - name: Strict mode — fail check on critical findings
87
120
  if: success()
88
- uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.13
121
+ uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.14
89
122
  with:
90
123
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -6,7 +6,40 @@ on:
6
6
  types: [opened, synchronize]
7
7
 
8
8
  jobs:
9
+ # Pre-flight (v0.6.14 / 0.0.W) — see workflow.yml.tmpl for design notes.
10
+ paths-check:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ pull-requests: read
15
+ outputs:
16
+ is_workflow_only: ${{ steps.classify.outputs.is_workflow_only }}
17
+ steps:
18
+ - name: Classify PR diff
19
+ id: classify
20
+ env:
21
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22
+ PR_NUMBER: ${{ github.event.pull_request.number }}
23
+ REPO: ${{ github.repository }}
24
+ run: |
25
+ CHANGED=$(gh pr diff "$PR_NUMBER" -R "$REPO" --name-only)
26
+ if [ -z "$CHANGED" ]; then echo "is_workflow_only=false" >> "$GITHUB_OUTPUT"; exit 0; fi
27
+ IS_WORKFLOW_ONLY=true
28
+ while IFS= read -r f; do
29
+ case "$f" in
30
+ .github/workflows/clud-bug-*.yml) ;;
31
+ .github/actions/strict-mode-gate/*) ;;
32
+ *) IS_WORKFLOW_ONLY=false; break ;;
33
+ esac
34
+ done <<< "$CHANGED"
35
+ echo "is_workflow_only=$IS_WORKFLOW_ONLY" >> "$GITHUB_OUTPUT"
36
+ if [ "$IS_WORKFLOW_ONLY" = "true" ]; then
37
+ echo "::notice title=Clud Bug 🐛::Skipping LLM review — workflow-only PR."
38
+ fi
39
+
9
40
  clud-bug-review:
41
+ needs: paths-check
42
+ if: needs.paths-check.outputs.is_workflow_only != 'true'
10
43
  runs-on: ubuntu-latest
11
44
  permissions:
12
45
  contents: read
@@ -85,6 +118,6 @@ jobs:
85
118
  # Strict-mode gate — composite action; see workflow.yml.tmpl for design notes.
86
119
  - name: Strict mode — fail check on critical findings
87
120
  if: success()
88
- uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.13
121
+ uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.14
89
122
  with:
90
123
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -6,7 +6,51 @@ on:
6
6
  types: [opened, synchronize]
7
7
 
8
8
  jobs:
9
+ # Pre-flight (v0.6.14 / 0.0.W): if the PR ONLY touches clud-bug workflow
10
+ # files or the strict-mode-gate composite action, skip the LLM review
11
+ # entirely. claude-code-action would refuse to run on such a PR anyway
12
+ # (self-modification guard — required for security), and a template
13
+ # re-render has no useful review surface. Skipping turns a previously
14
+ # required-admin-bypass merge into a normal one, AND saves the LLM
15
+ # call cost. Security: the classifier requires ALL changed files to
16
+ # match the allow-list — a mixed PR (workflow + code) still runs the
17
+ # review normally.
18
+ paths-check:
19
+ runs-on: ubuntu-latest
20
+ permissions:
21
+ contents: read
22
+ pull-requests: read
23
+ outputs:
24
+ is_workflow_only: ${{ steps.classify.outputs.is_workflow_only }}
25
+ steps:
26
+ - name: Classify PR diff
27
+ id: classify
28
+ env:
29
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30
+ PR_NUMBER: ${{ github.event.pull_request.number }}
31
+ REPO: ${{ github.repository }}
32
+ run: |
33
+ CHANGED=$(gh pr diff "$PR_NUMBER" -R "$REPO" --name-only)
34
+ if [ -z "$CHANGED" ]; then
35
+ echo "is_workflow_only=false" >> "$GITHUB_OUTPUT"
36
+ exit 0
37
+ fi
38
+ IS_WORKFLOW_ONLY=true
39
+ while IFS= read -r f; do
40
+ case "$f" in
41
+ .github/workflows/clud-bug-*.yml) ;;
42
+ .github/actions/strict-mode-gate/*) ;;
43
+ *) IS_WORKFLOW_ONLY=false; break ;;
44
+ esac
45
+ done <<< "$CHANGED"
46
+ echo "is_workflow_only=$IS_WORKFLOW_ONLY" >> "$GITHUB_OUTPUT"
47
+ if [ "$IS_WORKFLOW_ONLY" = "true" ]; then
48
+ echo "::notice title=Clud Bug 🐛::Skipping LLM review — PR only touches workflow files (claude-code-action would refuse anyway due to self-modification guard)."
49
+ fi
50
+
9
51
  clud-bug-review:
52
+ needs: paths-check
53
+ if: needs.paths-check.outputs.is_workflow_only != 'true'
10
54
  runs-on: ubuntu-latest
11
55
  permissions:
12
56
  contents: read
@@ -145,6 +189,6 @@ jobs:
145
189
  # Letting the action's own failure fail the check is louder and right.
146
190
  - name: Strict mode — fail check on critical findings
147
191
  if: success()
148
- uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.13
192
+ uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.14
149
193
  with:
150
194
  github-token: ${{ secrets.GITHUB_TOKEN }}