angular-doctor 1.1.3 β†’ 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,6 +40,26 @@ npx -y angular-doctor@latest . --verbose
40
40
 
41
41
  ---
42
42
 
43
+ ## πŸ€– Install for your coding agent
44
+
45
+ Teach your coding agent to run Angular Doctor automatically after every Angular change:
46
+
47
+ ```bash
48
+ curl -fsSL https://raw.githubusercontent.com/antonygiomarxdev/angular-doctor/main/install-skill.sh | bash
49
+ ```
50
+
51
+ Supports **Cursor**, **Claude Code**, **Windsurf**, **Amp Code**, **Codex**, **Gemini CLI**, and **OpenCode**.
52
+
53
+ Once installed, your agent will automatically run:
54
+
55
+ ```bash
56
+ npx -y angular-doctor@latest . --verbose --diff
57
+ ```
58
+
59
+ …after making Angular changes, catching issues before they reach review.
60
+
61
+ ---
62
+
43
63
  ## 🧭 Workspace support
44
64
 
45
65
  Angular Doctor automatically detects multiple projects:
package/dist/cli.mjs CHANGED
@@ -1160,7 +1160,7 @@ const selectProjects = async (rootDirectory, projectFlag, skipPrompts) => {
1160
1160
 
1161
1161
  //#endregion
1162
1162
  //#region src/cli.ts
1163
- const VERSION = "1.1.3";
1163
+ const VERSION = "1.2.0";
1164
1164
  const exitWithHint = () => {
1165
1165
  logger.break();
1166
1166
  logger.log("Cancelled.");
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env bash
2
+ # Installs the angular-doctor skill into your AI coding agent.
3
+ # Supports: Cursor, Claude Code, Windsurf, Amp Code, Codex, Gemini CLI, OpenCode
4
+ #
5
+ # Usage:
6
+ # curl -fsSL https://raw.githubusercontent.com/antonygiomarxdev/angular-doctor/main/install-skill.sh | bash
7
+
8
+ set -euo pipefail
9
+
10
+ SKILL_NAME="angular-doctor"
11
+ SKILL_DESCRIPTION="Run after making Angular changes to catch issues early. Use when reviewing code, finishing a feature, or fixing bugs in an Angular project."
12
+ SKILL_COMMAND="npx -y angular-doctor@latest . --verbose --diff"
13
+
14
+ SKILL_BODY="# Angular Doctor
15
+
16
+ Scans your Angular codebase for performance, correctness, and architecture issues. Outputs a 0-100 score with actionable diagnostics.
17
+
18
+ ## Usage
19
+
20
+ \`\`\`bash
21
+ ${SKILL_COMMAND}
22
+ \`\`\`
23
+
24
+ ## Workflow
25
+
26
+ Run after making changes to catch issues early. Fix errors first, then re-run to verify the score improved."
27
+
28
+ installed=0
29
+
30
+ # ---------------------------------------------------------------------------
31
+ # Cursor β€” .cursor/rules/angular-doctor.mdc
32
+ # ---------------------------------------------------------------------------
33
+ if [ -d ".cursor" ] || command -v cursor &>/dev/null; then
34
+ mkdir -p ".cursor/rules"
35
+ cat > ".cursor/rules/${SKILL_NAME}.mdc" <<EOF
36
+ ---
37
+ description: ${SKILL_DESCRIPTION}
38
+ globs:
39
+ alwaysApply: false
40
+ ---
41
+
42
+ ${SKILL_BODY}
43
+ EOF
44
+ echo "βœ“ Installed for Cursor (.cursor/rules/${SKILL_NAME}.mdc)"
45
+ installed=$((installed + 1))
46
+ fi
47
+
48
+ # ---------------------------------------------------------------------------
49
+ # Claude Code β€” .claude/SKILL.md
50
+ # ---------------------------------------------------------------------------
51
+ if command -v claude &>/dev/null || [ -d ".claude" ]; then
52
+ mkdir -p ".claude"
53
+ cat > ".claude/${SKILL_NAME}.md" <<EOF
54
+ ---
55
+ name: ${SKILL_NAME}
56
+ description: ${SKILL_DESCRIPTION}
57
+ ---
58
+
59
+ ${SKILL_BODY}
60
+ EOF
61
+ echo "βœ“ Installed for Claude Code (.claude/${SKILL_NAME}.md)"
62
+ installed=$((installed + 1))
63
+ fi
64
+
65
+ # ---------------------------------------------------------------------------
66
+ # Windsurf β€” .windsurf/rules/angular-doctor.md
67
+ # ---------------------------------------------------------------------------
68
+ if [ -d ".windsurf" ] || command -v windsurf &>/dev/null; then
69
+ mkdir -p ".windsurf/rules"
70
+ cat > ".windsurf/rules/${SKILL_NAME}.md" <<EOF
71
+ ---
72
+ description: ${SKILL_DESCRIPTION}
73
+ ---
74
+
75
+ ${SKILL_BODY}
76
+ EOF
77
+ echo "βœ“ Installed for Windsurf (.windsurf/rules/${SKILL_NAME}.md)"
78
+ installed=$((installed + 1))
79
+ fi
80
+
81
+ # ---------------------------------------------------------------------------
82
+ # Amp Code β€” .amp/skills/angular-doctor.md
83
+ # ---------------------------------------------------------------------------
84
+ if command -v amp &>/dev/null || [ -d ".amp" ]; then
85
+ mkdir -p ".amp/skills"
86
+ cat > ".amp/skills/${SKILL_NAME}.md" <<EOF
87
+ ---
88
+ name: ${SKILL_NAME}
89
+ description: ${SKILL_DESCRIPTION}
90
+ ---
91
+
92
+ ${SKILL_BODY}
93
+ EOF
94
+ echo "βœ“ Installed for Amp Code (.amp/skills/${SKILL_NAME}.md)"
95
+ installed=$((installed + 1))
96
+ fi
97
+
98
+ # ---------------------------------------------------------------------------
99
+ # Codex (OpenAI) β€” appended to AGENTS.md
100
+ # ---------------------------------------------------------------------------
101
+ if command -v codex &>/dev/null || [ -f "AGENTS.md" ]; then
102
+ AGENTS_ENTRY="
103
+ ## ${SKILL_NAME}
104
+
105
+ ${SKILL_DESCRIPTION}
106
+
107
+ Run \`${SKILL_COMMAND}\` after making Angular changes.
108
+ "
109
+ if [ -f "AGENTS.md" ]; then
110
+ if ! grep -q "${SKILL_NAME}" AGENTS.md 2>/dev/null; then
111
+ printf '\n%s' "${AGENTS_ENTRY}" >> AGENTS.md
112
+ echo "βœ“ Installed for Codex (appended to AGENTS.md)"
113
+ installed=$((installed + 1))
114
+ else
115
+ echo " Codex: ${SKILL_NAME} already present in AGENTS.md, skipping."
116
+ fi
117
+ else
118
+ printf '%s' "${AGENTS_ENTRY}" > AGENTS.md
119
+ echo "βœ“ Installed for Codex (created AGENTS.md)"
120
+ installed=$((installed + 1))
121
+ fi
122
+ fi
123
+
124
+ # ---------------------------------------------------------------------------
125
+ # Gemini CLI β€” appended to GEMINI.md
126
+ # ---------------------------------------------------------------------------
127
+ if command -v gemini &>/dev/null || [ -f "GEMINI.md" ]; then
128
+ GEMINI_ENTRY="
129
+ ## ${SKILL_NAME}
130
+
131
+ ${SKILL_DESCRIPTION}
132
+
133
+ Run \`${SKILL_COMMAND}\` after making Angular changes.
134
+ "
135
+ if [ -f "GEMINI.md" ]; then
136
+ if ! grep -q "${SKILL_NAME}" GEMINI.md 2>/dev/null; then
137
+ printf '\n%s' "${GEMINI_ENTRY}" >> GEMINI.md
138
+ echo "βœ“ Installed for Gemini CLI (appended to GEMINI.md)"
139
+ installed=$((installed + 1))
140
+ else
141
+ echo " Gemini CLI: ${SKILL_NAME} already present in GEMINI.md, skipping."
142
+ fi
143
+ else
144
+ printf '%s' "${GEMINI_ENTRY}" > GEMINI.md
145
+ echo "βœ“ Installed for Gemini CLI (created GEMINI.md)"
146
+ installed=$((installed + 1))
147
+ fi
148
+ fi
149
+
150
+ # ---------------------------------------------------------------------------
151
+ # OpenCode β€” .opencode/skills/angular-doctor.md
152
+ # ---------------------------------------------------------------------------
153
+ if command -v opencode &>/dev/null || [ -d ".opencode" ]; then
154
+ mkdir -p ".opencode/skills"
155
+ cat > ".opencode/skills/${SKILL_NAME}.md" <<EOF
156
+ ---
157
+ name: ${SKILL_NAME}
158
+ description: ${SKILL_DESCRIPTION}
159
+ ---
160
+
161
+ ${SKILL_BODY}
162
+ EOF
163
+ echo "βœ“ Installed for OpenCode (.opencode/skills/${SKILL_NAME}.md)"
164
+ installed=$((installed + 1))
165
+ fi
166
+
167
+ # ---------------------------------------------------------------------------
168
+ # Summary
169
+ # ---------------------------------------------------------------------------
170
+ echo ""
171
+ if [ "${installed}" -eq 0 ]; then
172
+ echo "No supported AI coding agent detected in this directory."
173
+ echo ""
174
+ echo "Supported agents: Cursor, Claude Code, Windsurf, Amp Code, Codex, Gemini CLI, OpenCode"
175
+ echo ""
176
+ echo "To install manually, copy skills/angular-doctor/SKILL.md into your agent's rules directory."
177
+ else
178
+ echo "angular-doctor skill installed for ${installed} agent(s)."
179
+ echo ""
180
+ echo "Your coding agent will now run angular-doctor automatically after Angular changes."
181
+ fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-doctor",
3
- "version": "1.1.3",
3
+ "version": "1.2.0",
4
4
  "author": "Antony Giomar <antonygiomarx@gmail.com>",
5
5
  "description": "Diagnose and fix issues in your Angular app",
6
6
  "repository": {
@@ -16,7 +16,9 @@
16
16
  "bin": "bin/angular-doctor.js",
17
17
  "files": [
18
18
  "dist",
19
- "bin"
19
+ "bin",
20
+ "skills",
21
+ "install-skill.sh"
20
22
  ],
21
23
  "type": "module",
22
24
  "exports": {
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: angular-doctor
3
+ description: Run after making Angular changes to catch issues early. Use when reviewing code, finishing a feature, or fixing bugs in an Angular project.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Angular Doctor
8
+
9
+ Scans your Angular codebase for performance, correctness, and architecture issues. Outputs a 0-100 score with actionable diagnostics.
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ npx -y angular-doctor@latest . --verbose --diff
15
+ ```
16
+
17
+ ## Workflow
18
+
19
+ Run after making changes to catch issues early. Fix errors first, then re-run to verify the score improved.