clud-bug 0.5.16 → 0.6.1

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/README.md CHANGED
@@ -202,7 +202,7 @@ clud-bug uses [`anthropics/claude-code-action`](https://github.com/anthropics/cl
202
202
  When you push a PR that touches `.github/workflows/clud-bug-review.yml` (or any other clud-bug workflow):
203
203
 
204
204
  - The `clud-bug-review` check fails with `App token exchange failed: 401 Unauthorized — Workflow validation failed. The workflow file must exist and have identical content to the version on the repository's default branch.`
205
- - You'll get a GitHub email titled something like **"[thrillmot/your-repo] Run failed: Clud Bug 🐛 Crawls Your Code — `<branch-name>`"** — same wording for every workflow failure, so it doesn't visually distinguish "this is the expected self-mod guard" from "real failure."
205
+ - You'll get a GitHub email titled something like **"[thrillmade/your-repo] Run failed: Clud Bug 🐛 Crawls Your Code — `<branch-name>`"** — same wording for every workflow failure, so it doesn't visually distinguish "this is the expected self-mod guard" from "real failure."
206
206
 
207
207
  ### How to merge
208
208
 
@@ -261,7 +261,7 @@ If you don't want to use the CLI, you can install a generic workflow by hand:
261
261
  ```bash
262
262
  mkdir -p .github/workflows
263
263
  curl -o .github/workflows/clud-bug-review.yml \
264
- https://raw.githubusercontent.com/thrillmot/clud-bug/main/templates/workflow.yml.tmpl
264
+ https://raw.githubusercontent.com/thrillmade/clud-bug/main/templates/workflow.yml.tmpl
265
265
  # Edit {{PROJECT_DESCRIPTION}} and {{LANGUAGE_HINTS}} placeholders by hand.
266
266
  ```
267
267
 
package/bin/clud-bug.js CHANGED
@@ -118,7 +118,7 @@ async function runInit(args) {
118
118
  const fromAgentSkills = baseline.filter((s) => s._source === 'agent-skills').length;
119
119
  const sourceLabel = baseline.length === 0
120
120
  ? ''
121
- : fromAgentSkills === baseline.length ? ' (from thrillmot/agent-skills)'
121
+ : fromAgentSkills === baseline.length ? ' (from thrillmade/agent-skills)'
122
122
  : fromAgentSkills === 0 ? ' (bundled fallback)'
123
123
  : ` (${fromAgentSkills} from agent-skills, ${baseline.length - fromAgentSkills} bundled)`;
124
124
  log(` baseline kit: ${baseline.length} specimens${sourceLabel}`);
package/lib/agents-md.js CHANGED
@@ -85,7 +85,7 @@ small baseline kit ships with every install — see
85
85
 
86
86
  Anthropic's \`claude-code-action\` refuses to run on PRs that modify its own
87
87
  workflow file. Use \`clud-bug edit-workflow\` to bundle workflow tweaks into
88
- their own isolated PR — see [README](https://github.com/thrillmot/clud-bug#when-you-edit-the-workflow).
88
+ their own isolated PR — see [README](https://github.com/thrillmade/clud-bug#when-you-edit-the-workflow).
89
89
 
90
90
  ${versionLine}
91
91
  ${END_MARKER}`;
package/lib/skills.js CHANGED
@@ -14,10 +14,10 @@ const MANIFEST_VERSION = 1;
14
14
  // silently land in users' Claude review skills mid-cycle. To roll new
15
15
  // skill content, bump BASELINE_SKILLS_REF below in the same clud-bug PR
16
16
  // that ships the corresponding bundled fallback update.
17
- // See thrillmot/agent-skills — skills.sh `skills/<name>/SKILL.md` layout.
18
- const BASELINE_SKILLS_REF = 'a44559770686e6c51d08ba5bb842d78f85876fb2';
17
+ // See thrillmade/agent-skills — skills.sh `skills/<name>/SKILL.md` layout.
18
+ const BASELINE_SKILLS_REF = '436963ed37cbd9c6a9b7a07e907d5a0a432fab59';
19
19
  const AGENT_SKILLS_BASE = process.env.CLUD_BUG_AGENT_SKILLS_BASE
20
- ?? `https://raw.githubusercontent.com/thrillmot/agent-skills/${BASELINE_SKILLS_REF}/skills`;
20
+ ?? `https://raw.githubusercontent.com/thrillmade/agent-skills/${BASELINE_SKILLS_REF}/skills`;
21
21
  const SKILL_FETCH_TIMEOUT_MS = 5000;
22
22
  const SKILL_CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24h
23
23
 
@@ -93,7 +93,7 @@ export function rankAndCap(curated, searched, baseline, cap = MAX_SKILLS) {
93
93
  return out;
94
94
  }
95
95
 
96
- // Loads the baseline skills, preferring the pinned thrillmot/agent-skills
96
+ // Loads the baseline skills, preferring the pinned thrillmade/agent-skills
97
97
  // commit and falling back to the bundled npm-package copy on any fetch failure.
98
98
  // Returns the same shape as before, plus a `_source` of either 'agent-skills'
99
99
  // or 'bundled' so the CLI can report which path was used.
package/lib/update.js CHANGED
@@ -1,4 +1,4 @@
1
- import { readFile, writeFile, mkdir, stat } from 'node:fs/promises';
1
+ import { readFile, writeFile, mkdir, stat, rm } from 'node:fs/promises';
2
2
  import { join, dirname } from 'node:path';
3
3
  import { renderFile, pickTemplate } from './render.js';
4
4
  import { detect, buildDescriptionLine } from './detect.js';
@@ -69,9 +69,23 @@ export async function runUpdate({
69
69
  }
70
70
 
71
71
  // 3. Refresh baseline skills (always controlled by clud-bug).
72
+ // Slugs listed in manifest.excludedBaselines are skipped AND their
73
+ // existing .claude/skills/<slug>/ dir is removed if present, so a repo
74
+ // that opts out of a baseline doesn't end up regenerating it on every
75
+ // update (the original symptom this field exists to fix).
76
+ const excluded = new Set(Array.isArray(manifest.excludedBaselines) ? manifest.excludedBaselines : []);
72
77
  const baseline = await loadBaseline(baselineDir, loadBaselineOpts);
73
78
  for (const skill of baseline) {
74
- const skillPath = join(skillsDir, sanitize(skill.name), 'SKILL.md');
79
+ const slug = sanitize(skill.name);
80
+ if (excluded.has(skill.name) || excluded.has(slug)) {
81
+ const skillDir = join(skillsDir, slug);
82
+ if (await pathExists(skillDir)) {
83
+ await rm(skillDir, { recursive: true, force: true });
84
+ changed.push({ path: skillDir, label: `excluded baseline ${skill.name}: removed` });
85
+ }
86
+ continue;
87
+ }
88
+ const skillPath = join(skillsDir, slug, 'SKILL.md');
75
89
  await maybeWrite(skillPath, skill.content, changed, unchanged, `baseline ${skill.name}`);
76
90
  }
77
91
 
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "clud-bug",
3
- "version": "0.5.16",
3
+ "version": "0.6.1",
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
- "bugs": "https://github.com/thrillmot/clud-bug/issues",
6
+ "bugs": "https://github.com/thrillmade/clud-bug/issues",
7
7
  "type": "module",
8
8
  "license": "MIT",
9
9
  "author": "thrillmot",
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+https://github.com/thrillmot/clud-bug.git"
12
+ "url": "git+https://github.com/thrillmade/clud-bug.git"
13
13
  },
14
14
  "keywords": [
15
15
  "claude",
@@ -170,5 +170,5 @@ skills are left untouched.
170
170
  ## Where to find more
171
171
 
172
172
  - Site: https://cludbug.dev
173
- - Repo: https://github.com/thrillmot/clud-bug
174
- - Skill catalog: https://github.com/thrillmot/agent-skills
173
+ - Repo: https://github.com/thrillmade/clud-bug
174
+ - Skill catalog: https://github.com/thrillmade/agent-skills
@@ -281,6 +281,6 @@ jobs:
281
281
  # Strict-mode gate — composite action; see workflow.yml.tmpl for design notes.
282
282
  - name: Strict mode — fail check on critical findings
283
283
  if: success()
284
- uses: thrillmot/clud-bug/.github/actions/strict-mode-gate@v0.5.16
284
+ uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.1
285
285
  with:
286
286
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -282,6 +282,6 @@ jobs:
282
282
  # Strict-mode gate — composite action; see workflow.yml.tmpl for design notes.
283
283
  - name: Strict mode — fail check on critical findings
284
284
  if: success()
285
- uses: thrillmot/clud-bug/.github/actions/strict-mode-gate@v0.5.16
285
+ uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.1
286
286
  with:
287
287
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -316,6 +316,6 @@ jobs:
316
316
  # Letting the action's own failure fail the check is louder and right.
317
317
  - name: Strict mode — fail check on critical findings
318
318
  if: success()
319
- uses: thrillmot/clud-bug/.github/actions/strict-mode-gate@v0.5.16
319
+ uses: thrillmade/clud-bug/.github/actions/strict-mode-gate@v0.6.1
320
320
  with:
321
321
  github-token: ${{ secrets.GITHUB_TOKEN }}