{
  "markdown": "# ng — Angular Plugin for Claude Code\n\nAngular development assistant — generate, review, test and migrate Angular apps\n\n## Install\n\n> Requires Claude Code v1.0.33 or later. Run `claude --version` to check.\n\n### Option 1 — Inside Claude Code (recommended)\n\nOpen Claude Code in any project and run these two commands:\n\n```\n# Step 1: add the marketplace\n/plugin marketplace add mayeedwin/angular-plugin\n\n# Step 2: install the plugin (user scope — available in all your projects)\n/plugin install ng@angular-plugin\n```\n\nVerify it worked — run `/help` and look for `ng:*` commands in the list.\n\n### Option 2 — CLI (non-interactive)\n\n```bash\n# Add the marketplace to your user settings\nclaude plugin install ng@angular-plugin\n```\n\n### Option 3 — Official Anthropic marketplace (pending review)\n\nOnce approved, no marketplace step needed:\n\n```\n/plugin install ng\n```\n\n### Option 4 — Local development / testing\n\n```bash\ngit clone https://github.com/mayeedwin/angular-plugin\nclaude --plugin-dir ./angular-plugin\n```\n\n---\n\n## Installation scopes\n\nBy default the plugin is installed to your **user** scope — available across all your projects.\n\n| Scope | What it means | Install flag |\n|---|---|---|\n| `user` *(default)* | Available in all your projects | *(no flag needed)* |\n| `project` | Checked into `.claude/settings.json` — shared with your team | `--scope project` |\n| `local` | Project-specific, gitignored | `--scope local` |\n\n**Share with your team** — install at project scope so everyone who clones the repo gets it:\n\n```\n/plugin install ng@angular-plugin --scope project\n```\n\nOr add to `.claude/settings.json` manually so Claude Code prompts teammates on first open:\n\n```json\n{\n  \"extraKnownMarketplaces\": {\n    \"angular-plugin\": {\n      \"source\": { \"source\": \"github\", \"repo\": \"mayeedwin/angular-plugin\" }\n    }\n  },\n  \"enabledPlugins\": {\n    \"ng@angular-plugin\": true\n  }\n}\n```\n\n---\n\n## Manage the plugin\n\nAll commands work both inside Claude Code (with `/`) and from the terminal (with `claude plugin`):\n\n| Action | Inside Claude Code | Terminal |\n|---|---|---|\n| Update | `/plugin update ng@angular-plugin` | `claude plugin update ng@angular-plugin` |\n| Disable (keep installed) | `/plugin disable ng@angular-plugin` | `claude plugin disable ng@angular-plugin` |\n| Re-enable | `/plugin enable ng@angular-plugin` | `claude plugin enable ng@angular-plugin` |\n| Uninstall | `/plugin uninstall ng@angular-plugin` | `claude plugin uninstall ng@angular-plugin` |\n\n## Commands\n\n| Command                              | Description                                                             |\n| ------------------------------------ | ----------------------------------------------------------------------- |\n| `/ng:generate [type] [name] [path?]` | Scaffold any Angular artifact — mirrors `ng generate`                   |\n| `/ng:review [path?]`                 | Code review with categorised issues (blockers / warnings / suggestions) |\n| `/ng:store [feature] [path?]`        | Generate a complete NgRx feature store                                  |\n| `/ng:test [file-path]`               | Generate unit tests for any Angular artifact                            |\n| `/ng:migrate [type] [path?]`         | Migrate deprecated patterns to modern Angular                           |\n| `/ng:docs [file-path]`               | Add TSDoc comments and documentation                                    |\n\n### Generate examples (mirrors Angular CLI)\n\n```bash\n/ng:generate component user-profile pages/users\n/ng:generate service auth core/services\n/ng:generate guard auth core/guards\n/ng:generate interceptor jwt core/interceptors\n/ng:generate pipe currency shared/pipes\n/ng:generate directive click-outside shared/directives\n/ng:generate routes dashboard pages/dashboard\n/ng:generate store products pages/products\n```\n\n### Migrate examples\n\n```bash\n/ng:migrate standalone src/app/pages/users   # NgModule → standalone\n/ng:migrate control-flow src/app             # *ngIf/*ngFor → @if/@for\n/ng:migrate inject src/app/pages/dashboard   # constructor → inject()\n/ng:migrate cleanup src/app                  # ngOnDestroy → takeUntilDestroyed()\n/ng:migrate signals src/app/pages/products   # observables → signals\n```\n\n## Auto-invoked Skills\n\nThese run automatically based on what Claude is working on — no command needed:\n\n| Skill                 | Triggers when...                         |\n| --------------------- | ---------------------------------------- |\n| `angular-generate`    | Creating any Angular file                |\n| `angular-testing`     | Writing `.spec.ts` files                 |\n| `ngrx-patterns`       | Working with NgRx store files            |\n| `angular-rxjs`        | Using observables in Angular context     |\n| `angular-migration`   | Editing `*.module.ts` or deprecated APIs |\n| `angular-performance` | Reviewing component or routing code      |\n\n## Agents\n\n| Agent               | Purpose                                            |\n| ------------------- | -------------------------------------------------- |\n| `angular-architect` | Feature design, state strategy, module boundaries  |\n| `angular-reviewer`  | Production readiness, security, performance review |\n\n## Opinionated Structure\n\nBased on a production-scale Angular 20 app. See [docs/STRUCTURE.md](./docs/STRUCTURE.md) for the full spec.\n\n```\nsrc/app/\n├── core/           # Singletons: services, guards, interceptors\n├── shared/         # Reusable: components, pipes, directives, utils\n├── layouts/        # Shell layouts\n├── pages/          # Feature areas (lazy-loaded)\n│   └── {feature}/\n│       ├── {feature}.ts         # Component (Angular 20: no .component. suffix)\n│       ├── {feature}.routes.ts\n│       ├── components/\n│       ├── services/\n│       ├── store/               # NgRx (optional)\n│       └── index.ts\n├── store/          # Root NgRx store (optional)\n├── app.config.ts\n└── app.routes.ts\n```\n\n### Key defaults\n\n| Pattern                    | Default                                                    |\n| -------------------------- | ---------------------------------------------------------- |\n| Component files            | `{name}.ts` (Angular 20 — no `.component.` suffix)         |\n| Service files              | `{name}.service.ts`                                        |\n| Pipe/directive/guard files | `{name}.pipe.ts`, `{name}.directive.ts`, `{name}.guard.ts` |\n| Components                 | `standalone: true` + `OnPush`                              |\n| DI                         | `inject()` — not constructor                               |\n| Template control flow      | `@if` / `@for` — not `*ngIf` / `*ngFor`                    |\n| RxJS cleanup               | `takeUntilDestroyed()`                                     |\n| Guards                     | Functional (`CanActivateFn`)                               |\n| Modules                    | Not generated by default                                   |\n| Barrels                    | `index.ts` in every directory                              |\n| Path aliases               | `@shared/*`, `@core/*`, `@pages/*`                         |\n\n## DX Features\n\n- **Auto-lint hook** — runs ESLint + Prettier on every `.ts`/`.html`/`.scss` write\n- **TypeScript LSP** — configures `typescript-language-server` for code intelligence\n\n## Angular Reference\n\nAll patterns reference [angular.dev/llms.txt](https://angular.dev/llms.txt).\n\n## Roadmap\n\n- [x] Commands: `generate`, `review`, `store`, `test`, `migrate`, `docs`\n- [x] Skills: `angular-generate`, `angular-testing`, `ngrx-patterns`, `angular-rxjs`, `angular-migration`, `angular-performance`\n- [x] Agents: `angular-architect`, `angular-reviewer`\n- [x] Hooks: auto-lint on file writes\n- [x] LSP: TypeScript language server config\n- [x] Self-hosted marketplace via GitHub (`/plugin marketplace add mayeedwin/angular-plugin`)\n- [ ] Publish to Anthropic plugin marketplace (submitted — pending review)\n\n## Contributing\n\nSee [CONTRIBUTING.md](./.github/CONTRIBUTING.md). Issues and PRs welcome at [github.com/mayeedwin/angular-plugin](https://github.com/mayeedwin/angular-plugin).\n\n### Setup (once after cloning)\n\n```bash\nbash scripts/install-hooks.sh\n```\n\nThis installs a local `commit-msg` hook that validates your commit messages.\n\n### Commit style\n\n```\ntype(scope): description\n```\n\n| Part    | Values                                                                             |\n| ------- | ---------------------------------------------------------------------------------- |\n| `type`  | `feat` `fix` `docs` `style` `refactor` `test` `chore` `perf` `ci` `build` `hotfix` |\n| `scope` | `skills` `commands` `agents` `hooks` `docs` `plugin` `scripts` `readme`            |\n\n```bash\nfeat(skills): add angular-signals skill\nfix(commands): correct generate path resolution\ndocs(readme): update installation instructions\nchore(plugin): bump version to 1.0.0\n```\n\n## AI support\n\nThis repo ships instructions for Claude Code, GitHub Copilot, and other AI agents:\n\n| File                                                                   | Purpose                                      |\n| ---------------------------------------------------------------------- | -------------------------------------------- |\n| [`CLAUDE.md`](./CLAUDE.md)                                             | Claude Code — detailed rules and conventions |\n| [`AGENTS.md`](./AGENTS.md)                                             | Other AI agents (Codex, Gemini, etc.)        |\n| [`.github/copilot-instructions.md`](./.github/copilot-instructions.md) | GitHub Copilot                               |\n\nWhen using Claude Code in this repo, it automatically reads `CLAUDE.md` and applies the conventions.\n\n## Privacy\n\nThis plugin runs entirely on your local machine — no data collection, no telemetry. See [PRIVACY.md](./PRIVACY.md) for full details.\n\n## License\n\n[MIT](./.github/LICENSE) © [Maye Edwin](https://github.com/mayeedwin)\n",
  "bytes": 9911,
  "sha": "4e4baf793d4da6e4a536923959783111b4387284b1f718964cba2ac7a05a794c",
  "repo_slug": "mayeedwin/angular-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_mayeedwin_angular_plugin_ng_5314e276/readme"
}