Skip to content

Integrate Burgess Principle advocacy toolkit and enhance README#409

Open
ljbudgie wants to merge 24 commits intoVoltAgent:mainfrom
ljbudgie:main
Open

Integrate Burgess Principle advocacy toolkit and enhance README#409
ljbudgie wants to merge 24 commits intoVoltAgent:mainfrom
ljbudgie:main

Conversation

@ljbudgie
Copy link
Copy Markdown

@ljbudgie ljbudgie commented Apr 11, 2026

This pull request introduces several important improvements to project governance, automation, and documentation. It adds new workflows for automated validation and link checking, expands issue reporting templates, clarifies licensing and trademark information, and updates project metadata to reflect the new repository and the addition of the Burgess Principle. These changes collectively enhance the project's reliability, maintainability, and community standards.

Automation and CI/CD Enhancements:

  • Added a weekly automated link-checking workflow using lychee to detect and report broken links, with logic to avoid duplicate issues. (.github/workflows/link-check.yml)
  • Introduced a pull request validation workflow that checks skill entry formatting, duplicate detection, alphabetical sorting, and skill count synchronization across category files. (.github/workflows/pr-validate.yml)

Issue Reporting Improvements:

  • Added new GitHub issue templates for reporting broken links, proposing new categories, reporting security concerns, and requesting skill removal. (.github/ISSUE_TEMPLATE/broken-link.yml, new-category.yml, security-concern.yml, skill-removal.yml) [1] [2] [3] [4]

Licensing, Governance, and Documentation:

  • Added a CODE_OF_CONDUCT.md based on the Contributor Covenant, emphasizing inclusivity and the Burgess Principle.
  • Updated LICENSE and added trademark notice clarifying that the code is MIT-licensed but the "Burgess Principle" name and mark are protected.
  • Updated CONTRIBUTING.md to clarify the repository's trademark policy and update references to the new repository location. [1] [2]
  • Added a CHANGELOG.md to track notable changes using the Keep a Changelog format.

Project Metadata and Branding:

  • Updated README.md to reflect the new repository (ljbudgie/awesome-openclaw-skills), adjust skill counts, and introduce the Burgess Principle as an optional human-review upgrade layer. [1] [2]

Summary by CodeRabbit

  • New Features

    • Added 10+ Burgess-enhanced advocacy skills for benefits claims, contract reviews, disputes, and human-review requests.
    • Implemented automated GitHub workflows for weekly link checking and pull request validation.
    • Created issue templates for reporting broken links, security concerns, and removal requests.
  • Documentation

    • Added Code of Conduct, Changelog, and Trademark guidelines.
    • Introduced "Burgess Edition" branding with design principles and implementation guides.
    • Updated licensing information and contribution guidelines.
  • Chores

    • Synchronized skill counts across 27 categories.
    • Added automated script for count maintenance.

Copilot AI and others added 24 commits April 6, 2026 17:31
Integrate the full Advocate Companion toolkit (from ljbudgie/advocate-companion)
as Burgess-enhanced skills: Contract Review, Reasonable Adjustments, DSAR Request,
and Human Review Request. All skills are optional and independent. Original skills
remain untouched.

Agent-Logs-Url: https://github.com/ljbudgie/awesome-openclaw-skills/sessions/cfefb717-af4f-4e4a-8955-c0d0a724bd9d

Co-authored-by: ljbudgie <218362452+ljbudgie@users.noreply.github.com>
Add Burgess Principle advocacy toolkit as optional upgrade layer
…nciple-section

Add Burgess Principle Layer section to README.md
…llapse details, add Burgess ToC

Agent-Logs-Url: https://github.com/ljbudgie/awesome-openclaw-skills/sessions/f66e9831-6e99-45c5-bedd-b8c5ed594faf

Co-authored-by: ljbudgie <218362452+ljbudgie@users.noreply.github.com>
Add "See also" cross-reference sections to all category files
- Fix sed & character bug causing garbled View all links in README.md
- Add ToC count automation (previously required manual updates)
- Fix Discover N+ regex to correctly match literal + character
- Rebuild all View all links with correct display names
- Reconcile all skill counts (badge, header, ToC, View all links)

Agent-Logs-Url: https://github.com/ljbudgie/awesome-openclaw-skills/sessions/b2317cf8-8554-44b9-be0f-9bc22959a6c9

Co-authored-by: ljbudgie <218362452+ljbudgie@users.noreply.github.com>
…EADME polish

- Add automated link-checking CI workflow (weekly lychee scan)
- Add enhanced PR validation CI (format, duplicates, sort order, count sync)
- Add "Recently Added" section to README.md for better new skill visibility
- Add "Which Burgess Skill Should I Use?" decision guide
- Add CHANGELOG.md for tracking collection changes
- Rebalance ToC grid to eliminate empty cells
- Add "Back to top" navigation link at end of README

Agent-Logs-Url: https://github.com/ljbudgie/awesome-openclaw-skills/sessions/b2317cf8-8554-44b9-be0f-9bc22959a6c9

Co-authored-by: ljbudgie <218362452+ljbudgie@users.noreply.github.com>
Fix garbled links, add CI workflows, improve discoverability
…rgess-layer

Replace verbose Burgess section with prominent callout in README
…w-bots

Add Burgess-certified coding-agent-review skill
Add 'Why This Liberates the AI' context document to Burgess toolkit
- Create TRADEMARKS.md with clear machine-readable distinction
- Update LICENSE with trademark notice
- Update README.md attribution and license sections
- Update burgess/README.md attribution section
- Update CONTRIBUTING.md with licensing & trademarks section

Agent-Logs-Url: https://github.com/ljbudgie/awesome-openclaw-skills/sessions/78ef759b-943f-4a64-af99-37e03d06699f

