Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); docs(skill): add audit-clerk-skill for drift detection by wyattjoh · Pull Request #156 · clerk/cli · GitHub
Skip to content

docs(skill): add audit-clerk-skill for drift detection - #156

Merged
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update
Apr 20, 2026
Merged

docs(skill): add audit-clerk-skill for drift detection#156
wyattjoh merged 1 commit into
mainfrom
wyattjoh/skill-update

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

New user-invocable skill that cross-checks skills/clerk/ against packages/cli-core/src/commands/** and proposes targeted edits when the two drift.

Reads per-command README.md files as a secondary source (to flag mocked or hidden surfaces), prefers --help over enumerating flags, and routes proposals between SKILL.md, references/agent-mode.md, references/auth.md, and references/recipes.md based on content type.

Configured with effort: high, disable-model-invocation: true (manual maintenance task), and an optional --apply argument to write changes rather than just proposing them.

Stacked on #126.

Test plan

  • Manual: invoke /audit-clerk-skill and confirm it produces the documented output shape (bucketed proposals, source citations, severity tags)
  • Manual: run with --apply on a synthetic drift case and confirm it writes only drift and gap edits, leaving polish suggestions for review

@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-pinned to feat/clerk-cli-skill-local-debugApril 14, 2026 22:34
@wyattjoh
wyattjoh marked this pull request as draft April 14, 2026 22:34
@wyattjoh

wyattjoh commented Apr 14, 2026

Copy link
Copy Markdown
ContributorAuthor

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from fd4e18e to 0ac582cCompareApril 14, 2026 22:36
@wyattjohwyattjoh changed the title feat(skill): add CLERK_CLI_SKILL_SOURCE override and audit-clerk-cli-skilldocs(skill): add audit-clerk-cli-skill for drift detectionApr 14, 2026
@wyattjoh
wyattjoh changed the base branch from feat/clerk-cli-skill-local-debug to feat/clerk-cli-skill-pinnedApril 14, 2026 22:36
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 0ac582c to 93a54b9CompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 97cadfd to 9255b9aCompareApril 15, 2026 16:50
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 93a54b9 to 140f8d1CompareApril 15, 2026 17:26
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 998207f to 71e2f9fCompareApril 15, 2026 20:06
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 140f8d1 to 51a17d9CompareApril 15, 2026 20:06
@changeset-bot

changeset-botBot commented Apr 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 20f1d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 51a17d9 to b6a5d82CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from b6a5d82 to 6745d77CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 8078ef6 to 7a2025dCompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 6745d77 to ac7474cCompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from ac7474c to 84a4ce1CompareApril 15, 2026 23:14
@wyattjohwyattjoh changed the title docs(skill): add audit-clerk-cli-skill for drift detectiondocs(skill): add audit-clerk-skill for drift detectionApr 15, 2026
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 84a4ce1 to 6f1b78fCompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 2 times, most recently from e885c01 to edbd7caCompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from b5936da to cc43a16CompareApril 17, 2026 21:29
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from edbd7ca to 7ebc5d9CompareApril 20, 2026 14:35
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch 3 times, most recently from 71bb4b1 to 2d03bbeCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
Adds a user-invocable skill that cross-checks skills/clerk/ against the
CLI source tree (packages/cli-core/src/commands/**) and proposes targeted
edits when the two drift. Reads per-command README.md files as a secondary
source, prefers --help over enumerating flags, and routes proposals between
SKILL.md and references/*.md based on content type.
Configured with effort: high and disable-model-invocation: true so it is a
manual maintenance task, with an optional --apply argument to write changes
rather than just proposing them.
@wyattjoh
wyattjohforce-pushed the wyattjoh/skill-update branch from 2d03bbe to 20f1d14CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A new Claude skill definition file is added at .claude/skills/audit-clerk-skill/SKILL.md. This file defines an audit workflow that compares the Clerk CLI implementation in packages/cli-core/src/commands/** against documentation in skills/clerk/SKILL.md and related reference files. The skill specifies inventory extraction procedures for command attributes (paths, descriptions, flags, exit codes), classification of differences into four categories (missing, stale, thin, over-specified), routing rules for content placement, and an optional apply mode for automated edits. It includes specific guardrails such as prohibiting invented flags, preserving voice, maintaining version markers, and enforcing a 500-line SKILL.md budget.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely describes the main change: adding a new skill for drift detection in the audit workflow.
Description check✅ PassedThe description comprehensively explains what the new skill does, how it works, configuration details, and includes a test plan directly related to the changeset.
Docstring Coverage✅ PassedNo 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.


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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/audit-clerk-skill/SKILL.md:
- Line 112: There’s a contradiction between the rule text "No em-dashes" (the
forbidding statement) and the sample header that contains an em-dash (the
character “—”); resolve it by making them consistent: either remove/replace the
em-dash in the sample header (replace “—” with a hyphen or space) or relax the
rule to explicitly allow em-dashes and update the forbidding statement; update
the wording at the rule location (the "No em-dashes" line) and the sample header
text (the sample header containing “—”) so both reflect the chosen policy.
- Line 120: Add a language tag to the output-shape fenced code block that begins
with "# clerk skill audit — <YYYY-MM-DD>" so Markdown lint MD040 passes; edit
the fenced block delimiter (the triple backticks) to include a language
identifier (for example "markdown") immediately after the opening ``` to make
the fence look like ```markdown.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc03b53-6268-4d3e-957b-c193da0c029b

📥 Commits

Reviewing files that changed from the base of the PR and between 8c02278 and 20f1d14.

📒 Files selected for processing (1)
  • .claude/skills/audit-clerk-skill/SKILL.md


- **Never invent flags.** If a flag appears in a test but not in the command's argument parser, treat it as test-only and flag it for human review.
- **Preserve voice.** The existing skill is terse and third-person; match it. No first- or second-person drift.
- **No em-dashes** anywhere in proposals (repo style rule).

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

Resolve the em-dash rule contradiction in the output template.

Line 112 forbids em-dashes in proposals, but Line 121’s sample header uses one (). This creates conflicting instructions for the same output.

Proposed fix
-# clerk skill audit — <YYYY-MM-DD>+# clerk skill audit - <YYYY-MM-DD>

Also applies to: 121-121

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 112, There’s a
contradiction between the rule text "No em-dashes" (the forbidding statement)
and the sample header that contains an em-dash (the character “—”); resolve it
by making them consistent: either remove/replace the em-dash in the sample
header (replace “—” with a hyphen or space) or relax the rule to explicitly
allow em-dashes and update the forbidding statement; update the wording at the
rule location (the "No em-dashes" line) and the sample header text (the sample
header containing “—”) so both reflect the chosen policy.


Return the proposal as:

```

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

Add a language tag to the fenced code block.

The output-shape fence is missing a language identifier, which will fail markdown lint (MD040).

Proposed fix
-```+```markdown
# clerk skill audit — <YYYY-MM-DD>
...
-```+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 120-120: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/skills/audit-clerk-skill/SKILL.md at line 120, Add a language tag to
the output-shape fenced code block that begins with "# clerk skill audit —
<YYYY-MM-DD>" so Markdown lint MD040 passes; edit the fenced block delimiter
(the triple backticks) to include a language identifier (for example "markdown")
immediately after the opening ``` to make the fence look like ```markdown.

@wyattjoh
wyattjoh merged commit 2868465 into mainApr 20, 2026
10 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/skill-update branch April 20, 2026 21:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto