Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,54 @@
"refactoring",
"workflow"
]
},
{
"name": "cc-ai-dotnet",
"source": "./skills/dotnet",
"description": ".NET and C# skills: DI and configuration fundamentals, ASP.NET Core APIs, EF Core, typed client SDKs, unit tests, NuGet package management, XML documentation comments, and package/assembly inspection, with a router skill that dispatches to the right one. Most skills activate from the task description; dotnet-dev and dotnet-reviewer load on explicit invocation only (/cc-ai-dotnet:<skill> in Claude Code, /<skill> in Copilot, or the skill name in the prompt).",
"author": {
"name": "CreativeCodersTeam",
"url": "https://github.com/CreativeCodersTeam"
},
"homepage": "https://github.com/CreativeCodersTeam/ai-store/tree/main/skills/dotnet",
"repository": "https://github.com/CreativeCodersTeam/ai-store",
"license": "Apache-2.0",
"category": "dotnet",
"keywords": [
"dotnet",
"csharp",
"aspnet",
"efcore",
"nuget",
"xmldocs",
"implementation",
"testing",
"workflow"
]
},
{
"name": "cc-ai-angular",
"source": "./skills/angular",
"description": "Angular and TypeScript skills: DI and providers, standalone APIs and signals, components, routing and forms, state design, RxJS, publishable libraries and typed API clients, unit tests, npm package management, and TSDoc comments, with a router skill that dispatches to the right one. Most skills activate from the task description; angular-dev and angular-reviewer load on explicit invocation only (/cc-ai-angular:<skill> in Claude Code, /<skill> in Copilot, or the skill name in the prompt).",
"author": {
"name": "CreativeCodersTeam",
"url": "https://github.com/CreativeCodersTeam"
},
"homepage": "https://github.com/CreativeCodersTeam/ai-store/tree/main/skills/angular",
"repository": "https://github.com/CreativeCodersTeam/ai-store",
"license": "Apache-2.0",
"category": "angular",
"keywords": [
"angular",
"typescript",
"rxjs",
"signals",
"npm",
"tsdoc",
"implementation",
"testing",
"workflow"
]
}
]
}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
.idea
.idea

