{"id":49827274,"url":"https://github.com/janpereira-dev/ngAutoPilot","last_synced_at":"2026-05-15T20:01:12.681Z","repository":{"id":354856101,"uuid":"1225297756","full_name":"janpereira-dev/ngAutoPilot","owner":"janpereira-dev","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-01T22:32:38.000Z","size":323,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T23:03:01.588Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janpereira-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T06:27:11.000Z","updated_at":"2026-05-01T22:32:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/janpereira-dev/ngAutoPilot","commit_stats":null,"previous_names":["janpereira-dev/ngautopilot"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/janpereira-dev/ngAutoPilot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janpereira-dev%2FngAutoPilot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janpereira-dev%2FngAutoPilot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janpereira-dev%2FngAutoPilot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janpereira-dev%2FngAutoPilot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janpereira-dev","download_url":"https://codeload.github.com/janpereira-dev/ngAutoPilot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janpereira-dev%2FngAutoPilot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33077917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-13T18:00:54.892Z","updated_at":"2026-05-15T20:01:12.676Z","avatar_url":"https://github.com/janpereira-dev.png","language":"JavaScript","funding_links":[],"categories":["Development Utilities"],"sub_categories":["AI"],"readme":"# NgAutoPilot\n\n[![npm version](https://img.shields.io/npm/v/ngautopilot?style=flat-square\u0026logo=npm\u0026label=npm)](https://www.npmjs.com/package/ngautopilot)\n[![npm downloads](https://img.shields.io/npm/dw/ngautopilot?style=flat-square\u0026logo=npm\u0026label=downloads)](https://www.npmjs.com/package/ngautopilot)\n[![CI](https://img.shields.io/github/actions/workflow/status/janpereira-dev/ngAutoPilot/ci.yml?branch=main\u0026style=flat-square\u0026logo=githubactions\u0026label=CI)](https://github.com/janpereira-dev/ngAutoPilot/actions/workflows/ci.yml)\n[![Release Gates](https://img.shields.io/github/actions/workflow/status/janpereira-dev/ngAutoPilot/release-gates.yml?branch=main\u0026style=flat-square\u0026logo=githubactions\u0026label=release%20gates)](https://github.com/janpereira-dev/ngAutoPilot/actions/workflows/release-gates.yml)\n[![License](https://img.shields.io/npm/l/ngautopilot?style=flat-square\u0026label=license)](https://github.com/janpereira-dev/ngAutoPilot/blob/main/LICENSE)\n[![Node](https://img.shields.io/node/v/ngautopilot?style=flat-square\u0026logo=nodedotjs\u0026label=node)](https://github.com/janpereira-dev/ngAutoPilot/blob/main/package.json)\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"assets/ngautopilot-hero.svg\" alt=\"NgAutoPilot hero banner\" /\u003e\n\u003c/p\u003e\n\nNgAutoPilot is an installable catalog of micro-skills that helps AI coding agents work safely in Angular, TypeScript, JavaScript, RxJS, testing, code quality, architecture, versioning, and governance workflows.\n\nIt keeps agents on a small, repeatable loop: inspect the repo, detect stack and versions, route to the smallest skill, apply compatibility and risk gates, make the smallest reversible change, and validate the result.\n\n## Quick Start\n\n```bash\nnpm exec --package=ngautopilot -- ngautopilot help\nnpm exec --package=ngautopilot -- ngautopilot list\nnpm exec --package=ngautopilot -- ngautopilot init\nnpm exec --package=ngautopilot -- ngautopilot doctor\n```\n\nAfter `init`, NgAutoPilot creates a local `.ngautopilot/` workspace with skills, adapters, and `catalog.json`.\n\n## Naming\n\n| Concept | Value |\n| --- | --- |\n| npm package | `ngautopilot` |\n| CLI command | `ngautopilot` |\n| generated folder | `.ngautopilot/` |\n| GitHub repo | `janpereira-dev/ngAutoPilot` |\n\n## Why It Exists\n\nAI coding agents often:\n\n- over-refactor instead of making the smallest safe change\n- guess Angular compatibility instead of detecting it\n- mix upgrade hops with modernization work\n- skip validation or release gates\n- apply generic advice to version-sensitive repositories\n\nNgAutoPilot answers that with small, reusable, public skills that can be routed deterministically.\n\n## What NgAutoPilot Is\n\n- A public catalog of micro-skills.\n- A routing layer for AI coding agents.\n- A safety layer for Angular and frontend change work.\n- A distribution package with a small CLI.\n- A repo with validation, catalog generation, publish bundles, and marketplace manifests.\n\n## What It Is Not\n\n- Not a framework.\n- Not an Angular runtime library.\n- Not an autopatcher.\n- Not a replacement for tests or review.\n- Not tied to a single AI vendor.\n\n## Main Use Cases\n\n| Use case | What NgAutoPilot helps with |\n| --- | --- |\n| Angular upgrades | major-by-major routing, compatibility gates, upgrade satellites |\n| Modernization after upgrades | standalone, control flow, `@defer`, zoneless readiness |\n| Performance audits | template functions, change detection, trackBy, Core Web Vitals |\n| Testing | Angular TestBed, Jest, strategy selection, validation contracts |\n| Quality workflows | lint cleanup, dead code, SonarQube triage, consistency checks |\n| Agent adapters | Codex, Claude Code, Copilot, Cursor, Gemini, generic exports |\n\n## How It Works\n\n1. Inspect the repository and detect the stack.\n2. Select the smallest relevant skill.\n3. Apply compatibility and risk gates.\n4. Make the smallest reversible change.\n5. Validate the result.\n6. Package docs, bundles, or review artifacts when needed.\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"assets/ngautopilot-flow.svg\" alt=\"NgAutoPilot workflow diagram\" /\u003e\n\u003c/p\u003e\n\n## Catalog Snapshot\n\nCurrent catalog size: **287 skills**\n\n| Area | Coverage |\n| --- | --- |\n| Core routing | intake, stack detection, compatibility, risk control |\n| Angular | upgrades, modernization, architecture, forms, router, SSR, Material, security, migration |\n| TypeScript and JavaScript | strict typing, fundamentals, safer code patterns |\n| Quality | lint, dead code, SonarQube, governance |\n| CSS | custom properties, `:has()`-driven layout patterns |\n\n## Skill Families\n\nThese are the families that matter most when consuming the catalog:\n\n| Skill family | What it covers | When to use |\n| --- | --- | --- |\n| `skills/_core/` | intake, stack detection, routing, compatibility, risk control | first, for every task |\n| `skills/angular/versioning/` | version gates, compatibility decisions, master routing | before any Angular hop |\n| `skills/angular/upgrades/` | major-hop executors and version-specific satellites | during Angular upgrades |\n| `skills/angular/modernization/` | control flow, `@defer`, standalone-first, zoneless readiness | after the hop is stable |\n| `skills/angular/architecture/` | higher-level Angular design guidance | when the task is architectural |\n| `skills/angular/microfrontends/` | shell, remote, compatibility, sharing and rollback gates | when the repo needs distributed frontend boundaries |\n| `skills/angular/docs/` | ADRs, upgrade reports, and review packets | when the change needs governance or packaging |\n| `skills/angular/styles/` | Angular-hosted CSS custom property patterns | when Angular needs to expose style-only state |\n| `skills/css/` | selector-driven layout and modern CSS patterns | when CSS can solve the problem without JS |\n| `skills/typescript/`, `skills/javascript/`, `skills/quality/` | cross-cutting code quality and workflow skills | when the task is not Angular-specific |\n\n## Documentation\n\nPublic usage docs:\n\n- [docs/getting-started.md](docs/getting-started.md)\n- [docs/cli-reference.md](docs/cli-reference.md)\n- [docs/angular-roadmap-guide.md](docs/angular-roadmap-guide.md)\n- [docs/sage-review.md](docs/sage-review.md)\n- [docs/release-checklist.md](docs/release-checklist.md)\n\nMaintainer and repository docs:\n\n- [docs/maintainer-guide.md](docs/maintainer-guide.md)\n- [CONTRIBUTING.md](CONTRIBUTING.md)\n- [SECURITY.md](SECURITY.md)\n- [CHANGELOG.md](CHANGELOG.md)\n\n## Built For Agent Workflows\n\n![agent agnostic](https://img.shields.io/badge/agent--agnostic-yes-success?style=flat-square)\n![Angular](https://img.shields.io/badge/angular-ready-DD0031?style=flat-square\u0026logo=angular)\n![TypeScript](https://img.shields.io/badge/typescript-ready-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white)\n![AI agents](https://img.shields.io/badge/AI%20agents-Codex%20%7C%20Claude%20%7C%20Copilot%20%7C%20Cursor%20%7C%20Gemini-4B5563?style=flat-square)\n\nThe repository includes adapters and marketplace manifests for multiple agent ecosystems while keeping the skills themselves public and agent-agnostic.\n\n## Project Health\n\n[![last commit](https://img.shields.io/github/last-commit/janpereira-dev/ngAutoPilot?style=flat-square\u0026logo=github\u0026label=last%20commit)](https://github.com/janpereira-dev/ngAutoPilot/commits/main)\n[![repo size](https://img.shields.io/github/repo-size/janpereira-dev/ngAutoPilot?style=flat-square\u0026logo=github\u0026label=repo%20size)](https://github.com/janpereira-dev/ngAutoPilot)\n[![package size](https://img.shields.io/npm/unpacked-size/ngautopilot?style=flat-square\u0026logo=npm\u0026label=package%20size)](https://www.npmjs.com/package/ngautopilot)\n[![issues](https://img.shields.io/github/issues/janpereira-dev/ngAutoPilot?style=flat-square\u0026logo=github\u0026label=issues)](https://github.com/janpereira-dev/ngAutoPilot/issues)\n[![pull requests](https://img.shields.io/github/issues-pr/janpereira-dev/ngAutoPilot?style=flat-square\u0026logo=github\u0026label=PRs)](https://github.com/janpereira-dev/ngAutoPilot/pulls)\n\n## Validation And Release\n\nUse these commands before publishing:\n\n```bash\nnpm run skills:validate\nnpm run skills:catalog\nnpm run plugins:sync\nnpm run consistency:validate\nnpm run marketplaces:validate\nnpm run skills:publish:pack\nnpm run publish:validate\nnpm run pack:dry\n```\n\nThe CI and release-gate workflows stay focused on deterministic validation. The release workflow can build release artifacts and, when explicitly dispatched with publish enabled, publish the npm package.\n\n## Plugin Marketplaces\n\nNgAutoPilot ships marketplace manifests for Claude Code and Codex:\n\n- Claude manifest: `.claude-plugin/marketplace.json`\n- Codex manifest: `.agents/plugins/marketplace.json`\n\nCurrent plugin bundles are split by use:\n\n| Bundle | Use |\n| --- | --- |\n| `ngautopilot-core` | orchestration, intake, routing, compatibility, and risk gates |\n| `ngautopilot-angular` | complete Angular catalog |\n| `ngautopilot-angular-microfrontends` | focused Angular micro-frontends subset |\n| `ngautopilot-css` | CSS and Angular style-boundary subset |\n| `ngautopilot-javascript` | JavaScript fundamentals, modules, pure functions, and async error handling |\n| `ngautopilot-quality` | complete quality catalog |\n| `ngautopilot-quality-lint` | ESLint and lint governance subset |\n| `ngautopilot-quality-deadcode-sonar` | dead-code and SonarQube subset |\n| `ngautopilot-typescript` | complete TypeScript catalog |\n\n`npm run plugins:sync` rebuilds plugin bundles from `skills/` and the consistency validator checks that every source skill is included in at least one plugin bundle.\n\n## Repository Map\n\n```txt\nngAutoPilot/\n  adapters/\n  assets/\n  docs/\n  plugins/\n  schemas/\n  scripts/\n  skills/\n```\n\n## License\n\nNgAutoPilot is released under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanpereira-dev%2FngAutoPilot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanpereira-dev%2FngAutoPilot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanpereira-dev%2FngAutoPilot/lists"}