skills/new-app/SKILL.md
Scaffold a new Cumulocity application using the @c8y/websdk Angular schematic without human interaction. Covers Angular CLI installation, app generation, schematic setup, AI tools configuration, dev server, and build commands. Triggers: new app, scaffold, create application, ng add websdk, setup cumulocity app, new cumulocity project.
npx skillsauth add cumulocity-iot/cumulocity-skills new-appInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The @c8y/websdk Angular schematic scaffolds a custom Cumulocity application and wires it
into the platform. This skill produces all CLI commands needed to go from zero to a running
dev server without any interactive prompts.
Install the Angular 20 CLI globally:
npm install @angular/cli@v20-lts -g
Why Angular 20? The
@c8y/websdkschematic currently targets Angular 20.
Use these flags to avoid any interactive prompts:
ng new <appName> \
--style=less \
--routing=true \
--ssr=false \
--skip-git=true \
--package-manager=pnpm \
--interactive=false \
--defaults
| Flag | Purpose |
|---|---|
| --style=less | LESS stylesheets (required by Cumulocity component styles) |
| --routing=true | Angular Router module pre-configured |
| --ssr=false | No server-side rendering (not supported by the platform) |
| --skip-git=true | Skip git init (manage VCS separately) |
| --package-manager=pnpm | Use pnpm (preferred; faster installs, better deduplication) |
| --interactive=false | Fully non-interactive — no prompts |
| --defaults | Accept all remaining defaults |
Navigate into the new directory:
cd <appName>
@c8y/websdkCheck available dist-tags on npm to find the right version:
npm dist-tags @c8y/websdk
Common dist-tags:
| Tag | Meaning |
|---|---|
| latest | Current stable release |
| y2026-lts | 2026 Long-Term Support line |
| y2025-lts | 2025 Long-Term Support line |
| next | Pre-release / RC channel |
Pass the tag directly to ng add:
ng add @c8y/websdk@y2026-lts
Or pin to an exact version:
ng add @c8y/[email protected]
Use --application + --skip-confirmation to bypass all prompts:
ng add @c8y/websdk@y2026-lts \
--application=@c8y/<appName>@<version> \
--skip-confirmation
Where:
<appName> must be one of (sorted by highest priority): sample-plugin,application,cockpit,tutorial,administration,codex,devicemanagement, hybrid, package-blueprint<version> is the exact package version from npm (e.g. 1023.14.160) — resolve it with npm view @c8y/websdk@<dist-tag> versionExample — cockpit base at 2026-lts:
ng add @c8y/websdk@y2026-lts \
--application=@c8y/[email protected] \
--skip-confirmation
The schematic can write curated Cumulocity Web SDK guidelines into your project for AI coding assistants. This step is optional but strongly recommended.
Passing --skip-confirmation skips AI tool setup automatically:
ng add @c8y/websdk@y2026-lts --application=@c8y/cockpit@$(npm view @c8y/websdk@y2026-lts version) --skip-confirmation
Use the --ai-tools flag with a comma-separated list of tool names:
ng add @c8y/websdk --ai-tools=claude,github-copilot,gemini
Valid tool names: claude, github-copilot, gemini
To explicitly opt out:
ng add @c8y/websdk --ai-tools=none
Note:
--ai-toolstakes precedence over--skip-confirmation. When both flags are present, only the tools listed in--ai-toolsare configured.
| Tool | Files written |
|---|---|
| Claude | .claude/CLAUDE.md, .claude/rules/*.instructions.md |
| GitHub Copilot | .github/copilot-instructions.md, .github/instructions/*.instructions.md |
| Gemini | .gemini/GEMINI.md, .gemini/rules/*.instructions.md |
Each tool receives the same core content adapted to its configuration format:
The schematic overwrites files that match standard template names and preserves any custom files that don't match.
ng serve -u https://<yourTenant>.cumulocity.com/
Replace <yourTenant> with your Cumulocity tenant subdomain. The -u (or --url) flag
points the dev server proxy at your tenant so API calls are forwarded correctly.
ng build <appName>
Output lands in dist/<appName>/.
Copy-paste sequence for a fully automated setup:
# 1. Install Angular CLI (once per machine)
npm install @angular/cli@v20-lts -g
# 2. Scaffold the app
ng new my-app \
--style=less \
--routing=true \
--ssr=false \
--skip-git=true \
--package-manager=pnpm \
--interactive=false \
--defaults
# 3. Enter directory
cd my-app
# 4. Resolve target version
C8Y_VERSION=$(npm view @c8y/websdk@y2026-lts version)
# 5. Add websdk schematic (no prompts, configure GitHub Copilot + Claude)
ng add @c8y/websdk@y2026-lts \
--application=@c8y/cockpit@${C8Y_VERSION} \
--ai-tools=github-copilot,claude
# 6. Start dev server
ng serve -u https://mytenant.cumulocity.com/
| Resource | URL |
|---|---|
| @c8y/websdk on npm | https://www.npmjs.com/package/@c8y/websdk |
| Cumulocity tutorial repository | https://github.com/Cumulocity-IoT/tutorial |
| Claude memory docs | https://docs.anthropic.com/en/docs/claude-code/memory |
| GitHub Copilot customization | https://code.visualstudio.com/docs/copilot/copilot-customization |
| Cursor rules docs | https://cursor.com/docs/rules |
| Windsurf memories docs | https://docs.windsurf.com/windsurf/cascade/memories |
| JetBrains AI guidelines | https://www.jetbrains.com/help/junie/customize-guidelines.html |
| Gemini CLI docs | https://geminicli.com/docs/cli/gemini-md |
tools
Step-by-step guide to migrate a Cumulocity Web SDK application to a target version. Detects breaking changes with the ui-breaking-changes-cli, scaffolds a reference app at the target version with the new-app skill, compares key configuration files (app.ts, bootstrap.ts, angular.json, etc.), and finishes with a code-quality-analysis review. Triggers: migrate app, upgrade version, breaking changes, sdk upgrade, migrate cumulocity, upgrade websdk.
development
Complete guide to internationalizing a Cumulocity Web SDK application. Covers all approaches to annotating and translating text (gettext, translate pipe, translate directive, TranslateService), extracting strings, creating and updating .po files, overriding existing translations, and adding brand-new languages. Triggers: i18n, internationalization, add language, translate, translation, localization, l10n, new language, po file, gettext, TranslateService, language switcher.
development
Analyze Angular / Cumulocity Web SDK code for anti-patterns, bugs, and quality issues. Use when reviewing components, services, or modules for code quality, maintainability, performance, and correctness. Covers TypeScript best practices, Angular idioms, C8Y SDK usage patterns, and project-specific conventions. Triggers: code review, anti-pattern, quality check, refactor suggestion, style guide, bug analysis.
development
Recommends and support the best approach for migrating PKI certificates when moving from another platform or PKI to Cumulocity. Use when a developer or architect asks about how to migrate existing PKI certificates to Cumulocity, how to handle certificate rotation during migration, or best practices for PKI management in Cumulocity.