{"_id":"@commercetools-demo/commercetools-ai-plugin-sdd","_rev":"3-b5578215ff30571cd56b101f1ba27495","name":"@commercetools-demo/commercetools-ai-plugin-sdd","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@commercetools-demo/commercetools-ai-plugin-sdd","version":"0.1.0","keywords":["commercetools","spec-driven-development","spec-kit","openspec","agent-skills","claude-code"],"author":{"name":"commercetools"},"license":"MIT","_id":"@commercetools-demo/commercetools-ai-plugin-sdd@0.1.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"homepage":"https://github.com/commercetools/commercetools-ai-plugins#readme","bugs":{"url":"https://github.com/commercetools/commercetools-ai-plugins/issues"},"bin":{"ct-sdd":"bin/ct-sdd.mjs"},"dist":{"shasum":"a7d5b57db05ee89c9066d7c77df251662c84e30a","tarball":"https://registry.npmjs.org/@commercetools-demo/commercetools-ai-plugin-sdd/-/commercetools-ai-plugin-sdd-0.1.0.tgz","fileCount":12,"integrity":"sha512-qgwzij22pF11Z2FodCU4noMek4oi15eKXb41GlEXpkoc2dGX31yMPvRB7QgLynE7E5aNeSqXR1K73myg324qag==","signatures":[{"sig":"MEYCIQDwy1+wsBvNCjdu2oieJY1wHaFXypa+tlfXlgjz5NlO2gIhAJtYIbCEs0KG5PI10GOtZUHj/XdGulBu/X6LL7aB16zg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25123},"type":"module","engines":{"node":">=18"},"gitHead":"f2d4e935857ba4189cb2b3118349e1ed294bbf3c","scripts":{"test":"node --test"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"repository":{"url":"git+https://github.com/commercetools/commercetools-ai-plugins.git","type":"git"},"_npmVersion":"10.9.4","description":"Overlay installer that wires commercetools skills into GitHub Spec Kit and OpenSpec projects deterministically — without forking either framework.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/commercetools-ai-plugin-sdd_0.1.0_1784566533154_0.1678733096238707","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@commercetools-demo/commercetools-ai-plugin-sdd","version":"0.2.0","keywords":["commercetools","spec-driven-development","spec-kit","openspec","agent-skills","claude-code"],"author":{"name":"commercetools"},"license":"MIT","_id":"@commercetools-demo/commercetools-ai-plugin-sdd@0.2.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"homepage":"https://github.com/commercetools/commercetools-ai-plugins#readme","bugs":{"url":"https://github.com/commercetools/commercetools-ai-plugins/issues"},"bin":{"ct-sdd":"bin/ct-sdd.mjs"},"dist":{"shasum":"538883b4161604b679c9aacaf1c4c7bbb1048bba","tarball":"https://registry.npmjs.org/@commercetools-demo/commercetools-ai-plugin-sdd/-/commercetools-ai-plugin-sdd-0.2.0.tgz","fileCount":14,"integrity":"sha512-wuChwgVG8IVQ1UW+Bp4kOr9rlIYjQEaD1FB8Z85svukn6CbehmdTp3gK3sYoVjTZe8FHKACyE0MOjLWB6lgIDg==","signatures":[{"sig":"MEQCICpJkAaY2aR/iY89P/oZ52wd93njGYwPXx1lEzNhIx8DAiA6PA1OlDysa91povbP8uA19KyC0WHsGxVdxWfRX8izkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29973},"type":"module","engines":{"node":">=18"},"gitHead":"efe2795b60ef0297ba04dd249fa9af099a4be03e","scripts":{"test":"node --test"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"repository":{"url":"git+https://github.com/commercetools/commercetools-ai-plugins.git","type":"git"},"_npmVersion":"10.9.4","description":"Overlay installer that wires commercetools skills into GitHub Spec Kit and OpenSpec projects deterministically — without forking either framework.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/commercetools-ai-plugin-sdd_0.2.0_1785159419610_0.9678775656994885","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@commercetools-demo/commercetools-ai-plugin-sdd","version":"0.3.0","description":"Overlay installer that wires commercetools skills into GitHub Spec Kit and OpenSpec projects deterministically — without forking either framework.","type":"module","bin":{"ct-sdd":"bin/ct-sdd.mjs"},"scripts":{"test":"node --test"},"engines":{"node":">=18"},"keywords":["commercetools","spec-driven-development","spec-kit","openspec","agent-skills","claude-code"],"license":"MIT","author":{"name":"commercetools"},"repository":{"type":"git","url":"git+https://github.com/commercetools/commercetools-ai-plugins.git"},"_id":"@commercetools-demo/commercetools-ai-plugin-sdd@0.3.0","gitHead":"2328b6160317f31149b7a637c8633b9521483dce","bugs":{"url":"https://github.com/commercetools/commercetools-ai-plugins/issues"},"homepage":"https://github.com/commercetools/commercetools-ai-plugins#readme","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-Ogye61Z8DfF+qMb0mrm+L1RnXLqCE/9LRDosXyw0hQexOaHDtW0QNqFnrqArwqDx53YlcNqd9/5UF06og9u9Vw==","shasum":"a0e939eec77ecea39d5f1dbd1241d3f415d07813","tarball":"https://registry.npmjs.org/@commercetools-demo/commercetools-ai-plugin-sdd/-/commercetools-ai-plugin-sdd-0.3.0.tgz","fileCount":12,"unpackedSize":25122,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC9Rax/gf4F2M3mcRNl6f192kyyxDq6QNdpZpeppPfQnwIgK51dBL9gCv/cL5p18cgUOwbo47GpRbfWmO3/p7Ayx98="}]},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"directories":{},"maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/commercetools-ai-plugin-sdd_0.3.0_1785772502038_0.6436679301836623"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-20T16:55:33.017Z","modified":"2026-08-03T15:55:02.369Z","0.1.0":"2026-07-20T16:55:33.318Z","0.2.0":"2026-07-27T13:36:59.754Z","0.3.0":"2026-08-03T15:55:02.211Z"},"bugs":{"url":"https://github.com/commercetools/commercetools-ai-plugins/issues"},"author":{"name":"commercetools"},"license":"MIT","homepage":"https://github.com/commercetools/commercetools-ai-plugins#readme","keywords":["commercetools","spec-driven-development","spec-kit","openspec","agent-skills","claude-code"],"repository":{"type":"git","url":"git+https://github.com/commercetools/commercetools-ai-plugins.git"},"description":"Overlay installer that wires commercetools skills into GitHub Spec Kit and OpenSpec projects deterministically — without forking either framework.","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"readme":"# @commercetools/commercetools-ai-plugin-sdd\n\nKeep vanilla Spec Kit / OpenSpec — this overlay wires in commercetools skills deterministically.\n\nIt patches a **spec-driven development** project (GitHub Spec Kit or OpenSpec) so\nthat any spec, plan, or task touching commercetools reliably loads the right\n`commercetools-*` skill at the right phase — without forking either framework.\n\n## Quick start\n\n```bash\n# in a project already initialized with `specify init` or `openspec init`:\nnpx @commercetools/commercetools-ai-plugin-sdd init\n```\n\nThat's it. The overlay detects which framework(s) are present and applies its\nmarker blocks. Re-running is safe (idempotent), and `remove` restores the project\nexactly.\n\n## Commands\n\n```\nct-sdd init    [--framework speckit|openspec] [--dry-run] [--pin <version>]\nct-sdd remove  [--framework speckit|openspec] [--dry-run]\nct-sdd status  [--framework speckit|openspec]\n```\n\n- `--framework` — act on only one framework (default: every one detected).\n- `--dry-run` — print what would change, write nothing.\n- `--pin <version>` — abort unless the bundled overlay matches `<version>`. The\n  overlay content is pinned by the package version, so pin by installing a\n  specific package version (`...@0.1.0`); this flag guards against using the\n  wrong one.\n- `--cwd <dir>` — operate in `<dir>` instead of the current directory.\n\nDetection: `.specify/` → Spec Kit, `openspec/` → OpenSpec.\n\n## What it patches\n\nEvery change is wrapped in removable marker blocks — nothing outside the markers\nis ever rewritten.\n\n**Spec Kit** (`.specify/`)\n| File | Block | Effect |\n|---|---|---|\n| `.specify/memory/constitution.md` | `platform-skills-constitution` | Adds the three platform-skill articles (skill resolution, task annotation, no unverified API surface). |\n| `.specify/templates/plan-template.md` | `platform-skills-resolution` | Adds a required **Platform Skills Resolution** section the agent fills during `/speckit.plan`. |\n| `.specify/templates/tasks-template.md` | `task-skill-annotation` | Extends the task grammar so each task carries a `[SKILL: <name>]` token, read at implement time. |\n\n**OpenSpec** (`openspec/`)\n| File | Block | Effect |\n|---|---|---|\n| `openspec/config.yaml` | `platform-skills-conventions` | Adds a `context:` block + per-artifact `rules:` (proposal, tasks) that select the matching `commercetools-*` skill and annotate commercetools tasks. |\n\nThe load-bearing mechanism is the **template patch**: because `tasks.md` is\nre-read task-by-task during implementation, the `[SKILL: …]` token is physically\nin context at the moment code is written — no reliance on skill-triggering luck.\n\n## Marker convention\n\n```\n<!-- ct-sdd:begin v=1 id=<slug> -->\n…injected content…\n<!-- ct-sdd:end id=<slug> -->\n```\n\nYAML files (`config.yaml`) use `#`-comment markers wrapping real YAML keys. The\ninstaller anchors each block to a named section when it can, and appends at\nend-of-file otherwise. Re-running `init` replaces a block in place (keyed by\n`id`); `remove` strips blocks by marker and restores the file byte-for-byte.\n\n## Uninstall\n\n```bash\nnpx @commercetools/commercetools-ai-plugin-sdd remove\n```\n\n## Caveats\n\n- **OpenSpec `config.yaml`.** The overlay appends real `context:` and `rules:`\n  keys. If your `config.yaml` already defines those keys *outside* the ct-sdd\n  markers, merge them by hand — the installer will not silently overwrite your\n  values (they'd become duplicate YAML keys; run `status` and reconcile).\n- **Upstream template churn.** If Spec Kit renames a section the overlay anchors\n  to, `init` still succeeds by appending at end-of-file and prints a warning. The\n  nightly drift canary (`scripts/canary.mjs`, run in CI against the latest upstream\n  `specify init` / `openspec init`) turns that warning into a red build so it is\n  fixed before it reaches you. Never pin your Spec Kit/OpenSpec version to this\n  overlay — pin only the overlay.\n\n## Development\n\n```bash\nnode --test                                   # unit tests\nnode scripts/canary.mjs <projectDir> <framework> # drift check against a real project\n```\n","readmeFilename":"README.md"}