feat(skill): bundle OAuth scripts into nasde-benchmark-runner#45
Merged
Conversation
Users who installed nasde via `pip install nasde-toolkit` previously hit broken paths: the skill referenced `scripts/export_oauth_token.sh` but end users have no repo checkout. After `nasde install-skills` the scripts now ship at `~/.claude/skills/nasde-benchmark-runner/scripts/`. - Copy six OAuth scripts (3 agents x .sh+.ps1) into the skill dir. hatch force-include picks them up automatically because the entire skill dir is bundled to nasde_toolkit/_bundled_skills/... - Repo `scripts/` stays as the public-facing copy — existing external links continue to resolve. - Drift guard: tests/test_skills_installer.py asserts byte-identical copies between scripts/ and the skill bundle, with an actionable error message pointing at the fix. - SKILL.md auth tables: paths now reference <SKILL_SCRIPTS> placeholder with explicit absolute-path resolution per OS scope. E2E verified locally on macOS: fresh wheel build + uv tool install + nasde install-skills + source from bundled location = working CLAUDE_CODE_OAUTH_TOKEN. 159/159 tests green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 9, 2026
Merged
szjanikowski
added a commit
that referenced
this pull request
May 9, 2026
* docs(changelog): record Windows compat + skill bundling under [Unreleased] Captures everything that landed since v0.3.2 (PRs #42, #43, #44, #45) so the release notes are queued up. Keeps the section under [Unreleased] deliberately — more fixes are still expected before cutting v0.3.3, and release docs say the version header should be added at release-cut time. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(changelog): record .gitattributes LF enforcement (#47) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(changelog): record harbor[cloud] dependency switch (#48) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: release v0.3.3 Cuts v0.3.3 from the accumulated [Unreleased] section. Patch bump (pre-1.0 policy): no breaking changes to user-facing CLI, nasde.toml schema, or benchmark project layout — Windows compat, OAuth-script bundling, harbor[cloud] dep switch are all transparent to users. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Szymon Janikowski <szymon.janikowski@itlibrium.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
After
pip install nasde-toolkit && nasde install-skills, the runner skill referenced auth scripts at repo-relative paths (e.g.scripts/export_oauth_token.sh) — but end users have no repo checkout, so the skill broke for anyone who didn'tgit clonefirst.This PR ships those scripts inside the skill bundle so they're resolvable by absolute path after install.
.sh+.ps1) copied into.claude/skills/nasde-benchmark-runner/scripts/.pyproject.tomlalready force-includes the skill directory, so no build config changes needed — they get bundled tonasde_toolkit/_bundled_skills/...automatically.nasde install-skillsthey land at~/.claude/skills/nasde-benchmark-runner/scripts/(user scope) or<project>/.claude/skills/...(project scope).scripts/stays as the public-facing copy so existing external links continue to resolve.tests/test_skills_installer.pynow asserts the two copies stay byte-identical, with an actionable error message pointing at the fix command.<SKILL_SCRIPTS>placeholder and explicit absolute-path resolution per OS scope.Test plan
uv run pytest— 159/159 green (12 new tests intest_skills_installer.py)uv tool install --python 3.13 --reinstall,nasde install-skills --force, verify 6 bundled scripts, sourceexport_oauth_token.shfrom bundled location → token exported correctly)uv tool install --python 3.13,nasde install-skills --force, all 6 scripts present in bundled location,sourceofexport_oauth_token.shexportsCLAUDE_CODE_OAUTH_TOKEN(Linux fallback path: reads~/.claude/.credentials.json). $Scripts\export_oauth_token.ps1exports$env:CLAUDE_CODE_OAUTH_TOKENfrom%USERPROFILE%\.claude\.credentials.jsongh workflow run publish.yml --ref mainwill smoke-test the actual wheel install on ubuntu-latest + windows-latest × py 3.12/3.13 before any v0.3.3 tagOther unrelated bugs surfaced during manual testing on Linux/Windows but are tracked separately — auth + install path proven on all three OSes for this PR.
🤖 Generated with Claude Code