The .claude-plugin/plugin.json agents array still listed only 3 personas;
add web-performance-auditor so the manifest matches the agents/ directory
(now 4). Verified with `claude plugin validate .`.
- README: remove "(Recommended)" from the Antigravity CLI install section
(Claude Code already carries that badge); bump the commands/ count to 8.
- Add commands/webperf.toml so Antigravity users get the /webperf
web-performance-auditor command at parity with Claude and Gemini.
Follow-up after the #222 merge left the new persona/command only half-wired:
- Register web-performance-auditor in the README agents table, the
getting-started "Using Agents" table, and CLAUDE.md (3 -> 4 personas).
- Document /webperf in CLAUDE.md and the getting-started command table.
- Add .gemini/commands/webperf.toml so Gemini users get /webperf too
(mirrors the Claude command; persona invoked inline rather than spawned).
Addy's review on #222: leading with "Invoke the agent-skills:performance-optimization skill" risks the auditor persona drifting into fixing code instead of auditing, which breaks the reviewer-vs-implementer line. The persona already delegates to skills/performance-optimization/SKILL.md from its Rules (step 9), so nothing is lost by letting the command spawn the persona directly.
Rename Core Process to Process, and move observability next to
implementation in the lifecycle sequence so it no longer contradicts
the skill's own instrument-as-you-build rule.
Fills the gap between debugging-and-error-recovery (dev-time) and
shipping-and-launch (launch-day monitoring): how to instrument code
as it's built so production behavior is visible and diagnosable.
Covers structured logging with correlation IDs, RED/USE metrics with
cardinality guidance, OpenTelemetry tracing, and symptom-based
alerting with runbooks. Follows the standard skill anatomy (Overview,
When to Use, Process, Rationalizations, Red Flags, Verification).
Registered in README tables/structure, CLAUDE.md phases, and the
using-agent-skills discovery tree (hooks/session-start-test.sh passes).
Package name was wrong (@anthropic/chrome-devtools-mcp does not exist).
Adds -y to skip npx confirmation prompt and --autoConnect as the
recommended default to connect automatically to a running Chrome instance.
Per federicobartoli's review on #220: the clean-rollback guarantee depended
on "one commit per task" but said nothing about pre-existing uncommitted
changes, which could get absorbed into per-task commits.
- New step: inspect `git status --porcelain` before autonomous execution;
if there are changes outside the expected planning artifacts (SPEC.md,
docs/SPEC.md, spec/*, tasks/plan.md, tasks/todo.md), stop and ask the user
to commit/stash/confirm.
- Commit a generated tasks/plan.md as a single preparatory commit after
approval so it doesn't bleed into the first task.
- Per task, stage only the files that task touched plus its status update
(no blind `git add -A`).
No new between-task gate, so the single-checkpoint design is preserved.
Mirrored across the Claude and Gemini commands.
Per federicobartoli's note on #219: the table was headed "Top 10" but
listed only 8. Add the two missing entries (LLM04 Data and Model Poisoning,
LLM09 Misinformation) so the heading matches the contents.
Per nucliweb's review:
- Resolve OWASP numbering inconsistency: rename the prevention section to
"OWASP Top 10 Prevention Patterns" and drop the per-item numbers so it no
longer implies a ranking that conflicts with the 2021 quick-reference table.
- Harden the SSRF example against DNS rebinding/TOCTOU: resolve all records
and reject if any is non-unicast, plus a caveat that fetch re-resolves and
pointers to request-filtering-agent / ssrf-req-filter for high-risk surfaces.
- Add LLM08 (Vector and Embedding Weaknesses) to the LLM section and the
reference table, covering per-tenant embedding isolation and poisoned docs.
- Promote "Threat Model First" to a "## Process" header per the repo's skill
anatomy convention.
- Make the LLM "GOOD" example parse defensively (JSON.parse + schema in a
try/catch) so it models handling untrusted output end to end.
Per review feedback on #220:
- Drop the `fast` alias (implied skipping verification); keep `auto`
(canonical) and `all`, and state explicitly that autonomous mode is not
faster per task — it only removes human stepping between tasks.
- Tighten spec detection to a closed set of paths (SPEC.md at root,
docs/SPEC.md, or spec/*.md) instead of "SPEC.md (or equivalent)", so a
stray README can't be treated as a spec.
- Define approval as an unambiguous affirmative; hedged responses are not
approval.
- Add resume contract: re-invoke /build auto to pick up the next task.
- Add a high-risk catch-all: anything you can't undo with `git revert`.
- Add dependency fallback: execute in declared plan order when deps aren't
explicit.
Mirrored across the Claude and Gemini commands.
Adds an autonomous mode to the build command: once a spec exists,
`/build auto` (also `all`/`fast`) generates the plan if missing, takes a
single plan approval, then implements every task in dependency order with
full TDD and a commit per task.
Removes the manual stepping between tasks without removing verification —
each task still earns a passing test and its own commit, so any point is a
clean rollback. Auto-pauses for human input on failures, spec ambiguity,
or high-risk/irreversible tasks (auth, destructive migrations, payments,
deletes, deploys, secrets).
- .claude/commands/build.md: two-mode definition (default vs auto)
- .gemini/commands/build.toml: mirrored for Gemini CLI
- README.md, docs/getting-started.md: document the new mode
- New "AI / LLM Features" review scope mapped to the OWASP LLM Top 10
- SSRF question added to third-party integrations
- Rules updated to start from trust boundaries (STRIDE) and to check the
LLM Top 10 and supply-chain risk
Strengthen the security-and-hardening skill with the highest-value gaps
without changing its secure-coding-for-builders scope:
- Threat Model First: a STRIDE/trust-boundary process step up front, so the
skill drives proactive design (OWASP A04) instead of only listing controls
- SSRF prevention (§7): allowlist + private-IP-block pattern; the one OWASP
Top 10 item previously listed but never exemplified
- Supply-chain hygiene: lockfile/npm ci, postinstall and typosquat risks (A06)
- Securing AI/LLM features: prompt injection, untrusted model output, secrets
in prompts, excessive agency, unbounded consumption (OWASP LLM Top 10 2025)
- Secret-leak response: rotate, don't just rewrite history
- Threaded the new areas into the review checklist, rationalizations,
red flags, and verification
Skill grows 349 -> 448 lines (+28%). Validator passes.
Replace relative path source ("./") with the canonical GitHub source
object format ({ "source": "github", "repo": "owner/repo" }).
This resolves schema validation errors seen in Claude CLI v2.1.156+
where the relative path format caused 'Invalid input' errors in
strict marketplace JSON validators.
Also adds:
- $schema reference for editor autocomplete and validation
- top-level description field (was nested under metadata)
- owner URL, homepage, license, and keywords fields
Closes#212
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The hard-coded `"version": "1.0.0"` in .claude-plugin/plugin.json
pins every install at the snapshot taken when that string was first
set. Per the Claude Code marketplace docs:
> Setting `version` pins the plugin. If `plugin.json` declares
> `"version": "1.0.0"`, pushing new commits without changing that
> string does nothing for existing users, because Claude Code sees
> the same version and keeps the cached copy. Bump the field on
> every release, or omit it to use the commit SHA.
> https://code.claude.com/docs/en/plugin-marketplaces#version-resolution-and-release-channels
Two consequences observed in practice:
1. Users who ran `/plugin install agent-skills@addy-agent-skills`
weeks ago do not receive the 37 commits landed on main since
the 0.6.0 release (including the new `doubt-driven-development`
and `interview-me` skills, plus several frontmatter and
cross-reference fixes). `claude plugin update` reports no
change because the cached and remote `version` strings match.
2. The release tags `0.5.0` and `0.6.0` have shipped with no
corresponding bump in `plugin.json`, so the existing release
cadence already does not feed Claude Code's update mechanism.
Dropping the `version` field switches the plugin to commit-SHA
versioning, which the same docs explicitly recommend:
> If you omit `version` and host this marketplace in git, every
> commit automatically counts as a new version. This is the
> simplest setup for internal or actively-developed plugins.
Given the repo's commit cadence (37 commits / ~3 weeks between
0.6.0 and HEAD) and its content profile (mostly markdown SKILL.md
files with low per-commit breakage risk), commit-SHA versioning
fits this project better than manual semver bumps. Git tags and
GitHub Releases remain available as editorial milestones for
changelog and announcements; they just no longer need to drive
the update mechanism.
Closes#145.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A bare confidence percentage gives no signal about what's blocking clarity.
When confidence is below ~70%, the skill now requires a one-line reason on
the same CONFIDENCE line so the user knows exactly what the interview still
needs to surface.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
GitHub Copilot requires custom agent files to be named *.agent.md.
The previous instructions copied them as *.md, which Copilot silently
ignores, so agents would never be available in Copilot Chat.
Changes:
- Rename all three cp commands to use the .agent.md suffix
- Add mkdir -p .github/agents (was missing, cp would have failed)
- Add a callout block explaining the naming requirement with a link
to the VS Code custom agents docs
- Update section heading from "(agents.md)" to "(*.agent.md)"
Fixes#179
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Disambiguate the using-agent-skills flowchart so interview-me and
idea-refine no longer match the same condition top-to-bottom
("Don't know what you want yet?" vs "Have a rough concept, need
variants?").
- Add "grill me" to interview-me's frontmatter description and the
When to Use trigger list (it was already mentioned in README).
- Reorder sections: Example and Interaction with Other Skills now
precede Common Rationalizations and Red Flags, so the persuasive
example lands before the rationalization table.
Per review by @nucliweb on #164.
idea-refine: rewrite the description to follow the repository's
documented "Use when..." trigger convention (AGENTS.md). The previous
description was 135 characters, redundant, and used the skill name
itself as the only trigger phrase, making it the only skill not aligned
with how the other 21 skills self-describe.
browser-testing-with-devtools: surface the Chrome DevTools MCP
dependency at the top of the description and explicitly note the
requirement, so agents that route by MCP availability can detect it
without parsing the body.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>