azclaude-copilot 0.4.20 → 0.4.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azclaude-copilot",
3
- "version": "0.4.20",
3
+ "version": "0.4.21",
4
4
  "description": "AI coding environment — 33 commands, 8 skills, 13 agents, memory, reflexes, evolution. Install: npx azclaude-copilot@latest, then open Claude Code.",
5
5
  "bin": {
6
6
  "azclaude": "bin/cli.js",
@@ -9,6 +9,9 @@ description: >
9
9
  "modern design", or any task where the primary deliverable is a rendered
10
10
  interface. Also fires when /copilot reaches a milestone whose files include
11
11
  index.html, .jsx, .tsx, .css, or .scss.
12
+ Do NOT trigger when: user asks to review existing UI (use code-reviewer),
13
+ request is code-only with no visual deliverable, or a strict brand guide
14
+ already defines all visual decisions.
12
15
  ---
13
16
 
14
17
  # Frontend Design Skill
@@ -117,6 +120,22 @@ Do not apply maximalist code budget to a minimalist direction. The restraint IS
117
120
 
118
121
  ---
119
122
 
123
+ ## Ambiguity Protocol
124
+
125
+ If the request is vague (no content, no purpose stated):
126
+ → Ask: "What does this interface do, and who uses it? One sentence."
127
+
128
+ If no framework is specified and CLAUDE.md has no stack:
129
+ → Default to vanilla HTML/CSS/JS. State this assumption before writing.
130
+
131
+ If the user asks for "something beautiful" with no further constraint:
132
+ → Pick a direction from the aesthetic table, state it explicitly ("Going with Brutally Minimal — here's why"), then proceed. Do not ask for permission.
133
+
134
+ If a request conflicts with constitution.md visual constraints:
135
+ → Flag the conflict: "constitution.md restricts X — I'll use Y instead." Do not silently override.
136
+
137
+ ---
138
+
120
139
  ## Step 4: Production Requirements
121
140
 
122
141
  - Entry file: `index.html` (always — even for React, the build output target is index.html)
@@ -62,16 +62,30 @@ description: >
62
62
 
63
63
  ### The formula:
64
64
  ```
65
- description =
65
+ description =
66
66
  WHAT it does (1 sentence)
67
67
  + ACTIONS that trigger it (write, review, fix, audit, check, scan...)
68
68
  + OBJECTS it applies to (keys, tokens, passwords, .env, connections...)
69
69
  + PATTERNS it detects (injection, XSS, CSRF, eval, exec...)
70
70
  + COMMANDS that invoke it (/audit, /ship, security...)
71
+ + INPUT CONSTRAINTS where it does NOT apply (e.g., "not for non-JS projects")
71
72
  + CONTEXTS where it should fire even without explicit request
72
73
  + "Even if the user doesn't explicitly mention X, use this skill when Y"
74
+ + "Do NOT trigger when: [anti-triggers — prevents false positives]"
73
75
  ```
74
76
 
77
+ ### Input constraints (stolen from production skill templates):
78
+ Most skills trigger too broadly without explicit boundaries.
79
+ Add a `Do NOT trigger when:` line to the frontmatter description:
80
+ ```yaml
81
+ description: >
82
+ ...all the trigger keywords...
83
+ Do NOT trigger when: user is asking a conceptual question (not building),
84
+ when a design system already exists in the project (defer to it),
85
+ or when the request is a code review (use code-reviewer instead).
86
+ ```
87
+ This prevents false positive triggering that wastes context and confuses the user.
88
+
75
89
  The last line is critical. Anthropic's own docs say:
76
90
  "Claude has a tendency to undertrigger skills. Make descriptions pushy."
77
91
 
@@ -116,8 +130,23 @@ Numbered steps. Imperative form. What Claude DOES, not what Claude SHOULD do.
116
130
  - Written as positive directives: "Always X" not "Don't do Y"
117
131
  - Specific, testable, unambiguous
118
132
 
133
+ ## Ambiguity Protocol
134
+ *Every skill should define what happens when input is unclear.*
135
+
136
+ If input is vague (no framework specified, no target stated):
137
+ → Ask: "[specific question, e.g., 'Which framework — React, Vue, or vanilla HTML?']"
138
+
139
+ If input is malformed or out of scope:
140
+ → Say: "[specific message, e.g., 'This skill handles UI creation. For code review, use /audit instead.']"
141
+
142
+ If a required prerequisite is missing (e.g., no CLAUDE.md, no design system):
143
+ → Do: "[specific fallback, e.g., 'Assume stack from package.json, proceed with default aesthetic']"
144
+
145
+ **Rule:** Never silently fail or produce partial output. Either ask, redirect, or state the assumption explicitly.
146
+
119
147
  ## Examples
120
148
  One concrete input → output example that shows the expected behavior.
149
+ Include at least one edge case / failure case: what happens when input is ambiguous, malformed, or out of scope.
121
150
 
122
151
  ## References
123
152
  For detailed [topic], read: `references/detailed-guide.md`
@@ -266,6 +295,8 @@ From Anthropic's skill-development skill + AZCLAUDE's debate engine research:
266
295
  ```
267
296
  □ Description has 30+ trigger keywords (pushy, not modest)
268
297
  □ Description ends with "even if the user doesn't explicitly ask"
298
+ □ Description includes "Do NOT trigger when:" anti-trigger line
299
+ □ Ambiguity Protocol defined: what to ask/do when input is vague, malformed, or missing prereqs
269
300
  □ SKILL.md body is under 2,000 words
270
301
  □ All detailed content is in references/, not SKILL.md
271
302
  □ Workflow uses imperative form ("Run X" not "You should run X")