30 Commits

Author SHA1 Message Date
secondsky 292c93845e feat(humanize-writing): add skill plugin, lockstep 3.9.0
- Rewrites AI-sounding text to read human; 8 editing passes + review-only mode
- Adapted from jpeggdev/humanize-writing (MIT); npm installer scaffolding dropped
- Frontmatter condensed to 238 chars (sync enforces 250 max for single-skill plugins)
- Lockstep bump 3.8.0 -> 3.9.0: all 145 plugins, both marketplaces, package.json
- CHANGELOG entry for 3.9.0
2026-09-09 17:02:38 +02:00
Eddie ad16332a30 feat(zod): fidelity audit vs zod@4.4.3 + best-practices rulebook; lockstep 3.8.0 (#89)
Skill v2.1.0 — all documented APIs verified by typecheck + 22 runtime
tests against zod@4.4.3 (probe artifacts in .audit/zod-probe):

Fidelity fixes:
- Install block (bun/npm/pnpm/yarn — was 'bun add zod' ×3)
- z.string().uuid() → z.uuid() everywhere (11+ sites)
- v3 .merge() → .extend(other.shape) in all examples
- v3 z.function().args().returns() chain → v4 {input, output} factory
- .deepPartial() documented as removed (does not exist in 4.4.3)
- single-arg z.record → two-arg (required in v4)
- toJSONSchema 'metadata: true' → registry param (boolean was invalid)
- migration guide: format methods are deprecated, not removed;
  rollback pin 3.25.76; v4 error-code renames
- v3 error codes (invalid_string/invalid_enum_value/invalid_date) →
  v4 (invalid_format/invalid_value/unrecognized_keys); issue.received →
  expected/input; superRefine ctx.addIssue → ctx.issues.push
- codec decodeSafe/encodeSafe removed (never existed); real surface is
  decode/encode/decodeAsync/encodeAsync
- bundle claim corrected (~5kb core / ~1.9kb mini, was '2kb')

New coverage (both prior skills lacked):
- zod/mini (incl. the .check() pattern — piping bare checks crashes)
- .check() + check factories, z.preprocess, z.custom, z.templateLiteral,
  catchall, z.xor, z.file, z.json, z.stringbool, z.exactOptional,
  .safeExtend, z.fromJSONSchema, import-path guide, new format
  validators (guid/httpUrl/e164/hash/hostname/mac/uuidv4/uuidv7)

New references/best-practices.md: 12-rule Incorrect/Correct/
When-NOT-to-use rulebook with impact ratings (structure ported from
pproenca/dot-skills, examples rewritten against verified v4 APIs).

Verification: common-patterns.ts now typechecks strict against
zod@4.4.3 and passes a runtime smoke suite (codecs compose through
.extend, formatZodError, lazy recursion).

Lockstep bump 3.7.0 → 3.8.0 across all 144 plugins via sync-plugins.sh.
2026-08-20 10:18:21 +02:00
Eddie 2b93f5ac24 Add tech-debt + unknowns-discovery plugins; bump version to 3.7.0 (#84)
* Add tech-debt skill; bump version to 3.7.0

- New two-mode routed skill (prevent during change / triage backlog)
- Bundles jnsahaj/zero-tech-debt + anthropics/tech-debt stances
- sync-plugins.sh propagated 3.7.0 to all 143 manifests

* Add unknowns-discovery plugin (Claude port from suedzucker-codex-plugins)

Port the unknowns-discovery skill from the suedzucker-codex-plugins Codex
plugin into the Claude Code plugin format. Claude manifest is source of
truth; Codex manifest and both marketplace entries are derived via the
repo's existing generate-marketplace.sh / sync-plugins.sh tooling.

Adaptations:
- SKILL.md frontmatter description trimmed 341 -> 150 chars (sync-plugins.sh
  skips single-skill plugins whose description exceeds 250 chars).
- 3 slash commands get name: unknowns-discovery:<cmd> frontmatter and drop
  the Codex $unknowns-discovery token; $ARGUMENTS and allowed-tools kept.
- README rewritten for Claude/Codex install; auto-trigger keywords preserved.
- 7 references, 12 templates, 4 examples, 2 scripts copied verbatim.
- Codex-only files dropped (.codex-plugin/plugin.json regenerated,
  agents/openai.yaml x2, assets/*.svg) — no icon support on the Claude side.

Also sync package.json 3.6.3 -> 3.7.0 to match marketplace + plugins
(the bump scripts don't touch package.json; resolves a pre-existing drift).

Plugin count: 143 -> 144. All versions held at 3.7.0.
2026-08-06 23:41:26 +02:00
Eddie 9e1ca6496b feat(codex): add Codex CLI native marketplace support for all 142 plugins (#83)
Add .codex-plugin/plugin.json manifests for every plugin (derived from
.claude-plugin/ manifests) and .agents/plugins/marketplace.json (Codex's
standard marketplace location). Codex CLI users can now install plugins
natively via Added marketplace `claude-skills` from https://github.com/secondsky/claude-skills.git.
Installed marketplace root: /Users/eddie/.codex/.tmp/marketplaces/claude-skills.

New files:
- scripts/generate-codex-manifests.sh — derives Codex manifests from Claude
  manifests (Claude remains source of truth)
- schemas/codex-plugin.schema.json + codex-marketplace.schema.json — AJV
  validation for generated Codex artifacts
- 142 × .codex-plugin/plugin.json — one per plugin
- .agents/plugins/marketplace.json — Codex marketplace catalog

Changed:
- scripts/sync-plugins.sh — syncs .codex-plugin/ version in lockstep pass
- scripts/generate-marketplace.sh — calls generate-codex-manifests.sh after
  regenerating the Claude marketplace
- scripts/validate-json-schemas.sh — validates Codex schemas alongside Claude
- package.json — added validate:codex + generate:codex scripts
- README/CHANGELOG/CLAUDE.md/PROJECT_STRUCTURE.md — Codex CLI now ✅ Native
- Version bump 3.6.2 → 3.6.3 (all 142 plugins + both marketplaces + package.json)

Not carried into Codex: commands/ and agents/ arrays (no Codex equivalent;
use Codex /import for that). mcpServers carried through where present (3 nuxt
plugins).

Fixes stale delegate-my-work/.codex-plugin/plugin.json (was 3.4.0).
2026-08-06 17:30:58 +02:00
secondsky acc7a83f64 feat(cloudflare-nextjs): rebuild as the OpenNext Cloudflare adapter skill (v3.6.2)
Rebuild the cloudflare-nextjs plugin in place as the comprehensive OpenNext
Cloudflare adapter skill, expanded with all 20 official doc URLs + the live
GitHub issues tracker. Bump repo to v3.6.2 (lockstep).

cloudflare-nextjs plugin:
- SKILL.md: full rewrite (321 lines). Critical requirements table, quick
  start (C3 + migrate), four scripts (dev/preview/deploy/upload),
  getCloudflareContext() bindings (replaces the old process.env guidance),
  three-tier caching matrix, condensed integrations, top 8 errors, live
  GitHub open-bugs table (12 issues), refreshed feature matrix, sources
  block with all 20 doc URLs.
- plugin.json: broadened description (OpenNext-led), curated 20 keywords.
- References: rewrote/expanded 12 files.
  - open-next.config.ts: 3 tiers (SSG / small / large) + skew protection.
  - wrangler.jsonc: full small-site + large-site configs, reserved bindings.
  - caching.md (NEW): components, tiers, regional cache, purge, PPR caveat.
  - bindings-and-services.md (rebuilt from service-integration-patterns.md):
    getCloudflareContext, D1/R2/KV/AI/Hyperdrive, Drizzle/Prisma/Stripe.
  - dev-deploy-and-env.md (NEW): dual dev workflow, Workers Builds CI, env vars.
  - advanced.md (NEW): custom worker, multi-worker, skew protection, assets,
    keep_names, workerd packages, image optimization.
  - known-issues.md (NEW): DO warnings + 0.6->1.0.0-beta migration.
  - error-catalog-extended.md: 13 errors + GitHub issues cross-reference.
  - troubleshooting.md, feature-support.md, database-client-example.ts,
    package.json: aligned to getCloudflareContext + current versions.
- Scripts: setup-new-project.sh uses --platform=workers; setup-existing
  runs npx @opennextjs/cloudflare migrate.
- README: rewritten with expanded keywords + full doc URL list.

nextjs plugin (cross-references, both directions):
- SKILL.md L97/L498 + README.md L50/L195-211/L442 now name the OpenNext
  adapter explicitly and flag the proxy.ts caveat (keep middleware.ts on
  Cloudflare; issue #1277).

Repo-level (lockstep v3.6.2):
- marketplace.json metadata.version + cloudflare-nextjs entry.
- package.json.
- 140 plugin.json files stamped via scripts/sync-plugins.sh.

Compatibility: standard repo convention (.claude-plugin/plugin.json only).
Codex/Cursor/etc. install via 'npx skills add secondsky/claude-skills
--skill cloudflare-nextjs --agent codex'.

Sources: https://opennext.js.org/cloudflare (+ 19 subpages) and
https://github.com/opennextjs/opennextjs-cloudflare/issues
2026-08-05 18:05:25 +02:00
secondsky 6d7ec06212 chore(release): bump to v3.6.1 — marketplace/skills.sh docs + installer cleanup
Lockstep version bump (repo convention): package.json, all 142 plugin.json, and all 142 marketplace.json entries -> 3.6.1.

- README: accurate per-harness marketplace support table (Claude Code + ZCode native; Codex CLI + Cursor adaptation needed; opencode + Gemini CLI no marketplace); new 'Installing with skills.sh' section with verified npx skills examples and a security-scanning caveat.
- Removed dead scripts scripts/install-skill.sh and scripts/install-all.sh (targeted non-existent skills/ dir); updated 30 docs/plugins referencing them to use /plugin install (Claude Code) or npx skills add (cross-harness).
- Fixed skill-count inconsistency (139 -> 142 standardized; categories table updated).
- Fixed generate-marketplace.sh bug: hardcoded metadata.version=3.5.0 in heredoc reset the marketplace version on every regen; now syncs from plugin entries.
- Security-audit findings D-001, D-002, D-016, D-019, D-020 marked resolved (install scripts removed).
2026-08-05 16:51:17 +02:00
secondsky 8e73f2c312 chore(release): bump to v3.6.0 — dependency audit + stale-instruction modernization
Lockstep version bump (repo convention): package.json, all 142 plugin.json,
and all 142 marketplace.json entries 3.5.0 -> 3.6.0. Documents the exhaustive
dependency-version audit and stale-instruction fixes from this branch in
CHANGELOG.md, and updates the README version line.

See CHANGELOG.md [3.6.0] entry for the full breakdown: 67/142 plugins
updated, version alignment across Cloudflare/Bun/Next.js/TanStack/Nuxt/
hono/drizzle/better-auth/Hugo/WP/UI skills, Zod 3->4 and Tailwind v3->v4
instruction fixes, Cloudflare node_compat->nodejs_compat, Next 16
middleware->proxy (with OpenNext caveat), CI hardening, and the broken
gitleaks hook / audit-script repairs.
2026-08-05 00:22:26 +02:00
secondsky 55439cc913 fix(stale): add OpenNext/Cloudflare caveat to middleware->proxy.ts rename
Next.js 16 renamed middleware.ts -> proxy.ts, but @opennextjs/cloudflare does
not yet recognize the proxy.ts filename — renaming silently disables
middleware when deployed to Cloudflare Workers. Added the 'keep middleware.ts
on Cloudflare' warning to the three places the rename is taught:
- nextjs migration guide (canonical Next 16 migration instructions)
- bun-nextjs SKILL.md (Proxy section)
- cloudflare-nextjs feature-support.md (Middleware row, the Cloudflare home)
2026-08-04 23:31:18 +02:00
secondsky 156ff9e3e4 fix(stale): convert remaining z.string().email() -> z.email() examples (zod4 follow-up) 2026-08-04 02:02:18 +02:00
secondsky bbf808c113 fix(stale): Bun 1.2/1.3 follow-ups — Bun.build rejects, await server.stop(), routes note 2026-08-04 01:50:51 +02:00
secondsky 74c08bd296 fix(stale): Biome 2.x + Bun 1.3 instruction fixes — organizeImports->assist, linker default note 2026-08-04 01:46:21 +02:00
secondsky 18d8ae9e91 fix(stale): Next.js 16 instruction fixes — async cookies/headers/params, next lint removed 2026-08-04 01:22:22 +02:00
secondsky 689014f24a chore(T2): align Bun plugin — next ^16.2.0, router ^1.170.18, CF workers-types ^4.20260408.0, setup-bun@v2 2026-08-03 23:42:05 +02:00
secondsky b492b155b9 docs(security): remove secret leaks from reference examples (B13)
Defense-in-depth batch B13 — documentation/markdown-only fixes for three
findings from the secret-handling audit:

C-003 (High): better-auth Worker reference snippets logged the email
  verification token to stdout. Removed the `console.log(\`Verification
  code: ${token}\`)` line from both cloudflare-worker-drizzle.ts and
  cloudflare-worker-kysely.ts. Also dropped the companion URL log (the
  URL carries the token as a query param, so it leaks equally) and
  replaced both with a redacted stub
  `Verification email sent to <first-2-chars>***`.

C-004 (High): bun-cloudflare-workers SKILL.md taught
  `console.log(env.API_KEY)` as the way to access a Worker secret,
  contradicting the cloudflare-workers-security guidance that explicitly
  marks this as NEVER. Replaced the leaking example with an `if
  (env.API_KEY) { ... }` read and added the `// ❌ NEVER:
  console.log(env.API_KEY)` warning comment next to it.

C-009 (Medium): Hono/OAuth reference samples hardcoded JWT/session
  secrets inline. Replaced the hardcoded literals with env-var reads in:
    - hono-routing/references/middleware-catalog.md  (bearerAuth, jwt)
    - cloudflare-workers-frameworks/references/hono.md (bearerAuth, jwt)
    - oauth-implementation/references/python-java.md (Flask app.secret_key)
  Each replacement carries a `// load from env; rotate immediately if
  committed` comment and a one-line "Always load secrets from
  environment variables; never hardcode." warning above. Added `import
  os` to the Flask snippet.

Acceptance grep all return clean.
2026-07-19 18:29:42 +02:00
secondsky 34eac84e39 security(batch-b6): harden bun + nuxt-seo hooks (A-007..A-014, F-15)
Add `set -euo pipefail` + `IFS=$'\n\t'` to all 4 hook scripts, drop fragile
grep/sed JSON fallback parsers (require jq — already a hard Claude Code hook
dependency), and wrap jq invocations with `|| true` so malformed stdin never
aborts the advisory hooks.

A-007/A-011: bun hooks now require jq (no fallback), descriptions clarified
  as "advisory only — never blocks".
A-008/F-15: detect-nuxt-seo.sh env-file writes use `printf '%q'` shell
  escaping and are bracketed with sentinel markers; no bare `${MODULES[*]}`
  interpolation. Future-proofs against a malicious or contributor-sourced
  package.json.
A-009: trust-boundary comment documents that project-file values are
  untrusted, used only as fixed-string grep targets and array assignments
  from a hardcoded allowlist.
A-010: check-seo-config.sh validates FILE_PATH is under $CLAUDE_PROJECT_DIR
  before inspecting (defense against crafted tool_input paths).
A-012: every script documents it's invoked via `bash ...` so the shebang is
  informational.
A-013: awk `site:` block parser limitation documented (single-line / nested
  forms not matched; advisory env var only).
A-014: bash-patterns settings.json template no longer runs
  `env > $CLAUDE_ENV_FILE` (was dumping inherited secrets); `.envrc` source
  is now gated behind an explicit `.claude-enable-envrc` sentinel with a
  warning comment.

All PoCs pass: malformed JSON exits 0, /etc/passwd rejected by check-seo-config,
shell-injection attempt in module name neutralized by `printf '%q'`, env-file
writes round-trip cleanly, template SessionStart hook no longer touches
CLAUDE_ENV_FILE.
2026-07-19 17:08:41 +02:00
secondsky efee8ac6e9 feat(cybersecurity): add OSS-only unified cybersecurity skill (#3.5.0)
Unified OSS-only cybersecurity skill with progressive disclosure. Fills the
repo's offensive-security gap — the 5 existing security plugins are all
defensive; this adds find / analyze / threat-model coverage.

Plugin layout under plugins/cybersecurity/:
- SKILL.md: thin router + dispatcher (241 lines, sub-agent model per decision #5)
- 15 references/*.md docs, each a dispatchable sub-agent briefing
- .claude-plugin/plugin.json: registered in security category

Fuses 7 community skills ported to fully open-source tooling:
- mukul975: business-logic, XSS (DOM Invader gap acknowledged), host-header,
  open-redirect, forced-browsing
- rysweet/amplihack: cybersecurity-analyst 11-step reasoning framework
- Aradotso: security-detections-mcp (Sigma + MITRE ATT&CK, local OSS path
  recommended; hosted API documented as optional)

Integrates 20 Aradotso dev-security skills across 5 grouped docs:
- aradotso-code-audit (A1,A3,A4,A5,A6,A7,A8,A10)
- aradotso-agent-safety (F2,G3)
- aradotso-compliance (C1)
- aradotso-web-vuln-testing (D1-D4)
- aradotso-ai-security (E1-E4)

Authorization gate (ORCHESTRATION decision #3):
- Track A (always-on): static analysis, SAST, threat modeling, code review,
  detection authoring
- Track B (gated): live-target testing requires ack of authorization
  disclaimer, which runs in main context before any sub-agent dispatch
- Red-flags list refuses DoS, cred-stuffing, gov/critical-infra, SE

Cross-references (not duplicates) the 5 existing defensive plugins:
- csrf-protection, xss-prevention, vulnerability-scanning,
  security-headers-configuration, defense-in-depth-validation

Includes centralized oss-tool-map.md (Burp/Collaborator/Nessus/SonarQube/
Splunk/CrowdStrike/DOM Invader/Hackvertor/XSS Hunter -> OSS alternatives).

Other changes:
- scripts/lib/categorize.sh: add cybersecurity to security category whitelist
- scripts/generate-marketplace.sh: bump hardcoded version to 3.5.0
- Bump marketplace.json + all 142 plugin.json versions to 3.5.0
- Update README.md, MARKETPLACE.md, CHANGELOG.md, package.json
2026-07-18 18:13:42 +02:00
secondsky 224ca4f57b chore: remove 14 deprecated plugins (v3.4.0)
Removed plugins (170 → 156):
- ai: openai-api, openai-agents, openai-assistants, openai-responses,
  google-gemini-api, google-gemini-embeddings, google-gemini-file-search
- mobile: swift-best-practices, swift-settingskit
- database: supabase-postgres-best-practices, neon-vercel-postgres,
  vercel-kv, vercel-blob
- cms: sveltia-cms

Changes:
- Removed 14 plugin directories from plugins/
- Regenerated .claude-plugin/marketplace.json (170 → 156 plugins)
- Bumped marketplace version 3.3.0 → 3.4.0 (scripts/generate-marketplace.sh)
- Synced version 3.4.0 to all 156 plugin.json files via sync-plugins.sh
- Updated counts/lists in CLAUDE.md, README.md, MARKETPLACE.md,
  PROJECT_STRUCTURE.md, docs/reference/SKILL_CATEGORIZATION.md
- Updated illustrative examples in docs/guides/MARKETPLACE_MANAGEMENT.md
  and docs/guides/PLUGIN_DEV_BEST_PRACTICES.md
- Added CHANGELOG.md entry for v3.4.0

Migration: users of openai-* should switch to claude-api or ai-sdk-core.
Users of google-gemini-* should switch to gemini-cli.
2026-06-21 22:37:57 +02:00
secondsky 120edd6064 chore: standardize plugin configurations and add Socket CI/CD templates to dependency-upgrade skill 2026-05-14 15:06:23 +02:00
secondsky 8b4c60d78b chore: bump all plugins and marketplace to v3.3.0
- Bump marketplace metadata version 3.0.0 → 3.3.0
- Bump all 170 plugin.json versions 3.2.2 → 3.3.0
- Update generate-marketplace.sh hardcoded version
- Regenerate marketplace.json with updated descriptions
2026-04-29 10:18:05 +02:00
secondsky 852a9f7813 fix: resolve YAML frontmatter parse errors in 78 SKILL.md files
Fixes #60

62/211 skills had YAML frontmatter that failed to parse, causing Claude
Code to silently drop all metadata at runtime. Affected skills would
never auto-trigger based on user input.

Two failure patterns fixed:
- Pattern A (60 files): multiline description with indented Keywords
  continuation converted to YAML folded block scalar (>-)
- Pattern A variant (17 files): single-line description with colons
  wrapped in double quotes
- Pattern B (1 file): inconsistent keyword list indentation in
  tanstack-start normalized to consistent 4-space indent

Added YAML parse check to validate-frontmatter.sh using Ruby
YAML.safe_load to catch syntax errors that grep/awk structural
checks could not detect. Existing CI workflow already runs this
script on PRs and pushes.

Verification: 211/211 skills pass validation with 0 failures.
2026-04-26 22:52:38 +02:00
secondsky 2b535309b8 Dependency audit: update 75+ packages across 28 files
- Fix 3 broken version pins (non-existent versions)
- Minor bumps: ~40 updates (openai, hono, wrangler, drizzle, tanstack, etc.)
- Major bumps: React 18->19, Next.js 15->16, Vite 6->7, Zod 3->4,
  Wrangler 3->4, OpenAI v5->v6, ESLint 8/9->10
- TypeScript pinned to ^5.9.3 consistently across all 28 files
- AI SDK kept at v5 latest (^5.0.170)
- All 170 plugins bumped to v3.2.2
- Marketplace regenerated
- Root package.json: 3.0.0 -> 3.2.3
- CHANGELOG.md: added v3.2.3 entry
- README.md: updated version
- Full audit report: PACKAGE_VERSION_AUDIT.md
2026-04-08 18:54:41 +02:00
secondsky 75421faf2a fix: add license: MIT to 92 skills, correct Nitro preset naming
- Add missing license: MIT to YAML frontmatter for 92 skills (0 warnings now)
- Fix Nitro presets: cloudflare-pages -> cloudflare_pages, cloudflare-module -> cloudflare_module
- Updated across nuxt-v5 templates, commands, production skill, and deployment refs
2026-04-02 19:49:06 +02:00
secondsky 89c5e890b8 fix: validate frontmatter for all SKILL.md paths, condense nuxt-seo, fix nuxt-v5 scaffold
- Fix .githooks/pre-push grep to match root-level and nested SKILL.md
- Fix validate-frontmatter.sh find to discover all SKILL.md (not just nested)
- Add empty description validation error in validate-frontmatter.sh
- Add del(.category) to sync-plugins.sh jq filters
- Shorten dependency-upgrade description to <200 chars
- Remove false agent claims from maz-ui description
- Fix nuxt-setup.md: DB adapter from database var, add auth handlers, use packageManager
- Remove process.env/validateSecret from nuxt.config.ts template (edge compat)
- Condense nuxt-seo SKILL.md from 867→314 lines, add source links for issues #11-#14
- Fix unscoped package names: nuxt-robots→@nuxtjs/robots, nuxt-sitemap→@nuxtjs/sitemap
- Add fence language tags to nuxt-setup, performance.md, testing-vitest, staged-upgrades
- Fix nuxt-ui-v4 Dashboard component count (10, not 11)
- Scope CI workflow to changed files for PRs, full validation on push to main
2026-04-02 19:12:22 +02:00
secondsky 5af43b4e81 fix: sync-plugins.sh and validate-frontmatter.sh for multi-skill plugins
- scan_agents/scan_commands return empty string instead of "null",
  so agents/commands fields are omitted (not null) in plugin.json,
  fixing JSON schema validation failures for 153 plugins
- Multi-skill jq merge uses del(.agents)/del(.commands) to remove
  stale null values from existing plugin.json files
- validate-frontmatter.sh --dir scans skills/*/SKILL.md instead of
  hardcoded skills/<plugin-name>/SKILL.md, supporting multi-skill
  plugins (bun, cloudflare-workers, nuxt-v4, nuxt-v5)
- validate-frontmatter.sh --dir validates ALL sub-skills, not just
  the first one
- Restore missing categorize_skill call for multi-skill plugins
2026-04-02 17:36:24 +02:00
secondsky aed72e991b fix: correct API inaccuracies and sync multi-skill plugins
- Fix defineLazyHydrationComponent signature to (strategy, source)
  per Nuxt 5 docs in nuxt-production SKILL.md
- Fix broken TOC anchors in modules-overview.md and server.md
- Fix manualChunks -> advancedChunks for Rolldown in nuxt-setup.md
  and nuxt.config.ts; remove no-op optimizeDeps.include
- Fix scoped package names (@nuxtjs/robots, @nuxtjs/sitemap) in
  nuxt-seo install commands and modules array
- Fix Bun install/uninstall commands in installation-guide.md
- Fix regex test-before-replace bug in staged-upgrades.md
- Fix useAuth.ts to clear auth state when session user is missing
- Fix chat-components model string (period -> hyphen)
- Fix typo "pnnpm" -> "pnpm" in dependency-upgrade SKILL.md
- Fix relative path in advanced-seo-guides.md
- Shorten nuxt-seo SKILL.md description to <100 chars
- Update nuxt-ui-v4 version 3.1.0 -> 3.2.1
- Update Next.js 15 Node.js requirement to >=20.9
- Fix Tailwind v4 migration bullets and npmrc CLI version
- Remove static LTS dates from Node.js compatibility table
- Update "Nuxt 4" -> "Nuxt 5" across nuxt-v5 plugin references
- Remove stray placeholder in nuxt-v4-features.md
- Add missing ref() import in testing-vitest mock example
- Update sync-plugins.sh to support multi-skill plugins (bun,
  cloudflare-workers, nuxt-v4, nuxt-v5) by detecting skills/*/SKILL.md
  instead of requiring root SKILL.md; preserve extra plugin.json
  fields (mcpServers, homepage) via jq merge for multi-skill plugins
- Sync all 170 plugins including 4 previously-skipped multi-skill plugins
2026-04-02 17:16:45 +02:00
secondsky 8229be153c fix(bun): Correct JSON field paths in hook scripts
The bun plugin hooks were failing because they used incorrect JSON
field paths. Claude Code sends hook input with nested structure
`{input: {command: "..."}}` but the scripts were extracting from
the root level `.command`.

Changes:
- validate-bun-command.sh: .command → .input.command
- bun-suggestions.sh: .command → .input.command
- Added defensive fallbacks for exit_code/output fields
- Changed missing command handling from error to graceful skip

Fixes hook errors: "Failed to extract 'command' from JSON input"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 13:12:32 +01:00
secondsky 952cbbd8c7 fix: Update bun plugin hooks.json to match current schema
- Wrap PreToolUse and PostToolUse events in top-level 'hooks' object
- Add description field for better documentation
- Fix schema validation error: "Expected: object at path ['hooks']"
- Matches official hooks.json structure used by other plugins

Errors prevented: 1 (schema validation failure)
Production tested: Validated against working nuxt-seo plugin structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-29 22:54:56 +01:00
secondsky 02160344ff refactor: Standardize command naming to plugin:commandname pattern
Standardized all 65 command names across 17 plugins to follow consistent
pluginname:commandname naming convention for better discoverability and
conflict prevention.

Changes:
- Updated 58 plugin command frontmatter with namespaced names
- Added frontmatter to 7 project-workflow commands
- Updated 3 SKILL.md documentation references
- Regenerated marketplace.json (173 plugins)

Key Updates:
- cloudflare-d1: d1-setup → cloudflare-d1:setup
- better-auth: better-auth-setup → better-auth:setup
- nuxt-ui-v4: nuxt-ui:setup → nuxt-ui-v4:setup (fixed wrong plugin name)
- nuxt-seo: seo-audit → nuxt-seo:audit

Removed redundant prefixes where namespace already indicates context:
- better-auth-setup → better-auth:setup
- seo-audit → nuxt-seo:audit
- d1-setup → cloudflare-d1:setup

Exceptions (no changes):
- 7 root commands kept global (no namespace)
- 1 feature-dev command (single-command plugin exception)

Benefits:
- Consistent namespace pattern across all commands
- No command name collisions between plugins
- Clear plugin ownership for each command
- Compliance with Claude Code plugin standards

Stats: 65 files updated (58 renamed + 7 added frontmatter)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-29 17:30:24 +01:00
secondsky 2cbc8ed46b feat: Add multi-skill plugin support and restructure Nuxt plugins
Major Changes:
- Split nuxt-v4 plugin into 4 specialized skills (nuxt-core, nuxt-data, nuxt-server, nuxt-production)
- Add new bun plugin with comprehensive TypeScript tooling support
- Enhanced nuxt-seo and nuxt-ui-v4 plugins with additional reference documentation
- Remove deprecated playwright-testing plugin (consolidated into main playwright skill)
- Update marketplace generation script to support multi-skill plugins

Plugin Changes:
- nuxt-v4: Restructured into 4 focused skills for better discoverability
- nuxt-seo: Added 8 reference docs (SEO guides, AI tools, OG images, etc.)
- nuxt-ui-v4: Added 6 component reference docs (chat, dashboard, editor, etc.)
- bun: New plugin with agents, commands, and comprehensive skill documentation

Technical Improvements:
- Updated generate-marketplace.sh to handle plugins with multiple skills
- Added .mcp.json configuration files for MCP integration
- Enhanced skill templates and reference organization
- Improved README documentation across all modified plugins

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-29 01:33:25 +01:00
secondsky 3ce71480f6 fix: Remove invalid 'category' field from 6 plugin.json files
- Removed 'category' field from plugin.json files (not part of official schema)
- Affected plugins: better-auth, bun, cloudflare-r2, cloudflare-turnstile, nuxt-studio, nuxt-ui-v4
- Category field only belongs in marketplace.json, not individual plugin.json files
- Fixes validation error: 'Unrecognized key(s) in object: category'

Per official plugin-dev:plugin-structure documentation:
- Allowed fields: name, version, description, author, homepage, repository, license, keywords, commands, agents, hooks, mcpServers
- NOT allowed: category

Note: sync-plugins.sh correctly excludes category from plugin.json generation.
These were leftover artifacts from manual creation or older processes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:00:20 +01:00