Co-authored-by: ljbudgie <218362452+ljbudgie@users.noreply.github.com>
Clarify licensing: code is free (MIT), name is not (protected trademark)
Add 8 new Burgess Principle skills from burgess-principle repo
Add context doc: How the Burgess Layer Elevates the AI
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 11, 2026

📝 Walkthrough

Walkthrough

The PR introduces a comprehensive community governance framework including GitHub issue templates for link reporting, categories, security concerns, and removals; adds GitHub Actions workflows for automated link checking and PR validation; establishes CODE_OF_CONDUCT and trademark guidelines; introduces a "Burgess Principle" advocacy toolkit with 15+ skills and supporting documentation; and synchronizes skill counts across all categories using a new bash script.

Changes

Cohort / File(s) Summary
GitHub Issue Templates
.github/ISSUE_TEMPLATE/broken-link.yml, new-category.yml, security-concern.yml, skill-removal.yml
Four new issue forms for community contributions: reporting broken/outdated links, proposing new categories, reporting security concerns, and requesting skill removal. Each template defines custom labels, title patterns, and structured input fields.
GitHub Actions Workflows
.github/workflows/link-check.yml, pr-validate.yml
Two new CI/CD workflows: link-check runs weekly link validation using lychee-action with conditional issue creation for broken links; pr-validate performs bash-based validation on README.md and category files (skill format conformance, duplicate detection, alphabetical ordering, count verification).
Community Documentation & Licensing
CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE, CHANGELOG.md, TRADEMARKS.md
New community governance documents and updated licensing. CODE_OF_CONDUCT defines inclusive expectations; CONTRIBUTING updates repo links and adds licensing/trademark section; LICENSE appends trademark notice; CHANGELOG documents new features (workflows, link checking, decision guide); TRADEMARKS clarifies intellectual property restrictions.
Main Repository Documentation
README.md
Updates skill statistics (5200+ → 5100+), renames to "Awesome OpenClaw Skills — Burgess Edition", adds Burgess-Enhanced Skills section with decision guide, adds Recently Added table, collapses sections, updates repo links, and splits license attribution between MIT code and protected trademark.
Burgess Framework Core Documentation
burgess/README.md, burgess/context/design-principles.md, burgess/context/how-this-elevates-the-ai.md, burgess/context/why-this-liberates-the-ai.md
Foundational documentation for the "Burgess Principle" human-review advocacy framework. Defines design principles (human-first, calm, privacy-first, minimalist), explains how it elevates/liberates AI capability through purposeful boundaries and deference, and provides decision guide mapping user scenarios to specific skills.
Burgess Skills: Benefits & Civic
burgess/skills/benefits-claim-assistance/README.md, burgess/skills/benefits-claim-assistance/SKILL.md, burgess/skills/council-tax-pcn-dispute/README.md, burgess/skills/council-tax-pcn-dispute/SKILL.md, burgess/skills/direct-debit-refund/README.md, burgess/skills/direct-debit-refund/SKILL.md, burgess/skills/human-review-request/README.md, burgess/skills/human-review-request/SKILL.md
Eight skill pairs implementing calm, structured workflows for benefits reconsideration, local authority disputes, Direct Debit refund complaints, and general human-review requests. Each includes README (purpose, workflow, examples) and SKILL.md (instructions, Burgess binary, output rules).
Burgess Skills: Rights & Data Access
burgess/skills/dsar-request/README.md, burgess/skills/dsar-request/SKILL.md, burgess/skills/foi-request/README.md, burgess/skills/foi-request/SKILL.md, burgess/skills/enforcement-agent-response/README.md, burgess/skills/enforcement-agent-response/SKILL.md, burgess/skills/reasonable-adjustments/README.md, burgess/skills/reasonable-adjustments/SKILL.md
Eight skill pairs for Data Subject Access Requests, Freedom of Information requests, enforcement agent responses, and reasonable adjustment requests. Each implements jurisdiction-aware drafting with country-specific legislation references and human-review flagging.
Burgess Skills: Content & Legal
burgess/skills/contract-review/README.md, burgess/skills/contract-review/SKILL.md, burgess/skills/copyright-dmca-counter-notice/README.md, burgess/skills/copyright-dmca-counter-notice/SKILL.md, burgess/skills/media-libel-review/README.md, burgess/skills/media-libel-review/SKILL.md, burgess/skills/music-copyright-dispute/README.md, burgess/skills/music-copyright-dispute/SKILL.md
Eight skill pairs for contract clause review, DMCA counter-notices, media/libel disputes, and music copyright disputes. Each provides calm, structured workflows with risk assessment and Burgess binary human-review triggers.
Burgess Skills: Technical & Health
burgess/skills/coding-agent-review/README.md, burgess/skills/coding-agent-review/SKILL.md, burgess/skills/medical-device-review/README.md, burgess/skills/medical-device-review/SKILL.md
Four skill pairs for reviewing AI coding agent outputs against human-impact categories (accessibility, privacy, security, UX, pricing, automation, deployment) and medical device clinical review requests.
Burgess Skills Configuration
burgess/skills/burgess-config.md
Documentation for enabling/disabling Burgess skills via folder copying into global/workspace OpenClaw skills directories; clarifies no additional configuration, API keys, or backend setup required.
Category Skill Count Updates
categories/ai-and-llms.md, categories/apple-apps-and-services.md, categories/browser-and-automation.md, categories/calendar-and-scheduling.md, categories/clawdbot-tools.md, categories/cli-utilities.md, categories/coding-agents-and-ides.md, categories/communication.md, categories/data-and-analytics.md, categories/devops-and-cloud.md, categories/gaming.md, categories/git-and-github.md, categories/health-and-fitness.md, categories/image-and-video-generation.md, categories/marketing-and-sales.md, categories/moltbook.md, categories/pdf-and-documents.md, categories/personal-development.md, categories/productivity-and-tasks.md, categories/search-and-research.md, categories/security-and-passwords.md, categories/shopping-and-e-commerce.md, categories/smart-home-and-iot.md, categories/speech-and-transcription.md, categories/transportation.md, categories/web-and-frontend-development.md
Twenty-seven category files with synchronized skill count updates reflecting removed/deprecated skills (totals reduced across all categories; e.g., 184 → 158 for AI & LLMs).
Automation Scripts
scripts/sync-skill-counts.sh
New bash script that synchronizes skill counts across categories, README headers, Table of Contents, and skill badges. Performs idempotent sed-based replacements, computes totals, and updates rounded "Discover N+" header value.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

