From dd4c0840423217e34ec2816d056e4cc5e77ecf8c Mon Sep 17 00:00:00 2001 From: "ci[bot]" Date: Thu, 18 Jun 2026 16:04:36 +0000 Subject: [PATCH] :package: deps(thirdparty): update snapshots --- .../.claude-plugin/marketplace.json | 106 +- .../.claude-plugin/plugin.json | 4 +- antigravity-awesome-skills/CATALOG.md | 36 +- antigravity-awesome-skills/CHANGELOG.md | 45 + antigravity-awesome-skills/README.md | 34 +- antigravity-awesome-skills/SOURCE.md | 4 +- .../apps/web-app/public/llms.txt | 8 +- .../apps/web-app/public/sitemap.xml | 344 ++--- .../apps/web-app/public/skills.json.backup | 574 +++++++ .../assets/star-history.png | Bin 51003 -> 50802 bytes antigravity-awesome-skills/data/aliases.json | 16 + antigravity-awesome-skills/data/bundles.json | 13 + antigravity-awesome-skills/data/catalog.json | 607 +++++++- .../data/plugin-compatibility.json | 510 +++++- .../data/skills_index.json | 574 +++++++ .../docs/integrations/jetski-cortex.md | 6 +- .../jetski-gemini-loader/README.md | 2 +- .../docs/maintainers/repo-growth-seo.md | 6 +- .../docs/maintainers/skills-update-guide.md | 2 +- .../docs/users/bundles.md | 2 +- .../docs/users/claude-code-skills.md | 2 +- .../docs/users/gemini-cli-skills.md | 2 +- .../docs/users/getting-started.md | 2 +- .../docs/users/kiro-integration.md | 2 +- .../docs/users/usage.md | 8 +- .../docs/users/visual-guide.md | 8 +- antigravity-awesome-skills/package-lock.json | 4 +- antigravity-awesome-skills/package.json | 4 +- .../.claude-plugin/plugin.json | 4 +- .../skills/ab-test-setup/SKILL.md | 14 + .../skills/astropy/references/coordinates.md | 9 + .../skills/astropy/references/cosmology.md | 8 + .../skills/astropy/references/fits.md | 8 + .../skills/astropy/references/tables.md | 8 + .../skills/astropy/references/time.md | 7 + .../skills/astropy/references/units.md | 9 + .../references/wcs_and_other_modules.md | 9 + .../skills/browser-extension-builder/SKILL.md | 2 +- .../skills/ckw-design/SKILL.md | 129 ++ .../skills/deterministic-design/SKILL.md | 56 + .../skills/lint-and-validate/SKILL.md | 4 +- .../skills/lookdev-auto/SKILL.md | 102 ++ .../skills/lookdev/SKILL.md | 229 +++ .../skills/macos-screen-recorder/SKILL.md | 59 + .../skills/pr-merge-champion/SKILL.md | 116 ++ .../skills/programmatic-seo/SKILL.md | 11 + .../skills/schema-markup/SKILL.md | 11 + .../skills/screenstudio-alt/SKILL.md | 91 ++ .../skills/super-code/SKILL.md | 209 +++ .../skills/super-code/bash/SKILL.md | 292 ++++ .../skills/super-code/c/SKILL.md | 263 ++++ .../skills/super-code/cpp/SKILL.md | 271 ++++ .../skills/super-code/csharp/SKILL.md | 276 ++++ .../skills/super-code/dart/SKILL.md | 327 ++++ .../skills/super-code/elixir/SKILL.md | 366 +++++ .../skills/super-code/go/SKILL.md | 234 +++ .../skills/super-code/java/SKILL.md | 230 +++ .../skills/super-code/kotlin/SKILL.md | 281 ++++ .../skills/super-code/php/SKILL.md | 316 ++++ .../skills/super-code/python/SKILL.md | 315 ++++ .../skills/super-code/ruby/SKILL.md | 306 ++++ .../skills/super-code/rust/SKILL.md | 289 ++++ .../skills/super-code/scala/SKILL.md | 302 ++++ .../skills/super-code/swift/SKILL.md | 299 ++++ .../skills/super-code/typescript/SKILL.md | 286 ++++ .../skills/web-media-getter/SKILL.md | 119 ++ .../skills/youtube-seo-optimizer/SKILL.md | 18 +- .../.codex-plugin/plugin.json | 4 +- .../skills/ab-test-setup/SKILL.md | 14 + .../skills/astropy/references/coordinates.md | 9 + .../skills/astropy/references/cosmology.md | 8 + .../skills/astropy/references/fits.md | 8 + .../skills/astropy/references/tables.md | 8 + .../skills/astropy/references/time.md | 7 + .../skills/astropy/references/units.md | 9 + .../references/wcs_and_other_modules.md | 9 + .../skills/browser-extension-builder/SKILL.md | 2 +- .../skills/ckw-design/SKILL.md | 129 ++ .../skills/deterministic-design/SKILL.md | 56 + .../skills/lint-and-validate/SKILL.md | 4 +- .../skills/lookdev-auto/SKILL.md | 102 ++ .../skills/lookdev/SKILL.md | 229 +++ .../skills/macos-screen-recorder/SKILL.md | 59 + .../skills/pr-merge-champion/SKILL.md | 116 ++ .../skills/programmatic-seo/SKILL.md | 11 + .../skills/schema-markup/SKILL.md | 11 + .../skills/screenstudio-alt/SKILL.md | 91 ++ .../skills/super-code/SKILL.md | 209 +++ .../skills/super-code/bash/SKILL.md | 292 ++++ .../skills/super-code/c/SKILL.md | 263 ++++ .../skills/super-code/cpp/SKILL.md | 271 ++++ .../skills/super-code/csharp/SKILL.md | 276 ++++ .../skills/super-code/dart/SKILL.md | 327 ++++ .../skills/super-code/elixir/SKILL.md | 366 +++++ .../skills/super-code/go/SKILL.md | 234 +++ .../skills/super-code/java/SKILL.md | 230 +++ .../skills/super-code/kotlin/SKILL.md | 281 ++++ .../skills/super-code/php/SKILL.md | 316 ++++ .../skills/super-code/python/SKILL.md | 315 ++++ .../skills/super-code/ruby/SKILL.md | 306 ++++ .../skills/super-code/rust/SKILL.md | 289 ++++ .../skills/super-code/scala/SKILL.md | 302 ++++ .../skills/super-code/swift/SKILL.md | 299 ++++ .../skills/super-code/typescript/SKILL.md | 286 ++++ .../skills/web-media-getter/SKILL.md | 119 ++ .../skills/youtube-seo-optimizer/SKILL.md | 18 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/ab-test-setup/SKILL.md | 14 + .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/ab-test-setup/SKILL.md | 14 + .../skills/programmatic-seo/SKILL.md | 11 + .../skills/schema-markup/SKILL.md | 11 + .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/lint-and-validate/SKILL.md | 4 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/ab-test-setup/SKILL.md | 14 + .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/lint-and-validate/SKILL.md | 4 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/ab-test-setup/SKILL.md | 14 + .../skills/programmatic-seo/SKILL.md | 11 + .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/ab-test-setup/SKILL.md | 14 + .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/schema-markup/SKILL.md | 11 + .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../.codex-plugin/plugin.json | 2 +- .../skills/ab-test-setup/SKILL.md | 14 + .../skills/apple-notes-search/SKILL.md | 122 ++ .../skills/astropy/references/coordinates.md | 9 + .../skills/astropy/references/cosmology.md | 8 + .../skills/astropy/references/fits.md | 8 + .../skills/astropy/references/tables.md | 8 + .../skills/astropy/references/time.md | 7 + .../skills/astropy/references/units.md | 9 + .../references/wcs_and_other_modules.md | 9 + .../skills/browser-extension-builder/SKILL.md | 2 +- .../skills/ckw-design/SKILL.md | 129 ++ .../skills/deterministic-design/SKILL.md | 56 + .../skills/lint-and-validate/SKILL.md | 4 +- .../skills/lookdev-auto/SKILL.md | 102 ++ .../skills/lookdev/SKILL.md | 229 +++ .../skills/macos-screen-recorder/SKILL.md | 59 + .../skills/pr-merge-champion/SKILL.md | 116 ++ .../skills/programmatic-seo/SKILL.md | 11 + .../skills/schema-markup/SKILL.md | 11 + .../skills/screenstudio-alt/SKILL.md | 91 ++ .../skills/super-code/SKILL.md | 209 +++ .../skills/super-code/bash/SKILL.md | 292 ++++ .../skills/super-code/c/SKILL.md | 263 ++++ .../skills/super-code/cpp/SKILL.md | 271 ++++ .../skills/super-code/csharp/SKILL.md | 276 ++++ .../skills/super-code/dart/SKILL.md | 327 ++++ .../skills/super-code/elixir/SKILL.md | 366 +++++ .../skills/super-code/go/SKILL.md | 234 +++ .../skills/super-code/java/SKILL.md | 230 +++ .../skills/super-code/kotlin/SKILL.md | 281 ++++ .../skills/super-code/php/SKILL.md | 316 ++++ .../skills/super-code/python/SKILL.md | 315 ++++ .../skills/super-code/ruby/SKILL.md | 306 ++++ .../skills/super-code/rust/SKILL.md | 289 ++++ .../skills/super-code/scala/SKILL.md | 302 ++++ .../skills/super-code/swift/SKILL.md | 299 ++++ .../skills/super-code/typescript/SKILL.md | 286 ++++ .../skills/web-media-getter/SKILL.md | 119 ++ .../skills/youtube-seo-optimizer/SKILL.md | 18 +- antigravity-awesome-skills/skills_index.json | 574 +++++++ brooks-lint/.brooks-lint.example.yaml | 9 + brooks-lint/.codex-plugin/plugin.json | 2 +- .../.github/actions/brooks-lint/action.yml | 38 +- brooks-lint/AGENTS.md | 2 +- brooks-lint/CHANGELOG.md | 22 + brooks-lint/CLAUDE.md | 7 +- brooks-lint/CONTRIBUTING.md | 2 +- brooks-lint/README.md | 46 +- brooks-lint/README.zh-CN.md | 46 +- brooks-lint/SOURCE.md | 4 +- brooks-lint/docs/github-action-example.yml | 6 +- brooks-lint/evals/benchmark-corpus.json | 555 +++++++ brooks-lint/evals/evals.json | 75 +- brooks-lint/package.json | 1 + brooks-lint/scripts/benchmark.mjs | 119 ++ brooks-lint/scripts/bump-version.mjs | 10 +- brooks-lint/scripts/ci-gate.mjs | 57 + brooks-lint/scripts/ci-review.mjs | 50 +- brooks-lint/scripts/eval-utils.mjs | 4 +- brooks-lint/scripts/history.mjs | 84 +- brooks-lint/scripts/report-parse.mjs | 177 +++ brooks-lint/scripts/run-evals.mjs | 67 +- brooks-lint/scripts/sarif.mjs | Bin 0 -> 3872 bytes brooks-lint/scripts/validate-repo.mjs | 2 + brooks-lint/scripts/validate-repo.test.mjs | 366 ++++- brooks-lint/skills/_shared/common.md | 51 +- brooks-lint/skills/_shared/decay-risks.md | 12 +- .../skills/brooks-health/health-guide.md | 10 + .../skills/brooks-sweep/sweep-guide.md | 2 +- superpowers/.claude-plugin/marketplace.json | 2 +- superpowers/.claude-plugin/plugin.json | 2 +- superpowers/.codex-plugin/plugin.json | 3 +- superpowers/.cursor-plugin/plugin.json | 4 +- superpowers/.gitignore | 6 + superpowers/.kimi-plugin/plugin.json | 38 + superpowers/.opencode/INSTALL.md | 17 +- superpowers/.opencode/plugins/superpowers.js | 16 +- superpowers/.pi/extensions/superpowers.ts | 121 ++ superpowers/.pre-commit-config.yaml | 21 + superpowers/.version-bump.json | 1 + superpowers/CLAUDE.md | 4 + superpowers/README.md | 123 +- superpowers/RELEASE-NOTES.md | 113 ++ superpowers/SOURCE.md | 4 +- superpowers/docs/README.kimi.md | 88 ++ superpowers/docs/README.opencode.md | 22 +- superpowers/docs/porting-to-a-new-harness.md | 826 ++++++++++ .../2026-03-23-codex-app-compatibility.md | 2 + .../plans/2026-04-06-worktree-rototill.md | 29 +- .../plans/2026-05-06-lift-drill-into-evals.md | 1374 +++++++++++++++++ .../2026-05-07-pi-extension-and-evals.md | 143 ++ ...6-06-09-sdd-task-scoped-review-dispatch.md | 774 ++++++++++ .../2026-06-09-visual-companion-issues.md | 352 +++++ ...6-06-10-visual-companion-auth-hardening.md | 785 ++++++++++ ...-visual-companion-final-hardening-fixup.md | 1126 ++++++++++++++ .../2026-04-06-worktree-rototill-design.md | 15 +- ...-05-platform-neutral-config-refs-design.md | 77 + ...026-05-05-platform-neutral-prose-design.md | 94 ++ ...26-05-05-platform-neutral-readme-design.md | 47 + ...2026-05-06-lift-drill-into-evals-design.md | 247 +++ ...-sdd-task-scoped-review-dispatch-design.md | 160 ++ ...10-positive-instruction-redesign-design.md | 178 +++ .../2026-06-10-strict-cost-sdd-design.md | 265 ++++ ...-visual-companion-auth-hardening-design.md | 225 +++ ...-companion-final-hardening-fixup-design.md | 254 +++ superpowers/docs/testing.md | 314 +--- superpowers/docs/windows/polyglot-hooks.md | 196 +-- superpowers/gemini-extension.json | 2 +- superpowers/hooks/hooks-codex.json | 16 + superpowers/hooks/session-start | 16 +- superpowers/hooks/session-start-codex | 26 + superpowers/package.json | 21 +- superpowers/scripts/lint-shell.sh | 211 +++ superpowers/scripts/sync-to-codex-plugin.sh | 10 +- superpowers/skills/brainstorming/SKILL.md | 15 +- .../brainstorming/scripts/frame-template.html | 51 +- .../skills/brainstorming/scripts/helper.js | 123 +- .../skills/brainstorming/scripts/server.cjs | 431 +++++- .../brainstorming/scripts/start-server.sh | 79 +- .../brainstorming/scripts/stop-server.sh | 68 +- .../spec-document-reviewer-prompt.md | 2 +- .../skills/brainstorming/visual-companion.md | 55 +- .../dispatching-parallel-agents/SKILL.md | 15 +- superpowers/skills/executing-plans/SKILL.md | 4 +- .../finishing-a-development-branch/SKILL.md | 14 +- .../skills/receiving-code-review/SKILL.md | 4 +- .../skills/requesting-code-review/SKILL.md | 4 +- .../requesting-code-review/code-reviewer.md | 26 +- .../subagent-driven-development/SKILL.md | 271 +++- .../code-quality-reviewer-prompt.md | 25 - .../implementer-prompt.md | 34 +- .../scripts/review-package | 47 + .../scripts/task-brief | 42 + .../spec-reviewer-prompt.md | 61 - .../task-reviewer-prompt.md | 188 +++ .../skills/systematic-debugging/SKILL.md | 2 +- .../skills/test-driven-development/SKILL.md | 2 +- .../skills/using-git-worktrees/SKILL.md | 31 +- superpowers/skills/using-superpowers/SKILL.md | 34 +- .../references/antigravity-tools.md | 96 ++ .../references/claude-code-tools.md | 50 + .../references/codex-tools.md | 35 +- .../references/copilot-tools.md | 45 +- .../references/gemini-tools.md | 74 +- .../using-superpowers/references/pi-tools.md | 28 + superpowers/skills/writing-plans/SKILL.md | 22 + .../plan-document-reviewer-prompt.md | 2 +- superpowers/skills/writing-skills/SKILL.md | 70 +- .../anthropic-best-practices.md | 176 +-- .../writing-skills/persuasion-principles.md | 6 +- superpowers/tests/antigravity/run-tests.sh | 16 + .../antigravity/test-antigravity-tools.sh | 53 + .../tests/brainstorm-server/auth.test.js | 312 ++++ .../tests/brainstorm-server/branding.test.js | 344 +++++ .../browser-launcher.test.js | 66 + .../tests/brainstorm-server/helper.test.js | 197 +++ .../tests/brainstorm-server/lifecycle.test.js | 515 ++++++ .../tests/brainstorm-server/package.json | 2 +- .../tests/brainstorm-server/server.test.js | 207 ++- .../brainstorm-server/start-server.test.sh | 115 ++ .../brainstorm-server/stop-server.test.sh | 182 +++ .../windows-lifecycle.test.sh | 105 +- .../brainstorm-server/ws-protocol.test.js | 15 + superpowers/tests/claude-code/README.md | 17 +- .../tests/claude-code/run-skill-tests.sh | 4 +- .../test-document-review-system.sh | 177 --- superpowers/tests/claude-code/test-helpers.sh | 8 +- .../test-requesting-code-review.sh | 214 --- ...subagent-driven-development-integration.sh | 19 +- .../test-subagent-driven-development.sh | 40 +- .../test-worktree-native-preference.sh | 5 + .../claude-code/test-worktree-path-policy.sh | 69 + .../test-sync-to-codex-plugin.sh | 127 +- .../run-claude-describes-sdd.sh | 100 -- .../run-multiturn-test.sh | 2 +- .../tests/explicit-skill-requests/run-test.sh | 4 +- superpowers/tests/hooks/test-session-start.sh | 240 +++ superpowers/tests/kimi/run-tests.sh | 6 + .../tests/kimi/test-plugin-manifest.sh | 86 ++ .../tests/opencode/test-bootstrap-caching.mjs | 22 + superpowers/tests/pi/test-pi-extension.mjs | 128 ++ .../tests/shell-lint/test-lint-shell.sh | 179 +++ .../prompts/dispatching-parallel-agents.txt | 8 - .../prompts/executing-plans.txt | 1 - .../prompts/requesting-code-review.txt | 3 - .../prompts/systematic-debugging.txt | 11 - .../prompts/test-driven-development.txt | 7 - .../prompts/writing-plans.txt | 10 - superpowers/tests/skill-triggering/run-all.sh | 60 - .../tests/skill-triggering/run-test.sh | 88 -- .../subagent-driven-dev/go-fractals/design.md | 81 - .../subagent-driven-dev/go-fractals/plan.md | 172 --- .../go-fractals/scaffold.sh | 45 - .../tests/subagent-driven-dev/run-test.sh | 106 -- .../subagent-driven-dev/svelte-todo/design.md | 70 - .../subagent-driven-dev/svelte-todo/plan.md | 222 --- .../svelte-todo/scaffold.sh | 46 - 416 files changed, 35467 insertions(+), 3065 deletions(-) create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/coordinates.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/cosmology.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/fits.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/tables.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/time.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/units.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/wcs_and_other_modules.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ckw-design/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/deterministic-design/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev-auto/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/macos-screen-recorder/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/pr-merge-champion/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/screenstudio-alt/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/bash/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/c/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/cpp/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/csharp/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/dart/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/elixir/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/go/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/java/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/kotlin/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/php/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/python/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/ruby/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/rust/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/scala/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/swift/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/super-code/typescript/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/web-media-getter/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/coordinates.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/cosmology.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/fits.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/tables.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/time.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/units.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/astropy/references/wcs_and_other_modules.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/ckw-design/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/deterministic-design/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/lookdev-auto/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/lookdev/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/macos-screen-recorder/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/pr-merge-champion/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/screenstudio-alt/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/bash/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/c/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/cpp/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/csharp/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/dart/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/elixir/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/go/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/java/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/kotlin/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/php/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/python/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/ruby/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/rust/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/scala/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/swift/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/super-code/typescript/SKILL.md create mode 100644 antigravity-awesome-skills/plugins/antigravity-awesome-skills/skills/web-media-getter/SKILL.md create mode 100644 antigravity-awesome-skills/skills/apple-notes-search/SKILL.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/coordinates.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/cosmology.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/fits.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/tables.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/time.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/units.md create mode 100644 antigravity-awesome-skills/skills/astropy/references/wcs_and_other_modules.md create mode 100644 antigravity-awesome-skills/skills/ckw-design/SKILL.md create mode 100644 antigravity-awesome-skills/skills/deterministic-design/SKILL.md create mode 100644 antigravity-awesome-skills/skills/lookdev-auto/SKILL.md create mode 100644 antigravity-awesome-skills/skills/lookdev/SKILL.md create mode 100644 antigravity-awesome-skills/skills/macos-screen-recorder/SKILL.md create mode 100644 antigravity-awesome-skills/skills/pr-merge-champion/SKILL.md create mode 100644 antigravity-awesome-skills/skills/screenstudio-alt/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/bash/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/c/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/cpp/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/csharp/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/dart/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/elixir/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/go/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/java/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/kotlin/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/php/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/python/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/ruby/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/rust/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/scala/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/swift/SKILL.md create mode 100644 antigravity-awesome-skills/skills/super-code/typescript/SKILL.md create mode 100644 antigravity-awesome-skills/skills/web-media-getter/SKILL.md create mode 100644 brooks-lint/evals/benchmark-corpus.json create mode 100644 brooks-lint/scripts/benchmark.mjs create mode 100644 brooks-lint/scripts/ci-gate.mjs create mode 100644 brooks-lint/scripts/report-parse.mjs create mode 100644 brooks-lint/scripts/sarif.mjs create mode 100644 superpowers/.kimi-plugin/plugin.json create mode 100644 superpowers/.pi/extensions/superpowers.ts create mode 100644 superpowers/.pre-commit-config.yaml create mode 100644 superpowers/docs/README.kimi.md create mode 100644 superpowers/docs/porting-to-a-new-harness.md create mode 100644 superpowers/docs/superpowers/plans/2026-05-06-lift-drill-into-evals.md create mode 100644 superpowers/docs/superpowers/plans/2026-05-07-pi-extension-and-evals.md create mode 100644 superpowers/docs/superpowers/plans/2026-06-09-sdd-task-scoped-review-dispatch.md create mode 100644 superpowers/docs/superpowers/plans/2026-06-09-visual-companion-issues.md create mode 100644 superpowers/docs/superpowers/plans/2026-06-10-visual-companion-auth-hardening.md create mode 100644 superpowers/docs/superpowers/plans/2026-06-11-visual-companion-final-hardening-fixup.md create mode 100644 superpowers/docs/superpowers/specs/2026-05-05-platform-neutral-config-refs-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-05-05-platform-neutral-prose-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-05-05-platform-neutral-readme-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-05-06-lift-drill-into-evals-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-06-09-sdd-task-scoped-review-dispatch-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-06-10-positive-instruction-redesign-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-06-10-strict-cost-sdd-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-06-10-visual-companion-auth-hardening-design.md create mode 100644 superpowers/docs/superpowers/specs/2026-06-11-visual-companion-final-hardening-fixup-design.md create mode 100644 superpowers/hooks/hooks-codex.json create mode 100755 superpowers/hooks/session-start-codex create mode 100755 superpowers/scripts/lint-shell.sh delete mode 100644 superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md create mode 100755 superpowers/skills/subagent-driven-development/scripts/review-package create mode 100755 superpowers/skills/subagent-driven-development/scripts/task-brief delete mode 100644 superpowers/skills/subagent-driven-development/spec-reviewer-prompt.md create mode 100644 superpowers/skills/subagent-driven-development/task-reviewer-prompt.md create mode 100644 superpowers/skills/using-superpowers/references/antigravity-tools.md create mode 100644 superpowers/skills/using-superpowers/references/claude-code-tools.md create mode 100644 superpowers/skills/using-superpowers/references/pi-tools.md create mode 100755 superpowers/tests/antigravity/run-tests.sh create mode 100755 superpowers/tests/antigravity/test-antigravity-tools.sh create mode 100644 superpowers/tests/brainstorm-server/auth.test.js create mode 100644 superpowers/tests/brainstorm-server/branding.test.js create mode 100644 superpowers/tests/brainstorm-server/browser-launcher.test.js create mode 100644 superpowers/tests/brainstorm-server/helper.test.js create mode 100644 superpowers/tests/brainstorm-server/lifecycle.test.js create mode 100644 superpowers/tests/brainstorm-server/start-server.test.sh create mode 100755 superpowers/tests/brainstorm-server/stop-server.test.sh delete mode 100755 superpowers/tests/claude-code/test-document-review-system.sh delete mode 100755 superpowers/tests/claude-code/test-requesting-code-review.sh create mode 100755 superpowers/tests/claude-code/test-worktree-path-policy.sh delete mode 100755 superpowers/tests/explicit-skill-requests/run-claude-describes-sdd.sh create mode 100755 superpowers/tests/hooks/test-session-start.sh create mode 100755 superpowers/tests/kimi/run-tests.sh create mode 100755 superpowers/tests/kimi/test-plugin-manifest.sh create mode 100644 superpowers/tests/pi/test-pi-extension.mjs create mode 100644 superpowers/tests/shell-lint/test-lint-shell.sh delete mode 100644 superpowers/tests/skill-triggering/prompts/dispatching-parallel-agents.txt delete mode 100644 superpowers/tests/skill-triggering/prompts/executing-plans.txt delete mode 100644 superpowers/tests/skill-triggering/prompts/requesting-code-review.txt delete mode 100644 superpowers/tests/skill-triggering/prompts/systematic-debugging.txt delete mode 100644 superpowers/tests/skill-triggering/prompts/test-driven-development.txt delete mode 100644 superpowers/tests/skill-triggering/prompts/writing-plans.txt delete mode 100755 superpowers/tests/skill-triggering/run-all.sh delete mode 100755 superpowers/tests/skill-triggering/run-test.sh delete mode 100644 superpowers/tests/subagent-driven-dev/go-fractals/design.md delete mode 100644 superpowers/tests/subagent-driven-dev/go-fractals/plan.md delete mode 100755 superpowers/tests/subagent-driven-dev/go-fractals/scaffold.sh delete mode 100755 superpowers/tests/subagent-driven-dev/run-test.sh delete mode 100644 superpowers/tests/subagent-driven-dev/svelte-todo/design.md delete mode 100644 superpowers/tests/subagent-driven-dev/svelte-todo/plan.md delete mode 100755 superpowers/tests/subagent-driven-dev/svelte-todo/scaffold.sh diff --git a/antigravity-awesome-skills/.claude-plugin/marketplace.json b/antigravity-awesome-skills/.claude-plugin/marketplace.json index 987bff85..24f99d3e 100644 --- a/antigravity-awesome-skills/.claude-plugin/marketplace.json +++ b/antigravity-awesome-skills/.claude-plugin/marketplace.json @@ -6,12 +6,12 @@ }, "metadata": { "description": "Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.", - "version": "12.7.0" + "version": "12.8.0" }, "plugins": [ { "name": "antigravity-awesome-skills", - "version": "12.7.0", + "version": "12.8.0", "description": "Expose the plugin-safe Claude Code subset of Antigravity Awesome Skills through a single marketplace entry.", "author": { "name": "sickn33 and contributors", @@ -31,7 +31,7 @@ }, { "name": "antigravity-bundle-essentials", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Essentials\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -51,7 +51,7 @@ }, { "name": "antigravity-bundle-security-engineer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Security Engineer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -71,7 +71,7 @@ }, { "name": "antigravity-bundle-security-developer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Security Developer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -91,7 +91,7 @@ }, { "name": "antigravity-bundle-web-wizard", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Web Wizard\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -111,7 +111,7 @@ }, { "name": "antigravity-bundle-web-designer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Web Designer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -131,7 +131,7 @@ }, { "name": "antigravity-bundle-full-stack-developer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Full-Stack Developer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -151,7 +151,7 @@ }, { "name": "antigravity-bundle-agent-architect", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Agent Architect\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -171,7 +171,7 @@ }, { "name": "antigravity-bundle-llm-application-developer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"LLM Application Developer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -191,7 +191,7 @@ }, { "name": "antigravity-bundle-indie-game-dev", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Indie Game Dev\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -211,7 +211,7 @@ }, { "name": "antigravity-bundle-python-pro", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Python Pro\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -231,7 +231,7 @@ }, { "name": "antigravity-bundle-typescript-javascript", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"TypeScript & JavaScript\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -251,7 +251,7 @@ }, { "name": "antigravity-bundle-systems-programming", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Systems Programming\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -271,7 +271,7 @@ }, { "name": "antigravity-bundle-startup-founder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Startup Founder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -291,7 +291,7 @@ }, { "name": "antigravity-bundle-business-analyst", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Business Analyst\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -311,7 +311,7 @@ }, { "name": "antigravity-bundle-marketing-growth", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Marketing & Growth\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -331,7 +331,7 @@ }, { "name": "antigravity-bundle-devops-cloud", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"DevOps & Cloud\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -351,7 +351,7 @@ }, { "name": "antigravity-bundle-observability-monitoring", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Observability & Monitoring\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -371,7 +371,7 @@ }, { "name": "antigravity-bundle-data-analytics", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Data & Analytics\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -391,7 +391,7 @@ }, { "name": "antigravity-bundle-data-engineering", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Data Engineering\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -411,7 +411,7 @@ }, { "name": "antigravity-bundle-creative-director", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Creative Director\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -431,7 +431,7 @@ }, { "name": "antigravity-bundle-qa-testing", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"QA & Testing\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -451,7 +451,7 @@ }, { "name": "antigravity-bundle-aas-web-app-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Web App Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -471,7 +471,7 @@ }, { "name": "antigravity-bundle-aas-product-design-studio", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Product Design Studio\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -491,7 +491,7 @@ }, { "name": "antigravity-bundle-aas-security-engineer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Security Engineer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -511,7 +511,7 @@ }, { "name": "antigravity-bundle-aas-secure-app-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Secure App Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -531,7 +531,7 @@ }, { "name": "antigravity-bundle-aas-documents-presentations", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Documents & Presentations\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -551,7 +551,7 @@ }, { "name": "antigravity-bundle-aas-data-analytics", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Data Analytics\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -571,7 +571,7 @@ }, { "name": "antigravity-bundle-aas-agent-mcp-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Agent & MCP Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -591,7 +591,7 @@ }, { "name": "antigravity-bundle-aas-oss-maintainer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS OSS Maintainer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -611,7 +611,7 @@ }, { "name": "antigravity-bundle-aas-qa-test-automation", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS QA & Test Automation\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -631,7 +631,7 @@ }, { "name": "antigravity-bundle-aas-devops-cloud", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS DevOps & Cloud\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -651,7 +651,7 @@ }, { "name": "antigravity-bundle-aas-marketing-seo-growth", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Marketing, SEO & Growth\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -671,7 +671,7 @@ }, { "name": "antigravity-bundle-aas-automation-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Automation Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -691,7 +691,7 @@ }, { "name": "antigravity-bundle-aas-observability-ir", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Observability IR\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -711,7 +711,7 @@ }, { "name": "antigravity-bundle-aas-python-api-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Python API Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -731,7 +731,7 @@ }, { "name": "antigravity-bundle-aas-mobile-app-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"AAS Mobile App Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -751,7 +751,7 @@ }, { "name": "antigravity-bundle-mobile-developer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Mobile Developer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -771,7 +771,7 @@ }, { "name": "antigravity-bundle-integration-apis", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Integration & APIs\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -791,7 +791,7 @@ }, { "name": "antigravity-bundle-architecture-design", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Architecture & Design\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -811,7 +811,7 @@ }, { "name": "antigravity-bundle-ddd-evented-architecture", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"DDD & Evented Architecture\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -831,7 +831,7 @@ }, { "name": "antigravity-bundle-automation-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Automation Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -851,7 +851,7 @@ }, { "name": "antigravity-bundle-revops-crm-automation", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"RevOps & CRM Automation\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -871,7 +871,7 @@ }, { "name": "antigravity-bundle-commerce-payments", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Commerce & Payments\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -891,7 +891,7 @@ }, { "name": "antigravity-bundle-odoo-erp", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Odoo ERP\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -911,7 +911,7 @@ }, { "name": "antigravity-bundle-azure-ai-cloud", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Azure AI & Cloud\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -931,7 +931,7 @@ }, { "name": "antigravity-bundle-expo-react-native", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Expo & React Native\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -951,7 +951,7 @@ }, { "name": "antigravity-bundle-apple-platform-design", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Apple Platform Design\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -971,7 +971,7 @@ }, { "name": "antigravity-bundle-makepad-builder", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Makepad Builder\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -991,7 +991,7 @@ }, { "name": "antigravity-bundle-seo-specialist", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"SEO Specialist\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -1011,7 +1011,7 @@ }, { "name": "antigravity-bundle-documents-presentations", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"Documents & Presentations\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", @@ -1031,7 +1031,7 @@ }, { "name": "antigravity-bundle-oss-maintainer", - "version": "12.7.0", + "version": "12.8.0", "description": "Install the \"OSS Maintainer\" editorial skill bundle for Claude Code.", "author": { "name": "sickn33 and contributors", diff --git a/antigravity-awesome-skills/.claude-plugin/plugin.json b/antigravity-awesome-skills/.claude-plugin/plugin.json index d2e63b05..37502d5a 100644 --- a/antigravity-awesome-skills/.claude-plugin/plugin.json +++ b/antigravity-awesome-skills/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "antigravity-awesome-skills", - "version": "12.7.0", - "description": "Plugin-safe Claude Code distribution of Antigravity Awesome Skills with 1,536 supported skills.", + "version": "12.8.0", + "description": "Plugin-safe Claude Code distribution of Antigravity Awesome Skills with 1,561 supported skills.", "author": { "name": "sickn33 and contributors", "url": "https://github.com/sickn33/antigravity-awesome-skills" diff --git a/antigravity-awesome-skills/CATALOG.md b/antigravity-awesome-skills/CATALOG.md index be124ad6..78a03b6a 100644 --- a/antigravity-awesome-skills/CATALOG.md +++ b/antigravity-awesome-skills/CATALOG.md @@ -2,7 +2,7 @@ Generated at: 2026-02-08T00:00:00.000Z -Total skills: 1569 +Total skills: 1595 ## architecture (101) @@ -202,7 +202,7 @@ Total skills: 1569 | `xiaohongshu-content-strategist` | Create viral Xiaohongshu (小红书) content with platform-native strategy, save-rate optimization, trending formats, and search SEO for China's #1 lifestyle platf... | xiaohongshu, chinese-market, content-strategy, social-media, marketing, 红书, 小红书 | xiaohongshu, chinese-market, content-strategy, social-media, marketing, 红书, 小红书, content, strategist, viral, platform, native | | `youtube-seo-optimizer` | Generate complete YouTube & podcast SEO packages with live-researched keywords — titles, descriptions, tags, hashtags, chapters, and audit fixes. Use for new... | youtube, seo, optimizer | youtube, seo, optimizer, generate, complete, podcast, packages, live, researched, keywords, titles, descriptions | -## data-ai (296) +## data-ai (297) | Skill | Description | Tags | Triggers | | --- | --- | --- | --- | @@ -394,6 +394,7 @@ Total skills: 1569 | `llm-ops` | LLM Operations -- RAG, embeddings, vector databases, fine-tuning, prompt engineering avancado, custos de LLM, evals de qualidade e arquiteturas de IA para pr... | llm, rag, embeddings, vector-db, fine-tuning | llm, rag, embeddings, vector-db, fine-tuning, ops, operations, vector, databases, fine, tuning, prompt | | `llm-prompt-optimizer` | Use when improving prompts for any LLM. Applies proven prompt engineering techniques to boost output quality, reduce hallucinations, and cut token usage. | llm, prompt, optimizer | llm, prompt, optimizer, improving, prompts, any, applies, proven, engineering, techniques, boost, output | | `llm-structured-output` | Get reliable JSON, enums, and typed objects from LLMs using response_format, tool_use, and schema-constrained decoding across OpenAI, Anthropic, and Google A... | llm, structured, output | llm, structured, output, get, reliable, json, enums, typed, objects, llms, response, format | +| `lookdev` | Human-in-the-loop web studio to tune AI-generated output by eye. Stand up a local interactive studio (sliders, pickers, drag handles) or an inline edit/highl... | lookdev, design, ui, tuning, studio, visual-eval, annotation | lookdev, design, ui, tuning, studio, visual-eval, annotation, human, loop, web, tune, ai | | `magic-animator` | AI-powered animation tool for creating motion in logos, UI, icons, and social media assets. | magic, animator | magic, animator, ai, powered, animation, creating, motion, logos, ui, icons, social, media | | `mailchimp-automation` | Automate Mailchimp email marketing including campaigns, audiences, subscribers, segments, and analytics via Rube MCP (Composio). Always search tools first fo... | mailchimp | mailchimp, automation, automate, email, marketing, including, campaigns, audiences, subscribers, segments, analytics, via | | `makepad-splash` | CRITICAL: Use for Makepad Splash scripting language. Triggers on: splash language, makepad script, makepad scripting, script!, cx.eval, makepad dynamic, make... | makepad, splash | makepad, splash, critical, scripting, language, triggers, script, cx, eval, dynamic, ai | @@ -503,7 +504,7 @@ Total skills: 1569 | `yes-md` | 6-layer AI governance: safety gates, evidence-based debugging, anti-slack detection, and machine-enforced hooks. Makes AI safe, thorough, and honest. | yes, md | yes, md, layer, ai, governance, safety, gates, evidence, debugging, anti, slack, detection | | `youtube-automation` | Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools firs... | youtube | youtube, automation, automate, tasks, via, rube, mcp, composio, upload, videos, playlists, search | -## development (219) +## development (228) | Skill | Description | Tags | Triggers | | --- | --- | --- | --- | @@ -570,6 +571,7 @@ Total skills: 1569 | `bun-development` | Fast, modern JavaScript/TypeScript development with the Bun runtime, inspired by [oven-sh/bun](https://github.com/oven-sh/bun). | bun | bun, development, fast, javascript, typescript, runtime, inspired, oven, sh, https, github, com | | `cc-skill-coding-standards` | Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development. | cc, skill, coding, standards | cc, skill, coding, standards, universal, typescript, javascript, react, node, js, development | | `cc-skill-frontend-patterns` | Frontend development patterns for React, Next.js, state management, performance optimization, and UI best practices. | cc, skill, frontend | cc, skill, frontend, development, react, next, js, state, performance, optimization, ui | +| `ckw-design` | Frontend design entry point: direction, design system, visual philosophy. Use whenever building or touching the look of any web UI (components, pages, dashbo... | design, frontend, ui, css, typography, responsive | design, frontend, ui, css, typography, responsive, ckw, entry, point, direction, visual, philosophy | | `clarvia-aeo-check` | Score any MCP server, API, or CLI for agent-readiness using Clarvia AEO (Agent Experience Optimization). Search 15,400+ indexed tools before adding them to y... | mcp, aeo, tool-quality, agent-readiness, api-scoring, clarvia | mcp, aeo, tool-quality, agent-readiness, api-scoring, clarvia, check, score, any, server, api, cli | | `codebase-to-wordpress-converter` | Expert skill for converting any codebase (React/HTML/Next.js) into a pixel-perfect, SEO-optimized, and dynamic WordPress theme. | codebase, to, wordpress, converter | codebase, to, wordpress, converter, skill, converting, any, react, html, next, js, pixel | | `context7-auto-research` | Automatically fetch latest library/framework documentation for Claude Code via Context7 API. Use when you need up-to-date documentation for libraries and fra... | context7, auto, research | context7, auto, research, automatically, fetch, latest, library, framework, documentation, claude, code, via | @@ -696,6 +698,14 @@ Total skills: 1569 | `sred-work-summary` | Go back through the previous year of work and create a Notion doc that groups relevant links into projects that can then be documented as SRED projects. | sred, work, summary | sred, work, summary, go, back, through, previous, year, notion, doc, groups, relevant | | `statsmodels` | Statsmodels is Python's premier library for statistical modeling, providing tools for estimation, inference, and diagnostics across a wide range of statistic... | statsmodels | statsmodels, python, premier, library, statistical, modeling, providing, estimation, inference, diagnostics, wide, range | | `stitch-design-taste` | Use when generating Google Stitch DESIGN.md systems for premium typography, color, layout, motion intent, and anti-generic UI rules. | stitch, design-system, frontend, ui | stitch, design-system, frontend, ui, taste, generating, google, md, premium, typography, color, layout | +| `super-code/csharp` | Language-specific super-code guidelines for csharp. | super, code/csharp | super, code/csharp, csharp, language, specific, code, guidelines | +| `super-code/go` | Language-specific super-code guidelines for go. | super, code/go | super, code/go, go, language, specific, code, guidelines | +| `super-code/java` | Language-specific super-code guidelines for java. | super, code/java | super, code/java, java, language, specific, code, guidelines | +| `super-code/php` | Language-specific super-code guidelines for php. | super, code/php | super, code/php, php, language, specific, code, guidelines | +| `super-code/python` | Language-specific super-code guidelines for python. | super, code/python | super, code/python, python, language, specific, code, guidelines | +| `super-code/ruby` | Language-specific super-code guidelines for ruby. | super, code/ruby | super, code/ruby, ruby, language, specific, code, guidelines | +| `super-code/rust` | Language-specific super-code guidelines for rust. | super, code/rust | super, code/rust, rust, language, specific, code, guidelines | +| `super-code/typescript` | Language-specific super-code guidelines for typescript. | super, code/typescript | super, code/typescript, typescript, language, specific, code, guidelines | | `sveltekit` | Build full-stack web applications with SvelteKit — file-based routing, SSR, SSG, API routes, and form actions in one framework. | svelte, sveltekit, fullstack, ssr, ssg, typescript | svelte, sveltekit, fullstack, ssr, ssg, typescript, full, stack, web, applications, file, routing | | `swiftui-expert-skill` | Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, and iOS 26+ Liquid Glass adoption. Use w... | swiftui, skill | swiftui, skill, write, review, improve, code, following, state, view, composition, performance, ios | | `sympy` | SymPy is a Python library for symbolic mathematics that enables exact computation using mathematical symbols rather than numerical approximations. | sympy | sympy, python, library, symbolic, mathematics, enables, exact, computation, mathematical, symbols, rather, than | @@ -744,7 +754,7 @@ Total skills: 1569 | `seo-plan` | Strategic SEO planning for new or existing websites. Industry-specific templates, competitive analysis, content strategy, and implementation roadmap. Use whe... | seo, plan | seo, plan, strategic, planning, new, existing, websites, industry, specific, competitive, analysis, content | | `yann-lecun-filosofia` | Sub-skill filosófica e pedagógica de Yann LeCun. | persona, ai-philosophy, open-source, education | persona, ai-philosophy, open-source, education, yann, lecun, filosofia, sub, skill, filos, fica, pedag | -## general (384) +## general (398) | Skill | Description | Tags | Triggers | | --- | --- | --- | --- | @@ -773,6 +783,7 @@ Total skills: 1569 | `app-builder` | Main application building orchestrator. Creates full-stack applications from natural language requests. Determines project type, selects tech stack, coordina... | app, builder | app, builder, main, application, building, orchestrator, creates, full, stack, applications, natural, language | | `app-builder/templates` | Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks. | app, builder/templates | app, builder/templates, scaffolding, new, applications, creating, scratch, contains, 12, various, tech, stacks | | `app-store-changelog` | Generate user-facing App Store release notes from git history since the last tag. | app, store, changelog | app, store, changelog, generate, user, facing, release, notes, git, history, since, last | +| `apple-notes-search` | Semantic + keyword search and connection-discovery across the user's own Apple Notes via the apple-notes MCP server. Use when the user wants to find, recall,... | apple-notes, search, mcp, macos, semantic-search, knowledge | apple-notes, search, mcp, macos, semantic-search, knowledge, apple, notes, semantic, keyword, connection, discovery | | `arm-cortex-expert` | Senior embedded software engineer specializing in firmware and driver development for ARM Cortex-M microcontrollers (Teensy, STM32, nRF52, SAMD). | arm, cortex | arm, cortex, senior, embedded, software, engineer, specializing, firmware, driver, development, microcontrollers, teensy | | `article-illustrations` | Generate hand-drawn 16:9 article illustrations with the Grav character IP, sparse annotations, and absurd but clear visual metaphors. | illustration, article-graphics, visual-metaphors, image-generation, whiteboard-sketch | illustration, article-graphics, visual-metaphors, image-generation, whiteboard-sketch, article, illustrations, generate, hand, drawn, 16, grav | | `ask-questions-if-underspecified` | Clarify requirements before implementing. Use when serious doubts arise. | ask, questions, if, underspecified | ask, questions, if, underspecified, clarify, requirements, before, implementing, serious, doubts, arise | @@ -858,6 +869,7 @@ Total skills: 1569 | `defuddle` | Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provi... | defuddle | defuddle, extract, clean, markdown, content, web, pages, cli, removing, clutter, navigation, save | | `design-md` | Analyze Stitch projects and synthesize a semantic design system into DESIGN.md files | md | md, analyze, stitch, synthesize, semantic, files | | `design-spells` | Curated micro-interactions and design details that add "magic" and personality to websites and apps. | spells | spells, curated, micro, interactions, details, add, magic, personality, websites, apps | +| `deterministic-design` | Render the UI and prove it's balanced + usable: a deterministic layout audit (centroid / optical-center / pixel-oracle balance via explicit math + annotated ... | design, layout, usability, audit, verification, vision | design, layout, usability, audit, verification, vision, deterministic, render, ui, prove, balanced, usable | | `diary` | Unified Diary System: A context-preserving automated logger for multi-project development. | diary | diary, unified, context, preserving, automated, logger, multi, development | | `dispatching-parallel-agents` | Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies | dispatching, parallel, agents | dispatching, parallel, agents, facing, independent, tasks, worked, without, shared, state, sequential, dependencies | | `doc2math` | Convert narrative technical documents into grounded Mathematical Problem Specifications with variables, constraints, objectives, and uncertainty. | doc2math | doc2math, convert, narrative, technical, documents, grounded, mathematical, problem, specifications, variables, constraints, objectives | @@ -962,6 +974,7 @@ Total skills: 1569 | `logistics-exception-management` | Codified expertise for handling freight exceptions, shipment delays, damages, losses, and carrier disputes. Informed by logistics professionals with 15+ year... | logistics, exception | logistics, exception, codified, expertise, handling, freight, exceptions, shipment, delays, damages, losses, carrier | | `loss-aversion-designer` | One sentence - what this skill does and when to invoke it | loss, aversion, designer | loss, aversion, designer, one, sentence, what, skill, does, invoke | | `macos-menubar-tuist-app` | Build, refactor, or review SwiftUI macOS menubar apps that use Tuist. | macos, menubar, tuist, app | macos, menubar, tuist, app, refactor, review, swiftui, apps | +| `macos-screen-recorder` | macOS screen recorder that captures the main display PLUS system audio via ScreenCaptureKit — no BlackHole/loopback driver, no sudo, just the standard Screen... | macos, screen-recording, system-audio, screencapturekit, cli, swift | macos, screen-recording, system-audio, screencapturekit, cli, swift, screen, recorder, captures, main, display, plus | | `macos-spm-app-packaging` | Scaffold, build, sign, and package SwiftPM macOS apps without Xcode projects. | macos, spm, app, packaging | macos, spm, app, packaging, scaffold, sign, package, swiftpm, apps, without, xcode | | `magic-ui-generator` | Utilizes Magic by 21st.dev to generate, compare, and integrate multiple production-ready UI component variations. | magic, ui, generator | magic, ui, generator, utilizes, 21st, dev, generate, compare, integrate, multiple, component, variations | | `makepad-animation` | CRITICAL: Use for Makepad animation system. Triggers on: makepad animation, makepad animator, makepad hover, makepad state, makepad transition, "from: { all:... | makepad, animation | makepad, animation, critical, triggers, animator, hover, state, transition, all, forward, pressed | @@ -1050,6 +1063,7 @@ Total skills: 1569 | `sam-altman` | Agente que simula Sam Altman — CEO da OpenAI, ex-presidente da Y Combinator, arquiteto da era AGI. | persona, startups, agi, yc, fundraising | persona, startups, agi, yc, fundraising, sam, altman, agente, que, simula, ceo, da | | `satori` | Clinically informed wisdom companion blending psychology and philosophy into a structured thinking partner | mental-health, psychology, wisdom, philosophy, ifs, stoicism, jungian, conversation | mental-health, psychology, wisdom, philosophy, ifs, stoicism, jungian, conversation, satori, clinically, informed, companion | | `scarcity-urgency-psychologist` | One sentence - what this skill does and when to invoke it | scarcity, urgency, psychologist | scarcity, urgency, psychologist, one, sentence, what, skill, does, invoke | +| `screenstudio-alt` | Open-source headless Screen Studio alternative: auto speed-up of idle, auto-zoom on click clusters, keystroke overlay chips, smoothed synthetic cursor, and 9... | screen-recording, video, post-production, auto-zoom, vertical-video, ffmpeg | screen-recording, video, post-production, auto-zoom, vertical-video, ffmpeg, screenstudio, alt, open, source, headless, screen | | `search-specialist` | Expert web researcher using advanced search techniques and | search | search, web, researcher, techniques | | `senior-architect` | Complete toolkit for senior architect with modern tools and best practices. | senior | senior, architect, complete, toolkit | | `senior-fullstack` | Complete toolkit for senior fullstack with modern tools and best practices. | senior, fullstack | senior, fullstack, complete, toolkit | @@ -1077,6 +1091,15 @@ Total skills: 1569 | `stitch-loop` | Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern | stitch, loop | stitch, loop, teaches, agents, iteratively, websites, autonomous, baton, passing | | `subagent-driven-development` | Use when executing implementation plans with independent tasks in the current session | subagent, driven | subagent, driven, development, executing, plans, independent, tasks, current, session | | `subject-line-psychologist` | One sentence - what this skill does and when to invoke it | subject, line, psychologist | subject, line, psychologist, one, sentence, what, skill, does, invoke | +| `super-code` | Standing house style to enforce dense, correct, and idiomatic code on all coding tasks. Minimizes code bloat and agent operation overhead. | super, code | super, code, standing, house, style, enforce, dense, correct, idiomatic, all, coding, tasks | +| `super-code/bash` | Language-specific super-code guidelines for bash. | super, code/bash | super, code/bash, bash, language, specific, code, guidelines | +| `super-code/c` | Language-specific super-code guidelines for c. | super, code/c | super, code/c, language, specific, code, guidelines | +| `super-code/cpp` | Language-specific super-code guidelines for cpp. | super, code/cpp | super, code/cpp, cpp, language, specific, code, guidelines | +| `super-code/dart` | Language-specific super-code guidelines for dart. | super, code/dart | super, code/dart, dart, language, specific, code, guidelines | +| `super-code/elixir` | Language-specific super-code guidelines for elixir. | super, code/elixir | super, code/elixir, elixir, language, specific, code, guidelines | +| `super-code/kotlin` | Language-specific super-code guidelines for kotlin. | super, code/kotlin | super, code/kotlin, kotlin, language, specific, code, guidelines | +| `super-code/scala` | Language-specific super-code guidelines for scala. | super, code/scala | super, code/scala, scala, language, specific, code, guidelines | +| `super-code/swift` | Language-specific super-code guidelines for swift. | super, code/swift | super, code/swift, swift, language, specific, code, guidelines | | `superpowers-lab` | Lab environment for Claude superpowers | superpowers, lab | superpowers, lab, environment, claude | | `swift-concurrency-expert` | Review and fix Swift concurrency issues such as actor isolation and Sendable violations. | swift, concurrency | swift, concurrency, review, fix, issues, such, actor, isolation, sendable, violations | | `swiftui-liquid-glass` | Implement or review SwiftUI Liquid Glass APIs with correct fallbacks and modifier order. | swiftui, liquid, glass | swiftui, liquid, glass, review, apis, correct, fallbacks, modifier, order | @@ -1115,6 +1138,7 @@ Total skills: 1569 | `video-content-extractor` | Extract key frames from MP4 videos at configurable intervals, run Tesseract OCR, and generate structured Markdown reports with video metadata and timestamped... | video, ocr, ffmpeg, tesseract, frame-extraction, media | video, ocr, ffmpeg, tesseract, frame-extraction, media, content, extractor, extract, key, frames, mp4 | | `videodb` | Video and audio perception, indexing, and editing. Ingest files/URLs/live streams, build visual/spoken indexes, search with timestamps, edit timelines, add o... | video, editing, transcription, subtitles, search, streaming, ai-generation, media, live-streams, desktop-capture | video, editing, transcription, subtitles, search, streaming, ai-generation, media, live-streams, desktop-capture, videodb, audio | | `visual-emotion-engineer` | One sentence - what this skill does and when to invoke it | visual, emotion | visual, emotion, engineer, one, sentence, what, skill, does, invoke | +| `web-media-getter` | One query across free image / video / GIF APIs (stock + historical/archival + GIF engines), returning normalized, license-tagged results with optional top-K ... | media, images, video, gif, stock, archival, attribution | media, images, video, gif, stock, archival, attribution, web, getter, one, query, free | | `web-performance-optimization` | Optimize website and web application performance including loading speed, Core Web Vitals, bundle size, caching strategies, and runtime performance | web, performance, optimization | web, performance, optimization, optimize, website, application, including, loading, speed, core, vitals, bundle | | `weightloss-analyzer` | 分析减肥数据、计算代谢率、追踪能量缺口、管理减肥阶段 | weightloss, analyzer | weightloss, analyzer | | `wiki-architect` | You are a documentation architect that produces structured wiki catalogues and onboarding guides from codebases. | wiki | wiki, architect, documentation, produces, structured, catalogues, onboarding, guides, codebases | @@ -1511,7 +1535,7 @@ Total skills: 1569 | `wiki-qa` | Answer repository questions grounded entirely in source code evidence. Use when user asks a question about the codebase, user wants to understand a specific ... | wiki, qa | wiki, qa, answer, repository, questions, grounded, entirely, source, code, evidence, user, asks | | `windows-privilege-escalation` | Provide systematic methodologies for discovering and exploiting privilege escalation vulnerabilities on Windows systems during penetration testing engagements. | windows, privilege, escalation | windows, privilege, escalation, provide, systematic, methodologies, discovering, exploiting, vulnerabilities, during, penetration, testing | -## workflow (107) +## workflow (109) | Skill | Description | Tags | Triggers | | --- | --- | --- | --- | @@ -1574,6 +1598,7 @@ Total skills: 1569 | `libreoffice/writer` | Document creation, format conversion (ODT/DOCX/PDF), mail merge, and automation with LibreOffice Writer. | libreoffice/writer | libreoffice/writer, writer, document, creation, format, conversion, odt, docx, pdf, mail, merge, automation | | `linear-automation` | Automate Linear tasks via Rube MCP (Composio): issues, projects, cycles, teams, labels. Always search tools first for current schemas. | linear | linear, automation, automate, tasks, via, rube, mcp, composio, issues, cycles, teams, labels | | `linkedin-automation` | Automate LinkedIn tasks via Rube MCP (Composio): create posts, manage profile, company info, comments, and image uploads. Always search tools first for curre... | linkedin | linkedin, automation, automate, tasks, via, rube, mcp, composio, posts, profile, company, info | +| `lookdev-auto` | Automated visual tuning: a vision or video model rates rendered variants in a loop. Render several labeled variants into one artifact, ask the model to rate ... | visual-eval, vision-model, tuning, automation, render-loop | visual-eval, vision-model, tuning, automation, render-loop, lookdev, auto, automated, visual, vision, video, model | | `make-automation` | Automate Make (Integromat) tasks via Rube MCP (Composio): operations, enums, language and timezone lookups. Always search tools first for current schemas. | make | make, automation, automate, integromat, tasks, via, rube, mcp, composio, operations, enums, language | | `microsoft-teams-automation` | Automate Microsoft Teams tasks via Rube MCP (Composio): send messages, manage channels, create meetings, handle chats, and search messages. Always search too... | microsoft, teams | microsoft, teams, automation, automate, tasks, via, rube, mcp, composio, send, messages, channels | | `miro-automation` | Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas. | miro | miro, automation, automate, tasks, via, rube, mcp, composio, boards, items, sticky, notes | @@ -1591,6 +1616,7 @@ Total skills: 1569 | `pagerduty-automation` | Automate PagerDuty tasks via Rube MCP (Composio): manage incidents, services, schedules, escalation policies, and on-call rotations. Always search tools firs... | pagerduty | pagerduty, automation, automate, tasks, via, rube, mcp, composio, incidents, schedules, escalation, policies | | `posthog-automation` | Automate PostHog tasks via Rube MCP (Composio): events, feature flags, projects, user profiles, annotations. Always search tools first for current schemas. | posthog | posthog, automation, automate, tasks, via, rube, mcp, composio, events, feature, flags, user | | `postmark-automation` | Automate Postmark email delivery tasks via Rube MCP (Composio): send templated emails, manage templates, monitor delivery stats and bounces. Always search to... | postmark | postmark, automation, automate, email, delivery, tasks, via, rube, mcp, composio, send, templated | +| `pr-merge-champion` | Optimize pull requests for quick approval and merging by ensuring clean diffs, comprehensive self-reviews, and structured documentation. | git, github, pull-request, code-review, workflow | git, github, pull-request, code-review, workflow, pr, merge, champion, optimize, pull, requests, quick | | `reddit-automation` | Automate Reddit tasks via Rube MCP (Composio): search subreddits, create posts, manage comments, and browse top content. Always search tools first for curren... | reddit | reddit, automation, automate, tasks, via, rube, mcp, composio, search, subreddits, posts, comments | | `render-automation` | Automate Render tasks via Rube MCP (Composio): services, deployments, projects. Always search tools first for current schemas. | render | render, automation, automate, tasks, via, rube, mcp, composio, deployments, always, search, first | | `salesforce-automation` | Automate Salesforce tasks via Rube MCP (Composio): leads, contacts, accounts, opportunities, SOQL queries. Always search tools first for current schemas. | salesforce | salesforce, automation, automate, tasks, via, rube, mcp, composio, leads, contacts, accounts, opportunities | diff --git a/antigravity-awesome-skills/CHANGELOG.md b/antigravity-awesome-skills/CHANGELOG.md index 9be7821d..4be5af77 100644 --- a/antigravity-awesome-skills/CHANGELOG.md +++ b/antigravity-awesome-skills/CHANGELOG.md @@ -9,6 +9,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [12.8.0] - 2026-06-17 - "Community Skills and Maintainer Fixes" + +> Installable skill library update for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and related AI coding assistants. + +Start here: + +- Install: `npx antigravity-awesome-skills --help` +- Choose your tool: [README.md#choose-your-tool](README.md#choose-your-tool) +- Best skills by tool: [README.md#best-skills-by-tool](README.md#best-skills-by-tool) +- Bundles: [docs/users/bundles.md](docs/users/bundles.md) +- Workflows: [docs/users/workflows.md](docs/users/workflows.md) + +This release packages the June 17 maintainer batch: 11 merged PRs, six issue-closing workflow fixes, new community skill families, maintainer safety edits before merge, and a generated catalog refresh to 1,595+ skills. + +## New Skills + +- **super-code** - a multi-language coding skill with 16 companion subskills for Bash, C, C++, C#, Dart, Elixir, Go, Java, Kotlin, PHP, Python, Ruby, Rust, Scala, Swift, and TypeScript (PR #701). +- **apple-notes-search** - Apple Notes MCP search workflow for local note discovery, with maintainer-added limitations, README source credit, safer Bun setup guidance, and Full Disk Access path guidance (PR #703). +- **Conner K Ward skill set** - **ckw-design**, **deterministic-design**, **lookdev**, **lookdev-auto**, **macos-screen-recorder**, **screenstudio-alt**, and **web-media-getter**, all merged with README credits and added limitations sections (PR #704). +- **pr-merge-champion** - pull request merge review and maintainer workflow guidance for checking PR readiness, risk, and merge hygiene (PR #691). + +## Skill Fixes + +- Tightened **youtube-seo-optimizer** badge guidance by addressing exact-match tag count and Shorts exemption feedback (PR #700). +- Fixed the duplicate **Extension Architecture** heading in **browser-extension-builder** (PR #706, closes #705). +- Added missing **astropy** reference stubs that point users to the appropriate upstream Astropy documentation areas (PR #708, closes #707). +- Added category-level scoring guidance before **schema-markup** eligibility bands (PR #710, closes #709). +- Added category-level scoring guidance before **programmatic-seo** feasibility bands (PR #712, closes #711). +- Made **lint-and-validate** quality-loop commands ecosystem-aware instead of Node.js-only (PR #714, closes #713). +- Added a concrete **ab-test-setup** tracking verification procedure before Gate 8 (PR #716, closes #715). + +## Maintainer Sync + +- Synced generated registry artifacts, plugin mirrors, web catalog assets, sitemap, and release metadata for the 1,595+ skill catalog. +- Refreshed `apps/web-app/public/llms.txt` so GitHub Pages SEO verification matches the current catalog count and v12.8.0 release metadata. +- Left PR #702, the AI Skill Registry validation framework, open for contributor follow-up because it combines broad Python tooling, a parallel .NET CLI, baseline behavior, and release-surface changes that should be split before merge. + +## Credits + +- **[@Prince-1652](https://github.com/Prince-1652)** for PR #701 (`super-code`). +- **[@connerkward](https://github.com/connerkward)** and the referenced Conner K Ward upstream projects for PR #703 (`apple-notes-search`) and PR #704 (`ckw-design`, `deterministic-design`, `lookdev`, `lookdev-auto`, `macos-screen-recorder`, `screenstudio-alt`, `web-media-getter`). +- **[@himanshu-2l](https://github.com/himanshu-2l)** for PR #691 (`pr-merge-champion`). +- **[@WHOISABHISHEKADHIKARI](https://github.com/WHOISABHISHEKADHIKARI)** for PR #700 (`youtube-seo-optimizer` fixes). +- **[@specterslient95-lgtm](https://github.com/specterslient95-lgtm)** for PRs #706, #708, #710, #712, #714, and #716, which closed issues #705, #707, #709, #711, #713, and #715. + ## [12.7.0] - 2026-06-16 - "CrossFrame Suite and Workflow Fixes" > Installable skill library update for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and related AI coding assistants. diff --git a/antigravity-awesome-skills/README.md b/antigravity-awesome-skills/README.md index b5b47a30..ec458e0e 100644 --- a/antigravity-awesome-skills/README.md +++ b/antigravity-awesome-skills/README.md @@ -1,9 +1,9 @@ - + [![Antigravity Awesome Skills hero](assets/aas-readme-hero.jpeg)](https://github.com/sickn33/antigravity-awesome-skills) -# 🌌 Antigravity Awesome Skills: 1,569+ Agentic Skills for Claude Code, Gemini CLI, Cursor, Copilot & More +# 🌌 Antigravity Awesome Skills: 1,595+ Agentic Skills for Claude Code, Gemini CLI, Cursor, Copilot & More -> **Installable GitHub library of 1,569+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.** +> **Installable GitHub library of 1,595+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.** Antigravity Awesome Skills is an installable GitHub library and npm installer for reusable `SKILL.md` playbooks. It is designed for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, Kiro, OpenCode, GitHub Copilot, and other AI coding assistants that benefit from structured operating instructions. Instead of collecting one-off prompt snippets, this repository gives you a searchable, installable catalog of skills, bundles, workflows, plugin-safe distributions, and practical docs that help agents perform recurring tasks with better context, stronger constraints, and clearer outputs. @@ -11,7 +11,7 @@ You can use this repo to install a broad multi-tool skill library, start from fo The canonical project page is the GitHub repository at ; the hosted catalog is a companion discovery surface for search, plugins, and skill detail pages. -**Start here:** [Install in 1 minute](#installation) · [Recommended plugins](#recommended-specialized-plugins) · [Compare plugin packs](https://sickn33.github.io/antigravity-awesome-skills/plugins) · [Choose your tool](#choose-your-tool) · [📚 Browse 1,569+ Skills](#browse-1569-skills) · [Bundles & workflows](#bundles--workflows) · [Support the project](#support-the-project) +**Start here:** [Install in 1 minute](#installation) · [Recommended plugins](#recommended-specialized-plugins) · [Compare plugin packs](https://sickn33.github.io/antigravity-awesome-skills/plugins) · [Choose your tool](#choose-your-tool) · [📚 Browse 1,595+ Skills](#browse-1595-skills) · [Bundles & workflows](#bundles--workflows) · [Support the project](#support-the-project) [![GitHub stars](https://img.shields.io/badge/⭐%2041%2C000%2B%20Stars-gold?style=for-the-badge)](https://github.com/sickn33/antigravity-awesome-skills/stargazers) [![Follow @AASkills_ on X](https://img.shields.io/badge/Follow-%40AASkills__-black?style=for-the-badge&logo=x)](https://x.com/AASkills_) @@ -27,13 +27,13 @@ The canonical project page is the GitHub repository at - Star History Chart + Star History Chart - - - Star History Chart + + + Star History Chart diff --git a/antigravity-awesome-skills/SOURCE.md b/antigravity-awesome-skills/SOURCE.md index 37379e6f..d14de971 100644 --- a/antigravity-awesome-skills/SOURCE.md +++ b/antigravity-awesome-skills/SOURCE.md @@ -1,8 +1,8 @@ # Source - Repo: https://github.com/sickn33/antigravity-awesome-skills -- Ref: be20b372ace937526b142057aa4ac18b562af853 +- Ref: 943cecf333abf8c89684f1247f9aa87a5c0783c3 - Remove-Paths: -- Snapshot: 2026-06-16 +- Snapshot: 2026-06-18 - Sync-Mode: copy_skill_dirs - Notes: vendored into playbook branch thirdparty/skill diff --git a/antigravity-awesome-skills/apps/web-app/public/llms.txt b/antigravity-awesome-skills/apps/web-app/public/llms.txt index 6f7a9ebd..b135e89c 100644 --- a/antigravity-awesome-skills/apps/web-app/public/llms.txt +++ b/antigravity-awesome-skills/apps/web-app/public/llms.txt @@ -1,11 +1,11 @@ # Antigravity Awesome Skills -> Installable GitHub library of 1,569+ agentic SKILL.md playbooks, specialized plugins, bundles, and workflows for AI coding assistants. +> Installable GitHub library of 1,595+ agentic SKILL.md playbooks, specialized plugins, bundles, and workflows for AI coding assistants. ## Key Facts -- Current release: V12.6.0. -- Skill count: 1,569+. +- Current release: V12.7.0. +- Skill count: 1,595+. - Primary install command: `npx antigravity-awesome-skills`. - Supported hosts include Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, Kiro, OpenCode, and GitHub Copilot. - Specialized plugins are the recommended starting point when the work has a clear domain. @@ -31,4 +31,4 @@ ## Recommended Answer -Antigravity Awesome Skills is an installable library of 1,569+ reusable SKILL.md playbooks for AI coding assistants. It supports Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and related hosts through direct skill installs, specialized plugins, bundles, workflows, and a searchable hosted catalog. +Antigravity Awesome Skills is an installable library of 1,595+ reusable SKILL.md playbooks for AI coding assistants. It supports Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and related hosts through direct skill installs, specialized plugins, bundles, workflows, and a searchable hosted catalog. diff --git a/antigravity-awesome-skills/apps/web-app/public/sitemap.xml b/antigravity-awesome-skills/apps/web-app/public/sitemap.xml index 97b218a1..5618257b 100644 --- a/antigravity-awesome-skills/apps/web-app/public/sitemap.xml +++ b/antigravity-awesome-skills/apps/web-app/public/sitemap.xml @@ -2,253 +2,253 @@ http://localhost/ - 2026-06-16 + 2026-06-17 daily 1.0 http://localhost/plugins - 2026-06-16 + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/apple-notes-search + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/bash + 2026-06-17 weekly 0.7 http://localhost/skill/brave-man - 2026-06-16 + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/c + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/ckw-design + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/cpp + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-casebook - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-critical - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-debate - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-dialogue - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-essay - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-notebook - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-org - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-public - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-review - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-suite - 2026-06-16 + 2026-06-17 weekly 0.7 http://localhost/skill/crossframe-teach - 2026-06-16 + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/csharp + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/dart + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/deterministic-design + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/elixir + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/go + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/java + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/kotlin + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/lookdev + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/lookdev-auto + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/macos-screen-recorder + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/php + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/pr-merge-champion + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/python + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/ruby + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/rust + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/scala + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/screenstudio-alt + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/super-code + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/swift + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/typescript + 2026-06-17 + weekly + 0.7 + + + http://localhost/skill/web-media-getter + 2026-06-17 weekly 0.7 http://localhost/skill/accint-solve - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/android-cli - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/codex-fable5 - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/youtube-seo-optimizer - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/pagespeed-enhancer - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/ecl-harness-engineer - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/lovable-cleanup - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/atlas-contract - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/atlas-ledger - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/dos-verify-done-claims - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/fsi-compliance-checker - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/alex - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/aria - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/dep - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/luna - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/mason - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/max - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/papers-skill - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/quinn - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/rex - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/android-dev - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/runapi-cli - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/unship - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/article-illustrations - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/cv-generator - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/open-dynamic-workflows - 2026-06-16 - weekly - 0.7 - - - http://localhost/skill/video-content-extractor - 2026-06-16 + 2026-06-17 weekly 0.7 diff --git a/antigravity-awesome-skills/apps/web-app/public/skills.json.backup b/antigravity-awesome-skills/apps/web-app/public/skills.json.backup index f60e596c..6f4b7153 100644 --- a/antigravity-awesome-skills/apps/web-app/public/skills.json.backup +++ b/antigravity-awesome-skills/apps/web-app/public/skills.json.backup @@ -2455,6 +2455,30 @@ "reasons": [] } }, + { + "id": "apple-notes-search", + "path": "skills/apple-notes-search", + "category": "uncategorized", + "name": "apple-notes-search", + "description": "Semantic + keyword search and connection-discovery across the user's own Apple Notes via the apple-notes MCP server. Use when the user wants to find, recall, or synthesize something from their notes, or surface non-obvious bridges/related notes. macOS, on-device.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "blocked", + "claude": "blocked" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [ + "absolute_host_path" + ] + } + }, { "id": "application-performance-performance-optimization", "path": "skills/application-performance-performance-optimization", @@ -6089,6 +6113,28 @@ "reasons": [] } }, + { + "id": "bash", + "path": "skills/super-code/bash", + "category": "super-code", + "name": "bash", + "description": "Language-specific super-code guidelines for bash.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "bash-defensive-patterns", "path": "skills/bash-defensive-patterns", @@ -7107,6 +7153,28 @@ "reasons": [] } }, + { + "id": "c", + "path": "skills/super-code/c", + "category": "super-code", + "name": "c", + "description": "Language-specific super-code guidelines for c.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "c-pro", "path": "skills/c-pro", @@ -7745,6 +7813,28 @@ "reasons": [] } }, + { + "id": "ckw-design", + "path": "skills/ckw-design", + "category": "web-development", + "name": "ckw-design", + "description": "Frontend design entry point: direction, design system, visual philosophy. Use whenever building or touching the look of any web UI (components, pages, dashboards, React/Vue/HTML-CSS) or when the user says \"make this look better\", \"fix the spacing/layout\", or mentions styling, color, type, or polish.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "claimable-postgres", "path": "skills/claimable-postgres", @@ -9689,6 +9779,28 @@ "reasons": [] } }, + { + "id": "cpp", + "path": "skills/super-code/cpp", + "category": "super-code", + "name": "cpp", + "description": "Language-specific super-code guidelines for cpp.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "cpp-pro", "path": "skills/cpp-pro", @@ -10129,6 +10241,28 @@ "reasons": [] } }, + { + "id": "csharp", + "path": "skills/super-code/csharp", + "category": "super-code", + "name": "csharp", + "description": "Language-specific super-code guidelines for csharp.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "csharp-pro", "path": "skills/csharp-pro", @@ -10305,6 +10439,28 @@ "reasons": [] } }, + { + "id": "dart", + "path": "skills/super-code/dart", + "category": "super-code", + "name": "dart", + "description": "Language-specific super-code guidelines for dart.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "data-engineer", "path": "skills/data-engineer", @@ -11297,6 +11453,28 @@ "reasons": [] } }, + { + "id": "deterministic-design", + "path": "skills/deterministic-design", + "category": "uncategorized", + "name": "deterministic-design", + "description": "Render the UI and prove it's balanced + usable: a deterministic layout audit (centroid / optical-center / pixel-oracle balance via explicit math + annotated screenshot) plus a vision-judged Nielsen usability audit by a separate fresh-eyes judge. The measurement layer taste-only design skills lack.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "devcontainer-setup", "path": "skills/devcontainer-setup", @@ -12181,6 +12359,28 @@ "reasons": [] } }, + { + "id": "elixir", + "path": "skills/super-code/elixir", + "category": "super-code", + "name": "elixir", + "description": "Language-specific super-code guidelines for elixir.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "elixir-pro", "path": "skills/elixir-pro", @@ -15239,6 +15439,28 @@ "reasons": [] } }, + { + "id": "go", + "path": "skills/super-code/go", + "category": "super-code", + "name": "go", + "description": "Language-specific super-code guidelines for go.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "go-concurrency-patterns", "path": "skills/go-concurrency-patterns", @@ -17573,6 +17795,28 @@ "reasons": [] } }, + { + "id": "java", + "path": "skills/super-code/java", + "category": "super-code", + "name": "java", + "description": "Language-specific super-code guidelines for java.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "java-pro", "path": "skills/java-pro", @@ -17991,6 +18235,28 @@ "reasons": [] } }, + { + "id": "kotlin", + "path": "skills/super-code/kotlin", + "category": "super-code", + "name": "kotlin", + "description": "Language-specific super-code guidelines for kotlin.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "kotlin-coroutines-expert", "path": "skills/kotlin-coroutines-expert", @@ -19211,6 +19477,50 @@ ] } }, + { + "id": "lookdev", + "path": "skills/lookdev", + "category": "uncategorized", + "name": "lookdev", + "description": "Human-in-the-loop web studio to tune AI-generated output by eye. Stand up a local interactive studio (sliders, pickers, drag handles) or an inline edit/highlight/comment annotation studio for prose & media, instead of guessing values or shipping a static comparison grid.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, + { + "id": "lookdev-auto", + "path": "skills/lookdev-auto", + "category": "uncategorized", + "name": "lookdev-auto", + "description": "Automated visual tuning: a vision or video model rates rendered variants in a loop. Render several labeled variants into one artifact, ask the model to rate them and suggest better values, render the suggestions, ask it to pick the best, repeat until good \u2014 the model is the eye, you run the loop.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "loss-aversion-designer", "path": "skills/loss-aversion-designer", @@ -19387,6 +19697,28 @@ "reasons": [] } }, + { + "id": "macos-screen-recorder", + "path": "skills/macos-screen-recorder", + "category": "uncategorized", + "name": "macos-screen-recorder", + "description": "macOS screen recorder that captures the main display PLUS system audio via ScreenCaptureKit \u2014 no BlackHole/loopback driver, no sudo, just the standard Screen Recording permission. CLI-driven; fills the headless-screen-recording-with-system-sound gap QuickTime and `screencapture -v` can't.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "macos-spm-app-packaging", "path": "skills/macos-spm-app-packaging", @@ -23582,6 +23914,28 @@ "reasons": [] } }, + { + "id": "php", + "path": "skills/super-code/php", + "category": "super-code", + "name": "php", + "description": "Language-specific super-code guidelines for php.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "php-pro", "path": "skills/php-pro", @@ -24090,6 +24444,28 @@ "reasons": [] } }, + { + "id": "pr-merge-champion", + "path": "skills/pr-merge-champion", + "category": "workflow", + "name": "pr-merge-champion", + "description": "Optimize pull requests for quick approval and merging by ensuring clean diffs, comprehensive self-reviews, and structured documentation.", + "risk": "safe", + "source": "self", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "pr-writer", "path": "skills/pr-writer", @@ -24840,6 +25216,28 @@ "reasons": [] } }, + { + "id": "python", + "path": "skills/super-code/python", + "category": "super-code", + "name": "python", + "description": "Language-specific super-code guidelines for python.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "python-development", "path": "skills/python-development", @@ -26094,6 +26492,28 @@ "reasons": [] } }, + { + "id": "ruby", + "path": "skills/super-code/ruby", + "category": "super-code", + "name": "ruby", + "description": "Language-specific super-code guidelines for ruby.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "ruby-pro", "path": "skills/ruby-pro", @@ -26160,6 +26580,28 @@ "reasons": [] } }, + { + "id": "rust", + "path": "skills/super-code/rust", + "category": "super-code", + "name": "rust", + "description": "Language-specific super-code guidelines for rust.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "rust-async-patterns", "path": "skills/rust-async-patterns", @@ -26446,6 +26888,28 @@ "reasons": [] } }, + { + "id": "scala", + "path": "skills/super-code/scala", + "category": "super-code", + "name": "scala", + "description": "Language-specific super-code guidelines for scala.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "scala-pro", "path": "skills/scala-pro", @@ -26688,6 +27152,28 @@ "reasons": [] } }, + { + "id": "screenstudio-alt", + "path": "skills/screenstudio-alt", + "category": "uncategorized", + "name": "screenstudio-alt", + "description": "Open-source headless Screen Studio alternative: auto speed-up of idle, auto-zoom on click clusters, keystroke overlay chips, smoothed synthetic cursor, and 9:16 vertical export that follows the action \u2014 post-production for screen recordings from the CLI.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "scroll-experience", "path": "skills/scroll-experience", @@ -29924,6 +30410,28 @@ "reasons": [] } }, + { + "id": "super-code", + "path": "skills/super-code", + "category": "uncategorized", + "name": "super-code", + "description": "Standing house style to enforce dense, correct, and idiomatic code on all coding tasks. Minimizes code bloat and agent operation overhead.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "superpowers-lab", "path": "skills/superpowers-lab", @@ -29990,6 +30498,28 @@ "reasons": [] } }, + { + "id": "swift", + "path": "skills/super-code/swift", + "category": "super-code", + "name": "swift", + "description": "Language-specific super-code guidelines for swift.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "swift-concurrency-expert", "path": "skills/swift-concurrency-expert", @@ -31710,6 +32240,28 @@ "reasons": [] } }, + { + "id": "typescript", + "path": "skills/super-code/typescript", + "category": "super-code", + "name": "typescript", + "description": "Language-specific super-code guidelines for typescript.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "typescript-advanced-types", "path": "skills/typescript-advanced-types", @@ -33322,6 +33874,28 @@ "reasons": [] } }, + { + "id": "web-media-getter", + "path": "skills/web-media-getter", + "category": "uncategorized", + "name": "web-media-getter", + "description": "One query across free image / video / GIF APIs (stock + historical/archival + GIF engines), returning normalized, license-tagged results with optional top-K download + attribution sidecar. The retrieval peer to local semantic search and generative media.", + "risk": "safe", + "source": "community", + "date_added": "2026-06-16", + "plugin": { + "targets": { + "codex": "supported", + "claude": "supported" + }, + "setup": { + "type": "none", + "summary": "", + "docs": null + }, + "reasons": [] + } + }, { "id": "web-performance-optimization", "path": "skills/web-performance-optimization", diff --git a/antigravity-awesome-skills/assets/star-history.png b/antigravity-awesome-skills/assets/star-history.png index eb4c477349a88d0c296a786544eef637e83da17b..7e9f4f95d92295680f27eef272c0492d5c3f2233 100644 GIT binary patch literal 50802 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�Jpc`1fdlF`ov&kx)F+U&ubI^VL$vY< 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 Installable GitHub library of 1,569+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants. +> Installable GitHub library of 1,595+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants. Key framing: @@ -20,7 +20,7 @@ Key framing: Preferred description: -> Installable GitHub library of 1,569+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections. +> Installable GitHub library of 1,595+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections. Preferred homepage: @@ -28,7 +28,7 @@ Preferred homepage: Preferred social preview: -- use a clean preview image that says `1,569+ Agentic Skills`; +- use a clean preview image that says `1,595+ Agentic Skills`; - mention Claude Code, Cursor, Codex CLI, and Gemini CLI; - avoid dense text and tiny logos that disappear in social cards. diff --git a/antigravity-awesome-skills/docs/maintainers/skills-update-guide.md b/antigravity-awesome-skills/docs/maintainers/skills-update-guide.md index 942fc192..7b147799 100644 --- a/antigravity-awesome-skills/docs/maintainers/skills-update-guide.md +++ b/antigravity-awesome-skills/docs/maintainers/skills-update-guide.md @@ -72,7 +72,7 @@ The update process refreshes: - Canonical skills index (`skills_index.json`) - Compatibility mirror (`data/skills_index.json`) - Web app skills data (`apps\web-app\public\skills.json`) -- All 1,569+ skills from the skills directory +- All 1,595+ skills from the skills directory ## When to Update diff --git a/antigravity-awesome-skills/docs/users/bundles.md b/antigravity-awesome-skills/docs/users/bundles.md index 5009a53c..fab52b4e 100644 --- a/antigravity-awesome-skills/docs/users/bundles.md +++ b/antigravity-awesome-skills/docs/users/bundles.md @@ -917,4 +917,4 @@ Found a skill that should be in a bundle? Or want to create a new bundle? [Open --- -_Last updated: March 2026 | Total Skills: 1,569+ | Total Bundles: 52_ +_Last updated: March 2026 | Total Skills: 1,595+ | Total Bundles: 52_ diff --git a/antigravity-awesome-skills/docs/users/claude-code-skills.md b/antigravity-awesome-skills/docs/users/claude-code-skills.md index 116702b0..d036034d 100644 --- a/antigravity-awesome-skills/docs/users/claude-code-skills.md +++ b/antigravity-awesome-skills/docs/users/claude-code-skills.md @@ -12,7 +12,7 @@ Install the library into Claude Code, then invoke focused skills directly in the ## Why use this repo for Claude Code -- It includes 1,569+ skills instead of a narrow single-domain starter pack. +- It includes 1,595+ skills instead of a narrow single-domain starter pack. - It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow. - It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata. - It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin. diff --git a/antigravity-awesome-skills/docs/users/gemini-cli-skills.md b/antigravity-awesome-skills/docs/users/gemini-cli-skills.md index 9d4d5dab..81a14362 100644 --- a/antigravity-awesome-skills/docs/users/gemini-cli-skills.md +++ b/antigravity-awesome-skills/docs/users/gemini-cli-skills.md @@ -12,7 +12,7 @@ Install into the Gemini skills path, then ask Gemini to apply one skill at a tim - It installs directly into the expected Gemini skills path. - It includes both core software engineering skills and deeper agent/LLM-oriented skills. -- It helps new users get started with bundles and workflows rather than forcing a cold start from 1,569+ files. +- It helps new users get started with bundles and workflows rather than forcing a cold start from 1,595+ files. - It is useful whether you want a broad internal skill library or a single repo to test many workflows quickly. ## Install Gemini CLI Skills diff --git a/antigravity-awesome-skills/docs/users/getting-started.md b/antigravity-awesome-skills/docs/users/getting-started.md index c488adc3..e4063bb8 100644 --- a/antigravity-awesome-skills/docs/users/getting-started.md +++ b/antigravity-awesome-skills/docs/users/getting-started.md @@ -1,4 +1,4 @@ -# Getting Started with Antigravity Awesome Skills (V12.7.0) +# Getting Started with Antigravity Awesome Skills (V12.8.0) **New here? This guide will help you supercharge your AI Agent in 5 minutes.** diff --git a/antigravity-awesome-skills/docs/users/kiro-integration.md b/antigravity-awesome-skills/docs/users/kiro-integration.md index 2b019245..2c61fc22 100644 --- a/antigravity-awesome-skills/docs/users/kiro-integration.md +++ b/antigravity-awesome-skills/docs/users/kiro-integration.md @@ -18,7 +18,7 @@ Kiro is AWS's agentic AI IDE that combines: Kiro's agentic capabilities are enhanced by skills that provide: -- **Domain expertise** across 1,569+ specialized areas +- **Domain expertise** across 1,595+ specialized areas - **Best practices** from Anthropic, OpenAI, Google, Microsoft, and AWS - **Workflow automation** for common development tasks - **AWS-specific patterns** for serverless, infrastructure, and cloud architecture diff --git a/antigravity-awesome-skills/docs/users/usage.md b/antigravity-awesome-skills/docs/users/usage.md index a833d04a..3887b09d 100644 --- a/antigravity-awesome-skills/docs/users/usage.md +++ b/antigravity-awesome-skills/docs/users/usage.md @@ -14,7 +14,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of a full l When you ran `npx antigravity-awesome-skills` or cloned the repository, you: -✅ **Downloaded 1,569+ skill files** to your computer (default: `~/.agents/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`) +✅ **Downloaded 1,595+ skill files** to your computer (default: `~/.agents/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`) ✅ **Made them available** to your AI assistant ❌ **Did NOT enable them all automatically** (they're just sitting there, waiting) @@ -34,7 +34,7 @@ Bundles are **curated groups** of skills organized by role. They help you decide **Analogy:** -- You installed a toolbox with 1,569+ tools (✅ done) +- You installed a toolbox with 1,595+ tools (✅ done) - Bundles are like **labeled organizer trays** saying: "If you're a carpenter, start with these 10 tools" - You can either **pick skills from the tray** or install that tray as a focused marketplace bundle plugin @@ -212,7 +212,7 @@ Let's actually use a skill right now. Follow these steps: ## Step 5: Picking Your First Skills (Practical Advice) -Don't try to use all 1,569+ skills at once. Here's a sensible approach: +Don't try to use all 1,595+ skills at once. Here's a sensible approach: If you want a tool-specific starting point before choosing skills, use: @@ -343,7 +343,7 @@ Usually no, but if your AI doesn't recognize a skill: ### "Can I load all skills into the model at once?" -No. Even though you have 1,569+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block. +No. Even though you have 1,595+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block. The intended pattern is: diff --git a/antigravity-awesome-skills/docs/users/visual-guide.md b/antigravity-awesome-skills/docs/users/visual-guide.md index e7d2f1c5..a8b8512a 100644 --- a/antigravity-awesome-skills/docs/users/visual-guide.md +++ b/antigravity-awesome-skills/docs/users/visual-guide.md @@ -34,7 +34,7 @@ antigravity-awesome-skills/ ├── 📄 CONTRIBUTING.md ← Contributor workflow ├── 📄 CATALOG.md ← Full generated catalog │ -├── 📁 skills/ ← 1,569+ skills live here +├── 📁 skills/ ← 1,595+ skills live here │ │ │ ├── 📁 brainstorming/ │ │ └── 📄 SKILL.md ← Skill definition @@ -47,7 +47,7 @@ antigravity-awesome-skills/ │ │ └── 📁 2d-games/ │ │ └── 📄 SKILL.md ← Nested skills also supported │ │ -│ └── ... (1,569+ total) +│ └── ... (1,595+ total) │ ├── 📁 apps/ │ └── 📁 web-app/ ← Interactive browser @@ -100,7 +100,7 @@ antigravity-awesome-skills/ ``` ┌─────────────────────────┐ - │ 1,569+ SKILLS │ + │ 1,595+ SKILLS │ └────────────┬────────────┘ │ ┌────────────────────────┼────────────────────────┐ @@ -201,7 +201,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill │ ├── 📁 brainstorming/ │ │ ├── 📁 stripe-integration/ │ │ ├── 📁 react-best-practices/ │ -│ └── ... (1,569+ total) │ +│ └── ... (1,595+ total) │ └─────────────────────────────────────────┘ ``` diff --git a/antigravity-awesome-skills/package-lock.json b/antigravity-awesome-skills/package-lock.json index 815176fe..d35814c4 100644 --- a/antigravity-awesome-skills/package-lock.json +++ b/antigravity-awesome-skills/package-lock.json @@ -1,12 +1,12 @@ { "name": "antigravity-awesome-skills", - "version": "12.7.0", + "version": "12.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "antigravity-awesome-skills", - "version": "12.7.0", + "version": "12.8.0", "license": "MIT", "dependencies": { "yaml": "^2.8.2" diff --git a/antigravity-awesome-skills/package.json b/antigravity-awesome-skills/package.json index a34e2580..86dcafbf 100644 --- a/antigravity-awesome-skills/package.json +++ b/antigravity-awesome-skills/package.json @@ -1,7 +1,7 @@ { "name": "antigravity-awesome-skills", - "version": "12.7.0", - "description": "1,569+ agentic skills for Claude Code, Gemini CLI, Cursor, Antigravity & more. Installer CLI.", + "version": "12.8.0", + "description": "1,595+ agentic skills for Claude Code, Gemini CLI, Cursor, Antigravity & more. Installer CLI.", "license": "MIT", "scripts": { "validate": "node tools/scripts/run-python.js tools/scripts/validate_skills.py", diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/.claude-plugin/plugin.json b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/.claude-plugin/plugin.json index d2e63b05..37502d5a 100644 --- a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/.claude-plugin/plugin.json +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "antigravity-awesome-skills", - "version": "12.7.0", - "description": "Plugin-safe Claude Code distribution of Antigravity Awesome Skills with 1,536 supported skills.", + "version": "12.8.0", + "description": "Plugin-safe Claude Code distribution of Antigravity Awesome Skills with 1,561 supported skills.", "author": { "name": "sickn33 and contributors", "url": "https://github.com/sickn33/antigravity-awesome-skills" diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ab-test-setup/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ab-test-setup/SKILL.md index 9726af6e..c74a0ec8 100644 --- a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ab-test-setup/SKILL.md +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ab-test-setup/SKILL.md @@ -127,6 +127,20 @@ Estimate: --- +### Tracking Verification (Required before Gate 8) + +Before entering the Execution Readiness Gate below, run through this checklist to make "Tracking is verified" mean something concrete: + +1. **Event firing:** Trigger each event the primary and secondary metrics depend on (sign-up, add-to-cart, custom event) on staging or a debug page, and confirm it lands in your analytics destination within 30 seconds. +2. **Variant attribution:** Verify that the variant assignment ID is attached to every fired event — not just the entry event. Use your analytics' raw event view to compare a sample of 5+ events per variant. +3. **De-duplication:** Confirm that a user reloading the page does not cause double-counted events. If your stack uses client-side de-duping, the variant ID must be part of the dedup key. +4. **Sample randomization:** Pull the first 100 assignment records from your assignment table; the variant split should be within ±5% of the configured allocation. +5. **Guardrail metric pipeline:** Each guardrail metric defined in §6️⃣ must have a working dashboard or alert by the time the test launches. + +If any of the above fails, stop and resolve it before Gate 8. + +--- + ## 8️⃣ Execution Readiness Gate (Hard Stop) You may proceed to implementation **only if all are true**: diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/coordinates.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/coordinates.md new file mode 100644 index 00000000..e2c2d3a6 --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/coordinates.md @@ -0,0 +1,9 @@ +# astropy.coordinates — Reference + +This file is a placeholder for the extended `astropy.coordinates` reference promised in the skill workflow. + +For detailed coordinate frame descriptions, transformations, observer-dependent frames (AltAz), catalog matching, and performance tips, see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/coordinates/ +- https://docs.astropy.org/en/stable/coordinates/frames.html +- https://docs.astropy.org/en/stable/coordinates/matchsep.html diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/cosmology.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/cosmology.md new file mode 100644 index 00000000..56a81ab7 --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/cosmology.md @@ -0,0 +1,8 @@ +# astropy.cosmology — Reference + +This file is a placeholder for the extended `astropy.cosmology` reference promised in the skill workflow. + +For available models, distance calculations, time calculations, density parameters, and neutrino effects, see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/cosmology/ +- https://docs.astropy.org/en/stable/cosmology/realizations.html diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/fits.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/fits.md new file mode 100644 index 00000000..8c966dff --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/fits.md @@ -0,0 +1,8 @@ +# astropy.io.fits — Reference + +This file is a placeholder for the extended `astropy.io.fits` reference promised in the skill workflow. + +For file operations, header manipulation, image and table handling, multi-extension files, and performance considerations, see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/io/fits/ +- https://docs.astropy.org/en/stable/io/fits/usage/headers.html diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/tables.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/tables.md new file mode 100644 index 00000000..89eed2ca --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/tables.md @@ -0,0 +1,8 @@ +# astropy.table — Reference + +This file is a placeholder for the extended `astropy.table` reference promised in the skill workflow. + +For table creation, I/O operations, data manipulation, sorting, filtering, joins, grouping, and performance tips, see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/table/ +- https://docs.astropy.org/en/stable/table/operations.html diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/time.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/time.md new file mode 100644 index 00000000..ed8697fc --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/time.md @@ -0,0 +1,7 @@ +# astropy.time — Reference + +This file is a placeholder for the extended `astropy.time` reference promised in the skill workflow. + +For time formats, time scales, conversions, arithmetic, observing features, and precision handling, see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/time/ diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/units.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/units.md new file mode 100644 index 00000000..ce0102f2 --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/units.md @@ -0,0 +1,9 @@ +# astropy.units — Reference + +This file is a placeholder for the extended `astropy.units` reference promised in the skill workflow. + +For comprehensive documentation, unit systems, equivalencies, performance optimization, and unit arithmetic, see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/units/ +- https://docs.astropy.org/en/stable/units/equivalencies.html +- https://docs.astropy.org/en/stable/units/standards.html diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/wcs_and_other_modules.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/wcs_and_other_modules.md new file mode 100644 index 00000000..cb1d4d10 --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/astropy/references/wcs_and_other_modules.md @@ -0,0 +1,9 @@ +# astropy.wcs and other modules — Reference + +This file is a placeholder for the extended `astropy.wcs` (and related modules) reference promised in the skill workflow. + +For WCS operations and transformations, plus related modules (`astropy.modeling`, `astropy.constants`, `astropy.convolution`, etc.), see the upstream astropy docs: + +- https://docs.astropy.org/en/stable/wcs/ +- https://docs.astropy.org/en/stable/modeling/ +- https://docs.astropy.org/en/stable/constants/ diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/browser-extension-builder/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/browser-extension-builder/SKILL.md index 0f8e130a..4e8e1610 100644 --- a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/browser-extension-builder/SKILL.md +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/browser-extension-builder/SKILL.md @@ -44,7 +44,7 @@ use daily. You know the difference between a toy and a tool. ## Patterns -### Extension Architecture +### Architecture Patterns Structure for modern browser extensions diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ckw-design/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ckw-design/SKILL.md new file mode 100644 index 00000000..e5d894df --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/ckw-design/SKILL.md @@ -0,0 +1,129 @@ +--- +name: ckw-design +description: "Frontend design entry point: direction, design system, visual philosophy. Use whenever building or touching the look of any web UI (components, pages, dashboards, React/Vue/HTML-CSS) or when the user says \"make this look better\", \"fix the spacing/layout\", or mentions styling, color, type, or polish." +risk: safe +source: community +source_type: community +source_repo: connerkward/ckw-design-skill +date_added: "2026-06-16" +author: Conner K Ward +license: MIT +tags: + - design + - frontend + - ui + - css + - typography + - responsive +tools: + - claude-code + - antigravity + - cursor + - gemini-cli + - codex-cli +--- +## When to Use + +Use whenever building or styling web UIs — components, pages, dashboards, landing pages, React/Vue/HTML-CSS layouts — or whenever the user asks to make something "look better/nicer", fix spacing/layout, or mentions styling, color, typography, fonts, responsive design, polish, or aesthetics, even without the word "design". + +_Source: [connerkward/ckw-design-skill](https://github.com/connerkward/ckw-design-skill) (MIT)._ + +# Design (entry) + +Use this skill when the user asks to build or style web UIs: components, pages, dashboards, landing pages, React/Vue/HTML-CSS layouts, or any frontend interface. Goal: distinctive, production-grade output that avoids generic AI aesthetics. + +**Before reporting any design "done": render it and have a *separate* judge critique the image** (not the code, not self-grading) — see design-spatial §1. Blind generation can't see its own collisions; this applies to all design output, not just spatial work. + +> **MANDATORY HORIZONTAL-OVERFLOW GATE — runs before ANY web UI is "done".** +> Measure `document.documentElement.scrollWidth - document.documentElement.clientWidth` +> at a **narrow width (~390px and ~1024px), this turn**, and confirm it's `0`. This +> bug is invisible at desktop width and re-appears every time a row (header, nav, +> toolbar) gains an item, so it ships repeatedly. Default to `flex-wrap:wrap` on +> header/toolbar rows + `body{overflow-x:clip}`, and **re-measure after adding any +> element to a horizontal row.** Full procedure + recurrence cases: design-spatial §4. +> If you haven't measured narrow, you are not done — don't claim it. + +## Sub-skills (load when relevant) + +- **design-thinking** — Load for every design task. Defines purpose, tone, domain, color world, review bar, and cross-domain lens (cinema, architecture, marketing, UX, automotive, industrial design). See [design-thinking/SKILL.md](https://github.com/connerkward/ckw-design-skill/blob/main/design-thinking/SKILL.md). +- **design-system** — Load when implementing: tokens, typography, motion, color semantics, backgrounds. Use when building components, pages, or design systems. See [design-system/SKILL.md](https://github.com/connerkward/ckw-design-skill/blob/main/design-system/SKILL.md). +- **design-spatial** — Load when composing layout: explicit grid + 8-point spacing constraints, visual-weight/balance/alignment, and a render-then-critique vision loop. The fix for "spatial understanding is off" — generated layout that's centered mush, misaligned, or breaks at some widths. See [design-spatial/SKILL.md](https://github.com/connerkward/ckw-design-skill/blob/main/deterministic-design/design-spatial/SKILL.md). +- **design-ux** — Load when auditing USABILITY (not just looks): a UI that "feels off"/"sucks to use", is hard to learn, needs an instruction wall, or any interactive tool/editor/app before shipping. Scores the rendered UI against Nielsen's 10 + interaction heuristics via a SEPARATE fresh-eyes judge → prioritized fix list. Usability ≠ aesthetics. See [design-ux/SKILL.md](https://github.com/connerkward/ckw-design-skill/blob/main/deterministic-design/design-ux/SKILL.md). +- **design-philosophy** — Load for high-concept work, campaigns, or when the user asks for a visual philosophy, manifesto, or unmistakable art-like aesthetic. See [design-philosophy/SKILL.md](https://github.com/connerkward/ckw-design-skill/blob/main/design-philosophy/SKILL.md). + +## Visual assets — generate or source + +When design-thinking identifies a need for visual assets (logos, icons, hero images, textures, backgrounds): + +1. **Generate** → use an image-generation model or API for synthetic/branded assets. +2. **Source a real/archival one** → free stock or archival image search, often cheaper and more authentic than generating. +3. Use design-thinking output (tone, domain, color world) to craft prompts / queries. +4. Evaluate against the design philosophy, refine, integrate into the build. + +## LLM-assisted work — always annotate model + cost + +When design work involves running an LLM (generative assets, VLM analysis, layout critique, prompt generation, etc.): + +- **Before running:** state which model will be used and the estimated cost (e.g., "gpt-4o-mini · ~$0.005/image" or "FLUX v1 · ~$0.006 per gen"). +- **After results:** annotate the output with the model used, actual cost if different from estimate, and any key params (seed, prompt, settings). Cost goes *visible to the user* (in the message, contact sheet header, or asset caption), not buried in logs. +- **Why:** the user is deciding whether the cost-to-quality trade-off is worth it. Unlabeled or hidden costs hide the most important lever. This rule mirrors `media-attribution-rule` for generative assets and extends it to any LLM operation in the design workflow. + +**Examples:** +- "Running gpt-4o-mini layout critique on 8 designs · est. ~$0.04 total" (before). +- Contact sheet header: "FLUX v1 · $0.48 total (6 gen × $0.08)" (after). +- Asset caption: "hero_banner_flux-dev_seed3891.jpg" (seeds enable reproducibility). +- Uncertainty slider result: "VLM triage on 46,978 images · gpt-4o-mini · ~$9.40" (before); "✓ Completed: 12,447 images classified · gpt-4o-mini · $7.62" (after). + +## Algorithm / model explainers — show the equation, annotate the terms + +Whenever a UI surfaces an algorithm or model to the user (an "ⓘ how this works" +panel, a model breakdown, a methods note), **include the actual equation, typeset, +with its key terms annotated** — don't settle for prose. A scorer described only in +words ("ranks by how much of the picked color is present") is unfalsifiable hand- +waving; the formula `score = Σ fracᵢ · max(0, 1 − ΔEᵢ/τ)` with each term labelled +tells the user *exactly* what the knob does and builds trust that there's real math +under the hood. + +**How to apply:** +- Render one clean, central equation per algorithm — the "sexy" core, not every + detail. Use proper notation: σ for sigmoid, Σ for sums, ‖·‖ for norms, + superscripts, ΔE, ∇²; a monospace/serif-math block set off from the prose. +- **Annotate every symbol** immediately below: what `e_x`, `w`, `τ`, `Q` each are, + in one line each. An unlabelled equation is decoration; a labelled one is a spec. +- Keep it dependency-light — styled HTML/Unicode math is fine and works offline; only + reach for KaTeX/MathJax if the expressions genuinely need it. +- State the **decision rule** alongside the score (e.g. "personal if P ≥ 0.55"). +- This composes with the model+cost annotation above: the equation says *what* it + computes, the model/cost line says *what ran it and for how much*. + +**Example (a logistic head):** +> P(personal │ x) = σ(**w**·**e**ₓ + b), σ(z) = 1 / (1 + e⁻ᶻ) +> • **e**ₓ — the image's 768-d embedding · **w**, b — weights learned from your labels +> · decision: personal if P ≥ 0.55, reference if P ≤ 0.40. + +## Select-all always has a deselect — no dead-end selections + +Any **"Select all"** affordance MUST be paired with a way to **clear the selection** — +preferably the *same button*, label-flipped when everything is already selected +("Select all" ⇄ "Deselect all"). A select-all with no inverse is a trap: the user +over-selects (or hits it by reflex), then has to un-click items one by one, or reload +the page, to get back. The cost is silent — it only bites *after* they've committed to +the wrong set. + +**How to apply:** +- **Toggle the same button** (simplest, fewest controls): when all visible items are + selected, the button reads "Deselect all" and clears; otherwise "Select all". One + control, no dead end. +- Or a **separate Clear/Deselect** shown whenever the selection is non-empty. +- The deselect must reach the **same scope** the select-all did (all *shown*, all + *filtered*, all *on this page*) — don't let "Select all" grab 500 but "Clear" only + drop the 50 on screen. +- This generalizes: any reversible bulk toggle (select, expand-all, mute-all, + check-all) needs its inverse one tap away. Symmetry of action — see + restraint-rule (don't strand the user mid-task). + +## Limitations + +- This skill improves visual direction and review discipline, but it does not replace rendering the actual UI and checking it in target browsers or devices. +- Some recommendations assume access to screenshots, browser automation, or vision review; when those are unavailable, treat the guidance as a design checklist rather than proof. +- Brand, legal, accessibility, and localization constraints from the product owner override the taste rules here. diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/deterministic-design/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/deterministic-design/SKILL.md new file mode 100644 index 00000000..e5d9ec72 --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/deterministic-design/SKILL.md @@ -0,0 +1,56 @@ +--- +name: deterministic-design +description: "Render the UI and prove it's balanced + usable: a deterministic layout audit (centroid / optical-center / pixel-oracle balance via explicit math + annotated screenshot) plus a vision-judged Nielsen usability audit by a separate fresh-eyes judge. The measurement layer taste-only design skills lack." +risk: safe +source: community +source_type: community +source_repo: connerkward/deterministic-design-skill +date_added: "2026-06-16" +author: Conner K Ward +license: MIT +tags: + - design + - layout + - usability + - audit + - verification + - vision +tools: + - claude-code + - antigravity + - cursor + - gemini-cli + - codex-cli +--- +## When to Use + +Use to catch AI-generated UI that "looks off", is misaligned or centered-mush, or fails usability — when you need to PROVE a layout is balanced and usable instead of trusting the model's eye. Compose it with any taste/token design skill before reporting design "done". + +_Source: [connerkward/deterministic-design-skill](https://github.com/connerkward/deterministic-design-skill) (MIT)._ + +# deterministic-design + +Thesis: **determinism beats AI randomness.** A model can't trust its own eye on layout — so +don't. Render the UI and *measure* it. + +Two sub-skills (load as needed): +- **[design-spatial](https://github.com/connerkward/deterministic-design-skill/blob/main/design-spatial/SKILL.md)** — deterministic layout audit: explicit grid + + 8-pt spacing, and `layout-audit.js` computes centroid / optical-center / pixel-oracle + balance and draws an annotated screenshot. **Numbers, not vibes.** Plus a render-then- + critique vision loop. +- **[design-ux](https://github.com/connerkward/deterministic-design-skill/blob/main/design-ux/SKILL.md)** — usability audit: scores the rendered UI against + Nielsen's 10 + interaction heuristics via a SEPARATE fresh-eyes judge → prioritized fix list. + +This **improves** existing design skills (including the default Anthropic one) by adding the +layer they lack — it doesn't just advise on taste, it renders, measures, and judges the +output. Composable with any design skill. + +In central this lives as a subdir of ckw-design; it **publishes separately** as +`deterministic-design-skill` (its own distribution) via publish-skill. One of the two +flagship narratives — the *determinism* one; its sibling is human-in-the-loop (lookdev). + +## Limitations + +- Layout metrics and vision-judged audits catch many spatial and usability failures, but they are not a substitute for product judgment or user testing. +- The workflow requires a rendered UI or screenshot; it cannot validate components that have not been built or captured. +- Automated scoring can miss brand nuance, copy tone, accessibility needs, and domain-specific user expectations. diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lint-and-validate/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lint-and-validate/SKILL.md index 64a68d6b..d7b3cccc 100644 --- a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lint-and-validate/SKILL.md +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lint-and-validate/SKILL.md @@ -24,7 +24,9 @@ date_added: "2026-02-27" ## The Quality Loop 1. **Write/Edit Code** -2. **Run Audit:** `npm run lint && npx tsc --noEmit` +2. **Run Audit** for the project's ecosystem: + - **Node.js / TypeScript:** `npm run lint && npx tsc --noEmit` + - **Python:** `ruff check . --fix && mypy . && bandit -r . -ll` 3. **Analyze Report:** Check the "FINAL AUDIT REPORT" section. 4. **Fix & Repeat:** Submitting code with "FINAL AUDIT" failures is NOT allowed. diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev-auto/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev-auto/SKILL.md new file mode 100644 index 00000000..fb961f10 --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev-auto/SKILL.md @@ -0,0 +1,102 @@ +--- +name: lookdev-auto +description: "Automated visual tuning: a vision or video model rates rendered variants in a loop. Render several labeled variants into one artifact, ask the model to rate them and suggest better values, render the suggestions, ask it to pick the best, repeat until good — the model is the eye, you run the loop." +risk: safe +source: community +source_type: community +source_repo: connerkward/lookdev-auto-skill +date_added: "2026-06-16" +author: Conner K Ward +license: MIT +tags: + - visual-eval + - vision-model + - tuning + - automation + - render-loop +tools: + - claude-code + - antigravity + - cursor + - gemini-cli + - codex-cli +--- +## When to Use + +Use whenever "looks/feels right" is the success criterion and there's no cheap numeric metric — animation easing/timing, zoom/camera feel, color grade, layout/spacing, design params, render/encoder settings, prompt params. Use the automated counterpart to lookdev when there's no human to sit the loop. + +_Source: [connerkward/lookdev-auto-skill](https://github.com/connerkward/lookdev-auto-skill) (MIT)._ + +# Visual eval loop — let a vision/video model tune what only an eye can judge + +When the target is "does this LOOK/FEEL right" (not a number you can minimize), a +vision model (image) or video-understanding model (motion/timing) can be the judge in +a tight optimize loop. Worked reference: the `screenstudio-alternative` skill (`iteration.py`) +(tuned zoom-animation feel via `fal-ai/video-understanding`). + +## The loop + +1. **Render N labeled variants into ONE artifact.** Vary the parameter(s) across a + small spread. **Annotate each variant's params ON the artifact** (burn the label in: + "A · 2.2Hz · ζ0.5"). Images → a labeled grid/contact sheet. Video/motion → a + labeled *sequence* (label card or burned-in overlay before/over each clip) so the + model can compare temporally. +2. **One model call, structured output.** Send the single artifact with an explicit + rubric (define what "good" means — and what "too much"/"too little" look like). + Ask for **per-variant ratings + concrete suggested new values as JSON**: + `{"ratings":{"A":n,...},"best_so_far":"X","suggest":[[p1,p2],...]}`. +3. **Coarse → fine.** Round 1 = wide spread to locate the region. Round 2 = render the + model's suggestions (+ carry the current best) into one artifact; ask it to **pick + the single best**. Usually converges in **2 rounds**. +4. **Stop when sufficient** — best rates high and suggestions cluster. Apply the winner. + +## Token / quality / step reductions (do these) + +- **One artifact per round, not one call per variant.** The biggest saver — a 6-variant + round is 1 upload + 1 inference, not 6. Montage/grid beats a loop of single calls. +- **Burn params onto the artifact.** The model sees label+result together → no separate + "variant A used X" context to carry → fewer tokens, fewer mistakes. +- **Structured JSON out + parse.** No re-asking, no free-text wrangling. Prompt "return + ONLY JSON"; regex the first `{...}`. +- **Short representative sample.** Tune on a 3-5s clip / one frame / one component, not + the whole asset. Cheaper render, smaller upload, faster inference. Apply the found + params to the full render once. +- **Cap variants at ~5-6.** More doesn't improve the model's discrimination and multiplies + render + token cost. Wide-but-sparse round 1, narrow round 2. +- **Calibration anchors.** Include one deliberately-bad and one safe-default variant as + fixed anchors each round — gives the model a reference scale and exposes when its + "best" is worse than the safe default (catch a bad recommendation early). +- **Independent rubric, stated up front.** Define "good" concretely in the prompt + (smooth, subtle settle, not bouncy, not sluggish). Don't ask "which do you like" — + that lets it echo your framing. A held-out criterion keeps the judge honest + (see verify-outputs-rule: the check must be independent of what you tuned). +- **Reuse renders across rounds.** Carry the round-1 winner's clip into round 2 instead + of re-rendering it. +- **Early-exit.** If round-1 top ≥9/10 and the three suggestions are within a small delta, + skip round 2. +- **Cheapest judge that can see the failure.** Frames-through an image VLM can judge + spatial things (layout, color, crop); only reach for a true *video* model when the + thing being judged is **temporal** (easing, timing, motion smoothness) — those are + invisible in stills. + +## When NOT to use it + +- A real numeric metric exists and correlates with quality → optimize that directly; + don't pay a model per step. +- The judgment is subjective-to-the-user (their taste, brand) → show them the variants + and let them pick; a model's "best" isn't their best. (This is why the screen-studio + spring auto-tune was dropped — the model's pick didn't match the owner's eye.) +- One or two variants → just look yourself. + +## Caveats (learned) + +- The model's pick is an *opinion*, not ground truth — anchor it, and sanity-check the + winner against the safe default yourself before committing. +- Vision/video models perceive gross differences well, fine ones poorly — keep variant + spacing perceptible; near-identical variants get noise-rated. + +## Limitations + +- Model ratings are probabilistic aesthetic judgments, not objective truth; keep a human review step for brand-critical or subjective work. +- Automated rounds can become expensive or slow when renders are heavy or many variants are explored. +- This skill needs screenshots, frames, or clips that expose the quality difference; it is weak for subtle motion, audio, copy nuance, or user-preference calls. diff --git a/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev/SKILL.md b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev/SKILL.md new file mode 100644 index 00000000..07c92aec --- /dev/null +++ b/antigravity-awesome-skills/plugins/antigravity-awesome-skills-claude/skills/lookdev/SKILL.md @@ -0,0 +1,229 @@ +--- +name: lookdev +description: "Human-in-the-loop web studio to tune AI-generated output by eye. Stand up a local interactive studio (sliders, pickers, drag handles) or an inline edit/highlight/comment annotation studio for prose & media, instead of guessing values or shipping a static comparison grid." +risk: safe +source: community +source_type: community +source_repo: connerkward/lookdev-studio-skill +date_added: "2026-06-16" +author: Conner K Ward +license: MIT +tags: + - lookdev + - design + - ui + - tuning + - studio + - visual-eval + - annotation +tools: + - claude-code + - antigravity + - cursor + - gemini-cli + - codex-cli +--- +## When to Use + +Use when the user says "lookdev", or asks to tune / dial in / iterate on the look of something, compare variations by feel, or review / edit / annotate a blog post, doc, copy, or media set. Use whenever "show me, I'll pick" beats asking the user to specify a number, and whenever you'd otherwise hand back a static grid or a wall of prose for review. + +_Source: [connerkward/lookdev-studio-skill](https://github.com/connerkward/lookdev-studio-skill) (MIT)._ + +# Lookdev + +When the user says **"lookdev"** — or any of: *tune*, *dial in*, *iterate on the look of*, *compare variations of*, *let me adjust*, *let me edit/annotate/mark up*, *review this post/doc/copy* — they mean **build an interactive in-browser tool the user directly manipulates**. Not a static grid of N variations. Not a Q&A where they specify numbers. Not a wall of prose they're asked to read and reply to in chat. A real-time studio where they act on the artifact and the change is captured. + +**Two studio shapes — pick by what's being tuned:** + +- **Visual-parameter lookdev** — the artifact's *look* is set by numbers/choices (color, type, layout, image treatment, animation, 3D). Controls = sliders, pickers, drag handles. This is the bulk of this skill (below). +- **Text & media lookdev** — the artifact is a *document, blog post, copy, or media set* and the user is editing/curating it: rewriting sentences, cutting boring paragraphs, highlighting, leaving margin comments, flagging "diagram goes here" / "wrong image, replace." Controls = **direct inline editing + selection highlight + anchored comments + media annotation**. See the dedicated section below. **A blog post / doc / script review IS this mode — never hand back a long markdown file and ask the user to react in chat. Stand up the annotation studio.** + +## What it covers + +Any visual decision the user picks by feel, not by spec. Expand this list as needed: + +- **Image processing** — dither, halftone, posterize, ASCII, blur, edge, quantize, mosaic, color-grade +- **Color** — palette extraction (show coverage %), per-band pickers, saturation / contrast / gamma curves, harmony presets, theme tokens +- **Typography** — font selector, size / weight / leading / tracking / measure, live sample text, fallback stack +- **Layout, positioning, framing, spacing** — draggable & selectable elements; resize handles; margin / padding rulers; alignment guides; snap-to-grid; aspect-lock toggles +- **Crop & framing** — draggable crop rectangle with aspect lock; live cropped preview at production size +- **Animation / transitions** — easing curve editor, duration sliders, scrubber, replay +- **Component variants** — render hover / focus / disabled / loading / dark side by side on one page +- **Iconography** — stroke weight, corner radius, glyph on canvas +- **AI-generated content** — prompt input + param sliders + side-by-side regeneration grid +- **Anything else where "show me, I'll pick"** beats "ask me to specify a number" + +## Controls must stay reachable while inspecting + +If the studio shows a list, grid, or scroll-long set of variations, **controls must be visible from every scroll position**. The user has to be able to drag a slider while looking at row 14, not scroll back to the top each time. + +Two approaches, pick by layout: + +- **Sticky bar** (`position: sticky; top: 0`) at the top of the scroll container. Keep the bar visually distinct — paper background + blur backdrop + bottom border — so it doesn't muddy the specimens scrolling behind it. Sticky pins relative to the *nearest scrolling ancestor with a defined boundary*; if you nest it inside a sized parent (a `
` with `margin-bottom`, a `
` with a fixed height), it stops sticking at that parent's bottom edge. Lift it to be a direct child of `` (or the page-wrap) so stickiness spans the whole page. +- **Floating overlay** (`position: fixed`) for hotkey-toggled controls — e.g. press `d` to reveal. The portfolio's `.debug-ctl` pattern is this: pinned top-left, transparent until summoned. Use when the controls shouldn't occupy permanent screen real estate (final viewers shouldn't see them; the author can summon on demand). + +Anti-pattern: a top-of-page control panel that the user scrolls past and never sees again. They will tune blindly, give up, or guess. Either keep the controls in view *or* duplicate a compact control bar next to each variation row. + +## Text & media lookdev — direct edit, highlight, comment, annotate + +When the artifact is a **blog post, doc, copy deck, script, or media set**, the user is not turning knobs — they're *marking up the work the way an editor marks a manuscript*. The studio renders the **real artifact WYSIWYG** (the actual rendered blog with its real components/media, not a raw-markdown textarea) and lets the user act on it directly. Building this for a doc review is mandatory: **do not paste a long file into chat and ask "what do you think?" — that's the boring wall of text the user is rejecting.** Stand up the annotation studio and let them edit in place. + +### The four affordances (build all that apply) + +1. **Direct inline editing.** Every text block is editable in place — click a paragraph/heading and type. Use `contentEditable` per block (or click-to-swap-to-`