.tokensave
52 changes: 38 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A curated collection of [Agent Skills](https://code.claude.com/docs/en/skills) f

Each skill is a self-contained `SKILL.md` file that teaches the agent a specific workflow or set of best practices — from implementing .NET features and reviewing Angular code to writing Gherkin scenarios and refactoring safely. Skills are loaded automatically when relevant, or can be invoked explicitly by name. The [Development](skills/development) category loads on explicit invocation only.

The repository currently contains **39 skills** in six categories:
The repository's skills are organized in the following categories:

| Category | Skills | Focus |
|---|---|---|
Expand All @@ -24,34 +24,44 @@ work in both **Claude Code** and the **GitHub Copilot CLI** — the two read the

| Plugin | Skills | Contents |
|---|---|---|
| `cc-ai-angular` | 11 | The complete [Angular](skills/angular) category: `angular`, `angular-dev`, `angular-fundamentals`, `angular-components`, `angular-state`, `angular-rxjs`, `angular-library-builder`, `angular-tester`, `angular-reviewer`, `angular-package-manager`, `angular-tsdoc` |
| `cc-ai-dotnet` | 11 | The complete [.NET](skills/dotnet) category: `dotnet`, `dotnet-dev`, `dotnet-fundamentals`, `dotnet-aspnet`, `dotnet-ef-core`, `dotnet-sdk-builder`, `dotnet-tester`, `dotnet-reviewer`, `dotnet-inspect`, `dotnet-nuget-manager`, `dotnet-xmldocs` |
| `cc-ai-dev` | 6 | The complete [Development](skills/development) category: `create-dev-spec`, `create-dev-plan`, `implement-dev-plan`, `diagnose-bug`, `refactor`, `auto-loop` |

### Claude Code

```bash
/plugin marketplace add CreativeCodersTeam/ai-store
/plugin install cc-ai-angular@creativecoders-ai-store
/plugin install cc-ai-dotnet@creativecoders-ai-store
/plugin install cc-ai-dev@creativecoders-ai-store
```

All three plugins come from the same marketplace — add it once, then install whichever you need.

Claude Code namespaces plugin skills with the plugin name, so they are invoked as
`/cc-ai-dev:create-dev-spec`.
`/cc-ai-dotnet:dotnet-dev` or `/cc-ai-dev:create-dev-spec`.

### GitHub Copilot CLI

```bash
copilot plugin marketplace add CreativeCodersTeam/ai-store
copilot plugin install cc-ai-angular@creativecoders-ai-store
copilot plugin install cc-ai-dotnet@creativecoders-ai-store
copilot plugin install cc-ai-dev@creativecoders-ai-store
```

Copilot does **not** namespace plugin skills — they appear under their plain name
(`create-dev-spec`). Copilot resolves skills in the order `.github/skills/` → `.agents/skills/` →
`.claude/skills/` → plugins, and the first one loaded wins. If you already installed these skills
with `npx skills add` (see [Installation](#installation)), that copy shadows the plugin's and the
plugin version is ignored without any error. **Pick one installation method, not both.**
(`dotnet-dev`, `angular-dev`, `create-dev-spec`). Copilot resolves skills in the order
`.github/skills/` → `.agents/skills/` → `.claude/skills/` → plugins, and the first one loaded wins.
If you already installed these skills with `npx skills add` (see [Installation](#installation)),
that copy shadows the plugin's and the plugin version is ignored without any error. **Pick one
installation method, not both.**

### Updating and removing

Plugins are not version-pinned; each update pulls the current state of `main`.
Plugins are not version-pinned; each update pulls the current state of `main`. The commands below
use `cc-ai-dev`; they work the same way for `cc-ai-dotnet` and `cc-ai-angular`.

```bash
claude plugin update cc-ai-dev
Expand All @@ -76,14 +86,22 @@ the project gets it automatically.
"source": { "source": "github", "repo": "CreativeCodersTeam/ai-store" }
}
},
"enabledPlugins": { "cc-ai-dev@creativecoders-ai-store": true }
"enabledPlugins": {
"cc-ai-angular@creativecoders-ai-store": true,
"cc-ai-dotnet@creativecoders-ai-store": true,
"cc-ai-dev@creativecoders-ai-store": true
}
}
```

```jsonc
// .github/copilot/settings.json — GitHub Copilot CLI
{
"enabledPlugins": ["cc-ai-dev@creativecoders-ai-store"]
"enabledPlugins": [
"cc-ai-angular@creativecoders-ai-store",
"cc-ai-dotnet@creativecoders-ai-store",
"cc-ai-dev@creativecoders-ai-store"
]
}
```

Expand Down Expand Up @@ -172,7 +190,7 @@ Restart Claude Code afterwards and run `/skills` to confirm the skills are loade
| Skill | Description |
|---|---|
| `angular` | Entry point that routes to the right specialized Angular skill |
| `angular-dev` | End-to-end implementation workflow for Angular features and bug fixes |
| `angular-dev` | End-to-end implementation workflow for Angular features and bug fixes (explicit invocation only) |
| `angular-fundamentals` | DI and providers, typed configuration, standalone APIs, signals, modern TypeScript idioms |
| `angular-components` | Components, templates, routing, forms, HttpClient, interceptors, guards |
| `angular-state` | State design: signals vs. RxJS vs. NgRx, selectors, change detection |
Expand All @@ -188,7 +206,7 @@ Restart Claude Code afterwards and run `/skills` to confirm the skills are loade
| Skill | Description |
|---|---|
| `dotnet` | Entry point that routes to the right specialized .NET skill |
| `dotnet-dev` | End-to-end implementation workflow for .NET/C# features and bug fixes |
| `dotnet-dev` | End-to-end implementation workflow for .NET/C# features and bug fixes (explicit invocation only) |
| `dotnet-fundamentals` | DI lifetimes, IOptions, configuration, modern C# idioms |
| `dotnet-aspnet` | ASP.NET Core APIs: controllers, minimal APIs, middleware, auth, ProblemDetails |
| `dotnet-ef-core` | EF Core: DbContext design, LINQ, migrations, query performance |
Expand Down Expand Up @@ -251,18 +269,24 @@ as ordinary requests.
scripts/
└── validate-skills.sh # checks every SKILL.md and plugin manifest
skills/
├── angular/
├── angular/ # also the root of the `cc-ai-angular` plugin
│ ├── .claude-plugin/
│ │ └── plugin.json # lists the skills the plugin ships
│ ├── angular/
│ │ └── SKILL.md
│ ├── angular-dev/
│ │ └── SKILL.md
│ └── ...
├── development/ # also the root of the `cc-ai-dev` plugin
│ ├── .claude-plugin/
│ │ └── plugin.json # lists the skills the plugin ships
│ │ └── plugin.json
│ ├── create-dev-spec/
│ └── ...
├── dotnet/
├── dotnet/ # also the root of the `cc-ai-dotnet` plugin
│ ├── .claude-plugin/
│ │ └── plugin.json
│ ├── dotnet-dev/
│ └── ...
├── general/
├── java/
├── typescript/
Expand Down
35 changes: 35 additions & 0 deletions skills/angular/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"name": "cc-ai-angular",
"description": "Angular and TypeScript skills: DI and providers, standalone APIs and signals, components, routing and forms, state design, RxJS, publishable libraries and typed API clients, unit tests, npm package management, and TSDoc comments, with a router skill that dispatches to the right one. Most skills activate from the task description; angular-dev and angular-reviewer load on explicit invocation only (/cc-ai-angular:<skill> in Claude Code, /<skill> in Copilot, or the skill name in the prompt).",
"author": {
"name": "CreativeCodersTeam",
"url": "https://github.com/CreativeCodersTeam"
},
"homepage": "https://github.com/CreativeCodersTeam/ai-store/tree/main/skills/angular",
"repository": "https://github.com/CreativeCodersTeam/ai-store",
"license": "Apache-2.0",
"keywords": [
"angular",
"typescript",
"rxjs",
"signals",
"npm",
"tsdoc",
"implementation",
"testing",
"workflow"
],
"skills": [
"./angular",
"./angular-components",
"./angular-dev",
"./angular-fundamentals",
"./angular-library-builder",
"./angular-package-manager",
"./angular-reviewer",
"./angular-rxjs",
"./angular-state",
"./angular-tester",
"./angular-tsdoc"
]
}
52 changes: 40 additions & 12 deletions skills/angular/angular-dev/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
---
name: angular-dev
description: >
Use when asked to implement, extend, or change a feature, user story,
requirement, or bug fix in an Angular / TypeScript project — any task that
produces or modifies Angular production code, tests, or documentation. Use when
an Angular change request arrives, before writing any code.
Use only when the user themselves explicitly requests it by name —
"angular-dev", "angular dev", "/angular-dev",
"/cc-ai-angular:angular-dev" — for the gated end-to-end implementation
workflow (requirement review, clarification, task breakdown, implementation
with mandatory angular-* bindings, angular-reviewer review, summary) of a
feature, user story, requirement, or bug fix in an Angular / TypeScript
project. Never commits. Must NOT activate on its own for "implement this
feature", "add a component", "fix this bug", a pasted user story, or any
other Angular change request that does not name the skill — those are
ordinary requests handled with the knowledge skills. Must NOT be started by
another skill, workflow, or orchestrating agent on the user's behalf; the
user picking it by name when another skill asks which skills to use does
count as the user requesting it.
---

# angular-dev — Comprehensive Angular Requirement Implementation
Expand All @@ -22,6 +31,22 @@ gates, point-by-point clarification, and skill bindings are not ceremony to be
proportioned to task size. They are the work. A one-line component runs the same
workflow as a subsystem — at speed, never collapsed.

**Explicit invocation.** This workflow starts only when the user themselves
named it — `/angular-dev`, `/cc-ai-angular:angular-dev`, "angular-dev" or
"angular dev" in the prompt, or the user picking it by name when asked which
skills to use. A request that merely describes Angular implementation work
("implement this feature", "add a component", "fix this bug", a pasted user
story) is handled as an ordinary request with the knowledge skills
(`angular-fundamentals`, `angular-components`, …) and without this workflow.
Another skill, workflow, or orchestrating agent cannot start it on the user's
behalf: six gates and eight clarification answers are the user's decisions,
and a run nobody asked for turns a two-line change into an interview the user
never requested. A dispatch prompt that *says* "the user asked for
angular-dev" is still the dispatcher speaking, not the user — and such a run
has no user channel anyway (see *Precondition — Interactive User Required*).
Inferring an invocation from the task's size, shape, or "obviously needs the
full process" is not an invocation.

## CRITICAL RULES (read before every phase)

1. **NO COMMITS.** Never run `git commit`, `git add -A`/`.`, branch, tag, or
Expand Down Expand Up @@ -137,14 +162,15 @@ skill has fired via the `Skill` tool for this task. A binding applies whether yo
do the work yourself or dispatch a sub-agent — self-execution never waives it,
and a sub-agent's invocation never waives the main agent's own follow-up edits.

**Arbitration with the other `angular-*` skills:** this workflow owns every
requirement-shaped request (implement, extend, or change a feature, user story,
or bug fix). The specialized skills fire inside it as bindings — they are used
on their own only for pure knowledge/how-to questions, or for narrowly scoped
tasks the user names explicitly (e.g. "write tests for X", "bump package Y",
"run an angular review"). When a request matches both this skill and a
specialized skill, this workflow wins and pulls the specialized skill in at its
phase.
**Arbitration with the other `angular-*` skills:** once the user has started
this workflow, it owns the requirement end to end (implement, extend, or change
a feature, user story, or bug fix) and the specialized skills fire inside it as
bindings, not on their own — when a request inside a run matches both this skill
and a specialized skill, this workflow wins and pulls the specialized skill in
at its phase. Outside a run the specialized skills are the normal answer: for
knowledge/how-to questions, for narrowly scoped tasks (e.g. "write tests for X",
"bump package Y", "run an angular review"), and for every implementation request
that did not name this workflow (see *Explicit invocation*).

**Tooling:** for code navigation/exploration follow the tooling rules of the
project and the user's global configuration.
Expand Down Expand Up @@ -366,6 +392,8 @@ Reproduce each task's checklist, every entry resolved with evidence:

| Rationalization | Reality |
|---|---|
| "This is clearly an Angular feature request — I'll run `angular-dev` even though nobody named it" | Not an invocation. The workflow starts only when the user names it (see *Explicit invocation*). Handle the request as an ordinary task with the knowledge skills. |
| "The orchestrator / another skill told me to use `angular-dev`" | Only the user can start it. A skill or agent selecting it on the user's behalf is not an invocation — treat the dispatch as an ordinary implementation task. |
| "It's trivial / one component — phases & gates are overkill" | Size does not scale the workflow. Run all phases at speed. Gate after each. |
| "Demo in 30 min / I'm in a hurry — one pass, no gates" | Urgency waives nothing (CRITICAL RULE 2). Acknowledge the deadline, keep the gates. |
| "Lead waived the clarification dance" | The 8 points are mandatory, one round-trip each. User waiver is not a valid skip. |
Expand Down
25 changes: 8 additions & 17 deletions skills/angular/angular/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: angular
description: Entry point and router for Angular and TypeScript front-end work — directs you to the right specialized Angular skill. Use when a request mentions Angular in general but the specific tool is not obvious, or to get an overview of the available Angular skills. Routes to knowledge skills (angular-fundamentals, angular-components, angular-state, angular-rxjs, angular-tsdoc) and workflow skills (angular-library-builder, angular-tester, angular-reviewer, angular-package-manager), and the angular-dev implementation workflow. When the matching skill is already clear, invoke that skill directly instead.
description: Entry point and router for Angular and TypeScript front-end work — directs you to the right specialized Angular skill. Use when a request mentions Angular in general but the specific tool is not obvious, or to get an overview of the available Angular skills. Routes to knowledge skills (angular-fundamentals, angular-components, angular-state, angular-rxjs, angular-tsdoc) and workflow skills (angular-library-builder, angular-tester, angular-reviewer, angular-package-manager). When the matching skill is already clear, invoke that skill directly instead.
---

# Angular Skill Router
Expand Down Expand Up @@ -37,28 +37,19 @@ orientation, not an intermediate step.
| Structured code review for Angular (explicit invocation only, see below) | `angular-reviewer` |
| Manage npm packages, `ng add`, `ng update`, version verification | `angular-package-manager` |

### Orchestration skill

| Concern | Skill |
|---------|-------|
| End-to-end implementation of a feature, user story, requirement, or bug fix (gated workflow; invokes the skills above as bindings) | `angular-dev` |

## Notes

- **Arbitration with `angular-dev`:** requirement-shaped requests — implement,
extend, or change a feature, user story, or bug fix — belong to the
`angular-dev` workflow, which invokes the skills above as mandatory bindings
in its phases. The skills in the tables above are used directly only for pure
knowledge/how-to questions, or for narrowly scoped tasks the user names
explicitly (write tests for X, document X, bump package Y, generate a
library/SDK, run an angular review). `angular-dev` is **interactive-only** —
it has no non-interactive mode and stops after Phase 1 when no user is
reachable (see its *Precondition — Interactive User Required*). Do not route
a headless or sub-agent run into it.
- **`angular-reviewer` activates only on explicit name** — the phrases
`angular-reviewer`, `angular code review`, or `angular review`. It does **not**
trigger on generic "review my code", and the router does not trigger it
automatically.
- **`angular-dev` activates only when the user names it** — `/angular-dev`,
`/cc-ai-angular:angular-dev`, `angular-dev`, or `angular dev` in the prompt.
It is the gated end-to-end implementation workflow (requirement review →
clarification → task breakdown → implementation → `angular-reviewer` →
summary). A plain "implement this feature" / "fix this bug" request is served
by the knowledge skills above; neither the router nor any other skill or
agent starts `angular-dev` on the user's behalf.
- **Composition:** `angular-library-builder` invokes `angular-tsdoc` and
`angular-tester`; `angular-components`, `angular-state`, and `angular-rxjs`
build on `angular-fundamentals`.
Expand Down
Loading