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 +20 -0
- package/dist/cli.mjs +1 -1
- package/install-skill.sh +181 -0
- package/package.json +4 -2
- package/skills/angular-doctor/SKILL.md +19 -0
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.
|
|
1163
|
+
const VERSION = "1.2.0";
|
|
1164
1164
|
const exitWithHint = () => {
|
|
1165
1165
|
logger.break();
|
|
1166
1166
|
logger.log("Cancelled.");
|
package/install-skill.sh
ADDED
|
@@ -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.
|
|
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.
|