# engineering-system

Claude Code plugin encoding the ES (Engineering System) architecture — converted from `ENGINEERING-SYSTEM.md`. Distributed via the `triroop-engineering-marketplace` marketplace at the root of this repo, so any Claude Code user can add the marketplace and install it rather than copying files by hand.

A personal copy of this same plugin also lives under `~/.claude/skills/engineering-system/` (user scope, active across all local projects). The two are independent copies — changes to one don't propagate to the other automatically.

## What's in it

- **`SKILL.md`** — index of all ES sub-skills, loaded whenever a request touches architecture/structure decisions.
- **`skills/`** — one skill per ES sub-topic: `feature-contract` (the pre-implementation spec template), `frontend-architecture` (Next.js + Flutter), `backend-architecture` (Next.js route handlers + standalone NestJS services), `api-design`, `proxy-infrastructure`, `auth-infrastructure`, `validation`, `database-orm`, `deployment-infrastructure` (Docker, docker-compose, AWS CodeBuild/ECR/SSM pipeline, package-manager convention), `nextjs-project-setup` (scaffold a brand-new Next.js project from zero, in any directory), `nextjs-deployment-setup` (add deployment infra to an existing Next.js project), `seo-metadata` (Next.js only), `testing-strategy`, `vertical-slice-philosophy`, and `request-workflow` (the 9-step request-handling process).
- **`commands/es-flow.md`** — `/es-flow` — manually force the full 9-step workflow on the next request.
- **`hooks/`** — `UserPromptSubmit` hook that automatically injects a short pointer to the ES workflow into every prompt's context (harness-only, no extra model turn).

## Installing from this marketplace

```
/plugin marketplace add <path-or-url-to-this-repo>
/plugin install engineering-system@triroop-engineering-marketplace
```

## Updating

Edit files directly under `plugins/engineering-system/` in this repo, bump the `version` in `.claude-plugin/plugin.json`, and commit. Installers run `/plugin marketplace update triroop-engineering-marketplace` (or `/reload-plugins` for a locally-linked marketplace) to pick up changes — plugin components load at session start, not live.

## Removing

`claude plugin disable engineering-system@triroop-engineering-marketplace` to disable, or `/plugin marketplace remove triroop-engineering-marketplace` to remove the whole marketplace.