documentation, workflows, skills, community, governance

Poem

🐰 Burgess hops in, calm and wise,
Human hearts trump algorithms' eyes,
Links are checked, counts align just right,
Community shines with structured light.
A toolkit for advocacy—reviewed by me,
The most thoughtful release there'll be!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: integrating the Burgess Principle advocacy toolkit and enhancing the README with corresponding documentation and updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🧹 Nitpick comments (4)
burgess/skills/coding-agent-review/README.md (1)

56-62: Consider varying sentence structure for better readability.

Three consecutive bullet points begin with "You want to..." which creates a slightly repetitive pattern. While this doesn't harm clarity, varying the sentence structure could improve flow.

✨ Optional rewording for variety
 - An AI coding agent has made changes you want to review before merging
 - A bot opened a pull request and you want to know what needs human attention
-- You want to ensure accessibility, privacy, or security changes get a real person's review
+- Accessibility, privacy, or security changes need verification by a real person
 - Your team uses AI agents for routine coding and you need a human-review checkpoint
-- You want to apply the Burgess Principle to your development workflow
+- Applying the Burgess Principle to your development workflow is a priority
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@burgess/skills/coding-agent-review/README.md` around lines 56 - 62, The three
consecutive bullets under the "When to Use This Skill" section are repetitive
because they all begin with "You want to...", so edit the README.md bullets in
that section to vary sentence openings and improve flow (for example, rephrase
one or more bullets to start with different verbs or clauses); locate the "When
to Use This Skill" heading and update the three bullets that currently start
with "You want to..." so each uses a distinct sentence structure while
preserving the original meaning.
burgess/skills/enforcement-agent-response/README.md (1)

20-36: Consider clarifying jurisdiction scope for enforcement agent rules.

The skill references UK-specific terminology (PCN, council tax, Equality Act 2010) and enforcement practices that vary significantly between England/Wales, Scotland, and Northern Ireland. Unlike the benefits-claim-assistance README which includes an explicit country support table, this README doesn't clarify jurisdictional scope. This may not be critical if the SKILL.md implementation handles jurisdiction identification, but consider whether explicit guidance would help users.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@burgess/skills/enforcement-agent-response/README.md` around lines 20 - 36,
The README references UK-specific terms (PCN, council tax, Equality Act 2010)
but lacks jurisdiction scope; add a short "Jurisdiction / Supported Regions"
section (or a country support table similar to the benefits-claim-assistance
README) near the top or under "Example Prompts" that explicitly states which UK
jurisdictions (England & Wales, Scotland, Northern Ireland) the skill covers,
notes any differences in enforcement rules per jurisdiction, and clarifies
whether SKILL.md logic will attempt automatic jurisdiction detection for inputs
mentioning council tax/PCN/Equality Act 2010.
burgess/skills/medical-device-review/SKILL.md (1)

20-22: Minimize required identifiers in first-draft letters.

Line 20 currently pushes serial/patient identifiers by default. Consider making those explicitly optional/minimal unless needed to locate records.

✏️ Suggested wording
-   - Identifies the specific device by type, model, and serial number or patient reference
+   - Identifies the specific device by type and model, and includes serial number or patient reference only when necessary for record matching
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@burgess/skills/medical-device-review/SKILL.md` around lines 20 - 22, Update
the SKILL.md bullet that currently reads "Identifies the specific device by
type, model, and serial number or patient reference" to require only minimal
identifiers in first-draft letters (e.g., type and model preferred; serial
number or patient reference optional and included only when necessary to locate
records), and adjust the related bullet "Asks the clinical team to confirm
whether a human clinician personally reviewed the specific facts..." (the
Burgess binary) to request confirmation of human review without mandating
patient/serial identifiers; ensure the bullet "Requests that the human review
includes the user's exact profile..." clarifies that exact profile and logged
device data are requested only when essential and otherwise redacted or
summarized to protect identifiers.
burgess/skills/reasonable-adjustments/README.md (1)

11-13: Align the Burgess Principle quote with the canonical parent README wording.

This definition is slightly narrower than burgess/README.md, which can create interpretation drift across docs.

Suggested wording alignment
-> **"Was a human member of the team able to personally review the specific facts of my specific case?"**
+> **"Was a human member of the team able to personally review the specific facts and implications of this for my individual situation?"**
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@burgess/skills/reasonable-adjustments/README.md` around lines 11 - 13, Update
the Burgess Principle wording in this README to match the canonical parent by
replacing the narrower sentence under the quoted question "Was a human member of
the team able to personally review the specific facts of my specific case?" with
the exact phrasing used in burgess/README.md so both documents use the same
definition and avoid drift; locate the quoted heading in
reasonable-adjustments/README.md and modify the following paragraph to mirror
the parent README's text verbatim.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/link-check.yml:
- Around line 16-21: Replace mutable GitHub Action tags with their corresponding
full commit SHAs to harden supply-chain integrity: update the uses entries
(e.g., actions/checkout@v4 and lycheeverse/lychee-action@v2) to use the full
commit SHA for each action (and any other mutable tags like `@v7` found in the
workflow), ensuring you fetch the exact commit from the action's repository and
replace the tag string with that SHA in the workflow.

