{"ref":"artifact:fermeregali-cap-mtx-scaffold","page":"/artifacts/fermeregali-cap-mtx-scaffold","json":"/artifacts/fermeregali-cap-mtx-scaffold.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"fermeregali-cap-mtx-scaffold","name":"cap-mtx-scaffold","artifact_type":"skill","ecosystem":"cap","domain":"ai-and-agents","origin_ring":"independent","description":{"one_line":"An agent skill for CAP [multitenancy](capability:multitenancy) scaffolding that reads what a project already declares before it runs a single `cds` command.","short":"Agent skill for CAP multitenancy scaffolding","what_it_solves":"It runs `scripts/detect-env.sh` first and then picks one of three flows from what it found. On a greenfield project it asks which `@sap/cds` major version to target, defaulting to the newest one on the machine rather than an invented number, and runs `cds init`, `cds add multitenancy` and `cds add <db-kind>`. On a project already using [@sap/cds-mtxs](artifact:sap-cds-mtxs) it reads the versions declared in `package.json` and pins every [@sap/cds-dk](artifact:sap-cds-dk) call to exactly those with `npx --package=@sap/cds-dk@<version>`, so it cannot fall into an upgrade. On a project still on the deprecated `@sap/cds-mtx` it warns, stops for a decision, and offers either code compatible with the legacy setup or a pointer to SAP's migration guide. The skill is a markdown instruction file symlinked into an agent's skills folder, and the repository states there is no automated test harness: verification is manual, against fixture projects outside the repository.","when_not_to_use":"Local scaffolding only. Its own Out of Scope list names deployment to Cloud Foundry or Kyma, XSUAA and IAS configuration or any other BTP service binding, the SaaS Registry and subscription flow to real tenants, and automatic migration from the legacy `@sap/cds-mtx`. For the concepts rather than the scaffolding step, the README points at the `multitenancy` skill in [skillOverflow](artifact:dankromp-skilloverflow) by [Daniel Krompaß](actor:dankromp), which covers the MTX sidecar, `xs-security.json`, tenant lifecycle hooks and the deployment path and runs no commands at all."},"links":{"repo":"https://github.com/fermeregali/cap-mtx-scaffold"},"type_properties":{"distribution":{"value":["copy"],"sources":[{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README","checked":"2026-10-18","quote":"copy or symlink the skill into whichever agent(s) you use"}]}},"identity":{"author":"Fernando Meregali Xavier","license":"Apache-2.0"},"agent":{"source":{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README, Quickstart","checked":"2026-10-09","quote":"ln -s \"$(pwd)/cap-mtx-scaffold/skills/cap-mtx-scaffold\" ~/.claude/skills/cap-mtx-scaffold"},"install":"git clone <this-repository-url>\nmkdir -p ~/.claude/skills\nln -s \"$(pwd)/cap-mtx-scaffold/skills/cap-mtx-scaffold\" ~/.claude/skills/cap-mtx-scaffold"},"skills":{"provenance":"indexed","kind":"capability","canonical_source":"https://github.com/fermeregali/cap-mtx-scaffold"},"requires":[{"ref":"artifact:sap-cds-dk","for":"The scaffolding step is the real `cds init` and `cds add` commands, invoked either from a global install or through npx pinned to the version the project declares.","requirement":"required","sources":[{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README, Quickstart requirements","checked":"2026-10-09","quote":"**Requirements:** Node.js + npm, `@sap/cds-dk` (global install or resolvable via `npx`), git, and a bash-capable shell"}]},{"ref":"external:nodejs","for":"The detection script and every scaffolding command run through Node and npm on the developer's own machine.","requirement":"required","sources":[{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README, Quickstart requirements","checked":"2026-10-09","quote":"**Requirements:** Node.js + npm, `@sap/cds-dk` (global install or resolvable via `npx`), git, and a bash-capable shell"}]}],"provides":[{"capability":"capability:agent-guidance","what_it_does":"Encodes a detect-first, execute-second scaffolding practice for CAP multitenancy, so an agent reads the project's declared versions instead of the ones in its training data, and stops rather than migrating a legacy toolkit on its own.","sources":[{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README","checked":"2026-10-09","quote":"encoding a detect-first, execute-second scaffolding practice so every developer gets a consistent, correct local setup without having to remember the exact `cds-dk` incantations themselves"},{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README, rationale","checked":"2026-10-09","quote":"an AI agent that hardcodes versions from its training data — or falls back to whatever `cds-dk` happens to be globally installed — can silently scaffold a project against the wrong toolchain"},{"url":"https://github.com/fermeregali/cap-mtx-scaffold","title":"cap-mtx-scaffold — README, What It Does","checked":"2026-10-09","quote":"It never migrates automatically, and never touches the project's existing multitenancy wiring."}]}],"provenance":{"discovered_via":[{"source":"source:sap-ai-skills-library","channel":"skills.cloud.sap"}],"first_seen":"2026-10-09"},"history":[{"date":"2026-10-09","field":"entry","from":null,"to":"created","reason":"A new repository in the SAP AI Skills Library registry snapshot of 2026-10-09, registering one skill at skills/cap-mtx-scaffold. Written from the repository's own README; hard rule 7: skills are indexed, never authored here. No flavor is stated: the repository badge reads SAP CAP Node.js and the toolkits it names are Node ones, but no sentence states a flavor, so the entry says nothing rather than inferring node."}],"drafted_with_ai":true,"maintainers":["actor:fermeregali"],"contributors":["actor:fermeregali"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-08, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 6 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":2,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":2,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-08-25","license_spdx":"Apache-2.0","org_owned":false,"default_branch":"main","created_at":"2026-08-25T17:13:46Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":6273,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2026-08-25","last_commit":"2026-08-25","commits":2,"contributors":1,"readme_path":"README.md","readme_sha":"0ebb6fc932ace31bce9b2b6a203facb8403a2963","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:fermeregali","name":"Fernando Meregali Xavier","json":"/actors/fermeregali.json"}],"contributors":[{"ref":"actor:fermeregali","name":"Fernando Meregali Xavier","json":"/actors/fermeregali.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}