feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(init): support CLERK_SKILL_SOURCE env override - #127

Closed
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug
Closed

feat(init): support CLERK_SKILL_SOURCE env override#127
wyattjoh wants to merge 3 commits into
mainfrom
feat/clerk-cli-skill-local-debug

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CLERK_SKILL_SOURCE env var as an escape hatch for skill authors iterating on the clerk skill without rebuilding the CLI. When set, clerk init passes the value straight to <runner> skills add <value> in place of the bundled source (#126).

Any value the skills CLI accepts works:

# Absolute path to a working-tree skill dir (default symlink install,# edits to the source are reflected in the installed skill immediately).
CLERK_SKILL_SOURCE="$PWD/skills/clerk" clerk init
# A fork or PR branch on GitHub.
CLERK_SKILL_SOURCE="https://github.com/me/cli/tree/wip/skills/clerk" clerk init
# Shorthand for the default repo (installs from main branch).
CLERK_SKILL_SOURCE="clerk/cli" clerk init

The override path skips the staged temp dir and the --copy flag introduced in #126, so a local working-tree path installs via the default symlink mode and edits to the source are picked up by already-installed projects without re-running clerk init. init logs the value being used so there's no surprise about what got installed.

The override has no effect on the upstream skills.

Stacked on #126.

Test plan

  • bun run test passes (unit tests cover env-var precedence: unset, empty/whitespace, trimmed / remote / local variants)
  • Manual: CLERK_SKILL_SOURCE="$PWD/skills/clerk" bun run dev -- init in a sandbox, confirm the installer logs the override and .claude/skills/clerk/ is a symlink into the working tree
  • Manual: edit skills/clerk/SKILL.md in the working tree, re-open the installed skill, confirm the edit is visible without re-running init
  • Manual: CLERK_SKILL_SOURCE="clerk/cli" bun run dev -- init installs from the remote shorthand and the upstream framework skills still install normally

@wyattjoh

wyattjoh commented Apr 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: feat/clerk-cli-skill-local-debug

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh mentioned this pull request Apr 7, 2026
4 tasks
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 40b1139 to 2b430c5CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 209860b to 266ab75CompareApril 7, 2026 19:40
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 2b430c5 to bd75724CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 266ab75 to b801108CompareApril 7, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from bd75724 to 510829cCompareApril 7, 2026 21:58
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from d7b5c2b to be3bdafCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 510829c to dae4eccCompareApril 8, 2026 21:39
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from be3bdaf to fc91ecaCompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from dae4ecc to 75f79d4CompareApril 9, 2026 20:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from fc91eca to d4e2aafCompareApril 9, 2026 22:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 2bc5f72 to c52bc3fCompareApril 11, 2026 06:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from bd6cc3b to 71fcba0CompareApril 11, 2026 06:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 27b5058 to f0d314fCompareApril 13, 2026 20:01
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 879a97b to 67098adCompareApril 13, 2026 22:49
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 8e087a7 to 13e75abCompareApril 13, 2026 23:20
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6be4db9 to 126bdcdCompareApril 14, 2026 18:50
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 13e75ab to 7154722CompareApril 14, 2026 18:50
@wyattjohwyattjoh changed the title feat(init): support local debugging of clerk-cli skill sourcefeat(init): support CLERK_CLI_SKILL_SOURCE env overrideApr 14, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 71e2f9f to 8078ef6CompareApril 15, 2026 21:13
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 6291f77 to 0fdb815CompareApril 15, 2026 22:23
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch 2 times, most recently from 7a2025d to 61ddd30CompareApril 15, 2026 22:48
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from aebf943 to 1094bacCompareApril 15, 2026 23:15
@wyattjohwyattjoh changed the title feat(init): support CLERK_CLI_SKILL_SOURCE env overridefeat(init): support CLERK_SKILL_SOURCE env overrideApr 15, 2026
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 9c7d911 to 61a2b63CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1094bac to e6727c1CompareApril 16, 2026 00:41
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from 61a2b63 to b5936daCompareApril 17, 2026 15:32
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch 2 times, most recently from 94d0d2f to b09518aCompareApril 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 feat/clerk-cli-skill-local-debug branch 3 times, most recently from a6c50be to 7bd841dCompareApril 20, 2026 14:57
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-pinned branch from a1a52fd to 6d0ef8aCompareApril 20, 2026 15:00
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 7bd841d to 113beb7CompareApril 20, 2026 15:00
Comment threadpackages/cli-core/src/commands/skill/install.test.ts
Base automatically changed from feat/clerk-cli-skill-pinned to mainApril 20, 2026 17:54
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 113beb7 to 1aa3777CompareApril 20, 2026 17:54
@wyattjoh
wyattjoh marked this pull request as ready for review April 20, 2026 17:54
@coderabbitai

coderabbitaiBot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7a6cbd5-974d-469d-8e35-f262cc931127

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3777 and 0e9207d.

📒 Files selected for processing (6)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/init/README.md
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/README.md
  • packages/cli-core/src/commands/skill/install.test.ts
  • packages/cli-core/src/commands/skill/install.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/clerk-skill-local-debug.md
  • packages/cli-core/src/commands/skill/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/cli-core/src/commands/init/skills.ts
  • packages/cli-core/src/commands/skill/install.test.ts

📝 Walkthrough

Walkthrough

Adds a CLERK_SKILL_SOURCE environment variable that, when set, causes the CLI to pass that value directly to the underlying skills add <source> invocation instead of staging and copying the bundled clerk skill. Implementation includes a new exported resolveClerkSkillOverride helper, changes to installClerkSkillCore to honor the override (and log it), unit tests covering both override and default staging behavior, and README entries plus a changeset documenting the feature.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 75.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(init): support CLERK_SKILL_SOURCE env override' clearly and concisely describes the main change: adding support for a CLERK_SKILL_SOURCE environment variable to the init command.
Description check✅ PassedThe description comprehensively explains the purpose of CLERK_SKILL_SOURCE, provides concrete usage examples, documents the technical behavior, and includes a test plan—all directly related to the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ 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.

Adds an escape hatch for skill authors iterating on the clerk skill
without rebuilding the CLI: set CLERK_SKILL_SOURCE to any value the
`skills` CLI accepts (github URL, org/repo shorthand, absolute or
relative local path), and `clerk init` passes it straight to
`<runner> skills add <value>` in place of the bundled source.
The override path skips the staged temp dir and the --copy flag, so a
local working-tree path installs via the default symlink mode and edits
to the source are picked up immediately by already-installed projects.
The override has no effect on the upstream framework-pattern skills.
The runSkillsAdd() call in install.ts was formatted across multiple lines
but oxfmt (as run by format:check) wants it collapsed to one line. Apply
the formatter to keep CI green on this branch.
Asserts Bun.spawn argv contains the override (copy:false) when
CLERK_SKILL_SOURCE is set, and a staged temp dir (copy:true) when unset.
@wyattjoh
wyattjohforce-pushed the feat/clerk-cli-skill-local-debug branch from 1aa3777 to 0e9207dCompareApril 21, 2026 17:14
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