{"_id":"@dennisrongo/dsh-skills","_rev":"2-847e304ceac886520db92fa946c52d6c","name":"@dennisrongo/dsh-skills","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dennisrongo/dsh-skills","version":"0.1.0","license":"MIT","_id":"@dennisrongo/dsh-skills@0.1.0","maintainers":[{"name":"dennisrongo","email":"dennis@menacestudio.com"}],"homepage":"https://github.com/dennisrongo/dsh-plugins/tree/main/plugins/dsh-skills#readme","bugs":{"url":"https://github.com/dennisrongo/dsh-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"9f6494b247b250c37554976850727feba69eb945","tarball":"https://registry.npmjs.org/@dennisrongo/dsh-skills/-/dsh-skills-0.1.0.tgz","fileCount":4,"integrity":"sha512-cXKKzZpdj6WiYe7LHwp+Eu9XlctbRJBhDUoVbOJlVsq1TvljcfXKhtlJ1RsYXwnWBcsxkDqoIMlnBDnYapVQlA==","signatures":[{"sig":"MEUCIHZIUG/L2N90A4HvScyA8NU3dkU0BqWL3Tsp91O3BDHJAiEA5HnO5hXOgScz78sa+xHN1z3LoL34cESwl9L2YOYLGXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dennisrongo%2fdsh-skills@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16909},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./package.json":"./package.json"},"gitHead":"b32d51aabe4728768a0cfa50a1ed37b66b40d2d0","_npmUser":{"name":"dennisrongo","email":"dennis@menacestudio.com"},"repository":{"url":"git+https://github.com/dennisrongo/dsh-plugins.git","type":"git","directory":"plugins/dsh-skills"},"_npmVersion":"10.9.8","description":"Serves the @dennisrongo/skills library to dsh as a skill provider: the whole catalog installs and updates as one npm dependency","directories":{},"_nodeVersion":"22.23.2","dependencies":{"yaml":"^2.8.1","@dennisrongo/skills":"^0.16.1"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-skills_0.1.0_1787942782598_0.5938299744822058","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"@dennisrongo/dsh-skills@0.1.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"bugs":{"url":"https://github.com/dennisrongo/dsh-plugins/issues"},"dist":{"shasum":"489eaa929eecce753408fe4f47009db565ef10fb","tarball":"https://registry.npmjs.org/@dennisrongo/dsh-skills/-/dsh-skills-0.1.1.tgz","fileCount":4,"integrity":"sha512-1UQsmZfwJx7A5y4E3e3xwjWj+/xReeXGa2a57MOQEnc91NMd6z/+a58zFFVL123U3uocSIm0H8oLpWQWIQVTnA==","signatures":[{"sig":"MEUCIF04cf7HZwyq/2V6pTe+l+fjRDack4OWWgU/zsC2Mh3sAiEAwn2LVDw0JLl2MSttpOUSLmstkaXwfC0naZkL3A6pLCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICopWWnwwW/a+4B8/ntPPD6BBOwEG9wVCCcBMdtctmO8AiEA1zyBeIfCdD2Ra5r3Ay8CFKPT/LIS20P2JwH3ICF9WcQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dennisrongo%2fdsh-skills@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17465},"main":"lib/index.js","name":"@dennisrongo/dsh-skills","type":"module","author":{"url":"https://www.youtube.com/@codingmenace","name":"Dennis Rongo"},"exports":{".":"./lib/index.js","./package.json":"./package.json"},"gitHead":"e3786cf6b1cf7a267fb5d1b97186cbc3aa4124d3","license":"MIT","scripts":{"test":"node test/smoke.mjs"},"version":"0.1.1","_npmUser":{"name":"dennisrongo","email":"dennis@menacestudio.com"},"homepage":"https://github.com/dennisrongo/dsh-plugins/tree/main/plugins/dsh-skills#readme","keywords":["ai-coding-agent","claude-code-alternative","deepseek-harness","dsh","dsh-plugin"],"repository":{"url":"git+https://github.com/dennisrongo/dsh-plugins.git","type":"git","directory":"plugins/dsh-skills"},"_npmVersion":"10.9.8","description":"Serves the @dennisrongo/skills library to dsh as a skill provider: the whole catalog installs and updates as one npm dependency","directories":{},"maintainers":[{"name":"dennisrongo","email":"dennis@menacestudio.com"}],"_nodeVersion":"22.23.2","dependencies":{"yaml":"^2.8.1"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/schemastery":"^3.18.1"},"optionalDependencies":{"@dennisrongo/skills":"^0.16.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-skills_0.1.1_1789592561160_0.1487468639901699"}}},"time":{"created":"2026-08-28T18:46:22.486Z","modified":"2026-09-16T21:02:41.901Z","0.1.0":"2026-08-28T18:46:22.749Z","0.1.1":"2026-09-16T21:02:41.455Z"},"bugs":{"url":"https://github.com/dennisrongo/dsh-plugins/issues"},"license":"MIT","homepage":"https://github.com/dennisrongo/dsh-plugins/tree/main/plugins/dsh-skills#readme","repository":{"url":"git+https://github.com/dennisrongo/dsh-plugins.git","type":"git","directory":"plugins/dsh-skills"},"description":"Serves the @dennisrongo/skills library to dsh as a skill provider: the whole catalog installs and updates as one npm dependency","maintainers":[{"name":"dennisrongo","email":"dennis@menacestudio.com"}],"readme":"# dsh-skills\n\n[![npm](https://img.shields.io/npm/v/@dennisrongo/dsh-skills)](https://www.npmjs.com/package/@dennisrongo/dsh-skills)\n\n**npm:** [`@dennisrongo/dsh-skills`](https://www.npmjs.com/package/@dennisrongo/dsh-skills) ·\n**source:** [dennisrongo/dsh-plugins](https://github.com/dennisrongo/dsh-plugins/tree/main/plugins/dsh-skills)\n\nServes the [`@dennisrongo/skills`](https://www.npmjs.com/package/@dennisrongo/skills) library\nto dsh as a skill provider, so the whole catalog installs and updates as **one npm\ndependency**.\n\n> Mind the scope. The **unscoped** `dsh-skills` on npm is an unrelated plugin by another\n> author, so `add dsh-skills` fetches theirs, not this one.\n\n```bash\ndsh plugin --profile <name> add @dennisrongo/dsh-skills\n```\n\nThat is the entire install. The library ships as this plugin's own dependency, so there is no\nclone to make, no directory to create, and nothing to link.\n\n## Why a plugin and not a link script\n\nSkills are normally dropped into `<agentsHome>/skills` and discovered from there. That works\nwell for keeping an **already installed** catalog fresh — which is what\n`scripts/link-superpowers-skills.mjs` does for a superpowers clone — but it is not an install\npath: it presumes `~/.agents/skills` exists, and nothing in the harness creates it. A missing\nroot is discovered as an *empty list, not an error*, so a fresh machine gets a silently empty\ncatalog and no diagnostic.\n\nMaking the library an npm dependency of a plugin moves the whole problem into pnpm, which\nalready solves it.\n\n## Updating\n\n```bash\n# what is behind, across the whole profile\ndsh plugin --profile <name> outdated\n\n# newest CATALOG (the usual case — skills changed, plugin did not)\ndsh plugin --profile <name> update @dennisrongo/skills\n\n# newest PLUGIN (provider logic changed)\ndsh plugin --profile <name> update @dennisrongo/dsh-skills\n\n# check what is out there first\nnpm view @dennisrongo/skills version\n```\n\nthen restart the profile. `dsh plugin` is a thin pnpm forwarder, so every pnpm subcommand\nworks. The plugin declares `@dennisrongo/skills: ^0.16.0`, so skills move with a normal\ndependency bump and the plugin only needs a release for a major.\n\nYou will see this on install — it is orientation, not a fault:\n\n> `warning: @dennisrongo/skills declares no dsh.bundle — installed as a plain dependency`\n\nThe library is a plain library; only the plugin is a bundle.\n\n## Pointing it at a clone\n\nContributors editing skills can bypass the packaged copy entirely. Resolution order, first\nhit wins:\n\n1. `skillsRoot` in the profile's `cordis.patch.yml`\n2. the `DSH_SKILLS_ROOT` environment variable\n3. this plugin's own `@dennisrongo/skills` dependency\n4. a probe of common clone locations under `$HOME`\n\n```yaml\n# <profile>/cordis.patch.yml — a bare id: CONFIGURES the self-mounted row\n- id: skills\n  config:\n    skillsRoot: /absolute/path/to/claude-skills\n```\n\nBodies are read when the catalog is collected, so edits under a clone land without\nreinstalling. If nothing resolves, the plugin warns naming every knob and registers nothing —\ndsh still boots.\n\n## Config\n\n| key | default | meaning |\n|---|---|---|\n| `skillsRoot` | `\"\"` → resolved (see above) | root containing `skills/<name>/SKILL.md` |\n| `enabled` | `true` | set false for a clean-baseline profile |\n\n## Precedence\n\nSkills register into the profile's global layer, which every agent preset sees. A **nearer\nlayer wins outright**, so a project's own `.dsh/skills` still shadows a library skill of the\nsame name — the library is a baseline, not an override.\n\n## Known upstream defect\n\n5 of the 31 skills in `@dennisrongo/skills@0.16.0` — `code-review`, `e2e-verify`,\n`maestro-mobile-test`, `nextjs-app-router`, `task-executor` — have frontmatter that is not\nvalid YAML: an unquoted `description` containing a literal `\": \"` parses as a nested mapping.\nThey are skipped with a warning.\n\nThis is upstream in `dennisrongo/claude-skills`, not in this plugin: dsh's own\n`skill-filesystem` provider uses the same parser and drops them identically. Quoting or\nfolding those descriptions upstream fixes it, and the plugin picks them up on the next\n`update` with no change here.\n\n## Notes\n\n- The folder is `plugins/dsh-skills` but the package is `@dennisrongo/dsh-skills`. Mind the\n  scope: the **unscoped** `dsh-skills` on npm is an unrelated plugin by another author, so\n  `add dsh-skills` fetches theirs, not this one.\n- `@deepseek-ai/cordis` and `@deepseek-ai/schemastery` are peers supplied by your dsh\n  install; `yaml` is a real dependency because `scripts/anchor.mjs` only anchors\n  `@deepseek-ai/*`.\n\n---\n\n## About the author\n\nPlugins and walkthroughs on [YouTube @codingmenace](https://www.youtube.com/@codingmenace) —\nI build AI coding tools in public, including DeepSeek Harness itself. More at\n[dennisrongo.com](https://dennisrongo.com/).\n","readmeFilename":"README.md","keywords":["ai-coding-agent","claude-code-alternative","deepseek-harness","dsh","dsh-plugin"],"author":{"url":"https://www.youtube.com/@codingmenace","name":"Dennis Rongo"}}