In @.github/workflows/pr-validate.yml:
- Around line 42-51: The duplicate-skill check only greps README.md (in the
"Check for duplicate skills" step and variable duplicates) and thus misses
repeats inside category files; update the workflow to search across category
markdown files (e.g., all category/*.md or a glob like categories/**/*.md and
README.md) instead of just README.md, aggregate skill names from those files
into the same grep pipeline that produces the duplicates variable, and emit the
same warning when duplicates is non-empty so category-level data-quality
duplicates (like code-stats, db-readonly, hackathon-manager) are detected.
- Around line 82-83: The command substitution for actual currently uses "grep -c
... || echo 0" which can produce a double-line value like '0\n0'; change the
fallback to a no-op (use "|| true") so only grep's stdout is captured, i.e.,
update the actual assignment to use grep -c ... || true; likewise update similar
constructs (e.g., the header assignment using "|| echo '?'") to use "|| true" so
command substitutions capture only the intended grep output and not additional
echoed fallbacks.

In `@burgess/skills/benefits-claim-assistance/SKILL.md`:
- Line 18: Step 2 currently conflates institutions and laws; update the wording
in SKILL.md Step 2 ("2. Identify the relevant benefits system and
legislation...") to explicitly separate administering agencies/processes from
applicable legislation—for example, change to "Identify the relevant
administering agency or process for benefits (e.g., DWP, SSA) and the specific
applicable legislation or appeal process (e.g., Mandatory Reconsideration)"—so
the country-mapping step captures both the authority and the legal framework
distinctly.

In `@burgess/skills/burgess-config.md`:
- Around line 28-30: The current example using "cp -r burgess/skills/*" can copy
non-directory files like burgess-config.md into the skills destination; change
the instructions to create the destination directory first (use mkdir -p for
~/.openclaw/skills) and copy directories only by targeting directories (e.g.,
use a pattern that selects directories such as burgess/skills/*/ or use find to
copy only directories) so only skill folders are copied; update both occurrences
that show the bulk-copy command accordingly.

In `@burgess/skills/dsar-request/SKILL.md`:
- Line 22: Replace the hardcoded example phrase "States the legal timeframe for
a response (e.g. 30 days under UK/EU GDPR)" with a jurisdiction-agnostic wording
such as "States the statutory timeframe for a response under applicable law"
(and make the same replacement for the similar instance around line 34); ensure
the SKILL.md bullet uses "statutory timeframe under applicable law" instead of a
fixed day count so it reads generically across jurisdictions.

In `@burgess/skills/enforcement-agent-response/SKILL.md`:
- Around line 20-22: Update the bullet "Requests confirmation that no forced
entry will be attempted, noting that for most civil debts bailiffs do not have
the legal right to force entry" to make the forced-entry statement
jurisdiction-conditional: rephrase it to indicate that forced-entry rules vary
by jurisdiction (e.g., "where applicable under local law" or "in jurisdictions
where bailiffs lack the power to force entry, such as the UK") and add a
placeholder or note to surface the relevant jurisdiction when the skill
generates the message so the statement is only asserted when appropriate.

In `@CODE_OF_CONDUCT.md`:
- Line 32: Replace the current public-reporting sentence in CODE_OF_CONDUCT.md
("Instances of abusive... opening an issue or contacting the maintainers
directly") with an explicit private reporting channel and make it the primary
option: add a dedicated confidential contact method (e.g., a private email
address or a secure web form) and instruct reporters to use that first, then
note that public issues are an alternative if the private channel is not
available; update the sentence and any nearby examples so the private channel is
clearly highlighted and preferred.

In `@CONTRIBUTING.md`:
- Line 55: The LICENSE file currently lists "Copyright (c) 2026 VoltAgent" which
doesn't match the repository owner; update the copyright holder string in the
LICENSE file to "ljbudgie" (or "Copyright (c) 2026 ljbudgie") so it matches the
repository owner referenced elsewhere, ensuring any other occurrences of
"VoltAgent" in the LICENSE are replaced consistently and preserving the rest of
the license text and year.

In `@README.md`:
- Around line 11-19: The README contains inconsistent skill totals: the header
string "Discover 5100+ community-built OpenClaw skills", the Skills Count badge
(alt/label showing "skills-5143"), and the narrative total "5,211" are out of
sync; choose a single authoritative total (or make the count dynamic) and update
all occurrences to match it—specifically change the header text "Discover
5100+...", the badge label/value for "Skills Count" (`skills-5143`), and the
narrative total "5,211" to the same number or wire them to a single source so
they stay consistent.
- Around line 204-210: The cp command in the README uses a glob that matches
both files and directories (cp -r burgess/skills/* ~/.openclaw/skills/), which
will accidentally copy top-level files like burgess-config.md; update the
example to only match directories by changing the glob to cp -r
burgess/skills/*/ ~/.openclaw/skills/ so only skill directories are copied, and
update the adjacent single-skill example if needed to preserve clarity.

In `@scripts/sync-skill-counts.sh`:
- Around line 59-62: The loop can fail under set -e because grep may return a
non-zero exit status when there are no matches; update the count assignment in
the loop (where variables like CATEGORIES_DIR, basename_no_ext, count, total are
used) to tolerate that by capturing grep output with a fallback: use
count=$(grep -c "^- \[" "$file" || true) and then normalize to zero if empty
(e.g. count=${count:-0}) before adding to total, so files with zero skills don't
cause the script to exit.

---

Nitpick comments:
In `@burgess/skills/coding-agent-review/README.md`:
- Around line 56-62: The three consecutive bullets under the "When to Use This
Skill" section are repetitive because they all begin with "You want to...", so
edit the README.md bullets in that section to vary sentence openings and improve
flow (for example, rephrase one or more bullets to start with different verbs or
clauses); locate the "When to Use This Skill" heading and update the three
bullets that currently start with "You want to..." so each uses a distinct
sentence structure while preserving the original meaning.

In `@burgess/skills/enforcement-agent-response/README.md`:
- Around line 20-36: The README references UK-specific terms (PCN, council tax,
Equality Act 2010) but lacks jurisdiction scope; add a short "Jurisdiction /
Supported Regions" section (or a country support table similar to the
benefits-claim-assistance README) near the top or under "Example Prompts" that
explicitly states which UK jurisdictions (England & Wales, Scotland, Northern
Ireland) the skill covers, notes any differences in enforcement rules per
jurisdiction, and clarifies whether SKILL.md logic will attempt automatic
jurisdiction detection for inputs mentioning council tax/PCN/Equality Act 2010.

In `@burgess/skills/medical-device-review/SKILL.md`:
- Around line 20-22: Update the SKILL.md bullet that currently reads "Identifies
the specific device by type, model, and serial number or patient reference" to
require only minimal identifiers in first-draft letters (e.g., type and model
preferred; serial number or patient reference optional and included only when
necessary to locate records), and adjust the related bullet "Asks the clinical
team to confirm whether a human clinician personally reviewed the specific
facts..." (the Burgess binary) to request confirmation of human review without
mandating patient/serial identifiers; ensure the bullet "Requests that the human
review includes the user's exact profile..." clarifies that exact profile and
logged device data are requested only when essential and otherwise redacted or
summarized to protect identifiers.

In `@burgess/skills/reasonable-adjustments/README.md`:
- Around line 11-13: Update the Burgess Principle wording in this README to
match the canonical parent by replacing the narrower sentence under the quoted
question "Was a human member of the team able to personally review the specific
facts of my specific case?" with the exact phrasing used in burgess/README.md so
both documents use the same definition and avoid drift; locate the quoted
heading in reasonable-adjustments/README.md and modify the following paragraph
to mirror the parent README's text verbatim.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 14a17916-bef8-4b25-b5dd-7d6abc2952ba

📥 Commits

Reviewing files that changed from the base of the PR and between 400ce91 and 3710a07.

📒 Files selected for processing (72)
  • .github/ISSUE_TEMPLATE/broken-link.yml
  • .github/ISSUE_TEMPLATE/new-category.yml
  • .github/ISSUE_TEMPLATE/security-concern.yml
  • .github/ISSUE_TEMPLATE/skill-removal.yml
  • .github/workflows/link-check.yml
  • .github/workflows/pr-validate.yml
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • TRADEMARKS.md
  • burgess/README.md
  • burgess/context/design-principles.md
  • burgess/context/how-this-elevates-the-ai.md
  • burgess/context/why-this-liberates-the-ai.md
  • burgess/skills/benefits-claim-assistance/README.md
  • burgess/skills/benefits-claim-assistance/SKILL.md
  • burgess/skills/burgess-config.md
  • burgess/skills/coding-agent-review/README.md
  • burgess/skills/coding-agent-review/SKILL.md
  • burgess/skills/contract-review/README.md
  • burgess/skills/contract-review/SKILL.md
  • burgess/skills/copyright-dmca-counter-notice/README.md
  • burgess/skills/copyright-dmca-counter-notice/SKILL.md
  • burgess/skills/council-tax-pcn-dispute/README.md
  • burgess/skills/council-tax-pcn-dispute/SKILL.md
  • burgess/skills/direct-debit-refund/README.md
  • burgess/skills/direct-debit-refund/SKILL.md
  • burgess/skills/dsar-request/README.md
  • burgess/skills/dsar-request/SKILL.md
  • burgess/skills/enforcement-agent-response/README.md
  • burgess/skills/enforcement-agent-response/SKILL.md
  • burgess/skills/foi-request/README.md
  • burgess/skills/foi-request/SKILL.md
  • burgess/skills/human-review-request/README.md
  • burgess/skills/human-review-request/SKILL.md
  • burgess/skills/media-libel-review/README.md
  • burgess/skills/media-libel-review/SKILL.md
  • burgess/skills/medical-device-review/README.md
  • burgess/skills/medical-device-review/SKILL.md
  • burgess/skills/music-copyright-dispute/README.md
  • burgess/skills/music-copyright-dispute/SKILL.md
  • burgess/skills/reasonable-adjustments/README.md
  • burgess/skills/reasonable-adjustments/SKILL.md
  • categories/ai-and-llms.md
  • categories/apple-apps-and-services.md
  • categories/browser-and-automation.md
  • categories/calendar-and-scheduling.md
  • categories/clawdbot-tools.md
  • categories/cli-utilities.md
  • categories/coding-agents-and-ides.md
  • categories/communication.md
  • categories/data-and-analytics.md
  • categories/devops-and-cloud.md
  • categories/gaming.md
  • categories/git-and-github.md
  • categories/health-and-fitness.md
  • categories/image-and-video-generation.md
  • categories/marketing-and-sales.md
  • categories/moltbook.md
  • categories/pdf-and-documents.md
  • categories/personal-development.md
  • categories/productivity-and-tasks.md
  • categories/search-and-research.md
  • categories/security-and-passwords.md
  • categories/shopping-and-e-commerce.md
  • categories/smart-home-and-iot.md
  • categories/speech-and-transcription.md
  • categories/transportation.md
  • categories/web-and-frontend-development.md
  • scripts/sync-skill-counts.sh

Comment on lines +16 to +21
- uses: actions/checkout@v4

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@v2
with:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Workflow action refs that are NOT pinned to 40-char SHAs:"
rg -nP '^\s*-?\s*uses:\s*[^@]+@(?![0-9a-f]{40}$).+$' .github/workflows

echo
echo "Workflow action refs pinned to 40-char SHAs:"
rg -nP '^\s*-?\s*uses:\s*[^@]+@[0-9a-f]{40}$' .github/workflows

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 548


Pin GitHub Actions to full commit SHAs.

Using mutable tags (@v4, @v2, @v7) weakens supply-chain integrity if tags are retargeted.

🔒 Example hardening
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@<40-char-commit-sha>
...
-        uses: lycheeverse/lychee-action@v2
+        uses: lycheeverse/lychee-action@<40-char-commit-sha>
...
-        uses: actions/github-script@v7
+        uses: actions/github-script@<40-char-commit-sha>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/link-check.yml around lines 16 - 21, Replace mutable
GitHub Action tags with their corresponding full commit SHAs to harden
supply-chain integrity: update the uses entries (e.g., actions/checkout@v4 and
lycheeverse/lychee-action@v2) to use the full commit SHA for each action (and
any other mutable tags like `@v7` found in the workflow), ensuring you fetch the
exact commit from the action's repository and replace the tag string with that
SHA in the workflow.

Comment on lines +42 to +51
- name: Check for duplicate skills
shell: bash
run: |
# Extract all skill names from README.md and check for duplicates
duplicates=$(grep -oP '^\- \[\K[^\]]+' README.md | sort | uniq -d)

if [ -n "$duplicates" ]; then
echo "::warning::Possible duplicate skill names found in README.md:"
echo "$duplicates"
fi
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Duplicates when scanning README (includes presentation-layer repeats):"
grep -oP '^- \[\K[^\]]+' README.md | LC_ALL=C sort -f | uniq -di | head -20 || true

echo
echo "Duplicates when scanning canonical category files only:"
grep -h -oP '^- \[\K[^\]]+' categories/*.md | LC_ALL=C sort -f | uniq -di | head -20 || true

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 430


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== README structure (first 100 lines) ==="
head -100 README.md

echo
echo "=== Check for 'Recently Added' section ==="
grep -n "Recently Added" README.md || echo "Not found"

echo
echo "=== List category files ==="
ls -la categories/*.md 2>/dev/null || echo "Directory does not exist or no .md files"

echo
echo "=== Show sample duplicates from README (first occurrence of each) ==="
for dup in agent-browser agent-rate-limiter apple-music; do
  echo "--- Occurrences of '$dup' in README ---"
  grep -n "\[$dup\]" README.md || true
done

echo
echo "=== Show sample duplicates from category files ==="
for dup in code-stats db-readonly hackathon-manager; do
  echo "--- Occurrences of '$dup' ---"
  grep -rn "\[$dup\]" categories/ 2>/dev/null || echo "Not found in categories"
done

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 9814


Duplicate check will miss data quality issues in category files.

The current workflow only scans README.md, which contains a "Recently Added" section that intentionally repeats skills listed in categories. This catches 3 presentation-layer duplicates, but misses 9 actual data quality issues that exist within the category files (e.g., code-stats, db-readonly, and hackathon-manager each appear multiple times in their respective category markdown files).

♻️ Proposed fix
-          # Extract all skill names from README.md and check for duplicates
-          duplicates=$(grep -oP '^\- \[\K[^\]]+' README.md | sort | uniq -d)
+          # Extract from canonical source files to catch all real duplicates
+          duplicates=$(grep -h -oP '^- \[\K[^\]]+' categories/*.md | LC_ALL=C sort -f | uniq -di)

           if [ -n "$duplicates" ]; then
-            echo "::warning::Possible duplicate skill names found in README.md:"
+            echo "::warning::Possible duplicate skill names found across category files:"
             echo "$duplicates"
           fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/pr-validate.yml around lines 42 - 51, The duplicate-skill
check only greps README.md (in the "Check for duplicate skills" step and
variable duplicates) and thus misses repeats inside category files; update the
workflow to search across category markdown files (e.g., all category/*.md or a
glob like categories/**/*.md and README.md) instead of just README.md, aggregate
skill names from those files into the same grep pipeline that produces the
duplicates variable, and emit the same warning when duplicates is non-empty so
category-level data-quality duplicates (like code-stats, db-readonly,
hackathon-manager) are detected.

