Files
ECC/pi/core/skills/angular-developer/references/cli.md
T
Affaan MustafaandGitHub c70874fae9 feat(pi): curated pi/core skills+prompts profile, CI load test, and 2.2.2 release sync (#3264)
Adds a curated, Pi-native, skills+prompts-only profile at pi/core/ for downstream packagers that mirror GitHub Releases.

- manifests/pi-core.json: explicit include lists, per-item exclusion reasons, curation rules, safety allowlists; every root skill and command must be classified.
- scripts/build-pi-core.js regenerates pi/core deterministically (package.json from VERSION, LICENSE, README.md, CURATION.md, skills/, commands/); --check fails CI on drift. council is renamed ecc-council inside pi/core only.
- Safety checks: no callable endpoints outside the allowlist, no npx/curl|sh/pip install, no secrets, no absolute home paths, no symlinks, valid frontmatter, no duplicate names.
- CI: build + drift check and an offline Pi CLI load test of pi/core.
- Release: VERSION, package.json and pi/core/package.json at 2.2.2, CHANGELOG, tag-triggered release verification, and a two-week cadence in CONTRIBUTING.md.

pi/core: 123 of 293 skills and 24 of 94 commands; 35,006 characters of skill description text.
2026-09-29 20:24:05 -05:00

3.6 KiB

Angular CLI Guide for Agents

The Angular CLI (ng) is the primary tool for managing an Angular workspace. Always prefer CLI commands over manual file creation or generic npm commands when modifying project structure or adding Angular-specific dependencies.

1. Managing Dependencies

ALWAYS use ng add for Angular libraries instead of npm install. ng add installs the package AND runs initialization schematics (e.g., configuring angular.json, updating root providers).

ng add @angular/material
ng add tailwindcss
ng add @angular/fire

To update the application and its dependencies (which automatically runs code migrations):

ng update @angular/core@<latest or specific version> @angular/cli<latest or specific version>

2. Generating Code (ng generate or ng g)

Always use the CLI to generate code to ensure it adheres to Angular standards and updates necessary configuration files automatically.

Target Command Notes
Component ng g c path/to/name Generates a component. Use --inline-style (-s) or --inline-template (-t) if requested.
Service ng g s path/to/name Generates an @Injectable({providedIn: 'root'}) service.
Directive ng g d path/to/name Generates a directive.
Pipe ng g p path/to/name Generates a pipe.
Guard ng g g path/to/name Generates a functional route guard.
Environments ng g environments Scaffolds src/environments/ and updates angular.json with file replacements.

Note: There is no command to generate a single route definition. Generate a component, then manually add it to the Routes array in app.routes.ts.

3. Development Server & Proxying

Start the local development server with hot-module replacement (HMR):

ng serve

Backend API Proxying

To proxy API requests during development (e.g., rerouting /api to a local Node server):

  1. Create src/proxy.conf.json:
    {
      "/api/**": {"target": "http://localhost:3000", "secure": false}
    }
    
  2. Update angular.json under the serve target:
    "serve": {
      "builder": "@angular/build:dev-server",
      "options": { "proxyConfig": "src/proxy.conf.json" }
    }
    

4. Building the Application

Compile the application into an output directory (default: dist/<project-name>/browser). Modern Angular uses the @angular/build:application builder (esbuild-based).

ng build
  • ng build defaults to the production configuration, which enables Ahead-of-Time (AOT) compilation, minification, and tree-shaking.
  • Target specific configurations defined in angular.json using --configuration: ng build --configuration=staging.

5. Testing

  • Unit Tests: Run ng test to execute unit tests via the configured test runner (e.g., Karma or Vitest).
  • End-to-End (E2E): Run ng e2e. If no E2E framework is configured, the CLI will prompt to install one (Cypress, Playwright, Puppeteer, etc.).

6. Deployment

To deploy an application, you must first add a deployment builder, then run the deploy command:

# Example for Firebase
ng add @angular/fire
ng deploy