Skip to content

fix: add commands/last30days.md and remove skills/last30days-nux duplicate (v3.0.5)#267

Merged
mvanhorn merged 1 commit intomainfrom
fix/v3-0-5-commands-and-cleanup
Apr 15, 2026
Merged

fix: add commands/last30days.md and remove skills/last30days-nux duplicate (v3.0.5)#267
mvanhorn merged 1 commit intomainfrom
fix/v3-0-5-commands-and-cleanup

Conversation

@mvanhorn
Copy link
Copy Markdown
Owner

Summary

Ships v3.0.5 with two changes:

  1. Adds `commands/last30days.md` so `/last30days` registers as a real Claude Code slash command. Users type `/last30days ` and Claude Code's autocomplete prefix-matches to the canonical `/last30days:last30days` form (same way `/ce:plan` resolves to `/compound-engineering:ce-plan`).
  2. Removes `skills/last30days-nux/`, a byte-identical symlink-duplicate of the root SKILL.md that created confusing `/last30days:last30days-nux` autocomplete entries.

How users invoke it

```
/last30days nvidia earnings reaction
```

Autocomplete completes the typed prefix to the namespaced form. Natural-language skill-selector invocation continues to work via root SKILL.md.

Local test (already verified)

  • New command file added to local marketplace clone, `/reload-plugins` ran clean, `/last30days` resolved and skill fired
  • `skills/last30days-nux/` removed locally, `/doctor` clean, no ghost `-nux` autocomplete entries
  • Matt's personal `~/.claude/skills/last30days/` still gives him bare `/last30days` (unchanged)

Closes / Supersedes

Build verification

```
$ bash scripts/build-skill.sh
built dist/last30days.skill (92 files, 268K)
```

1 SKILL.md, 92 files (under 200 cap). claude.ai distribution unaffected.

Recovery for users

```
/plugin update last30days
/reload-plugins
```

…icate

Adds commands/last30days.md so /last30days registers as a Claude Code
slash command for plugin users. Users type /last30days and autocomplete
prefix-matches to the canonical /last30days:last30days form (same as
/ce:plan resolving to /compound-engineering:ce-plan).

Removes skills/last30days-nux/, a byte-identical duplicate of the root
SKILL.md that created confusing /last30days:last30days-nux autocomplete
entries via Claude Code's plugin namespacing. Root SKILL.md remains
the canonical skill source; natural-language skill-selector invocation
is unchanged.

Recovery for users on v3.0.4: /plugin update last30days then /reload-plugins.

Closes #239 (path-escape error was already fixed in v3.0.4 by dropping
the rogue 'skills' key; v3.0.5 adds the slash command on top).
Supersedes #257 (suggested './' -> '.' workaround is obsolete since
v3.0.4 dropped the 'skills' key entirely, matching ecosystem standard).
@mvanhorn mvanhorn merged commit 3499c24 into main Apr 15, 2026
@mvanhorn mvanhorn deleted the fix/v3-0-5-commands-and-cleanup branch April 15, 2026 19:19
giuseppebisemi added a commit to giuseppebisemi/last30days-skill that referenced this pull request Apr 17, 2026
Since v3.0.5 the first-run wizard (SKILL.md §Step 0) has been silently
skipped for Claude Code marketplace users. The wizard code is intact —
it was simply unreachable because commands/last30days.md was loaded
instead of the SKILL.md body.

Fix: move the user-invocable skill to its canonical plugin path
(skills/last30days/SKILL.md), matching the skill-as-command pattern
used by compound-engineering. Drop the commands/last30days.md stub.
Rename the internal v3 spec to skills/last30days-v3-spec/ to free the
canonical path.

- SKILL.md (root) -> skills/last30days/SKILL.md
- skills/last30days/ (v3 spec) -> skills/last30days-v3-spec/
- commands/last30days.md -> deleted
- scripts/sync.sh: source path updated to new skill location
- scripts/build-skill.sh: promote canonical SKILL.md to bundle root
  for claude.ai distribution
- tests/test_version_consistency.py: read from new skill path
- CLAUDE.md: update structure reference

Closes the regression introduced in PR mvanhorn#267.
giuseppebisemi added a commit to giuseppebisemi/last30days-skill that referenced this pull request Apr 17, 2026
Since v3.0.5 the first-run wizard (SKILL.md §Step 0) has been silently
skipped for Claude Code marketplace users. The wizard code is intact —
it was simply unreachable because commands/last30days.md was loaded
instead of the SKILL.md body.

Fix: move the user-invocable skill to its canonical plugin path
(skills/last30days/SKILL.md), matching the skill-as-command pattern
used by compound-engineering. Drop the commands/last30days.md stub.
Rename the internal v3 spec to skills/last30days-v3-spec/ to free the
canonical path.

- SKILL.md (root) -> skills/last30days/SKILL.md
- skills/last30days/ (v3 spec) -> skills/last30days-v3-spec/
- commands/last30days.md -> deleted
- scripts/sync.sh: source path updated to new skill location
- scripts/build-skill.sh: promote canonical SKILL.md to bundle root
  for claude.ai distribution
- tests/test_version_consistency.py: read from new skill path
- CLAUDE.md: update structure reference

Closes the regression introduced in PR mvanhorn#267.
Sign up for free to 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.

Plugin fails to load in Claude Code: "Path escapes plugin directory: ./ (skills)"

1 participant