Comment on lines +82 to +83
actual=$(grep -c "^- \[" "$file" || echo 0)
header=$(grep -oP '^\*\*\K[0-9]+(?= skills\*\*)' "$file" || echo "?")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

tmp="$(mktemp)"
actual="$(grep -c '^- \[' "$tmp" || echo 0)"
printf 'actual (quoted): %q\n' "$actual"
rm -f "$tmp"

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 101


grep -c ... || echo 0 produces a malformed count string with embedded newline.

When a pattern has zero matches, grep -c outputs 0 and exits with code 1. This triggers the || echo 0 clause, causing the command substitution to capture both outputs: 0 (from grep) and 0 (from echo), resulting in actual='0\n0'.

🐛 Proposed fix
-            actual=$(grep -c "^- \[" "$file" || echo 0)
+            actual=$(grep -c "^- \[" "$file" || true)

This ensures the count is always a clean single value: either the output of grep -c (which already outputs 0 for no matches) or nothing from true.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
actual=$(grep -c "^- \[" "$file" || echo 0)
header=$(grep -oP '^\*\*\K[0-9]+(?= skills\*\*)' "$file" || echo "?")
actual=$(grep -c "^- \[" "$file" || true)
header=$(grep -oP '^\*\*\K[0-9]+(?= skills\*\*)' "$file" || echo "?")
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/pr-validate.yml around lines 82 - 83, The command
substitution for actual currently uses "grep -c ... || echo 0" which can produce
a double-line value like '0\n0'; change the fallback to a no-op (use "|| true")
so only grep's stdout is captured, i.e., update the actual assignment to use
grep -c ... || true; likewise update similar constructs (e.g., the header
assignment using "|| echo '?'") to use "|| true" so command substitutions
capture only the intended grep output and not additional echoed fallbacks.

## How you work

1. Ask the user to describe their situation: which benefit was applied for, what decision was made, and why they believe it does not reflect their circumstances.
2. Identify the relevant benefits system and legislation for their country (e.g. DWP and Mandatory Reconsideration in the UK, Social Security Administration in the US).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Separate agencies/processes from legislation in the country-mapping step.

The examples mix institutions with legislation, which can blur output accuracy.

Proposed wording fix
-2. Identify the relevant benefits system and legislation for their country (e.g. DWP and Mandatory Reconsideration in the UK, Social Security Administration in the US).
+2. Identify the relevant benefits system, decision process, and legal framework for their country (e.g. DWP + Mandatory Reconsideration + Equality Act context in the UK; SSA + reconsideration/appeals framework in the US).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
2. Identify the relevant benefits system and legislation for their country (e.g. DWP and Mandatory Reconsideration in the UK, Social Security Administration in the US).
2. Identify the relevant benefits system, decision process, and legal framework for their country (e.g. DWP + Mandatory Reconsideration + Equality Act context in the UK; SSA + reconsideration/appeals framework in the US).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@burgess/skills/benefits-claim-assistance/SKILL.md` at line 18, Step 2
currently conflates institutions and laws; update the wording in SKILL.md Step 2
("2. Identify the relevant benefits system and legislation...") to explicitly
separate administering agencies/processes from applicable legislation—for
example, change to "Identify the relevant administering agency or process for
benefits (e.g., DWP, SSA) and the specific applicable legislation or appeal
process (e.g., Mandatory Reconsideration)"—so the country-mapping step captures
both the authority and the legal framework distinctly.

Comment on lines +28 to +30
# Enable all Burgess skills at once
cp -r burgess/skills/* ~/.openclaw/skills/
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

cp -r burgess/skills/* can copy non-skill files into the skills directory.

Line 29 can include burgess-config.md alongside skill folders. Safer to copy directories only and create destination directories first.

🛠️ Proposed command fix
 # Enable all Burgess skills at once
-cp -r burgess/skills/* ~/.openclaw/skills/
+mkdir -p ~/.openclaw/skills
+cp -r burgess/skills/*/ ~/.openclaw/skills/
-cp -r burgess/skills/contract-review <your-project>/skills/
+mkdir -p <your-project>/skills
+cp -r burgess/skills/contract-review <your-project>/skills/

Also applies to: 44-46

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@burgess/skills/burgess-config.md` around lines 28 - 30, The current example
using "cp -r burgess/skills/*" can copy non-directory files like
burgess-config.md into the skills destination; change the instructions to create
the destination directory first (use mkdir -p for ~/.openclaw/skills) and copy
directories only by targeting directories (e.g., use a pattern that selects
directories such as burgess/skills/*/ or use find to copy only directories) so
only skill folders are copied; update both occurrences that show the bulk-copy
command accordingly.

Comment thread CODE_OF_CONDUCT.md

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported by opening an issue or contacting the maintainers directly. All complaints will be reviewed and investigated promptly and fairly.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Provide an explicit private reporting channel (email/form) instead of suggesting public issues.

Current wording can lead reporters to disclose sensitive incidents publicly. Add a dedicated confidential contact path and make it the primary option.

Suggested wording update
-Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported by opening an issue or contacting the maintainers directly. All complaints will be reviewed and investigated promptly and fairly.
+Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported confidentially at [INSERT_CONTACT_EMAIL_OR_FORM]. Public issues should not be used for incident reports. All complaints will be reviewed and investigated promptly and fairly.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported by opening an issue or contacting the maintainers directly. All complaints will be reviewed and investigated promptly and fairly.
Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported confidentially at [INSERT_CONTACT_EMAIL_OR_FORM]. Public issues should not be used for incident reports. All complaints will be reviewed and investigated promptly and fairly.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CODE_OF_CONDUCT.md` at line 32, Replace the current public-reporting sentence
in CODE_OF_CONDUCT.md ("Instances of abusive... opening an issue or contacting
the maintainers directly") with an explicit private reporting channel and make
it the primary option: add a dedicated confidential contact method (e.g., a
private email address or a secure web form) and instruct reporters to use that
first, then note that public issues are an alternative if the private channel is
not available; update the sentence and any nearby examples so the private
channel is clearly highlighted and preferred.

Comment thread CONTRIBUTING.md
We only include skills whose security status on [ClawHub](https://www.clawhub.ai/) is **not flagged as suspicious**. Skills that are marked as suspicious on ClawHub will not be accepted into this list.

If you believe a skill currently in this list has a security concern or should be flagged, please [open an issue](https://github.com/VoltAgent/awesome-clawdbot-skills/issues) so we can review and remove it.
If you believe a skill currently in this list has a security concern or should be flagged, please [open an issue](https://github.com/ljbudgie/awesome-openclaw-skills/issues) so we can review and remove it.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Find all copyright and attribution references to verify consistency.

echo "=== Copyright notices in LICENSE and documentation ==="
rg -n "Copyright.*VoltAgent|Copyright.*ljbudgie|Copyright.*Burgess" --type=md

echo -e "\n=== Repository owner references ==="
rg -n "github\.com/(VoltAgent|ljbudgie)/" --type=md --type=yml

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 796


🏁 Script executed:

#!/bin/bash
# Check the LICENSE file content to verify copyright holder
echo "=== LICENSE file content ==="
cat LICENSE

echo -e "\n=== Repository URLs in codebase ==="
rg "github\.com/(VoltAgent|ljbudgie)" -type md

echo -e "\n=== Check CONTRIBUTING.md context ==="
sed -n '50,60p' CONTRIBUTING.md

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 2246


Update copyright holder in LICENSE file to match repository owner.

Repository URLs reference ljbudgie/awesome-openclaw-skills, but the LICENSE file shows Copyright (c) 2026 VoltAgent. Update the copyright holder to match the repository owner (ljbudgie).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CONTRIBUTING.md` at line 55, The LICENSE file currently lists "Copyright (c)
2026 VoltAgent" which doesn't match the repository owner; update the copyright
holder string in the LICENSE file to "ljbudgie" (or "Copyright (c) 2026
ljbudgie") so it matches the repository owner referenced elsewhere, ensuring any
other occurrences of "VoltAgent" in the LICENSE are replaced consistently and
preserving the rest of the license text and year.

Comment thread README.md
Comment on lines +11 to +19
<strong>Discover 5100+ community-built OpenClaw skills, organized by category.
</strong>
<br />
<br />
</div>

[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
[![Skills Count](https://img.shields.io/badge/skills-5198-blue?style=flat-square)](#table-of-contents)
[![Last Update](https://img.shields.io/github/last-commit/VoltAgent/awesome-clawdbot-skills?label=Last%20update&style=flat-square)](https://github.com/VoltAgent/awesome-clawdbot-skills/pulls?q=is%3Apr+is%3Amerged+sort%3Aupdated-desc)
[![Skills Count](https://img.shields.io/badge/skills-5143-blue?style=flat-square)](#table-of-contents)
[![Last Update](https://img.shields.io/github/last-commit/ljbudgie/awesome-openclaw-skills?label=Last%20update&style=flat-square)](https://github.com/ljbudgie/awesome-openclaw-skills/pulls?q=is%3Apr+is%3Amerged+sort%3Aupdated-desc)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Skill totals are now inconsistent across the same README.

Line 11 (5100+) and Line 18 (5143) no longer match the narrative total stated later (Line 87 says 5,211). Please sync these values to one source of truth to avoid confusion.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 11 - 19, The README contains inconsistent skill
totals: the header string "Discover 5100+ community-built OpenClaw skills", the
Skills Count badge (alt/label showing "skills-5143"), and the narrative total
"5,211" are out of sync; choose a single authoritative total (or make the count
dynamic) and update all occurrences to match it—specifically change the header
text "Discover 5100+...", the badge label/value for "Skills Count"
(`skills-5143`), and the narrative total "5,211" to the same number or wire them
to a single source so they stay consistent.

Comment thread README.md
Comment on lines +204 to +210
```bash
# Enable all Burgess skills
cp -r burgess/skills/* ~/.openclaw/skills/

# Or enable just one
cp -r burgess/skills/contract-review ~/.openclaw/skills/
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo "Top-level files under burgess/skills (these would be copied by '*' wildcard):"
find burgess/skills -maxdepth 1 -type f -print

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 187


Wildcard in copy command can include non-skill files.

At line 206, cp -r burgess/skills/* ~/.openclaw/skills/ matches both files and directories. The directory contains burgess-config.md at the top level, which would be copied unintentionally. Use burgess/skills/*/ to match directories only.

♻️ Proposed fix
-# Enable all Burgess skills
-cp -r burgess/skills/* ~/.openclaw/skills/
+# Enable all Burgess skills (directories only)
+cp -r burgess/skills/*/ ~/.openclaw/skills/
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 204 - 210, The cp command in the README uses a glob
that matches both files and directories (cp -r burgess/skills/*
~/.openclaw/skills/), which will accidentally copy top-level files like
burgess-config.md; update the example to only match directories by changing the
glob to cp -r burgess/skills/*/ ~/.openclaw/skills/ so only skill directories
are copied, and update the adjacent single-skill example if needed to preserve
clarity.

Comment on lines +59 to +62
for file in "$CATEGORIES_DIR"/*.md; do
basename_no_ext="$(basename "$file" .md)"
count=$(grep -c "^- \[" "$file")
total=$((total + count))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

tmp="$(mktemp)"
printf '%s\n' 'no skill bullet here' > "$tmp"

set +e
out="$(grep -c "^- \[" "$tmp")"
status=$?
set -e

echo "grep output: $out"
echo "grep exit status: $status  # expected: 1 when no matches"

rm -f "$tmp"

Repository: VoltAgent/awesome-openclaw-skills

Length of output: 142


Add guard to prevent script failure when a category file contains zero skills.

With set -e, grep -c returns exit code 1 when no matches are found, which can cause the script to exit prematurely even though the count value (0) is correct.

Fix
-  count=$(grep -c "^- \[" "$file")
+  count=$(grep -c "^- \[" "$file" || true)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
for file in "$CATEGORIES_DIR"/*.md; do
basename_no_ext="$(basename "$file" .md)"
count=$(grep -c "^- \[" "$file")
total=$((total + count))
for file in "$CATEGORIES_DIR"/*.md; do
basename_no_ext="$(basename "$file" .md)"
count=$(grep -c "^- \[" "$file" || true)
total=$((total + count))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/sync-skill-counts.sh` around lines 59 - 62, The loop can fail under
set -e because grep may return a non-zero exit status when there are no matches;
update the count assignment in the loop (where variables like CATEGORIES_DIR,
basename_no_ext, count, total are used) to tolerate that by capturing grep
output with a fallback: use count=$(grep -c "^- \[" "$file" || true) and then
normalize to zero if empty (e.g. count=${count:-0}) before adding to total, so
files with zero skills don't cause the script to exit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants