diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 7f5e0d25..c825bc2a 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "ai-devkit", - "version": "0.16.0", + "version": "0.17.0", "description": "Structured AI-assisted development with phase workflows, persistent memory, and reusable skills", "author": { "name": "Hoang Nguyen", diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index c7615d5c..156aa753 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "ai-devkit", - "version": "0.16.0", + "version": "0.17.0", "description": "AI-assisted development toolkit with structured SDLC workflows, persistent memory, and reusable skills", "author": { "name": "Hoang Nguyen", diff --git a/CHANGELOG.md b/CHANGELOG.md index b3492b4e..b051ce8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- **Custom Docs Directory** - Added support for configuring a custom AI documentation directory via `paths.docs` and `ai-devkit init --docs-dir `. + +### Changed + +- **Claude Code Adapter** - Reimplemented Claude Code session matching to use process start times, bounded session scanning, and direct session-based summaries for more reliable agent detection. +- **Node.js Requirement** - Updated the minimum supported Node.js version to `20.20.0`. + +### Fixed + +- **Codex Cross-Repo Matching** - Prevented Codex agent session matching from incorrectly attaching sessions across repositories. +- **Git Passphrase Prompts** - Fixed skill registry git operations so passphrase input works correctly during clone and update flows. + +## [0.17.0] - 2026-03-09 + +### Added + - **Agent Send Command** - New `ai-devkit agent send` command for sending input to running agents via TTY writer. - **Agent Type Display** - Agent list now shows agent type (e.g., Claude Code, Codex) in the listing output. diff --git a/docs/ai/design/feature-reimpl-claude-code-adapter.md b/docs/ai/design/feature-reimpl-claude-code-adapter.md new file mode 100644 index 00000000..48acf7a5 --- /dev/null +++ b/docs/ai/design/feature-reimpl-claude-code-adapter.md @@ -0,0 +1,130 @@ +--- +phase: design +title: "Re-implement Claude Code Adapter - Design" +feature: reimpl-claude-code-adapter +description: Architecture and implementation design for re-implementing ClaudeCodeAdapter using CodexAdapter patterns +--- + +# Design: Re-implement Claude Code Adapter + +## Architecture Overview + +```mermaid +graph TD + User[User runs ai-devkit agent list/open] --> Cmd[packages/cli/src/commands/agent.ts] + Cmd --> Manager[AgentManager] + + subgraph Pkg[@ai-devkit/agent-manager] + Manager --> Claude[ClaudeCodeAdapter ← reimplemented] + Manager --> Codex[CodexAdapter] + Claude --> Proc[process utils] + Claude --> File[file utils] + Claude --> Types[AgentAdapter/AgentInfo/AgentStatus] + Focus[TerminalFocusManager] + end + + Cmd --> Focus + Cmd --> Output[CLI table/json rendering] +``` + +Responsibilities: +- `ClaudeCodeAdapter`: discover running Claude processes, match with sessions via process start time + CWD, emit `AgentInfo` +- `AgentManager`: aggregate Claude + Codex adapter results (unchanged) +- CLI command: register adapters, display results (unchanged) + +## Data Models + +- Reuse existing `AgentAdapter`, `AgentInfo`, `AgentStatus`, and `AgentType` models — no changes +- `AgentType` already supports `claude`; adapter emits `type: 'claude'` +- Internal session model (`ClaudeSession`) updated to include `sessionStart` for time-based matching: + - `sessionId`: from JSONL filename + - `projectPath`: from `sessions-index.json` → `originalPath`, falls back to `lastCwd` when index missing + - `lastCwd`: from session JSONL entries + - `slug`: from session JSONL entries + - `sessionStart`: from first JSONL entry timestamp (supports both top-level `timestamp` and `snapshot.timestamp` for `file-history-snapshot` entries) + - `lastActive`: latest timestamp in session + - `lastEntryType`: type of last non-metadata session entry (excludes `last-prompt`, `file-history-snapshot`; used for status determination) + - `lastUserMessage`: last meaningful user message from session JSONL (with command parsing and noise filtering) + +## API Design + +### Package Exports +- No changes to `packages/agent-manager/src/adapters/index.ts` +- No changes to `packages/agent-manager/src/index.ts` +- `ClaudeCodeAdapter` public API remains identical + +### CLI Integration +- No changes to `packages/cli/src/commands/agent.ts` + +## Component Breakdown + +1. `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` — full rewrite + - Adopt CodexAdapter's structural patterns: + - `listClaudeProcesses()`: extract process listing + - `calculateSessionScanLimit()`: bounded scanning + - `getProcessStartTimes()`: process elapsed time → start time mapping + - `findSessionFiles()`: bounded file discovery with breadth-first scanning (one per project, then fill globally by mtime) + - `readSession()`: parse single session (meta + last entry + timestamps) + - `selectBestSession()`: filter + rank candidates by start time + - `filterCandidateSessions()`: mode-based filtering (`cwd` / `missing-cwd` / `parent-child`) + - `isClaudeExecutable()`: precise executable detection (basename check, not substring) + - `isChildPath()`: parent-child path relationship check + - `pathRelated()`: combined equals/parent/child check for path matching + - `rankCandidatesByStartTime()`: tolerance-based ranking + - `assignSessionsForMode()`: orchestrate matching per mode (tracking inlined) + - `extractUserMessageText()`: extract meaningful text from user messages (string or array content) + - `parseCommandMessage()`: parse `` tags into `/command args` format + - `isNoiseMessage()`: filter out non-meaningful messages (interruptions, tool loads, continuations) + - `isMetadataEntryType()`: skip metadata entry types (`last-prompt`, `file-history-snapshot`) when tracking `lastEntryType` + - `determineStatus()`: status from entry type (no age override) + - `generateAgentName()`: project basename + disambiguation + + - Claude-specific adaptations (differs from Codex): + - Session discovery: walk `~/.claude/projects/*/` reading `*.jsonl` files. Uses `sessions-index.json` for `originalPath` when available, falls back to `lastCwd` from session content when index is missing (common in practice) + - Bounded scanning: collect all `*.jsonl` files with mtime, sort by mtime descending, take top N. No process-day window (Claude sessions aren't organized by date — mtime-based cutoff is sufficient since we already stat files during discovery). + - `sessionStart`: parsed from first JSONL entry — checks `entry.timestamp` then `entry.snapshot.timestamp` (for `file-history-snapshot` entries common in practice) + - Summary: extracted from last user message in session JSONL (no history.jsonl dependency). Handles `` tags for slash commands, filters skill expansions and noise messages + - Status: map Claude entry types (`user`, `assistant`, `progress`, `thinking`, `system`) to `AgentStatus`. Metadata types (`last-prompt`, `file-history-snapshot`) are excluded. No age-based IDLE override + - Name: use slug for disambiguation (Claude sessions have slugs) + +2. `packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts` — update tests + - Adapt mocking to match new internal structure + - Add tests for process start time matching + - Add tests for bounded session scanning + - Keep all existing behavioral assertions + +## Design Decisions + +- Decision: Rewrite ClaudeCodeAdapter internals, keep public API identical. + - Rationale: zero impact on consumers; purely structural improvement. +- Decision: Add process start time matching for session pairing. + - Rationale: improves accuracy when multiple Claude processes share the same CWD, consistent with CodexAdapter. +- Decision: Bound session scanning with MIN/MAX limits. + - Rationale: keeps latency predictable as history grows, consistent with CodexAdapter. +- Decision: Replace `cwd` → `history` → `project-parent` flow with `cwd` → `missing-cwd` → `parent-child`, with tolerance-gated deferral in early modes. + - Rationale: simpler, consistent with CodexAdapter. `cwd` and `missing-cwd` modes defer assignment when the best candidate is outside start-time tolerance, allowing `parent-child` mode to find a better match (e.g., worktree sessions). `parent-child` mode matches sessions where process CWD equals, is a parent, or child of session project path — it includes exact CWD as a safety net for deferred matches. This avoids the greedy matching of the original `any` mode which caused cross-project session stealing. +- Decision: Within start-time tolerance, rank by recency (`lastActive`) instead of smallest time difference. + - Rationale: a 6s vs 45s start-time diff is noise within the 2-minute window. The session with more recent activity is the correct one — prevents stub sessions from beating real work sessions. +- Decision: Use precise executable detection (`isClaudeExecutable`) instead of substring matching. + - Rationale: `command.includes('claude')` falsely matched processes whose path arguments contained "claude" (e.g., nx daemon in a worktree named `feature-reimpl-claude-code-adapter`). Checking the basename of the first command word (`claude` or `claude.exe`) matches CodexAdapter's `isCodexExecutable` pattern. +- Decision: Make `sessions-index.json` optional, fall back to `lastCwd` from session content. + - Rationale: most Claude project directories lack `sessions-index.json` in practice, causing entire projects to be skipped during session discovery. Using `lastCwd` from the JSONL entries provides a reliable fallback. +- Decision: Remove history.jsonl dependency, extract summary from session JSONL directly. + - Rationale: session JSONL already contains the conversation. Extracting the last user message is more reliable than history.jsonl which only covers recent sessions. Includes command tag parsing for slash commands and noise filtering. +- Decision: Process-only agents (no session file) show IDLE status with "Unknown" summary. + - Rationale: without session data, we can't determine actual status or task. IDLE + Unknown is more honest than RUNNING + "Claude process running". +- Decision: Ensure breadth in bounded scanning — at least one session per project directory. + - Rationale: projects with many sessions (e.g., ai-devkit with 20+ files) consumed all scan slots, starving other projects. Two-pass scanning (one per project, then fill globally) ensures every project is represented. +- Decision: No age-based IDLE override for process-backed agents. + - Rationale: every agent in the list is backed by a running process found via `ps`. The session entry type (`user`/`assistant`/`progress`/`system`) is a more accurate status indicator than a time threshold. Removed the 5-minute IDLE override. +- Decision: Keep matching orchestration in explicit phases with extracted helper methods and PID/session tracking sets. + - Rationale: mirrors CodexAdapter structure for maintainability. +- Decision: Use mtime-based bounded scanning without process-day window. + - Rationale: Claude sessions use project-based directories (not date-based like Codex), so date-window lookup isn't cheap. Mtime-based top-N is sufficient and simpler. + +## Non-Functional Requirements + +- Performance: bounded session scanning ensures `agent list` latency stays predictable. +- Reliability: adapter failures remain isolated (AgentManager catches per-adapter errors). +- Maintainability: structural alignment with CodexAdapter means one pattern to understand. +- Security: only reads local metadata/process info already permitted by existing CLI behavior. diff --git a/docs/ai/implementation/feature-reimpl-claude-code-adapter.md b/docs/ai/implementation/feature-reimpl-claude-code-adapter.md new file mode 100644 index 00000000..0d1f66a4 --- /dev/null +++ b/docs/ai/implementation/feature-reimpl-claude-code-adapter.md @@ -0,0 +1,82 @@ +--- +phase: implementation +title: "Re-implement Claude Code Adapter - Implementation" +feature: reimpl-claude-code-adapter +description: Implementation notes for re-implementing ClaudeCodeAdapter +--- + +# Implementation Guide: Re-implement Claude Code Adapter + +## Development Setup + +- Worktree: `.worktrees/feature-reimpl-claude-code-adapter` +- Branch: `feature-reimpl-claude-code-adapter` +- Dependencies: `npm ci` in worktree root + +## Code Structure + +Single file rewrite: +``` +packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts ← full rewrite +packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts ← update tests +``` + +No changes to exports, index files, or CLI command. + +## Implementation Notes + +### Method Mapping (Current → New) + +| Current Method | New Method (CodexAdapter pattern) | +|---|---| +| `detectAgents()` | `detectAgents()` — restructured with 3-phase matching | +| `readSessions()` (reads all) | `readSessions(limit)` — bounded | +| — | `listClaudeProcesses()` — extracted | +| — | `calculateSessionScanLimit()` — new | +| — | `getProcessStartTimes()` — new | +| — | `findSessionFiles()` — adapted for Claude paths | +| `readSessionLog()` | `readSession()` — single session, returns `ClaudeSession` | +| `readHistory()` + `indexHistoryByProjectPath()` | Removed — summary from `lastUserMessage` in session JSONL | +| — | `extractUserMessageText()` — parse user message with command/noise handling | +| — | `parseCommandMessage()` — extract `/command args` from `` tags | +| — | `isNoiseMessage()` — filter interruptions, tool loads, continuations | +| — | `isMetadataEntryType()` — skip `last-prompt`, `file-history-snapshot` for status tracking | +| `selectBestSession()` | `selectBestSession()` — adds start-time ranking | +| — | `filterCandidateSessions()` — extracted | +| — | `rankCandidatesByStartTime()` — new | +| `assignSessionsForMode()` | `assignSessionsForMode()` — same structure, tracking inlined | +| `assignHistoryEntriesForExactProcessCwd()` | Removed — subsumed by `parent-child` mode | +| — | `isClaudeExecutable()` — precise executable basename check | +| — | `isChildPath()` — parent-child path relationship check | +| — | `pathRelated()` — combined equals/parent/child check | +| `mapSessionToAgent()` | `mapSessionToAgent()` — simplified | +| `mapProcessOnlyAgent()` | `mapProcessOnlyAgent()` — simplified, inlined name logic | +| `mapHistoryToAgent()` | Removed — integrated into session mapping | +| `determineStatus()` | `determineStatus()` — uses `lastEntryType` string | +| `generateAgentName()` | `generateAgentName()` — keeps slug disambiguation (session-backed agents only) | + +### Claude-Specific Adaptations + +1. **Session discovery**: Walk `~/.claude/projects/*/` dirs, collect `*.jsonl` files with mtime. Use `sessions-index.json` for `originalPath` when available; when missing (common in practice), set `projectPath` to empty and derive from `lastCwd` in session content during `readSession()`. Sort by mtime descending, take top N. + +2. **Session parsing**: Read entire file. Parse first line for `sessionStart` timestamp (handles both top-level `timestamp` and `snapshot.timestamp` for `file-history-snapshot` entries). Parse all lines for `lastEntryType`, `lastActive`, `lastCwd`, `slug`, `lastUserMessage`. + +3. **Summary**: Extracted from `lastUserMessage` in session JSONL. No history.jsonl dependency. Handles: `` tags → `/command args`; skill expansions → ARGUMENTS extraction; noise filtering (interruptions, tool loads, continuations). Fallback chain: lastUserMessage → "Session started" (matched sessions) or "Unknown" (process-only). + +4. **Status mapping**: `user` (+ interrupted check) → RUNNING/WAITING, `progress`/`thinking` → RUNNING, `assistant` → WAITING, `system` → IDLE. No age-based IDLE override (every listed agent is backed by a running process). + +5. **Name generation**: project basename + slug disambiguation (keep existing logic). + +6. **Process detection**: `canHandle()` uses `isClaudeExecutable()` which checks `path.basename()` of the first word in the command. Only matches `claude` or `claude.exe`, not processes with "claude" in path arguments (e.g., nx daemon running in a worktree named `feature-reimpl-claude-code-adapter`). + +7. **Matching modes**: `cwd` → exact CWD match (with start-time tolerance gate), `missing-cwd` → sessions with no `projectPath` (with tolerance gate), `parent-child` → process CWD equals, is a parent, or is a child of session project/lastCwd path (no tolerance gate — acts as fallback). The `cwd` and `missing-cwd` modes defer assignment when the best candidate is outside start-time tolerance, allowing `parent-child` mode to find a better match (e.g., worktree sessions). The `parent-child` mode replaces the original `any` mode which was too greedy and caused cross-project session stealing. + +8. **Start-time ranking refinement**: Within tolerance (rank 0), candidates are sorted by `lastActive` (most recently active first) rather than smallest `diffMs`. The exact time difference within 2 minutes is noise; the session with recent activity is more likely correct. Outside tolerance (rank 1), smallest `diffMs` is used as primary sort. + +## Error Handling + +- `readSession()`: try/catch per file, skip on error +- `getProcessStartTimes()`: return empty map on failure +- `findSessionFiles()`: return empty array if dirs don't exist +- `sessions-index.json` missing: graceful fallback to empty `projectPath`, filled from `lastCwd` +- All errors logged to `console.error`, never thrown to caller diff --git a/docs/ai/planning/feature-reimpl-claude-code-adapter.md b/docs/ai/planning/feature-reimpl-claude-code-adapter.md new file mode 100644 index 00000000..58fad90b --- /dev/null +++ b/docs/ai/planning/feature-reimpl-claude-code-adapter.md @@ -0,0 +1,137 @@ +--- +phase: planning +title: "Re-implement Claude Code Adapter - Planning" +feature: reimpl-claude-code-adapter +description: Task breakdown for re-implementing ClaudeCodeAdapter +--- + +# Planning: Re-implement Claude Code Adapter + +## Milestones + +- [x] Milestone 1: Core rewrite — adapter compiles and passes existing tests +- [x] Milestone 2: Process start time matching — improved accuracy +- [x] Milestone 3: Bounded scanning + test coverage — performance + quality + +## Task Breakdown + +### Phase 1: Core Structural Rewrite + +- [x] Task 1.1: Restructure `ClaudeCodeAdapter` internal session model + - Add `sessionStart`, `lastEntryType`, `summary` fields to `ClaudeSession` + - Remove `lastEntry` (replace with `lastEntryType`) + - Keep `slug` field (Claude-specific) + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 1.2: Extract `listClaudeProcesses()` helper + - Mirror CodexAdapter's `listCodexProcesses()` pattern + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 1.3: Rewrite `readSessions()` with bounded scanning + - Implement `calculateSessionScanLimit()` with same constants as CodexAdapter + - Implement `findSessionFiles()` adapted for Claude's `~/.claude/projects/*/` structure + - Collect all `*.jsonl` with mtime, sort descending, take top N (no process-day window — mtime sufficient for project-based dirs) + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 1.4: Rewrite `readSession()` for single session parsing + - Parse first entry for `sessionStart` timestamp (including `snapshot.timestamp` for `file-history-snapshot` entries) + - Read all lines for `lastEntryType`, `lastActive`, `lastCwd`, `slug` (skip metadata entry types) + - Extract `lastUserMessage` from session JSONL with command parsing and noise filtering + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 1.5: Rewrite matching flow to `cwd` → `missing-cwd` → `parent-child` + - Implement `assignSessionsForMode()`, `filterCandidateSessions()`, `addMappedSessionAgent()`, `addProcessOnlyAgent()` + - Remove `assignHistoryEntriesForExactProcessCwd()` and old `project-parent` mode + - `parent-child` mode matches when process CWD equals, is parent, or child of session path (avoids greedy `any` mode) + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 1.6: Rewrite `determineStatus()` and `generateAgentName()` + - Status: same logic but using `lastEntryType` string instead of `lastEntry` object + - Name: keep slug-based disambiguation + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +### Phase 2: Process Start Time Matching + +- [x] Task 2.1: Implement `getProcessStartTimes()` + - Use `ps -o pid=,etime=` to get elapsed time, calculate start time + - Implement `parseElapsedSeconds()` helper + - Skip in test environment (`JEST_WORKER_ID`) + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 2.2: Implement `rankCandidatesByStartTime()` + - Tolerance-based ranking matching CodexAdapter pattern + - Use same `PROCESS_SESSION_TIME_TOLERANCE_MS` constant + - Integrate into `selectBestSession()` + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +- [x] Task 2.3: Wire process start times into `detectAgents()` and `assignSessionsForMode()` + - Pass `processStartByPid` through matching pipeline + - Files: `packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts` + +### Phase 3: Tests + Cleanup + +- [x] Task 3.1: Update existing unit tests for new internal structure + - Update mocking to match new method signatures + - Keep all behavioral assertions + - Files: `packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts` + +- [x] Task 3.2: Add tests for process start time matching + - Test `getProcessStartTimes()`, `parseElapsedSeconds()`, `rankCandidatesByStartTime()` + - Test multi-process same-CWD disambiguation + - Files: `packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts` + +- [x] Task 3.3: Add tests for bounded session scanning + - Test `calculateSessionScanLimit()`, `findSessionFiles()` + - Verify scan limits are respected + - Files: `packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts` + +- [x] Task 3.4: Verify CLI integration (manual smoke test) + - Run `agent list` with Claude processes, confirm output matches expectations + - No code changes expected + +## Dependencies + +- Task 1.1 → Tasks 1.2–1.6 (session model must be defined first) +- Tasks 1.2–1.6 can be done in any order after 1.1 +- Phase 2 depends on Phase 1 completion +- Phase 3 depends on Phase 2 completion + +## Progress Summary + +All tasks complete. ClaudeCodeAdapter rewritten from 598 to ~800 lines following CodexAdapter patterns. Key changes: +- Added process start time matching (`getProcessStartTimes`, `rankCandidatesByStartTime`) +- Bounded session scanning with breadth guarantee (`findSessionFiles` ensures one session per project dir) +- Restructured matching to `cwd` → `missing-cwd` → `parent-child` phases with tolerance-gated deferral +- Simplified session model: `lastEntryType` + `isInterrupted` + `lastUserMessage` +- Removed history.jsonl dependency — summary extracted from session JSONL `lastUserMessage` +- Smart message extraction: parses `` tags, extracts ARGUMENTS from skill expansions, filters noise +- Metadata entry types (`last-prompt`, `file-history-snapshot`) excluded from status tracking +- Process-only agents show IDLE status with "Unknown" summary +- All 71 tests pass in ClaudeCodeAdapter suite, TypeScript compiles clean + +Runtime fixes discovered during integration testing: +- **`any` → `parent-child` mode**: `any` mode was too greedy, stealing sessions from unrelated projects +- **`isClaudeExecutable`**: precise basename check instead of `command.includes('claude')` +- **Optional `sessions-index.json`**: falls back to `lastCwd` from session JSONL content +- **Breadth-first scanning**: ensures at least one session per project directory before filling remaining slots +- **Full-file user message scan**: parses all session lines (not just last 100) to find meaningful user messages +- **`file-history-snapshot` timestamp**: first JSONL entry may be `file-history-snapshot` with timestamp nested in `snapshot.timestamp` instead of top-level `timestamp`. Falling back to `lastActive` caused wrong session matching when a stale session's last activity coincided with a new process start +- **No age-based IDLE override**: removed 5-minute IDLE threshold since every listed agent is backed by a running process — entry type is the correct status indicator +- **Metadata entry type filtering**: `last-prompt` and `file-history-snapshot` entries are metadata, not conversation state. Skipping them via `isMetadataEntryType()` prevents them from overwriting `lastEntryType` and causing UNKNOWN status +- **Tolerance-gated CWD matching**: `cwd` and `missing-cwd` modes now defer assignment when the best candidate is outside start-time tolerance. This prevents stale sessions from being matched when a better match exists in `parent-child` mode (e.g., worktree sessions where process CWD is the main repo but session CWD is the worktree) +- **Recency-first ranking within tolerance**: when multiple sessions are within the 2-minute tolerance, sort by `lastActive` (most recent first) instead of smallest `diffMs`. Fixes stub sessions (3 lines) beating real sessions (270+ lines) due to a few seconds' start-time advantage +- **`parent-child` mode includes exact CWD**: expanded to also accept exact CWD matches as a safety net for deferred `cwd` assignments. Old processes whose sessions were created days later get matched correctly + +Behavioral changes from original: +- `parent-child`-mode matching replaces `project-parent` and `assignHistoryEntriesForExactProcessCwd` +- Session JSONL provides summaries directly (no history.jsonl dependency) +- Process-only agents show IDLE/Unknown instead of RUNNING/"Claude process running" + +## Risks & Mitigation + +- **Risk**: Session file format assumptions may differ from edge cases. + - Mitigation: Keep `readSession()` defensive with try/catch; test with varied fixtures. +- **Risk**: Process start time unavailable on some systems. + - Mitigation: Graceful fallback to recency-based ranking (same as CodexAdapter). +- **Risk**: Bounded scanning may miss relevant sessions. + - Mitigation: Breadth-first scanning ensures at least one session per project directory; mtime-based top-N covers most-recently-active sessions. diff --git a/docs/ai/requirements/feature-reimpl-claude-code-adapter.md b/docs/ai/requirements/feature-reimpl-claude-code-adapter.md new file mode 100644 index 00000000..69301b45 --- /dev/null +++ b/docs/ai/requirements/feature-reimpl-claude-code-adapter.md @@ -0,0 +1,61 @@ +--- +phase: requirements +title: "Re-implement Claude Code Adapter - Requirements" +feature: reimpl-claude-code-adapter +description: Requirements for re-implementing ClaudeCodeAdapter using the same architectural patterns as CodexAdapter +--- + +# Requirements: Re-implement Claude Code Adapter + +## Problem Statement + +The current `ClaudeCodeAdapter` (598 lines) uses a different architectural approach than the newer `CodexAdapter` (585 lines). Key issues: + +- **No process start time matching**: Claude adapter relies solely on CWD and parent-path matching to pair processes with sessions, which is fragile when multiple Claude processes share the same project directory. +- **Unbounded session scanning**: Reads all session files across all projects in `~/.claude/projects/`, which degrades performance as session history grows. +- **Inconsistent matching phases**: Uses `cwd` → `history` → `project-parent` → `process-only` flow, while Codex uses the cleaner `cwd` → `missing-cwd` → `parent-child` pattern with extracted helpers and PID/session tracking sets. +- **Structural divergence**: Two adapters in the same package follow different patterns, making maintenance harder. + +## Goals & Objectives + +### Primary Goals +- Re-implement `ClaudeCodeAdapter` using the same architectural patterns as `CodexAdapter` +- Add process start time matching (`getProcessStartTimes` + `rankCandidatesByStartTime`) for accurate process-session pairing +- Introduce bounded session scanning to keep `agent list` latency predictable +- Align matching phases to `cwd` → `missing-cwd` → `parent-child` with extracted helper methods + +### Secondary Goals +- Improve disambiguation when multiple Claude processes share the same CWD +- Extract summary from session JSONL directly (no history.jsonl dependency) + +### Non-Goals +- Changing Claude Code's session file structure (`~/.claude/projects/`) +- Modifying the public API (`AgentAdapter` interface, `AgentInfo` shape, constructor signature) +- Changing CLI output or UX behavior +- Adding new adapter capabilities beyond what CodexAdapter provides + +## User Stories & Use Cases + +- As a developer running multiple Claude Code sessions, I want `agent list` to accurately pair each process with its correct session, even when sessions share the same project directory. +- As a developer with large session history, I want `agent list` to remain fast regardless of how many past sessions exist. +- As a maintainer of `@ai-devkit/agent-manager`, I want both adapters to follow the same structural patterns so I can reason about and modify them consistently. + +## Success Criteria + +- All existing `ClaudeCodeAdapter` unit tests pass (with updated mocking as needed) +- Process-session matching accuracy improves for multi-session-same-CWD scenarios +- Session scanning is bounded (configurable limits, not reading all files) +- Code structure mirrors `CodexAdapter` (same matching phase flow, extracted helpers) +- No changes to public exports or `AgentInfo` output shape +- `agent list` latency does not regress + +## Constraints & Assumptions + +- **Session structure is fixed**: Claude Code stores sessions in `~/.claude/projects/{encoded-path}/` with optional `sessions-index.json` and `*.jsonl` files — this cannot change. +- **Process detection**: Uses existing `listProcesses()` utility — no changes. +- **Status determination**: Based on session entry type; no age-based IDLE override since every listed agent is backed by a running process. +- **Platform**: macOS/Linux only (same as existing adapter). + +## Questions & Open Items + +- None — scope is well-defined as an internal refactor following established CodexAdapter patterns. diff --git a/docs/ai/testing/feature-reimpl-claude-code-adapter.md b/docs/ai/testing/feature-reimpl-claude-code-adapter.md new file mode 100644 index 00000000..77cc4754 --- /dev/null +++ b/docs/ai/testing/feature-reimpl-claude-code-adapter.md @@ -0,0 +1,132 @@ +--- +phase: testing +title: "Re-implement Claude Code Adapter - Testing" +feature: reimpl-claude-code-adapter +description: Testing strategy for re-implemented ClaudeCodeAdapter +--- + +# Testing Strategy: Re-implement Claude Code Adapter + +## Test Coverage Goals + +- Unit test coverage target: 100% of new/changed code +- All existing behavioral test assertions must continue to pass +- New tests for process start time matching and bounded scanning + +## Unit Tests + +### ClaudeCodeAdapter Core + +- [x] Detects Claude processes and returns AgentInfo array +- [x] Returns empty array when no Claude processes running +- [x] Matches process to session by exact CWD +- [x] Matches process to session when session has no CWD (missing-cwd mode) +- [x] Falls back to parent-child path match when no exact CWD match +- [x] Rejects unrelated sessions from different projects (no greedy `any` mode) +- [x] Handles process with no matching session (process-only agent) +- [x] Multiple processes with different CWDs matched correctly +- [x] Multiple processes with same CWD disambiguated by start time + +### Process Start Time Matching + +- [x] `getProcessStartTimes()` parses `ps` output correctly +- [x] `parseElapsedSeconds()` handles `MM:SS`, `HH:MM:SS`, `D-HH:MM:SS` formats +- [x] `rankCandidatesByStartTime()` prefers sessions within tolerance window +- [x] `rankCandidatesByStartTime()` within tolerance, ranks by recency not diffMs +- [x] `rankCandidatesByStartTime()` breaks ties by recency when outside tolerance with same diffMs +- [x] `rankCandidatesByStartTime()` falls back to recency when no start time +- [x] `selectBestSession()` defers `cwd` mode when outside tolerance (falls through to `parent-child`) +- [x] `selectBestSession()` accepts in `cwd` mode when within tolerance +- [x] `selectBestSession()` falls back to recency when no processStart available +- [x] Graceful fallback when `ps` command fails + +### Bounded Session Scanning + +- [x] `calculateSessionScanLimit()` respects MIN/MAX bounds +- [x] `findSessionFiles()` returns at most N files by mtime +- [x] `findSessionFiles()` returns empty when session dir doesn't exist +- [x] `findSessionFiles()` includes dirs without `sessions-index.json` using empty projectPath +- [x] `findSessionFiles()` skips directories starting with dot + +### Process Detection + +- [x] `canHandle()` accepts commands where executable basename is `claude` or `claude.exe` +- [x] `canHandle()` rejects processes with "claude" only in path arguments (e.g., nx daemon in worktree) + +### Status Determination + +- [x] `user` entry type → RUNNING +- [x] `user` with interrupted content → WAITING +- [x] `assistant` entry type → WAITING +- [x] `progress`/`thinking` → RUNNING +- [x] `system` → IDLE +- [x] No age-based IDLE override (process is running, entry type is authoritative) +- [x] Metadata entry types (`last-prompt`, `file-history-snapshot`) do not affect status +- [x] No last entry → UNKNOWN + +### Name Generation + +- [x] Uses project basename as name +- [x] Appends slug when multiple sessions for same project +- [x] Falls back to sessionId prefix when no slug + +### Session Parsing + +- [x] Parses timestamps, slug, cwd, and entry type from session file +- [x] Detects user interruption from `[Request interrupted` content +- [x] Parses `snapshot.timestamp` from `file-history-snapshot` first entries +- [x] Skips metadata entry types (`last-prompt`, `file-history-snapshot`) for `lastEntryType` +- [x] Extracts `lastUserMessage` from session entries (latest user message wins) +- [x] Uses `lastCwd` as `projectPath` fallback when `projectPath` is empty +- [x] Returns session with defaults for empty file +- [x] Returns null for non-existent file +- [x] Handles malformed JSON lines gracefully + +### Summary Extraction + +- [x] `extractUserMessageText()` extracts plain string content +- [x] `extractUserMessageText()` extracts text from array content blocks +- [x] `extractUserMessageText()` returns undefined for empty/null content +- [x] `extractUserMessageText()` parses `` tags into `command args` format +- [x] `extractUserMessageText()` parses command-message without args +- [x] `extractUserMessageText()` extracts ARGUMENTS from skill expansion content +- [x] `extractUserMessageText()` returns undefined for skill expansion without ARGUMENTS +- [x] `extractUserMessageText()` filters noise messages +- [x] `parseCommandMessage()` returns undefined for malformed command-message +- [x] Falls back to "Session started" when no meaningful user message found +- [x] Process-only agents show IDLE status with "Unknown" summary + +### Path Matching + +- [x] `filterCandidateSessions()` matches by `lastCwd` in cwd mode +- [x] `filterCandidateSessions()` matches sessions with no `projectPath` in missing-cwd mode +- [x] `filterCandidateSessions()` includes exact CWD matches in parent-child mode +- [x] `filterCandidateSessions()` matches parent-child path relationships +- [x] `filterCandidateSessions()` skips already-used sessions + +## Test Data + +- Mock `listProcesses()` to return controlled process lists +- Temp directories with inline JSONL fixtures for file I/O tests +- Direct private method access via `(adapter as any)` for unit-level testing +- No mock needed for `execSync` — `getProcessStartTimes` is skipped via `JEST_WORKER_ID` + +## Test File + +- `packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts` + +## Test Reporting & Coverage + +- Run: `cd packages/agent-manager && npx jest --coverage src/__tests__/adapters/ClaudeCodeAdapter.test.ts` +- **71 tests pass** in ClaudeCodeAdapter suite +- Coverage for `ClaudeCodeAdapter.ts`: + - Statements: **90.8%** + - Branches: **87.0%** + - Functions: **100%** + - Lines: **92.0%** +- Intentionally uncovered: + - `getProcessStartTimes()` body (lines 400-424): skipped when `JEST_WORKER_ID` is set (same pattern as CodexAdapter) + - File I/O error catch paths (lines 458, 490, 510, 562): defensive error handling for corrupted/inaccessible files + - `normalizePath` trailing separator branch (line 817): OS-dependent edge case + - Dead code guard in `selectBestSession` (line 309): empty `rankCandidatesByStartTime` result cannot occur with non-empty candidates +- Integration tested: `npm run build && node packages/cli/dist/cli.js agent list` verified with 9 concurrent Claude processes diff --git a/package-lock.json b/package-lock.json index c547008e..e3d2715e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ai-devkit", - "version": "0.16.0", + "version": "0.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ai-devkit", - "version": "0.16.0", + "version": "0.17.0", "license": "MIT", "workspaces": [ "apps/*", @@ -17,7 +17,7 @@ "nx": "^22.4.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.20.0" } }, "node_modules/@ai-devkit/agent-manager": { @@ -13021,7 +13021,7 @@ }, "packages/agent-manager": { "name": "@ai-devkit/agent-manager", - "version": "0.3.0", + "version": "0.4.0", "license": "MIT", "devDependencies": { "@types/jest": "^30.0.0", @@ -13034,15 +13034,15 @@ "typescript": "^5.3.3" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.20.0" } }, "packages/cli": { "name": "ai-devkit", - "version": "0.17.0", + "version": "0.18.0", "license": "MIT", "dependencies": { - "@ai-devkit/agent-manager": "0.3.0", + "@ai-devkit/agent-manager": "0.4.0", "@ai-devkit/memory": "0.7.0", "chalk": "^4.1.2", "commander": "^11.1.0", @@ -13070,7 +13070,7 @@ "typescript": "^5.3.3" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.20.0" } }, "packages/cli/node_modules/ansi-regex": { @@ -13295,7 +13295,7 @@ "typescript": "^5.4.5" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.20.0" } }, "packages/memory/node_modules/@jest/expect-utils": { diff --git a/package.json b/package.json index 4ea76832..568730f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ai-devkit", - "version": "0.16.0", + "version": "0.17.0", "private": true, "description": "A CLI toolkit for AI-assisted software development with phase templates and environment setup", "scripts": { @@ -30,6 +30,6 @@ "nx": "^22.4.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.20.0" } } diff --git a/packages/agent-manager/package.json b/packages/agent-manager/package.json index 984d6411..0f0cca1c 100644 --- a/packages/agent-manager/package.json +++ b/packages/agent-manager/package.json @@ -1,6 +1,6 @@ { "name": "@ai-devkit/agent-manager", - "version": "0.3.0", + "version": "0.4.0", "description": "Standalone agent detection and management utilities for AI DevKit", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -37,6 +37,6 @@ "typescript": "^5.3.3" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.20.0" } } diff --git a/packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts b/packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts index 0c8927a0..0f3bb176 100644 --- a/packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts +++ b/packages/agent-manager/src/__tests__/adapters/ClaudeCodeAdapter.test.ts @@ -2,7 +2,9 @@ * Tests for ClaudeCodeAdapter */ -import { describe, it, expect, beforeEach, jest } from '@jest/globals'; +import * as fs from 'fs'; +import * as path from 'path'; +import { describe, it, expect, beforeEach, afterEach, jest } from '@jest/globals'; import { ClaudeCodeAdapter } from '../../adapters/ClaudeCodeAdapter'; import type { AgentInfo, ProcessInfo } from '../../adapters/AgentAdapter'; import { AgentStatus } from '../../adapters/AgentAdapter'; @@ -17,8 +19,7 @@ const mockedListProcesses = listProcesses as jest.MockedFunction unknown> = T; interface AdapterPrivates { - readSessions: PrivateMethod<() => unknown[]>; - readHistory: PrivateMethod<() => unknown[]>; + readSessions: PrivateMethod<(limit: number) => unknown[]>; } describe('ClaudeCodeAdapter', () => { @@ -47,10 +48,21 @@ describe('ClaudeCodeAdapter', () => { expect(adapter.canHandle(processInfo)).toBe(true); }); - it('should return true for processes with "claude" in command (case-insensitive)', () => { + it('should return true for claude executable with full path', () => { const processInfo = { pid: 12345, - command: '/usr/local/bin/CLAUDE --some-flag', + command: '/usr/local/bin/claude --some-flag', + cwd: '/test', + tty: 'ttys001', + }; + + expect(adapter.canHandle(processInfo)).toBe(true); + }); + + it('should return true for CLAUDE (case-insensitive)', () => { + const processInfo = { + pid: 12345, + command: '/usr/local/bin/CLAUDE --continue', cwd: '/test', tty: 'ttys001', }; @@ -68,6 +80,17 @@ describe('ClaudeCodeAdapter', () => { expect(adapter.canHandle(processInfo)).toBe(false); }); + + it('should return false for processes with "claude" only in path arguments', () => { + const processInfo = { + pid: 12345, + command: '/usr/local/bin/node /path/to/claude-worktree/node_modules/nx/start.js', + cwd: '/test', + tty: 'ttys001', + }; + + expect(adapter.canHandle(processInfo)).toBe(false); + }); }); describe('detectAgents', () => { @@ -78,7 +101,7 @@ describe('ClaudeCodeAdapter', () => { expect(agents).toEqual([]); }); - it('should detect agents using mocked process/session/history data', async () => { + it('should detect agents using mocked process/session data', async () => { const processData: ProcessInfo[] = [ { pid: 12345, @@ -92,25 +115,17 @@ describe('ClaudeCodeAdapter', () => { { sessionId: 'session-1', projectPath: '/Users/test/my-project', - sessionLogPath: '/mock/path/session-1.jsonl', slug: 'merry-dog', - lastEntry: { type: 'assistant' }, + sessionStart: new Date(), lastActive: new Date(), - }, - ]; - - const historyData = [ - { - display: 'Investigate failing tests in package', - timestamp: Date.now(), - project: '/Users/test/my-project', - sessionId: 'session-1', + lastEntryType: 'assistant', + isInterrupted: false, + lastUserMessage: 'Investigate failing tests in package', }, ]; mockedListProcesses.mockReturnValue(processData); jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue(sessionData); - jest.spyOn(adapter as unknown as AdapterPrivates, 'readHistory').mockReturnValue(historyData); const agents = await adapter.detectAgents(); @@ -127,7 +142,31 @@ describe('ClaudeCodeAdapter', () => { expect(agents[0].summary).toContain('Investigate failing tests in package'); }); - it('should include process-only entry when process cwd has no matching session', async () => { + it('should include process-only entry when no sessions exist', async () => { + mockedListProcesses.mockReturnValue([ + { + pid: 777, + command: 'claude', + cwd: '/project/without-session', + tty: 'ttys008', + }, + ]); + jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue([]); + + + const agents = await adapter.detectAgents(); + expect(agents).toHaveLength(1); + expect(agents[0]).toMatchObject({ + type: 'claude', + status: AgentStatus.IDLE, + pid: 777, + projectPath: '/project/without-session', + sessionId: 'pid-777', + summary: 'Unknown', + }); + }); + + it('should not match process to unrelated session from different project', async () => { mockedListProcesses.mockReturnValue([ { pid: 777, @@ -140,26 +179,27 @@ describe('ClaudeCodeAdapter', () => { { sessionId: 'session-2', projectPath: '/other/project', - sessionLogPath: '/mock/path/session-2.jsonl', - lastEntry: { type: 'assistant' }, + sessionStart: new Date(), lastActive: new Date(), + lastEntryType: 'assistant', + isInterrupted: false, }, ]); - jest.spyOn(adapter as unknown as AdapterPrivates, 'readHistory').mockReturnValue([]); + const agents = await adapter.detectAgents(); expect(agents).toHaveLength(1); + // Unrelated session should NOT match — falls to process-only expect(agents[0]).toMatchObject({ type: 'claude', - status: AgentStatus.RUNNING, pid: 777, - projectPath: '/project/without-session', sessionId: 'pid-777', - summary: 'Claude process running', + projectPath: '/project/without-session', + status: AgentStatus.IDLE, }); }); - it('should match process in subdirectory to project-root session', async () => { + it('should match process in subdirectory to project-root session via parent-child mode', async () => { mockedListProcesses.mockReturnValue([ { pid: 888, @@ -172,18 +212,11 @@ describe('ClaudeCodeAdapter', () => { { sessionId: 'session-3', projectPath: '/Users/test/my-project', - sessionLogPath: '/mock/path/session-3.jsonl', slug: 'gentle-otter', - lastEntry: { type: 'assistant' }, + sessionStart: new Date(), lastActive: new Date(), - }, - ]); - jest.spyOn(adapter as unknown as AdapterPrivates, 'readHistory').mockReturnValue([ - { - display: 'Refactor CLI command flow', - timestamp: Date.now(), - project: '/Users/test/my-project', - sessionId: 'session-3', + lastEntryType: 'assistant', + isInterrupted: false, }, ]); @@ -194,11 +227,10 @@ describe('ClaudeCodeAdapter', () => { pid: 888, sessionId: 'session-3', projectPath: '/Users/test/my-project', - summary: 'Refactor CLI command flow', }); }); - it('should use latest history entry for process-only fallback session id', async () => { + it('should show idle status with Unknown summary for process-only fallback when no sessions exist', async () => { mockedListProcesses.mockReturnValue([ { pid: 97529, @@ -208,14 +240,6 @@ describe('ClaudeCodeAdapter', () => { }, ]); jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue([]); - jest.spyOn(adapter as unknown as AdapterPrivates, 'readHistory').mockReturnValue([ - { - display: '/status', - timestamp: 1772122701536, - project: '/Users/test/my-project/packages/cli', - sessionId: '69237415-b0c3-4990-ba53-15882616509e', - }, - ]); const agents = await adapter.detectAgents(); expect(agents).toHaveLength(1); @@ -223,14 +247,13 @@ describe('ClaudeCodeAdapter', () => { type: 'claude', pid: 97529, projectPath: '/Users/test/my-project/packages/cli', - sessionId: '69237415-b0c3-4990-ba53-15882616509e', - summary: '/status', - status: AgentStatus.RUNNING, + sessionId: 'pid-97529', + summary: 'Unknown', + status: AgentStatus.IDLE, }); - expect(agents[0].lastActive.toISOString()).toBe('2026-02-26T16:18:21.536Z'); }); - it('should prefer exact-cwd history session over parent-project session match', async () => { + it('should match session via parent-child mode when process cwd is under session project path', async () => { mockedListProcesses.mockReturnValue([ { pid: 97529, @@ -241,45 +264,142 @@ describe('ClaudeCodeAdapter', () => { ]); jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue([ { - sessionId: 'old-parent-session', + sessionId: 'parent-session', projectPath: '/Users/test/my-project', - sessionLogPath: '/mock/path/old-parent-session.jsonl', slug: 'fluffy-brewing-kazoo', - lastEntry: { type: 'assistant' }, + sessionStart: new Date('2026-02-23T17:24:50.996Z'), lastActive: new Date('2026-02-23T17:24:50.996Z'), + lastEntryType: 'assistant', + isInterrupted: false, + }, + ]); + + const agents = await adapter.detectAgents(); + expect(agents).toHaveLength(1); + // Session matched via parent-child mode + expect(agents[0]).toMatchObject({ + type: 'claude', + pid: 97529, + sessionId: 'parent-session', + projectPath: '/Users/test/my-project', + }); + }); + + it('should fall back to process-only when sessions exist but all are used', async () => { + mockedListProcesses.mockReturnValue([ + { + pid: 100, + command: 'claude', + cwd: '/project-a', + tty: 'ttys001', + }, + { + pid: 200, + command: 'claude', + cwd: '/project-b', + tty: 'ttys002', }, ]); - jest.spyOn(adapter as unknown as AdapterPrivates, 'readHistory').mockReturnValue([ + jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue([ { - display: '/status', - timestamp: 1772122701536, - project: '/Users/test/my-project/packages/cli', - sessionId: '69237415-b0c3-4990-ba53-15882616509e', + sessionId: 'only-session', + projectPath: '/project-a', + sessionStart: new Date(), + lastActive: new Date(), + lastEntryType: 'assistant', + isInterrupted: false, }, ]); + + const agents = await adapter.detectAgents(); + expect(agents).toHaveLength(2); + // First process matched via cwd + expect(agents[0]).toMatchObject({ + pid: 100, + sessionId: 'only-session', + }); + // Second process: session used, falls to process-only + expect(agents[1]).toMatchObject({ + pid: 200, + sessionId: 'pid-200', + status: AgentStatus.IDLE, + summary: 'Unknown', + }); + }); + + it('should handle process with empty cwd in process-only fallback', async () => { + mockedListProcesses.mockReturnValue([ + { + pid: 300, + command: 'claude', + cwd: '', + tty: 'ttys003', + }, + ]); + jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue([]); + const agents = await adapter.detectAgents(); expect(agents).toHaveLength(1); expect(agents[0]).toMatchObject({ - type: 'claude', - pid: 97529, - sessionId: '69237415-b0c3-4990-ba53-15882616509e', - projectPath: '/Users/test/my-project/packages/cli', - summary: '/status', + pid: 300, + sessionId: 'pid-300', + summary: 'Unknown', + projectPath: '', + }); + }); + + it('should prefer cwd-matched session over any-mode session', async () => { + const now = new Date(); + mockedListProcesses.mockReturnValue([ + { + pid: 100, + command: 'claude', + cwd: '/Users/test/project-a', + tty: 'ttys001', + }, + ]); + jest.spyOn(adapter as unknown as AdapterPrivates, 'readSessions').mockReturnValue([ + { + sessionId: 'exact-match', + projectPath: '/Users/test/project-a', + sessionStart: now, + lastActive: now, + lastEntryType: 'assistant', + isInterrupted: false, + }, + { + sessionId: 'other-project', + projectPath: '/Users/test/project-b', + sessionStart: now, + lastActive: new Date(now.getTime() + 1000), // more recent + lastEntryType: 'user', + isInterrupted: false, + }, + ]); + + + const agents = await adapter.detectAgents(); + expect(agents).toHaveLength(1); + expect(agents[0]).toMatchObject({ + sessionId: 'exact-match', + projectPath: '/Users/test/project-a', }); }); }); describe('helper methods', () => { describe('determineStatus', () => { - it('should return "unknown" for sessions with no last entry', () => { + it('should return "unknown" for sessions with no last entry type', () => { const adapter = new ClaudeCodeAdapter(); const determineStatus = (adapter as any).determineStatus.bind(adapter); const session = { sessionId: 'test', projectPath: '/test', - sessionLogPath: '/test/log', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, }; const status = determineStatus(session); @@ -293,9 +413,10 @@ describe('ClaudeCodeAdapter', () => { const session = { sessionId: 'test', projectPath: '/test', - sessionLogPath: '/test/log', - lastEntry: { type: 'assistant' }, + sessionStart: new Date(), lastActive: new Date(), + lastEntryType: 'assistant', + isInterrupted: false, }; const status = determineStatus(session); @@ -309,14 +430,10 @@ describe('ClaudeCodeAdapter', () => { const session = { sessionId: 'test', projectPath: '/test', - sessionLogPath: '/test/log', - lastEntry: { - type: 'user', - message: { - content: [{ type: 'text', text: '[Request interrupted by user for tool use]' }], - }, - }, + sessionStart: new Date(), lastActive: new Date(), + lastEntryType: 'user', + isInterrupted: true, }; const status = determineStatus(session); @@ -330,16 +447,17 @@ describe('ClaudeCodeAdapter', () => { const session = { sessionId: 'test', projectPath: '/test', - sessionLogPath: '/test/log', - lastEntry: { type: 'user' }, + sessionStart: new Date(), lastActive: new Date(), + lastEntryType: 'user', + isInterrupted: false, }; const status = determineStatus(session); expect(status).toBe(AgentStatus.RUNNING); }); - it('should return "idle" for old sessions', () => { + it('should not override status based on age (process is running)', () => { const adapter = new ClaudeCodeAdapter(); const determineStatus = (adapter as any).determineStatus.bind(adapter); @@ -348,14 +466,85 @@ describe('ClaudeCodeAdapter', () => { const session = { sessionId: 'test', projectPath: '/test', - sessionLogPath: '/test/log', - lastEntry: { type: 'assistant' }, + sessionStart: oldDate, lastActive: oldDate, + lastEntryType: 'assistant', + isInterrupted: false, + }; + + // Even with old lastActive, entry type determines status + // because the process is known to be running + const status = determineStatus(session); + expect(status).toBe(AgentStatus.WAITING); + }); + + it('should return "idle" for system entries', () => { + const adapter = new ClaudeCodeAdapter(); + const determineStatus = (adapter as any).determineStatus.bind(adapter); + + const session = { + sessionId: 'test', + projectPath: '/test', + sessionStart: new Date(), + lastActive: new Date(), + lastEntryType: 'system', + isInterrupted: false, }; const status = determineStatus(session); expect(status).toBe(AgentStatus.IDLE); }); + + it('should return "running" for thinking entries', () => { + const adapter = new ClaudeCodeAdapter(); + const determineStatus = (adapter as any).determineStatus.bind(adapter); + + const session = { + sessionId: 'test', + projectPath: '/test', + sessionStart: new Date(), + lastActive: new Date(), + lastEntryType: 'thinking', + isInterrupted: false, + }; + + const status = determineStatus(session); + expect(status).toBe(AgentStatus.RUNNING); + }); + + it('should return "running" for progress entries', () => { + const adapter = new ClaudeCodeAdapter(); + const determineStatus = (adapter as any).determineStatus.bind(adapter); + + const session = { + sessionId: 'test', + projectPath: '/test', + sessionStart: new Date(), + lastActive: new Date(), + lastEntryType: 'progress', + isInterrupted: false, + }; + + const status = determineStatus(session); + expect(status).toBe(AgentStatus.RUNNING); + }); + + it('should return "unknown" for unrecognized entry types', () => { + const adapter = new ClaudeCodeAdapter(); + const determineStatus = (adapter as any).determineStatus.bind(adapter); + + const session = { + sessionId: 'test', + projectPath: '/test', + sessionStart: new Date(), + lastActive: new Date(), + lastEntryType: 'some_other_type', + isInterrupted: false, + }; + + const status = determineStatus(session); + expect(status).toBe(AgentStatus.UNKNOWN); + }); }); describe('generateAgentName', () => { @@ -366,7 +555,9 @@ describe('ClaudeCodeAdapter', () => { const session = { sessionId: 'test-123', projectPath: '/Users/test/my-project', - sessionLogPath: '/test/log', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, }; const name = generateAgentName(session, []); @@ -392,13 +583,785 @@ describe('ClaudeCodeAdapter', () => { const session = { sessionId: 'test-456', projectPath: '/Users/test/my-project', - sessionLogPath: '/test/log', slug: 'merry-dog', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, }; const name = generateAgentName(session, [existingAgent]); expect(name).toBe('my-project (merry)'); }); + + it('should use session ID prefix when no slug available', () => { + const adapter = new ClaudeCodeAdapter(); + const generateAgentName = (adapter as any).generateAgentName.bind(adapter); + + const existingAgent: AgentInfo = { + name: 'my-project', + projectPath: '/Users/test/my-project', + type: 'claude', + status: AgentStatus.RUNNING, + summary: 'Test', + pid: 123, + sessionId: 'existing-123', + lastActive: new Date(), + }; + + const session = { + sessionId: 'abcdef12-3456-7890', + projectPath: '/Users/test/my-project', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }; + + const name = generateAgentName(session, [existingAgent]); + expect(name).toBe('my-project (abcdef12)'); + }); + }); + + describe('parseElapsedSeconds', () => { + it('should parse MM:SS format', () => { + const adapter = new ClaudeCodeAdapter(); + const parseElapsedSeconds = (adapter as any).parseElapsedSeconds.bind(adapter); + + expect(parseElapsedSeconds('05:30')).toBe(330); + }); + + it('should parse HH:MM:SS format', () => { + const adapter = new ClaudeCodeAdapter(); + const parseElapsedSeconds = (adapter as any).parseElapsedSeconds.bind(adapter); + + expect(parseElapsedSeconds('02:30:15')).toBe(9015); + }); + + it('should parse D-HH:MM:SS format', () => { + const adapter = new ClaudeCodeAdapter(); + const parseElapsedSeconds = (adapter as any).parseElapsedSeconds.bind(adapter); + + expect(parseElapsedSeconds('3-12:00:00')).toBe(302400); + }); + + it('should return null for invalid format', () => { + const adapter = new ClaudeCodeAdapter(); + const parseElapsedSeconds = (adapter as any).parseElapsedSeconds.bind(adapter); + + expect(parseElapsedSeconds('invalid')).toBeNull(); + }); + }); + + describe('calculateSessionScanLimit', () => { + it('should return minimum for small process count', () => { + const adapter = new ClaudeCodeAdapter(); + const calculateSessionScanLimit = (adapter as any).calculateSessionScanLimit.bind(adapter); + + // 1 process * 4 = 4, min(max(4, 12), 40) = 12 + expect(calculateSessionScanLimit(1)).toBe(12); + }); + + it('should scale with process count', () => { + const adapter = new ClaudeCodeAdapter(); + const calculateSessionScanLimit = (adapter as any).calculateSessionScanLimit.bind(adapter); + + // 5 processes * 4 = 20, min(max(20, 12), 40) = 20 + expect(calculateSessionScanLimit(5)).toBe(20); + }); + + it('should cap at maximum', () => { + const adapter = new ClaudeCodeAdapter(); + const calculateSessionScanLimit = (adapter as any).calculateSessionScanLimit.bind(adapter); + + // 15 processes * 4 = 60, min(max(60, 12), 40) = 40 + expect(calculateSessionScanLimit(15)).toBe(40); + }); + }); + + describe('rankCandidatesByStartTime', () => { + it('should prefer sessions within tolerance window', () => { + const adapter = new ClaudeCodeAdapter(); + const rankCandidatesByStartTime = (adapter as any).rankCandidatesByStartTime.bind(adapter); + + const processStart = new Date('2026-03-10T10:00:00Z'); + const candidates = [ + { + sessionId: 'far', + projectPath: '/test', + sessionStart: new Date('2026-03-10T09:50:00Z'), // 10 min diff + lastActive: new Date('2026-03-10T10:05:00Z'), + isInterrupted: false, + }, + { + sessionId: 'close', + projectPath: '/test', + sessionStart: new Date('2026-03-10T10:00:30Z'), // 30s diff + lastActive: new Date('2026-03-10T10:03:00Z'), + isInterrupted: false, + }, + ]; + + const ranked = rankCandidatesByStartTime(candidates, processStart); + expect(ranked[0].sessionId).toBe('close'); + expect(ranked[1].sessionId).toBe('far'); + }); + + it('should prefer recency over diffMs when both within tolerance', () => { + const adapter = new ClaudeCodeAdapter(); + const rankCandidatesByStartTime = (adapter as any).rankCandidatesByStartTime.bind(adapter); + + const processStart = new Date('2026-03-10T10:00:00Z'); + const candidates = [ + { + sessionId: 'closer-but-stale', + projectPath: '/test', + sessionStart: new Date('2026-03-10T10:00:06Z'), // 6s diff + lastActive: new Date('2026-03-10T10:00:10Z'), // older activity + isInterrupted: false, + }, + { + sessionId: 'farther-but-active', + projectPath: '/test', + sessionStart: new Date('2026-03-10T10:00:45Z'), // 45s diff + lastActive: new Date('2026-03-10T10:30:00Z'), // much more recent + isInterrupted: false, + }, + ]; + + const ranked = rankCandidatesByStartTime(candidates, processStart); + // Both within tolerance — recency wins over smaller diffMs + expect(ranked[0].sessionId).toBe('farther-but-active'); + expect(ranked[1].sessionId).toBe('closer-but-stale'); + }); + + it('should break ties by recency when outside tolerance with same diffMs', () => { + const adapter = new ClaudeCodeAdapter(); + const rankCandidatesByStartTime = (adapter as any).rankCandidatesByStartTime.bind(adapter); + + const processStart = new Date('2026-03-10T10:00:00Z'); + const candidates = [ + { + sessionId: 'older-activity', + projectPath: '/test', + sessionStart: new Date('2026-03-10T09:50:00Z'), // 10min diff + lastActive: new Date('2026-03-10T10:01:00Z'), + isInterrupted: false, + }, + { + sessionId: 'newer-activity', + projectPath: '/test', + sessionStart: new Date('2026-03-10T10:10:00Z'), // 10min diff (same abs) + lastActive: new Date('2026-03-10T10:30:00Z'), + isInterrupted: false, + }, + ]; + + const ranked = rankCandidatesByStartTime(candidates, processStart); + // Both outside tolerance, same diffMs — recency wins + expect(ranked[0].sessionId).toBe('newer-activity'); + }); + + it('should fall back to recency when both outside tolerance', () => { + const adapter = new ClaudeCodeAdapter(); + const rankCandidatesByStartTime = (adapter as any).rankCandidatesByStartTime.bind(adapter); + + const processStart = new Date('2026-03-10T10:00:00Z'); + const candidates = [ + { + sessionId: 'older', + projectPath: '/test', + sessionStart: new Date('2026-03-10T09:30:00Z'), + lastActive: new Date('2026-03-10T10:01:00Z'), + isInterrupted: false, + }, + { + sessionId: 'newer', + projectPath: '/test', + sessionStart: new Date('2026-03-10T09:40:00Z'), + lastActive: new Date('2026-03-10T10:05:00Z'), + isInterrupted: false, + }, + ]; + + const ranked = rankCandidatesByStartTime(candidates, processStart); + // Both outside tolerance (rank=1), newer has smaller diffMs + expect(ranked[0].sessionId).toBe('newer'); + }); + }); + + describe('filterCandidateSessions', () => { + it('should match by lastCwd in cwd mode', () => { + const adapter = new ClaudeCodeAdapter(); + const filterCandidateSessions = (adapter as any).filterCandidateSessions.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const sessions = [ + { + sessionId: 's1', + projectPath: '/different/path', + lastCwd: '/my/project', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + ]; + + const result = filterCandidateSessions(processInfo, sessions, new Set(), 'cwd'); + expect(result).toHaveLength(1); + expect(result[0].sessionId).toBe('s1'); + }); + + it('should match sessions with no projectPath in missing-cwd mode', () => { + const adapter = new ClaudeCodeAdapter(); + const filterCandidateSessions = (adapter as any).filterCandidateSessions.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const sessions = [ + { + sessionId: 's1', + projectPath: '', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + { + sessionId: 's2', + projectPath: '/has/path', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + ]; + + const result = filterCandidateSessions(processInfo, sessions, new Set(), 'missing-cwd'); + expect(result).toHaveLength(1); + expect(result[0].sessionId).toBe('s1'); + }); + + it('should include exact CWD matches in parent-child mode', () => { + const adapter = new ClaudeCodeAdapter(); + const filterCandidateSessions = (adapter as any).filterCandidateSessions.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const sessions = [ + { + sessionId: 's1', + projectPath: '/my/project', + lastCwd: '/my/project', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + ]; + + const result = filterCandidateSessions(processInfo, sessions, new Set(), 'parent-child'); + expect(result).toHaveLength(1); + expect(result[0].sessionId).toBe('s1'); + }); + + it('should match parent-child relationships', () => { + const adapter = new ClaudeCodeAdapter(); + const filterCandidateSessions = (adapter as any).filterCandidateSessions.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const sessions = [ + { + sessionId: 'child-session', + projectPath: '/my/project/packages/sub', + lastCwd: '/my/project/packages/sub', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + { + sessionId: 'parent-session', + projectPath: '/my', + lastCwd: '/my', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + ]; + + const result = filterCandidateSessions(processInfo, sessions, new Set(), 'parent-child'); + expect(result).toHaveLength(2); + }); + + it('should skip used sessions', () => { + const adapter = new ClaudeCodeAdapter(); + const filterCandidateSessions = (adapter as any).filterCandidateSessions.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const sessions = [ + { + sessionId: 's1', + projectPath: '/my/project', + sessionStart: new Date(), + lastActive: new Date(), + isInterrupted: false, + }, + ]; + + const result = filterCandidateSessions(processInfo, sessions, new Set(['s1']), 'cwd'); + expect(result).toHaveLength(0); + }); + }); + + describe('extractUserMessageText', () => { + it('should extract plain string content', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + expect(extract('hello world')).toBe('hello world'); + }); + + it('should extract text from array content blocks', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + const content = [ + { type: 'tool_result', content: 'some result' }, + { type: 'text', text: 'user question' }, + ]; + expect(extract(content)).toBe('user question'); + }); + + it('should return undefined for empty/null content', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + expect(extract(undefined)).toBeUndefined(); + expect(extract('')).toBeUndefined(); + expect(extract([])).toBeUndefined(); + }); + + it('should parse command-message tags', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + const msg = 'commitfix bug'; + expect(extract(msg)).toBe('commit fix bug'); + }); + + it('should parse command-message without args', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + const msg = 'help'; + expect(extract(msg)).toBe('help'); + }); + + it('should extract ARGUMENTS from skill expansion', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + const msg = 'Base directory for this skill: /some/path\n\nSome instructions\n\nARGUMENTS: implement the feature'; + expect(extract(msg)).toBe('implement the feature'); + }); + + it('should return undefined for skill expansion without ARGUMENTS', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + const msg = 'Base directory for this skill: /some/path\n\nSome instructions only'; + expect(extract(msg)).toBeUndefined(); + }); + + it('should filter noise messages', () => { + const adapter = new ClaudeCodeAdapter(); + const extract = (adapter as any).extractUserMessageText.bind(adapter); + + expect(extract('[Request interrupted by user]')).toBeUndefined(); + expect(extract('Tool loaded.')).toBeUndefined(); + expect(extract('This session is being continued from a previous conversation')).toBeUndefined(); + }); + }); + + describe('parseCommandMessage', () => { + it('should return undefined for malformed command-message', () => { + const adapter = new ClaudeCodeAdapter(); + const parse = (adapter as any).parseCommandMessage.bind(adapter); + + expect(parse('no tags')).toBeUndefined(); + }); + }); + }); + + describe('selectBestSession', () => { + it('should defer in cwd mode when best candidate is outside tolerance', () => { + const adapter = new ClaudeCodeAdapter(); + const selectBestSession = (adapter as any).selectBestSession.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const processStart = new Date('2026-03-10T10:00:00Z'); + const processStartByPid = new Map([[1, processStart]]); + + const sessions = [ + { + sessionId: 'stale-exact-cwd', + projectPath: '/my/project', + lastCwd: '/my/project', + sessionStart: new Date('2026-03-07T10:00:00Z'), // 3 days old — outside tolerance + lastActive: new Date('2026-03-10T10:05:00Z'), + isInterrupted: false, + }, + ]; + + // In cwd mode, should defer (return undefined) because outside tolerance + const cwdResult = selectBestSession(processInfo, sessions, new Set(), processStartByPid, 'cwd'); + expect(cwdResult).toBeUndefined(); + + // In parent-child mode, should accept the same candidate (no tolerance gate) + const parentChildResult = selectBestSession(processInfo, sessions, new Set(), processStartByPid, 'parent-child'); + expect(parentChildResult).toBeDefined(); + expect(parentChildResult.sessionId).toBe('stale-exact-cwd'); + }); + + it('should fall back to recency when no processStart available', () => { + const adapter = new ClaudeCodeAdapter(); + const selectBestSession = (adapter as any).selectBestSession.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const processStartByPid = new Map(); // empty — no start time + + const sessions = [ + { + sessionId: 'older', + projectPath: '/my/project', + lastCwd: '/my/project', + sessionStart: new Date('2026-03-10T09:00:00Z'), + lastActive: new Date('2026-03-10T09:30:00Z'), + isInterrupted: false, + }, + { + sessionId: 'newer', + projectPath: '/my/project', + lastCwd: '/my/project', + sessionStart: new Date('2026-03-10T10:00:00Z'), + lastActive: new Date('2026-03-10T10:30:00Z'), + isInterrupted: false, + }, + ]; + + const result = selectBestSession(processInfo, sessions, new Set(), processStartByPid, 'cwd'); + expect(result).toBeDefined(); + expect(result.sessionId).toBe('newer'); + }); + + it('should accept in cwd mode when best candidate is within tolerance', () => { + const adapter = new ClaudeCodeAdapter(); + const selectBestSession = (adapter as any).selectBestSession.bind(adapter); + + const processInfo = { pid: 1, command: 'claude', cwd: '/my/project', tty: '' }; + const processStart = new Date('2026-03-10T10:00:00Z'); + const processStartByPid = new Map([[1, processStart]]); + + const sessions = [ + { + sessionId: 'fresh-exact-cwd', + projectPath: '/my/project', + lastCwd: '/my/project', + sessionStart: new Date('2026-03-10T10:00:30Z'), // 30s — within tolerance + lastActive: new Date('2026-03-10T10:05:00Z'), + isInterrupted: false, + }, + ]; + + const result = selectBestSession(processInfo, sessions, new Set(), processStartByPid, 'cwd'); + expect(result).toBeDefined(); + expect(result.sessionId).toBe('fresh-exact-cwd'); + }); + }); + + describe('file I/O methods', () => { + let tmpDir: string; + + beforeEach(() => { + tmpDir = fs.mkdtempSync(path.join(require('os').tmpdir(), 'claude-test-')); + }); + + afterEach(() => { + fs.rmSync(tmpDir, { recursive: true, force: true }); + }); + + describe('readSession', () => { + it('should parse session file with timestamps, slug, cwd, and entry type', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'test-session.jsonl'); + const lines = [ + JSON.stringify({ type: 'user', timestamp: '2026-03-10T10:00:00Z', cwd: '/my/project', slug: 'happy-dog' }), + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:01:00Z' }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, '/my/project'); + expect(session).toMatchObject({ + sessionId: 'test-session', + projectPath: '/my/project', + slug: 'happy-dog', + lastCwd: '/my/project', + lastEntryType: 'assistant', + isInterrupted: false, + }); + expect(session.sessionStart.toISOString()).toBe('2026-03-10T10:00:00.000Z'); + expect(session.lastActive.toISOString()).toBe('2026-03-10T10:01:00.000Z'); + }); + + it('should detect user interruption', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'interrupted.jsonl'); + const lines = [ + JSON.stringify({ + type: 'user', + timestamp: '2026-03-10T10:00:00Z', + message: { + content: [{ type: 'text', text: '[Request interrupted by user for tool use]' }], + }, + }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, '/test'); + expect(session.isInterrupted).toBe(true); + expect(session.lastEntryType).toBe('user'); + }); + + it('should return session with defaults for empty file', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'empty.jsonl'); + fs.writeFileSync(filePath, ''); + + const session = readSession(filePath, '/test'); + // Empty file content trims to '' which splits to [''] — no valid entries parsed + expect(session).not.toBeNull(); + expect(session.lastEntryType).toBeUndefined(); + expect(session.slug).toBeUndefined(); + }); + + it('should return null for non-existent file', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + expect(readSession(path.join(tmpDir, 'nonexistent.jsonl'), '/test')).toBeNull(); + }); + + it('should skip metadata entry types for lastEntryType', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'metadata-test.jsonl'); + const lines = [ + JSON.stringify({ type: 'user', timestamp: '2026-03-10T10:00:00Z', message: { content: 'hello' } }), + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:01:00Z' }), + JSON.stringify({ type: 'last-prompt', timestamp: '2026-03-10T10:02:00Z' }), + JSON.stringify({ type: 'file-history-snapshot', timestamp: '2026-03-10T10:03:00Z' }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, '/test'); + // lastEntryType should be 'assistant', not 'last-prompt' or 'file-history-snapshot' + expect(session.lastEntryType).toBe('assistant'); + }); + + it('should parse snapshot.timestamp from file-history-snapshot first entry', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'snapshot-ts.jsonl'); + const lines = [ + JSON.stringify({ + type: 'file-history-snapshot', + snapshot: { timestamp: '2026-03-10T09:55:00Z', files: [] }, + }), + JSON.stringify({ type: 'user', timestamp: '2026-03-10T10:00:00Z', message: { content: 'test' } }), + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:01:00Z' }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, '/test'); + // sessionStart should come from snapshot.timestamp, not lastActive + expect(session.sessionStart.toISOString()).toBe('2026-03-10T09:55:00.000Z'); + expect(session.lastActive.toISOString()).toBe('2026-03-10T10:01:00.000Z'); + }); + + it('should extract lastUserMessage from session entries', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'user-msg.jsonl'); + const lines = [ + JSON.stringify({ type: 'user', timestamp: '2026-03-10T10:00:00Z', message: { content: 'first question' } }), + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:01:00Z' }), + JSON.stringify({ type: 'user', timestamp: '2026-03-10T10:02:00Z', message: { content: [{ type: 'text', text: 'second question' }] } }), + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:03:00Z' }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, '/test'); + // Last user message should be the most recent one + expect(session.lastUserMessage).toBe('second question'); + }); + + it('should use lastCwd as projectPath when projectPath is empty', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'no-project.jsonl'); + const lines = [ + JSON.stringify({ type: 'user', timestamp: '2026-03-10T10:00:00Z', cwd: '/derived/path', message: { content: 'test' } }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, ''); + expect(session.projectPath).toBe('/derived/path'); + }); + + it('should handle malformed JSON lines gracefully', () => { + const adapter = new ClaudeCodeAdapter(); + const readSession = (adapter as any).readSession.bind(adapter); + + const filePath = path.join(tmpDir, 'malformed.jsonl'); + const lines = [ + 'not json', + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:00:00Z' }), + ]; + fs.writeFileSync(filePath, lines.join('\n')); + + const session = readSession(filePath, '/test'); + expect(session).not.toBeNull(); + expect(session.lastEntryType).toBe('assistant'); + }); + }); + + describe('findSessionFiles', () => { + it('should return empty when projects dir does not exist', () => { + const adapter = new ClaudeCodeAdapter(); + (adapter as any).projectsDir = path.join(tmpDir, 'nonexistent'); + const findSessionFiles = (adapter as any).findSessionFiles.bind(adapter); + + expect(findSessionFiles(10)).toEqual([]); + }); + + it('should find and sort session files by mtime', () => { + const adapter = new ClaudeCodeAdapter(); + const projectsDir = path.join(tmpDir, 'projects'); + (adapter as any).projectsDir = projectsDir; + const findSessionFiles = (adapter as any).findSessionFiles.bind(adapter); + + // Create project dir with sessions-index.json and JSONL files + const projDir = path.join(projectsDir, 'encoded-path'); + fs.mkdirSync(projDir, { recursive: true }); + fs.writeFileSync( + path.join(projDir, 'sessions-index.json'), + JSON.stringify({ originalPath: '/my/project' }), + ); + + const file1 = path.join(projDir, 'session-old.jsonl'); + const file2 = path.join(projDir, 'session-new.jsonl'); + fs.writeFileSync(file1, '{}'); + // Ensure different mtime + const past = new Date(Date.now() - 10000); + fs.utimesSync(file1, past, past); + fs.writeFileSync(file2, '{}'); + + const files = findSessionFiles(10); + expect(files).toHaveLength(2); + // Sorted by mtime desc — new first + expect(files[0].filePath).toContain('session-new'); + expect(files[0].projectPath).toBe('/my/project'); + expect(files[1].filePath).toContain('session-old'); + }); + + it('should respect scan limit', () => { + const adapter = new ClaudeCodeAdapter(); + const projectsDir = path.join(tmpDir, 'projects'); + (adapter as any).projectsDir = projectsDir; + const findSessionFiles = (adapter as any).findSessionFiles.bind(adapter); + + const projDir = path.join(projectsDir, 'proj'); + fs.mkdirSync(projDir, { recursive: true }); + fs.writeFileSync( + path.join(projDir, 'sessions-index.json'), + JSON.stringify({ originalPath: '/proj' }), + ); + + for (let i = 0; i < 5; i++) { + fs.writeFileSync(path.join(projDir, `session-${i}.jsonl`), '{}'); + } + + const files = findSessionFiles(3); + expect(files).toHaveLength(3); + }); + + it('should skip directories starting with dot', () => { + const adapter = new ClaudeCodeAdapter(); + const projectsDir = path.join(tmpDir, 'projects'); + (adapter as any).projectsDir = projectsDir; + const findSessionFiles = (adapter as any).findSessionFiles.bind(adapter); + + const hiddenDir = path.join(projectsDir, '.hidden'); + fs.mkdirSync(hiddenDir, { recursive: true }); + fs.writeFileSync( + path.join(hiddenDir, 'sessions-index.json'), + JSON.stringify({ originalPath: '/hidden' }), + ); + fs.writeFileSync(path.join(hiddenDir, 'session.jsonl'), '{}'); + + const files = findSessionFiles(10); + expect(files).toEqual([]); + }); + + it('should include project dirs without sessions-index.json using empty projectPath', () => { + const adapter = new ClaudeCodeAdapter(); + const projectsDir = path.join(tmpDir, 'projects'); + (adapter as any).projectsDir = projectsDir; + const findSessionFiles = (adapter as any).findSessionFiles.bind(adapter); + + const projDir = path.join(projectsDir, 'no-index'); + fs.mkdirSync(projDir, { recursive: true }); + fs.writeFileSync(path.join(projDir, 'session.jsonl'), '{}'); + + const files = findSessionFiles(10); + expect(files).toHaveLength(1); + expect(files[0].projectPath).toBe(''); + expect(files[0].filePath).toContain('session.jsonl'); + }); + }); + + describe('readSessions', () => { + it('should parse valid sessions and skip invalid ones', () => { + const adapter = new ClaudeCodeAdapter(); + const projectsDir = path.join(tmpDir, 'projects'); + (adapter as any).projectsDir = projectsDir; + const readSessions = (adapter as any).readSessions.bind(adapter); + + const projDir = path.join(projectsDir, 'proj'); + fs.mkdirSync(projDir, { recursive: true }); + fs.writeFileSync( + path.join(projDir, 'sessions-index.json'), + JSON.stringify({ originalPath: '/my/project' }), + ); + + // Valid session + fs.writeFileSync( + path.join(projDir, 'valid.jsonl'), + JSON.stringify({ type: 'assistant', timestamp: '2026-03-10T10:00:00Z' }), + ); + // Empty session (will return null from readSession) + fs.writeFileSync(path.join(projDir, 'empty.jsonl'), ''); + + const sessions = readSessions(10); + expect(sessions).toHaveLength(2); + // Both are valid (empty file still produces a session with defaults) + const validSession = sessions.find((s: any) => s.sessionId === 'valid'); + expect(validSession).toBeDefined(); + expect(validSession.lastEntryType).toBe('assistant'); + }); }); }); }); diff --git a/packages/agent-manager/src/__tests__/adapters/CodexAdapter.test.ts b/packages/agent-manager/src/__tests__/adapters/CodexAdapter.test.ts index a6ab3ebf..f5086080 100644 --- a/packages/agent-manager/src/__tests__/adapters/CodexAdapter.test.ts +++ b/packages/agent-manager/src/__tests__/adapters/CodexAdapter.test.ts @@ -208,7 +208,13 @@ describe('CodexAdapter', () => { const agents = await adapter.detectAgents(); expect(agents).toHaveLength(1); - expect(agents[0].pid).toBe(105); + expect(agents[0]).toMatchObject({ + pid: 105, + name: 'repo-x', + summary: 'Codex process running', + projectPath: '/repo-x', + }); + expect(agents[0].sessionId).toBe('pid-105'); }); it('should list process when session metadata is unavailable', async () => { diff --git a/packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts b/packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts index 82a4d431..adf476b8 100644 --- a/packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts +++ b/packages/agent-manager/src/adapters/ClaudeCodeAdapter.ts @@ -1,16 +1,10 @@ -/** - * Claude Code Adapter - * - * Detects running Claude Code agents by reading session files - * from ~/.claude/ directory and correlating with running processes. - */ - import * as fs from 'fs'; import * as path from 'path'; +import { execSync } from 'child_process'; import type { AgentAdapter, AgentInfo, ProcessInfo } from './AgentAdapter'; import { AgentStatus } from './AgentAdapter'; import { listProcesses } from '../utils/process'; -import { readLastLines, readJsonLines, readJson } from '../utils/file'; +import { readJson } from '../utils/file'; /** * Structure of ~/.claude/projects/{path}/sessions-index.json @@ -19,43 +13,21 @@ interface SessionsIndex { originalPath: string; } -enum SessionEntryType { - ASSISTANT = 'assistant', - USER = 'user', - PROGRESS = 'progress', - THINKING = 'thinking', - SYSTEM = 'system', - MESSAGE = 'message', - TEXT = 'text', -} - /** * Entry in session JSONL file */ interface SessionEntry { - type?: SessionEntryType; + type?: string; timestamp?: string; slug?: string; cwd?: string; - sessionId?: string; message?: { - content?: Array<{ + content?: string | Array<{ type?: string; text?: string; content?: string; }>; }; - [key: string]: unknown; -} - -/** - * Entry in ~/.claude/history.jsonl - */ -interface HistoryEntry { - display: string; - timestamp: number; - project: string; - sessionId: string; } /** @@ -66,135 +38,122 @@ interface ClaudeSession { projectPath: string; lastCwd?: string; slug?: string; - sessionLogPath: string; - lastEntry?: SessionEntry; - lastActive?: Date; + sessionStart: Date; + lastActive: Date; + lastEntryType?: string; + isInterrupted: boolean; + lastUserMessage?: string; } -type SessionMatchMode = 'cwd' | 'project-parent'; +type SessionMatchMode = 'cwd' | 'missing-cwd' | 'parent-child'; /** * Claude Code Adapter - * + * * Detects Claude Code agents by: * 1. Finding running claude processes - * 2. Reading session files from ~/.claude/projects/ - * 3. Matching sessions to processes via CWD - * 4. Extracting status from session JSONL - * 5. Extracting summary from history.jsonl + * 2. Getting process start times for accurate session matching + * 3. Reading bounded session files from ~/.claude/projects/ + * 4. Matching sessions to processes via CWD then start time ranking + * 5. Extracting summary from last user message in session JSONL */ export class ClaudeCodeAdapter implements AgentAdapter { readonly type = 'claude' as const; - /** Threshold in minutes before considering a session idle */ - private static readonly IDLE_THRESHOLD_MINUTES = 5; + /** Limit session parsing per run to keep list latency bounded. */ + private static readonly MIN_SESSION_SCAN = 12; + private static readonly MAX_SESSION_SCAN = 40; + private static readonly SESSION_SCAN_MULTIPLIER = 4; + /** Matching tolerance between process start time and session start time. */ + private static readonly PROCESS_SESSION_TIME_TOLERANCE_MS = 2 * 60 * 1000; - private claudeDir: string; private projectsDir: string; - private historyPath: string; constructor() { const homeDir = process.env.HOME || process.env.USERPROFILE || ''; - this.claudeDir = path.join(homeDir, '.claude'); - this.projectsDir = path.join(this.claudeDir, 'projects'); - this.historyPath = path.join(this.claudeDir, 'history.jsonl'); + this.projectsDir = path.join(homeDir, '.claude', 'projects'); } /** * Check if this adapter can handle a given process */ canHandle(processInfo: ProcessInfo): boolean { - return processInfo.command.toLowerCase().includes('claude'); + return this.isClaudeExecutable(processInfo.command); + } + + private isClaudeExecutable(command: string): boolean { + const executable = command.trim().split(/\s+/)[0] || ''; + const base = path.basename(executable).toLowerCase(); + return base === 'claude' || base === 'claude.exe'; } /** * Detect running Claude Code agents */ async detectAgents(): Promise { - const claudeProcesses = listProcesses({ namePattern: 'claude' }).filter((processInfo) => - this.canHandle(processInfo), - ); - + const claudeProcesses = this.listClaudeProcesses(); if (claudeProcesses.length === 0) { return []; } - const sessions = this.readSessions(); - const history = this.readHistory(); - const historyByProjectPath = this.indexHistoryByProjectPath(history); - const historyBySessionId = new Map(); - for (const entry of history) { - historyBySessionId.set(entry.sessionId, entry); - } + const processStartByPid = this.getProcessStartTimes( + claudeProcesses.map((p) => p.pid), + ); + const sessionScanLimit = this.calculateSessionScanLimit(claudeProcesses.length); + const sessions = this.readSessions(sessionScanLimit); - const sortedSessions = [...sessions].sort((a, b) => { - const timeA = a.lastActive?.getTime() || 0; - const timeB = b.lastActive?.getTime() || 0; - return timeB - timeA; - }); + if (sessions.length === 0) { + return claudeProcesses.map((p) => + this.mapProcessOnlyAgent(p, []), + ); + } + const sortedSessions = [...sessions].sort( + (a, b) => b.lastActive.getTime() - a.lastActive.getTime(), + ); const usedSessionIds = new Set(); const assignedPids = new Set(); const agents: AgentInfo[] = []; - this.assignSessionsForMode( - 'cwd', - claudeProcesses, - sortedSessions, - usedSessionIds, - assignedPids, - historyBySessionId, - agents, - ); - this.assignHistoryEntriesForExactProcessCwd( - claudeProcesses, - assignedPids, - historyByProjectPath, - usedSessionIds, - agents, - ); - this.assignSessionsForMode( - 'project-parent', - claudeProcesses, - sortedSessions, - usedSessionIds, - assignedPids, - historyBySessionId, - agents, - ); + const modes: SessionMatchMode[] = ['cwd', 'missing-cwd', 'parent-child']; + for (const mode of modes) { + this.assignSessionsForMode( + mode, + claudeProcesses, + sortedSessions, + usedSessionIds, + assignedPids, + processStartByPid, + agents, + ); + } + for (const processInfo of claudeProcesses) { if (assignedPids.has(processInfo.pid)) { continue; } assignedPids.add(processInfo.pid); - agents.push(this.mapProcessOnlyAgent(processInfo, agents, historyByProjectPath, usedSessionIds)); + agents.push(this.mapProcessOnlyAgent(processInfo, agents)); } return agents; } - private assignHistoryEntriesForExactProcessCwd( - claudeProcesses: ProcessInfo[], - assignedPids: Set, - historyByProjectPath: Map, - usedSessionIds: Set, - agents: AgentInfo[], - ): void { - for (const processInfo of claudeProcesses) { - if (assignedPids.has(processInfo.pid)) { - continue; - } - - const historyEntry = this.selectHistoryForProcess(processInfo.cwd || '', historyByProjectPath, usedSessionIds); - if (!historyEntry) { - continue; - } + private listClaudeProcesses(): ProcessInfo[] { + return listProcesses({ namePattern: 'claude' }).filter((p) => + this.canHandle(p), + ); + } - assignedPids.add(processInfo.pid); - usedSessionIds.add(historyEntry.sessionId); - agents.push(this.mapHistoryToAgent(processInfo, historyEntry, agents)); - } + private calculateSessionScanLimit(processCount: number): number { + return Math.min( + Math.max( + processCount * ClaudeCodeAdapter.SESSION_SCAN_MULTIPLIER, + ClaudeCodeAdapter.MIN_SESSION_SCAN, + ), + ClaudeCodeAdapter.MAX_SESSION_SCAN, + ); } private assignSessionsForMode( @@ -203,7 +162,7 @@ export class ClaudeCodeAdapter implements AgentAdapter { sessions: ClaudeSession[], usedSessionIds: Set, assignedPids: Set, - historyBySessionId: Map, + processStartByPid: Map, agents: AgentInfo[], ): void { for (const processInfo of claudeProcesses) { @@ -211,321 +170,457 @@ export class ClaudeCodeAdapter implements AgentAdapter { continue; } - const session = this.selectBestSession(processInfo, sessions, usedSessionIds, mode); + const session = this.selectBestSession( + processInfo, + sessions, + usedSessionIds, + processStartByPid, + mode, + ); if (!session) { continue; } usedSessionIds.add(session.sessionId); assignedPids.add(processInfo.pid); - agents.push(this.mapSessionToAgent(session, processInfo, historyBySessionId, agents)); + agents.push(this.mapSessionToAgent(session, processInfo, agents)); } } - private selectBestSession( - processInfo: ProcessInfo, - sessions: ClaudeSession[], - usedSessionIds: Set, - mode: SessionMatchMode, - ): ClaudeSession | null { - const candidates = sessions.filter((session) => { - if (usedSessionIds.has(session.sessionId)) { - return false; - } - - if (mode === 'cwd') { - return this.pathEquals(processInfo.cwd, session.lastCwd) - || this.pathEquals(processInfo.cwd, session.projectPath); - } - - if (mode === 'project-parent') { - return this.isChildPath(processInfo.cwd, session.projectPath) - || this.isChildPath(processInfo.cwd, session.lastCwd); - } - - return false; - }); - - if (candidates.length === 0) { - return null; - } - - if (mode !== 'project-parent') { - return candidates[0]; - } - - return candidates.sort((a, b) => { - const depthA = Math.max(this.pathDepth(a.projectPath), this.pathDepth(a.lastCwd)); - const depthB = Math.max(this.pathDepth(b.projectPath), this.pathDepth(b.lastCwd)); - if (depthA !== depthB) { - return depthB - depthA; - } - - const lastActiveA = a.lastActive?.getTime() || 0; - const lastActiveB = b.lastActive?.getTime() || 0; - return lastActiveB - lastActiveA; - })[0]; - } - private mapSessionToAgent( session: ClaudeSession, processInfo: ProcessInfo, - historyBySessionId: Map, existingAgents: AgentInfo[], ): AgentInfo { - const historyEntry = historyBySessionId.get(session.sessionId); - return { name: this.generateAgentName(session, existingAgents), type: this.type, status: this.determineStatus(session), - summary: historyEntry?.display || 'Session started', + summary: session.lastUserMessage || 'Session started', pid: processInfo.pid, projectPath: session.projectPath || processInfo.cwd || '', sessionId: session.sessionId, slug: session.slug, - lastActive: session.lastActive || new Date(), + lastActive: session.lastActive, }; } private mapProcessOnlyAgent( processInfo: ProcessInfo, existingAgents: AgentInfo[], - historyByProjectPath: Map, - usedSessionIds: Set, ): AgentInfo { - const projectPath = processInfo.cwd || ''; - const historyEntry = this.selectHistoryForProcess(projectPath, historyByProjectPath, usedSessionIds); - const sessionId = historyEntry?.sessionId || `pid-${processInfo.pid}`; - const lastActive = historyEntry ? new Date(historyEntry.timestamp) : new Date(); - if (historyEntry) { - usedSessionIds.add(historyEntry.sessionId); - } - - const processSession: ClaudeSession = { - sessionId, - projectPath, - lastCwd: projectPath, - sessionLogPath: '', - lastActive, - }; + const processCwd = processInfo.cwd || ''; + const projectName = path.basename(processCwd) || 'claude'; + const hasDuplicate = existingAgents.some((a) => a.projectPath === processCwd); return { - name: this.generateAgentName(processSession, existingAgents), + name: hasDuplicate ? `${projectName} (pid-${processInfo.pid})` : projectName, type: this.type, - status: AgentStatus.RUNNING, - summary: historyEntry?.display || 'Claude process running', + status: AgentStatus.IDLE, + summary: 'Unknown', pid: processInfo.pid, - projectPath, - sessionId: processSession.sessionId, - lastActive: processSession.lastActive || new Date(), + projectPath: processCwd, + sessionId: `pid-${processInfo.pid}`, + lastActive: new Date(), }; } - private mapHistoryToAgent( + private selectBestSession( processInfo: ProcessInfo, - historyEntry: HistoryEntry, - existingAgents: AgentInfo[], - ): AgentInfo { - const projectPath = processInfo.cwd || historyEntry.project; - const historySession: ClaudeSession = { - sessionId: historyEntry.sessionId, - projectPath, - lastCwd: projectPath, - sessionLogPath: '', - lastActive: new Date(historyEntry.timestamp), - }; + sessions: ClaudeSession[], + usedSessionIds: Set, + processStartByPid: Map, + mode: SessionMatchMode, + ): ClaudeSession | undefined { + const candidates = this.filterCandidateSessions( + processInfo, + sessions, + usedSessionIds, + mode, + ); - return { - name: this.generateAgentName(historySession, existingAgents), - type: this.type, - status: AgentStatus.RUNNING, - summary: historyEntry.display || 'Claude process running', - pid: processInfo.pid, - projectPath, - sessionId: historySession.sessionId, - lastActive: historySession.lastActive || new Date(), - }; - } + if (candidates.length === 0) { + return undefined; + } - private indexHistoryByProjectPath(historyEntries: HistoryEntry[]): Map { - const grouped = new Map(); + const processStart = processStartByPid.get(processInfo.pid); + if (!processStart) { + return candidates.sort( + (a, b) => b.lastActive.getTime() - a.lastActive.getTime(), + )[0]; + } - for (const entry of historyEntries) { - const key = this.normalizePath(entry.project); - const list = grouped.get(key) || []; - list.push(entry); - grouped.set(key, list); + const best = this.rankCandidatesByStartTime(candidates, processStart)[0]; + if (!best) { + return undefined; } - for (const [key, list] of grouped.entries()) { - grouped.set( - key, - [...list].sort((a, b) => b.timestamp - a.timestamp), + // In early modes (cwd/missing-cwd), defer assignment when the best + // candidate is outside start-time tolerance — a closer match may + // exist in parent-child mode (e.g., worktree sessions). + if (mode !== 'parent-child') { + const diffMs = Math.abs( + best.sessionStart.getTime() - processStart.getTime(), ); + if (diffMs > ClaudeCodeAdapter.PROCESS_SESSION_TIME_TOLERANCE_MS) { + return undefined; + } } - return grouped; + return best; } - private selectHistoryForProcess( - processCwd: string, - historyByProjectPath: Map, + private filterCandidateSessions( + processInfo: ProcessInfo, + sessions: ClaudeSession[], usedSessionIds: Set, - ): HistoryEntry | undefined { - if (!processCwd) { - return undefined; + mode: SessionMatchMode, + ): ClaudeSession[] { + return sessions.filter((session) => { + if (usedSessionIds.has(session.sessionId)) { + return false; + } + + if (mode === 'cwd') { + return ( + this.pathEquals(processInfo.cwd, session.projectPath) || + this.pathEquals(processInfo.cwd, session.lastCwd) + ); + } + + if (mode === 'missing-cwd') { + return !session.projectPath; + } + + // parent-child mode: match if process CWD equals, is under, or is + // a parent of session project/lastCwd. This also catches exact CWD + // matches that were deferred from `cwd` mode due to start-time tolerance. + return ( + this.pathRelated(processInfo.cwd, session.projectPath) || + this.pathRelated(processInfo.cwd, session.lastCwd) + ); + }); + } + + private rankCandidatesByStartTime( + candidates: ClaudeSession[], + processStart: Date, + ): ClaudeSession[] { + const toleranceMs = ClaudeCodeAdapter.PROCESS_SESSION_TIME_TOLERANCE_MS; + + return candidates + .map((session) => { + const diffMs = Math.abs( + session.sessionStart.getTime() - processStart.getTime(), + ); + const outsideTolerance = diffMs > toleranceMs ? 1 : 0; + return { + session, + rank: outsideTolerance, + diffMs, + recency: session.lastActive.getTime(), + }; + }) + .sort((a, b) => { + if (a.rank !== b.rank) return a.rank - b.rank; + // Within tolerance (rank 0): prefer most recently active session. + // The exact diff is noise — a 6s vs 45s difference is meaningless, + // but the session with recent activity is more likely the real one. + if (a.rank === 0) return b.recency - a.recency; + // Outside tolerance: prefer smallest time difference, then recency. + if (a.diffMs !== b.diffMs) return a.diffMs - b.diffMs; + return b.recency - a.recency; + }) + .map((ranked) => ranked.session); + } + + private getProcessStartTimes(pids: number[]): Map { + if (pids.length === 0 || process.env.JEST_WORKER_ID) { + return new Map(); } - const candidates = historyByProjectPath.get(this.normalizePath(processCwd)) || []; - return candidates.find((entry) => !usedSessionIds.has(entry.sessionId)); + try { + const output = execSync( + `ps -o pid=,etime= -p ${pids.join(',')}`, + { encoding: 'utf-8' }, + ); + const nowMs = Date.now(); + const startTimes = new Map(); + + for (const rawLine of output.split('\n')) { + const line = rawLine.trim(); + if (!line) continue; + + const parts = line.split(/\s+/); + if (parts.length < 2) continue; + + const pid = Number.parseInt(parts[0], 10); + const elapsedSeconds = this.parseElapsedSeconds(parts[1]); + if (!Number.isFinite(pid) || elapsedSeconds === null) continue; + + startTimes.set(pid, new Date(nowMs - elapsedSeconds * 1000)); + } + + return startTimes; + } catch { + return new Map(); + } + } + + private parseElapsedSeconds(etime: string): number | null { + const match = etime + .trim() + .match(/^(?:(\d+)-)?(?:(\d{1,2}):)?(\d{1,2}):(\d{2})$/); + if (!match) { + return null; + } + + const days = Number.parseInt(match[1] || '0', 10); + const hours = Number.parseInt(match[2] || '0', 10); + const minutes = Number.parseInt(match[3] || '0', 10); + const seconds = Number.parseInt(match[4] || '0', 10); + + return ((days * 24 + hours) * 60 + minutes) * 60 + seconds; } /** - * Read all Claude Code sessions + * Read Claude Code sessions with bounded scanning */ - private readSessions(): ClaudeSession[] { + private readSessions(limit: number): ClaudeSession[] { + const sessionFiles = this.findSessionFiles(limit); + const sessions: ClaudeSession[] = []; + + for (const file of sessionFiles) { + try { + const session = this.readSession(file.filePath, file.projectPath); + if (session) { + sessions.push(session); + } + } catch (error) { + console.error(`Failed to parse Claude session ${file.filePath}:`, error); + } + } + + return sessions; + } + + /** + * Find session files bounded by mtime, sorted most-recent first + */ + private findSessionFiles( + limit: number, + ): Array<{ filePath: string; projectPath: string; mtimeMs: number }> { if (!fs.existsSync(this.projectsDir)) { return []; } - const sessions: ClaudeSession[] = []; - const projectDirs = fs.readdirSync(this.projectsDir); + const files: Array<{ + filePath: string; + projectPath: string; + mtimeMs: number; + }> = []; - for (const dirName of projectDirs) { + for (const dirName of fs.readdirSync(this.projectsDir)) { if (dirName.startsWith('.')) { continue; } const projectDir = path.join(this.projectsDir, dirName); - if (!fs.statSync(projectDir).isDirectory()) { + try { + if (!fs.statSync(projectDir).isDirectory()) continue; + } catch { continue; } - // Read sessions-index.json to get original project path const indexPath = path.join(projectDir, 'sessions-index.json'); - if (!fs.existsSync(indexPath)) { - continue; - } - - const sessionsIndex = readJson(indexPath); - if (!sessionsIndex) { - console.error(`Failed to parse ${indexPath}`); - continue; - } + const index = readJson(indexPath); + const projectPath = index?.originalPath || ''; - const sessionFiles = fs.readdirSync(projectDir).filter(f => f.endsWith('.jsonl')); - - for (const sessionFile of sessionFiles) { - const sessionId = sessionFile.replace('.jsonl', ''); - const sessionLogPath = path.join(projectDir, sessionFile); + for (const entry of fs.readdirSync(projectDir)) { + if (!entry.endsWith('.jsonl')) { + continue; + } + const filePath = path.join(projectDir, entry); try { - const sessionData = this.readSessionLog(sessionLogPath); - - sessions.push({ - sessionId, - projectPath: sessionsIndex.originalPath, - lastCwd: sessionData.lastCwd, - slug: sessionData.slug, - sessionLogPath, - lastEntry: sessionData.lastEntry, - lastActive: sessionData.lastActive, + files.push({ + filePath, + projectPath, + mtimeMs: fs.statSync(filePath).mtimeMs, }); - } catch (error) { - console.error(`Failed to read session ${sessionId}:`, error); + } catch { continue; } } } - return sessions; + // Ensure breadth: include at least the most recent session per project, + // then fill remaining slots with globally most-recent sessions. + const sorted = files.sort((a, b) => b.mtimeMs - a.mtimeMs); + const result: typeof files = []; + const seenProjects = new Set(); + + // First pass: one most-recent session per project directory + for (const file of sorted) { + const projDir = path.dirname(file.filePath); + if (!seenProjects.has(projDir)) { + seenProjects.add(projDir); + result.push(file); + } + } + + // Second pass: fill remaining slots with globally most-recent + if (result.length < limit) { + const resultSet = new Set(result.map((f) => f.filePath)); + for (const file of sorted) { + if (result.length >= limit) break; + if (!resultSet.has(file.filePath)) { + result.push(file); + } + } + } + + return result.sort((a, b) => b.mtimeMs - a.mtimeMs).slice(0, limit); } /** - * Read a session JSONL file - * Only reads last 100 lines for performance with large files + * Parse a single session file into ClaudeSession */ - private readSessionLog(logPath: string): { - slug?: string; - lastEntry?: SessionEntry; - lastActive?: Date; - lastCwd?: string; - } { - const lines = readLastLines(logPath, 100); + private readSession( + filePath: string, + projectPath: string, + ): ClaudeSession | null { + const sessionId = path.basename(filePath, '.jsonl'); + let content: string; + try { + content = fs.readFileSync(filePath, 'utf-8'); + } catch { + return null; + } + + const allLines = content.trim().split('\n'); + if (allLines.length === 0) { + return null; + } + + // Parse first line for sessionStart. + // Claude Code may emit a "file-history-snapshot" as the first entry, which + // stores its timestamp inside "snapshot.timestamp" rather than at the root. + let sessionStart: Date | null = null; + try { + const firstEntry = JSON.parse(allLines[0]); + const rawTs: string | undefined = + firstEntry.timestamp || firstEntry.snapshot?.timestamp; + if (rawTs) { + const ts = new Date(rawTs); + if (!Number.isNaN(ts.getTime())) { + sessionStart = ts; + } + } + } catch { + /* skip */ + } + + // Parse all lines for session state (file already in memory) let slug: string | undefined; - let lastEntry: SessionEntry | undefined; + let lastEntryType: string | undefined; let lastActive: Date | undefined; let lastCwd: string | undefined; + let isInterrupted = false; + let lastUserMessage: string | undefined; - for (const line of lines) { + for (const line of allLines) { try { const entry: SessionEntry = JSON.parse(line); - if (entry.slug && !slug) { - slug = entry.slug; + if (entry.timestamp) { + const ts = new Date(entry.timestamp); + if (!Number.isNaN(ts.getTime())) { + lastActive = ts; + } } - lastEntry = entry; - - if (entry.timestamp) { - lastActive = new Date(entry.timestamp); + if (entry.slug && !slug) { + slug = entry.slug; } if (typeof entry.cwd === 'string' && entry.cwd.trim().length > 0) { lastCwd = entry.cwd; } - } catch (error) { + + if (entry.type && !this.isMetadataEntryType(entry.type)) { + lastEntryType = entry.type; + + if (entry.type === 'user') { + const msgContent = entry.message?.content; + isInterrupted = + Array.isArray(msgContent) && + msgContent.some( + (c) => + (c.type === 'text' && + c.text?.includes('[Request interrupted')) || + (c.type === 'tool_result' && + c.content?.includes('[Request interrupted')), + ); + + // Extract user message text for summary fallback + const text = this.extractUserMessageText(msgContent); + if (text) { + lastUserMessage = text; + } + } else { + isInterrupted = false; + } + } + } catch { continue; } } - return { slug, lastEntry, lastActive, lastCwd }; - } - - /** - * Read history.jsonl for user prompts - * Only reads last 100 lines for performance - */ - private readHistory(): HistoryEntry[] { - return readJsonLines(this.historyPath, 100); + return { + sessionId, + projectPath: projectPath || lastCwd || '', + lastCwd, + slug, + sessionStart: sessionStart || lastActive || new Date(), + lastActive: lastActive || new Date(), + lastEntryType, + isInterrupted, + lastUserMessage, + }; } /** - * Determine agent status from session entry + * Determine agent status from session state */ private determineStatus(session: ClaudeSession): AgentStatus { - if (!session.lastEntry) { + if (!session.lastEntryType) { return AgentStatus.UNKNOWN; } - const entryType = session.lastEntry.type; - const lastActive = session.lastActive || new Date(0); - const ageMinutes = (Date.now() - lastActive.getTime()) / 1000 / 60; + // No age-based IDLE override: every agent in the list is backed by + // a running process (found via ps), so the entry type is the best + // indicator of actual state. - if (ageMinutes > ClaudeCodeAdapter.IDLE_THRESHOLD_MINUTES) { - return AgentStatus.IDLE; + if (session.lastEntryType === 'user') { + return session.isInterrupted + ? AgentStatus.WAITING + : AgentStatus.RUNNING; } - if (entryType === SessionEntryType.USER) { - // Check if user interrupted manually - this puts agent back in waiting state - const content = session.lastEntry.message?.content; - if (Array.isArray(content)) { - const isInterrupted = content.some(c => - (c.type === SessionEntryType.TEXT && c.text?.includes('[Request interrupted')) || - (c.type === 'tool_result' && c.content?.includes('[Request interrupted')) - ); - if (isInterrupted) return AgentStatus.WAITING; - } + if ( + session.lastEntryType === 'progress' || + session.lastEntryType === 'thinking' + ) { return AgentStatus.RUNNING; } - if (entryType === SessionEntryType.PROGRESS || entryType === SessionEntryType.THINKING) { - return AgentStatus.RUNNING; - } else if (entryType === SessionEntryType.ASSISTANT) { + if (session.lastEntryType === 'assistant') { return AgentStatus.WAITING; - } else if (entryType === SessionEntryType.SYSTEM) { + } + + if (session.lastEntryType === 'system') { return AgentStatus.IDLE; } @@ -536,30 +631,35 @@ export class ClaudeCodeAdapter implements AgentAdapter { * Generate unique agent name * Uses project basename, appends slug if multiple sessions for same project */ - private generateAgentName(session: ClaudeSession, existingAgents: AgentInfo[]): string { + private generateAgentName( + session: ClaudeSession, + existingAgents: AgentInfo[], + ): string { const projectName = path.basename(session.projectPath) || 'claude'; const sameProjectAgents = existingAgents.filter( - a => a.projectPath === session.projectPath + (a) => a.projectPath === session.projectPath, ); if (sameProjectAgents.length === 0) { return projectName; } - // Multiple sessions for same project, append slug if (session.slug) { - // Use first word of slug for brevity (with safety check for format) const slugPart = session.slug.includes('-') ? session.slug.split('-')[0] : session.slug.slice(0, 8); return `${projectName} (${slugPart})`; } - // No slug available, use session ID prefix return `${projectName} (${session.sessionId.slice(0, 8)})`; } + /** Check if two paths are equal, or one is a parent/child of the other. */ + private pathRelated(a?: string, b?: string): boolean { + return this.pathEquals(a, b) || this.isChildPath(a, b) || this.isChildPath(b, a); + } + private pathEquals(a?: string, b?: string): boolean { if (!a || !b) { return false; @@ -575,23 +675,94 @@ export class ClaudeCodeAdapter implements AgentAdapter { const normalizedChild = this.normalizePath(child); const normalizedParent = this.normalizePath(parent); - return normalizedChild === normalizedParent || normalizedChild.startsWith(`${normalizedParent}${path.sep}`); + return normalizedChild.startsWith(`${normalizedParent}${path.sep}`); } - private normalizePath(value: string): string { - const resolved = path.resolve(value); - if (resolved.length > 1 && resolved.endsWith(path.sep)) { - return resolved.slice(0, -1); + /** + * Extract meaningful text from a user message content. + * Handles string and array formats, skill command expansion, and noise filtering. + */ + private extractUserMessageText( + content: string | Array<{ type?: string; text?: string }> | undefined, + ): string | undefined { + if (!content) { + return undefined; } - return resolved; + + let raw: string | undefined; + + if (typeof content === 'string') { + raw = content.trim(); + } else if (Array.isArray(content)) { + for (const block of content) { + if (block.type === 'text' && block.text?.trim()) { + raw = block.text.trim(); + break; + } + } + } + + if (!raw) { + return undefined; + } + + // Skill slash-command: extract /command-name and args + if (raw.startsWith('')) { + return this.parseCommandMessage(raw); + } + + // Expanded skill content: extract ARGUMENTS line if present, skip otherwise + if (raw.startsWith('Base directory for this skill:')) { + const argsMatch = raw.match(/\nARGUMENTS:\s*(.+)/); + return argsMatch?.[1]?.trim() || undefined; + } + + // Filter noise + if (this.isNoiseMessage(raw)) { + return undefined; + } + + return raw; } - private pathDepth(value?: string): number { - if (!value) { - return 0; + /** + * Parse a string into "/command args" format. + */ + private parseCommandMessage(raw: string): string | undefined { + const nameMatch = raw.match(/([^<]+)<\/command-name>/); + const argsMatch = raw.match(/([^<]+)<\/command-args>/); + const name = nameMatch?.[1]?.trim(); + if (!name) { + return undefined; } + const args = argsMatch?.[1]?.trim(); + return args ? `${name} ${args}` : name; + } + + /** + * Check if a message is noise (not a meaningful user intent). + */ + private isNoiseMessage(text: string): boolean { + return ( + text.startsWith('[Request interrupted') || + text === 'Tool loaded.' || + text.startsWith('This session is being continued') + ); + } - return this.normalizePath(value).split(path.sep).filter(Boolean).length; + /** + * Check if an entry type is metadata (not conversation state). + * These should not overwrite lastEntryType used for status determination. + */ + private isMetadataEntryType(type: string): boolean { + return type === 'last-prompt' || type === 'file-history-snapshot'; } + private normalizePath(value: string): string { + const resolved = path.resolve(value); + if (resolved.length > 1 && resolved.endsWith(path.sep)) { + return resolved.slice(0, -1); + } + return resolved; + } } diff --git a/packages/agent-manager/src/adapters/CodexAdapter.ts b/packages/agent-manager/src/adapters/CodexAdapter.ts index 54af4bac..eda1bba3 100644 --- a/packages/agent-manager/src/adapters/CodexAdapter.ts +++ b/packages/agent-manager/src/adapters/CodexAdapter.ts @@ -43,7 +43,7 @@ interface CodexSession { lastPayloadType?: string; } -type SessionMatchMode = 'cwd' | 'missing-cwd' | 'any'; +type SessionMatchMode = 'cwd' | 'missing-cwd'; export class CodexAdapter implements AgentAdapter { readonly type = 'codex' as const; @@ -94,7 +94,7 @@ export class CodexAdapter implements AgentAdapter { const assignedPids = new Set(); const agents: AgentInfo[] = []; - // Match exact cwd first, then missing-cwd sessions, then any available session. + // Match exact cwd first, then missing-cwd sessions. this.assignSessionsForMode( 'cwd', codexProcesses, @@ -113,15 +113,6 @@ export class CodexAdapter implements AgentAdapter { processStartByPid, agents, ); - this.assignSessionsForMode( - 'any', - codexProcesses, - sortedSessions, - usedSessionIds, - assignedPids, - processStartByPid, - agents, - ); // Every running codex process should still be listed. for (const processInfo of codexProcesses) { @@ -454,8 +445,6 @@ export class CodexAdapter implements AgentAdapter { if (mode === 'missing-cwd') { return !session.projectPath; } - - return true; }); } diff --git a/packages/cli/package.json b/packages/cli/package.json index 9c718e2c..1b61d9b9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "ai-devkit", - "version": "0.17.0", + "version": "0.18.0", "description": "A CLI toolkit for AI-assisted software development with phase templates and environment setup", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -27,7 +27,7 @@ "author": "", "license": "MIT", "dependencies": { - "@ai-devkit/agent-manager": "0.3.0", + "@ai-devkit/agent-manager": "0.4.0", "@ai-devkit/memory": "0.7.0", "chalk": "^4.1.2", "commander": "^11.1.0", @@ -52,6 +52,6 @@ "typescript": "^5.3.3" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.20.0" } } diff --git a/packages/cli/src/__tests__/commands/lint.test.ts b/packages/cli/src/__tests__/commands/lint.test.ts index 51cc5489..9e6ccc22 100644 --- a/packages/cli/src/__tests__/commands/lint.test.ts +++ b/packages/cli/src/__tests__/commands/lint.test.ts @@ -3,6 +3,12 @@ import { ui } from '../../util/terminal-ui'; import { lintCommand, renderLintReport } from '../../commands/lint'; import { LintReport, runLintChecks } from '../../services/lint/lint.service'; +jest.mock('../../lib/Config', () => ({ + ConfigManager: jest.fn(() => ({ + getDocsDir: jest.fn<() => Promise>().mockResolvedValue('docs/ai') + })) +})); + jest.mock('../../services/lint/lint.service', () => ({ runLintChecks: jest.fn() })); @@ -46,7 +52,7 @@ describe('lint command', () => { await lintCommand({ feature: 'lint-command', json: true }); - expect(mockedRunLintChecks).toHaveBeenCalledWith({ feature: 'lint-command', json: true }); + expect(mockedRunLintChecks).toHaveBeenCalledWith({ feature: 'lint-command', json: true }, 'docs/ai'); expect(mockedUi.text).toHaveBeenCalledWith(JSON.stringify(report, null, 2)); expect(process.exitCode).toBe(0); }); diff --git a/packages/cli/src/__tests__/lib/Config.test.ts b/packages/cli/src/__tests__/lib/Config.test.ts index 8f0f951a..08ede59e 100644 --- a/packages/cli/src/__tests__/lib/Config.test.ts +++ b/packages/cli/src/__tests__/lib/Config.test.ts @@ -254,6 +254,72 @@ describe('ConfigManager', () => { }); }); + describe('getDocsDir', () => { + it('should return custom docsDir when set in config', async () => { + const config: DevKitConfig = { + version: '1.0.0', + paths: { docs: '.ai-docs' }, + environments: [], + phases: [], + createdAt: '2024-01-01T00:00:00.000Z', + updatedAt: '2024-01-01T00:00:00.000Z' + }; + + (mockFs.pathExists as any).mockResolvedValue(true); + (mockFs.readJson as any).mockResolvedValue(config); + + const result = await configManager.getDocsDir(); + + expect(result).toBe('.ai-docs'); + }); + + it('should return default docs/ai when docsDir is not set', async () => { + const config: DevKitConfig = { + version: '1.0.0', + environments: [], + phases: [], + createdAt: '2024-01-01T00:00:00.000Z', + updatedAt: '2024-01-01T00:00:00.000Z' + }; + + (mockFs.pathExists as any).mockResolvedValue(true); + (mockFs.readJson as any).mockResolvedValue(config); + + const result = await configManager.getDocsDir(); + + expect(result).toBe('docs/ai'); + }); + + it('should return default docs/ai when config does not exist', async () => { + (mockFs.pathExists as any).mockResolvedValue(false); + + const result = await configManager.getDocsDir(); + + expect(result).toBe('docs/ai'); + }); + }); + + describe('setDocsDir', () => { + it('should update docsDir in config', async () => { + const config: DevKitConfig = { + version: '1.0.0', + environments: [], + phases: [], + createdAt: '2024-01-01T00:00:00.000Z', + updatedAt: '2024-01-01T00:00:00.000Z' + }; + + (mockFs.pathExists as any).mockResolvedValue(true); + (mockFs.readJson as any).mockResolvedValue(config); + (mockFs.writeJson as any).mockResolvedValue(undefined); + + const result = await configManager.setDocsDir('.ai-docs'); + + expect(result.paths?.docs).toBe('.ai-docs'); + expect(mockFs.writeJson).toHaveBeenCalled(); + }); + }); + describe('getEnvironments', () => { it('should return environments array when config exists', async () => { const config: DevKitConfig = { diff --git a/packages/cli/src/__tests__/lib/InitTemplate.test.ts b/packages/cli/src/__tests__/lib/InitTemplate.test.ts index e6d13eab..ad39e1de 100644 --- a/packages/cli/src/__tests__/lib/InitTemplate.test.ts +++ b/packages/cli/src/__tests__/lib/InitTemplate.test.ts @@ -88,6 +88,44 @@ environments: ); }); + it('loads template with paths.docs config', async () => { + mockFs.pathExists.mockResolvedValue(true as never); + mockFs.readFile.mockResolvedValue(` +paths: + docs: .ai-docs +environments: + - claude +phases: + - requirements +` as never); + + const result = await loadInitTemplate('/tmp/init.yaml'); + + expect(result.paths?.docs).toBe('.ai-docs'); + expect(result.environments).toEqual(['claude']); + }); + + it('throws when paths.docs is empty string', async () => { + mockFs.pathExists.mockResolvedValue(true as never); + mockFs.readFile.mockResolvedValue(` +paths: + docs: " " +` as never); + + await expect(loadInitTemplate('/tmp/init.yaml')).rejects.toThrow( + '"paths.docs" must be a non-empty string' + ); + }); + + it('throws when paths is not an object', async () => { + mockFs.pathExists.mockResolvedValue(true as never); + mockFs.readFile.mockResolvedValue(JSON.stringify({ paths: 'invalid' }) as never); + + await expect(loadInitTemplate('/tmp/init.json')).rejects.toThrow( + '"paths" must be an object' + ); + }); + it('throws when unknown field exists', async () => { mockFs.pathExists.mockResolvedValue(true as never); mockFs.readFile.mockResolvedValue(` diff --git a/packages/cli/src/__tests__/lib/TemplateManager.test.ts b/packages/cli/src/__tests__/lib/TemplateManager.test.ts index fd447ba5..e3e6d325 100644 --- a/packages/cli/src/__tests__/lib/TemplateManager.test.ts +++ b/packages/cli/src/__tests__/lib/TemplateManager.test.ts @@ -14,7 +14,7 @@ describe('TemplateManager', () => { beforeEach(() => { mockFs = fs as jest.Mocked; mockGetEnvironment = require('../../util/env').getEnvironment as jest.MockedFunction; - templateManager = new TemplateManager('/test/target'); + templateManager = new TemplateManager({ targetDir: '/test/target' }); jest.clearAllMocks(); }); @@ -36,10 +36,12 @@ describe('TemplateManager', () => { (mockFs.pathExists as any).mockResolvedValueOnce(true); (mockFs.readdir as any).mockResolvedValue(['command1.md', 'command2.toml']); + (mockFs.readFile as any).mockResolvedValue('command content'); + (mockFs.writeFile as any).mockResolvedValue(undefined); const result = await (templateManager as any).setupSingleEnvironment(env); - expect(mockFs.copy).toHaveBeenCalledTimes(1); + expect(mockFs.writeFile).toHaveBeenCalledTimes(1); expect(result).toEqual([path.join(templateManager['targetDir'], env.commandPath, 'command1.md')]); }); @@ -56,6 +58,8 @@ describe('TemplateManager', () => { (mockFs.pathExists as any).mockResolvedValueOnce(true); (mockFs.readdir as any).mockResolvedValue(['command1.md']); + (mockFs.readFile as any).mockResolvedValue('command content'); + (mockFs.writeFile as any).mockResolvedValue(undefined); const result = await (templateManager as any).setupSingleEnvironment(env); @@ -79,6 +83,8 @@ describe('TemplateManager', () => { (mockFs.pathExists as any).mockResolvedValueOnce(true); // commands directory exists (mockFs.readdir as any).mockResolvedValue(mockCommandFiles); + (mockFs.readFile as any).mockResolvedValue('command content'); + (mockFs.writeFile as any).mockResolvedValue(undefined); const result = await (templateManager as any).setupSingleEnvironment(env); @@ -86,20 +92,43 @@ describe('TemplateManager', () => { path.join(templateManager['targetDir'], env.commandPath) ); - // Should only copy .md files (not .toml files) - expect(mockFs.copy).toHaveBeenCalledWith( - path.join(templateManager['templatesDir'], 'commands', 'command1.md'), - path.join(templateManager['targetDir'], env.commandPath, 'command1.md') + // Should only write .md files (not .toml files) + expect(mockFs.writeFile).toHaveBeenCalledWith( + path.join(templateManager['targetDir'], env.commandPath, 'command1.md'), + 'command content' ); - expect(mockFs.copy).toHaveBeenCalledWith( - path.join(templateManager['templatesDir'], 'commands', 'command3.md'), - path.join(templateManager['targetDir'], env.commandPath, 'command3.md') + expect(mockFs.writeFile).toHaveBeenCalledWith( + path.join(templateManager['targetDir'], env.commandPath, 'command3.md'), + 'command content' ); expect(result).toContain(path.join(templateManager['targetDir'], env.commandPath, 'command1.md')); expect(result).toContain(path.join(templateManager['targetDir'], env.commandPath, 'command3.md')); }); + it('should replace docs/ai with custom docsDir in command content', async () => { + const customManager = new TemplateManager({ targetDir: '/test/target', docsDir: '.ai-docs' }); + const env: EnvironmentDefinition = { + code: 'test-env', + name: 'Test Environment', + contextFileName: '.test-context.md', + commandPath: '.test', + isCustomCommandPath: false + }; + + (mockFs.pathExists as any).mockResolvedValueOnce(true); + (mockFs.readdir as any).mockResolvedValue(['command1.md']); + (mockFs.readFile as any).mockResolvedValue('Review {{docsDir}}/design/feature-{name}.md and {{docsDir}}/requirements/.'); + (mockFs.writeFile as any).mockResolvedValue(undefined); + + await (customManager as any).setupSingleEnvironment(env); + + expect(mockFs.writeFile).toHaveBeenCalledWith( + path.join(customManager['targetDir'], env.commandPath, 'command1.md'), + 'Review .ai-docs/design/feature-{name}.md and .ai-docs/requirements/.' + ); + }); + it('should skip commands when isCustomCommandPath is true', async () => { const env: EnvironmentDefinition = { code: 'test-env', @@ -235,6 +264,25 @@ This is the prompt content.`; ); expect(result).toBe(path.join(templateManager['targetDir'], 'docs', 'ai', phase, 'README.md')); }); + + it('should use custom docsDir when provided', async () => { + const customManager = new TemplateManager({ targetDir: '/test/target', docsDir: '.ai-docs' }); + const phase: Phase = 'design'; + + (mockFs.ensureDir as any).mockResolvedValue(undefined); + (mockFs.copy as any).mockResolvedValue(undefined); + + const result = await customManager.copyPhaseTemplate(phase); + + expect(mockFs.ensureDir).toHaveBeenCalledWith( + path.join(customManager['targetDir'], '.ai-docs', phase) + ); + expect(mockFs.copy).toHaveBeenCalledWith( + path.join(customManager['templatesDir'], 'phases', `${phase}.md`), + path.join(customManager['targetDir'], '.ai-docs', phase, 'README.md') + ); + expect(result).toBe(path.join(customManager['targetDir'], '.ai-docs', phase, 'README.md')); + }); }); describe('fileExists', () => { @@ -263,6 +311,20 @@ This is the prompt content.`; ); expect(result).toBe(false); }); + + it('should check custom docsDir path when provided', async () => { + const customManager = new TemplateManager({ targetDir: '/test/target', docsDir: 'custom/docs' }); + const phase: Phase = 'testing'; + + (mockFs.pathExists as any).mockResolvedValue(true); + + const result = await customManager.fileExists(phase); + + expect(mockFs.pathExists).toHaveBeenCalledWith( + path.join(customManager['targetDir'], 'custom/docs', phase, 'README.md') + ); + expect(result).toBe(true); + }); }); describe('setupMultipleEnvironments', () => { @@ -633,12 +695,13 @@ description: Test mockGetEnvironment.mockReturnValue(envWithGlobal); (mockFs.ensureDir as any).mockResolvedValue(undefined); (mockFs.readdir as any).mockResolvedValue(mockCommandFiles); - (mockFs.copy as any).mockResolvedValue(undefined); + (mockFs.readFile as any).mockResolvedValue('command content'); + (mockFs.writeFile as any).mockResolvedValue(undefined); const result = await templateManager.copyCommandsToGlobal('antigravity'); expect(mockFs.ensureDir).toHaveBeenCalled(); - expect(mockFs.copy).toHaveBeenCalledTimes(2); // Only .md files + expect(mockFs.writeFile).toHaveBeenCalledTimes(2); // Only .md files expect(result).toHaveLength(2); }); @@ -656,11 +719,12 @@ description: Test mockGetEnvironment.mockReturnValue(envWithGlobal); (mockFs.ensureDir as any).mockResolvedValue(undefined); (mockFs.readdir as any).mockResolvedValue(mockCommandFiles); - (mockFs.copy as any).mockResolvedValue(undefined); + (mockFs.readFile as any).mockResolvedValue('command content'); + (mockFs.writeFile as any).mockResolvedValue(undefined); const result = await templateManager.copyCommandsToGlobal('codex'); - expect(mockFs.copy).toHaveBeenCalledTimes(1); + expect(mockFs.writeFile).toHaveBeenCalledTimes(1); expect(result).toHaveLength(1); }); diff --git a/packages/cli/src/__tests__/services/install/install.service.test.ts b/packages/cli/src/__tests__/services/install/install.service.test.ts index 72291e8f..f5d9a6a2 100644 --- a/packages/cli/src/__tests__/services/install/install.service.test.ts +++ b/packages/cli/src/__tests__/services/install/install.service.test.ts @@ -6,7 +6,8 @@ const mockConfigManager: any = { read: jest.fn(), create: jest.fn(), update: jest.fn(), - addPhase: jest.fn() + addPhase: jest.fn(), + getDocsDir: jest.fn() }; const mockTemplateManager: any = { @@ -65,6 +66,7 @@ describe('install service', () => { }); mockConfigManager.update.mockResolvedValue({}); mockConfigManager.addPhase.mockResolvedValue({}); + mockConfigManager.getDocsDir.mockResolvedValue('docs/ai'); mockTemplateManager.checkEnvironmentExists.mockResolvedValue(false); mockTemplateManager.fileExists.mockResolvedValue(false); diff --git a/packages/cli/src/__tests__/services/lint/lint.test.ts b/packages/cli/src/__tests__/services/lint/lint.test.ts index 76cb2fd8..0dc15503 100644 --- a/packages/cli/src/__tests__/services/lint/lint.test.ts +++ b/packages/cli/src/__tests__/services/lint/lint.test.ts @@ -8,7 +8,7 @@ describe('lint service', () => { }); it('fails when base docs are missing', () => { - const report = runLintChecks({}, { + const report = runLintChecks({}, undefined, { cwd: () => '/repo', existsSync: () => false }); @@ -21,6 +21,7 @@ describe('lint service', () => { it('passes with warning when branch exists but no dedicated worktree', () => { const report = runLintChecks( { feature: 'feature-sample' }, + undefined, { cwd: () => '/repo', existsSync: () => true, @@ -54,6 +55,7 @@ describe('lint service', () => { it('fails when feature branch does not exist', () => { const report = runLintChecks( { feature: 'sample' }, + undefined, { cwd: () => '/repo', existsSync: () => true, @@ -82,6 +84,7 @@ describe('lint service', () => { it('reports non-git directory as required failure for feature lint', () => { const report = runLintChecks( { feature: 'sample' }, + undefined, { cwd: () => '/repo', existsSync: () => true, @@ -104,8 +107,36 @@ describe('lint service', () => { ).toBe(true); }); + it('uses custom docsDir from options', () => { + const existingPaths = new Set([ + '/repo/custom-docs/requirements/README.md', + '/repo/custom-docs/design/README.md', + '/repo/custom-docs/planning/README.md', + '/repo/custom-docs/implementation/README.md', + '/repo/custom-docs/testing/README.md', + ]); + + const report = runLintChecks({}, 'custom-docs', { + cwd: () => '/repo', + existsSync: (p: string) => existingPaths.has(p) + }); + + expect(report.exitCode).toBe(0); + expect(report.pass).toBe(true); + expect(report.checks.every(check => check.message.startsWith('custom-docs/'))).toBe(true); + }); + + it('falls back to default docs/ai when docsDir is not provided', () => { + const report = runLintChecks({}, undefined, { + cwd: () => '/repo', + existsSync: () => false + }); + + expect(report.checks.every(check => check.message.startsWith('docs/ai/'))).toBe(true); + }); + it('fails fast for invalid feature names', () => { - const report = runLintChecks({ feature: 'bad name;rm -rf /' }, { + const report = runLintChecks({ feature: 'bad name;rm -rf /' }, undefined, { cwd: () => '/repo', existsSync: () => true }); diff --git a/packages/cli/src/__tests__/services/lint/rules/base-docs.rule.lint.test.ts b/packages/cli/src/__tests__/services/lint/rules/base-docs.rule.lint.test.ts index d9268ca9..ef46c067 100644 --- a/packages/cli/src/__tests__/services/lint/rules/base-docs.rule.lint.test.ts +++ b/packages/cli/src/__tests__/services/lint/rules/base-docs.rule.lint.test.ts @@ -10,12 +10,33 @@ describe('base docs rule', () => { execFileSync: () => '' }; - const checks = runBaseDocsRules('/repo', deps); + const checks = runBaseDocsRules('/repo', 'docs/ai', deps); expect(checks).toHaveLength(5); expect(checks.every(check => check.level === 'ok')).toBe(true); }); + it('uses custom docsDir for file paths', () => { + const existingPaths = new Set([ + '/repo/.ai-docs/requirements/README.md', + '/repo/.ai-docs/design/README.md', + '/repo/.ai-docs/planning/README.md', + '/repo/.ai-docs/implementation/README.md', + '/repo/.ai-docs/testing/README.md', + ]); + const deps: LintDependencies = { + cwd: () => '/repo', + existsSync: (p: string) => existingPaths.has(p), + execFileSync: () => '' + }; + + const checks = runBaseDocsRules('/repo', '.ai-docs', deps); + + expect(checks).toHaveLength(5); + expect(checks.every(check => check.level === 'ok')).toBe(true); + expect(checks[0].message).toBe('.ai-docs/requirements/README.md'); + }); + it('returns missing checks when base docs do not exist', () => { const deps: LintDependencies = { cwd: () => '/repo', @@ -23,7 +44,7 @@ describe('base docs rule', () => { execFileSync: () => '' }; - const checks = runBaseDocsRules('/repo', deps); + const checks = runBaseDocsRules('/repo', 'docs/ai', deps); expect(checks).toHaveLength(5); expect(checks.every(check => check.level === 'miss')).toBe(true); diff --git a/packages/cli/src/__tests__/util/git.test.ts b/packages/cli/src/__tests__/util/git.test.ts index b9885125..c627f1c0 100644 --- a/packages/cli/src/__tests__/util/git.test.ts +++ b/packages/cli/src/__tests__/util/git.test.ts @@ -303,7 +303,7 @@ describe('Git Utilities', () => { await pullRepository(mockRepoPath); }); - it('should have 30 second timeout', async () => { + it('should have 60 second timeout for git pull', async () => { mockedExec.mockImplementation((command: string, options: any, callback?: any) => { expect(options.timeout).toBe(60000); if (callback) { diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 23013ed1..6ded0e2a 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -26,6 +26,7 @@ program .option('-a, --all', 'Initialize all phases') .option('-p, --phases ', 'Comma-separated list of phases to initialize') .option('-t, --template ', 'Initialize from template file (.yaml, .yml, .json)') + .option('-d, --docs-dir ', 'Custom directory for AI documentation (default: docs/ai)') .action(initCommand); program diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index 3f58c3d9..1aa3630a 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -6,7 +6,7 @@ import { EnvironmentSelector } from '../lib/EnvironmentSelector'; import { PhaseSelector } from '../lib/PhaseSelector'; import { SkillManager } from '../lib/SkillManager'; import { loadInitTemplate, InitTemplateSkill } from '../lib/InitTemplate'; -import { EnvironmentCode, PHASE_DISPLAY_NAMES, Phase } from '../types'; +import { EnvironmentCode, PHASE_DISPLAY_NAMES, Phase, DEFAULT_DOCS_DIR } from '../types'; import { isValidEnvironmentCode } from '../util/env'; import { ui } from '../util/terminal-ui'; @@ -46,6 +46,7 @@ interface InitOptions { all?: boolean; phases?: string; template?: string; + docsDir?: string; } function normalizeEnvironmentOption( @@ -208,6 +209,15 @@ export async function initCommand(options: InitOptions) { return; } + let docsDir = DEFAULT_DOCS_DIR; + if (options.docsDir?.trim()) { + docsDir = options.docsDir.trim(); + } else if (templateConfig?.paths?.docs) { + docsDir = templateConfig.paths.docs; + } + + const phaseTemplateManager = new TemplateManager({ docsDir }); + ui.text('Initializing AI DevKit...', { breakline: true }); let config = await configManager.read(); @@ -216,6 +226,10 @@ export async function initCommand(options: InitOptions) { ui.success('Created configuration file'); } + if (docsDir !== DEFAULT_DOCS_DIR) { + await configManager.update({ paths: { docs: docsDir } }); + } + await configManager.setEnvironments(selectedEnvironments); ui.success('Updated configuration with selected environments'); @@ -229,13 +243,13 @@ export async function initCommand(options: InitOptions) { } } ui.text('Setting up environment templates...', { breakline: true }); - const envFiles = await templateManager.setupMultipleEnvironments(selectedEnvironments); + const envFiles = await phaseTemplateManager.setupMultipleEnvironments(selectedEnvironments); envFiles.forEach(file => { ui.success(`Created ${file}`); }); for (const phase of selectedPhases) { - const exists = await templateManager.fileExists(phase); + const exists = await phaseTemplateManager.fileExists(phase); let shouldCopy = true; if (exists) { @@ -255,7 +269,7 @@ export async function initCommand(options: InitOptions) { } if (shouldCopy) { - await templateManager.copyPhaseTemplate(phase); + await phaseTemplateManager.copyPhaseTemplate(phase); await configManager.addPhase(phase); ui.success(`Created ${phase} phase`); } else { @@ -288,7 +302,7 @@ export async function initCommand(options: InitOptions) { ui.text('AI DevKit initialized successfully!', { breakline: true }); ui.info('Next steps:'); - ui.text(' • Review and customize templates in docs/ai/'); + ui.text(` • Review and customize templates in ${docsDir}/`); ui.text(' • Your AI environments are ready to use with the generated configurations'); ui.text(' • Run `ai-devkit phase ` to add more phases later'); ui.text(' • Run `ai-devkit init` again to add more environments\n'); diff --git a/packages/cli/src/commands/lint.ts b/packages/cli/src/commands/lint.ts index be38ede9..e3d36f30 100644 --- a/packages/cli/src/commands/lint.ts +++ b/packages/cli/src/commands/lint.ts @@ -1,9 +1,12 @@ +import { ConfigManager } from '../lib/Config'; import { ui } from '../util/terminal-ui'; import { LINT_STATUS_LABEL } from '../services/lint/constants'; import { LintCheckResult, LintOptions, LintReport, runLintChecks } from '../services/lint/lint.service'; export async function lintCommand(options: LintOptions): Promise { - const report = runLintChecks(options); + const configManager = new ConfigManager(); + const docsDir = await configManager.getDocsDir(); + const report = runLintChecks(options, docsDir); renderLintReport(report, options); process.exitCode = report.exitCode; } diff --git a/packages/cli/src/commands/phase.ts b/packages/cli/src/commands/phase.ts index 7ada43a5..c7db4b3b 100644 --- a/packages/cli/src/commands/phase.ts +++ b/packages/cli/src/commands/phase.ts @@ -6,7 +6,8 @@ import { ui } from '../util/terminal-ui'; export async function phaseCommand(phaseName?: string) { const configManager = new ConfigManager(); - const templateManager = new TemplateManager(); + const docsDir = await configManager.getDocsDir(); + const templateManager = new TemplateManager({ docsDir }); if (!(await configManager.exists())) { ui.error('AI DevKit not initialized. Run `ai-devkit init` first.'); diff --git a/packages/cli/src/lib/Config.ts b/packages/cli/src/lib/Config.ts index 8cbc2a43..8bf8b9b3 100644 --- a/packages/cli/src/lib/Config.ts +++ b/packages/cli/src/lib/Config.ts @@ -1,6 +1,6 @@ import * as fs from 'fs-extra'; import * as path from 'path'; -import { DevKitConfig, Phase, EnvironmentCode, ConfigSkill } from '../types'; +import { DevKitConfig, Phase, EnvironmentCode, ConfigSkill, DEFAULT_DOCS_DIR } from '../types'; import packageJson from '../../package.json'; const CONFIG_FILE_NAME = '.ai-devkit.json'; @@ -80,6 +80,19 @@ export class ConfigManager { return Array.isArray(config.phases) && config.phases.includes(phase); } + async getDocsDir(): Promise { + const config = await this.read(); + return config?.paths?.docs || DEFAULT_DOCS_DIR; + } + + async setDocsDir(docsDir: string): Promise { + const config = await this.read(); + if (!config) { + throw new Error('Config file not found. Run ai-devkit init first.'); + } + return this.update({ paths: { ...config.paths, docs: docsDir } }); + } + async getEnvironments(): Promise { const config = await this.read(); return config?.environments || []; diff --git a/packages/cli/src/lib/InitTemplate.ts b/packages/cli/src/lib/InitTemplate.ts index df3d5f59..7f148a4d 100644 --- a/packages/cli/src/lib/InitTemplate.ts +++ b/packages/cli/src/lib/InitTemplate.ts @@ -11,12 +11,15 @@ export interface InitTemplateSkill { export interface InitTemplateConfig { version?: number | string; + paths?: { + docs?: string; + }; environments?: EnvironmentCode[]; phases?: Phase[]; skills?: InitTemplateSkill[]; } -const ALLOWED_TEMPLATE_FIELDS = new Set(['version', 'environments', 'phases', 'skills']); +const ALLOWED_TEMPLATE_FIELDS = new Set(['version', 'paths', 'environments', 'phases', 'skills']); function validationError(templatePath: string, message: string): Error { return new Error(`Invalid template at ${templatePath}: ${message}`); @@ -81,6 +84,19 @@ function validateTemplate(raw: unknown, resolvedPath: string): InitTemplateConfi result.version = candidate.version; } + if (candidate.paths !== undefined) { + if (typeof candidate.paths !== 'object' || candidate.paths === null || Array.isArray(candidate.paths)) { + throw validationError(resolvedPath, '"paths" must be an object'); + } + const paths = candidate.paths as Record; + if (paths.docs !== undefined) { + if (typeof paths.docs !== 'string' || paths.docs.trim().length === 0) { + throw validationError(resolvedPath, '"paths.docs" must be a non-empty string'); + } + result.paths = { docs: paths.docs.trim() }; + } + } + if (candidate.environments !== undefined) { if (!Array.isArray(candidate.environments)) { throw validationError(resolvedPath, '"environments" must be an array of environment codes'); diff --git a/packages/cli/src/lib/SkillManager.ts b/packages/cli/src/lib/SkillManager.ts index e58a2150..1c4e5365 100644 --- a/packages/cli/src/lib/SkillManager.ts +++ b/packages/cli/src/lib/SkillManager.ts @@ -316,16 +316,15 @@ export class SkillManager { const results: UpdateResult[] = []; for (const registry of registries) { - const spinner = ui.spinner(`Updating ${registry.id}...`); - spinner.start(); + ui.info(`Updating ${registry.id}...`); const result = await this.updateRegistry(registry.path, registry.id); results.push(result); if (result.status === 'success') { - spinner.succeed(`${registry.id} updated`); + ui.success(`${registry.id} updated`); } else if (result.status === 'skipped') { - spinner.warn(`${registry.id} skipped (${result.message})`); + ui.warning(`${registry.id} skipped (${result.message})`); } else { - spinner.fail(`${registry.id} failed`); + ui.error(`${registry.id} failed`); } } @@ -413,10 +412,9 @@ export class SkillManager { if (await fs.pathExists(repoPath)) { if (await isGitRepository(repoPath)) { - const spinner = ui.spinner(`Updating cached repository ${registryId}...`); - spinner.start(); + ui.info(`Updating cached repository ${registryId}...`); await pullRepository(repoPath); - spinner.succeed(`Cached repository ${registryId} updated`); + ui.success(`Cached repository ${registryId} updated`); } else { ui.warning(`Cached registry ${registryId} is not a git repository, using as-is.`); } @@ -428,12 +426,11 @@ export class SkillManager { throw new Error(`Registry "${registryId}" is not cached and has no configured URL.`); } - const spinner = ui.spinner(`Cloning ${registryId} (this may take a moment)...`); - spinner.start(); + ui.info(`Cloning ${registryId} (this may take a moment)...`); await fs.ensureDir(path.dirname(repoPath)); const result = await cloneRepository(SKILL_CACHE_DIR, registryId, gitUrl); - spinner.succeed(`${registryId} cloned successfully`); + ui.success(`${registryId} cloned successfully`); return result; } diff --git a/packages/cli/src/lib/TemplateManager.ts b/packages/cli/src/lib/TemplateManager.ts index 0e16809a..8bedb812 100644 --- a/packages/cli/src/lib/TemplateManager.ts +++ b/packages/cli/src/lib/TemplateManager.ts @@ -2,21 +2,28 @@ import * as fs from "fs-extra"; import * as path from "path"; import * as os from "os"; import matter from "gray-matter"; -import { Phase, EnvironmentCode, EnvironmentDefinition } from "../types"; +import { Phase, EnvironmentCode, EnvironmentDefinition, DEFAULT_DOCS_DIR } from "../types"; import { getEnvironment } from "../util/env"; +export interface TemplateManagerOptions { + targetDir?: string; + docsDir?: string; +} + export class TemplateManager { private templatesDir: string; private targetDir: string; + private docsDir: string; - constructor(targetDir: string = process.cwd()) { + constructor(options: TemplateManagerOptions = {}) { this.templatesDir = path.join(__dirname, "../../templates"); - this.targetDir = targetDir; + this.targetDir = options.targetDir ?? process.cwd(); + this.docsDir = options.docsDir ?? DEFAULT_DOCS_DIR; } async copyPhaseTemplate(phase: Phase): Promise { const sourceFile = path.join(this.templatesDir, "phases", `${phase}.md`); - const targetDir = path.join(this.targetDir, "docs", "ai", phase); + const targetDir = path.join(this.targetDir, this.docsDir, phase); const targetFile = path.join(targetDir, "README.md"); await fs.ensureDir(targetDir); @@ -28,8 +35,7 @@ export class TemplateManager { async fileExists(phase: Phase): Promise { const targetFile = path.join( this.targetDir, - "docs", - "ai", + this.docsDir, phase, "README.md" ); @@ -118,9 +124,14 @@ export class TemplateManager { .filter((file: string) => file.endsWith(".md")) .map(async (file: string) => { const targetFile = file.replace('.md', commandExtension); - await fs.copy( + const content = await fs.readFile( path.join(commandsSourceDir, file), - path.join(commandsTargetDir, targetFile) + "utf-8" + ); + const replaced = this.replaceDocsDir(content); + await fs.writeFile( + path.join(commandsTargetDir, targetFile), + replaced ); copiedFiles.push(path.join(commandsTargetDir, targetFile)); }) @@ -167,7 +178,8 @@ export class TemplateManager { path.join(this.templatesDir, "commands", file), "utf-8" ); - const { data, content } = matter(mdContent); + const replaced = this.replaceDocsDir(mdContent); + const { data, content } = matter(replaced); const description = (data.description as string) || ""; const tomlContent = this.generateTomlContent(description, content.trim()); const tomlFile = file.replace(".md", ".toml"); @@ -196,6 +208,10 @@ prompt='''${escapedPrompt}''' `; } + private replaceDocsDir(content: string): string { + return content.split('{{docsDir}}').join(this.docsDir); + } + /** * Copy command templates to the global folder for a specific environment. * Global folders are located in the user's home directory. @@ -220,8 +236,10 @@ prompt='''${escapedPrompt}''' const sourceFile = path.join(commandsSourceDir, file); const targetFile = path.join(globalTargetDir, file); + const content = await fs.readFile(sourceFile, "utf-8"); + const replaced = this.replaceDocsDir(content); - await fs.copy(sourceFile, targetFile); + await fs.writeFile(targetFile, replaced); copiedFiles.push(targetFile); } } catch (error) { diff --git a/packages/cli/src/services/install/install.service.ts b/packages/cli/src/services/install/install.service.ts index d8a410db..ffc4f6f8 100644 --- a/packages/cli/src/services/install/install.service.ts +++ b/packages/cli/src/services/install/install.service.ts @@ -27,7 +27,8 @@ export async function reconcileAndInstall( options: InstallRunOptions = {} ): Promise { const configManager = new ConfigManager(); - const templateManager = new TemplateManager(); + const docsDir = await configManager.getDocsDir(); + const templateManager = new TemplateManager({ docsDir }); const skillManager = new SkillManager(configManager, new EnvironmentSelector()); const report: InstallReport = { diff --git a/packages/cli/src/services/lint/constants.ts b/packages/cli/src/services/lint/constants.ts index 5e4006cd..35c0aaf3 100644 --- a/packages/cli/src/services/lint/constants.ts +++ b/packages/cli/src/services/lint/constants.ts @@ -1,4 +1,3 @@ -export const DOCS_DIR = 'docs/ai'; export const LIFECYCLE_PHASES = ['requirements', 'design', 'planning', 'implementation', 'testing'] as const; export const FEATURE_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/; diff --git a/packages/cli/src/services/lint/lint.service.ts b/packages/cli/src/services/lint/lint.service.ts index c30bb8f0..beb71d14 100644 --- a/packages/cli/src/services/lint/lint.service.ts +++ b/packages/cli/src/services/lint/lint.service.ts @@ -1,5 +1,6 @@ import * as fs from 'fs'; import { execFileSync } from 'child_process'; +import { DEFAULT_DOCS_DIR } from '../../types'; import { LINT_LEVEL } from './constants'; import { runBaseDocsRules } from './rules/base-docs.rule'; import { runFeatureDocsRules } from './rules/feature-docs.rule'; @@ -19,6 +20,7 @@ export type { LintOptions, LintLevel, LintCheckResult, LintReport, LintDependenc export function runLintChecks( options: LintOptions, + docsDir: string = DEFAULT_DOCS_DIR, dependencies: Partial = {} ): LintReport { const deps: LintDependencies = { @@ -29,17 +31,18 @@ export function runLintChecks( const cwd = deps.cwd(); const checks: LintCheckResult[] = []; - checks.push(...runBaseDocsRules(cwd, deps)); + checks.push(...runBaseDocsRules(cwd, docsDir, deps)); if (!options.feature) { return finalizeReport(cwd, checks); } - return runFeatureChecks(cwd, checks, options.feature, deps); + return runFeatureChecks(cwd, docsDir, checks, options.feature, deps); } function runFeatureChecks( cwd: string, + docsDir: string, checks: LintCheckResult[], rawFeature: string, deps: LintDependencies @@ -50,7 +53,7 @@ function runFeatureChecks( return finalizeReport(cwd, checks, featureValidation.target); } - checks.push(...runFeatureDocsRules(cwd, featureValidation.target.normalizedName, deps)); + checks.push(...runFeatureDocsRules(cwd, docsDir, featureValidation.target.normalizedName, deps)); checks.push(...runGitWorktreeRules(cwd, featureValidation.target.branchName, deps)); return finalizeReport(cwd, checks, featureValidation.target); diff --git a/packages/cli/src/services/lint/rules/base-docs.rule.ts b/packages/cli/src/services/lint/rules/base-docs.rule.ts index d8a9657c..531194e4 100644 --- a/packages/cli/src/services/lint/rules/base-docs.rule.ts +++ b/packages/cli/src/services/lint/rules/base-docs.rule.ts @@ -1,14 +1,14 @@ -import { DOCS_DIR, LIFECYCLE_PHASES } from '../constants'; +import { LIFECYCLE_PHASES } from '../constants'; import { LintCheckResult, LintDependencies } from '../types'; import { runPhaseDocRules } from './phase-docs.rule'; -export function runBaseDocsRules(cwd: string, deps: LintDependencies): LintCheckResult[] { +export function runBaseDocsRules(cwd: string, docsDir: string, deps: LintDependencies): LintCheckResult[] { return runPhaseDocRules({ cwd, phases: LIFECYCLE_PHASES, idPrefix: 'base', category: 'base-docs', - filePathForPhase: (phase: string) => `${DOCS_DIR}/${phase}/README.md`, + filePathForPhase: (phase: string) => `${docsDir}/${phase}/README.md`, missingFix: 'Run: npx ai-devkit@latest init', deps }); diff --git a/packages/cli/src/services/lint/rules/feature-docs.rule.ts b/packages/cli/src/services/lint/rules/feature-docs.rule.ts index 01aead61..414bc83b 100644 --- a/packages/cli/src/services/lint/rules/feature-docs.rule.ts +++ b/packages/cli/src/services/lint/rules/feature-docs.rule.ts @@ -1,9 +1,10 @@ -import { DOCS_DIR, LIFECYCLE_PHASES } from '../constants'; +import { LIFECYCLE_PHASES } from '../constants'; import { LintCheckResult, LintDependencies } from '../types'; import { runPhaseDocRules } from './phase-docs.rule'; export function runFeatureDocsRules( cwd: string, + docsDir: string, normalizedName: string, deps: LintDependencies ): LintCheckResult[] { @@ -12,7 +13,7 @@ export function runFeatureDocsRules( phases: LIFECYCLE_PHASES, idPrefix: 'feature-doc', category: 'feature-docs', - filePathForPhase: (phase: string) => `${DOCS_DIR}/${phase}/feature-${normalizedName}.md`, + filePathForPhase: (phase: string) => `${docsDir}/${phase}/feature-${normalizedName}.md`, deps }); } diff --git a/packages/cli/src/types.ts b/packages/cli/src/types.ts index 7ef25fda..107e67a5 100644 --- a/packages/cli/src/types.ts +++ b/packages/cli/src/types.ts @@ -21,8 +21,13 @@ export interface EnvironmentDefinition { export type EnvironmentCode = 'cursor' | 'claude' | 'github' | 'gemini' | 'codex' | 'windsurf' | 'kilocode' | 'amp' | 'opencode' | 'roo' | 'antigravity'; +export const DEFAULT_DOCS_DIR = 'docs/ai'; + export interface DevKitConfig { version: string; + paths?: { + docs?: string; + }; environments: EnvironmentCode[]; phases: Phase[]; skills?: ConfigSkill[]; diff --git a/packages/cli/src/util/config.ts b/packages/cli/src/util/config.ts index aebd5a41..7b64a2f2 100644 --- a/packages/cli/src/util/config.ts +++ b/packages/cli/src/util/config.ts @@ -30,6 +30,9 @@ const skillEntrySchema = z.object({ }); const installConfigSchema = z.object({ + paths: z.object({ + docs: z.string().trim().min(1).optional() + }).optional(), environments: z.array(z.string()).optional().default([]).superRefine((values, ctx) => { values.forEach((value, index) => { if (!isValidEnvironmentCode(value)) { diff --git a/packages/cli/templates/commands/capture-knowledge.md b/packages/cli/templates/commands/capture-knowledge.md index 07e332b1..95b03bf4 100644 --- a/packages/cli/templates/commands/capture-knowledge.md +++ b/packages/cli/templates/commands/capture-knowledge.md @@ -9,6 +9,6 @@ Guide me through creating a structured understanding of a code entry point and s 3. **Collect Source Context** — Read the primary file/module and summarize purpose, exports, key patterns. For folders: list structure, highlight key modules. For functions/APIs: capture signature, parameters, return values, error handling. Extract essential snippets (avoid large dumps). 4. **Analyze Dependencies** — Build a dependency view up to depth 3, tracking visited nodes to avoid loops. Categorize: imports, function calls, services, external packages. Note external systems or generated code to exclude. 5. **Synthesize Explanation** — Draft overview (purpose, language, high-level behavior). Detail core logic, execution flow, key patterns. Highlight error handling, performance, security considerations. Identify potential improvements or risks. -6. **Create Documentation** — Normalize name to kebab-case (`calculateTotalPrice` → `calculate-total-price`). Create `docs/ai/implementation/knowledge-{name}.md` with sections: Overview, Implementation Details, Dependencies, Visual Diagrams, Additional Insights, Metadata, Next Steps. Include mermaid diagrams when they clarify flows or relationships. Add metadata (analysis date, depth, files touched). +6. **Create Documentation** — Normalize name to kebab-case (`calculateTotalPrice` → `calculate-total-price`). Create `{{docsDir}}/implementation/knowledge-{name}.md` with sections: Overview, Implementation Details, Dependencies, Visual Diagrams, Additional Insights, Metadata, Next Steps. Include mermaid diagrams when they clarify flows or relationships. Add metadata (analysis date, depth, files touched). 7. **Store Reusable Knowledge** — If insights should persist across sessions, store them using `npx ai-devkit@latest memory store ...`. 8. **Review & Next Actions** — Summarize key insights and open questions. Suggest related areas for deeper dives, confirm file path, and suggest `/remember` for key long-lived rules. diff --git a/packages/cli/templates/commands/check-implementation.md b/packages/cli/templates/commands/check-implementation.md index 144e9f48..c759a8a3 100644 --- a/packages/cli/templates/commands/check-implementation.md +++ b/packages/cli/templates/commands/check-implementation.md @@ -2,7 +2,7 @@ description: Compare implementation with design and requirements docs to ensure alignment. --- -Compare the current implementation with the design in `docs/ai/design/` and requirements in `docs/ai/requirements/`. +Compare the current implementation with the design in `{{docsDir}}/design/` and requirements in `{{docsDir}}/requirements/`. 1. If not already provided, ask for: feature/branch description, list of modified files, relevant design doc(s), and any known constraints or assumptions. 2. **Use Memory for Context** — Search memory for known constraints and prior decisions before assessing mismatches: `npx ai-devkit@latest memory search --query ""`. diff --git a/packages/cli/templates/commands/code-review.md b/packages/cli/templates/commands/code-review.md index 13d73611..b78f6f75 100644 --- a/packages/cli/templates/commands/code-review.md +++ b/packages/cli/templates/commands/code-review.md @@ -4,7 +4,7 @@ description: Pre-push code review against design docs. Perform a local code review **before** pushing changes. -1. **Gather Context** — If not already provided, ask for: feature/branch description, list of modified files, relevant design doc(s) (e.g., `docs/ai/design/feature-{name}.md`), known constraints or risky areas, and which tests have been run. Also review the latest diff via `git status` and `git diff --stat`. +1. **Gather Context** — If not already provided, ask for: feature/branch description, list of modified files, relevant design doc(s) (e.g., `{{docsDir}}/design/feature-{name}.md`), known constraints or risky areas, and which tests have been run. Also review the latest diff via `git status` and `git diff --stat`. 2. **Use Memory for Context** — Search memory for project review standards and recurring pitfalls: `npx ai-devkit@latest memory search --query "code review checklist project conventions"`. 3. **Understand Design Alignment** — For each design doc, summarize architectural intent and critical constraints. 4. **File-by-File Review** — For every modified file: check alignment with design/requirements and flag deviations, spot logic issues/edge cases/redundant code, flag security concerns (input validation, secrets, auth, data handling), check error handling/performance/observability, and identify missing or outdated tests. diff --git a/packages/cli/templates/commands/execute-plan.md b/packages/cli/templates/commands/execute-plan.md index 4eede563..a9fd1d29 100644 --- a/packages/cli/templates/commands/execute-plan.md +++ b/packages/cli/templates/commands/execute-plan.md @@ -4,11 +4,11 @@ description: Execute a feature plan task by task. Help me work through a feature plan one task at a time. -1. **Gather Context** — If not already provided, ask for: feature name (kebab-case, e.g., `user-authentication`), brief feature/branch description, planning doc path (default `docs/ai/planning/feature-{name}.md`), and any supporting docs (design, requirements, implementation). +1. **Gather Context** — If not already provided, ask for: feature name (kebab-case, e.g., `user-authentication`), brief feature/branch description, planning doc path (default `{{docsDir}}/planning/feature-{name}.md`), and any supporting docs (design, requirements, implementation). 2. **Use Memory for Context** — Search for prior implementation notes/patterns before starting: `npx ai-devkit@latest memory search --query ""`. 3. **Load & Present Plan** — Read the planning doc and parse task lists (headings + checkboxes). Present an ordered task queue grouped by section, with status: `todo`, `in-progress`, `done`, `blocked`. 4. **Interactive Task Execution** — For each task in order: display context and full bullet text, reference relevant design/requirements docs, offer to outline sub-steps before starting, prompt for status update (`done`, `in-progress`, `blocked`, `skipped`) with short notes after work, and if blocked record blocker and move to a "Blocked" list. -5. **Update Planning Doc** — After each completed or status-changed task, run `/update-planning` to keep `docs/ai/planning/feature-{name}.md` accurate. +5. **Update Planning Doc** — After each completed or status-changed task, run `/update-planning` to keep `{{docsDir}}/planning/feature-{name}.md` accurate. 6. **Store Reusable Knowledge** — Save reusable implementation guidance/decisions with `npx ai-devkit@latest memory store ...`. 7. **Session Summary** — Produce a summary: Completed, In Progress (with next steps), Blocked (with blockers), Skipped/Deferred, and New Tasks. 8. **Next Command Guidance** — Continue `/execute-plan` until plan completion; then run `/check-implementation`. diff --git a/packages/cli/templates/commands/new-requirement.md b/packages/cli/templates/commands/new-requirement.md index 4ef4da4b..ab58c1ed 100644 --- a/packages/cli/templates/commands/new-requirement.md +++ b/packages/cli/templates/commands/new-requirement.md @@ -7,13 +7,13 @@ Guide me through adding a new feature, from requirements documentation to implem 1. **Capture Requirement** — If not already provided, ask for: feature name (kebab-case, e.g., `user-authentication`), what problem it solves and who will use it, and key user stories. 2. **Use Memory for Context** — Before asking repetitive clarification questions, search memory for related decisions or conventions via `npx ai-devkit@latest memory search --query ""` and reuse relevant context. 3. **Create Feature Documentation Structure** — Copy each template's content (preserving YAML frontmatter and section headings) into feature-specific files: - - `docs/ai/requirements/README.md` → `docs/ai/requirements/feature-{name}.md` - - `docs/ai/design/README.md` → `docs/ai/design/feature-{name}.md` - - `docs/ai/planning/README.md` → `docs/ai/planning/feature-{name}.md` - - `docs/ai/implementation/README.md` → `docs/ai/implementation/feature-{name}.md` - - `docs/ai/testing/README.md` → `docs/ai/testing/feature-{name}.md` -4. **Requirements Phase** — Fill out `docs/ai/requirements/feature-{name}.md`: problem statement, goals/non-goals, user stories, success criteria, constraints, open questions. -5. **Design Phase** — Fill out `docs/ai/design/feature-{name}.md`: architecture changes, data models, API/interfaces, components, design decisions, security and performance considerations. -6. **Planning Phase** — Fill out `docs/ai/planning/feature-{name}.md`: task breakdown with subtasks, dependencies, effort estimates, implementation order, risks. + - `{{docsDir}}/requirements/README.md` → `{{docsDir}}/requirements/feature-{name}.md` + - `{{docsDir}}/design/README.md` → `{{docsDir}}/design/feature-{name}.md` + - `{{docsDir}}/planning/README.md` → `{{docsDir}}/planning/feature-{name}.md` + - `{{docsDir}}/implementation/README.md` → `{{docsDir}}/implementation/feature-{name}.md` + - `{{docsDir}}/testing/README.md` → `{{docsDir}}/testing/feature-{name}.md` +4. **Requirements Phase** — Fill out `{{docsDir}}/requirements/feature-{name}.md`: problem statement, goals/non-goals, user stories, success criteria, constraints, open questions. +5. **Design Phase** — Fill out `{{docsDir}}/design/feature-{name}.md`: architecture changes, data models, API/interfaces, components, design decisions, security and performance considerations. +6. **Planning Phase** — Fill out `{{docsDir}}/planning/feature-{name}.md`: task breakdown with subtasks, dependencies, effort estimates, implementation order, risks. 7. **Store Reusable Knowledge** — When important conventions or decisions are finalized, store them via `npx ai-devkit@latest memory store --title "" --content "<knowledge>" --tags "<tags>"`. 8. **Next Command Guidance** — Run `/review-requirements` first, then `/review-design`. If both pass, continue with `/execute-plan`. diff --git a/packages/cli/templates/commands/review-design.md b/packages/cli/templates/commands/review-design.md index ea55cc56..db8f3111 100644 --- a/packages/cli/templates/commands/review-design.md +++ b/packages/cli/templates/commands/review-design.md @@ -2,7 +2,7 @@ description: Review feature design for completeness. --- -Review the design documentation in `docs/ai/design/feature-{name}.md` (and the project-level README if relevant). +Review the design documentation in `{{docsDir}}/design/feature-{name}.md` (and the project-level README if relevant). 1. **Use Memory for Context** — Search memory for prior architecture constraints/patterns: `npx ai-devkit@latest memory search --query "<feature design architecture>"`. 2. Summarize: diff --git a/packages/cli/templates/commands/review-requirements.md b/packages/cli/templates/commands/review-requirements.md index 36e84e79..ed3bde1a 100644 --- a/packages/cli/templates/commands/review-requirements.md +++ b/packages/cli/templates/commands/review-requirements.md @@ -2,7 +2,7 @@ description: Review feature requirements for completeness. --- -Review `docs/ai/requirements/feature-{name}.md` and the project-level template `docs/ai/requirements/README.md` to ensure structure and content alignment. +Review `{{docsDir}}/requirements/feature-{name}.md` and the project-level template `{{docsDir}}/requirements/README.md` to ensure structure and content alignment. 1. **Use Memory for Context** — Search memory for related requirements/domain decisions before starting: `npx ai-devkit@latest memory search --query "<feature requirements>"`. 2. Summarize: diff --git a/packages/cli/templates/commands/update-planning.md b/packages/cli/templates/commands/update-planning.md index 2f678671..0789fa2f 100644 --- a/packages/cli/templates/commands/update-planning.md +++ b/packages/cli/templates/commands/update-planning.md @@ -4,7 +4,7 @@ description: Update planning docs to reflect implementation progress. Help me reconcile current implementation progress with the planning documentation. -1. **Gather Context** — If not already provided, ask for: feature/branch name and brief status, tasks completed since last update, new tasks discovered, current blockers or risks, and planning doc path (default `docs/ai/planning/feature-{name}.md`). +1. **Gather Context** — If not already provided, ask for: feature/branch name and brief status, tasks completed since last update, new tasks discovered, current blockers or risks, and planning doc path (default `{{docsDir}}/planning/feature-{name}.md`). 2. **Use Memory for Context** — Search memory for prior decisions that affect priorities/scope: `npx ai-devkit@latest memory search --query "<feature planning updates>"`. 3. **Review & Reconcile** — Summarize existing milestones, task breakdowns, and dependencies from the planning doc. For each planned task: mark status (done / in progress / blocked / not started), note scope changes, record blockers, identify skipped or added tasks. 4. **Produce Updated Task List** — Generate an updated checklist grouped by: Done, In Progress, Blocked, Newly Discovered Work — with short notes per task. diff --git a/packages/cli/templates/commands/writing-test.md b/packages/cli/templates/commands/writing-test.md index d6ba6d2e..24bdc2eb 100644 --- a/packages/cli/templates/commands/writing-test.md +++ b/packages/cli/templates/commands/writing-test.md @@ -2,14 +2,14 @@ description: Add tests for a new feature. --- -Review `docs/ai/testing/feature-{name}.md` and ensure it mirrors the base template before writing tests. +Review `{{docsDir}}/testing/feature-{name}.md` and ensure it mirrors the base template before writing tests. 1. **Gather Context** — If not already provided, ask for: feature name/branch, summary of changes (link to design & requirements docs), target environment, existing test suites, and any flaky/slow tests to avoid. 2. **Use Memory for Context** — Search memory for existing testing patterns and prior edge cases: `npx ai-devkit@latest memory search --query "<feature testing strategy>"`. -3. **Analyze Testing Template** — Identify required sections from `docs/ai/testing/feature-{name}.md`. Confirm success criteria and edge cases from requirements & design docs. Note available mocks/stubs/fixtures. +3. **Analyze Testing Template** — Identify required sections from `{{docsDir}}/testing/feature-{name}.md`. Confirm success criteria and edge cases from requirements & design docs. Note available mocks/stubs/fixtures. 4. **Unit Tests (aim for 100% coverage)** — For each module/function: list behavior scenarios (happy path, edge cases, error handling), generate test cases with assertions using existing utilities/mocks, and highlight missing branches preventing full coverage. 5. **Integration Tests** — Identify critical cross-component flows. Define setup/teardown steps and test cases for interaction boundaries, data contracts, and failure modes. 6. **Coverage Strategy** — Recommend coverage tooling commands. Call out files/functions still needing coverage and suggest additional tests if <100%. 7. **Store Reusable Knowledge** — Save reusable testing patterns or tricky fixtures with `npx ai-devkit@latest memory store ...`. -8. **Update Documentation** — Summarize tests added or still missing. Update `docs/ai/testing/feature-{name}.md` with links to test files and results. Flag deferred tests as follow-up tasks. +8. **Update Documentation** — Summarize tests added or still missing. Update `{{docsDir}}/testing/feature-{name}.md` with links to test files and results. Flag deferred tests as follow-up tasks. 9. **Next Command Guidance** — If tests expose design issues, return to `/review-design`; otherwise continue to `/code-review`. diff --git a/packages/memory/package.json b/packages/memory/package.json index 560760e2..75aeb8f6 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -59,7 +59,7 @@ "typescript": "^5.4.5" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.20.0" }, "files": [ "dist", diff --git a/skills/index.json b/skills/index.json index 3379d443..423172e3 100644 --- a/skills/index.json +++ b/skills/index.json @@ -1,76 +1,77 @@ { "meta": { "version": 1, - "createdAt": 1772928423220, - "updatedAt": 1772928423220, + "createdAt": 1773533425938, + "updatedAt": 1773533425938, "registryHeads": { "anthropics/skills": "b0cbd3df1533b396d281a6886d5132f623393a9c", - "vercel-labs/agent-skills": "64bee5b7ea30702448e2aed774eb361914029944", + "vercel-labs/agent-skills": "5847a7c7e79bab3e400cf47800b83449d7aea2d4", "remotion-dev/skills": "937ffb32b148fdceef4b4184f975a708aab8d560", "supabase/agent-skills": "760460c221d30d0db904ff28e8fa52af85672255", - "obra/superpowers": "e4a2375cb705ca5800f0833528ce36a3faf9017a", + "obra/superpowers": "363923f74aa9cd7b470c0aaa73dee629a8bfdc90", "softaworks/agent-toolkit": "3027f20f3181758385a1bb8c022d4041dfb4de84", - "codeaholicguy/ai-devkit": "d9a55fc0b19c200afe02a5f6c854771ec264fd9e", - "antfu/skills": "3fb90f01f5298b00de0a2500aab1ddd1357e6eb2", - "browser-use/browser-use": "2344df3fac642b9cc94e17be0c81a762c2557b55", - "microsoft/agent-skills": "e27a68881a3b8bb906cc5ef00877a9a80f521bf6", - "vercel-labs/skills": "7022ad39948c10024e451a56baba6fee62477df5", - "vercel-labs/agent-browser": "d9387aae58fbc778b5cacc43ba3d07256f0f9d07", - "coreyhaines31/marketingskills": "2f5db8d95cff07fcc67d6f2be7fb0a677bf897e6", + "codeaholicguy/ai-devkit": "a20fdad6177991007a8374d098951731a427fabd", + "antfu/skills": "a42879a5e99272b16296ea7d7592aaccb00ee464", + "browser-use/browser-use": "6e2add1c8139b17b01a549eea944687486724fda", + "microsoft/agent-skills": "34dddbd53c2226379c6da1dac1e05223554a821e", + "vercel-labs/skills": "c9fb03ec0c7b4f864163b6e3abdfe961cb15928f", + "vercel-labs/agent-browser": "5f8e993602e8eee48b69c1f33f9cfb69fa98ed2e", + "coreyhaines31/marketingskills": "9d4d29a795113c492b22e01c9b48a8396e140b8d", "callstackincubator/agent-skills": "c186e3e2cfd18bb950114be7469146a1ca78fa92", "hyf0/vue-skills": "f3dd1bf4d3ac78331bdc903e4519d561c538ca6a", "napoleond/clawdirect": "b645ffdd610571af6dd0dd4911cb905c57b1091a", - "vercel/ai": "a921fbb381cf2d19ef75ae27906f8d1cb0b8325b", - "subsy/ralph-tui": "4477972cc6959c8e396536cf2dc05818e3c25e05", + "vercel/ai": "8b1e7ad43c03a75e5d4b81ef5caef8acba342580", + "subsy/ralph-tui": "fcea670a2e811f5ccf2e3987fd710fb6b692c9a2", "atxp-dev/cli": "cc9c69861fb3cbbe21d459243273adeb37a53fc1", - "giuseppe-trisciuoglio/developer-kit": "4bf1eae4346a664a9b4f0a6470eb55b0ced5e993", - "vercel/turborepo": "8353fd8d5ff6fef7c701cb58eb0a597ba54065f1", - "jimliu/baoyu-skills": "f6cef6bcbb2e5b2cb015afee4e4fa8503d437d1d", - "google-labs-code/stitch-skills": "a92f689a7f942cc1c061bb46a8bc8904f80c1aee", - "jezweb/claude-skills": "e84244872710ce1a91ec20f4df56f443bd780c04", - "firecrawl/cli": "ad0970df1dd89731814ffa22e3b2dab8bd33f0d6", + "giuseppe-trisciuoglio/developer-kit": "810297c13b57c9d3fa31b76ce5518dc567b67b7b", + "vercel/turborepo": "7a200000aafdc560a52b74a7db8b0a2aff9e2556", + "jimliu/baoyu-skills": "4d2b95d1d1da32912a5173ba82dc30d7073db166", + "google-labs-code/stitch-skills": "ad0b5cc5d5c3569e12a3105b0dee7409c3227e1b", + "jezweb/claude-skills": "cfad81649a24e8cee5157e57e361b9c0b397295d", + "firecrawl/cli": "5c2ba51efd04c26310502491920566030f64a64c", "vercel-labs/next-skills": "038954e07bfc313e97fa5f6ff7caf87226e4a782", - "inference-sh/skills": "7c8178ebddc379c571bf2c0262963747128e9425", + "inference-sh/skills": "8eb8c8a06ded80c7092bfe8c1101264e549043f5", "intellectronica/agent-skills": "9f7f750cdb158316fb57fcce755f7530fe1118e2", - "resend/react-email": "c9f4e84553972cc7bf1f36663cc5819815250a0a", - "onmax/nuxt-skills": "7c2808158af44c0e31d00d1d303be776b68e46c7", + "resend/react-email": "ded81d583c45c7a4d803c4388ab279a3e92347b6", + "onmax/nuxt-skills": "696d12b7f4b169c951a9f8fc4ca078568648e0fc", "forrestchang/andrej-karpathy-skills": "aa4467f0b33e1e80d11c7c043d4b27e7c79a73a3", "vuejs-ai/skills": "f3dd1bf4d3ac78331bdc903e4519d561c538ca6a", "cloudai-x/threejs-skills": "b1c623076c661fc9b03dac19292e825a5d106823", "boristane/agent-skills": "8aa14dd16a1340a6049e6d7cd58e2ed52333a550", "kepano/obsidian-skills": "bb9ec95e1b59c3471bd6fd77a78a4042430bfac3", - "sickn33/antigravity-awesome-skills": "4edd2fcedd36b2e66f4697778bd8f85d7138c14a", + "sickn33/antigravity-awesome-skills": "27cb7c68309b0aa7d0525eaf9df30cd62caedef9", "zackkorman/skills": "c00eabef4599eba085fe832dbfb534038bc31279", "jeffallan/claude-skills": "3bf9a24b76a7c122f1fc05e83929fbc84e1c207a", "ibelick/ui-skills": "66eb2f5bc6c5dbdd13e601e23fb55ea64692807c", - "brianlovin/claude-config": "371c6c5ca1d6cadbd9efe401d37d3a290f5761b5", + "brianlovin/claude-config": "009b50c90c4a106e0c94565c4a5afd93343218c9", "waynesutton/convexskills": "8ef49c96675f760dd5569c0588c1abb04cd989dd", - "stripe/ai": "be309fff3ba77aa47d0a6b96fd4ca24b6a4d0501", + "stripe/ai": "538dae7cc6bd38d28cd98291d637445ea2a4779d", "cloudflare/skills": "d3113039790f64e052ff80f351190da65e9b7510", - "resciencelab/opc-skills": "46a8af3df454efedb91ea163a4395a8a839f3314", + "resciencelab/opc-skills": "b6f7a03f7fddee7f2fb01510f1ca28719246acb3", "adithya-s-k/manim_skill": "cef045011722d285692e3381d12d4d637da56e18", "analogjs/angular-skills": "b0434c274f168bd4f4be77018befa4264a507bb4", - "github/awesome-copilot": "9ef54533f0e4e3f5f45d790d675af5f91344e821", + "github/awesome-copilot": "fcdf1a87ad66f2ab69e296e7fe6149be18fe85df", "simonwong/agent-skills": "667ea2ae7643de1e965b135ef38e2b502c39e462", "superdesigndev/superdesign-skill": "12a637f7782194256818d3e47c2aff2be41b2634", - "figma/mcp-server-guide": "46a7d1bec64e0fd016eea6a66eda8ac34b44c491", - "addyosmani/web-quality-skills": "6a231a73b79ff35bcee04dec85996415979aa928", + "figma/mcp-server-guide": "f046182e32c8160b1254ad12ec8318f9a9aa50b5", + "addyosmani/web-quality-skills": "fed9617111260e19f4f54b72a2874a3f3de8ff94", "vueuse/skills": "075b0d6d558cc5ca7d5ffe72a56b5fd92bbef2d1", "pluginagentmarketplace/custom-plugin-java": "51aa571c25436e667618e27b8ac8c1d500d62aa2", - "othmanadi/planning-with-files": "7b55095bce7624011ec118e6a6029e37ec8a1ea2", + "othmanadi/planning-with-files": "57d13d7bd4de012089859098751e64f2f7fab9a3", "SawyerHood/dev-browser": "66682fb0513aec308e68d71740e2b0394a29d884", "dgreenheck/webgpu-claude-skill": "4adcfe8ef2317eae0801dbf4a396844954f8e996", - "affaan-m/everything-claude-code": "b994a076c28c148c07fa1212ac2fbe1a1be4cd3d", + "affaan-m/everything-claude-code": "fcaf78e4495dadd63b584ed9225b9c6d341b20d6", "CloudAI-X/claude-workflow-v2": "b6952dd3cd31b548d57ea88352c84692030e5480", - "muratcankoylan/Agent-Skills-for-Context-Engineering": "f7fb0703c86536c7778c634661b4c345a2e9044c", - "itsmostafa/aws-agent-skills": "2ccd14e6700ba96524e0961a6750ce6b056ed9c8", + "muratcankoylan/Agent-Skills-for-Context-Engineering": "87529d9be4488d1d0ad4d02caf9695451e0d3732", + "itsmostafa/aws-agent-skills": "5df6da7060ce411e959312f07aa3cc1fad2eedd7", "apify/agent-skills": "df6b198b8285a1b56347a15185e0daf5c69bef3a", "WordPress/agent-skills": "cdc950d588af9bd5975698e4d6db3bff738c4ad0", "lackeyjb/playwright-skill": "bb7e920d376022958214e349ef25498a2644e189", - "dbt-labs/dbt-agent-skills": "c26b434ad71028789018b99b3bbbd12df30cd46a", + "dbt-labs/dbt-agent-skills": "faadc2578935e0a2c3b345ce807b4ee3a9359a99", "google-gemini/gemini-skills": "6c84b961890eb63fce2ed1162bfef8f66047f5f4", - "HeyVincent-ai/agent-skills": "03fe75a11c7a53edb33aa9cac4cff3ad43bc40d4", - "huggingface/skills": "5d88e21bff0495d5a900b2fbc5a36958366ee3e0" + "HeyVincent-ai/agent-skills": "76ae07b11eca1b70f2565f55341a73dafca85d26", + "huggingface/skills": "9a685c9f0de100d26967e0d768f70aca78acd5fe", + "mcollina/skills": "c605269f85f6e449c1f76b7c9e8c73381fccfc68" } }, "skills": [ @@ -79,14518 +80,14896 @@ "registry": "anthropics/skills", "path": "skills/algorithmic-art", "description": "Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.", - "lastIndexed": 1772928415658 + "lastIndexed": 1773533409869 }, { "name": "brand-guidelines", "registry": "anthropics/skills", "path": "skills/brand-guidelines", "description": "Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.", - "lastIndexed": 1772928415666 + "lastIndexed": 1773533409878 }, { "name": "canvas-design", "registry": "anthropics/skills", "path": "skills/canvas-design", "description": "Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.", - "lastIndexed": 1772928415648 + "lastIndexed": 1773533409877 }, { "name": "claude-api", "registry": "anthropics/skills", "path": "skills/claude-api", "description": "Build apps with the Claude API or Anthropic SDK. TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`/`claude_agent_sdk`, or user asks to use Claude API, Anthropic SDKs, or Agent SDK. DO NOT TRIGGER when: code imports `openai`/other AI SDK, general programming, or ML/data-science tasks.", - "lastIndexed": 1772928415639 + "lastIndexed": 1773533409877 }, { "name": "doc-coauthoring", "registry": "anthropics/skills", "path": "skills/doc-coauthoring", "description": "Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.", - "lastIndexed": 1772928415643 + "lastIndexed": 1773533409867 }, { "name": "docx", "registry": "anthropics/skills", "path": "skills/docx", "description": "Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.", - "lastIndexed": 1772928415658 + "lastIndexed": 1773533409884 }, { "name": "frontend-design", "registry": "anthropics/skills", "path": "skills/frontend-design", "description": "Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.", - "lastIndexed": 1772928415676 + "lastIndexed": 1773533409860 }, { "name": "internal-comms", "registry": "anthropics/skills", "path": "skills/internal-comms", "description": "A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).", - "lastIndexed": 1772928415657 + "lastIndexed": 1773533409885 }, { "name": "mcp-builder", "registry": "anthropics/skills", "path": "skills/mcp-builder", "description": "Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).", - "lastIndexed": 1772928415663 + "lastIndexed": 1773533409878 }, { "name": "pdf", "registry": "anthropics/skills", "path": "skills/pdf", "description": "Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.", - "lastIndexed": 1772928415665 + "lastIndexed": 1773533409877 }, { "name": "pptx", "registry": "anthropics/skills", "path": "skills/pptx", "description": "Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.", - "lastIndexed": 1772928415665 + "lastIndexed": 1773533409882 }, { "name": "skill-creator", "registry": "anthropics/skills", "path": "skills/skill-creator", "description": "Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.", - "lastIndexed": 1772928415647 + "lastIndexed": 1773533409864 }, { "name": "slack-gif-creator", "registry": "anthropics/skills", "path": "skills/slack-gif-creator", "description": "Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"", - "lastIndexed": 1772928415665 + "lastIndexed": 1773533409881 }, { "name": "theme-factory", "registry": "anthropics/skills", "path": "skills/theme-factory", "description": "Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.", - "lastIndexed": 1772928415789 + "lastIndexed": 1773533409888 }, { "name": "web-artifacts-builder", "registry": "anthropics/skills", "path": "skills/web-artifacts-builder", "description": "Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.", - "lastIndexed": 1772928415666 + "lastIndexed": 1773533409861 }, { "name": "webapp-testing", "registry": "anthropics/skills", "path": "skills/webapp-testing", "description": "Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.", - "lastIndexed": 1772928415657 + "lastIndexed": 1773533409874 }, { "name": "xlsx", "registry": "anthropics/skills", "path": "skills/xlsx", "description": "Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.", - "lastIndexed": 1772928415666 + "lastIndexed": 1773533409892 }, { "name": "composition-patterns", "registry": "vercel-labs/agent-skills", "path": "skills/composition-patterns", "description": "React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.", - "lastIndexed": 1772928415598 + "lastIndexed": 1773533408675 }, { "name": "deploy-to-vercel", "registry": "vercel-labs/agent-skills", "path": "skills/deploy-to-vercel", "description": "Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\".", - "lastIndexed": 1772928415612 + "lastIndexed": 1773533408667 }, { "name": "react-best-practices", "registry": "vercel-labs/agent-skills", "path": "skills/react-best-practices", "description": "React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.", - "lastIndexed": 1772928415613 + "lastIndexed": 1773533408665 }, { "name": "react-native-skills", "registry": "vercel-labs/agent-skills", "path": "skills/react-native-skills", "description": "React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.", - "lastIndexed": 1772928415610 + "lastIndexed": 1773533408623 }, { "name": "web-design-guidelines", "registry": "vercel-labs/agent-skills", "path": "skills/web-design-guidelines", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928415622 + "lastIndexed": 1773533408664 }, { "name": "remotion", "registry": "remotion-dev/skills", "path": "skills/remotion", "description": "Best practices for Remotion - Video creation in React", - "lastIndexed": 1772928415592 + "lastIndexed": 1773533408654 }, { "name": "supabase-postgres-best-practices", "registry": "supabase/agent-skills", "path": "skills/supabase-postgres-best-practices", "description": "Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.", - "lastIndexed": 1772928415615 + "lastIndexed": 1773533408666 }, { "name": "brainstorming", "registry": "obra/superpowers", "path": "skills/brainstorming", "description": "You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.", - "lastIndexed": 1772928415617 + "lastIndexed": 1773533408624 }, { "name": "dispatching-parallel-agents", "registry": "obra/superpowers", "path": "skills/dispatching-parallel-agents", "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies", - "lastIndexed": 1772928416870 + "lastIndexed": 1773533408664 }, { "name": "executing-plans", "registry": "obra/superpowers", "path": "skills/executing-plans", "description": "Use when you have a written implementation plan to execute in a separate session with review checkpoints", - "lastIndexed": 1772928415626 + "lastIndexed": 1773533408649 }, { "name": "finishing-a-development-branch", "registry": "obra/superpowers", "path": "skills/finishing-a-development-branch", "description": "Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup", - "lastIndexed": 1772928415619 + "lastIndexed": 1773533408650 }, { "name": "receiving-code-review", "registry": "obra/superpowers", "path": "skills/receiving-code-review", "description": "Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation", - "lastIndexed": 1772928415616 + "lastIndexed": 1773533408650 }, { "name": "requesting-code-review", "registry": "obra/superpowers", "path": "skills/requesting-code-review", "description": "Use when completing tasks, implementing major features, or before merging to verify work meets requirements", - "lastIndexed": 1772928415613 + "lastIndexed": 1773533408662 }, { "name": "subagent-driven-development", "registry": "obra/superpowers", "path": "skills/subagent-driven-development", "description": "Use when executing implementation plans with independent tasks in the current session", - "lastIndexed": 1772928415624 + "lastIndexed": 1773533408653 }, { "name": "systematic-debugging", "registry": "obra/superpowers", "path": "skills/systematic-debugging", "description": "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes", - "lastIndexed": 1772928415626 + "lastIndexed": 1773533408661 }, { "name": "test-driven-development", "registry": "obra/superpowers", "path": "skills/test-driven-development", "description": "Use when implementing any feature or bugfix, before writing implementation code", - "lastIndexed": 1772928415627 + "lastIndexed": 1773533408644 }, { "name": "using-git-worktrees", "registry": "obra/superpowers", "path": "skills/using-git-worktrees", "description": "Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification", - "lastIndexed": 1772928415615 + "lastIndexed": 1773533408656 }, { "name": "using-superpowers", "registry": "obra/superpowers", "path": "skills/using-superpowers", "description": "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions", - "lastIndexed": 1772928415626 + "lastIndexed": 1773533408653 }, { "name": "verification-before-completion", "registry": "obra/superpowers", "path": "skills/verification-before-completion", "description": "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always", - "lastIndexed": 1772928416862 + "lastIndexed": 1773533408656 }, { "name": "writing-plans", "registry": "obra/superpowers", "path": "skills/writing-plans", "description": "Use when you have a spec or requirements for a multi-step task, before touching code", - "lastIndexed": 1772928415624 + "lastIndexed": 1773533408649 }, { "name": "writing-skills", "registry": "obra/superpowers", "path": "skills/writing-skills", "description": "Use when creating new skills, editing existing skills, or verifying skills work before deployment", - "lastIndexed": 1772928415628 + "lastIndexed": 1773533408747 }, { "name": "agent-md-refactor", "registry": "softaworks/agent-toolkit", "path": "skills/agent-md-refactor", "description": "Refactor bloated AGENTS.md, CLAUDE.md, or similar agent instruction files to follow progressive disclosure principles. Splits monolithic files into organized, linked documentation.", - "lastIndexed": 1772928417091 + "lastIndexed": 1773533410508 }, { "name": "backend-to-frontend-handoff-docs", "registry": "softaworks/agent-toolkit", "path": "skills/backend-to-frontend-handoff-docs", "description": "Create API handoff documentation for frontend developers. Use when backend work is complete and needs to be documented for frontend integration, or user says 'create handoff', 'document API', 'frontend handoff', or 'API documentation'.", - "lastIndexed": 1772928417096 + "lastIndexed": 1773533410166 }, { "name": "c4-architecture", "registry": "softaworks/agent-toolkit", "path": "skills/c4-architecture", "description": "Generate architecture documentation using C4 model Mermaid diagrams. Use when asked to create architecture diagrams, document system architecture, visualize software structure, create C4 diagrams, or generate context/container/component/deployment diagrams. Triggers include \"architecture diagram\", \"C4 diagram\", \"system context\", \"container diagram\", \"component diagram\", \"deployment diagram\", \"document architecture\", \"visualize architecture\".", - "lastIndexed": 1772928417080 + "lastIndexed": 1773533410152 }, { "name": "codex", "registry": "softaworks/agent-toolkit", "path": "skills/codex", "description": "Use when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing. Uses GPT-5.2 by default for state-of-the-art software engineering.", - "lastIndexed": 1772928417091 + "lastIndexed": 1773533410164 }, { "name": "command-creator", "registry": "softaworks/agent-toolkit", "path": "skills/command-creator", "description": "This skill should be used when creating a Claude Code slash command. Use when users ask to \"create a command\", \"make a slash command\", \"add a command\", or want to document a workflow as a reusable command. Essential for creating optimized, agent-executable slash commands with proper structure and best practices.", - "lastIndexed": 1772928417094 + "lastIndexed": 1773533410495 }, { "name": "commit-work", "registry": "softaworks/agent-toolkit", "path": "skills/commit-work", "description": "Create high-quality git commits: review/stage intended changes, split into logical commits, and write clear commit messages (including Conventional Commits). Use when the user asks to commit, craft a commit message, stage changes, or split work into multiple commits.", - "lastIndexed": 1772928417076 + "lastIndexed": 1773533410520 }, { "name": "crafting-effective-readmes", "registry": "softaworks/agent-toolkit", "path": "skills/crafting-effective-readmes", "description": "Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.", - "lastIndexed": 1772928417076 + "lastIndexed": 1773533410508 }, { "name": "daily-meeting-update", "registry": "softaworks/agent-toolkit", "path": "skills/daily-meeting-update", "description": "Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.", - "lastIndexed": 1772928417091 + "lastIndexed": 1773533410164 }, { "name": "database-schema-designer", "registry": "softaworks/agent-toolkit", "path": "skills/database-schema-designer", "description": "Design robust, scalable database schemas for SQL and NoSQL databases. Provides normalization guidelines, indexing strategies, migration patterns, constraint design, and performance optimization. Ensures data integrity, query performance, and maintainable data models.", - "lastIndexed": 1772928417096 + "lastIndexed": 1773533410175 }, { "name": "datadog-cli", "registry": "softaworks/agent-toolkit", "path": "skills/datadog-cli", "description": "Datadog CLI for searching logs, querying metrics, tracing requests, and managing dashboards. Use this when debugging production issues or working with Datadog observability.", - "lastIndexed": 1772928417092 + "lastIndexed": 1773533410509 }, { "name": "dependency-updater", "registry": "softaworks/agent-toolkit", "path": "skills/dependency-updater", "description": "Smart dependency management for any language. Auto-detects project type, applies safe updates automatically, prompts for major versions, diagnoses and fixes dependency issues.", - "lastIndexed": 1772928417091 + "lastIndexed": 1773533410523 }, { "name": "design-system-starter", "registry": "softaworks/agent-toolkit", "path": "skills/design-system-starter", "description": "Create and evolve design systems with design tokens, component architecture, accessibility guidelines, and documentation templates. Ensures consistent, scalable, and accessible UI across products.", - "lastIndexed": 1772928417099 + "lastIndexed": 1773533410509 }, { "name": "difficult-workplace-conversations", "registry": "softaworks/agent-toolkit", "path": "skills/difficult-workplace-conversations", "description": "Structured approach to workplace conflicts, performance discussions, and challenging feedback using preparation-delivery-followup framework. Use when preparing for tough conversations, addressing conflicts, giving critical feedback, or navigating sensitive workplace discussions.", - "lastIndexed": 1772928417081 + "lastIndexed": 1773533410506 }, { "name": "domain-name-brainstormer", "registry": "softaworks/agent-toolkit", "path": "skills/domain-name-brainstormer", "description": "Generates creative domain name ideas for your project and checks availability across multiple TLDs (.com, .io, .dev, .ai, etc.). Saves hours of brainstorming and manual checking.", - "lastIndexed": 1772928417092 + "lastIndexed": 1773533410507 }, { "name": "draw-io", "registry": "softaworks/agent-toolkit", "path": "skills/draw-io", "description": "draw.io diagram creation, editing, and review. Use for .drawio XML editing, PNG conversion, layout adjustment, and AWS icon usage.", - "lastIndexed": 1772928417098 + "lastIndexed": 1773533410161 }, { "name": "excalidraw", "registry": "softaworks/agent-toolkit", "path": "skills/excalidraw", "description": "Use when working with *.excalidraw or *.excalidraw.json files, user mentions diagrams/flowcharts, or requests architecture visualization - delegates all Excalidraw operations to subagents to prevent context exhaustion from verbose JSON (single files: 4k-22k tokens, can exceed read limits)", - "lastIndexed": 1772928417097 + "lastIndexed": 1773533410161 }, { "name": "feedback-mastery", "registry": "softaworks/agent-toolkit", "path": "skills/feedback-mastery", "description": "Navigate difficult conversations and deliver constructive feedback using structured frameworks. Covers the Preparation-Delivery-Follow-up model and Situation-Behavior-Impact (SBI) feedback technique. Use when preparing for difficult conversations, giving feedback, or managing conflicts.", - "lastIndexed": 1772928417100 + "lastIndexed": 1773533410165 }, { "name": "frontend-to-backend-requirements", "registry": "softaworks/agent-toolkit", "path": "skills/frontend-to-backend-requirements", "description": "Document frontend data needs for backend developers. Use when frontend needs to communicate API requirements to backend, or user says 'backend requirements', 'what data do I need', 'API requirements', or is describing data needs for a UI.", - "lastIndexed": 1772928417124 + "lastIndexed": 1773533410154 }, { "name": "game-changing-features", "registry": "softaworks/agent-toolkit", "path": "skills/game-changing-features", "description": "Find 10x product opportunities and high-leverage improvements. Use when user wants strategic product thinking, mentions '10x', wants to find high-impact features, or says 'what would make this 10x better', 'product strategy', or 'what should we build next'.", - "lastIndexed": 1772928417099 + "lastIndexed": 1773533410510 }, { "name": "gemini", "registry": "softaworks/agent-toolkit", "path": "skills/gemini", "description": "Use when the user asks to run Gemini CLI for code review, plan review, or big context (>200k) processing. Ideal for comprehensive analysis requiring large context windows. Uses Gemini 3 Pro by default for state-of-the-art reasoning and coding.", - "lastIndexed": 1772928417123 + "lastIndexed": 1773533410509 }, { "name": "gepetto", "registry": "softaworks/agent-toolkit", "path": "skills/gepetto", "description": "Creates detailed, sectionized implementation plans through research, stakeholder interviews, and multi-LLM review. Use when planning features that need thorough pre-implementation analysis.", - "lastIndexed": 1772928417139 + "lastIndexed": 1773533410167 }, { "name": "humanizer", "registry": "softaworks/agent-toolkit", "path": "skills/humanizer", "description": "Remove signs of AI-generated writing from text. Use when editing or reviewing\ntext to make it sound more natural and human-written. Based on Wikipedia's\ncomprehensive \"Signs of AI writing\" guide. Detects and fixes patterns including:\ninflated symbolism, promotional language, superficial -ing analyses, vague\nattributions, em dash overuse, rule of three, AI vocabulary words, negative\nparallelisms, and excessive conjunctive phrases.\n\nCredits: Original skill by @blader - https://github.com/blader/humanizer", - "lastIndexed": 1772928417111 + "lastIndexed": 1773533410169 }, { "name": "jira", "registry": "softaworks/agent-toolkit", "path": "skills/jira", "description": "Use when the user mentions Jira issues (e.g., \"PROJ-123\"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like \"jira\", \"issue\", \"ticket\", \"sprint\", \"backlog\", or issue key patterns.", - "lastIndexed": 1772928417136 + "lastIndexed": 1773533410501 }, { "name": "lesson-learned", "registry": "softaworks/agent-toolkit", "path": "skills/lesson-learned", "description": "Analyze recent code changes via git history and extract software engineering lessons. Use when the user asks 'what is the lesson here?', 'what can I learn from this?', 'engineering takeaway', 'what did I just learn?', 'reflect on this code', or wants to extract principles from recent work.", - "lastIndexed": 1772928417105 + "lastIndexed": 1773533410239 }, { "name": "marp-slide", "registry": "softaworks/agent-toolkit", "path": "skills/marp-slide", "description": "Create professional Marp presentation slides with 7 beautiful themes (default, minimal, colorful, dark, gradient, tech, business). Use when users request slide creation, presentations, or Marp documents. Supports custom themes, image layouts, and \"make it look good\" requests with automatic quality improvements.", - "lastIndexed": 1772928417137 + "lastIndexed": 1773533410509 }, { "name": "meme-factory", "registry": "softaworks/agent-toolkit", "path": "skills/meme-factory", "description": "Generate memes using the memegen.link API. Use when users request memes, want to add humor to content, or need visual aids for social media. Supports 100+ popular templates with custom text and styling.", - "lastIndexed": 1772928417133 + "lastIndexed": 1773533410508 }, { "name": "mermaid-diagrams", "registry": "softaworks/agent-toolkit", "path": "skills/mermaid-diagrams", "description": "Comprehensive guide for creating software diagrams using Mermaid syntax. Use when users need to create, visualize, or document software through diagrams including class diagrams (domain modeling, object-oriented design), sequence diagrams (application flows, API interactions, code execution), flowcharts (processes, algorithms, user journeys), entity relationship diagrams (database schemas), C4 architecture diagrams (system context, containers, components), state diagrams, git graphs, pie charts, gantt charts, or any other diagram type. Triggers include requests to \"diagram\", \"visualize\", \"model\", \"map out\", \"show the flow\", or when explaining system architecture, database design, code structure, or user/application flows.", - "lastIndexed": 1772928417112 + "lastIndexed": 1773533410508 }, { "name": "mui", "registry": "softaworks/agent-toolkit", "path": "skills/mui", "description": "Material-UI v7 component library patterns including sx prop styling, theme integration, responsive design, and MUI-specific hooks. Use when working with MUI components, styling with sx prop, theme customization, or MUI utilities.", - "lastIndexed": 1772928417122 + "lastIndexed": 1773533410173 }, { "name": "naming-analyzer", "registry": "softaworks/agent-toolkit", "path": "skills/naming-analyzer", "description": "Suggest better variable, function, and class names based on context and conventions.", - "lastIndexed": 1772928417099 + "lastIndexed": 1773533410494 }, { "name": "openapi-to-typescript", "registry": "softaworks/agent-toolkit", "path": "skills/openapi-to-typescript", "description": "Converts OpenAPI 3.0 JSON/YAML to TypeScript interfaces and type guards. This skill should be used when the user asks to generate types from OpenAPI, convert schema to TS, create API interfaces, or generate TypeScript types from an API specification.", - "lastIndexed": 1772928417098 + "lastIndexed": 1773533410507 }, { "name": "perplexity", "registry": "softaworks/agent-toolkit", "path": "skills/perplexity", "description": "Web search and research using Perplexity AI. Use when user says \"search\", \"find\", \"look up\", \"ask\", \"research\", or \"what's the latest\" for generic queries. NOT for library/framework docs (use Context7) or workspace questions.", - "lastIndexed": 1772928417132 + "lastIndexed": 1773533410166 }, { "name": "plugin-forge", "registry": "softaworks/agent-toolkit", "path": "skills/plugin-forge", "description": "Create and manage Claude Code plugins with proper structure, manifests, and marketplace integration. Use when creating plugins for a marketplace, adding plugin components (commands, agents, hooks), bumping plugin versions, or working with plugin.json/marketplace.json manifests.", - "lastIndexed": 1772928417100 + "lastIndexed": 1773533410510 }, { "name": "professional-communication", "registry": "softaworks/agent-toolkit", "path": "skills/professional-communication", "description": "Guide technical communication for software developers. Covers email structure, team messaging etiquette, meeting agendas, and adapting messages for technical vs non-technical audiences. Use when drafting professional messages, preparing meeting communications, or improving written communication.", - "lastIndexed": 1772928417140 + "lastIndexed": 1773533410506 }, { "name": "qa-test-planner", "registry": "softaworks/agent-toolkit", "path": "skills/qa-test-planner", "description": "Generate comprehensive test plans, manual test cases, regression test suites, and bug reports for QA engineers. Includes Figma MCP integration for design validation.", - "lastIndexed": 1772928417126 + "lastIndexed": 1773533410170 }, { "name": "react-dev", "registry": "softaworks/agent-toolkit", "path": "skills/react-dev", "description": "This skill should be used when building React components with TypeScript, typing hooks, handling events, or when React TypeScript, React 19, Server Components are mentioned. Covers type-safe patterns for React 18-19 including generic components, proper event typing, and routing integration (TanStack Router, React Router).", - "lastIndexed": 1772928417101 + "lastIndexed": 1773533410510 }, { "name": "react-useeffect", "registry": "softaworks/agent-toolkit", "path": "skills/react-useeffect", "description": "React useEffect best practices from official docs. Use when writing/reviewing useEffect, useState for derived values, data fetching, or state synchronization. Teaches when NOT to use Effect and better alternatives.", - "lastIndexed": 1772928417101 + "lastIndexed": 1773533410166 }, { "name": "reducing-entropy", "registry": "softaworks/agent-toolkit", "path": "skills/reducing-entropy", "description": "Manual-only skill for minimizing total codebase size. Only activate when explicitly requested by user. Measures success by final code amount, not effort. Bias toward deletion.", - "lastIndexed": 1772928417114 + "lastIndexed": 1773533410169 }, { "name": "requirements-clarity", "registry": "softaworks/agent-toolkit", "path": "skills/requirements-clarity", "description": "Clarify ambiguous requirements through focused dialogue before implementation. Use when requirements are unclear, features are complex (>2 days), or involve cross-team coordination. Ask two core questions - Why? (YAGNI check) and Simpler? (KISS check) - to ensure clarity before coding.", - "lastIndexed": 1772928417141 + "lastIndexed": 1773533410171 }, { "name": "session-handoff", "registry": "softaworks/agent-toolkit", "path": "skills/session-handoff", "description": "Creates comprehensive handoff documents for seamless AI agent session transfers. Triggered when: (1) user requests handoff/memory/context save, (2) context window approaches capacity, (3) major task milestone completed, (4) work session ending, (5) user says 'save state', 'create handoff', 'I need to pause', 'context is getting full', (6) resuming work with 'load handoff', 'resume from', 'continue where we left off'. Proactively suggests handoffs after substantial work (multiple file edits, complex debugging, architecture decisions). Solves long-running agent context exhaustion by enabling fresh agents to continue with zero ambiguity.", - "lastIndexed": 1772928417136 + "lastIndexed": 1773533410166 }, { "name": "ship-learn-next", "registry": "softaworks/agent-toolkit", "path": "skills/ship-learn-next", "description": "Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.", - "lastIndexed": 1772928417132 + "lastIndexed": 1773533410501 }, { "name": "skill-judge", "registry": "softaworks/agent-toolkit", "path": "skills/skill-judge", "description": "Evaluate Agent Skill design quality against official specifications and best practices. Use when reviewing, auditing, or improving SKILL.md files and skill packages. Provides multi-dimensional scoring and actionable improvement suggestions.", - "lastIndexed": 1772928417130 + "lastIndexed": 1773533410189 }, { "name": "web-to-markdown", "registry": "softaworks/agent-toolkit", "path": "skills/web-to-markdown", "description": "Use ONLY when the user explicitly says: 'use the skill web-to-markdown ...' (or 'use a skill web-to-markdown ...'). Converts webpage URLs to clean Markdown by calling the local web2md CLI (Puppeteer + Readability), suitable for JS-rendered pages.", - "lastIndexed": 1772928417136 + "lastIndexed": 1773533410507 }, { "name": "writing-clearly-and-concisely", "registry": "softaworks/agent-toolkit", "path": "skills/writing-clearly-and-concisely", "description": "Use when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text. Applies Strunk's timeless rules for clearer, stronger, more professional writing.", - "lastIndexed": 1772928417121 + "lastIndexed": 1773533410504 }, { "name": "capture-knowledge", "registry": "codeaholicguy/ai-devkit", "path": "skills/capture-knowledge", "description": "Capture structured knowledge about a code entry point and save it to the knowledge docs. Use when users ask to document, understand, or map code for a module, file, folder, function, or API.", - "lastIndexed": 1772928417022 + "lastIndexed": 1773533410116 }, { "name": "debug", "registry": "codeaholicguy/ai-devkit", "path": "skills/debug", "description": "Guide structured debugging before code changes by clarifying expected behavior, reproducing issues, identifying likely root causes, and agreeing on a fix plan with validation steps. Use when users ask to debug bugs, investigate regressions, triage incidents, diagnose failing behavior, handle failing tests, analyze production incidents, investigate error spikes, or run root cause analysis (RCA).", - "lastIndexed": 1772928417064 + "lastIndexed": 1773533410116 }, { "name": "dev-lifecycle", "registry": "codeaholicguy/ai-devkit", "path": "skills/dev-lifecycle", "description": "Structured SDLC workflow with 8 phases — requirements, design review, planning, implementation, testing, and code review. Use when the user wants to build a feature end-to-end, or run any individual phase (new requirement, review requirements, review design, execute plan, update planning, check implementation, write tests, code review).", - "lastIndexed": 1772928417181 + "lastIndexed": 1773533410117 }, { "name": "memory", "registry": "codeaholicguy/ai-devkit", "path": "skills/memory", "description": "Use AI DevKit's memory service to store and retrieve knowledge via CLI commands instead of MCP.", - "lastIndexed": 1772928417075 + "lastIndexed": 1773533410116 }, { "name": "simplify-implementation", "registry": "codeaholicguy/ai-devkit", "path": "skills/simplify-implementation", "description": "Analyze and simplify existing implementations to reduce complexity, improve maintainability, and enhance scalability. Use when users ask to simplify code, reduce complexity, refactor for readability, clean up implementations, improve maintainability, reduce technical debt, or make code easier to understand.", - "lastIndexed": 1772928417071 + "lastIndexed": 1773533410150 }, { "name": "technical-writer", "registry": "codeaholicguy/ai-devkit", "path": "skills/technical-writer", "description": "Review and improve documentation for novice users. Use when users ask to review docs, improve documentation, audit README files, evaluate API docs, review guides, or improve technical writing.", - "lastIndexed": 1772928417025 + "lastIndexed": 1773533410148 }, { "name": "antfu", "registry": "antfu/skills", "path": "skills/antfu", "description": "Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript projects. Use when setting up new projects, configuring ESLint/Prettier alternatives, monorepos, library publishing, or when the user mentions Anthony Fu's preferences.", - "lastIndexed": 1772928417011 + "lastIndexed": 1773533410116 }, { "name": "nuxt", "registry": "antfu/skills", "path": "skills/nuxt", "description": "Nuxt full-stack Vue framework with SSR, auto-imports, and file-based routing. Use when working with Nuxt apps, server routes, useFetch, middleware, or hybrid rendering.", - "lastIndexed": 1772928417018 + "lastIndexed": 1773533410098 }, { "name": "pinia", "registry": "antfu/skills", "path": "skills/pinia", "description": "Pinia official Vue state management library, type-safe and extensible. Use when defining stores, working with state/getters/actions, or implementing store patterns in Vue apps.", - "lastIndexed": 1772928417019 + "lastIndexed": 1773533410109 }, { "name": "pnpm", "registry": "antfu/skills", "path": "skills/pnpm", "description": "Node.js package manager with strict dependency resolution. Use when running pnpm specific commands, configuring workspaces, or managing dependencies with catalogs, patches, or overrides.", - "lastIndexed": 1772928417020 + "lastIndexed": 1773533410098 }, { "name": "slidev", "registry": "antfu/skills", "path": "skills/slidev", - "description": "Create and present web-based slides for developers using Markdown, Vue components, code highlighting, animations, and interactive features. Use when building technical presentations, conference talks, or teaching materials.", - "lastIndexed": 1772928417024 + "description": "Create and present web-based slidedecks for developers using Slidev with Markdown, Vue components, code highlighting, animations, and interactive features. Use when building technical presentations, conference talks, code walkthroughs, teaching materials, or developer decks.", + "lastIndexed": 1773533410114 }, { "name": "tsdown", "registry": "antfu/skills", "path": "skills/tsdown", "description": "Bundle TypeScript and JavaScript libraries with blazing-fast speed powered by Rolldown. Use when building libraries, generating type declarations, bundling for multiple formats, or migrating from tsup.", - "lastIndexed": 1772928417017 + "lastIndexed": 1773533410115 }, { "name": "turborepo", "registry": "antfu/skills", "path": "skills/turborepo", "description": "Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines,\ndependsOn, caching, remote cache, the \"turbo\" CLI, --filter, --affected, CI optimization, environment\nvariables, internal packages, monorepo structure/best practices, and boundaries.\n\nUse when user: configures tasks/workflows/pipelines, creates packages, sets up\nmonorepo, shares code between apps, runs changed/affected packages, debugs cache,\nor has apps/packages directories.", - "lastIndexed": 1772928417026 + "lastIndexed": 1773533410118 }, { "name": "unocss", "registry": "antfu/skills", "path": "skills/unocss", "description": "UnoCSS instant atomic CSS engine, superset of Tailwind CSS. Use when configuring UnoCSS, writing utility rules, shortcuts, or working with presets like Wind, Icons, Attributify.", - "lastIndexed": 1772928417015 + "lastIndexed": 1773533410109 }, { "name": "vite", "registry": "antfu/skills", "path": "skills/vite", "description": "Vite build tool configuration, plugin API, SSR, and Vite 8 Rolldown migration. Use when working with Vite projects, vite.config.ts, Vite plugins, or building libraries/SSR apps with Vite.", - "lastIndexed": 1772928417012 + "lastIndexed": 1773533410109 }, { "name": "vitepress", "registry": "antfu/skills", "path": "skills/vitepress", "description": "VitePress static site generator powered by Vite and Vue. Use when building documentation sites, configuring themes, or writing Markdown with Vue components.", - "lastIndexed": 1772928417022 + "lastIndexed": 1773533410099 }, { "name": "vitest", "registry": "antfu/skills", "path": "skills/vitest", "description": "Vitest fast unit testing framework powered by Vite with Jest-compatible API. Use when writing tests, mocking, configuring coverage, or working with test filtering and fixtures.", - "lastIndexed": 1772928417016 + "lastIndexed": 1773533410115 }, { "name": "vue-best-practices", "registry": "antfu/skills", "path": "skills/vue-best-practices", "description": "MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.", - "lastIndexed": 1772928417097 + "lastIndexed": 1773533410114 }, { "name": "vue-router-best-practices", "registry": "antfu/skills", "path": "skills/vue-router-best-practices", "description": "Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.", - "lastIndexed": 1772928417024 + "lastIndexed": 1773533410098 }, { "name": "vue-testing-best-practices", "registry": "antfu/skills", "path": "skills/vue-testing-best-practices", "description": "Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.", - "lastIndexed": 1772928416993 + "lastIndexed": 1773533410099 }, { "name": "vue", "registry": "antfu/skills", "path": "skills/vue", "description": "Vue 3 Composition API, script setup macros, reactivity system, and built-in components. Use when writing Vue SFCs, defineProps/defineEmits/defineModel, watchers, or using Transition/Teleport/Suspense/KeepAlive.", - "lastIndexed": 1772928417026 + "lastIndexed": 1773533410098 }, { "name": "vueuse-functions", "registry": "antfu/skills", "path": "skills/vueuse-functions", "description": "Apply VueUse composables where appropriate to build concise, maintainable Vue.js / Nuxt features.", - "lastIndexed": 1772928417100 + "lastIndexed": 1773533410118 }, { "name": "web-design-guidelines", "registry": "antfu/skills", "path": "skills/web-design-guidelines", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928417071 + "lastIndexed": 1773533410098 }, { "name": "browser-use", "registry": "browser-use/browser-use", "path": "skills/browser-use", "description": "Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.", - "lastIndexed": 1772928417141 + "lastIndexed": 1773533410170 }, { "name": "remote-browser", "registry": "browser-use/browser-use", "path": "skills/remote-browser", "description": "Controls a cloud browser from a sandboxed remote machine. Use when the agent is running in a sandbox (no GUI) and needs to navigate websites, interact with web pages, fill forms, take screenshots, or expose local dev servers via tunnels.", - "lastIndexed": 1772928417159 + "lastIndexed": 1773533410181 }, { "name": "find-skills", "registry": "vercel-labs/skills", "path": "skills/find-skills", "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.", - "lastIndexed": 1772928417309 + "lastIndexed": 1773533410706 }, { "name": "agent-browser", "registry": "vercel-labs/agent-browser", "path": "skills/agent-browser", "description": "Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction.", - "lastIndexed": 1772928417348 + "lastIndexed": 1773533410723 }, { "name": "dogfood", "registry": "vercel-labs/agent-browser", "path": "skills/dogfood", "description": "Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to \"dogfood\", \"QA\", \"exploratory test\", \"find issues\", \"bug hunt\", \"test this app/site/platform\", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.", - "lastIndexed": 1772928417345 + "lastIndexed": 1773533410727 }, { "name": "electron", "registry": "vercel-labs/agent-browser", "path": "skills/electron", "description": "Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include \"automate Slack app\", \"control VS Code\", \"interact with Discord app\", \"test this Electron app\", \"connect to desktop app\", or any task requiring automation of a native Electron application.", - "lastIndexed": 1772928417344 + "lastIndexed": 1773533410722 }, { "name": "slack", "registry": "vercel-labs/agent-browser", "path": "skills/slack", "description": "Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include \"check my Slack\", \"what channels have unreads\", \"send a message to\", \"search Slack for\", \"extract from Slack\", \"find who said\", or any task requiring programmatic Slack interaction.", - "lastIndexed": 1772928417355 + "lastIndexed": 1773533410728 + }, + { + "name": "vercel-sandbox", + "registry": "vercel-labs/agent-browser", + "path": "skills/vercel-sandbox", + "description": "Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include \"Vercel Sandbox browser\", \"microVM Chrome\", \"agent-browser in sandbox\", \"browser automation on Vercel\", or any task requiring Chrome in a Vercel Sandbox.", + "lastIndexed": 1773533410732 }, { "name": "ab-test-setup", "registry": "coreyhaines31/marketingskills", "path": "skills/ab-test-setup", "description": "When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions \"A/B test,\" \"split test,\" \"experiment,\" \"test this change,\" \"variant copy,\" \"multivariate test,\" \"hypothesis,\" \"should I test this,\" \"which version is better,\" \"test two versions,\" \"statistical significance,\" or \"how long should I run this test.\" Use this whenever someone is comparing two approaches and wants to measure which performs better. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.", - "lastIndexed": 1772928417332 + "lastIndexed": 1773533410706 }, { "name": "ad-creative", "registry": "coreyhaines31/marketingskills", "path": "skills/ad-creative", "description": "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting.", - "lastIndexed": 1772928417309 + "lastIndexed": 1773533410695 }, { "name": "ai-seo", "registry": "coreyhaines31/marketingskills", "path": "skills/ai-seo", "description": "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema-markup.", - "lastIndexed": 1772928417316 + "lastIndexed": 1773533410681 }, { "name": "analytics-tracking", "registry": "coreyhaines31/marketingskills", "path": "skills/analytics-tracking", "description": "When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions \"set up tracking,\" \"GA4,\" \"Google Analytics,\" \"conversion tracking,\" \"event tracking,\" \"UTM parameters,\" \"tag manager,\" \"GTM,\" \"analytics implementation,\" \"tracking plan,\" \"how do I measure this,\" \"track conversions,\" \"attribution,\" \"Mixpanel,\" \"Segment,\" \"are my events firing,\" or \"analytics isn't working.\" Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup.", - "lastIndexed": 1772928417337 + "lastIndexed": 1773533410706 }, { "name": "churn-prevention", "registry": "coreyhaines31/marketingskills", "path": "skills/churn-prevention", "description": "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro.", - "lastIndexed": 1772928417344 + "lastIndexed": 1773533410711 }, { "name": "cold-email", "registry": "coreyhaines31/marketingskills", "path": "skills/cold-email", "description": "Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions \"cold outreach,\" \"prospecting email,\" \"outbound email,\" \"email to leads,\" \"reach out to prospects,\" \"sales email,\" \"follow-up email sequence,\" \"nobody's replying to my emails,\" or \"how do I write a cold email.\" Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see email-sequence. For sales collateral beyond emails, see sales-enablement.", - "lastIndexed": 1772928417327 + "lastIndexed": 1773533410709 }, { "name": "competitor-alternatives", "registry": "coreyhaines31/marketingskills", "path": "skills/competitor-alternatives", "description": "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement.", - "lastIndexed": 1772928417314 + "lastIndexed": 1773533410690 }, { "name": "content-strategy", "registry": "coreyhaines31/marketingskills", "path": "skills/content-strategy", "description": "When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions \"content strategy,\" \"what should I write about,\" \"content ideas,\" \"blog strategy,\" \"topic clusters,\" \"content planning,\" \"editorial calendar,\" \"content marketing,\" \"content roadmap,\" \"what content should I create,\" \"blog topics,\" \"content pillars,\" or \"I don't know what to write.\" Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social-content.", - "lastIndexed": 1772928417331 + "lastIndexed": 1773533410695 }, { "name": "copy-editing", "registry": "coreyhaines31/marketingskills", "path": "skills/copy-editing", "description": "When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' 'copy sweep,' 'tighten this up,' 'this reads awkwardly,' 'clean up this text,' 'too wordy,' or 'sharpen the messaging.' Use this when the user already has copy and wants it improved rather than rewritten from scratch. For writing new copy, see copywriting.", - "lastIndexed": 1772928417345 + "lastIndexed": 1773533410687 }, { "name": "copywriting", "registry": "coreyhaines31/marketingskills", "path": "skills/copywriting", "description": "When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says \"write copy for,\" \"improve this copy,\" \"rewrite this page,\" \"marketing copy,\" \"headline help,\" \"CTA copy,\" \"value proposition,\" \"tagline,\" \"subheadline,\" \"hero section copy,\" \"above the fold,\" \"this copy is weak,\" \"make this more compelling,\" or \"help me describe my product.\" Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see email-sequence. For popup copy, see popup-cro. For editing existing copy, see copy-editing.", - "lastIndexed": 1772928417331 + "lastIndexed": 1773533410678 }, { "name": "email-sequence", "registry": "coreyhaines31/marketingskills", "path": "skills/email-sequence", "description": "When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions \"email sequence,\" \"drip campaign,\" \"nurture sequence,\" \"onboarding emails,\" \"welcome sequence,\" \"re-engagement emails,\" \"email automation,\" \"lifecycle emails,\" \"trigger-based emails,\" \"email funnel,\" \"email workflow,\" \"what emails should I send,\" \"welcome series,\" or \"email cadence.\" Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding-cro.", - "lastIndexed": 1772928417310 + "lastIndexed": 1773533410706 }, { "name": "form-cro", "registry": "coreyhaines31/marketingskills", "path": "skills/form-cro", "description": "When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions \"form optimization,\" \"lead form conversions,\" \"form friction,\" \"form fields,\" \"form completion rate,\" \"contact form,\" \"nobody fills out our form,\" \"form abandonment,\" \"too many fields,\" \"demo request form,\" or \"lead form isn't converting.\" Use this for any non-signup form that captures information. For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.", - "lastIndexed": 1772928417343 + "lastIndexed": 1773533410701 }, { "name": "free-tool-strategy", "registry": "coreyhaines31/marketingskills", "path": "skills/free-tool-strategy", - "description": "When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions \"engineering as marketing,\" \"free tool,\" \"marketing tool,\" \"calculator,\" \"generator,\" \"interactive tool,\" \"lead gen tool,\" \"build a tool for leads,\" \"free resource,\" \"ROI calculator,\" \"grader tool,\" \"audit tool,\" \"should I build a free tool,\" or \"tools for lead gen.\" Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For content-based lead generation, see content-strategy.", - "lastIndexed": 1772928417334 + "description": "When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions \"engineering as marketing,\" \"free tool,\" \"marketing tool,\" \"calculator,\" \"generator,\" \"interactive tool,\" \"lead gen tool,\" \"build a tool for leads,\" \"free resource,\" \"ROI calculator,\" \"grader tool,\" \"audit tool,\" \"should I build a free tool,\" or \"tools for lead gen.\" Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For downloadable content lead magnets (ebooks, checklists, templates), see lead-magnets.", + "lastIndexed": 1773533410707 }, { "name": "launch-strategy", "registry": "coreyhaines31/marketingskills", "path": "skills/launch-strategy", "description": "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,' 'beta launch,' 'early access,' 'waitlist,' 'product update,' 'how do I launch this,' 'launch checklist,' 'GTM plan,' or 'we're about to ship.' Use this whenever someone is preparing to release something publicly. For ongoing marketing after launch, see marketing-ideas.", - "lastIndexed": 1772928417344 + "lastIndexed": 1773533410708 + }, + { + "name": "lead-magnets", + "registry": "coreyhaines31/marketingskills", + "path": "skills/lead-magnets", + "description": "When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the user mentions \"lead magnet,\" \"gated content,\" \"content upgrade,\" \"downloadable,\" \"ebook,\" \"cheat sheet,\" \"checklist,\" \"template download,\" \"opt-in,\" \"freebie,\" \"PDF download,\" \"resource library,\" \"content offer,\" \"email capture content,\" \"Notion template,\" \"spreadsheet template,\" or \"what should I give away for emails.\" Use this for planning what to create and how to distribute it. For interactive tools as lead magnets, see free-tool-strategy. For writing the actual content, see copywriting. For the email sequence after capture, see email-sequence.", + "lastIndexed": 1773533410709 }, { "name": "marketing-ideas", "registry": "coreyhaines31/marketingskills", "path": "skills/marketing-ideas", "description": "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (paid-ads, social-content, email-sequence, etc.).", - "lastIndexed": 1772928417345 + "lastIndexed": 1773533410706 }, { "name": "marketing-psychology", "registry": "coreyhaines31/marketingskills", "path": "skills/marketing-psychology", "description": "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' 'consumer behavior,' 'anchoring,' 'social proof,' 'scarcity,' 'loss aversion,' 'framing,' or 'nudge.' Use this whenever someone wants to understand or leverage how people think and make decisions in a marketing context.", - "lastIndexed": 1772928417346 + "lastIndexed": 1773533410711 }, { "name": "onboarding-cro", "registry": "coreyhaines31/marketingskills", "path": "skills/onboarding-cro", "description": "When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions \"onboarding flow,\" \"activation rate,\" \"user activation,\" \"first-run experience,\" \"empty states,\" \"onboarding checklist,\" \"aha moment,\" \"new user experience,\" \"users aren't activating,\" \"nobody completes setup,\" \"low activation rate,\" \"users sign up but don't use the product,\" \"time to value,\" or \"first session experience.\" Use this whenever users are signing up but not sticking around. For signup/registration optimization, see signup-flow-cro. For ongoing email sequences, see email-sequence.", - "lastIndexed": 1772928417338 + "lastIndexed": 1773533410691 }, { "name": "page-cro", "registry": "coreyhaines31/marketingskills", "path": "skills/page-cro", "description": "When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing pages, pricing pages, feature pages, or blog posts. Also use when the user says \"CRO,\" \"conversion rate optimization,\" \"this page isn't converting,\" \"improve conversions,\" \"why isn't this page working,\" \"my landing page sucks,\" \"nobody's converting,\" \"low conversion rate,\" \"bounce rate is too high,\" \"people leave without signing up,\" or \"this page needs work.\" Use this even if the user just shares a URL and asks for feedback — they probably want conversion help. For signup/registration flows, see signup-flow-cro. For post-signup activation, see onboarding-cro. For forms outside of signup, see form-cro. For popups/modals, see popup-cro.", - "lastIndexed": 1772928417337 + "lastIndexed": 1773533410692 }, { "name": "paid-ads", "registry": "coreyhaines31/marketingskills", "path": "skills/paid-ads", "description": "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad budget,' 'cost per click,' 'ad spend,' or 'should I run ads.' Use this for campaign strategy, audience targeting, bidding, and optimization. For bulk ad creative generation and iteration, see ad-creative. For landing page optimization, see page-cro.", - "lastIndexed": 1772928417340 + "lastIndexed": 1773533410691 }, { "name": "paywall-upgrade-cro", "registry": "coreyhaines31/marketingskills", "path": "skills/paywall-upgrade-cro", "description": "When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions \"paywall,\" \"upgrade screen,\" \"upgrade modal,\" \"upsell,\" \"feature gate,\" \"convert free to paid,\" \"freemium conversion,\" \"trial expiration screen,\" \"limit reached screen,\" \"plan upgrade prompt,\" \"in-app pricing,\" \"free users won't upgrade,\" \"trial to paid conversion,\" or \"how do I get users to pay.\" Use this for any in-product moment where you're asking users to upgrade. Distinct from public pricing pages (see page-cro) — this focuses on in-product upgrade moments where the user has already experienced value. For pricing decisions, see pricing-strategy.", - "lastIndexed": 1772928417323 + "lastIndexed": 1773533410692 }, { "name": "popup-cro", "registry": "coreyhaines31/marketingskills", "path": "skills/popup-cro", "description": "When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions \"exit intent,\" \"popup conversions,\" \"modal optimization,\" \"lead capture popup,\" \"email popup,\" \"announcement banner,\" \"overlay,\" \"collect emails with a popup,\" \"exit popup,\" \"scroll trigger,\" \"sticky bar,\" or \"notification bar.\" Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see form-cro. For general page conversion optimization, see page-cro.", - "lastIndexed": 1772928417336 + "lastIndexed": 1773533410710 }, { "name": "pricing-strategy", "registry": "coreyhaines31/marketingskills", "path": "skills/pricing-strategy", "description": "When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' 'monetization,' 'how much should I charge,' 'my pricing is wrong,' 'pricing page,' 'annual vs monthly,' 'per seat pricing,' or 'should I offer a free plan.' Use this whenever someone is figuring out what to charge or how to structure their plans. For in-app upgrade screens, see paywall-upgrade-cro.", - "lastIndexed": 1772928417332 + "lastIndexed": 1773533410709 }, { "name": "product-marketing-context", "registry": "coreyhaines31/marketingskills", "path": "skills/product-marketing-context", "description": "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' 'who is my target audience,' 'describe my product,' 'ICP,' 'ideal customer profile,' or wants to avoid repeating foundational information across marketing tasks. Use this at the start of any new project before using other marketing skills — it creates `.agents/product-marketing-context.md` that all other skills reference for product, audience, and positioning context.", - "lastIndexed": 1772928417332 + "lastIndexed": 1773533410701 }, { "name": "programmatic-seo", "registry": "coreyhaines31/marketingskills", "path": "skills/programmatic-seo", "description": "When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions \"programmatic SEO,\" \"template pages,\" \"pages at scale,\" \"directory pages,\" \"location pages,\" \"[keyword] + [city] pages,\" \"comparison pages,\" \"integration pages,\" \"building many pages for SEO,\" \"pSEO,\" \"generate 100 pages,\" \"data-driven pages,\" or \"templated landing pages.\" Use this whenever someone wants to create many similar pages targeting different keywords or locations. For auditing existing SEO issues, see seo-audit. For content strategy planning, see content-strategy.", - "lastIndexed": 1772928417338 + "lastIndexed": 1773533410704 }, { "name": "referral-program", "registry": "coreyhaines31/marketingskills", "path": "skills/referral-program", "description": "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of mouth,' 'viral loop,' 'refer a friend,' 'partner program,' 'referral incentive,' 'how to get referrals,' 'customers referring customers,' or 'affiliate payout.' Use this whenever someone wants existing users or partners to bring in new customers. For launch-specific virality, see launch-strategy.", - "lastIndexed": 1772928417341 + "lastIndexed": 1773533410708 }, { "name": "revops", "registry": "coreyhaines31/marketingskills", "path": "skills/revops", "description": "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and processes that connect marketing to revenue. For cold outreach emails, see cold-email. For email drip campaigns, see email-sequence. For pricing decisions, see pricing-strategy.", - "lastIndexed": 1772928417344 + "lastIndexed": 1773533410709 }, { "name": "sales-enablement", "registry": "coreyhaines31/marketingskills", "path": "skills/sales-enablement", "description": "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'deal-specific ROI analysis,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' 'buyer persona card,' 'help my sales team,' 'sales materials,' or 'what should I give my sales reps.' Use this for any document or asset that helps a sales team close deals. For competitor comparison pages and battle cards, see competitor-alternatives. For marketing website copy, see copywriting. For cold outreach emails, see cold-email.", - "lastIndexed": 1772928417340 + "lastIndexed": 1773533410684 }, { "name": "schema-markup", "registry": "coreyhaines31/marketingskills", "path": "skills/schema-markup", "description": "When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions \"schema markup,\" \"structured data,\" \"JSON-LD,\" \"rich snippets,\" \"schema.org,\" \"FAQ schema,\" \"product schema,\" \"review schema,\" \"breadcrumb schema,\" \"Google rich results,\" \"knowledge panel,\" \"star ratings in search,\" or \"add structured data.\" Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see seo-audit. For AI search optimization, see ai-seo.", - "lastIndexed": 1772928417343 + "lastIndexed": 1773533410707 }, { "name": "seo-audit", "registry": "coreyhaines31/marketingskills", "path": "skills/seo-audit", "description": "When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions \"SEO audit,\" \"technical SEO,\" \"why am I not ranking,\" \"SEO issues,\" \"on-page SEO,\" \"meta tags review,\" \"SEO health check,\" \"my traffic dropped,\" \"lost rankings,\" \"not showing up in Google,\" \"site isn't ranking,\" \"Google update hit me,\" \"page speed,\" \"core web vitals,\" \"crawl errors,\" or \"indexing issues.\" Use this even if the user just says something vague like \"my SEO is bad\" or \"help with SEO\" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup. For AI search optimization, see ai-seo.", - "lastIndexed": 1772928417340 + "lastIndexed": 1773533410677 }, { "name": "signup-flow-cro", "registry": "coreyhaines31/marketingskills", "path": "skills/signup-flow-cro", "description": "When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions \"signup conversions,\" \"registration friction,\" \"signup form optimization,\" \"free trial signup,\" \"reduce signup dropoff,\" \"account creation flow,\" \"people aren't signing up,\" \"signup abandonment,\" \"trial conversion rate,\" \"nobody completes registration,\" \"too many steps to sign up,\" or \"simplify our signup.\" Use this whenever the user has a signup or registration flow that isn't performing. For post-signup onboarding, see onboarding-cro. For lead capture forms (not account creation), see form-cro.", - "lastIndexed": 1772928417334 + "lastIndexed": 1773533410708 }, { "name": "site-architecture", "registry": "coreyhaines31/marketingskills", "path": "skills/site-architecture", "description": "When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions \"sitemap,\" \"site map,\" \"visual sitemap,\" \"site structure,\" \"page hierarchy,\" \"information architecture,\" \"IA,\" \"navigation design,\" \"URL structure,\" \"breadcrumbs,\" \"internal linking strategy,\" \"website planning,\" \"what pages do I need,\" \"how should I organize my site,\" or \"site navigation.\" Use this whenever someone is planning what pages a website should have and how they connect. NOT for XML sitemaps (that's technical SEO — see seo-audit). For SEO audits, see seo-audit. For structured data, see schema-markup.", - "lastIndexed": 1772928417342 + "lastIndexed": 1773533410707 }, { "name": "social-content", "registry": "coreyhaines31/marketingskills", "path": "skills/social-content", "description": "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' or 'grow my following.' Use this for any social media content creation, repurposing, or scheduling task. For broader content strategy, see content-strategy.", - "lastIndexed": 1772928417341 + "lastIndexed": 1773533410695 }, { "name": "github-actions", "registry": "callstackincubator/agent-skills", "path": "skills/github-actions", "description": "GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts. Use when setting up CI build pipelines or downloading GitHub Actions artifacts via gh CLI and GitHub API.", - "lastIndexed": 1772928417497 + "lastIndexed": 1773533410780 }, { "name": "github", "registry": "callstackincubator/agent-skills", "path": "skills/github", "description": "GitHub patterns using gh CLI for pull requests, stacked PRs, code review, branching strategies, and repository automation. Use when working with GitHub PRs, merging strategies, or repository management tasks.", - "lastIndexed": 1772928417343 + "lastIndexed": 1773533410764 }, { "name": "react-native-best-practices", "registry": "callstackincubator/agent-skills", "path": "skills/react-native-best-practices", "description": "Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. Applies to tasks involving Hermes optimization, JS thread blocking, bridge overhead, FlashList, native modules, or debugging jank and frame drops.", - "lastIndexed": 1772928417353 + "lastIndexed": 1773533410779 }, { "name": "react-native-brownfield-migration", "registry": "callstackincubator/agent-skills", "path": "skills/react-native-brownfield-migration", "description": "Provides an incremental adoption strategy to migrate native iOS or Android apps to React Native or Expo using @callstack/react-native-brownfield for initial setup. Use when planning migration steps, packaging XCFramework/AAR artifacts, and integrating them into host apps.", - "lastIndexed": 1772928417349 + "lastIndexed": 1773533410762 }, { "name": "upgrading-react-native", "registry": "callstackincubator/agent-skills", "path": "skills/upgrading-react-native", "description": "Upgrades React Native apps to newer versions by applying rn-diff-purge template diffs, updating package.json dependencies, migrating native iOS and Android configuration, resolving CocoaPods and Gradle changes, and handling breaking API updates. Use when upgrading React Native, bumping RN version, updating from RN 0.x to 0.y, or migrating Expo SDK alongside a React Native upgrade.", - "lastIndexed": 1772928417347 + "lastIndexed": 1773533410755 }, { "name": "create-adaptable-composable", "registry": "hyf0/vue-skills", "path": "skills/create-adaptable-composable", "description": "Create a library-grade Vue composable that accepts maybe-reactive inputs (MaybeRef / MaybeRefOrGetter) so callers can pass a plain value, ref, or getter. Normalize inputs with toValue()/toRef() inside reactive effects (watch/watchEffect) to keep behavior predictable and reactive. Use this skill when user asks for creating adaptable or reusable composables.", - "lastIndexed": 1772928417418 + "lastIndexed": 1773533410859 }, { "name": "vue-best-practices", "registry": "hyf0/vue-skills", "path": "skills/vue-best-practices", "description": "MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.", - "lastIndexed": 1772928417417 + "lastIndexed": 1773533410856 }, { "name": "vue-debug-guides", "registry": "hyf0/vue-skills", "path": "skills/vue-debug-guides", "description": "Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.", - "lastIndexed": 1772928417416 + "lastIndexed": 1773533410864 }, { "name": "vue-jsx-best-practices", "registry": "hyf0/vue-skills", "path": "skills/vue-jsx-best-practices", "description": "JSX syntax in Vue (e.g., class vs className, JSX plugin config).", - "lastIndexed": 1772928417435 + "lastIndexed": 1773533410863 }, { "name": "vue-options-api-best-practices", "registry": "hyf0/vue-skills", "path": "skills/vue-options-api-best-practices", "description": "Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.", - "lastIndexed": 1772928417417 + "lastIndexed": 1773533410866 }, { "name": "vue-pinia-best-practices", "registry": "hyf0/vue-skills", "path": "skills/vue-pinia-best-practices", "description": "Pinia stores, state management patterns, store setup, and reactivity with stores.", - "lastIndexed": 1772928417423 + "lastIndexed": 1773533410881 }, { "name": "vue-router-best-practices", "registry": "hyf0/vue-skills", "path": "skills/vue-router-best-practices", "description": "Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.", - "lastIndexed": 1772928417422 + "lastIndexed": 1773533410886 }, { "name": "vue-testing-best-practices", "registry": "hyf0/vue-skills", "path": "skills/vue-testing-best-practices", "description": "Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.", - "lastIndexed": 1772928417423 + "lastIndexed": 1773533410891 }, { "name": "clawdirect-dev", "registry": "napoleond/clawdirect", "path": "skills/clawdirect-dev", "description": "Build agent-facing web experiences with ATXP-based authentication, following the ClawDirect pattern. Use this skill when building websites that AI agents interact with via MCP tools, implementing cookie-based agent auth, or creating agent skills for web apps. Provides templates using @longrun/turtle, Express, SQLite, and ATXP.", - "lastIndexed": 1772928417659 + "lastIndexed": 1773533411089 }, { "name": "clawdirect", "registry": "napoleond/clawdirect", "path": "skills/clawdirect", "description": "Interact with ClawDirect, a directory of social web experiences for AI agents. Use this skill to browse the directory, like entries, or add new sites. Requires ATXP authentication for MCP tool calls. Triggers: browsing agent-oriented websites, discovering social platforms for agents, liking/voting on directory entries, or submitting new agent-facing sites to ClawDirect.", - "lastIndexed": 1772928417659 + "lastIndexed": 1773533411091 }, { "name": "add-provider-package", "registry": "vercel/ai", "path": "skills/add-provider-package", "description": "Guide for adding new AI provider packages to the AI SDK. Use when creating a new @ai-sdk/<provider> package to integrate an AI service into the SDK.", - "lastIndexed": 1772928417782 + "lastIndexed": 1773533411212 + }, + { + "name": "adr-skill", + "registry": "vercel/ai", + "path": "skills/adr-skill", + "description": "Create and maintain Architecture Decision Records (ADRs) optimized for agentic coding workflows. Use when you need to propose, write, update, accept/reject, deprecate, or supersede an ADR; bootstrap an adr folder and index; consult existing ADRs before implementing changes; or enforce ADR conventions. This skill uses Socratic questioning to capture intent before drafting, and validates output against an agent-readiness checklist.", + "lastIndexed": 1773533411209 }, { "name": "capture-api-response-test-fixture", "registry": "vercel/ai", "path": "skills/capture-api-response-test-fixture", "description": "Capture API response test fixture.", - "lastIndexed": 1772928417800 + "lastIndexed": 1773533411195 }, { "name": "develop-ai-functions-example", "registry": "vercel/ai", "path": "skills/develop-ai-functions-example", "description": "Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples/ai-functions/src to validate provider support, demonstrate features, or create test fixtures.", - "lastIndexed": 1772928417786 + "lastIndexed": 1773533411198 }, { "name": "list-npm-package-content", "registry": "vercel/ai", "path": "skills/list-npm-package-content", "description": "List the contents of an npm package tarball before publishing. Use when the user wants to see what files are included in an npm bundle, verify package contents, or debug npm publish issues.", - "lastIndexed": 1772928417828 + "lastIndexed": 1773533411206 }, { "name": "update-provider-models", "registry": "vercel/ai", "path": "skills/update-provider-models", "description": "Add new or remove obsolete model IDs for existing AI SDK providers. Use when adding a model to a provider, removing an obsolete model, or processing a list of model changes from an issue. Triggers on \"add model\", \"remove model\", \"new model ID\", \"obsolete model\", \"update model IDs\".", - "lastIndexed": 1772928417802 + "lastIndexed": 1773533411222 }, { "name": "use-ai-sdk", "registry": "vercel/ai", "path": "skills/use-ai-sdk", "description": "Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: \"AI SDK\", \"Vercel AI SDK\", \"generateText\", \"streamText\", \"add AI to my app\", \"build an agent\", \"tool calling\", \"structured output\", \"useChat\".", - "lastIndexed": 1772928417804 + "lastIndexed": 1773533411194 }, { "name": "ralph-tui-create-beads-rust", "registry": "subsy/ralph-tui", "path": "skills/ralph-tui-create-beads-rust", "description": "Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI). Creates an epic with child beads for each user story. Use when you have a PRD and want to use ralph-tui with beads-rust as the task source. Triggers on: create beads, convert prd to beads, beads for ralph, ralph beads, br beads.", - "lastIndexed": 1772928417679 + "lastIndexed": 1773533411084 }, { "name": "ralph-tui-create-beads", "registry": "subsy/ralph-tui", "path": "skills/ralph-tui-create-beads", "description": "Convert PRDs to beads for ralph-tui execution. Creates an epic with child beads for each user story. Use when you have a PRD and want to use ralph-tui with beads as the task source. Triggers on: create beads, convert prd to beads, beads for ralph, ralph beads.", - "lastIndexed": 1772928417681 + "lastIndexed": 1773533411076 }, { "name": "ralph-tui-create-json", "registry": "subsy/ralph-tui", "path": "skills/ralph-tui-create-json", "description": "Convert PRDs to prd.json format for ralph-tui execution. Creates JSON task files with user stories, acceptance criteria, and dependencies. Triggers on: create prd.json, convert to json, ralph json, create json tasks.", - "lastIndexed": 1772928417691 + "lastIndexed": 1773533411089 }, { "name": "ralph-tui-prd", "registry": "subsy/ralph-tui", "path": "skills/ralph-tui-prd", "description": "Generate a Product Requirements Document (PRD) for ralph-tui task orchestration. Creates PRDs with user stories that can be converted to beads issues or prd.json for automated execution. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.", - "lastIndexed": 1772928417681 + "lastIndexed": 1773533411085 }, { "name": "atxp-memory", "registry": "atxp-dev/cli", "path": "skills/atxp-memory", "description": "Agent memory management — cloud backup, restore, and local vector search of .md memory files", - "lastIndexed": 1772928417675 + "lastIndexed": 1773533411083 }, { "name": "atxp", "registry": "atxp-dev/cli", "path": "skills/atxp", "description": "Agent wallet, identity, and paid tools in one package. Register an agent, fund it via Stripe or USDC, then use the balance for web search, AI image generation, AI video generation, AI music creation, X/Twitter search, email send/receive, SMS and voice calls, contacts management, and 100+ LLM models. The funding and identity layer for autonomous agents that need to spend money, send messages, make phone calls, or call paid APIs.", - "lastIndexed": 1772928417680 + "lastIndexed": 1773533411095 }, { "name": "turborepo", "registry": "vercel/turborepo", "path": "skills/turborepo", "description": "Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines,\ndependsOn, caching, remote cache, the \"turbo\" CLI, --filter, --affected, CI optimization, environment\nvariables, internal packages, monorepo structure/best practices, and boundaries.\n\nUse when user: configures tasks/workflows/pipelines, creates packages, sets up\nmonorepo, shares code between apps, runs changed/affected packages, debugs cache,\nor has apps/packages directories.", - "lastIndexed": 1772928418090 + "lastIndexed": 1773533411533 }, { "name": "baoyu-article-illustrator", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-article-illustrator", "description": "Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style two-dimension approach. Use when user asks to \"illustrate article\", \"add images\", \"generate images for article\", or \"为文章配图\".", - "lastIndexed": 1772928417975 + "lastIndexed": 1773533411410 }, { "name": "baoyu-comic", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-comic", "description": "Knowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts and sequential image generation. Use when user asks to create \"知识漫画\", \"教育漫画\", \"biography comic\", \"tutorial comic\", or \"Logicomix-style comic\".", - "lastIndexed": 1772928417976 + "lastIndexed": 1773533411410 }, { "name": "baoyu-compress-image", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-compress-image", "description": "Compresses images to WebP (default) or PNG with automatic tool selection. Use when user asks to \"compress image\", \"optimize image\", \"convert to webp\", or reduce image file size.", - "lastIndexed": 1772928417961 + "lastIndexed": 1773533411404 }, { "name": "baoyu-cover-image", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-cover-image", - "description": "Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 9 color palettes and 6 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to \"generate cover image\", \"create article cover\", or \"make cover\".", - "lastIndexed": 1772928417969 + "description": "Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 10 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to \"generate cover image\", \"create article cover\", or \"make cover\".", + "lastIndexed": 1773533411412 }, { "name": "baoyu-danger-gemini-web", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-danger-gemini-web", "description": "Generates images and text via reverse-engineered Gemini Web API. Supports text generation, image generation from prompts, reference images for vision input, and multi-turn conversations. Use when other skills need image generation backend, or when user requests \"generate image with Gemini\", \"Gemini text generation\", or needs vision-capable AI generation.", - "lastIndexed": 1772928417964 + "lastIndexed": 1773533411400 }, { "name": "baoyu-danger-x-to-markdown", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-danger-x-to-markdown", "description": "Converts X (Twitter) tweets and articles to markdown with YAML front matter. Uses reverse-engineered API requiring user consent. Use when user mentions \"X to markdown\", \"tweet to markdown\", \"save tweet\", or provides x.com/twitter.com URLs for conversion.", - "lastIndexed": 1772928417988 + "lastIndexed": 1773533411416 }, { "name": "baoyu-format-markdown", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-format-markdown", "description": "Formats plain text or markdown files with frontmatter, titles, summaries, headings, bold, lists, and code blocks. Use when user asks to \"format markdown\", \"beautify article\", \"add formatting\", or improve article layout. Outputs to {filename}-formatted.md.", - "lastIndexed": 1772928417960 + "lastIndexed": 1773533411414 }, { "name": "baoyu-image-gen", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-image-gen", - "description": "AI image generation with OpenAI, Google, DashScope and Replicate APIs. Supports text-to-image, reference images, aspect ratios. Sequential by default; parallel generation available on request. Use when user asks to generate, create, or draw images.", - "lastIndexed": 1772928417973 + "description": "AI image generation with OpenAI, Google, OpenRouter, DashScope, Jimeng, Seedream and Replicate APIs. Supports text-to-image, reference images, aspect ratios, and batch generation from saved prompt files. Sequential by default; use batch parallel generation when the user already has multiple prompts or wants stable multi-image throughput. Use when user asks to generate, create, or draw images.", + "lastIndexed": 1773533411416 }, { "name": "baoyu-infographic", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-infographic", "description": "Generates professional infographics with 21 layout types and 20 visual styles. Analyzes content, recommends layout×style combinations, and generates publication-ready infographics. Use when user asks to create \"infographic\", \"信息图\", \"visual summary\", \"可视化\", or \"高密度信息大图\".", - "lastIndexed": 1772928417976 + "lastIndexed": 1773533411411 }, { "name": "baoyu-markdown-to-html", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-markdown-to-html", "description": "Converts Markdown to styled HTML with WeChat-compatible themes. Supports code highlighting, math, PlantUML, footnotes, alerts, infographics, and optional bottom citations for external links. Use when user asks for \"markdown to html\", \"convert md to html\", \"md转html\", \"微信外链转底部引用\", or needs styled HTML output from markdown.", - "lastIndexed": 1772928417966 + "lastIndexed": 1773533411415 }, { "name": "baoyu-post-to-wechat", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-post-to-wechat", "description": "Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP. Supports article posting (文章) with HTML, markdown, or plain text input, and image-text posting (贴图, formerly 图文) with multiple images. Markdown article workflows default to converting ordinary external links into bottom citations for WeChat-friendly output. Use when user mentions \"发布公众号\", \"post to wechat\", \"微信公众号\", or \"贴图/图文/文章\".", - "lastIndexed": 1772928417966 + "lastIndexed": 1773533411419 }, { "name": "baoyu-post-to-weibo", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-post-to-weibo", "description": "Posts content to Weibo (微博). Supports regular posts with text, images, and videos, and headline articles (头条文章) with Markdown input via Chrome CDP. Use when user asks to \"post to Weibo\", \"发微博\", \"发布微博\", \"publish to Weibo\", \"share on Weibo\", \"写微博\", or \"微博头条文章\".", - "lastIndexed": 1772928417979 + "lastIndexed": 1773533411419 }, { "name": "baoyu-post-to-x", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-post-to-x", "description": "Posts content and articles to X (Twitter). Supports regular posts with images/videos and X Articles (long-form Markdown). Uses real Chrome with CDP to bypass anti-automation. Use when user asks to \"post to X\", \"tweet\", \"publish to Twitter\", or \"share on X\".", - "lastIndexed": 1772928417967 + "lastIndexed": 1773533411413 }, { "name": "baoyu-slide-deck", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-slide-deck", "description": "Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to \"create slides\", \"make a presentation\", \"generate deck\", \"slide deck\", or \"PPT\".", - "lastIndexed": 1772928417968 + "lastIndexed": 1773533411418 }, { "name": "baoyu-translate", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-translate", "description": "Translates articles and documents between languages with three modes - quick (direct), normal (analyze then translate), and refined (analyze, translate, review, polish). Supports custom glossaries and terminology consistency via EXTEND.md. Use when user asks to \"translate\", \"翻译\", \"精翻\", \"translate article\", \"translate to Chinese/English\", \"改成中文\", \"改成英文\", \"convert to Chinese\", \"localize\", \"本地化\", or needs any document translation. Also triggers for \"refined translation\", \"精细翻译\", \"proofread translation\", \"快速翻译\", \"快翻\", \"这篇文章翻译一下\", or when a URL or file is provided with translation intent.", - "lastIndexed": 1772928417973 + "lastIndexed": 1773533411425 }, { "name": "baoyu-url-to-markdown", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-url-to-markdown", - "description": "Fetch any URL and convert to markdown using Chrome CDP. Saves the rendered HTML snapshot alongside the markdown, and automatically falls back to the pre-Defuddle HTML-to-Markdown pipeline when Defuddle fails. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login). Use when user wants to save a webpage as markdown.", - "lastIndexed": 1772928417964 + "description": "Fetch any URL and convert to markdown using Chrome CDP. Saves the rendered HTML snapshot alongside the markdown, uses an upgraded Defuddle pipeline with better web-component handling and YouTube transcript extraction, and automatically falls back to the pre-Defuddle HTML-to-Markdown pipeline when needed. If local browser capture fails entirely, it can fall back to the hosted defuddle.md API. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login). Use when user wants to save a webpage as markdown.", + "lastIndexed": 1773533411413 }, { "name": "baoyu-xhs-images", "registry": "jimliu/baoyu-skills", "path": "skills/baoyu-xhs-images", - "description": "Generates Xiaohongshu (Little Red Book) infographic series with 10 visual styles and 8 layouts. Breaks content into 1-10 cartoon-style images optimized for XHS engagement. Use when user mentions \"小红书图片\", \"XHS images\", \"RedNote infographics\", \"小红书种草\", or wants social media infographics for Chinese platforms.", - "lastIndexed": 1772928417970 + "description": "Generates Xiaohongshu (Little Red Book) infographic series with 11 visual styles and 8 layouts. Breaks content into 1-10 cartoon-style images optimized for XHS engagement. Use when user mentions \"小红书图片\", \"XHS images\", \"RedNote infographics\", \"小红书种草\", or wants social media infographics for Chinese platforms.", + "lastIndexed": 1773533411424 }, { "name": "design-md", "registry": "google-labs-code/stitch-skills", "path": "skills/design-md", "description": "Analyze Stitch projects and synthesize a semantic design system into DESIGN.md files", - "lastIndexed": 1772928417987 + "lastIndexed": 1773533411401 }, { "name": "enhance-prompt", "registry": "google-labs-code/stitch-skills", "path": "skills/enhance-prompt", "description": "Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.", - "lastIndexed": 1772928417985 + "lastIndexed": 1773533411404 }, { "name": "react-components", "registry": "google-labs-code/stitch-skills", "path": "skills/react-components", "description": "Converts Stitch designs into modular Vite and React components using system-level networking and AST-based validation.", - "lastIndexed": 1772928417985 + "lastIndexed": 1773533411393 }, { "name": "remotion", "registry": "google-labs-code/stitch-skills", "path": "skills/remotion", "description": "Generate walkthrough videos from Stitch projects using Remotion with smooth transitions, zooming, and text overlays", - "lastIndexed": 1772928417995 + "lastIndexed": 1773533411415 }, { "name": "shadcn-ui", "registry": "google-labs-code/stitch-skills", "path": "skills/shadcn-ui", "description": "Expert guidance for integrating and building applications with shadcn/ui components, including component discovery, installation, customization, and best practices.", - "lastIndexed": 1772928417980 + "lastIndexed": 1773533411402 + }, + { + "name": "stitch-design", + "registry": "google-labs-code/stitch-skills", + "path": "skills/stitch-design", + "description": "Unified entry point for Stitch design work. Handles prompt enhancement (UI/UX keywords, atmosphere), design system synthesis (.stitch/DESIGN.md), and high-fidelity screen generation/editing via Stitch MCP.", + "lastIndexed": 1773533411393 }, { "name": "stitch-loop", "registry": "google-labs-code/stitch-skills", "path": "skills/stitch-loop", "description": "Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern", - "lastIndexed": 1772928417986 + "lastIndexed": 1773533411397 + }, + { + "name": "firecrawl-agent", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-agent", + "description": "AI-powered autonomous data extraction that navigates complex sites and returns structured JSON. Use this skill when the user wants structured data from websites, needs to extract pricing tiers, product listings, directory entries, or any data as JSON with a schema. Triggers on \"extract structured data\", \"get all the products\", \"pull pricing info\", \"extract as JSON\", or when the user provides a JSON schema for website data. More powerful than simple scraping for multi-page structured extraction.", + "lastIndexed": 1773533411425 + }, + { + "name": "firecrawl-browser", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-browser", + "description": "Cloud browser automation for pages requiring interaction — clicks, form fills, login, pagination, infinite scroll. Use this skill when the user needs to interact with a webpage, log into a site, click buttons, fill forms, navigate multi-step flows, handle pagination, or when regular scraping fails because content requires JavaScript interaction. Triggers on \"click\", \"fill out the form\", \"log in to\", \"paginated\", \"infinite scroll\", \"interact with the page\", or \"scrape failed\". Provides remote Chromium sessions with persistent profiles.", + "lastIndexed": 1773533411425 }, { "name": "firecrawl-cli", "registry": "firecrawl/cli", "path": "skills/firecrawl-cli", - "description": "Official Firecrawl CLI skill for web scraping, search, crawling, and browser automation. Returns clean LLM-optimized markdown.\n\nUSE FOR:\n- Web search and research\n- Scraping pages, docs, and articles\n- Site mapping and bulk content extraction\n- Browser automation for interactive pages\n\nMust be pre-installed and authenticated. See rules/install.md for setup, rules/security.md for output handling.", - "lastIndexed": 1772928417981 + "description": "Web scraping, search, crawling, and browser automation via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, extract data from a website, crawl documentation, download a site, or interact with pages that need clicks or logins. Also use when they say \"fetch this page\", \"pull the content from\", \"get the page at https://\", or reference scraping external websites. This provides real-time web search with full page content extraction and cloud browser automation — capabilities beyond what Claude can do natively with built-in tools. Do NOT trigger for local file operations, git commands, deployments, or code editing tasks.", + "lastIndexed": 1773533411443 + }, + { + "name": "firecrawl-crawl", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-crawl", + "description": "Bulk extract content from an entire website or site section. Use this skill when the user wants to crawl a site, extract all pages from a docs section, bulk-scrape multiple pages following links, or says \"crawl\", \"get all the pages\", \"extract everything under /docs\", \"bulk extract\", or needs content from many pages on the same site. Handles depth limits, path filtering, and concurrent extraction.", + "lastIndexed": 1773533411424 + }, + { + "name": "firecrawl-download", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-download", + "description": "Download an entire website as local files — markdown, screenshots, or multiple formats per page. Use this skill when the user wants to save a site locally, download documentation for offline use, bulk-save pages as files, or says \"download the site\", \"save as local files\", \"offline copy\", \"download all the docs\", or \"save for reference\". Combines site mapping and scraping into organized local directories.", + "lastIndexed": 1773533411429 + }, + { + "name": "firecrawl-map", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-map", + "description": "Discover and list all URLs on a website, with optional search filtering. Use this skill when the user wants to find a specific page on a large site, list all URLs, see the site structure, find where something is on a domain, or says \"map the site\", \"find the URL for\", \"what pages are on\", or \"list all pages\". Essential when the user knows which site but not which exact page.", + "lastIndexed": 1773533411423 + }, + { + "name": "firecrawl-scrape", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-scrape", + "description": "Extract clean markdown from any URL, including JavaScript-rendered SPAs. Use this skill whenever the user provides a URL and wants its content, says \"scrape\", \"grab\", \"fetch\", \"pull\", \"get the page\", \"extract from this URL\", or \"read this webpage\". Handles JS-rendered pages, multiple concurrent URLs, and returns LLM-optimized markdown. Use this instead of WebFetch for any webpage content extraction.", + "lastIndexed": 1773533411427 + }, + { + "name": "firecrawl-search", + "registry": "firecrawl/cli", + "path": "skills/firecrawl-search", + "description": "Web search with full page content extraction. Use this skill whenever the user asks to search the web, find articles, research a topic, look something up, find recent news, discover sources, or says \"search for\", \"find me\", \"look up\", \"what are people saying about\", or \"find articles about\". Returns real search results with optional full-page markdown — not just snippets. Provides capabilities beyond Claude's built-in WebSearch.", + "lastIndexed": 1773533411421 }, { "name": "next-best-practices", "registry": "vercel-labs/next-skills", "path": "skills/next-best-practices", "description": "Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling", - "lastIndexed": 1772928418224 + "lastIndexed": 1773533411741 }, { "name": "next-cache-components", "registry": "vercel-labs/next-skills", "path": "skills/next-cache-components", "description": "Next.js 16 Cache Components - PPR, use cache directive, cacheLife, cacheTag, updateTag", - "lastIndexed": 1772928418226 + "lastIndexed": 1773533411736 }, { "name": "next-upgrade", "registry": "vercel-labs/next-skills", "path": "skills/next-upgrade", "description": "Upgrade Next.js to the latest version following official migration guides and codemods", - "lastIndexed": 1772928418225 + "lastIndexed": 1773533411742 }, { "name": "anki-connect", "registry": "intellectronica/agent-skills", "path": "skills/anki-connect", "description": "This skill is for interacting with Anki through AnkiConnect, and should be used whenever a user asks to interact with Anki, including to read or modify decks, notes, cards, models, media, or sync operations.", - "lastIndexed": 1772928418263 + "lastIndexed": 1773533411710 }, { "name": "beautiful-mermaid", "registry": "intellectronica/agent-skills", "path": "skills/beautiful-mermaid", "description": "Render Mermaid diagrams as SVG and PNG using the Beautiful Mermaid library. Use when the user asks to render a Mermaid diagram.", - "lastIndexed": 1772928418264 + "lastIndexed": 1773533411687 }, { "name": "context7", "registry": "intellectronica/agent-skills", "path": "skills/context7", "description": "Retrieve up-to-date documentation for software libraries, frameworks, and components via the Context7 API. This skill should be used when looking up documentation for any programming library or framework, finding code examples for specific APIs or features, verifying correct usage of library functions, or obtaining current information about library APIs that may have changed since training.", - "lastIndexed": 1772928418199 + "lastIndexed": 1773533411710 }, { "name": "copilot-sdk", "registry": "intellectronica/agent-skills", "path": "skills/copilot-sdk", "description": "This skill provides guidance for creating agents and applications with the GitHub Copilot SDK. It should be used when the user wants to create, modify, or work on software that uses the GitHub Copilot SDK in TypeScript, Python, Go, or .NET. The skill covers SDK usage patterns, CLI configuration, custom tools, MCP servers, and custom agents.", - "lastIndexed": 1772928418255 + "lastIndexed": 1773533411723 }, { "name": "gog-cli", "registry": "intellectronica/agent-skills", "path": "skills/gog-cli", "description": "This skill provides comprehensive instructions for using gogcli (gog), a fast, script-friendly CLI for Google Workspace services including Gmail, Calendar, Drive, Docs, Sheets, Slides, Chat, Classroom, Contacts, Tasks, People, Groups, and Keep. This skill should be used when the user wants to interact with Google services via the command line, including reading/sending email, managing calendar events, working with Google Drive files, managing classroom courses, or any other Google Workspace operations. The skill assumes gog is installed and authorised.", - "lastIndexed": 1772928418258 + "lastIndexed": 1773533411711 }, { "name": "gpt-image-1-5", "registry": "intellectronica/agent-skills", "path": "skills/gpt-image-1-5", "description": "Generate and edit images using OpenAI's GPT Image 1.5 model. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., \"modify this image\", \"change the background\", \"replace X with Y\"). Supports text-to-image generation and image editing with optional mask. DO NOT read the image file first - use this skill directly with the --input-image parameter.", - "lastIndexed": 1772928418257 + "lastIndexed": 1773533411709 }, { "name": "here-be-git", "registry": "intellectronica/agent-skills", "path": "skills/here-be-git", "description": "Initialise a git repository with optional agent commit instructions and .gitignore. Use when users say \"here be git\", \"init git\", \"initialise git\", or otherwise indicate they want to set up version control in the current directory.", - "lastIndexed": 1772928418257 + "lastIndexed": 1773533411715 }, { "name": "lorem-ipsum", "registry": "intellectronica/agent-skills", "path": "skills/lorem-ipsum", "description": "Generate lorem ipsum placeholder text. This skill should be used when users ask to generate lorem ipsum content, placeholder text, dummy text, or filler text. Supports various structures including plain paragraphs, headings with sections, lists, and continuous text. Output can be saved to a file or used directly as requested by the user.", - "lastIndexed": 1772928418242 + "lastIndexed": 1773533411712 }, { "name": "markdown-converter", "registry": "intellectronica/agent-skills", "path": "skills/markdown-converter", "description": "Convert documents and files to Markdown using markitdown. Use when converting PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx, .xls), HTML, CSV, JSON, XML, images (with EXIF/OCR), audio (with transcription), ZIP archives, YouTube URLs, or EPubs to Markdown format for LLM processing or text analysis.", - "lastIndexed": 1772928418379 + "lastIndexed": 1773533411710 }, { "name": "mgrep-code-search", "registry": "intellectronica/agent-skills", "path": "skills/mgrep-code-search", "description": "Semantic code search using mgrep for efficient codebase exploration. This skill should be used when searching or exploring codebases with more than 30 non-gitignored files and/or nested directory structures. It provides natural language semantic search that complements traditional grep/ripgrep for finding features, understanding intent, and exploring unfamiliar code.", - "lastIndexed": 1772928418265 + "lastIndexed": 1773533411711 }, { "name": "nano-banana-2", "registry": "intellectronica/agent-skills", "path": "skills/nano-banana-2", "description": "Generate and edit images using Google's Nano Banana 2 (Gemini 3.1 Flash Image Preview) API. This skill should be used when the user asks to create or modify images, especially when they need fast iteration, explicit aspect-ratio control, or resolution control from 512px to 4K.", - "lastIndexed": 1772928418253 + "lastIndexed": 1773533411713 }, { "name": "nano-banana-pro", "registry": "intellectronica/agent-skills", "path": "skills/nano-banana-pro", "description": "Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., \"modify this image\", \"change the background\", \"replace X with Y\"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.", - "lastIndexed": 1772928418231 + "lastIndexed": 1773533411707 }, { "name": "notion-api", "registry": "intellectronica/agent-skills", "path": "skills/notion-api", "description": "This skill provides comprehensive instructions for interacting with the Notion API via REST calls. This skill should be used whenever the user asks to interact with Notion, including reading, creating, updating, or deleting pages, databases, blocks, comments, or any other Notion content. The skill covers authentication, all available endpoints, pagination, error handling, and best practices.", - "lastIndexed": 1772928418223 + "lastIndexed": 1773533411711 }, { "name": "promptify", "registry": "intellectronica/agent-skills", "path": "skills/promptify", "description": "Transform user requests into detailed, precise prompts for AI models. Use when users say \"promptify\", \"promptify this\", or explicitly request prompt engineering or improvement of their request for better AI responses.", - "lastIndexed": 1772928418256 + "lastIndexed": 1773533411710 }, { "name": "raindrop-api", "registry": "intellectronica/agent-skills", "path": "skills/raindrop-api", "description": "This skill provides comprehensive instructions for interacting with the Raindrop.io bookmarks service via its REST API using curl and jq. It covers authentication, CRUD operations for collections, raindrops (bookmarks), tags, highlights, filters, import/export, and backups. Use this skill whenever the user asks to work with their bookmarks from Raindrop.io, including reading, creating, updating, deleting, searching, or organising bookmarks and collections.", - "lastIndexed": 1772928418259 + "lastIndexed": 1773533411720 }, { "name": "ray-so-code-snippet", "registry": "intellectronica/agent-skills", "path": "skills/ray-so-code-snippet", "description": "Generate beautiful code snippet images using ray.so. This skill should be used when the user asks to create a code image, code screenshot, code snippet image, or wants to make their code look pretty for sharing. Saves images locally to the current working directory or a user-specified path.", - "lastIndexed": 1772928418256 + "lastIndexed": 1773533411712 }, { "name": "tavily", "registry": "intellectronica/agent-skills", "path": "skills/tavily", "description": "Use this skill for web search, extraction, mapping, crawling, and research via Tavily’s REST API when web searches are needed and no built-in tool is available, or when Tavily’s LLM-friendly format is beneficial.", - "lastIndexed": 1772928418247 + "lastIndexed": 1773533411710 }, { "name": "todoist-api", "registry": "intellectronica/agent-skills", "path": "skills/todoist-api", "description": "This skill provides instructions for interacting with Todoist using the td CLI tool. It covers CRUD operations for tasks/projects/sections/labels/comments, and requires confirmation before destructive actions. Use this skill when the user wants to read, create, update, or delete Todoist data.", - "lastIndexed": 1772928418242 + "lastIndexed": 1773533411711 }, { "name": "ultrathink", "registry": "intellectronica/agent-skills", "path": "skills/ultrathink", "description": "Display colorful ANSI art of the word \"ultrathink\". Use when the user says \"ultrathink\" or invokes /ultrathink.", - "lastIndexed": 1772928418233 + "lastIndexed": 1773533411708 }, { "name": "upstash-redis-kv", "registry": "intellectronica/agent-skills", "path": "skills/upstash-redis-kv", "description": "Read and write to Upstash Redis-compatible key-value store via REST API. Use when there is a need to save or retrieve key-value data, use Redis features (caching, counters, lists, sets, hashes, sorted sets, etc.) for the current interaction, or when the user explicitly asks to use Upstash or Redis.", - "lastIndexed": 1772928418247 + "lastIndexed": 1773533411742 }, { "name": "youtube-transcript", "registry": "intellectronica/agent-skills", "path": "skills/youtube-transcript", "description": "Extract transcripts from YouTube videos. Use when the user asks for a transcript, subtitles, or captions of a YouTube video and provides a YouTube URL (youtube.com/watch?v=, youtu.be/, or similar). Supports output with or without timestamps.", - "lastIndexed": 1772928418251 + "lastIndexed": 1773533411707 }, { "name": "react-email", "registry": "resend/react-email", "path": "skills/react-email", "description": "Use when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.", - "lastIndexed": 1772928418301 + "lastIndexed": 1773533411824 }, { "name": "document-writer", "registry": "onmax/nuxt-skills", "path": "skills/document-writer", "description": "Use when writing blog posts or documentation markdown files - provides writing style guide (active voice, present tense), content structure patterns, and MDC component usage. Overrides brevity rules for proper grammar. Use nuxt-content for MDC syntax, nuxt-ui for component props.", - "lastIndexed": 1772928418428 + "lastIndexed": 1773533419022 }, { "name": "motion", "registry": "onmax/nuxt-skills", "path": "skills/motion", "description": "Use when adding animations with Motion Vue (motion-v) - provides motion component API, gesture animations, scroll-linked effects, layout transitions, and composables for Vue 3/Nuxt", - "lastIndexed": 1772928418437 + "lastIndexed": 1773533418956 }, { "name": "nuxt-better-auth", "registry": "onmax/nuxt-skills", "path": "skills/nuxt-better-auth", "description": "Use when implementing auth in Nuxt apps with @onmax/nuxt-better-auth - provides useUserSession composable, server auth helpers, route protection, and Better Auth plugins integration.", - "lastIndexed": 1772928418421 + "lastIndexed": 1773533418953 }, { "name": "nuxt-content", "registry": "onmax/nuxt-skills", "path": "skills/nuxt-content", "description": "Use when working with Nuxt Content v3, markdown content, or CMS features in Nuxt - provides collections (local/remote/API sources), queryCollection API, MDC rendering, database configuration, NuxtStudio integration, hooks, i18n patterns, and LLMs integration", - "lastIndexed": 1772928418406 + "lastIndexed": 1773533418954 }, { "name": "nuxt-modules", "registry": "onmax/nuxt-skills", "path": "skills/nuxt-modules", "description": "Use when creating Nuxt modules: (1) Published npm modules (@nuxtjs/, nuxt-), (2) Local project modules (modules/ directory), (3) Runtime extensions (components, composables, plugins), (4) Server extensions (API routes, middleware), (5) Releasing/publishing modules to npm, (6) Setting up CI/CD workflows for modules. Provides defineNuxtModule patterns, Kit utilities, hooks, E2E testing, and release automation.", - "lastIndexed": 1772928418442 + "lastIndexed": 1773533418956 }, { "name": "nuxt-seo", "registry": "onmax/nuxt-skills", "path": "skills/nuxt-seo", "description": "Nuxt SEO meta-module with robots, sitemap, og-image, schema-org. Use when configuring SEO, generating sitemaps, creating OG images, or adding structured data.", - "lastIndexed": 1772928418438 + "lastIndexed": 1773533418979 + }, + { + "name": "nuxt-studio", + "registry": "onmax/nuxt-skills", + "path": "skills/nuxt-studio", + "description": "Use when working with Nuxt Studio, the self-hosted open-source CMS for Nuxt Content sites - provides visual editing, media management, Git-based publishing, auth providers, and AI content assistance", + "lastIndexed": 1773533418953 }, { "name": "nuxt-ui", "registry": "onmax/nuxt-skills", "path": "skills/nuxt-ui", "description": "Use when building styled UI with @nuxt/ui v4 components - create forms with validation, implement data tables with sorting, build modal dialogs and overlays, configure Tailwind Variants theming. Use vue skill for raw component patterns, reka-ui for headless primitives.", - "lastIndexed": 1772928418417 + "lastIndexed": 1773533418949 }, { "name": "nuxt", "registry": "onmax/nuxt-skills", "path": "skills/nuxt", "description": "Use when working on Nuxt 4+ projects - provides server routes, file-based routing, middleware patterns, Nuxt-specific composables, and configuration with latest docs. Covers h3 v1 helpers (validation, WebSocket, SSE) and nitropack v2 patterns. Updated for Nuxt 4.3+.", - "lastIndexed": 1772928418423 + "lastIndexed": 1773533419000 }, { "name": "nuxthub", "registry": "onmax/nuxt-skills", "path": "skills/nuxthub", "description": "Use when building NuxtHub v0.10.6 applications - provides database (Drizzle ORM with sqlite/postgresql/mysql), KV storage, blob storage, and cache APIs. Covers configuration, schema definition, migrations, multi-cloud deployment (Cloudflare, Vercel), and the new hub:db, hub:kv, hub:blob virtual module imports.", - "lastIndexed": 1772928418435 + "lastIndexed": 1773533418946 }, { "name": "pnpm", "registry": "onmax/nuxt-skills", "path": "skills/pnpm", "description": "Use when managing Node.js dependencies with pnpm - install packages, configure monorepo workspaces, set up pnpm catalogs, resolve dependency conflicts with overrides, patch third-party packages, and configure CI pipelines for pnpm projects", - "lastIndexed": 1772928418449 + "lastIndexed": 1773533418974 }, { "name": "reka-ui", "registry": "onmax/nuxt-skills", "path": "skills/reka-ui", "description": "Use when building with Reka UI (headless Vue components) - provides component API, accessibility patterns, composition (asChild), controlled/uncontrolled state, virtualization, and styling integration. Formerly Radix Vue.", - "lastIndexed": 1772928418425 + "lastIndexed": 1773533418967 }, { "name": "tresjs", "registry": "onmax/nuxt-skills", "path": "skills/tresjs", "description": "Use when building 3D scenes with TresJS (Vue Three.js) - provides TresCanvas, composables (useTres, useLoop), Cientos helpers (OrbitControls, useGLTF, Environment), and post-processing effects", - "lastIndexed": 1772928418441 + "lastIndexed": 1773533418965 }, { "name": "ts-library", "registry": "onmax/nuxt-skills", "path": "skills/ts-library", "description": "Use when authoring TypeScript libraries or npm packages - covers project setup, package.json exports, build tooling (tsdown/unbuild), API design patterns, type inference tricks, testing, and publishing to npm. Use when bundling, configuring dual CJS/ESM output, or setting up release workflows.", - "lastIndexed": 1772928418562 + "lastIndexed": 1773533418960 }, { "name": "tsdown", "registry": "onmax/nuxt-skills", "path": "skills/tsdown", "description": "Use when bundling TypeScript libraries - provides tsdown configuration, dual ESM/CJS output, .d.ts generation, package validation, and plugin authoring", - "lastIndexed": 1772928418428 + "lastIndexed": 1773533418969 }, { "name": "vite", "registry": "onmax/nuxt-skills", "path": "skills/vite", "description": "Vite build tool configuration, plugin API, SSR, and Vite 8 Rolldown migration. Use when working with Vite projects, vite.config.ts, Vite plugins, or building libraries/SSR apps with Vite.", - "lastIndexed": 1772928418432 + "lastIndexed": 1773533418971 }, { "name": "vitest", "registry": "onmax/nuxt-skills", "path": "skills/vitest", "description": "Use when writing unit/integration tests for Vite projects - configure vitest.config.ts, write test suites with describe/it, create mock implementations with vi.fn and vi.mock, set up code coverage thresholds, and run tests in parallel", - "lastIndexed": 1772928418428 + "lastIndexed": 1773533419043 }, { "name": "vue", "registry": "onmax/nuxt-skills", "path": "skills/vue", "description": "Use when editing .vue files, creating Vue 3 components, writing composables, or testing Vue code - provides Composition API patterns, props/emits best practices, VueUse integration, and reactive destructuring guidance", - "lastIndexed": 1772928418426 + "lastIndexed": 1773533418957 }, { "name": "vueuse", "registry": "onmax/nuxt-skills", "path": "skills/vueuse", "description": "Use when working with VueUse composables - track mouse position with useMouse, manage localStorage with useStorage, detect network status with useNetwork, debounce values with refDebounced, and access browser APIs reactively. Check VueUse before writing custom composables - most patterns already implemented.", - "lastIndexed": 1772928418437 + "lastIndexed": 1773533418954 }, { "name": "karpathy-guidelines", "registry": "forrestchang/andrej-karpathy-skills", "path": "skills/karpathy-guidelines", "description": "Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.", - "lastIndexed": 1772928418737 + "lastIndexed": 1773533419317 }, { "name": "create-adaptable-composable", "registry": "vuejs-ai/skills", "path": "skills/create-adaptable-composable", "description": "Create a library-grade Vue composable that accepts maybe-reactive inputs (MaybeRef / MaybeRefOrGetter) so callers can pass a plain value, ref, or getter. Normalize inputs with toValue()/toRef() inside reactive effects (watch/watchEffect) to keep behavior predictable and reactive. Use this skill when user asks for creating adaptable or reusable composables.", - "lastIndexed": 1772928418737 + "lastIndexed": 1773533419277 }, { "name": "vue-best-practices", "registry": "vuejs-ai/skills", "path": "skills/vue-best-practices", "description": "MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.", - "lastIndexed": 1772928418708 + "lastIndexed": 1773533419282 }, { "name": "vue-debug-guides", "registry": "vuejs-ai/skills", "path": "skills/vue-debug-guides", "description": "Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.", - "lastIndexed": 1772928418710 + "lastIndexed": 1773533419292 }, { "name": "vue-jsx-best-practices", "registry": "vuejs-ai/skills", "path": "skills/vue-jsx-best-practices", "description": "JSX syntax in Vue (e.g., class vs className, JSX plugin config).", - "lastIndexed": 1772928418727 + "lastIndexed": 1773533419271 }, { "name": "vue-options-api-best-practices", "registry": "vuejs-ai/skills", "path": "skills/vue-options-api-best-practices", "description": "Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.", - "lastIndexed": 1772928418742 + "lastIndexed": 1773533419265 }, { "name": "vue-pinia-best-practices", "registry": "vuejs-ai/skills", "path": "skills/vue-pinia-best-practices", "description": "Pinia stores, state management patterns, store setup, and reactivity with stores.", - "lastIndexed": 1772928418765 + "lastIndexed": 1773533419353 }, { "name": "vue-router-best-practices", "registry": "vuejs-ai/skills", "path": "skills/vue-router-best-practices", "description": "Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.", - "lastIndexed": 1772928418728 + "lastIndexed": 1773533419276 }, { "name": "vue-testing-best-practices", "registry": "vuejs-ai/skills", "path": "skills/vue-testing-best-practices", "description": "Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.", - "lastIndexed": 1772928418725 + "lastIndexed": 1773533419268 }, { "name": "threejs-animation", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-animation", "description": "Three.js animation - keyframe animation, skeletal animation, morph targets, animation mixing. Use when animating objects, playing GLTF animations, creating procedural motion, or blending animations.", - "lastIndexed": 1772928418710 + "lastIndexed": 1773533419272 }, { "name": "threejs-fundamentals", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-fundamentals", "description": "Three.js scene setup, cameras, renderer, Object3D hierarchy, coordinate systems. Use when setting up 3D scenes, creating cameras, configuring renderers, managing object hierarchies, or working with transforms.", - "lastIndexed": 1772928418706 + "lastIndexed": 1773533419289 }, { "name": "threejs-geometry", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-geometry", "description": "Three.js geometry creation - built-in shapes, BufferGeometry, custom geometry, instancing. Use when creating 3D shapes, working with vertices, building custom meshes, or optimizing with instanced rendering.", - "lastIndexed": 1772928418708 + "lastIndexed": 1773533419272 }, { "name": "threejs-interaction", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-interaction", "description": "Three.js interaction - raycasting, controls, mouse/touch input, object selection. Use when handling user input, implementing click detection, adding camera controls, or creating interactive 3D experiences.", - "lastIndexed": 1772928418724 + "lastIndexed": 1773533419275 }, { "name": "threejs-lighting", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-lighting", "description": "Three.js lighting - light types, shadows, environment lighting. Use when adding lights, configuring shadows, setting up IBL, or optimizing lighting performance.", - "lastIndexed": 1772928418692 + "lastIndexed": 1773533419279 }, { "name": "threejs-loaders", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-loaders", "description": "Three.js asset loading - GLTF, textures, images, models, async patterns. Use when loading 3D models, textures, HDR environments, or managing loading progress.", - "lastIndexed": 1772928418709 + "lastIndexed": 1773533419281 }, { "name": "threejs-materials", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-materials", "description": "Three.js materials - PBR, basic, phong, shader materials, material properties. Use when styling meshes, working with textures, creating custom shaders, or optimizing material performance.", - "lastIndexed": 1772928418709 + "lastIndexed": 1773533419270 }, { "name": "threejs-postprocessing", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-postprocessing", "description": "Three.js post-processing - EffectComposer, bloom, DOF, screen effects. Use when adding visual effects, color grading, blur, glow, or creating custom screen-space shaders.", - "lastIndexed": 1772928418709 + "lastIndexed": 1773533419270 }, { "name": "threejs-shaders", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-shaders", "description": "Three.js shaders - GLSL, ShaderMaterial, uniforms, custom effects. Use when creating custom visual effects, modifying vertices, writing fragment shaders, or extending built-in materials.", - "lastIndexed": 1772928418705 + "lastIndexed": 1773533419285 }, { "name": "threejs-textures", "registry": "cloudai-x/threejs-skills", "path": "skills/threejs-textures", "description": "Three.js textures - texture types, UV mapping, environment maps, texture settings. Use when working with images, UV coordinates, cubemaps, HDR environments, or texture optimization.", - "lastIndexed": 1772928418714 + "lastIndexed": 1773533419279 }, { "name": "logging-best-practices", "registry": "boristane/agent-skills", "path": "skills/logging-best-practices", "description": "Logging best practices focused on wide events (canonical log lines) for powerful debugging and analytics", - "lastIndexed": 1772928418755 + "lastIndexed": 1773533419340 }, { "name": "defuddle", "registry": "kepano/obsidian-skills", "path": "skills/defuddle", "description": "Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page.", - "lastIndexed": 1772928418684 + "lastIndexed": 1773533419218 }, { "name": "json-canvas", "registry": "kepano/obsidian-skills", "path": "skills/json-canvas", "description": "Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.", - "lastIndexed": 1772928418706 + "lastIndexed": 1773533419225 }, { "name": "obsidian-bases", "registry": "kepano/obsidian-skills", "path": "skills/obsidian-bases", "description": "Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.", - "lastIndexed": 1772928418710 + "lastIndexed": 1773533419210 }, { "name": "obsidian-cli", "registry": "kepano/obsidian-skills", "path": "skills/obsidian-cli", "description": "Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.", - "lastIndexed": 1772928418682 + "lastIndexed": 1773533419223 }, { "name": "obsidian-markdown", "registry": "kepano/obsidian-skills", "path": "skills/obsidian-markdown", "description": "Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.", - "lastIndexed": 1772928418679 + "lastIndexed": 1773533419224 }, { "name": "00-andruia-consultant", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/00-andruia-consultant", "description": "Arquitecto de Soluciones Principal y Consultor Tecnológico de Andru.ia. Diagnostica y traza la hoja de ruta óptima para proyectos de IA en español.", - "lastIndexed": 1772928420559 + "lastIndexed": 1773533420692 }, { "name": "007", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/007", "description": "Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any project.", - "lastIndexed": 1772928421274 + "lastIndexed": 1773533422135 }, { "name": "10-andruia-skill-smith", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/10-andruia-skill-smith", "description": "Ingeniero de Sistemas de Andru.ia. Diseña, redacta y despliega nuevas habilidades (skills) dentro del repositorio siguiendo el Estándar de Diamante.", - "lastIndexed": 1772928420554 + "lastIndexed": 1773533420688 }, { "name": "20-andruia-niche-intelligence", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/20-andruia-niche-intelligence", "description": "Estratega de Inteligencia de Dominio de Andru.ia. Analiza el nicho específico de un proyecto para inyectar conocimientos, regulaciones y estándares únicos del sector. Actívalo tras definir el nicho.", - "lastIndexed": 1772928420559 + "lastIndexed": 1773533420695 }, { "name": "3d-web-experience", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/3d-web-experience", "description": "Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing ...", - "lastIndexed": 1772928420561 + "lastIndexed": 1773533420696 }, { "name": "ab-test-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ab-test-setup", "description": "Structured guide for setting up A/B tests with mandatory gates for hypothesis, metrics, and execution readiness.", - "lastIndexed": 1772928420559 + "lastIndexed": 1773533420696 + }, + { + "name": "acceptance-orchestrator", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/acceptance-orchestrator", + "description": "Use when a coding task should be driven end-to-end from issue intake through implementation, review, deployment, and acceptance verification with minimal human re-intervention.", + "lastIndexed": 1773533420692 }, { "name": "accessibility-compliance-accessibility-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/accessibility-compliance-accessibility-audit", "description": "You are an accessibility expert specializing in WCAG compliance, inclusive design, and assistive technology compatibility. Conduct audits, identify barriers, and provide remediation guidance.", - "lastIndexed": 1772928420554 + "lastIndexed": 1773533420683 }, { "name": "active-directory-attacks", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/active-directory-attacks", "description": "This skill should be used when the user asks to \"attack Active Directory\", \"exploit AD\", \"Kerberoasting\", \"DCSync\", \"pass-the-hash\", \"BloodHound enumeration\", \"Golden Ticket\", ...", - "lastIndexed": 1772928420566 + "lastIndexed": 1773533420699 }, { "name": "activecampaign-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/activecampaign-automation", "description": "Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas.", - "lastIndexed": 1772928420567 + "lastIndexed": 1773533420699 }, { "name": "address-github-comments", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/address-github-comments", "description": "Use when you need to address review or issue comments on an open GitHub Pull Request using the gh CLI.", - "lastIndexed": 1772928420551 + "lastIndexed": 1773533420684 }, { "name": "advanced-evaluation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/advanced-evaluation", "description": "This skill should be used when the user asks to \"implement LLM-as-judge\", \"compare model outputs\", \"create evaluation rubrics\", \"mitigate evaluation bias\", or mentions direct scoring, pairwise comparison, position bias, evaluation pipelines, or automated quality assessment.", - "lastIndexed": 1772928420593 + "lastIndexed": 1773533420706 }, { "name": "advogado-criminal", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/advogado-criminal", "description": "Advogado criminalista especializado em Maria da Penha, violencia domestica, feminicidio, direito penal brasileiro, medidas protetivas, inquerito policial e acao penal.", - "lastIndexed": 1772928421670 + "lastIndexed": 1773533422772 }, { "name": "advogado-especialista", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/advogado-especialista", "description": "Advogado especialista em todas as areas do Direito brasileiro: familia, criminal, trabalhista, tributario, consumidor, imobiliario, empresarial, civil e constitucional.", - "lastIndexed": 1772928421683 + "lastIndexed": 1773533422802 }, { "name": "agent-evaluation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-evaluation", "description": "Testing and benchmarking LLM agents including behavioral testing, capability assessment, reliability metrics, and production monitoring—where even top agents achieve less than 50% on re...", - "lastIndexed": 1772928420552 + "lastIndexed": 1773533420687 }, { "name": "agent-framework-azure-ai-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-framework-azure-ai-py", "description": "Build Azure AI Foundry agents using the Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Use when creating persistent agents with AzureAIAgentsProvider, using hosted tools (code int...", - "lastIndexed": 1772928420560 + "lastIndexed": 1773533420697 }, { "name": "agent-manager-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-manager-skill", "description": "Manage multiple local CLI agents via tmux sessions (start/stop/monitor/assign) with cron-friendly scheduling.", - "lastIndexed": 1772928420552 + "lastIndexed": 1773533420684 }, { "name": "agent-memory-mcp", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-memory-mcp", "description": "A hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).", - "lastIndexed": 1772928420553 + "lastIndexed": 1773533420689 }, { "name": "agent-memory-systems", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-memory-systems", "description": "Memory is the cornerstone of intelligent agents. Without it, every interaction starts from zero. This skill covers the architecture of agent memory: short-term (context window), long-term (vector s...", - "lastIndexed": 1772928420551 + "lastIndexed": 1773533420684 }, { "name": "agent-orchestration-improve-agent", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-orchestration-improve-agent", "description": "Systematic improvement of existing agents through performance analysis, prompt engineering, and continuous iteration.", - "lastIndexed": 1772928420570 + "lastIndexed": 1773533420702 }, { "name": "agent-orchestration-multi-agent-optimize", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-orchestration-multi-agent-optimize", "description": "Optimize multi-agent systems with coordinated profiling, workload distribution, and cost-aware orchestration. Use when improving agent performance, throughput, or reliability.", - "lastIndexed": 1772928420561 + "lastIndexed": 1773533420694 }, { "name": "agent-orchestrator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-orchestrator", "description": "Meta-skill que orquestra todos os agentes do ecossistema. Scan automatico de skills, match por capacidades, coordenacao de workflows multi-skill e registry management.", - "lastIndexed": 1772928420564 + "lastIndexed": 1773533420699 }, { "name": "agent-tool-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agent-tool-builder", "description": "Tools are how AI agents interact with the world. A well-designed tool is the difference between an agent that works and one that hallucinates, fails silently, or costs 10x more tokens than necessar...", - "lastIndexed": 1772928420551 + "lastIndexed": 1773533420688 }, { "name": "agentfolio", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agentfolio", "description": "Skill for discovering and researching autonomous AI agents, tools, and ecosystems using the AgentFolio directory.", - "lastIndexed": 1772928420561 + "lastIndexed": 1773533420693 }, { "name": "agentic-actions-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agentic-actions-auditor", "description": "Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI, OpenAI Codex, and GitHub AI Inference. Detects attack vectors where attacker-controlled input reaches AI agents running in CI/CD pipelines,...", - "lastIndexed": 1772928420929 + "lastIndexed": 1773533420797 }, { "name": "agentmail", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agentmail", "description": "Email infrastructure for AI agents. Create accounts, send/receive emails, manage webhooks, and check karma balance via the AgentMail API.", - "lastIndexed": 1772928420566 + "lastIndexed": 1773533420700 }, { "name": "agents-md", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agents-md", "description": "This skill should be used when the user asks to \"create AGENTS.md\", \"update AGENTS.md\", \"maintain agent docs\", \"set up CLAUDE.md\", or needs to keep agent instructions concise. Enforces research-backed best practices for minimal, high-signal agent documentation.", - "lastIndexed": 1772928420562 + "lastIndexed": 1773533420695 }, { "name": "agents-v2-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/agents-v2-py", "description": "Build container-based Foundry Agents with Azure AI Projects SDK (ImageBasedHostedAgentDefinition). Use when creating hosted agents with custom container images in Azure AI Foundry.", - "lastIndexed": 1772928420563 + "lastIndexed": 1773533420698 }, { "name": "ai-agent-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-agent-development", "description": "AI agent development workflow for building autonomous agents, multi-agent systems, and agent orchestration with CrewAI, LangGraph, and custom agents.", - "lastIndexed": 1772928420556 + "lastIndexed": 1773533420685 }, { "name": "ai-agents-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-agents-architect", "description": "Expert in designing and building autonomous AI agents. Masters tool use, memory systems, planning strategies, and multi-agent orchestration. Use when: build agent, AI agent, autonomous agent, tool ...", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533420696 }, { "name": "ai-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-analyzer", "description": "AI驱动的综合健康分析系统,整合多维度健康数据、识别异常模式、预测健康风险、提供个性化建议。支持智能问答和AI健康报告生成。", - "lastIndexed": 1772928420567 + "lastIndexed": 1773533420700 }, { "name": "ai-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-engineer", "description": "Build production-ready LLM applications, advanced RAG systems, and intelligent agents. Implements vector search, multimodal AI, agent orchestration, and enterprise AI integrations.", - "lastIndexed": 1772928420565 + "lastIndexed": 1773533420699 + }, + { + "name": "ai-md", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/ai-md", + "description": "Convert human-written CLAUDE.md into AI-native structured-label format. Battle-tested across 4 models. Same rules, fewer tokens, higher compliance.", + "lastIndexed": 1773533422134 }, { "name": "ai-ml", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-ml", "description": "AI and machine learning workflow covering LLM application development, RAG implementation, agent architecture, ML pipelines, and AI-powered features.", - "lastIndexed": 1772928420560 + "lastIndexed": 1773533420698 }, { "name": "ai-product", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-product", "description": "Every product will be AI-powered. The question is whether you'll build it right or ship a demo that falls apart in production. This skill covers LLM integration patterns, RAG architecture, prompt ...", - "lastIndexed": 1772928420550 + "lastIndexed": 1773533420686 }, { "name": "ai-studio-image", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-studio-image", "description": "Geracao de imagens humanizadas via Google AI Studio (Gemini). Fotos realistas estilo influencer ou educacional com iluminacao natural e imperfeicoes sutis.", - "lastIndexed": 1772928420568 + "lastIndexed": 1773533420702 }, { "name": "ai-wrapper-product", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ai-wrapper-product", "description": "Expert in building products that wrap AI APIs (OpenAI, Anthropic, etc.) into focused tools people will pay for. Not just 'ChatGPT but different' - products that solve specific problems with AI. Cov...", - "lastIndexed": 1772928420566 + "lastIndexed": 1773533420699 }, { "name": "airflow-dag-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/airflow-dag-patterns", "description": "Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.", - "lastIndexed": 1772928420553 + "lastIndexed": 1773533420689 }, { "name": "airtable-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/airtable-automation", "description": "Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas.", - "lastIndexed": 1772928420560 + "lastIndexed": 1773533420694 }, { "name": "algolia-search", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/algolia-search", "description": "Expert patterns for Algolia search implementation, indexing strategies, React InstantSearch, and relevance tuning Use when: adding search to, algolia, instantsearch, search api, search functionality.", - "lastIndexed": 1772928420553 + "lastIndexed": 1773533420686 }, { "name": "algorithmic-art", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/algorithmic-art", "description": "Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields,...", - "lastIndexed": 1772928420930 + "lastIndexed": 1773533420798 }, { "name": "alpha-vantage", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/alpha-vantage", "description": "Access real-time and historical stock market data, forex rates, cryptocurrency prices, commodities, economic indicators, and 50+ technical indicators via the Alpha Vantage API. Use when fetching stock prices (OHLCV), company fundamentals (income statement, balance sheet, cash...", - "lastIndexed": 1772928420562 + "lastIndexed": 1773533420693 }, { "name": "amazon-alexa", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/amazon-alexa", "description": "Integracao completa com Amazon Alexa para criar skills de voz inteligentes, transformar Alexa em assistente com Claude como cerebro (projeto Auri) e integrar com AWS ecosystem (Lambda, DynamoDB,...", - "lastIndexed": 1772928420592 + "lastIndexed": 1773533420706 }, { "name": "amplitude-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/amplitude-automation", "description": "Automate Amplitude tasks via Rube MCP (Composio): events, user activity, cohorts, user identification. Always search tools first for current schemas.", - "lastIndexed": 1772928420567 + "lastIndexed": 1773533423105 }, { "name": "analytics-product", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/analytics-product", "description": "Analytics de produto — PostHog, Mixpanel, eventos, funnels, cohorts, retencao, north star metric, OKRs e dashboards de produto. Ativar para: configurar tracking de eventos, criar funil de...", - "lastIndexed": 1772928420568 + "lastIndexed": 1773533420700 }, { "name": "analytics-tracking", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/analytics-tracking", "description": "Design, audit, and improve analytics tracking systems that produce reliable, decision-ready data.", - "lastIndexed": 1772928420565 + "lastIndexed": 1773533420701 + }, + { + "name": "analyze-project", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/analyze-project", + "description": "Forensic root cause analyzer for Antigravity sessions. Classifies scope deltas, rework patterns, root causes, hotspots, and auto-improves prompts/health.", + "lastIndexed": 1773533420705 }, { "name": "andrej-karpathy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/andrej-karpathy", "description": "Agente que simula Andrej Karpathy — ex-Director of AI da Tesla, co-fundador da OpenAI, fundador da Eureka Labs, e o maior educador de deep learning do mundo. Use quando quiser: aprender deep...", - "lastIndexed": 1772928421707 + "lastIndexed": 1773533422833 }, { "name": "android-jetpack-compose-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/android-jetpack-compose-expert", "description": "Expert guidance for building modern Android UIs with Jetpack Compose, covering state management, navigation, performance, and Material Design 3.", - "lastIndexed": 1772928420562 + "lastIndexed": 1773533420696 }, { "name": "android_ui_verification", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/android_ui_verification", "description": "Automated end-to-end UI testing and verification on an Android Emulator using ADB.", - "lastIndexed": 1772928420561 + "lastIndexed": 1773533420695 }, { "name": "angular-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/angular-best-practices", "description": "Angular performance optimization and best practices guide. Use when writing, reviewing, or refactoring Angular code for optimal performance, bundle size, and rendering efficiency.", - "lastIndexed": 1772928420570 + "lastIndexed": 1773533420704 }, { "name": "angular-migration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/angular-migration", "description": "Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or ...", - "lastIndexed": 1772928420565 + "lastIndexed": 1773533420701 }, { "name": "angular-state-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/angular-state-management", "description": "Master modern Angular state management with Signals, NgRx, and RxJS. Use when setting up global state, managing component stores, choosing between state solutions, or migrating from legacy patterns.", - "lastIndexed": 1772928420569 + "lastIndexed": 1773533420703 }, { "name": "angular-ui-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/angular-ui-patterns", "description": "Modern Angular UI patterns for loading states, error handling, and data display. Use when building UI components, handling async data, or managing component states.", - "lastIndexed": 1772928420566 + "lastIndexed": 1773533420700 }, { "name": "angular", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/angular", "description": "Modern Angular (v20+) expert with deep knowledge of Signals, Standalone Components, Zoneless applications, SSR/Hydration, and reactive patterns.", - "lastIndexed": 1772928420593 + "lastIndexed": 1773533420706 }, { "name": "animejs-animation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/animejs-animation", "description": "Advanced JavaScript animation library skill for creating complex, high-performance web animations.", - "lastIndexed": 1772928420552 + "lastIndexed": 1773533420684 }, { "name": "anti-reversing-techniques", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/anti-reversing-techniques", "description": "Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use when analyzing protected binaries, bypassing anti-debugging for authorized analysis, or u...", - "lastIndexed": 1772928420554 + "lastIndexed": 1773533420685 }, { "name": "antigravity-design-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/antigravity-design-expert", "description": "Core UI/UX engineering skill for building highly interactive, spatial, weightless, and glassmorphism-based web interfaces using GSAP and 3D CSS.", - "lastIndexed": 1772928420559 + "lastIndexed": 1773533420696 + }, + { + "name": "antigravity-skill-orchestrator", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/antigravity-skill-orchestrator", + "description": "A meta-skill that understands task requirements, dynamically selects appropriate skills, tracks successful skill combinations using agent-memory-mcp, and prevents skill overuse for simple tasks.", + "lastIndexed": 1773533420701 }, { "name": "antigravity-workflows", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/antigravity-workflows", "description": "Orchestrate multiple Antigravity skills through guided workflows for SaaS MVP delivery, security audits, AI agent builds, and browser QA.", - "lastIndexed": 1772928420556 + "lastIndexed": 1773533420689 }, { "name": "api-design-principles", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-design-principles", "description": "Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing...", - "lastIndexed": 1772928420555 + "lastIndexed": 1773533420685 }, { "name": "api-documentation-generator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-documentation-generator", "description": "Generate comprehensive, developer-friendly API documentation from code, including endpoints, parameters, examples, and best practices", - "lastIndexed": 1772928420569 + "lastIndexed": 1773533420703 }, { "name": "api-documentation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-documentation", "description": "API documentation workflow for generating OpenAPI specs, creating developer guides, and maintaining comprehensive API documentation.", - "lastIndexed": 1772928420556 + "lastIndexed": 1773533420686 }, { "name": "api-documenter", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-documenter", "description": "Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals.", - "lastIndexed": 1772928420565 + "lastIndexed": 1773533420700 }, { "name": "api-endpoint-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-endpoint-builder", "description": "Builds production-ready REST API endpoints with validation, error handling, authentication, and documentation. Follows best practices for security and scalability.", - "lastIndexed": 1772928420562 + "lastIndexed": 1773533420697 }, { "name": "api-fuzzing-bug-bounty", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-fuzzing-bug-bounty", "description": "This skill should be used when the user asks to \"test API security\", \"fuzz APIs\", \"find IDOR vulnerabilities\", \"test REST API\", \"test GraphQL\", \"API penetration testing\", \"bug b...", - "lastIndexed": 1772928420569 + "lastIndexed": 1773533420704 }, { "name": "api-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-patterns", "description": "API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.", - "lastIndexed": 1772928420556 + "lastIndexed": 1773533420688 }, { "name": "api-security-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-security-best-practices", "description": "Implement secure API design patterns including authentication, authorization, input validation, rate limiting, and protection against common API vulnerabilities", - "lastIndexed": 1772928420929 + "lastIndexed": 1773533420797 }, { "name": "api-security-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-security-testing", "description": "API security testing workflow for REST and GraphQL APIs covering authentication, authorization, rate limiting, input validation, and security best practices.", - "lastIndexed": 1772928420555 + "lastIndexed": 1773533420687 }, { "name": "api-testing-observability-api-mock", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/api-testing-observability-api-mock", "description": "You are an API mocking expert specializing in realistic mock services for development, testing, and demos. Design mocks that simulate real API behavior and enable parallel development.", - "lastIndexed": 1772928420556 + "lastIndexed": 1773533420686 }, { "name": "apify-actor-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-actor-development", "description": "Develop, debug, and deploy Apify Actors - serverless cloud programs for web scraping, automation, and data processing. Use when creating new Actors, modifying existing ones, or troubleshooting Acto...", - "lastIndexed": 1772928421636 + "lastIndexed": 1773533420703 }, { "name": "apify-actorization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-actorization", "description": "Convert existing projects into Apify Actors - serverless cloud programs. Actorize JavaScript/TypeScript (SDK with Actor.init/exit), Python (async context manager), or any language (CLI wrapper). Us...", - "lastIndexed": 1772928421482 + "lastIndexed": 1773533420696 }, { "name": "apify-audience-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-audience-analysis", "description": "Understand audience demographics, preferences, behavior patterns, and engagement quality across Facebook, Instagram, YouTube, and TikTok.", - "lastIndexed": 1772928421482 + "lastIndexed": 1773533420698 }, { "name": "apify-brand-reputation-monitoring", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-brand-reputation-monitoring", "description": "Track reviews, ratings, sentiment, and brand mentions across Google Maps, Booking.com, TripAdvisor, Facebook, Instagram, YouTube, and TikTok. Use when user asks to monitor brand reputation, analyze...", - "lastIndexed": 1772928421482 + "lastIndexed": 1773533420697 }, { "name": "apify-competitor-intelligence", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-competitor-intelligence", "description": "Analyze competitor strategies, content, pricing, ads, and market positioning across Google Maps, Booking.com, Facebook, Instagram, YouTube, and TikTok.", - "lastIndexed": 1772928421482 + "lastIndexed": 1773533420697 }, { "name": "apify-content-analytics", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-content-analytics", "description": "Track engagement metrics, measure campaign ROI, and analyze content performance across Instagram, Facebook, YouTube, and TikTok.", - "lastIndexed": 1772928421482 + "lastIndexed": 1773533420695 }, { "name": "apify-ecommerce", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-ecommerce", "description": "Scrape e-commerce data for pricing intelligence, customer reviews, and seller discovery across Amazon, Walmart, eBay, IKEA, and 50+ marketplaces. Use when user asks to monitor prices, track competi...", - "lastIndexed": 1772928421562 + "lastIndexed": 1773533420701 }, { "name": "apify-influencer-discovery", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-influencer-discovery", "description": "Find and evaluate influencers for brand partnerships, verify authenticity, and track collaboration performance across Instagram, Facebook, YouTube, and TikTok.", - "lastIndexed": 1772928421483 + "lastIndexed": 1773533420694 }, { "name": "apify-lead-generation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-lead-generation", "description": "Generates B2B/B2C leads by scraping Google Maps, websites, Instagram, TikTok, Facebook, LinkedIn, YouTube, and Google Search. Use when user asks to find leads, prospects, businesses, build lead lis...", - "lastIndexed": 1772928421483 + "lastIndexed": 1773533420697 }, { "name": "apify-market-research", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-market-research", "description": "Analyze market conditions, geographic opportunities, pricing, consumer behavior, and product validation across Google Maps, Facebook, Instagram, Booking.com, and TripAdvisor.", - "lastIndexed": 1772928421483 + "lastIndexed": 1773533422627 }, { "name": "apify-trend-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-trend-analysis", "description": "Discover and track emerging trends across Google Trends, Instagram, Facebook, YouTube, and TikTok to inform content strategy.", - "lastIndexed": 1772928421483 + "lastIndexed": 1773533422627 }, { "name": "apify-ultimate-scraper", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/apify-ultimate-scraper", "description": "Universal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok, YouTube, Google Maps, Google Search, Google Trends, Booking.com, and TripAdvisor. Use for lead gener...", - "lastIndexed": 1772928421562 + "lastIndexed": 1773533422709 }, { "name": "app-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/app-builder", "description": "Main application building orchestrator. Creates full-stack applications from natural language requests. Determines project type, selects tech stack, coordinates agents.", - "lastIndexed": 1772928421483 + "lastIndexed": 1773533422627 }, { "name": "templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/app-builder/templates", "description": "Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.", - "lastIndexed": 1772928421404 + "lastIndexed": 1773533422558 }, { "name": "app-store-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/app-store-optimization", "description": "Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store", - "lastIndexed": 1772928421684 + "lastIndexed": 1773533422815 }, { "name": "appdeploy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/appdeploy", "description": "Deploy web apps with backend APIs, database, and file storage. Use when the user asks to deploy or publish a website or web app and wants a public URL. Uses HTTP API via curl.", - "lastIndexed": 1772928421563 + "lastIndexed": 1773533422709 }, { "name": "application-performance-performance-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/application-performance-performance-optimization", "description": "Optimize end-to-end application performance with profiling, observability, and backend/frontend tuning. Use when coordinating performance optimization across the stack.", - "lastIndexed": 1772928421563 + "lastIndexed": 1773533422709 }, { "name": "architect-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/architect-review", "description": "Master software architect specializing in modern architecture", - "lastIndexed": 1772928421563 + "lastIndexed": 1773533422709 }, { "name": "architecture-decision-records", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/architecture-decision-records", "description": "Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architect...", - "lastIndexed": 1772928421636 + "lastIndexed": 1773533422774 }, { "name": "architecture-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/architecture-patterns", "description": "Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use when architecting complex backend systems or refactoring existing ...", - "lastIndexed": 1772928421404 + "lastIndexed": 1773533422559 }, { "name": "architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/architecture", "description": "Architectural decision-making framework. Requirements analysis, trade-off evaluation, ADR documentation. Use when making architecture decisions or analyzing system design.", - "lastIndexed": 1772928421405 + "lastIndexed": 1773533422559 }, { "name": "arm-cortex-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/arm-cortex-expert", "description": "Senior embedded software engineer specializing in firmware and driver development for ARM Cortex-M microcontrollers (Teensy, STM32, nRF52, SAMD).", - "lastIndexed": 1772928421671 + "lastIndexed": 1773533422803 }, { "name": "asana-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/asana-automation", "description": "Automate Asana tasks via Rube MCP (Composio): tasks, projects, sections, teams, workspaces. Always search tools first for current schemas.", - "lastIndexed": 1772928421484 + "lastIndexed": 1773533422628 }, { "name": "ask-questions-if-underspecified", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ask-questions-if-underspecified", "description": "Clarify requirements before implementing. Use when serious doubts arise.", - "lastIndexed": 1772928421484 + "lastIndexed": 1773533422628 }, { "name": "astropy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/astropy", "description": "Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and...", - "lastIndexed": 1772928421637 + "lastIndexed": 1773533422774 }, { "name": "async-python-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/async-python-patterns", "description": "Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-...", - "lastIndexed": 1772928421405 + "lastIndexed": 1773533422559 }, { "name": "attack-tree-construction", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/attack-tree-construction", "description": "Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.", - "lastIndexed": 1772928421405 + "lastIndexed": 1773533422559 }, { "name": "audio-transcriber", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/audio-transcriber", "description": "Transform audio recordings into professional Markdown documentation with intelligent summaries using LLM integration", - "lastIndexed": 1772928421671 + "lastIndexed": 1773533422804 }, { "name": "audit-context-building", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/audit-context-building", "description": "Enables ultra-granular, line-by-line code analysis to build deep architectural context before vulnerability or bug finding.", - "lastIndexed": 1772928421637 + "lastIndexed": 1773533422774 + }, + { + "name": "audit-skills", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/audit-skills", + "description": "Expert security auditor for AI Skills and Bundles. Performs non-intrusive static analysis to identify malicious patterns, data leaks, system stability risks, and obfuscated payloads across Windows, macOS, Linux/Unix, and Mobile (Android/iOS).", + "lastIndexed": 1773533422628 }, { "name": "auri-core", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/auri-core", "description": "Auri: assistente de voz inteligente (Alexa + Claude claude-opus-4-20250805). Visao do produto, persona Vitoria Neural, stack AWS, modelo Free/Pro/Business/Enterprise, roadmap 4 fases, GTM, north...", - "lastIndexed": 1772928420946 + "lastIndexed": 1773533422154 }, { "name": "auth-implementation-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/auth-implementation-patterns", "description": "Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing A...", - "lastIndexed": 1772928421405 - }, - { - "name": "automate-whatsapp", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/automate-whatsapp", - "description": "Automate Whatsapp", - "lastIndexed": 1772928421405 + "lastIndexed": 1773533422559 }, { "name": "autonomous-agent-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/autonomous-agent-patterns", "description": "Design patterns for building autonomous coding agents. Covers tool integration, permission systems, browser automation, and human-in-the-loop workflows. Use when building AI agents, designing tool ...", - "lastIndexed": 1772928421684 + "lastIndexed": 1773533422815 }, { "name": "autonomous-agents", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/autonomous-agents", "description": "Autonomous agents are AI systems that can independently decompose goals, plan actions, execute tools, and self-correct without constant human guidance. The challenge isn't making them capable - it'...", - "lastIndexed": 1772928421406 + "lastIndexed": 1773533422560 }, { "name": "avalonia-layout-zafiro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/avalonia-layout-zafiro", "description": "Guidelines for modern Avalonia UI layout using Zafiro.Avalonia, emphasizing shared styles, generic components, and avoiding XAML redundancy.", - "lastIndexed": 1772928421406 + "lastIndexed": 1773533422560 }, { "name": "avalonia-viewmodels-zafiro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/avalonia-viewmodels-zafiro", "description": "Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI.", - "lastIndexed": 1772928421406 + "lastIndexed": 1773533422560 }, { "name": "avalonia-zafiro-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/avalonia-zafiro-development", "description": "Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit.", - "lastIndexed": 1772928421406 + "lastIndexed": 1773533422560 }, { "name": "avoid-ai-writing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/avoid-ai-writing", "description": "Audit and rewrite content to remove 21 categories of AI writing patterns with a 43-entry replacement table", - "lastIndexed": 1772928421484 - }, - { - "name": "aws-agentic-ai", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/aws-agentic-ai", - "description": "Aws Agentic Ai", - "lastIndexed": 1772928421406 - }, - { - "name": "aws-cdk-development", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/aws-cdk-development", - "description": "Aws Cdk Development", - "lastIndexed": 1772928421406 - }, - { - "name": "aws-common", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/aws-common", - "description": "Aws Common", - "lastIndexed": 1772928421406 + "lastIndexed": 1773533422628 }, { "name": "aws-cost-cleanup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/aws-cost-cleanup", "description": "Automated cleanup of unused AWS resources to reduce costs", - "lastIndexed": 1772928421563 - }, - { - "name": "aws-cost-ops", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/aws-cost-ops", - "description": "Aws Cost Ops", - "lastIndexed": 1772928421406 + "lastIndexed": 1773533422709 }, { "name": "aws-cost-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/aws-cost-optimizer", "description": "Comprehensive AWS cost analysis and optimization recommendations using AWS CLI and Cost Explorer", - "lastIndexed": 1772928421484 - }, - { - "name": "aws-mcp-setup", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/aws-mcp-setup", - "description": "Aws Mcp Setup", - "lastIndexed": 1772928421407 + "lastIndexed": 1773533422628 }, { "name": "aws-penetration-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/aws-penetration-testing", "description": "This skill should be used when the user asks to \"pentest AWS\", \"test AWS security\", \"enumerate IAM\", \"exploit cloud infrastructure\", \"AWS privilege escalation\", \"S3 bucket testing...", - "lastIndexed": 1772928421563 - }, - { - "name": "aws-serverless-eda", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/aws-serverless-eda", - "description": "Aws Serverless Eda", - "lastIndexed": 1772928421407 + "lastIndexed": 1773533422709 }, { "name": "aws-serverless", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/aws-serverless", "description": "Specialized skill for building production-ready serverless applications on AWS. Covers Lambda functions, API Gateway, DynamoDB, SQS/SNS event-driven patterns, SAM/CDK deployment, and cold start opt...", - "lastIndexed": 1772928421564 + "lastIndexed": 1773533422709 }, { "name": "aws-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/aws-skills", "description": "AWS development with infrastructure automation and cloud architecture patterns", - "lastIndexed": 1772928421407 + "lastIndexed": 1773533422560 }, { "name": "azd-deployment", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azd-deployment", "description": "Deploy containerized applications to Azure Container Apps using Azure Developer CLI (azd). Use when setting up azd projects, writing azure.yaml configuration, creating Bicep infrastructure for Cont...", - "lastIndexed": 1772928421564 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-agents-persistent-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-agents-persistent-dotnet", "description": "Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools.", - "lastIndexed": 1772928421564 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-agents-persistent-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-agents-persistent-java", "description": "Azure AI Agents Persistent SDK for Java. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools.", - "lastIndexed": 1772928421485 + "lastIndexed": 1773533422628 }, { "name": "azure-ai-anomalydetector-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-anomalydetector-java", "description": "Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.", - "lastIndexed": 1772928421485 + "lastIndexed": 1773533422629 }, { "name": "azure-ai-contentsafety-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-contentsafety-java", "description": "Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text/image analysis, blocklist management, or harm detection for hate, violence, sexual conten...", - "lastIndexed": 1772928421485 + "lastIndexed": 1773533422629 }, { "name": "azure-ai-contentsafety-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-contentsafety-py", "description": "Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.", - "lastIndexed": 1772928421485 + "lastIndexed": 1773533422629 }, { "name": "azure-ai-contentsafety-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-contentsafety-ts", "description": "Analyze text and images for harmful content using Azure AI Content Safety (@azure-rest/ai-content-safety). Use when moderating user-generated content, detecting hate speech, violence, sexual conten...", - "lastIndexed": 1772928421485 + "lastIndexed": 1773533422630 }, { "name": "azure-ai-contentunderstanding-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-contentunderstanding-py", "description": "Azure AI Content Understanding SDK for Python. Use for multimodal content extraction from documents, images, audio, and video.", - "lastIndexed": 1772928421486 + "lastIndexed": 1773533422629 }, { "name": "azure-ai-document-intelligence-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-document-intelligence-dotnet", "description": "Azure AI Document Intelligence SDK for .NET. Extract text, tables, and structured data from documents using prebuilt and custom models.", - "lastIndexed": 1772928421564 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-document-intelligence-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-document-intelligence-ts", "description": "Extract text, tables, and structured data from documents using Azure Document Intelligence (@azure-rest/ai-document-intelligence). Use when processing invoices, receipts, IDs, forms, or building cu...", - "lastIndexed": 1772928421486 + "lastIndexed": 1773533422629 }, { "name": "azure-ai-formrecognizer-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-formrecognizer-java", "description": "Build document analysis applications with Azure Document Intelligence (Form Recognizer) SDK for Java. Use when extracting text, tables, key-value pairs from documents, receipts, invoices, or buildi...", - "lastIndexed": 1772928421564 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-ml-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-ml-py", "description": "Azure Machine Learning SDK v2 for Python. Use for ML workspaces, jobs, models, datasets, compute, and pipelines.", - "lastIndexed": 1772928421486 + "lastIndexed": 1773533422630 }, { "name": "azure-ai-openai-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-openai-dotnet", "description": "Azure OpenAI SDK for .NET. Client library for Azure OpenAI and OpenAI services. Use for chat completions, embeddings, image generation, audio transcription, and assistants.", - "lastIndexed": 1772928421564 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-projects-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-projects-dotnet", "description": "Azure AI Projects SDK for .NET. High-level client for Azure AI Foundry projects including agents, connections, datasets, deployments, evaluations, and indexes.", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-projects-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-projects-java", "description": "Azure AI Projects SDK for Java. High-level SDK for Azure AI Foundry project management including connections, datasets, indexes, and evaluations.", - "lastIndexed": 1772928421486 + "lastIndexed": 1773533422630 }, { "name": "azure-ai-projects-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-projects-py", "description": "Build AI applications using the Azure AI Projects Python SDK (azure-ai-projects). Use when working with Foundry project clients, creating versioned agents with PromptAgentDefinition, running evalua...", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422710 }, { "name": "azure-ai-projects-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-projects-ts", "description": "Build AI applications using Azure AI Projects SDK for JavaScript (@azure/ai-projects). Use when working with Foundry project clients, agents, connections, deployments, datasets, indexes, evaluation...", - "lastIndexed": 1772928421486 + "lastIndexed": 1773533422630 }, { "name": "azure-ai-textanalytics-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-textanalytics-py", "description": "Azure AI Text Analytics SDK for sentiment analysis, entity recognition, key phrases, language detection, PII, and healthcare NLP. Use for natural language processing on text.", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422630 }, { "name": "azure-ai-transcription-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-transcription-py", "description": "Azure AI Transcription SDK for Python. Use for real-time and batch speech-to-text transcription with timestamps and diarization.", - "lastIndexed": 1772928421408 + "lastIndexed": 1773533422561 }, { "name": "azure-ai-translation-document-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-translation-document-py", "description": "Azure AI Document Translation SDK for batch translation of documents with format preservation. Use for translating Word, PDF, Excel, PowerPoint, and other document formats at scale.", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422630 }, { "name": "azure-ai-translation-text-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-translation-text-py", "description": "Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422631 }, { "name": "azure-ai-translation-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-translation-ts", "description": "Build translation applications using Azure Translation SDKs for JavaScript (@azure-rest/ai-translation-text, @azure-rest/ai-translation-document). Use when implementing text translation, transliter...", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422631 }, { "name": "azure-ai-vision-imageanalysis-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-vision-imageanalysis-java", "description": "Build image analysis applications with Azure AI Vision SDK for Java. Use when implementing image captioning, OCR text extraction, object detection, tagging, or smart cropping.", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422631 }, { "name": "azure-ai-vision-imageanalysis-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-vision-imageanalysis-py", "description": "Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422631 }, { "name": "azure-ai-voicelive-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-voicelive-dotnet", "description": "Azure AI Voice Live SDK for .NET. Build real-time voice AI applications with bidirectional WebSocket communication.", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422711 }, { "name": "azure-ai-voicelive-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-voicelive-java", "description": "Azure AI VoiceLive SDK for Java. Real-time bidirectional voice conversations with AI assistants using WebSocket.", - "lastIndexed": 1772928421487 + "lastIndexed": 1773533422631 }, { "name": "azure-ai-voicelive-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-voicelive-py", "description": "Build real-time voice AI applications using Azure AI Voice Live SDK (azure-ai-voicelive). Use this skill when creating Python applications that need real-time bidirectional audio communication with...", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422711 }, { "name": "azure-ai-voicelive-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-ai-voicelive-ts", "description": "Azure AI Voice Live SDK for JavaScript/TypeScript. Build real-time voice AI applications with bidirectional WebSocket communication.", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422711 }, { "name": "azure-appconfiguration-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-appconfiguration-java", "description": "Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422711 }, { "name": "azure-appconfiguration-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-appconfiguration-py", "description": "Azure App Configuration SDK for Python. Use for centralized configuration management, feature flags, and dynamic settings.", - "lastIndexed": 1772928421488 + "lastIndexed": 1773533422631 }, { "name": "azure-appconfiguration-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-appconfiguration-ts", "description": "Build applications using Azure App Configuration SDK for JavaScript (@azure/app-configuration). Use when working with configuration settings, feature flags, Key Vault references, dynamic refresh, o...", - "lastIndexed": 1772928421488 + "lastIndexed": 1773533422632 }, { "name": "azure-communication-callautomation-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-communication-callautomation-java", "description": "Build call automation workflows with Azure Communication Services Call Automation Java SDK. Use when implementing IVR systems, call routing, call recording, DTMF recognition, text-to-speech, or AI-...", - "lastIndexed": 1772928421488 + "lastIndexed": 1773533422632 }, { "name": "azure-communication-callingserver-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-communication-callingserver-java", "description": "Azure Communication Services CallingServer (legacy) Java SDK. Note - This SDK is deprecated. Use azure-communication-callautomation instead for new projects. Only use this skill when maintaining le...", - "lastIndexed": 1772928421409 + "lastIndexed": 1773533422562 }, { "name": "azure-communication-chat-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-communication-chat-java", "description": "Build real-time chat applications with Azure Communication Services Chat Java SDK. Use when implementing chat threads, messaging, participants, read receipts, typing notifications, or real-time cha...", - "lastIndexed": 1772928421565 + "lastIndexed": 1773533422711 }, { "name": "azure-communication-common-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-communication-common-java", "description": "Azure Communication Services common utilities for Java. Use when working with CommunicationTokenCredential, user identifiers, token refresh, or shared authentication across ACS services.", - "lastIndexed": 1772928421488 + "lastIndexed": 1773533422632 }, { "name": "azure-communication-sms-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-communication-sms-java", "description": "Send SMS messages with Azure Communication Services SMS Java SDK. Use when implementing SMS notifications, alerts, OTP delivery, bulk messaging, or delivery reports.", - "lastIndexed": 1772928421489 + "lastIndexed": 1773533422632 }, { "name": "azure-compute-batch-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-compute-batch-java", "description": "Azure Batch SDK for Java. Run large-scale parallel and HPC batch jobs with pools, jobs, tasks, and compute nodes.", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422711 }, { "name": "azure-containerregistry-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-containerregistry-py", "description": "Azure Container Registry SDK for Python. Use for managing container images, artifacts, and repositories.", - "lastIndexed": 1772928421489 + "lastIndexed": 1773533422632 }, { "name": "azure-cosmos-db-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-cosmos-db-py", "description": "Build Azure Cosmos DB NoSQL services with Python/FastAPI following production-grade patterns. Use when implementing database client setup with dual auth (DefaultAzureCredential + emulator), service...", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422711 }, { "name": "azure-cosmos-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-cosmos-java", "description": "Azure Cosmos DB SDK for Java. NoSQL database operations with global distribution, multi-model support, and reactive patterns.", - "lastIndexed": 1772928421489 + "lastIndexed": 1773533422632 }, { "name": "azure-cosmos-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-cosmos-py", "description": "Azure Cosmos DB SDK for Python (NoSQL API). Use for document CRUD, queries, containers, and globally distributed data.", - "lastIndexed": 1772928421489 + "lastIndexed": 1773533422633 }, { "name": "azure-cosmos-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-cosmos-rust", "description": "Azure Cosmos DB SDK for Rust (NoSQL API). Use for document CRUD, queries, containers, and globally distributed data.", - "lastIndexed": 1772928421489 + "lastIndexed": 1773533422633 }, { "name": "azure-cosmos-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-cosmos-ts", "description": "Azure Cosmos DB JavaScript/TypeScript SDK (@azure/cosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management.", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422712 }, { "name": "azure-data-tables-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-data-tables-java", "description": "Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at...", - "lastIndexed": 1772928421490 + "lastIndexed": 1773533422633 }, { "name": "azure-data-tables-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-data-tables-py", "description": "Azure Tables SDK for Python (Storage and Cosmos DB). Use for NoSQL key-value storage, entity CRUD, and batch operations.", - "lastIndexed": 1772928421490 + "lastIndexed": 1773533422633 }, { "name": "azure-eventgrid-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventgrid-dotnet", "description": "Azure Event Grid SDK for .NET. Client library for publishing and consuming events with Azure Event Grid. Use for event-driven architectures, pub/sub messaging, CloudEvents, and EventGridEvents.", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422712 }, { "name": "azure-eventgrid-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventgrid-java", "description": "Build event-driven applications with Azure Event Grid SDK for Java. Use when publishing events, implementing pub/sub patterns, or integrating with Azure services via events.", - "lastIndexed": 1772928421490 + "lastIndexed": 1773533422633 }, { "name": "azure-eventgrid-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventgrid-py", "description": "Azure Event Grid SDK for Python. Use for publishing events, handling CloudEvents, and event-driven architectures.", - "lastIndexed": 1772928421490 + "lastIndexed": 1773533422633 }, { "name": "azure-eventhub-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventhub-dotnet", "description": "Azure Event Hubs SDK for .NET.", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422712 }, { "name": "azure-eventhub-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventhub-java", "description": "Build real-time streaming applications with Azure Event Hubs SDK for Java. Use when implementing event streaming, high-throughput data ingestion, or building event-driven architectures.", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422712 }, { "name": "azure-eventhub-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventhub-py", "description": "Azure Event Hubs SDK for Python streaming. Use for high-throughput event ingestion, producers, consumers, and checkpointing.", - "lastIndexed": 1772928421490 + "lastIndexed": 1773533422633 }, { "name": "azure-eventhub-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventhub-rust", "description": "Azure Event Hubs SDK for Rust. Use for sending and receiving events, streaming data ingestion.", - "lastIndexed": 1772928421410 + "lastIndexed": 1773533422563 }, { "name": "azure-eventhub-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-eventhub-ts", "description": "Build event streaming applications using Azure Event Hubs SDK for JavaScript (@azure/event-hubs). Use when implementing high-throughput event ingestion, real-time analytics, IoT telemetry, or event...", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-functions", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-functions", "description": "Expert patterns for Azure Functions development including isolated worker model, Durable Functions orchestration, cold start optimization, and production patterns. Covers .NET, Python, and Node.js ...", - "lastIndexed": 1772928421411 + "lastIndexed": 1773533422563 }, { "name": "azure-identity-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-identity-dotnet", "description": "Azure Identity SDK for .NET. Authentication library for Azure SDK clients using Microsoft Entra ID. Use for DefaultAzureCredential, managed identity, service principals, and developer credentials.", - "lastIndexed": 1772928421566 + "lastIndexed": 1773533422712 }, { "name": "azure-identity-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-identity-java", "description": "Azure Identity Java SDK for authentication with Azure services. Use when implementing DefaultAzureCredential, managed identity, service principal, or any Azure authentication pattern in Java applic...", - "lastIndexed": 1772928421567 + "lastIndexed": 1773533422712 }, { "name": "azure-identity-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-identity-py", "description": "Azure Identity SDK for Python authentication. Use for DefaultAzureCredential, managed identity, service principals, and token caching.", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-identity-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-identity-rust", "description": "Azure Identity SDK for Rust authentication. Use for DeveloperToolsCredential, ManagedIdentityCredential, ClientSecretCredential, and token-based authentication.", - "lastIndexed": 1772928421411 + "lastIndexed": 1773533422563 }, { "name": "azure-identity-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-identity-ts", "description": "Authenticate to Azure services using Azure Identity SDK for JavaScript (@azure/identity). Use when configuring authentication with DefaultAzureCredential, managed identity, service principals, or i...", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-keyvault-certificates-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-keyvault-certificates-rust", "description": "Azure Key Vault Certificates SDK for Rust. Use for creating, importing, and managing certificates.", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-keyvault-keys-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-keyvault-keys-rust", "description": "Azure Key Vault Keys SDK for Rust. Use for creating, managing, and using cryptographic keys. Triggers: \"keyvault keys rust\", \"KeyClient rust\", \"create key rust\", \"encrypt rust\", \"sign rust\".", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-keyvault-keys-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-keyvault-keys-ts", "description": "Manage cryptographic keys using Azure Key Vault Keys SDK for JavaScript (@azure/keyvault-keys). Use when creating, encrypting/decrypting, signing, or rotating keys.", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-keyvault-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-keyvault-py", "description": "Azure Key Vault SDK for Python. Use for secrets, keys, and certificates management with secure storage.", - "lastIndexed": 1772928421491 + "lastIndexed": 1773533422634 }, { "name": "azure-keyvault-secrets-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-keyvault-secrets-rust", "description": "Azure Key Vault Secrets SDK for Rust. Use for storing and retrieving secrets, passwords, and API keys. Triggers: \"keyvault secrets rust\", \"SecretClient rust\", \"get secret rust\", \"set secret rust\".", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-keyvault-secrets-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-keyvault-secrets-ts", "description": "Manage secrets using Azure Key Vault Secrets SDK for JavaScript (@azure/keyvault-secrets). Use when storing and retrieving application secrets or configuration values.", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-maps-search-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-maps-search-dotnet", "description": "Azure Maps SDK for .NET. Location-based services including geocoding, routing, rendering, geolocation, and weather. Use for address search, directions, map tiles, IP geolocation, and weather data.", - "lastIndexed": 1772928421637 + "lastIndexed": 1773533422774 }, { "name": "azure-messaging-webpubsub-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-messaging-webpubsub-java", "description": "Build real-time web applications with Azure Web PubSub SDK for Java. Use when implementing WebSocket-based messaging, live updates, chat applications, or server-to-client push notifications.", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-messaging-webpubsubservice-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-messaging-webpubsubservice-py", "description": "Azure Web PubSub Service SDK for Python. Use for real-time messaging, WebSocket connections, and pub/sub patterns.", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-mgmt-apicenter-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-apicenter-dotnet", "description": "Azure API Center SDK for .NET. Centralized API inventory management with governance, versioning, and discovery.", - "lastIndexed": 1772928421567 + "lastIndexed": 1773533422712 }, { "name": "azure-mgmt-apicenter-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-apicenter-py", "description": "Azure API Center Management SDK for Python. Use for managing API inventory, metadata, and governance across your organization.", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-mgmt-apimanagement-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-apimanagement-dotnet", "description": "Azure Resource Manager SDK for API Management in .NET.", - "lastIndexed": 1772928421567 + "lastIndexed": 1773533422713 }, { "name": "azure-mgmt-apimanagement-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-apimanagement-py", "description": "Azure API Management SDK for Python. Use for managing APIM services, APIs, products, subscriptions, and policies.", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-mgmt-applicationinsights-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-applicationinsights-dotnet", "description": "Azure Application Insights SDK for .NET. Application performance monitoring and observability resource management.", - "lastIndexed": 1772928421672 + "lastIndexed": 1773533422804 }, { "name": "azure-mgmt-arizeaiobservabilityeval-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-arizeaiobservabilityeval-dotnet", "description": "Azure Resource Manager SDK for Arize AI Observability and Evaluation (.NET).", - "lastIndexed": 1772928421492 + "lastIndexed": 1773533422635 }, { "name": "azure-mgmt-botservice-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-botservice-dotnet", "description": "Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings.", - "lastIndexed": 1772928421567 + "lastIndexed": 1773533422713 }, { "name": "azure-mgmt-botservice-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-botservice-py", "description": "Azure Bot Service Management SDK for Python. Use for creating, managing, and configuring Azure Bot Service resources.", - "lastIndexed": 1772928421493 + "lastIndexed": 1773533422636 }, { "name": "azure-mgmt-fabric-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-fabric-dotnet", "description": "Azure Resource Manager SDK for Fabric in .NET.", - "lastIndexed": 1772928421568 + "lastIndexed": 1773533422713 }, { "name": "azure-mgmt-fabric-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-fabric-py", "description": "Azure Fabric Management SDK for Python. Use for managing Microsoft Fabric capacities and resources.", - "lastIndexed": 1772928421493 + "lastIndexed": 1773533422636 }, { "name": "azure-mgmt-mongodbatlas-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-mongodbatlas-dotnet", "description": "Manage MongoDB Atlas Organizations as Azure ARM resources using Azure.ResourceManager.MongoDBAtlas SDK. Use when creating, updating, listing, or deleting MongoDB Atlas organizations through Azure M...", - "lastIndexed": 1772928421568 + "lastIndexed": 1773533422713 }, { "name": "azure-mgmt-weightsandbiases-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-mgmt-weightsandbiases-dotnet", "description": "Azure Weights & Biases SDK for .NET. ML experiment tracking and model management via Azure Marketplace. Use for creating W&B instances, managing SSO, marketplace integration, and ML observability.", - "lastIndexed": 1772928421568 + "lastIndexed": 1773533422713 }, { "name": "azure-microsoft-playwright-testing-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-microsoft-playwright-testing-ts", "description": "Run Playwright tests at scale using Azure Playwright Workspaces (formerly Microsoft Playwright Testing). Use when scaling browser tests across cloud-hosted browsers, integrating with CI/CD pipeline...", - "lastIndexed": 1772928421493 + "lastIndexed": 1773533422636 }, { "name": "azure-monitor-ingestion-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-ingestion-java", "description": "Azure Monitor Ingestion SDK for Java. Send custom logs to Azure Monitor via Data Collection Rules (DCR) and Data Collection Endpoints (DCE).", - "lastIndexed": 1772928421493 + "lastIndexed": 1773533422636 }, { "name": "azure-monitor-ingestion-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-ingestion-py", "description": "Azure Monitor Ingestion SDK for Python. Use for sending custom logs to Log Analytics workspace via Logs Ingestion API.", - "lastIndexed": 1772928421494 + "lastIndexed": 1773533422637 }, { "name": "azure-monitor-opentelemetry-exporter-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-opentelemetry-exporter-java", "description": "Azure Monitor OpenTelemetry Exporter for Java. Export OpenTelemetry traces, metrics, and logs to Azure Monitor/Application Insights.", - "lastIndexed": 1772928421494 + "lastIndexed": 1773533422637 }, { "name": "azure-monitor-opentelemetry-exporter-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-opentelemetry-exporter-py", "description": "Azure Monitor OpenTelemetry Exporter for Python. Use for low-level OpenTelemetry export to Application Insights.", - "lastIndexed": 1772928421494 + "lastIndexed": 1773533422637 }, { "name": "azure-monitor-opentelemetry-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-opentelemetry-py", "description": "Azure Monitor OpenTelemetry Distro for Python. Use for one-line Application Insights setup with auto-instrumentation.", - "lastIndexed": 1772928421494 + "lastIndexed": 1773533422637 }, { "name": "azure-monitor-opentelemetry-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-opentelemetry-ts", "description": "Instrument applications with Azure Monitor and OpenTelemetry for JavaScript (@azure/monitor-opentelemetry). Use when adding distributed tracing, metrics, and logs to Node.js applications with Appli...", - "lastIndexed": 1772928421494 + "lastIndexed": 1773533422637 }, { "name": "azure-monitor-query-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-query-java", "description": "Azure Monitor Query SDK for Java. Execute Kusto queries against Log Analytics workspaces and query metrics from Azure resources.", - "lastIndexed": 1772928421568 + "lastIndexed": 1773533422713 }, { "name": "azure-monitor-query-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-monitor-query-py", "description": "Azure Monitor Query SDK for Python. Use for querying Log Analytics workspaces and Azure Monitor metrics.", - "lastIndexed": 1772928421494 + "lastIndexed": 1773533422637 }, { "name": "azure-postgres-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-postgres-ts", "description": "Connect to Azure Database for PostgreSQL Flexible Server from Node.js/TypeScript using the pg (node-postgres) package.", - "lastIndexed": 1772928421568 + "lastIndexed": 1773533422714 }, { "name": "azure-resource-manager-cosmosdb-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-cosmosdb-dotnet", "description": "Azure Resource Manager SDK for Cosmos DB in .NET.", - "lastIndexed": 1772928421495 + "lastIndexed": 1773533422637 }, { "name": "azure-resource-manager-durabletask-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-durabletask-dotnet", "description": "Azure Resource Manager SDK for Durable Task Scheduler in .NET.", - "lastIndexed": 1772928421568 + "lastIndexed": 1773533422714 }, { "name": "azure-resource-manager-mysql-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-mysql-dotnet", "description": "Azure MySQL Flexible Server SDK for .NET. Database management for MySQL Flexible Server deployments.", - "lastIndexed": 1772928421569 + "lastIndexed": 1773533422714 }, { "name": "azure-resource-manager-playwright-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-playwright-dotnet", "description": "Azure Resource Manager SDK for Microsoft Playwright Testing in .NET.", - "lastIndexed": 1772928421569 + "lastIndexed": 1773533422714 }, { "name": "azure-resource-manager-postgresql-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-postgresql-dotnet", "description": "Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments.", - "lastIndexed": 1772928421569 + "lastIndexed": 1773533422714 }, { "name": "azure-resource-manager-redis-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-redis-dotnet", "description": "Azure Resource Manager SDK for Redis in .NET.", - "lastIndexed": 1772928421569 + "lastIndexed": 1773533422714 }, { "name": "azure-resource-manager-sql-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-resource-manager-sql-dotnet", "description": "Azure Resource Manager SDK for Azure SQL in .NET.", - "lastIndexed": 1772928421569 + "lastIndexed": 1773533422715 }, { "name": "azure-search-documents-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-search-documents-dotnet", "description": "Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-search-documents-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-search-documents-py", "description": "Azure AI Search SDK for Python. Use for vector search, hybrid search, semantic ranking, indexing, and skillsets.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-search-documents-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-search-documents-ts", "description": "Build search applications using Azure AI Search SDK for JavaScript (@azure/search-documents). Use when creating/managing indexes, implementing vector/hybrid search, semantic ranking, or building ag...", - "lastIndexed": 1772928421495 + "lastIndexed": 1773533422638 }, { "name": "azure-security-keyvault-keys-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-security-keyvault-keys-dotnet", "description": "Azure Key Vault Keys SDK for .NET. Client library for managing cryptographic keys in Azure Key Vault and Managed HSM. Use for key creation, rotation, encryption, decryption, signing, and verification.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-security-keyvault-keys-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-security-keyvault-keys-java", "description": "Azure Key Vault Keys Java SDK for cryptographic key management. Use when creating, managing, or using RSA/EC keys, performing encrypt/decrypt/sign/verify operations, or working with HSM-backed keys.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-security-keyvault-secrets-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-security-keyvault-secrets-java", "description": "Azure Key Vault Secrets Java SDK for secret management. Use when storing, retrieving, or managing passwords, API keys, connection strings, or other sensitive configuration data.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-servicebus-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-servicebus-dotnet", "description": "Azure Service Bus SDK for .NET. Enterprise messaging with queues, topics, subscriptions, and sessions.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-servicebus-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-servicebus-py", "description": "Azure Service Bus SDK for Python messaging. Use for queues, topics, subscriptions, and enterprise messaging patterns.", - "lastIndexed": 1772928421496 + "lastIndexed": 1773533422639 }, { "name": "azure-servicebus-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-servicebus-ts", "description": "Build messaging applications using Azure Service Bus SDK for JavaScript (@azure/service-bus). Use when implementing queues, topics/subscriptions, message sessions, dead-letter handling, or enterpri...", - "lastIndexed": 1772928421496 + "lastIndexed": 1773533422639 }, { "name": "azure-speech-to-text-rest-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-speech-to-text-rest-py", "description": "Azure Speech to Text REST API for short audio (Python). Use for simple speech recognition of audio files up to 60 seconds without the Speech SDK.", - "lastIndexed": 1772928421570 + "lastIndexed": 1773533422715 }, { "name": "azure-storage-blob-java", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-blob-java", "description": "Build blob storage applications with Azure Storage Blob SDK for Java. Use when uploading, downloading, or managing files in Azure Blob Storage, working with containers, or implementing streaming da...", - "lastIndexed": 1772928421571 + "lastIndexed": 1773533422716 }, { "name": "azure-storage-blob-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-blob-py", "description": "Azure Blob Storage SDK for Python. Use for uploading, downloading, listing blobs, managing containers, and blob lifecycle.", - "lastIndexed": 1772928421496 + "lastIndexed": 1773533422639 }, { "name": "azure-storage-blob-rust", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-blob-rust", "description": "Azure Blob Storage SDK for Rust. Use for uploading, downloading, and managing blobs and containers.", - "lastIndexed": 1772928421496 + "lastIndexed": 1773533422640 }, { "name": "azure-storage-blob-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-blob-ts", "description": "Azure Blob Storage JavaScript/TypeScript SDK (@azure/storage-blob) for blob operations. Use for uploading, downloading, listing, and managing blobs and containers.", - "lastIndexed": 1772928421571 + "lastIndexed": 1773533422716 }, { "name": "azure-storage-file-datalake-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-file-datalake-py", "description": "Azure Data Lake Storage Gen2 SDK for Python. Use for hierarchical file systems, big data analytics, and file/directory operations.", - "lastIndexed": 1772928421496 + "lastIndexed": 1773533422640 }, { "name": "azure-storage-file-share-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-file-share-py", "description": "Azure Storage File Share SDK for Python. Use for SMB file shares, directories, and file operations in the cloud.", - "lastIndexed": 1772928421497 + "lastIndexed": 1773533422640 }, { "name": "azure-storage-file-share-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-file-share-ts", "description": "Azure File Share JavaScript/TypeScript SDK (@azure/storage-file-share) for SMB file share operations.", - "lastIndexed": 1772928421571 + "lastIndexed": 1773533422716 }, { "name": "azure-storage-queue-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-queue-py", "description": "Azure Queue Storage SDK for Python. Use for reliable message queuing, task distribution, and asynchronous processing.", - "lastIndexed": 1772928421497 + "lastIndexed": 1773533422640 }, { "name": "azure-storage-queue-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-storage-queue-ts", "description": "Azure Queue Storage JavaScript/TypeScript SDK (@azure/storage-queue) for message queue operations. Use for sending, receiving, peeking, and deleting messages in queues.", - "lastIndexed": 1772928421571 + "lastIndexed": 1773533422716 }, { "name": "azure-web-pubsub-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/azure-web-pubsub-ts", "description": "Build real-time messaging applications using Azure Web PubSub SDKs for JavaScript (@azure/web-pubsub, @azure/web-pubsub-client). Use when implementing WebSocket-based real-time features, pub/sub me...", - "lastIndexed": 1772928421497 + "lastIndexed": 1773533422640 }, { "name": "backend-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/backend-architect", "description": "Expert backend architect specializing in scalable API design, microservices architecture, and distributed systems.", - "lastIndexed": 1772928421684 + "lastIndexed": 1773533422816 }, { "name": "backend-dev-guidelines", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/backend-dev-guidelines", "description": "Opinionated backend development standards for Node.js + Express + TypeScript microservices. Covers layered architecture, BaseController pattern, dependency injection, Prisma repositories, Zod valid...", - "lastIndexed": 1772928421571 + "lastIndexed": 1773533422716 }, { "name": "backend-development-feature-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/backend-development-feature-development", "description": "Orchestrate end-to-end backend feature development from requirements to deployment. Use when coordinating multi-phase feature delivery across teams and services.", - "lastIndexed": 1772928421571 + "lastIndexed": 1773533422716 }, { "name": "backend-security-coder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/backend-security-coder", "description": "Expert in secure backend coding practices specializing in input validation, authentication, and API security. Use PROACTIVELY for backend security implementations or security code reviews.", - "lastIndexed": 1772928421572 + "lastIndexed": 1773533422717 }, { "name": "backtesting-frameworks", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/backtesting-frameworks", "description": "Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strateg...", - "lastIndexed": 1772928421414 + "lastIndexed": 1773533422567 }, { "name": "bamboohr-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bamboohr-automation", "description": "Automate BambooHR tasks via Rube MCP (Composio): employees, time-off, benefits, dependents, employee updates. Always search tools first for current schemas.", - "lastIndexed": 1772928421572 + "lastIndexed": 1773533422717 }, { "name": "basecamp-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/basecamp-automation", "description": "Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421572 + "lastIndexed": 1773533422717 }, { "name": "baseline-ui", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/baseline-ui", "description": "Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when building UI components, reviewing CSS utilities, styling React views, or enforcing design consistency.", - "lastIndexed": 1772928421498 + "lastIndexed": 1773533422641 }, { "name": "bash-defensive-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bash-defensive-patterns", "description": "Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.", - "lastIndexed": 1772928421415 + "lastIndexed": 1773533422567 }, { "name": "bash-linux", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bash-linux", "description": "Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems.", - "lastIndexed": 1772928421498 + "lastIndexed": 1773533422641 }, { "name": "bash-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bash-pro", "description": "Master of defensive Bash scripting for production automation, CI/CD\npipelines, and system utilities. Expert in safe, portable, and testable shell\nscripts.", - "lastIndexed": 1772928421690 + "lastIndexed": 1773533422821 }, { "name": "bash-scripting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bash-scripting", "description": "Bash scripting workflow for creating production-ready shell scripts with defensive patterns, error handling, and testing.", - "lastIndexed": 1772928421498 + "lastIndexed": 1773533422641 }, { "name": "bats-testing-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bats-testing-patterns", "description": "Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.", - "lastIndexed": 1772928421415 + "lastIndexed": 1773533422567 }, { "name": "bazel-build-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bazel-build-optimization", "description": "Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.", - "lastIndexed": 1772928421572 + "lastIndexed": 1773533422717 }, { "name": "bdi-mental-states", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bdi-mental-states", "description": "This skill should be used when the user asks to \"model agent mental states\", \"implement BDI architecture\", \"create belief-desire-intention models\", \"transform RDF to beliefs\", \"build cognitive agent\", or mentions BDI ontology, mental state modeling, rational agency, or neuro-symbolic AI integration.", - "lastIndexed": 1772928421572 + "lastIndexed": 1773533422717 }, { "name": "beautiful-prose", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/beautiful-prose", "description": "A hard-edged writing style contract for timeless, forceful English prose without modern AI tics. Use when users ask for prose or rewrites that must be clean, exact, concrete, and free of AI cadence, filler, or therapeutic tone.", - "lastIndexed": 1772928421498 + "lastIndexed": 1773533422642 }, { "name": "behavioral-modes", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/behavioral-modes", "description": "AI operational modes (brainstorm, implement, debug, review, teach, ship, orchestrate). Use to adapt behavior based on task type.", - "lastIndexed": 1772928421498 + "lastIndexed": 1773533422642 }, { "name": "bevy-ecs-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bevy-ecs-expert", "description": "Master Bevy's Entity Component System (ECS) in Rust, covering Systems, Queries, Resources, and parallel scheduling.", - "lastIndexed": 1772928421498 + "lastIndexed": 1773533422642 }, { "name": "bill-gates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bill-gates", "description": "Agente que simula Bill Gates — cofundador da Microsoft, arquiteto da industria de software comercial, estrategista tecnologico global, investidor sistemico e filantropo baseado em dados. Use...", - "lastIndexed": 1772928421709 + "lastIndexed": 1773533422840 }, { "name": "billing-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/billing-automation", "description": "Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recu...", - "lastIndexed": 1772928421415 + "lastIndexed": 1773533422568 }, { "name": "binary-analysis-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/binary-analysis-patterns", "description": "Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing...", - "lastIndexed": 1772928421572 + "lastIndexed": 1773533422717 }, { "name": "biopython", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/biopython", "description": "Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget;...", - "lastIndexed": 1772928421638 + "lastIndexed": 1773533422775 }, { "name": "bitbucket-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bitbucket-automation", "description": "Automate Bitbucket repositories, pull requests, branches, issues, and workspace management via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421638 + "lastIndexed": 1773533422775 }, { "name": "blockchain-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/blockchain-developer", "description": "Build production-ready Web3 applications, smart contracts, and decentralized systems. Implements DeFi protocols, NFT platforms, DAOs, and enterprise blockchain integrations.", - "lastIndexed": 1772928421573 + "lastIndexed": 1773533422718 }, { "name": "blockrun", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/blockrun", "description": "Use when user needs capabilities Claude lacks (image generation, real-time X/Twitter data) or explicitly requests external models (\\\"blockrun\\\", \\\"use grok\\\", \\\"use gpt\\\", \\\"da...", - "lastIndexed": 1772928421573 + "lastIndexed": 1773533422718 }, { "name": "blog-writing-guide", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/blog-writing-guide", "description": "Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and quality bar. Use this skill whenever someone asks to write a blog post, draft a technical article, review blog content, improve a draft, write a...", - "lastIndexed": 1772928421573 + "lastIndexed": 1773533422718 + }, + { + "name": "blueprint", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/blueprint", + "description": "Turn a one-line objective into a step-by-step construction plan any coding agent can execute cold. Each step has a self-contained context brief — a fresh agent in a new session can pick up any step without reading prior steps.", + "lastIndexed": 1773533422568 }, { "name": "box-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/box-automation", "description": "Automate Box cloud storage operations including file upload/download, search, folder management, sharing, collaborations, and metadata queries via Rube MCP (Composio). Always search tools first for...", - "lastIndexed": 1772928421638 + "lastIndexed": 1773533422775 }, { "name": "brainstorming", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/brainstorming", "description": "Use before creative or constructive work (features, architecture, behavior). Transforms vague ideas into validated designs through disciplined reasoning and collaboration.", - "lastIndexed": 1772928421499 + "lastIndexed": 1773533422643 }, { "name": "brand-guidelines-anthropic", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/brand-guidelines-anthropic", "description": "Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatt...", - "lastIndexed": 1772928421416 + "lastIndexed": 1773533422568 }, { "name": "brand-guidelines-community", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/brand-guidelines-community", "description": "Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatt...", - "lastIndexed": 1772928421416 + "lastIndexed": 1773533422569 }, { "name": "brand-guidelines", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/brand-guidelines", "description": "Write copy following Sentry brand guidelines. Use when writing UI text, error messages, empty states, onboarding flows, 404 pages, documentation, marketing copy, or any user-facing content. Covers both Plain Speech (default) and Sentry Voice tones.", - "lastIndexed": 1772928421499 + "lastIndexed": 1773533422643 }, { "name": "brevo-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/brevo-automation", "description": "Automate Brevo (Sendinblue) tasks via Rube MCP (Composio): manage email campaigns, create/edit templates, track senders, and monitor campaign performance. Always search tools first for current sche...", - "lastIndexed": 1772928421573 + "lastIndexed": 1773533422718 }, { "name": "broken-authentication", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/broken-authentication", "description": "This skill should be used when the user asks to \"test for broken authentication vulnerabilities\", \"assess session management security\", \"perform credential stuffing tests\", \"evaluate ...", - "lastIndexed": 1772928421638 + "lastIndexed": 1773533422775 }, { "name": "browser-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/browser-automation", "description": "Browser automation powers web testing, scraping, and AI agent interactions. The difference between a flaky script and a reliable system comes down to understanding selectors, waiting strategies, an...", - "lastIndexed": 1772928421416 + "lastIndexed": 1773533422569 }, { "name": "browser-extension-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/browser-extension-builder", "description": "Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization ...", - "lastIndexed": 1772928421500 + "lastIndexed": 1773533422643 }, { "name": "bug-hunter", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bug-hunter", "description": "Systematically finds and fixes bugs using proven debugging techniques. Traces from symptoms to root cause, implements fixes, and prevents regression.", - "lastIndexed": 1772928421574 + "lastIndexed": 1773533422718 }, { "name": "build", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/build", "description": "build", - "lastIndexed": 1772928421672 + "lastIndexed": 1773533422804 }, { "name": "building-native-ui", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/building-native-ui", "description": "Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.", - "lastIndexed": 1772928421639 - }, - { - "name": "building-secure-contracts", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/building-secure-contracts", - "description": "Building Secure Contracts", - "lastIndexed": 1772928421416 + "lastIndexed": 1773533422775 }, { "name": "bullmq-specialist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bullmq-specialist", "description": "BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications. Use when: bullmq, bull queue, redis queue, background job, job queue.", - "lastIndexed": 1772928421417 + "lastIndexed": 1773533422569 }, { "name": "bun-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/bun-development", "description": "Modern JavaScript/TypeScript development with Bun runtime. Covers package management, bundling, testing, and migration from Node.js. Use when working with Bun, optimizing JS/TS development speed, o...", - "lastIndexed": 1772928421639 + "lastIndexed": 1773533422776 }, { "name": "burp-suite-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/burp-suite-testing", "description": "This skill should be used when the user asks to \"intercept HTTP traffic\", \"modify web requests\", \"use Burp Suite for testing\", \"perform web vulnerability scanning\", \"test with Burp ...", - "lastIndexed": 1772928421639 + "lastIndexed": 1773533422776 }, { "name": "burpsuite-project-parser", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/burpsuite-project-parser", "description": "Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns, extracting security audit findings, dumping proxy history or site map data, or analyzing HTTP traffic captured in a Burp project.", - "lastIndexed": 1772928421639 + "lastIndexed": 1773533422776 }, { "name": "business-analyst", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/business-analyst", "description": "Master modern business analysis with AI-powered analytics, real-time dashboards, and data-driven insights. Build comprehensive KPI frameworks, predictive models, and strategic recommendations.", - "lastIndexed": 1772928421574 + "lastIndexed": 1773533422719 }, { "name": "busybox-on-windows", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/busybox-on-windows", "description": "How to use a Win32 build of BusyBox to run many of the standard UNIX command line tools on Windows.", - "lastIndexed": 1772928421417 + "lastIndexed": 1773533422569 }, { "name": "c-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/c-pro", "description": "Write efficient C code with proper memory management, pointer", - "lastIndexed": 1772928421417 + "lastIndexed": 1773533422569 }, { "name": "c4-architecture-c4-architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/c4-architecture-c4-architecture", "description": "Generate comprehensive C4 architecture documentation for an existing repository/codebase using a bottom-up analysis approach.", - "lastIndexed": 1772928421672 + "lastIndexed": 1773533422804 }, { "name": "c4-code", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/c4-code", "description": "Expert C4 Code-level documentation specialist. Analyzes code directories to create comprehensive C4 code-level documentation including function signatures, arguments, dependencies, and code structure.", - "lastIndexed": 1772928421574 + "lastIndexed": 1773533422719 }, { "name": "c4-component", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/c4-component", "description": "Expert C4 Component-level documentation specialist. Synthesizes C4 Code-level documentation into Component-level architecture, defining component boundaries, interfaces, and relationships.", - "lastIndexed": 1772928421500 + "lastIndexed": 1773533422644 }, { "name": "c4-container", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/c4-container", "description": "Expert C4 Container-level documentation specialist.", - "lastIndexed": 1772928421500 + "lastIndexed": 1773533422644 }, { "name": "c4-context", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/c4-context", "description": "Expert C4 Context-level documentation specialist. Creates high-level system context diagrams, documents personas, user journeys, system features, and external dependencies.", - "lastIndexed": 1772928421500 + "lastIndexed": 1773533422644 }, { "name": "cal-com-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cal-com-automation", "description": "Automate Cal.com tasks via Rube MCP (Composio): manage bookings, check availability, configure webhooks, and handle teams. Always search tools first for current schemas.", - "lastIndexed": 1772928421574 + "lastIndexed": 1773533422719 }, { "name": "calendly-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/calendly-automation", "description": "Automate Calendly scheduling, event management, invitee tracking, availability checks, and organization administration via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421575 + "lastIndexed": 1773533422719 }, { "name": "canva-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/canva-automation", "description": "Automate Canva tasks via Rube MCP (Composio): designs, exports, folders, brand templates, autofill. Always search tools first for current schemas.", - "lastIndexed": 1772928421575 + "lastIndexed": 1773533422719 }, { "name": "canvas-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/canvas-design", "description": "Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create ...", - "lastIndexed": 1772928421639 + "lastIndexed": 1773533422776 }, { "name": "carrier-relationship-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/carrier-relationship-management", "description": "Codified expertise for managing carrier portfolios, negotiating freight rates, tracking carrier performance, allocating freight, and maintaining strategic carrier relationships.", - "lastIndexed": 1772928421698 + "lastIndexed": 1773533422826 }, { "name": "cc-skill-backend-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-backend-patterns", "description": "Backend architecture patterns, API design, database optimization, and server-side best practices for Node.js, Express, and Next.js API routes.", - "lastIndexed": 1772928421640 + "lastIndexed": 1773533422776 }, { "name": "cc-skill-clickhouse-io", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-clickhouse-io", "description": "ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.", - "lastIndexed": 1772928421575 + "lastIndexed": 1773533422720 }, { "name": "cc-skill-coding-standards", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-coding-standards", "description": "Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.", - "lastIndexed": 1772928421640 + "lastIndexed": 1773533422777 }, { "name": "cc-skill-continuous-learning", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-continuous-learning", "description": "Development skill from everything-claude-code", - "lastIndexed": 1772928421418 + "lastIndexed": 1773533422570 }, { "name": "cc-skill-frontend-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-frontend-patterns", "description": "Frontend development patterns for React, Next.js, state management, performance optimization, and UI best practices.", - "lastIndexed": 1772928421640 + "lastIndexed": 1773533422777 }, { "name": "cc-skill-project-guidelines-example", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-project-guidelines-example", "description": "Project Guidelines Skill (Example)", - "lastIndexed": 1772928421576 + "lastIndexed": 1773533422720 }, { "name": "cc-skill-security-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-security-review", "description": "Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features. Provides comprehensive security checklist a...", - "lastIndexed": 1772928421640 + "lastIndexed": 1773533422777 }, { "name": "cc-skill-strategic-compact", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cc-skill-strategic-compact", "description": "Development skill from everything-claude-code", - "lastIndexed": 1772928421418 + "lastIndexed": 1773533422570 }, { "name": "cdk-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cdk-patterns", "description": "Common AWS CDK patterns and constructs for building cloud infrastructure with TypeScript, Python, or Java. Use when designing reusable CDK stacks and L3 constructs.", - "lastIndexed": 1772928421501 + "lastIndexed": 1773533422645 }, { "name": "changelog-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/changelog-automation", "description": "Automate changelog generation from commits, PRs, and releases following Keep a Changelog format. Use when setting up release workflows, generating release notes, or standardizing commit conventions.", - "lastIndexed": 1772928421418 + "lastIndexed": 1773533422570 }, { "name": "chat-widget", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/chat-widget", "description": "Build a real-time support chat system with a floating widget for users and an admin dashboard for support staff. Use when the user wants live chat, customer support chat, real-time messaging, or in-app support.", - "lastIndexed": 1772928421698 + "lastIndexed": 1773533422827 }, { "name": "chrome-extension-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/chrome-extension-developer", "description": "Expert in building Chrome Extensions using Manifest V3. Covers background scripts, service workers, content scripts, and cross-context communication.", - "lastIndexed": 1772928421501 + "lastIndexed": 1773533422645 }, { "name": "cicd-automation-workflow-automate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cicd-automation-workflow-automate", "description": "You are a workflow automation expert specializing in creating efficient CI/CD pipelines, GitHub Actions workflows, and automated development processes. Design automation that reduces manual work, i...", - "lastIndexed": 1772928421418 + "lastIndexed": 1773533422570 }, { "name": "circleci-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/circleci-automation", "description": "Automate CircleCI tasks via Rube MCP (Composio): trigger pipelines, monitor workflows/jobs, retrieve artifacts and test metadata. Always search tools first for current schemas.", - "lastIndexed": 1772928421501 + "lastIndexed": 1773533422645 }, { "name": "cirq", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cirq", "description": "Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum...", - "lastIndexed": 1772928421576 + "lastIndexed": 1773533422720 }, { "name": "citation-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/citation-management", "description": "Comprehensive citation management for academic research. Search Google Scholar and PubMed for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation...", - "lastIndexed": 1772928421701 + "lastIndexed": 1773533422829 }, { "name": "claimable-postgres", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claimable-postgres", "description": "Provision instant temporary Postgres databases via Claimable Postgres by Neon (pg.new). No login or credit card required. Use for quick Postgres environments and throwaway DATABASE_URL for prototyping.", - "lastIndexed": 1772928421576 + "lastIndexed": 1773533422720 }, { "name": "clarity-gate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/clarity-gate", "description": "Pre-ingestion verification for epistemic quality in RAG systems. Ensures documents are properly qualified before entering knowledge bases. Produces CGD (Clarity-Gated Documents) and validates SOT (Source of Truth) files.", - "lastIndexed": 1772928421699 + "lastIndexed": 1773533422827 }, { "name": "claude-ally-health", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-ally-health", "description": "A health assistant skill for medical information analysis, symptom tracking, and wellness guidance.", - "lastIndexed": 1772928421419 + "lastIndexed": 1773533422571 }, { "name": "claude-code-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-code-expert", "description": "Especialista profundo em Claude Code - CLI da Anthropic. Maximiza produtividade com atalhos, hooks, MCPs, configuracoes avancadas, workflows, CLAUDE.md, memoria, sub-agentes, permissoes e...", - "lastIndexed": 1772928421672 + "lastIndexed": 1773533422805 }, { "name": "claude-code-guide", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-code-guide", "description": "Master guide for using Claude Code effectively. Includes configuration templates, prompting strategies \\\"Thinking\\\" keywords, debugging techniques, and best practices for interacting wit...", - "lastIndexed": 1772928421419 + "lastIndexed": 1773533422571 }, { "name": "claude-d3js-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-d3js-skill", "description": "Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visua...", - "lastIndexed": 1772928421684 + "lastIndexed": 1773533422816 }, { "name": "claude-in-chrome-troubleshooting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-in-chrome-troubleshooting", "description": "Diagnose and fix Claude in Chrome MCP extension connectivity issues. Use when mcp__claude-in-chrome__* tools fail, return \"Browser extension is not connected\", or behave erratically.", - "lastIndexed": 1772928421576 + "lastIndexed": 1773533422721 }, { "name": "claude-monitor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-monitor", "description": "Monitor de performance do Claude Code e sistema local. Diagnostica lentidao, mede CPU/RAM/disco, verifica API latency e gera relatorios de saude do sistema.", - "lastIndexed": 1772928421502 + "lastIndexed": 1773533422646 }, { "name": "claude-scientific-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-scientific-skills", "description": "Scientific research and analysis skills", - "lastIndexed": 1772928421419 + "lastIndexed": 1773533422571 }, { "name": "claude-settings-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-settings-audit", "description": "Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.", - "lastIndexed": 1772928421576 + "lastIndexed": 1773533422721 }, { "name": "claude-speed-reader", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-speed-reader", "description": "-Speed read Claude's responses at 600+ WPM using RSVP with Spritz-style ORP highlighting", - "lastIndexed": 1772928421419 + "lastIndexed": 1773533422571 }, { "name": "claude-win11-speckit-update-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/claude-win11-speckit-update-skill", "description": "Windows 11 system management", - "lastIndexed": 1772928421419 + "lastIndexed": 1773533422571 }, { "name": "clean-code", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/clean-code", "description": "Applies principles from Robert C. Martin's 'Clean Code'. Use this skill when writing, reviewing, or refactoring code to ensure high quality, readability, and maintainability. Covers naming, functio...", - "lastIndexed": 1772928421502 + "lastIndexed": 1773533422646 }, { "name": "clerk-auth", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/clerk-auth", "description": "Expert patterns for Clerk auth implementation, middleware, organizations, webhooks, and user sync Use when: adding authentication, clerk auth, user authentication, sign in, sign up.", - "lastIndexed": 1772928421420 + "lastIndexed": 1773533422571 }, { "name": "clickup-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/clickup-automation", "description": "Automate ClickUp project management including tasks, spaces, folders, lists, comments, and team operations via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421577 + "lastIndexed": 1773533422721 }, { "name": "close-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/close-automation", "description": "Automate Close CRM tasks via Rube MCP (Composio): create leads, manage calls/SMS, handle tasks, and track notes. Always search tools first for current schemas.", - "lastIndexed": 1772928421502 + "lastIndexed": 1773533422647 + }, + { + "name": "closed-loop-delivery", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/closed-loop-delivery", + "description": "Use when a coding task must be completed against explicit acceptance criteria with minimal user re-intervention across implementation, review feedback, deployment, and runtime verification.", + "lastIndexed": 1773533422647 }, { "name": "cloud-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cloud-architect", "description": "Expert cloud architect specializing in AWS/Azure/GCP multi-cloud infrastructure design, advanced IaC (Terraform/OpenTofu/CDK), FinOps cost optimization, and modern architectural patterns.", - "lastIndexed": 1772928421577 + "lastIndexed": 1773533422721 }, { "name": "cloud-devops", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cloud-devops", "description": "Cloud infrastructure and DevOps workflow covering AWS, Azure, GCP, Kubernetes, Terraform, CI/CD, monitoring, and cloud-native development.", - "lastIndexed": 1772928421503 + "lastIndexed": 1773533422647 }, { "name": "cloud-penetration-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cloud-penetration-testing", "description": "This skill should be used when the user asks to \"perform cloud penetration testing\", \"assess Azure or AWS or GCP security\", \"enumerate cloud resources\", \"exploit cloud misconfiguratio...", - "lastIndexed": 1772928421641 + "lastIndexed": 1773533422777 }, { "name": "cloudflare-workers-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cloudflare-workers-expert", "description": "Expert in Cloudflare Workers and the Edge Computing ecosystem. Covers Wrangler, KV, D1, Durable Objects, and R2 storage.", - "lastIndexed": 1772928421503 + "lastIndexed": 1773533422647 }, { "name": "cloudformation-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cloudformation-best-practices", "description": "CloudFormation template optimization, nested stacks, drift detection, and production-ready patterns. Use when writing or reviewing CF templates.", - "lastIndexed": 1772928421420 + "lastIndexed": 1773533422572 }, { "name": "coda-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/coda-automation", "description": "Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.", - "lastIndexed": 1772928421577 + "lastIndexed": 1773533422721 }, { "name": "code-documentation-code-explain", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-documentation-code-explain", "description": "You are a code education expert specializing in explaining complex code through clear narratives, visual diagrams, and step-by-step breakdowns. Transform difficult concepts into understandable expl...", - "lastIndexed": 1772928421420 + "lastIndexed": 1773533422572 }, { "name": "code-documentation-doc-generate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-documentation-doc-generate", "description": "You are a documentation expert specializing in creating comprehensive, maintainable documentation from code. Generate API docs, architecture diagrams, user guides, and technical references using AI...", - "lastIndexed": 1772928421420 + "lastIndexed": 1773533422572 }, { "name": "code-refactoring-context-restore", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-refactoring-context-restore", "description": "Use when working with code refactoring context restore", - "lastIndexed": 1772928421503 + "lastIndexed": 1773533422648 }, { "name": "code-refactoring-refactor-clean", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-refactoring-refactor-clean", "description": "You are a code refactoring expert specializing in clean code principles, SOLID design patterns, and modern software engineering best practices. Analyze and refactor the provided code to improve its...", - "lastIndexed": 1772928421421 + "lastIndexed": 1773533422572 }, { "name": "code-refactoring-tech-debt", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-refactoring-tech-debt", "description": "You are a technical debt expert specializing in identifying, quantifying, and prioritizing technical debt in software projects. Analyze the codebase to uncover debt, assess its impact, and create acti", - "lastIndexed": 1772928421641 + "lastIndexed": 1773533422777 }, { "name": "code-review-ai-ai-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-review-ai-ai-review", "description": "You are an expert AI-powered code review specialist combining automated static analysis, intelligent pattern recognition, and modern DevOps practices. Leverage AI tools (GitHub Copilot, Qodo, GPT-5, C", - "lastIndexed": 1772928421673 + "lastIndexed": 1773533422805 }, { "name": "code-review-checklist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-review-checklist", "description": "Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability", - "lastIndexed": 1772928421641 + "lastIndexed": 1773533422778 }, { "name": "code-review-excellence", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-review-excellence", "description": "Master effective code review practices to provide constructive feedback, catch bugs early, and foster knowledge sharing while maintaining team morale. Use when reviewing pull requests, establishing...", - "lastIndexed": 1772928421421 + "lastIndexed": 1773533422572 }, { "name": "code-reviewer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-reviewer", "description": "Elite code review expert specializing in modern AI-powered code", - "lastIndexed": 1772928421577 + "lastIndexed": 1773533422722 }, { "name": "code-simplifier", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/code-simplifier", "description": "Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to \"simplify code\", \"clean up code\", \"refactor for clarity\", \"improve readability\", or review recently modified code for elegance. Focuses on project-specific best practices.", - "lastIndexed": 1772928421503 + "lastIndexed": 1773533422648 }, { "name": "codebase-audit-pre-push", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/codebase-audit-pre-push", "description": "Deep audit before GitHub push: removes junk files, dead code, security holes, and optimization issues. Checks every file line-by-line for production readiness.", - "lastIndexed": 1772928421578 + "lastIndexed": 1773533422722 }, { "name": "codebase-cleanup-deps-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/codebase-cleanup-deps-audit", "description": "You are a dependency security expert specializing in vulnerability scanning, license compliance, and supply chain security. Analyze project dependencies for known vulnerabilities, licensing issues,...", - "lastIndexed": 1772928421421 + "lastIndexed": 1773533422573 }, { "name": "codebase-cleanup-refactor-clean", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/codebase-cleanup-refactor-clean", "description": "You are a code refactoring expert specializing in clean code principles, SOLID design patterns, and modern software engineering best practices. Analyze and refactor the provided code to improve its...", - "lastIndexed": 1772928421421 + "lastIndexed": 1773533422573 }, { "name": "codebase-cleanup-tech-debt", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/codebase-cleanup-tech-debt", "description": "You are a technical debt expert specializing in identifying, quantifying, and prioritizing technical debt in software projects. Analyze the codebase to uncover debt, assess its impact, and create acti", - "lastIndexed": 1772928421641 + "lastIndexed": 1773533422778 }, { "name": "codex-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/codex-review", "description": "Professional code review with auto CHANGELOG generation, integrated with Codex AI", - "lastIndexed": 1772928421421 + "lastIndexed": 1773533422573 }, { "name": "comfyui-gateway", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/comfyui-gateway", "description": "REST API gateway for ComfyUI servers. Workflow management, job queuing, webhooks, caching, auth, rate limiting, and image delivery (URL + base64).", - "lastIndexed": 1772928421673 + "lastIndexed": 1773533422805 }, { "name": "commit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/commit", "description": "ALWAYS use this skill when committing code changes — never commit directly without it. Creates commits following Sentry conventions with proper conventional commit format and issue references. Trigger on any commit, git commit, save changes, or commit message task.", - "lastIndexed": 1772928421503 + "lastIndexed": 1773533422648 }, { "name": "competitive-landscape", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/competitive-landscape", "description": "This skill should be used when the user asks to \\\\\\\"analyze competitors\", \"assess competitive landscape\", \"identify differentiation\", \"evaluate market positioning\", \"apply Porter's Five Forces\",...", - "lastIndexed": 1772928421422 + "lastIndexed": 1773533422573 }, { "name": "competitor-alternatives", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/competitor-alternatives", "description": "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'compa...", - "lastIndexed": 1772928421690 + "lastIndexed": 1773533422821 }, { "name": "comprehensive-review-full-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/comprehensive-review-full-review", "description": "Use when working with comprehensive review full review", - "lastIndexed": 1772928421578 + "lastIndexed": 1773533422802 }, { "name": "comprehensive-review-pr-enhance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/comprehensive-review-pr-enhance", "description": "You are a PR optimization expert specializing in creating high-quality pull requests that facilitate efficient code reviews. Generate comprehensive PR descriptions, automate review processes, and e...", - "lastIndexed": 1772928421422 + "lastIndexed": 1773533422573 }, { "name": "computer-use-agents", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/computer-use-agents", "description": "Build AI agents that interact with computers like humans do - viewing screens, moving cursors, clicking buttons, and typing text. Covers Anthropic's Computer Use, OpenAI's Operator/CUA, and open-so...", - "lastIndexed": 1772928421578 + "lastIndexed": 1773533422722 }, { "name": "computer-vision-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/computer-vision-expert", "description": "SOTA Computer Vision Expert (2026). Specialized in YOLO26, Segment Anything 3 (SAM 3), Vision Language Models, and real-time spatial analysis.", - "lastIndexed": 1772928421504 + "lastIndexed": 1773533422648 }, { "name": "concise-planning", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/concise-planning", "description": "Use when a user asks for a plan for a coding task, to generate a clear, actionable, and atomic checklist.", - "lastIndexed": 1772928421422 + "lastIndexed": 1773533422573 }, { "name": "conductor-implement", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-implement", "description": "Execute tasks from a track's implementation plan following TDD workflow", - "lastIndexed": 1772928421578 + "lastIndexed": 1773533422722 }, { "name": "conductor-manage", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-manage", "description": "Manage track lifecycle: archive, restore, delete, rename, and cleanup", - "lastIndexed": 1772928421422 + "lastIndexed": 1773533422573 }, { "name": "conductor-new-track", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-new-track", "description": "Create a new track with specification and phased implementation plan", - "lastIndexed": 1772928421578 + "lastIndexed": 1773533422722 }, { "name": "conductor-revert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-revert", "description": "Git-aware undo by logical work unit (track, phase, or task)", - "lastIndexed": 1772928421578 + "lastIndexed": 1773533422722 }, { "name": "conductor-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-setup", "description": "Configure a Rails project to work with Conductor (parallel coding agents)", - "lastIndexed": 1772928421504 + "lastIndexed": 1773533422649 }, { "name": "conductor-status", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-status", "description": "Display project status, active tracks, and next actions", - "lastIndexed": 1772928421579 + "lastIndexed": 1773533422722 }, { "name": "conductor-validator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conductor-validator", "description": "Validates Conductor project artifacts for completeness,\nconsistency, and correctness. Use after setup, when diagnosing issues, or\nbefore implementation to verify project context.", - "lastIndexed": 1772928421423 + "lastIndexed": 1773533422574 }, { "name": "confluence-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/confluence-automation", "description": "Automate Confluence page creation, content search, space management, labels, and hierarchy navigation via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421642 + "lastIndexed": 1773533422778 }, { "name": "constant-time-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/constant-time-analysis", "description": "Detects timing side-channel vulnerabilities in cryptographic code. Use when implementing or reviewing crypto code, encountering division on secrets, secret-dependent branches, or constant-time programming questions in C, C++, Go, Rust, Swift, Java, Kotlin, C#, PHP,...", - "lastIndexed": 1772928421579 + "lastIndexed": 1773533422723 }, { "name": "content-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/content-creator", "description": "Create SEO-optimized marketing content with consistent brand voice. Includes brand voice analyzer, SEO optimizer, content frameworks, and social media templates. Use when writing blog posts, creati...", - "lastIndexed": 1772928421579 + "lastIndexed": 1773533422723 }, { "name": "content-marketer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/content-marketer", "description": "Elite content marketing strategist specializing in AI-powered content creation, omnichannel distribution, SEO optimization, and data-driven performance marketing.", - "lastIndexed": 1772928421579 + "lastIndexed": 1773533422723 }, { "name": "context-agent", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-agent", "description": "Agente de contexto para continuidade entre sessoes. Salva resumos, decisoes, tarefas pendentes e carrega briefing automatico na sessao seguinte.", - "lastIndexed": 1772928421505 + "lastIndexed": 1773533422649 }, { "name": "context-compression", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-compression", "description": "This skill should be used when the user asks to \"compress context\", \"summarize conversation history\", \"implement compaction\", \"reduce token usage\", or mentions context compression, structured summarization, tokens-per-task optimization, or long-running agent sessions...", - "lastIndexed": 1772928421642 + "lastIndexed": 1773533422778 }, { "name": "context-degradation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-degradation", "description": "This skill should be used when the user asks to \"diagnose context problems\", \"fix lost-in-middle issues\", \"debug agent failures\", \"understand context poisoning\", or mentions context degradation, attention patterns, context clash, context confusion, or agent performance...", - "lastIndexed": 1772928421673 + "lastIndexed": 1773533422806 }, { "name": "context-driven-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-driven-development", "description": "Use this skill when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md, and...", - "lastIndexed": 1772928421642 + "lastIndexed": 1773533422778 }, { "name": "context-fundamentals", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-fundamentals", "description": "This skill should be used when the user asks to \"understand context\", \"explain context windows\", \"design agent architecture\", \"debug context issues\", \"optimize context usage\", or discusses context components, attention mechanics, progressive disclosure, or context budgeting....", - "lastIndexed": 1772928421642 + "lastIndexed": 1773533422779 }, { "name": "context-guardian", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-guardian", "description": "Guardiao de contexto que preserva dados criticos antes da compactacao automatica. Snapshots, verificacao de integridade e zero perda de informacao.", - "lastIndexed": 1772928421642 + "lastIndexed": 1773533422779 }, { "name": "context-management-context-restore", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-management-context-restore", "description": "Use when working with context management context restore", - "lastIndexed": 1772928421505 + "lastIndexed": 1773533422649 }, { "name": "context-management-context-save", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-management-context-save", "description": "Use when working with context management context save", - "lastIndexed": 1772928421505 + "lastIndexed": 1773533422649 }, { "name": "context-manager", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-manager", "description": "Elite AI context engineering specialist mastering dynamic context management, vector databases, knowledge graphs, and intelligent memory systems.", - "lastIndexed": 1772928421580 + "lastIndexed": 1773533422723 }, { "name": "context-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-optimization", "description": "This skill should be used when the user asks to \"optimize context\", \"reduce token costs\", \"improve context efficiency\", \"implement KV-cache optimization\", \"partition context\", or mentions context limits, observation masking, context budgeting, or extending effective context...", - "lastIndexed": 1772928421580 + "lastIndexed": 1773533422723 }, { "name": "context-window-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context-window-management", "description": "Strategies for managing LLM context windows including summarization, trimming, routing, and avoiding context rot Use when: context window, token limit, context management, context engineering, long...", - "lastIndexed": 1772928421424 + "lastIndexed": 1773533422574 }, { "name": "context7-auto-research", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/context7-auto-research", "description": "Automatically fetch latest library/framework documentation for Claude Code via Context7 API", - "lastIndexed": 1772928421424 + "lastIndexed": 1773533422574 }, { "name": "conversation-memory", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/conversation-memory", "description": "Persistent memory systems for LLM conversations including short-term, long-term, and entity-based memory Use when: conversation memory, remember, memory persistence, long-term memory, chat history.", - "lastIndexed": 1772928421424 + "lastIndexed": 1773533422574 }, { "name": "convertkit-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/convertkit-automation", "description": "Automate ConvertKit (Kit) tasks via Rube MCP (Composio): manage subscribers, tags, broadcasts, and broadcast stats. Always search tools first for current schemas.", - "lastIndexed": 1772928421505 + "lastIndexed": 1773533422650 }, { "name": "convex", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/convex", "description": "Convex reactive backend expert: schema design, TypeScript functions, real-time subscriptions, auth, file storage, scheduling, and deployment.", - "lastIndexed": 1772928421690 + "lastIndexed": 1773533422821 }, { "name": "copilot-sdk", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/copilot-sdk", "description": "Build applications powered by GitHub Copilot using the Copilot SDK. Use when creating programmatic integrations with Copilot across Node.js/TypeScript, Python, Go, or .NET. Covers session managemen...", - "lastIndexed": 1772928421643 + "lastIndexed": 1773533422779 }, { "name": "copy-editing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/copy-editing", "description": "When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this ...", - "lastIndexed": 1772928421643 + "lastIndexed": 1773533422779 }, { "name": "copywriting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/copywriting", "description": "Write rigorous, conversion-focused marketing copy for landing pages and emails. Enforces brief confirmation and strict no-fabrication rules.", - "lastIndexed": 1772928421634 + "lastIndexed": 1773533422650 }, { "name": "core-components", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/core-components", "description": "Core component library and design system patterns. Use when building UI, using design tokens, or working with the component library.", - "lastIndexed": 1772928421505 + "lastIndexed": 1773533422650 }, { "name": "cost-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cost-optimization", "description": "Optimize cloud costs through resource rightsizing, tagging strategies, reserved instances, and spending analysis. Use when reducing cloud expenses, analyzing infrastructure costs, or implementing c...", - "lastIndexed": 1772928421580 + "lastIndexed": 1773533422724 }, { "name": "cpp-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cpp-pro", "description": "Write idiomatic C++ code with modern features, RAII, smart pointers, and STL algorithms. Handles templates, move semantics, and performance optimization.", - "lastIndexed": 1772928421424 + "lastIndexed": 1773533422575 }, { "name": "cqrs-implementation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cqrs-implementation", "description": "Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.", - "lastIndexed": 1772928421424 + "lastIndexed": 1773533422575 }, { "name": "create-branch", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/create-branch", "description": "Create a git branch following Sentry naming conventions. Use when asked to \"create a branch\", \"new branch\", \"start a branch\", \"make a branch\", \"switch to a new branch\", or when starting new work on the default branch.", - "lastIndexed": 1772928421506 + "lastIndexed": 1773533422650 + }, + { + "name": "create-issue-gate", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/create-issue-gate", + "description": "Use when starting a new implementation task and an issue must be created with strict acceptance criteria gating before execution.", + "lastIndexed": 1773533422575 }, { "name": "create-pr", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/create-pr", "description": "Alias for sentry-skills:pr-writer. Use when users explicitly ask for \"create-pr\" or reference the legacy skill name. Redirects to the canonical PR writing workflow.", - "lastIndexed": 1772928421425 + "lastIndexed": 1773533422575 }, { "name": "cred-omega", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/cred-omega", "description": "CISO operacional enterprise para gestao total de credenciais e segredos. Descobre, classifica, protege e governa TODAS as API keys, tokens, secrets, service accounts e credenciais em qualquer...", - "lastIndexed": 1772928421705 + "lastIndexed": 1773533422834 }, { "name": "crewai", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/crewai", "description": "Expert in CrewAI - the leading role-based multi-agent framework used by 60% of Fortune 500 companies. Covers agent design with roles and goals, task definition, crew orchestration, process types (s...", - "lastIndexed": 1772928421506 + "lastIndexed": 1773533422650 }, { "name": "crypto-bd-agent", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/crypto-bd-agent", "description": "Autonomous crypto business development patterns — multi-chain token discovery, 100-point scoring with wallet forensics, x402 micropayments, ERC-8004 on-chain identity, LLM cascade routing, and...", - "lastIndexed": 1772928421580 + "lastIndexed": 1773533422724 }, { "name": "csharp-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/csharp-pro", "description": "Write modern C# code with advanced features like records, pattern matching, and async/await. Optimizes .NET applications, implements enterprise patterns, and ensures comprehensive testing.", - "lastIndexed": 1772928421425 - }, - { - "name": "culture-index", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/culture-index", - "description": "Culture Index", - "lastIndexed": 1772928421425 + "lastIndexed": 1773533422575 }, { "name": "customer-support", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/customer-support", "description": "Elite AI-powered customer support specialist mastering conversational AI, automated ticketing, sentiment analysis, and omnichannel support experiences.", - "lastIndexed": 1772928421581 + "lastIndexed": 1773533422724 }, { "name": "customs-trade-compliance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/customs-trade-compliance", "description": "Codified expertise for customs documentation, tariff classification, duty optimisation, restricted party screening, and regulatory compliance across multiple jurisdictions.", - "lastIndexed": 1772928421705 + "lastIndexed": 1773533422834 }, { "name": "daily-news-report", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/daily-news-report", "description": "Scrapes content based on a preset URL list, filters high-quality technical information, and generates daily Markdown reports.", - "lastIndexed": 1772928421643 + "lastIndexed": 1773533422779 }, { "name": "daily", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/daily", "description": "Documentation and capabilities reference for Daily", - "lastIndexed": 1772928421643 + "lastIndexed": 1773533422780 }, { "name": "data-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-engineer", "description": "Build scalable data pipelines, modern data warehouses, and real-time streaming architectures. Implements Apache Spark, dbt, Airflow, and cloud-native data platforms.", - "lastIndexed": 1772928421643 + "lastIndexed": 1773533422780 }, { "name": "data-engineering-data-driven-feature", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-engineering-data-driven-feature", "description": "Build features guided by data insights, A/B testing, and continuous measurement using specialized agents for analysis, implementation, and experimentation.", - "lastIndexed": 1772928421581 + "lastIndexed": 1773533422724 }, { "name": "data-engineering-data-pipeline", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-engineering-data-pipeline", "description": "You are a data pipeline architecture expert specializing in scalable, reliable, and cost-effective data pipelines for batch and streaming data processing.", - "lastIndexed": 1772928421581 + "lastIndexed": 1773533422725 }, { "name": "data-quality-frameworks", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-quality-frameworks", "description": "Implement data quality validation with Great Expectations, dbt tests, and data contracts. Use when building data quality pipelines, implementing validation rules, or establishing data contracts.", - "lastIndexed": 1772928421425 + "lastIndexed": 1773533422576 }, { "name": "data-scientist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-scientist", "description": "Expert data scientist for advanced analytics, machine learning, and statistical modeling. Handles complex data analysis, predictive modeling, and business intelligence.", - "lastIndexed": 1772928421644 + "lastIndexed": 1773533422780 }, { "name": "data-storytelling", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-storytelling", "description": "Transform data into compelling narratives using visualization, context, and persuasive structure. Use when presenting analytics to stakeholders, creating data reports, or building executive present...", - "lastIndexed": 1772928421644 + "lastIndexed": 1773533422780 }, { "name": "data-structure-protocol", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/data-structure-protocol", "description": "Give agents persistent structural memory of a codebase — navigate dependencies, track public APIs, and understand why connections exist without re-reading the whole repo.", - "lastIndexed": 1772928421582 - }, - { - "name": "data-visualization", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/data-visualization", - "description": "Data Visualization", - "lastIndexed": 1772928421426 + "lastIndexed": 1773533422725 }, { "name": "database-admin", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-admin", "description": "Expert database administrator specializing in modern cloud databases, automation, and reliability engineering.", - "lastIndexed": 1772928421582 + "lastIndexed": 1773533422725 }, { "name": "database-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-architect", "description": "Expert database architect specializing in data layer design from scratch, technology selection, schema modeling, and scalable database architectures.", - "lastIndexed": 1772928421685 + "lastIndexed": 1773533422816 }, { "name": "database-cloud-optimization-cost-optimize", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-cloud-optimization-cost-optimize", "description": "You are a cloud cost optimization expert specializing in reducing infrastructure expenses while maintaining performance and reliability. Analyze cloud spending, identify savings opportunities, and ...", - "lastIndexed": 1772928421426 + "lastIndexed": 1773533422576 }, { "name": "database-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-design", "description": "Database design principles and decision-making. Schema design, indexing strategy, ORM selection, serverless databases.", - "lastIndexed": 1772928421426 + "lastIndexed": 1773533422576 }, { "name": "database-migration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-migration", "description": "Execute database migrations across ORMs and platforms with zero-downtime strategies, data transformation, and rollback procedures. Use when migrating databases, changing schemas, performing data tr...", - "lastIndexed": 1772928421582 + "lastIndexed": 1773533422726 }, { "name": "database-migrations-migration-observability", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-migrations-migration-observability", "description": "Migration monitoring, CDC, and observability infrastructure", - "lastIndexed": 1772928421582 + "lastIndexed": 1773533422725 }, { "name": "database-migrations-sql-migrations", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-migrations-sql-migrations", "description": "SQL database migrations with zero-downtime strategies for PostgreSQL, MySQL, and SQL Server. Focus on data integrity and rollback plans.", - "lastIndexed": 1772928421426 + "lastIndexed": 1773533422576 }, { "name": "database-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database-optimizer", "description": "Expert database optimizer specializing in modern performance tuning, query optimization, and scalable architectures.", - "lastIndexed": 1772928421582 + "lastIndexed": 1773533422726 }, { "name": "database", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/database", "description": "Database development and operations workflow covering SQL, NoSQL, database design, migrations, optimization, and data engineering.", - "lastIndexed": 1772928421507 + "lastIndexed": 1773533422651 }, { "name": "datadog-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/datadog-automation", "description": "Automate Datadog tasks via Rube MCP (Composio): query metrics, search logs, manage monitors/dashboards, create events and downtimes. Always search tools first for current schemas.", - "lastIndexed": 1772928421582 + "lastIndexed": 1773533422726 }, { "name": "dbos-golang", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dbos-golang", "description": "DBOS Go SDK for building reliable, fault-tolerant applications with durable workflows. Use this skill when writing Go code with DBOS, creating workflows and steps, using queues, using the DBOS Clie...", - "lastIndexed": 1772928421507 + "lastIndexed": 1773533422651 }, { "name": "dbos-python", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dbos-python", "description": "DBOS Python SDK for building reliable, fault-tolerant applications with durable workflows. Use this skill when writing Python code with DBOS, creating workflows and steps, using queues, using DBOSC...", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422576 }, { "name": "dbos-typescript", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dbos-typescript", "description": "DBOS TypeScript SDK for building reliable, fault-tolerant applications with durable workflows. Use this skill when writing TypeScript code with DBOS, creating workflows and steps, using queues, usi...", - "lastIndexed": 1772928421426 + "lastIndexed": 1773533422576 }, { "name": "dbt-transformation-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dbt-transformation-patterns", "description": "Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or ...", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422576 }, { "name": "ddd-context-mapping", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ddd-context-mapping", "description": "Map relationships between bounded contexts and define integration contracts using DDD context mapping patterns.", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422577 }, { "name": "ddd-strategic-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ddd-strategic-design", "description": "Design DDD strategic artifacts including subdomains, bounded contexts, and ubiquitous language for complex business domains.", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422577 }, { "name": "ddd-tactical-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ddd-tactical-patterns", "description": "Apply DDD tactical patterns in code using entities, value objects, aggregates, repositories, and domain events with explicit invariants.", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422577 }, { "name": "debug-buttercup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/debug-buttercup", "description": "Debugs the Buttercup CRS (Cyber Reasoning System) running on Kubernetes. Use when diagnosing pod crashes, restart loops, Redis failures, resource pressure, disk saturation, DinD issues, or any service misbehavior in the crs namespace. Covers triage, log analysis,...", - "lastIndexed": 1772928421583 + "lastIndexed": 1773533422726 }, { "name": "debugger", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/debugger", "description": "Debugging specialist for errors, test failures, and unexpected\nbehavior. Use proactively when encountering any issues.", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422577 }, { "name": "debugging-strategies", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/debugging-strategies", "description": "Master systematic debugging techniques, profiling tools, and root cause analysis to efficiently track down bugs across any codebase or technology stack. Use when investigating bugs, performance iss...", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422577 }, { "name": "debugging-toolkit-smart-debug", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/debugging-toolkit-smart-debug", "description": "Use when working with debugging toolkit smart debug", - "lastIndexed": 1772928421583 + "lastIndexed": 1773533422726 }, { "name": "deep-research", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/deep-research", "description": "Execute autonomous multi-step research using Google Gemini Deep Research Agent. Use for: market analysis, competitive landscaping, literature reviews, technical research, due diligence. Takes 2-10 ...", - "lastIndexed": 1772928421507 + "lastIndexed": 1773533422652 }, { "name": "defi-protocol-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/defi-protocol-templates", "description": "Implement DeFi protocols with production-ready templates for staking, AMMs, governance, and lending systems. Use when building decentralized finance applications or smart contract protocols.", - "lastIndexed": 1772928421583 + "lastIndexed": 1773533422727 }, { "name": "dependency-management-deps-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dependency-management-deps-audit", "description": "You are a dependency security expert specializing in vulnerability scanning, license compliance, and supply chain security. Analyze project dependencies for known vulnerabilities, licensing issues,...", - "lastIndexed": 1772928421427 + "lastIndexed": 1773533422577 }, { "name": "dependency-upgrade", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dependency-upgrade", "description": "Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing brea...", - "lastIndexed": 1772928421583 + "lastIndexed": 1773533422727 }, { "name": "deployment-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/deployment-engineer", "description": "Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation.", - "lastIndexed": 1772928421584 + "lastIndexed": 1773533422727 }, { "name": "deployment-pipeline-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/deployment-pipeline-design", "description": "Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing Gi...", - "lastIndexed": 1772928421584 + "lastIndexed": 1773533422727 }, { "name": "deployment-procedures", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/deployment-procedures", "description": "Production deployment principles and decision-making. Safe deployment workflows, rollback strategies, and verification. Teaches thinking, not scripts.", - "lastIndexed": 1772928421508 + "lastIndexed": 1773533422652 }, { "name": "deployment-validation-config-validate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/deployment-validation-config-validate", "description": "You are a configuration management expert specializing in validating, testing, and ensuring the correctness of application configurations. Create comprehensive validation schemas, implement configurat", - "lastIndexed": 1772928421644 + "lastIndexed": 1773533422780 }, { "name": "design-md", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/design-md", "description": "Analyze Stitch projects and synthesize a semantic design system into DESIGN.md files", - "lastIndexed": 1772928421584 + "lastIndexed": 1773533422727 }, { "name": "design-orchestration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/design-orchestration", "description": "Orchestrates design workflows by routing work through brainstorming, multi-agent review, and execution readiness in the correct order.", - "lastIndexed": 1772928421508 + "lastIndexed": 1773533422652 }, { "name": "design-spells", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/design-spells", "description": "Curated micro-interactions and design details that add \"magic\" and personality to websites and apps.", - "lastIndexed": 1772928421428 + "lastIndexed": 1773533422577 }, { "name": "devcontainer-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/devcontainer-setup", "description": "Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.", - "lastIndexed": 1772928421585 + "lastIndexed": 1773533422728 }, { "name": "development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/development", "description": "Comprehensive web, mobile, and backend development workflow bundling frontend, backend, full-stack, and mobile development skills for end-to-end application delivery.", - "lastIndexed": 1772928421508 + "lastIndexed": 1773533422653 }, { "name": "devops-deploy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/devops-deploy", "description": "DevOps e deploy de aplicacoes — Docker, CI/CD com GitHub Actions, AWS Lambda, SAM, Terraform, infraestrutura como codigo e monitoramento. Ativar para: dockerizar aplicacao, configurar pipeline...", - "lastIndexed": 1772928421585 + "lastIndexed": 1773533422728 }, { "name": "devops-troubleshooter", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/devops-troubleshooter", "description": "Expert DevOps troubleshooter specializing in rapid incident response, advanced debugging, and modern observability.", - "lastIndexed": 1772928421585 + "lastIndexed": 1773533422728 + }, + { + "name": "diary", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/diary", + "description": "Unified Diary System: A context-preserving automated logger for multi-project development.", + "lastIndexed": 1773533422728 }, { "name": "differential-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/differential-review", "description": "Performs security-focused differential review of code changes (PRs, commits, diffs). Adapts analysis depth to codebase size, uses git history for context, calculates blast radius, checks test coverage, and generates comprehensive markdown reports. Automatically...", - "lastIndexed": 1772928421585 + "lastIndexed": 1773533422728 }, { "name": "discord-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/discord-automation", "description": "Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas.", - "lastIndexed": 1772928421509 + "lastIndexed": 1773533422653 }, { "name": "discord-bot-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/discord-bot-architect", "description": "Specialized skill for building production-ready Discord bots. Covers Discord.js (JavaScript) and Pycord (Python), gateway intents, slash commands, interactive components, rate limiting, and sharding.", - "lastIndexed": 1772928421586 + "lastIndexed": 1773533422729 }, { "name": "dispatching-parallel-agents", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dispatching-parallel-agents", "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies", - "lastIndexed": 1772928421509 + "lastIndexed": 1773533422653 }, { "name": "distributed-debugging-debug-trace", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/distributed-debugging-debug-trace", "description": "You are a debugging expert specializing in setting up comprehensive debugging environments, distributed tracing, and diagnostic tools. Configure debugging workflows, implement tracing solutions, an...", - "lastIndexed": 1772928421428 + "lastIndexed": 1773533422578 }, { "name": "distributed-tracing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/distributed-tracing", "description": "Implement distributed tracing with Jaeger and Tempo to track requests across microservices and identify performance bottlenecks. Use when debugging microservices, analyzing request flows, or implem...", - "lastIndexed": 1772928421586 + "lastIndexed": 1773533422729 }, { "name": "django-access-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/django-access-review", "description": "django-access-review", - "lastIndexed": 1772928421586 + "lastIndexed": 1773533422729 }, { "name": "django-perf-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/django-perf-review", "description": "Django performance code review. Use when asked to \"review Django performance\", \"find N+1 queries\", \"optimize Django\", \"check queryset performance\", \"database performance\", \"Django ORM issues\", or audit Django code for performance problems.", - "lastIndexed": 1772928421644 + "lastIndexed": 1773533422780 }, { "name": "django-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/django-pro", "description": "Master Django 5.x with async views, DRF, Celery, and Django Channels. Build scalable web applications with proper architecture, testing, and deployment.", - "lastIndexed": 1772928421586 + "lastIndexed": 1773533422729 }, { "name": "doc-coauthoring", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/doc-coauthoring", "description": "Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This ...", - "lastIndexed": 1772928421674 + "lastIndexed": 1773533422806 }, { "name": "docker-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/docker-expert", "description": "Docker containerization expert with deep knowledge of multi-stage builds, image optimization, container security, Docker Compose orchestration, and production deployment patterns. Use PROACTIVELY f...", - "lastIndexed": 1772928421644 + "lastIndexed": 1773533422781 }, { "name": "docs-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/docs-architect", "description": "Creates comprehensive technical documentation from existing codebases. Analyzes architecture, design patterns, and implementation details to produce long-form technical manuals and ebooks.", - "lastIndexed": 1772928421509 + "lastIndexed": 1773533422654 }, { "name": "documentation-generation-doc-generate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/documentation-generation-doc-generate", "description": "You are a documentation expert specializing in creating comprehensive, maintainable documentation from code. Generate API docs, architecture diagrams, user guides, and technical references using AI...", - "lastIndexed": 1772928421429 + "lastIndexed": 1773533422578 }, { "name": "documentation-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/documentation-templates", "description": "Documentation templates and structure guidelines. README, API docs, code comments, and AI-friendly documentation.", - "lastIndexed": 1772928421509 + "lastIndexed": 1773533422654 }, { "name": "documentation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/documentation", "description": "Documentation generation workflow covering API docs, architecture docs, README files, code comments, and technical writing.", - "lastIndexed": 1772928421514 + "lastIndexed": 1773533422654 }, { "name": "docusign-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/docusign-automation", "description": "Automate DocuSign tasks via Rube MCP (Composio): templates, envelopes, signatures, document management. Always search tools first for current schemas.", - "lastIndexed": 1772928421587 + "lastIndexed": 1773533422730 }, { "name": "docx-official", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/docx-official", "description": "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional document...", - "lastIndexed": 1772928421587 + "lastIndexed": 1773533422730 }, { "name": "domain-driven-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/domain-driven-design", "description": "Plan and route Domain-Driven Design work from strategic modeling to tactical implementation and evented architecture patterns.", - "lastIndexed": 1772928421429 + "lastIndexed": 1773533422578 }, { "name": "dotnet-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dotnet-architect", "description": "Expert .NET backend architect specializing in C#, ASP.NET Core, Entity Framework, Dapper, and enterprise application patterns.", - "lastIndexed": 1772928421587 + "lastIndexed": 1773533422730 }, { "name": "dotnet-backend-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dotnet-backend-patterns", "description": "Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuratio...", - "lastIndexed": 1772928421429 + "lastIndexed": 1773533422579 }, { "name": "dotnet-backend", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dotnet-backend", "description": "Build ASP.NET Core 8+ backend services with EF Core, auth, background jobs, and production API patterns.", - "lastIndexed": 1772928421588 + "lastIndexed": 1773533422730 }, { "name": "drizzle-orm-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/drizzle-orm-expert", "description": "Expert in Drizzle ORM for TypeScript — schema design, relational queries, migrations, and serverless database integration. Use when building type-safe database layers with Drizzle.", - "lastIndexed": 1772928421588 + "lastIndexed": 1773533422731 }, { "name": "dropbox-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dropbox-automation", "description": "Automate Dropbox file management, sharing, search, uploads, downloads, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421645 + "lastIndexed": 1773533422781 }, { "name": "dwarf-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dwarf-expert", "description": "Provides expertise for analyzing DWARF debug files and understanding the DWARF debug format/standard (v3-v5). Triggers when understanding DWARF information, interacting with DWARF files, answering DWARF-related questions, or working with code that parses DWARF data.", - "lastIndexed": 1772928421514 + "lastIndexed": 1773533422654 }, { "name": "dx-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/dx-optimizer", "description": "Developer Experience specialist. Improves tooling, setup, and workflows. Use PROACTIVELY when setting up new projects, after team feedback, or when development friction is noticed.", - "lastIndexed": 1772928421430 + "lastIndexed": 1773533422579 }, { "name": "e2e-testing-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/e2e-testing-patterns", "description": "Master end-to-end testing with Playwright and Cypress to build reliable test suites that catch bugs, improve confidence, and enable fast deployment. Use when implementing E2E tests, debugging flaky...", - "lastIndexed": 1772928421430 + "lastIndexed": 1773533422579 }, { "name": "e2e-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/e2e-testing", "description": "End-to-end testing workflow with Playwright for browser automation, visual regression, cross-browser testing, and CI/CD integration.", - "lastIndexed": 1772928421430 + "lastIndexed": 1773533422579 }, { "name": "earllm-build", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/earllm-build", "description": "Build, maintain, and extend the EarLLM One Android project — a Kotlin/Compose app that connects Bluetooth earbuds to an LLM via voice pipeline. Use this skill whenever working on the earbudllm...", - "lastIndexed": 1772928421588 + "lastIndexed": 1773533422731 + }, + { + "name": "electron-development", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/electron-development", + "description": "Master Electron desktop app development with secure IPC, contextIsolation, preload scripts, multi-process architecture, electron-builder packaging, code signing, and auto-update.", + "lastIndexed": 1773533422830 }, { "name": "elixir-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/elixir-pro", "description": "Write idiomatic Elixir code with OTP patterns, supervision trees, and Phoenix LiveView. Masters concurrency, fault tolerance, and distributed systems.", - "lastIndexed": 1772928421430 + "lastIndexed": 1773533422579 }, { "name": "elon-musk", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/elon-musk", "description": "Agente que simula Elon Musk com profundidade psicologica e comunicacional de alta fidelidade. Ativado para: \"fale como Elon\", \"simule Elon Musk\", \"o que Elon diria sobre X\", \"first principles...", - "lastIndexed": 1772928421713 + "lastIndexed": 1773533422843 }, { "name": "email-sequence", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/email-sequence", "description": "When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions \"email sequence,\" \"drip campa...", - "lastIndexed": 1772928421699 + "lastIndexed": 1773533422827 }, { "name": "email-systems", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/email-systems", "description": "Email has the highest ROI of any marketing channel. $36 for every $1 spent. Yet most startups treat it as an afterthought - bulk blasts, no personalization, landing in spam folders. This skill cov...", - "lastIndexed": 1772928421430 + "lastIndexed": 1773533422579 }, { "name": "embedding-strategies", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/embedding-strategies", "description": "Select and optimize embedding models for semantic search and RAG applications. Use when choosing embedding models, implementing chunking strategies, or optimizing embedding quality for specific dom...", - "lastIndexed": 1772928421645 + "lastIndexed": 1773533422781 }, { "name": "emblemai-crypto-wallet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/emblemai-crypto-wallet", "description": "Crypto wallet management across 7 blockchains via EmblemAI Agent Hustle API. Balance checks, token swaps, portfolio analysis, and transaction execution for Solana, Ethereum, Base, BSC, Polygon, Hedera, and Bitcoin.", - "lastIndexed": 1772928421431 + "lastIndexed": 1773533422579 }, { "name": "emergency-card", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/emergency-card", "description": "生成紧急情况下快速访问的医疗信息摘要卡片。当用户需要旅行、就诊准备、紧急情况或询问\"紧急信息\"、\"医疗卡片\"、\"急救信息\"时使用此技能。提取关键信息(过敏、用药、急症、植入物),支持多格式输出(JSON、文本、二维码),用于急救或快速就医。", - "lastIndexed": 1772928421674 + "lastIndexed": 1773533422806 }, { "name": "employment-contract-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/employment-contract-templates", "description": "Create employment contracts, offer letters, and HR policy documents following legal best practices. Use when drafting employment agreements, creating HR policies, or standardizing employment docume...", - "lastIndexed": 1772928421431 + "lastIndexed": 1773533422580 }, { "name": "energy-procurement", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/energy-procurement", "description": "Codified expertise for electricity and gas procurement, tariff optimisation, demand charge management, renewable PPA evaluation, and multi-facility energy cost management.", - "lastIndexed": 1772928421706 + "lastIndexed": 1773533422834 }, { "name": "enhance-prompt", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/enhance-prompt", "description": "Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.", - "lastIndexed": 1772928421589 + "lastIndexed": 1773533422731 }, { "name": "environment-setup-guide", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/environment-setup-guide", "description": "Guide developers through setting up development environments with proper tools, dependencies, and configurations", - "lastIndexed": 1772928421645 + "lastIndexed": 1773533422781 }, { "name": "error-debugging-error-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-debugging-error-analysis", "description": "You are an expert error analysis specialist with deep expertise in debugging distributed systems, analyzing production incidents, and implementing comprehensive observability solutions.", - "lastIndexed": 1772928421431 + "lastIndexed": 1773533422580 }, { "name": "error-debugging-error-trace", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-debugging-error-trace", "description": "You are an error tracking and observability expert specializing in implementing comprehensive error monitoring solutions. Set up error tracking systems, configure alerts, implement structured loggi...", - "lastIndexed": 1772928421431 + "lastIndexed": 1773533422580 }, { "name": "error-debugging-multi-agent-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-debugging-multi-agent-review", "description": "Use when working with error debugging multi agent review", - "lastIndexed": 1772928421515 + "lastIndexed": 1773533422655 }, { "name": "error-detective", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-detective", "description": "Search logs and codebases for error patterns, stack traces, and anomalies. Correlates errors across systems and identifies root causes.", - "lastIndexed": 1772928421431 + "lastIndexed": 1773533422580 }, { "name": "error-diagnostics-error-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-diagnostics-error-analysis", "description": "You are an expert error analysis specialist with deep expertise in debugging distributed systems, analyzing production incidents, and implementing comprehensive observability solutions.", - "lastIndexed": 1772928421431 + "lastIndexed": 1773533422580 }, { "name": "error-diagnostics-error-trace", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-diagnostics-error-trace", "description": "You are an error tracking and observability expert specializing in implementing comprehensive error monitoring solutions. Set up error tracking systems, configure alerts, implement structured logging,", - "lastIndexed": 1772928421432 + "lastIndexed": 1773533422580 }, { "name": "error-diagnostics-smart-debug", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-diagnostics-smart-debug", "description": "Use when working with error diagnostics smart debug", - "lastIndexed": 1772928421589 + "lastIndexed": 1773533422732 }, { "name": "error-handling-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/error-handling-patterns", "description": "Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling...", - "lastIndexed": 1772928421432 + "lastIndexed": 1773533422580 }, { "name": "ethical-hacking-methodology", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ethical-hacking-methodology", "description": "This skill should be used when the user asks to \"learn ethical hacking\", \"understand penetration testing lifecycle\", \"perform reconnaissance\", \"conduct security scanning\", \"exploit ...", - "lastIndexed": 1772928421645 + "lastIndexed": 1773533422781 }, { "name": "evaluation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/evaluation", "description": "Build evaluation frameworks for agent systems", - "lastIndexed": 1772928421646 + "lastIndexed": 1773533422782 }, { "name": "event-sourcing-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/event-sourcing-architect", "description": "Expert in event sourcing, CQRS, and event-driven architecture patterns. Masters event store design, projection building, saga orchestration, and eventual consistency patterns. Use PROACTIVELY for e...", - "lastIndexed": 1772928421432 + "lastIndexed": 1773533422580 }, { "name": "event-store-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/event-store-design", "description": "Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.", - "lastIndexed": 1772928421646 + "lastIndexed": 1773533422782 }, { "name": "evolution", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/evolution", "description": "CRITICAL: Use for makepad-skills self-evolution and contribution. Triggers on:\nevolve, evolution, contribute, contribution, self-improve, self-improvement,\nadd pattern, new pattern, capture learning, document solution,\nhooks, hook system, auto-trigger, skill...", - "lastIndexed": 1772928421646 + "lastIndexed": 1773533422782 }, { "name": "exa-search", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/exa-search", "description": "Semantic search, similar content discovery, and structured research using Exa API", - "lastIndexed": 1772928421432 + "lastIndexed": 1773533422581 }, { "name": "executing-plans", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/executing-plans", "description": "Use when you have a written implementation plan to execute in a separate session with review checkpoints", - "lastIndexed": 1772928421432 + "lastIndexed": 1773533422581 + }, + { + "name": "explain-like-socrates", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/explain-like-socrates", + "description": "Explains concepts using Socratic-style dialogue. Use when the user asks to explain, teach or help understand a concept like socrates.", + "lastIndexed": 1773533422655 }, { "name": "expo-api-routes", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-api-routes", "description": "Guidelines for creating API routes in Expo Router with EAS Hosting", - "lastIndexed": 1772928421589 + "lastIndexed": 1773533422732 }, { "name": "expo-cicd-workflows", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-cicd-workflows", "description": "Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.", - "lastIndexed": 1772928421515 + "lastIndexed": 1773533422767 }, { "name": "expo-deployment", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-deployment", "description": "Deploy Expo apps to production", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "expo-dev-client", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-dev-client", "description": "Build and distribute Expo development clients locally or via TestFlight", - "lastIndexed": 1772928421516 + "lastIndexed": 1773533422655 }, { "name": "expo-tailwind-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-tailwind-setup", "description": "Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling", - "lastIndexed": 1772928421589 + "lastIndexed": 1773533422732 }, { "name": "expo-ui-jetpack-compose", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-ui-jetpack-compose", "description": "expo-ui-jetpack-compose", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "expo-ui-swift-ui", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/expo-ui-swift-ui", "description": "expo-ui-swift-ui", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "fal-audio", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fal-audio", "description": "Text-to-speech and speech-to-text using fal.ai audio models", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "fal-generate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fal-generate", "description": "Generate images and videos using fal.ai AI models", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "fal-image-edit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fal-image-edit", "description": "AI-powered image editing with style transfer and object removal", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "fal-platform", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fal-platform", "description": "Platform APIs for model management, pricing, and usage tracking", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "fal-upscale", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fal-upscale", "description": "Upscale and enhance image and video resolution using AI", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "fal-workflow", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fal-workflow", "description": "Generate workflow JSON files for chaining AI models", - "lastIndexed": 1772928421433 + "lastIndexed": 1773533422581 }, { "name": "family-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/family-health-analyzer", "description": "分析家族病史、评估遗传风险、识别家庭健康模式、提供个性化预防建议", - "lastIndexed": 1772928421516 + "lastIndexed": 1773533422655 }, { "name": "fastapi-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fastapi-pro", "description": "Build high-performance async APIs with FastAPI, SQLAlchemy 2.0, and Pydantic V2. Master microservices, WebSockets, and modern Python async patterns.", - "lastIndexed": 1772928421590 + "lastIndexed": 1773533422732 }, { "name": "fastapi-router-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fastapi-router-py", "description": "Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or add...", - "lastIndexed": 1772928421434 + "lastIndexed": 1773533422582 }, { "name": "fastapi-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fastapi-templates", "description": "Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.", - "lastIndexed": 1772928421434 + "lastIndexed": 1773533422582 }, { "name": "favicon", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/favicon", "description": "Generate favicons from a source image", - "lastIndexed": 1772928421590 + "lastIndexed": 1773533422732 }, { "name": "fda-food-safety-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fda-food-safety-auditor", "description": "Expert AI auditor for FDA Food Safety (FSMA), HACCP, and PCQI compliance. Reviews food facility records and preventive controls.", - "lastIndexed": 1772928421434 + "lastIndexed": 1773533422582 }, { "name": "fda-medtech-compliance-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fda-medtech-compliance-auditor", "description": "Expert AI auditor for Medical Device (SaMD) compliance, IEC 62304, and 21 CFR Part 820. Reviews DHFs, technical files, and software validation.", - "lastIndexed": 1772928421516 + "lastIndexed": 1773533422656 }, { "name": "ffuf-claude-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ffuf-claude-skill", "description": "Web fuzzing with ffuf", - "lastIndexed": 1772928421434 + "lastIndexed": 1773533422582 }, { "name": "ffuf-web-fuzzing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ffuf-web-fuzzing", "description": "Expert guidance for ffuf web fuzzing during penetration testing, including authenticated fuzzing with raw requests, auto-calibration, and result analysis", - "lastIndexed": 1772928421685 + "lastIndexed": 1773533422816 }, { "name": "figma-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/figma-automation", "description": "Automate Figma tasks via Rube MCP (Composio): files, components, design tokens, comments, exports. Always search tools first for current schemas.", - "lastIndexed": 1772928421517 + "lastIndexed": 1773533422656 }, { "name": "file-organizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/file-organizer", "description": "Intelligently organizes files and folders by understanding context, finding duplicates, and suggesting better organizational structures. Use when user wants to clean up directories, organize downlo...", - "lastIndexed": 1772928421590 + "lastIndexed": 1773533422733 }, { "name": "file-path-traversal", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/file-path-traversal", "description": "This skill should be used when the user asks to \"test for directory traversal\", \"exploit path traversal vulnerabilities\", \"read arbitrary files through web applications\", \"find LFI vu...", - "lastIndexed": 1772928421646 + "lastIndexed": 1773533422782 }, { "name": "file-uploads", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/file-uploads", "description": "Expert at handling file uploads and cloud storage. Covers S3, Cloudflare R2, presigned URLs, multipart uploads, and image optimization. Knows how to handle large files without blocking. Use when: f...", - "lastIndexed": 1772928421434 + "lastIndexed": 1773533422582 }, { "name": "filesystem-context", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/filesystem-context", "description": "Use for file-based context management, dynamic context discovery, and reducing context window bloat. Offload context to files for just-in-time loading.", - "lastIndexed": 1772928421646 + "lastIndexed": 1773533422782 }, { "name": "find-bugs", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/find-bugs", "description": "Find bugs, security vulnerabilities, and code quality issues in local branch changes. Use when asked to review changes, find bugs, security review, or audit code on the current branch.", - "lastIndexed": 1772928421517 + "lastIndexed": 1773533422656 }, { "name": "finishing-a-development-branch", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/finishing-a-development-branch", "description": "Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup", - "lastIndexed": 1772928421517 + "lastIndexed": 1773533422656 }, { "name": "firebase", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/firebase", "description": "Firebase gives you a complete backend in minutes - auth, database, storage, functions, hosting. But the ease of setup hides real complexity. Security rules are your last line of defense, and they'r...", - "lastIndexed": 1772928421435 + "lastIndexed": 1773533422582 }, { "name": "firecrawl-scraper", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/firecrawl-scraper", "description": "Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API", - "lastIndexed": 1772928421435 + "lastIndexed": 1773533422583 }, { "name": "firmware-analyst", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/firmware-analyst", "description": "Expert firmware analyst specializing in embedded systems, IoT security, and hardware reverse engineering.", - "lastIndexed": 1772928421590 + "lastIndexed": 1773533422733 }, { "name": "fitness-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fitness-analyzer", "description": "分析运动数据、识别运动模式、评估健身进展,并提供个性化训练建议。支持与慢性病数据的关联分析。", - "lastIndexed": 1772928421647 + "lastIndexed": 1773533422782 }, { "name": "fix-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fix-review", "description": "Verify fix commits address audit findings without new bugs", - "lastIndexed": 1772928421435 + "lastIndexed": 1773533422583 }, { "name": "fixing-accessibility", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fixing-accessibility", "description": "Audit and fix HTML accessibility issues including ARIA labels, keyboard navigation, focus management, color contrast, and form errors. Use when adding interactive controls, forms, dialogs, or reviewing WCAG compliance.", - "lastIndexed": 1772928421517 + "lastIndexed": 1773533422656 }, { "name": "fixing-metadata", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fixing-metadata", "description": "Audit and fix HTML metadata including page titles, meta descriptions, canonical URLs, Open Graph tags, Twitter cards, favicons, JSON-LD structured data, and robots directives. Use when adding SEO metadata, fixing social share previews, reviewing Open Graph tags,...", - "lastIndexed": 1772928421518 + "lastIndexed": 1773533422656 }, { "name": "fixing-motion-performance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fixing-motion-performance", "description": "Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion, and blur effects. Use when animations stutter, transitions jank, or reviewing CSS/JS animation performance.", - "lastIndexed": 1772928421518 + "lastIndexed": 1773533422657 }, { "name": "flutter-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/flutter-expert", "description": "Master Flutter development with Dart 3, advanced widgets, and multi-platform deployment.", - "lastIndexed": 1772928421590 + "lastIndexed": 1773533422733 }, { "name": "food-database-query", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/food-database-query", "description": "Food Database Query", - "lastIndexed": 1772928421674 + "lastIndexed": 1773533422807 }, { "name": "form-cro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/form-cro", "description": "Optimize any form that is NOT signup or account registration — including lead capture, contact, demo request, application, survey, quote, and checkout forms.", - "lastIndexed": 1772928421591 + "lastIndexed": 1773533422733 }, { "name": "fp-async", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-async", "description": "Practical async patterns using TaskEither - clean pipelines instead of try/catch hell, with real API examples", - "lastIndexed": 1772928421691 + "lastIndexed": 1773533422822 }, { "name": "fp-backend", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-backend", "description": "Functional programming patterns for Node.js/Deno backend development using fp-ts, ReaderTaskEither, and functional dependency injection", - "lastIndexed": 1772928421702 + "lastIndexed": 1773533422830 }, { "name": "fp-data-transforms", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-data-transforms", "description": "Everyday data transformations using functional patterns - arrays, objects, grouping, aggregation, and null-safe access", - "lastIndexed": 1772928421706 + "lastIndexed": 1773533422834 }, { "name": "fp-either-ref", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-either-ref", "description": "Quick reference for Either type. Use when user needs error handling, validation, or operations that can fail with typed errors.", - "lastIndexed": 1772928421436 + "lastIndexed": 1773533422583 }, { "name": "fp-errors", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-errors", "description": "Stop throwing everywhere - handle errors as values using Either and TaskEither for cleaner, more predictable code", - "lastIndexed": 1772928421685 + "lastIndexed": 1773533422817 }, { "name": "fp-option-ref", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-option-ref", "description": "Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.", - "lastIndexed": 1772928421436 + "lastIndexed": 1773533422583 }, { "name": "fp-pipe-ref", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-pipe-ref", "description": "Quick reference for pipe and flow. Use when user needs to chain functions, compose operations, or build data pipelines in fp-ts.", - "lastIndexed": 1772928421436 + "lastIndexed": 1773533422583 }, { "name": "fp-pragmatic", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-pragmatic", "description": "A practical, jargon-free guide to functional programming - the 80/20 approach that gets results without the academic overhead", - "lastIndexed": 1772928421647 + "lastIndexed": 1773533422783 }, { "name": "fp-react", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-react", "description": "Practical patterns for using fp-ts with React - hooks, state, forms, data fetching. Works with React 18/19, Next.js 14/15.", - "lastIndexed": 1772928421686 + "lastIndexed": 1773533422817 }, { "name": "fp-refactor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-refactor", "description": "Comprehensive guide for refactoring imperative TypeScript code to fp-ts functional patterns", - "lastIndexed": 1772928421708 + "lastIndexed": 1773533422835 }, { "name": "fp-taskeither-ref", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-taskeither-ref", "description": "Quick reference for TaskEither. Use when user needs async error handling, API calls, or Promise-based operations that can fail.", - "lastIndexed": 1772928421436 + "lastIndexed": 1773533422584 }, { "name": "fp-ts-errors", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-ts-errors", "description": "Handle errors as values using fp-ts Either and TaskEither for cleaner, more predictable TypeScript code. Use when implementing error handling patterns with fp-ts.", - "lastIndexed": 1772928421691 + "lastIndexed": 1773533422822 }, { "name": "fp-ts-pragmatic", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-ts-pragmatic", "description": "A practical, jargon-free guide to fp-ts functional programming - the 80/20 approach that gets results without the academic overhead. Use when writing TypeScript with fp-ts library.", - "lastIndexed": 1772928421675 + "lastIndexed": 1773533422807 }, { "name": "fp-ts-react", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-ts-react", "description": "Practical patterns for using fp-ts with React - hooks, state, forms, data fetching. Use when building React apps with functional programming patterns. Works with React 18/19, Next.js 14/15.", - "lastIndexed": 1772928421686 + "lastIndexed": 1773533422817 }, { "name": "fp-types-ref", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/fp-types-ref", "description": "Quick reference for fp-ts types. Use when user asks which type to use, needs Option/Either/Task decision help, or wants fp-ts imports.", - "lastIndexed": 1772928421436 + "lastIndexed": 1773533422584 }, { "name": "framework-migration-code-migrate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/framework-migration-code-migrate", "description": "You are a code migration expert specializing in transitioning codebases between frameworks, languages, versions, and platforms. Generate comprehensive migration plans, automated migration scripts, and", - "lastIndexed": 1772928421437 + "lastIndexed": 1773533422584 }, { "name": "framework-migration-deps-upgrade", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/framework-migration-deps-upgrade", "description": "You are a dependency management expert specializing in safe, incremental upgrades of project dependencies. Plan and execute dependency updates with minimal risk, proper testing, and clear migration pa", - "lastIndexed": 1772928421437 + "lastIndexed": 1773533422584 }, { "name": "framework-migration-legacy-modernize", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/framework-migration-legacy-modernize", "description": "Orchestrate a comprehensive legacy system modernization using the strangler fig pattern, enabling gradual replacement of outdated components while maintaining continuous business operations through ex", - "lastIndexed": 1772928421591 + "lastIndexed": 1773533422734 }, { "name": "free-tool-strategy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/free-tool-strategy", "description": "When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions \"engineering as mar...", - "lastIndexed": 1772928421648 + "lastIndexed": 1773533422783 }, { "name": "freshdesk-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/freshdesk-automation", "description": "Automate Freshdesk helpdesk operations including tickets, contacts, companies, notes, and replies via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421592 + "lastIndexed": 1773533422734 }, { "name": "freshservice-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/freshservice-automation", "description": "Automate Freshservice ITSM tasks via Rube MCP (Composio): create/update tickets, bulk operations, service requests, and outbound emails. Always search tools first for current schemas.", - "lastIndexed": 1772928421592 + "lastIndexed": 1773533422734 }, { "name": "frontend-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-design", "description": "Create distinctive, production-grade frontend interfaces with intentional aesthetics, high craft, and non-generic visual identity. Use when building or styling web UIs, components, pages, dashboard...", - "lastIndexed": 1772928421592 + "lastIndexed": 1773533422734 }, { "name": "frontend-dev-guidelines", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-dev-guidelines", "description": "Opinionated frontend development standards for modern React + TypeScript applications. Covers Suspense-first data fetching, lazy loading, feature-based architecture, MUI v7 styling, TanStack Router...", - "lastIndexed": 1772928421592 + "lastIndexed": 1773533422734 }, { "name": "frontend-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-developer", "description": "Build React components, implement responsive layouts, and handle client-side state management. Masters React 19, Next.js 15, and modern frontend architecture.", - "lastIndexed": 1772928421592 + "lastIndexed": 1773533422734 }, { "name": "frontend-mobile-development-component-scaffold", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-mobile-development-component-scaffold", "description": "You are a React component architecture expert specializing in scaffolding production-ready, accessible, and performant components. Generate complete component implementations with TypeScript, tests, s", - "lastIndexed": 1772928421592 + "lastIndexed": 1773533422735 }, { "name": "frontend-mobile-security-xss-scan", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-mobile-security-xss-scan", "description": "You are a frontend security specialist focusing on Cross-Site Scripting (XSS) vulnerability detection and prevention. Analyze React, Vue, Angular, and vanilla JavaScript code to identify injection poi", - "lastIndexed": 1772928421593 + "lastIndexed": 1773533422735 }, { "name": "frontend-security-coder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-security-coder", "description": "Expert in secure frontend coding practices specializing in XSS prevention, output sanitization, and client-side security patterns.", - "lastIndexed": 1772928421593 + "lastIndexed": 1773533422735 }, { "name": "frontend-slides", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-slides", - "description": "Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual...", - "lastIndexed": 1772928421648 + "description": "Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files.", + "lastIndexed": 1773533422784 }, { "name": "frontend-ui-dark-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/frontend-ui-dark-ts", "description": "Build dark-themed React applications using Tailwind CSS with custom theming, glassmorphism effects, and Framer Motion animations. Use when creating dashboards, admin panels, or data-rich interfaces...", - "lastIndexed": 1772928421648 + "lastIndexed": 1773533422784 }, { "name": "full-stack-orchestration-full-stack-feature", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/full-stack-orchestration-full-stack-feature", "description": "Use when working with full stack orchestration full stack feature", - "lastIndexed": 1772928421593 + "lastIndexed": 1773533422735 }, { "name": "2d-games", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/2d-games", "description": "2D game development principles. Sprites, tilemaps, physics, camera.", - "lastIndexed": 1772928421437 + "lastIndexed": 1773533422584 }, { "name": "3d-games", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/3d-games", "description": "3D game development principles. Rendering, shaders, physics, cameras.", - "lastIndexed": 1772928421437 + "lastIndexed": 1773533422584 }, { "name": "game-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development", "description": "Game development orchestrator. Routes to platform-specific skills based on project needs.", - "lastIndexed": 1772928421519 + "lastIndexed": 1773533422659 }, { "name": "game-art", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/game-art", "description": "Game art principles. Visual style selection, asset pipeline, animation workflow.", - "lastIndexed": 1772928421520 + "lastIndexed": 1773533422658 }, { "name": "game-audio", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/game-audio", "description": "Game audio principles. Sound design, music integration, adaptive audio systems.", - "lastIndexed": 1772928421520 + "lastIndexed": 1773533422659 }, { "name": "game-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/game-design", "description": "Game design principles. GDD structure, balancing, player psychology, progression.", - "lastIndexed": 1772928421520 + "lastIndexed": 1773533422659 }, { "name": "mobile-games", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/mobile-games", "description": "Mobile game development principles. Touch input, battery, performance, app stores.", - "lastIndexed": 1772928421438 + "lastIndexed": 1773533422585 }, { "name": "multiplayer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/multiplayer", "description": "Multiplayer game development principles. Architecture, networking, synchronization.", - "lastIndexed": 1772928421438 + "lastIndexed": 1773533422585 }, { "name": "pc-games", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/pc-games", "description": "PC and console game development principles. Engine selection, platform features, optimization strategies.", - "lastIndexed": 1772928421520 + "lastIndexed": 1773533422659 }, { "name": "vr-ar", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/vr-ar", "description": "VR/AR development principles. Comfort, interaction, performance requirements.", - "lastIndexed": 1772928421438 + "lastIndexed": 1773533422585 }, { "name": "web-games", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/game-development/web-games", "description": "Web browser game development principles. Framework selection, WebGPU, optimization, PWA.", - "lastIndexed": 1772928421520 + "lastIndexed": 1773533422659 }, { "name": "gcp-cloud-run", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gcp-cloud-run", "description": "Specialized skill for building production-ready serverless applications on GCP. Covers Cloud Run services (containerized), Cloud Run Functions (event-driven), cold start optimization, and event-dri...", - "lastIndexed": 1772928421593 + "lastIndexed": 1773533422735 }, { "name": "gdpr-data-handling", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gdpr-data-handling", "description": "Implement GDPR-compliant data handling with consent management, data subject rights, and privacy by design. Use when building systems that process EU personal data, implementing privacy controls, o...", - "lastIndexed": 1772928421438 + "lastIndexed": 1773533422585 }, { "name": "gemini-api-dev", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gemini-api-dev", "description": "Use this skill when building applications with Gemini models, Gemini API, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or n...", - "lastIndexed": 1772928421520 + "lastIndexed": 1773533422659 }, { "name": "gemini-api-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gemini-api-integration", "description": "Use when integrating Google Gemini API into projects. Covers model selection, multimodal inputs, streaming, function calling, and production best practices.", - "lastIndexed": 1772928421521 + "lastIndexed": 1773533422659 }, { "name": "geo-fundamentals", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/geo-fundamentals", "description": "Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).", - "lastIndexed": 1772928421521 + "lastIndexed": 1773533422660 }, { "name": "geoffrey-hinton", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/geoffrey-hinton", "description": "Agente que simula Geoffrey Hinton — Godfather of Deep Learning, Prêmio Turing 2018, criador do backpropagation e das Deep Belief Networks. Use quando quiser: perspectivas históricas sobre deep...", - "lastIndexed": 1772928421714 + "lastIndexed": 1773533422844 }, { "name": "gh-review-requests", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gh-review-requests", "description": "Fetch unread GitHub notifications for open PRs where review is requested from a specified team or opened by a team member. Use when asked to \"find PRs I need to review\", \"show my review requests\", \"what needs my review\", \"fetch GitHub review requests\", or \"check team review queue\".", - "lastIndexed": 1772928421439 + "lastIndexed": 1773533422585 }, { "name": "gha-security-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gha-security-review", "description": "GitHub Actions security review for workflow exploitation vulnerabilities. Use when asked to \"review GitHub Actions\", \"audit workflows\", \"check CI security\", \"GHA security\", \"workflow security review\", or review .github/workflows/ for pwn requests, expression injection,...", - "lastIndexed": 1772928421593 + "lastIndexed": 1773533422735 }, { "name": "git-advanced-workflows", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/git-advanced-workflows", "description": "Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, co...", - "lastIndexed": 1772928421593 + "lastIndexed": 1773533422735 }, { "name": "git-hooks-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/git-hooks-automation", "description": "Master Git hooks setup with Husky, lint-staged, pre-commit framework, and commitlint. Automate code quality gates, formatting, linting, and commit message enforcement before code reaches CI.", - "lastIndexed": 1772928421648 + "lastIndexed": 1773533422784 }, { "name": "git-pr-workflows-git-workflow", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/git-pr-workflows-git-workflow", "description": "Orchestrate a comprehensive git workflow from code review through PR creation, leveraging specialized agents for quality assurance, testing, and deployment readiness. This workflow implements modern g", - "lastIndexed": 1772928421594 + "lastIndexed": 1773533422736 }, { "name": "git-pr-workflows-onboard", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/git-pr-workflows-onboard", "description": "You are an **expert onboarding specialist and knowledge transfer architect** with deep experience in remote-first organizations, technical team integration, and accelerated learning methodologies. You", - "lastIndexed": 1772928421675 + "lastIndexed": 1773533422807 }, { "name": "git-pr-workflows-pr-enhance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/git-pr-workflows-pr-enhance", "description": "You are a PR optimization expert specializing in creating high-quality pull requests that facilitate efficient code reviews. Generate comprehensive PR descriptions, automate review processes, and ensu", - "lastIndexed": 1772928421439 + "lastIndexed": 1773533422586 }, { "name": "git-pushing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/git-pushing", "description": "Stage, commit, and push git changes with conventional commit messages. Use when user wants to commit and push changes, mentions pushing to remote, or asks to save and push their work. Also activate...", - "lastIndexed": 1772928421439 + "lastIndexed": 1773533422586 }, { "name": "github-actions-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/github-actions-templates", "description": "Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications. Use when setting up CI/CD with GitHub Actions, automating development workflows, or cre...", - "lastIndexed": 1772928421522 + "lastIndexed": 1773533422660 }, { "name": "github-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/github-automation", "description": "Automate GitHub repositories, issues, pull requests, branches, CI/CD, and permissions via Rube MCP (Composio). Manage code workflows, review PRs, search code, and handle deployments programmatically.", - "lastIndexed": 1772928421594 + "lastIndexed": 1773533422736 }, { "name": "github-issue-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/github-issue-creator", "description": "Convert raw notes, error logs, voice dictation, or screenshots into crisp GitHub-flavored markdown issue reports. Use when the user pastes bug info, error messages, or informal descriptions and wan...", - "lastIndexed": 1772928421522 + "lastIndexed": 1773533422661 }, { "name": "github-workflow-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/github-workflow-automation", "description": "Automate GitHub workflows with AI assistance. Includes PR reviews, issue triage, CI/CD integration, and Git operations. Use when automating GitHub workflows, setting up PR review automation, creati...", - "lastIndexed": 1772928421686 + "lastIndexed": 1773533422817 }, { "name": "gitlab-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gitlab-automation", "description": "Automate GitLab project management, issues, merge requests, pipelines, branches, and user operations via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421649 + "lastIndexed": 1773533422785 }, { "name": "gitlab-ci-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gitlab-ci-patterns", "description": "Build GitLab CI/CD pipelines with multi-stage workflows, caching, and distributed runners for scalable automation. Use when implementing GitLab CI/CD, optimizing pipeline performance, or setting up...", - "lastIndexed": 1772928421522 + "lastIndexed": 1773533422661 }, { "name": "gitops-workflow", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gitops-workflow", "description": "Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes deployments with continuous reconciliation. Use when implementing GitOps practices, automating Kubernetes deplo...", - "lastIndexed": 1772928421522 + "lastIndexed": 1773533422661 }, { "name": "gmail-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/gmail-automation", "description": "Interact with Gmail - search emails, read messages, send emails, create drafts, and manage labels.\nUse when user asks to: search email, read email, send email, create email draft, mark as read,\narchive email, star email, or manage Gmail labels. Lightweight alternative...", - "lastIndexed": 1772928421523 + "lastIndexed": 1773533422661 }, { "name": "go-concurrency-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/go-concurrency-patterns", "description": "Master Go concurrency with goroutines, channels, sync primitives, and context. Use when building concurrent Go applications, implementing worker pools, or debugging race conditions.", - "lastIndexed": 1772928421440 + "lastIndexed": 1773533422586 }, { "name": "go-playwright", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/go-playwright", "description": "Expert capability for robust, stealthy, and efficient browser automation using Playwright Go.", - "lastIndexed": 1772928421523 + "lastIndexed": 1773533422661 }, { "name": "go-rod-master", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/go-rod-master", "description": "Comprehensive guide for browser automation and web scraping with go-rod (Chrome DevTools Protocol) including stealth anti-bot-detection patterns.", - "lastIndexed": 1772928421691 + "lastIndexed": 1773533422822 }, { "name": "goal-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/goal-analyzer", "description": "分析健康目标数据、识别目标模式、评估目标进度,并提供个性化目标管理建议。支持与营养、运动、睡眠等健康数据的关联分析。", - "lastIndexed": 1772928421675 + "lastIndexed": 1773533422808 }, { "name": "godot-4-migration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/godot-4-migration", "description": "Specialized guide for migrating Godot 3.x projects to Godot 4 (GDScript 2.0), covering syntax changes, Tweens, and exports.", - "lastIndexed": 1772928421523 + "lastIndexed": 1773533422662 }, { "name": "godot-gdscript-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/godot-gdscript-patterns", "description": "Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization. Use when building Godot games, implementing game systems, or learning GDScript best practices.", - "lastIndexed": 1772928421440 + "lastIndexed": 1773533422587 }, { "name": "golang-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/golang-pro", "description": "Master Go 1.21+ with modern patterns, advanced concurrency, performance optimization, and production-ready microservices.", - "lastIndexed": 1772928421594 - }, - { - "name": "golang-security-auditor", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/golang-security-auditor", - "description": "Golang Security Auditor", - "lastIndexed": 1772928421440 + "lastIndexed": 1773533422736 }, { "name": "google-analytics-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/google-analytics-automation", "description": "Automate Google Analytics tasks via Rube MCP (Composio): run reports, list accounts/properties, funnels, pivots, key events. Always search tools first for current schemas.", - "lastIndexed": 1772928421595 + "lastIndexed": 1773533422736 }, { "name": "google-calendar-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/google-calendar-automation", "description": "Interact with Google Calendar - list calendars, view events, create/update/delete events, and find free time.\nUse when user asks to: check calendar, schedule a meeting, create an event, find available time, list upcoming events,\ndelete or update a calendar event, or...", - "lastIndexed": 1772928421523 + "lastIndexed": 1773533422662 }, { "name": "google-docs-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/google-docs-automation", "description": "Interact with Google Docs - create documents, search by title, read content, and edit text.\nUse when user asks to: create a Google Doc, find a document, read doc content, add text to a doc,\nor replace text in a document. Lightweight alternative to full Google...", - "lastIndexed": 1772928421440 + "lastIndexed": 1773533422587 }, { "name": "google-drive-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/google-drive-automation", "description": "Interact with Google Drive - search files, find folders, list contents, download files, upload files,\ncreate folders, move, copy, rename, and trash files. Use when user asks to: search Google Drive,\nfind a file/folder, list Drive contents, download or upload files,...", - "lastIndexed": 1772928421524 + "lastIndexed": 1773533422662 }, { "name": "google-sheets-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/google-sheets-automation", "description": "Read and write Google Sheets spreadsheets - get content, update cells, append rows, fetch specific ranges,\nsearch for spreadsheets, and view metadata. Use when user asks to: read a spreadsheet, update cells,\nadd data to Google Sheets, find a spreadsheet, check sheet...", - "lastIndexed": 1772928421524 + "lastIndexed": 1773533422662 }, { "name": "google-slides-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/google-slides-automation", "description": "Read and write Google Slides presentations - get text, find presentations, create presentations, add slides,\nreplace text, and manage slide content. Use when user asks to: read a presentation, create slides, find slides,\nadd a slide, replace text in a presentation, or...", - "lastIndexed": 1772928421524 + "lastIndexed": 1773533422662 }, { "name": "googlesheets-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/googlesheets-automation", "description": "Automate Google Sheets operations (read, write, format, filter, manage spreadsheets) via Rube MCP (Composio). Read/write data, manage tabs, apply formatting, and search rows programmatically.", - "lastIndexed": 1772928421595 + "lastIndexed": 1773533422736 }, { "name": "grafana-dashboards", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/grafana-dashboards", "description": "Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational ...", - "lastIndexed": 1772928421595 + "lastIndexed": 1773533422737 }, { "name": "graphql-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/graphql-architect", "description": "Master modern GraphQL with federation, performance optimization, and enterprise security. Build scalable schemas, implement advanced caching, and design real-time systems.", - "lastIndexed": 1772928421595 + "lastIndexed": 1773533422737 }, { "name": "graphql", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/graphql", "description": "GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper co...", - "lastIndexed": 1772928421441 - }, - { - "name": "great-tables", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/great-tables", - "description": "Great Tables", - "lastIndexed": 1772928421441 - }, - { - "name": "grimoire", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/grimoire", - "description": "Grimoire", - "lastIndexed": 1772928421441 + "lastIndexed": 1773533422587 }, { "name": "growth-engine", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/growth-engine", "description": "Motor de crescimento para produtos digitais -- growth hacking, SEO, ASO, viral loops, email marketing, CRM, referral programs e aquisicao organica. Ativar para: criar estrategia de growth, SEO...", - "lastIndexed": 1772928421595 + "lastIndexed": 1773533422737 }, { "name": "grpc-golang", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/grpc-golang", "description": "Build production-ready gRPC services in Go with mTLS, streaming, and observability. Use when designing Protobuf contracts with Buf or implementing secure service-to-service transport.", - "lastIndexed": 1772928421525 + "lastIndexed": 1773533422663 }, { "name": "haskell-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/haskell-pro", "description": "Expert Haskell engineer specializing in advanced type systems, pure", - "lastIndexed": 1772928421441 + "lastIndexed": 1773533422587 }, { "name": "health-trend-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/health-trend-analyzer", "description": "分析一段时间内健康数据的趋势和模式。关联药物、症状、生命体征、化验结果和其他健康指标的变化。识别令人担忧的趋势、改善情况,并提供数据驱动的洞察。当用户询问健康趋势、模式、随时间的变化或\"我的健康状况有什么变化?\"时使用。支持多维度分析(体重/BMI、症状、药物依从性、化验结果、情绪睡眠),相关性分析,变化检测,以及交互式HTML可视化报告(ECharts图表)。", - "lastIndexed": 1772928421675 + "lastIndexed": 1773533422808 }, { "name": "helm-chart-scaffolding", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/helm-chart-scaffolding", "description": "Design, organize, and manage Helm charts for templating and packaging Kubernetes applications with reusable configurations. Use when creating Helm charts, packaging Kubernetes applications, or impl...", - "lastIndexed": 1772928421441 + "lastIndexed": 1773533422588 }, { "name": "helpdesk-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/helpdesk-automation", "description": "Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.", - "lastIndexed": 1772928421525 + "lastIndexed": 1773533422663 }, { "name": "hierarchical-agent-memory", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hierarchical-agent-memory", "description": "Scoped CLAUDE.md memory system that reduces context token spend. Creates directory-level context files, tracks savings via dashboard, and routes agents to the right sub-context.", - "lastIndexed": 1772928421525 + "lastIndexed": 1773533422663 }, { "name": "hig-components-content", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-content", "description": "Apple Human Interface Guidelines for content display components.", - "lastIndexed": 1772928421525 + "lastIndexed": 1773533422663 }, { "name": "hig-components-controls", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-controls", "description": "Apple HIG guidance for selection and input controls including pickers, toggles, sliders, steppers, segmented controls, combo boxes, text fields, text views, labels, token fields, virtual...", - "lastIndexed": 1772928421525 + "lastIndexed": 1773533422664 }, { "name": "hig-components-dialogs", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-dialogs", "description": "Apple HIG guidance for presentation components including alerts, action sheets, popovers, sheets, and digit entry views.", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422664 }, { "name": "hig-components-layout", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-layout", "description": "Apple Human Interface Guidelines for layout and navigation components.", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422664 }, { "name": "hig-components-menus", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-menus", "description": "Apple HIG guidance for menu and button components including menus, context menus, dock menus, edit menus, the menu bar, toolbars, action buttons, pop-up buttons, pull-down buttons, disclosure...", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422664 }, { "name": "hig-components-search", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-search", "description": "Apple HIG guidance for navigation-related components including search fields, page controls, and path controls.", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422664 }, { "name": "hig-components-status", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-status", "description": "Apple HIG guidance for status and progress UI components including progress indicators, status bars, and activity rings.", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422664 }, { "name": "hig-components-system", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-components-system", "description": "Apple HIG guidance for system experience components: widgets, live activities, notifications, complications, home screen quick actions, top shelf, watch faces, app clips, and app shortcuts.", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422664 }, { "name": "hig-foundations", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-foundations", "description": "Apple Human Interface Guidelines design foundations.", - "lastIndexed": 1772928421526 + "lastIndexed": 1773533422665 }, { "name": "hig-inputs", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-inputs", "description": "Apple HIG guidance for input methods and interaction patterns: gestures, Apple Pencil, keyboards, game controllers, pointers, Digital Crown, eye tracking, focus system, remotes, spatial...", - "lastIndexed": 1772928421527 + "lastIndexed": 1773533422665 }, { "name": "hig-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-patterns", "description": "Apple Human Interface Guidelines interaction and UX patterns.", - "lastIndexed": 1772928421595 + "lastIndexed": 1773533422737 }, { "name": "hig-platforms", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-platforms", "description": "Apple Human Interface Guidelines for platform-specific design.", - "lastIndexed": 1772928421527 + "lastIndexed": 1773533422665 }, { "name": "hig-project-context", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-project-context", "description": "Create or update a shared Apple design context document that other HIG skills use to tailor guidance.", - "lastIndexed": 1772928421527 + "lastIndexed": 1773533422665 }, { "name": "hig-technologies", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hig-technologies", "description": "Apple HIG guidance for Apple technology integrations: Siri, Apple Pay, HealthKit, HomeKit, ARKit, machine learning, generative AI, iCloud, Sign in with Apple, SharePlay, CarPlay, Game Center,...", - "lastIndexed": 1772928421596 + "lastIndexed": 1773533422737 }, { "name": "hosted-agents-v2-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hosted-agents-v2-py", "description": "Build hosted agents using Azure AI Projects SDK with ImageBasedHostedAgentDefinition. Use when creating container-based agents in Azure AI Foundry.", - "lastIndexed": 1772928421527 + "lastIndexed": 1773533422665 }, { "name": "hosted-agents", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hosted-agents", "description": "Build background agents in sandboxed environments. Use for hosted coding agents, sandboxed VMs, Modal sandboxes, and remote coding environments.", - "lastIndexed": 1772928421649 + "lastIndexed": 1773533422785 }, { "name": "hr-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hr-pro", "description": "Professional, ethical HR partner for hiring, onboarding/offboarding, PTO and leave, performance, compliant policies, and employee relations.", - "lastIndexed": 1772928421596 + "lastIndexed": 1773533422737 }, { "name": "html-injection-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/html-injection-testing", "description": "This skill should be used when the user asks to \"test for HTML injection\", \"inject HTML into web pages\", \"perform HTML injection attacks\", \"deface web applications\", or \"test conten...", - "lastIndexed": 1772928421649 + "lastIndexed": 1773533422785 }, { "name": "hubspot-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hubspot-automation", "description": "Automate HubSpot CRM operations (contacts, companies, deals, tickets, properties) via Rube MCP using Composio integration.", - "lastIndexed": 1772928421596 + "lastIndexed": 1773533422738 }, { "name": "hubspot-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hubspot-integration", "description": "Expert patterns for HubSpot CRM integration including OAuth authentication, CRM objects, associations, batch operations, webhooks, and custom objects. Covers Node.js and Python SDKs. Use when: hubs...", - "lastIndexed": 1772928421443 + "lastIndexed": 1773533422588 }, { "name": "hugging-face-cli", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-cli", "description": "Execute Hugging Face Hub operations using the `hf` CLI. Use when the user needs to download models/datasets/spaces, upload files to Hub repositories, create repos, manage local cache, or run comput...", - "lastIndexed": 1772928421528 + "lastIndexed": 1773533422666 }, { "name": "hugging-face-dataset-viewer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-dataset-viewer", "description": "Use this skill for Hugging Face Dataset Viewer API workflows that fetch subset/split metadata, paginate rows, search text, apply filters, download parquet URLs, and read size or statistics.", - "lastIndexed": 1772928421528 + "lastIndexed": 1773533422666 }, { "name": "hugging-face-datasets", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-datasets", "description": "Create and manage datasets on Hugging Face Hub. Supports initializing repos, defining configs/system prompts, streaming row updates, and SQL-based dataset querying/transformation. Designed to work alongside HF MCP server for comprehensive dataset workflows.", - "lastIndexed": 1772928421650 + "lastIndexed": 1773533422785 }, { "name": "hugging-face-evaluation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-evaluation", "description": "Add and manage evaluation results in Hugging Face model cards. Supports extracting eval tables from README content, importing scores from Artificial Analysis API, and running custom model evaluations with vLLM/lighteval. Works with the model-index metadata format.", - "lastIndexed": 1772928421691 + "lastIndexed": 1773533422822 }, { "name": "hugging-face-jobs", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-jobs", "description": "This skill should be used when users want to run any workload on Hugging Face Jobs infrastructure. Covers UV scripts, Docker-based jobs, hardware selection, cost estimation, authentication with tok...", - "lastIndexed": 1772928421702 + "lastIndexed": 1773533422830 }, { "name": "hugging-face-model-trainer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-model-trainer", "description": "This skill should be used when users want to train or fine-tune language models using TRL (Transformer Reinforcement Learning) on Hugging Face Jobs infrastructure. Covers SFT, DPO, GRPO and reward modeling training methods, plus GGUF conversion for...", - "lastIndexed": 1772928421702 + "lastIndexed": 1773533422830 }, { "name": "hugging-face-paper-publisher", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-paper-publisher", "description": "Publish and manage research papers on Hugging Face Hub. Supports creating paper pages, linking papers to models/datasets, claiming authorship, and generating professional markdown-based research articles.", - "lastIndexed": 1772928421676 + "lastIndexed": 1773533422808 }, { "name": "hugging-face-tool-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hugging-face-tool-builder", "description": "Use this skill when the user wants to build tool/scripts or achieve a task where using data from the Hugging Face API would help. This is especially useful when chaining or combining API calls or the task will be repeated/automated. This Skill creates a reusable script to...", - "lastIndexed": 1772928421528 + "lastIndexed": 1773533422666 }, { "name": "hybrid-cloud-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hybrid-cloud-architect", "description": "Expert hybrid cloud architect specializing in complex multi-cloud solutions across AWS/Azure/GCP and private clouds (OpenStack/VMware).", - "lastIndexed": 1772928421596 + "lastIndexed": 1773533422738 }, { "name": "hybrid-cloud-networking", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hybrid-cloud-networking", "description": "Configure secure, high-performance connectivity between on-premises infrastructure and cloud platforms using VPN and dedicated connections. Use when building hybrid cloud architectures, connecting ...", - "lastIndexed": 1772928421529 + "lastIndexed": 1773533422667 }, { "name": "hybrid-search-implementation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/hybrid-search-implementation", "description": "Combine vector and keyword search for improved retrieval. Use when implementing RAG systems, building search engines, or when neither approach alone provides sufficient recall.", - "lastIndexed": 1772928421443 + "lastIndexed": 1773533422589 }, { "name": "i18n-localization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/i18n-localization", "description": "Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.", - "lastIndexed": 1772928421529 + "lastIndexed": 1773533422667 }, { "name": "iconsax-library", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/iconsax-library", "description": "Extensive icon library and AI-driven icon generation skill for premium UI/UX design.", - "lastIndexed": 1772928421444 + "lastIndexed": 1773533422589 }, { "name": "idor-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/idor-testing", "description": "This skill should be used when the user asks to \"test for insecure direct object references,\" \"find IDOR vulnerabilities,\" \"exploit broken access control,\" \"enumerate user IDs or obje...", - "lastIndexed": 1772928421650 + "lastIndexed": 1773533422786 }, { "name": "ilya-sutskever", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ilya-sutskever", "description": "Agente que simula Ilya Sutskever — co-fundador da OpenAI, ex-Chief Scientist, fundador da SSI. Use quando quiser perspectivas sobre: AGI safety-first, consciência de IA, scaling laws, deep...", - "lastIndexed": 1772928421713 + "lastIndexed": 1773533422843 }, { "name": "image-studio", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/image-studio", "description": "Studio de geracao de imagens inteligente — roteamento automatico entre ai-studio-image (fotos humanizadas/influencer) e stability-ai (arte/ ilustracao/edicao). Detecta o tipo de imagem solicitada...", - "lastIndexed": 1772928421597 + "lastIndexed": 1773533422738 }, { "name": "imagen", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/imagen", "description": "AI image generation skill powered by Google Gemini, enabling seamless visual content creation for UI placeholders, documentation, and design assets.", - "lastIndexed": 1772928421444 + "lastIndexed": 1773533422589 }, { "name": "incident-responder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/incident-responder", "description": "Expert SRE incident responder specializing in rapid problem resolution, modern observability, and comprehensive incident management.", - "lastIndexed": 1772928421597 + "lastIndexed": 1773533422738 }, { "name": "incident-response-incident-response", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/incident-response-incident-response", "description": "Use when working with incident response incident response", - "lastIndexed": 1772928421597 + "lastIndexed": 1773533422738 }, { "name": "incident-response-smart-fix", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/incident-response-smart-fix", "description": "[Extended thinking: This workflow implements a sophisticated debugging and resolution pipeline that leverages AI-assisted debugging tools and observability platforms to systematically diagnose and res", - "lastIndexed": 1772928421529 + "lastIndexed": 1773533422667 }, { "name": "incident-runbook-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/incident-runbook-templates", "description": "Create structured incident response runbooks with step-by-step procedures, escalation paths, and recovery actions. Use when building runbooks, responding to incidents, or establishing incident resp...", - "lastIndexed": 1772928421650 + "lastIndexed": 1773533422786 }, { "name": "infinite-gratitude", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/infinite-gratitude", "description": "Multi-agent research skill for parallel research execution (10 agents, battle-tested with real case studies).", - "lastIndexed": 1772928421444 + "lastIndexed": 1773533422589 }, { "name": "inngest", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/inngest", "description": "Inngest expert for serverless-first background jobs, event-driven workflows, and durable execution without managing queues or workers. Use when: inngest, serverless background job, event-driven wor...", - "lastIndexed": 1772928421444 + "lastIndexed": 1773533422590 }, { "name": "instagram-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/instagram-automation", "description": "Automate Instagram tasks via Rube MCP (Composio): create posts, carousels, manage media, get insights, and publishing limits. Always search tools first for current schemas.", - "lastIndexed": 1772928421597 + "lastIndexed": 1773533422739 }, { "name": "instagram", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/instagram", "description": "Integracao completa com Instagram via Graph API. Publicacao, analytics, comentarios, DMs, hashtags, agendamento, templates e gestao de contas Business/Creator.", - "lastIndexed": 1772928421651 - }, - { - "name": "integrate-whatsapp", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/integrate-whatsapp", - "description": "Integrate Whatsapp", - "lastIndexed": 1772928421444 + "lastIndexed": 1773533422786 }, { "name": "interactive-portfolio", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/interactive-portfolio", "description": "Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios,...", - "lastIndexed": 1772928421530 + "lastIndexed": 1773533422680 }, { "name": "intercom-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/intercom-automation", "description": "Automate Intercom tasks via Rube MCP (Composio): conversations, contacts, companies, segments, admins. Always search tools first for current schemas.", - "lastIndexed": 1772928421598 + "lastIndexed": 1773533422739 }, { "name": "internal-comms-anthropic", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/internal-comms-anthropic", "description": "A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal ...", - "lastIndexed": 1772928421445 + "lastIndexed": 1773533422590 }, { "name": "internal-comms-community", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/internal-comms-community", "description": "A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal ...", - "lastIndexed": 1772928421445 + "lastIndexed": 1773533422590 + }, + { + "name": "interview-coach", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/interview-coach", + "description": "Full job search coaching system — JD decoding, resume, storybank, mock interviews, transcript analysis, comp negotiation. 23 commands, persistent state.", + "lastIndexed": 1773533422590 }, { "name": "inventory-demand-planning", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/inventory-demand-planning", "description": "Codified expertise for demand forecasting, safety stock optimisation, replenishment planning, and promotional lift estimation at multi-location retailers.", - "lastIndexed": 1772928421703 + "lastIndexed": 1773533422831 }, { "name": "ios-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ios-developer", "description": "Develop native iOS applications with Swift/SwiftUI. Masters iOS 18, SwiftUI, UIKit integration, Core Data, networking, and App Store optimization.", - "lastIndexed": 1772928421598 + "lastIndexed": 1773533422739 }, { "name": "issues", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/issues", "description": "Interact with GitHub issues - create, list, and view issues.", - "lastIndexed": 1772928421530 + "lastIndexed": 1773533422680 }, { "name": "istio-traffic-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/istio-traffic-management", "description": "Configure Istio traffic management including routing, load balancing, circuit breakers, and canary deployments. Use when implementing service mesh traffic policies, progressive delivery, or resilie...", - "lastIndexed": 1772928421530 - }, - { - "name": "it-depends", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/it-depends", - "description": "It Depends", - "lastIndexed": 1772928421445 + "lastIndexed": 1773533422681 }, { "name": "iterate-pr", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/iterate-pr", "description": "Iterate on a PR until CI passes. Use when you need to fix CI failures, address review feedback, or continuously push fixes until all checks are green. Automates the feedback-fix-push-wait cycle.", - "lastIndexed": 1772928421598 + "lastIndexed": 1773533422739 }, { "name": "java-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/java-pro", "description": "Master Java 21+ with modern features like virtual threads, pattern matching, and Spring Boot 3.x. Expert in the latest Java ecosystem including GraalVM, Project Loom, and cloud-native patterns.", - "lastIndexed": 1772928421598 + "lastIndexed": 1773533422739 }, { "name": "javascript-mastery", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/javascript-mastery", "description": "Comprehensive JavaScript reference covering 33+ essential concepts every developer should know. From fundamentals like primitives and closures to advanced patterns like async/await and functional p...", - "lastIndexed": 1772928421651 + "lastIndexed": 1773533422787 }, { "name": "javascript-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/javascript-pro", "description": "Master modern JavaScript with ES6+, async patterns, and Node.js APIs. Handles promises, event loops, and browser/Node compatibility.", - "lastIndexed": 1772928421445 + "lastIndexed": 1773533422590 }, { "name": "javascript-testing-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/javascript-testing-patterns", "description": "Implement comprehensive testing strategies using Jest, Vitest, and Testing Library for unit tests, integration tests, and end-to-end testing with mocking, fixtures, and test-driven development. Use...", - "lastIndexed": 1772928421445 + "lastIndexed": 1773533422590 }, { "name": "javascript-typescript-typescript-scaffold", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/javascript-typescript-typescript-scaffold", "description": "You are a TypeScript project architecture expert specializing in scaffolding production-ready Node.js and frontend applications. Generate complete project structures with modern tooling (pnpm, Vite, N", - "lastIndexed": 1772928421598 + "lastIndexed": 1773533422739 }, { "name": "jira-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/jira-automation", "description": "Automate Jira tasks via Rube MCP (Composio): issues, projects, sprints, boards, comments, users. Always search tools first for current schemas.", - "lastIndexed": 1772928421531 + "lastIndexed": 1773533422681 }, { "name": "julia-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/julia-pro", "description": "Master Julia 1.10+ with modern features, performance optimization, multiple dispatch, and production-ready practices.", - "lastIndexed": 1772928421599 + "lastIndexed": 1773533422740 }, { "name": "junta-leiloeiros", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/junta-leiloeiros", "description": "Coleta e consulta dados de leiloeiros oficiais de todas as 27 Juntas Comerciais do Brasil. Scraper multi-UF, banco SQLite, API FastAPI e exportacao CSV/JSON.", - "lastIndexed": 1772928421531 + "lastIndexed": 1773533422681 }, { - "name": "jupyter-workflow", + "name": "k6-load-testing", "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/jupyter-workflow", - "description": "Jupyter Workflow", - "lastIndexed": 1772928421446 + "path": "skills/k6-load-testing", + "description": "Comprehensive k6 load testing skill for API, browser, and scalability testing. Write realistic load scenarios, analyze results, and integrate with CI/CD.", + "lastIndexed": 1773533422787 }, { "name": "k8s-manifest-generator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/k8s-manifest-generator", "description": "Create production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, and Secrets following best practices and security standards. Use when generating Kubernetes YAML manifests, creat...", - "lastIndexed": 1772928421446 + "lastIndexed": 1773533422591 }, { "name": "k8s-security-policies", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/k8s-security-policies", "description": "Implement Kubernetes security policies including NetworkPolicy, PodSecurityPolicy, and RBAC for production-grade security. Use when securing Kubernetes clusters, implementing network isolation, or ...", - "lastIndexed": 1772928421531 + "lastIndexed": 1773533422681 }, { "name": "kaizen", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/kaizen", "description": "Guide for continuous improvement, error proofing, and standardization. Use this skill when the user wants to improve code quality, refactor, or discuss process improvements.", - "lastIndexed": 1772928421687 + "lastIndexed": 1773533422818 + }, + { + "name": "keyword-extractor", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/keyword-extractor", + "description": "Extracts up to 50 highly relevant SEO keywords from text. Use when user wants to generate or extract keywords for given text.", + "lastIndexed": 1773533422681 }, { "name": "klaviyo-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/klaviyo-automation", "description": "Automate Klaviyo tasks via Rube MCP (Composio): manage email/SMS campaigns, inspect campaign messages, track tags, and monitor send jobs. Always search tools first for current schemas.", - "lastIndexed": 1772928421599 + "lastIndexed": 1773533422740 }, { "name": "kotlin-coroutines-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/kotlin-coroutines-expert", "description": "Expert patterns for Kotlin Coroutines and Flow, covering structured concurrency, error handling, and testing.", - "lastIndexed": 1772928421531 + "lastIndexed": 1773533422682 }, { "name": "kpi-dashboard-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/kpi-dashboard-design", "description": "Design effective KPI dashboards with metrics selection, visualization best practices, and real-time monitoring patterns. Use when building business dashboards, selecting metrics, or designing data ...", - "lastIndexed": 1772928421676 + "lastIndexed": 1773533422808 }, { "name": "kubernetes-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/kubernetes-architect", "description": "Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration.", - "lastIndexed": 1772928421599 + "lastIndexed": 1773533422740 }, { "name": "kubernetes-deployment", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/kubernetes-deployment", "description": "Kubernetes deployment workflow for container orchestration, Helm charts, service mesh, and production-ready K8s configurations.", - "lastIndexed": 1772928421446 + "lastIndexed": 1773533422597 }, { "name": "langchain-architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/langchain-architecture", "description": "Design LLM applications using the LangChain framework with agents, memory, and tool integration patterns. Use when building LangChain applications, implementing AI agents, or creating complex LLM w...", - "lastIndexed": 1772928421599 + "lastIndexed": 1773533422740 }, { "name": "langfuse", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/langfuse", "description": "Expert in Langfuse - the open-source LLM observability platform. Covers tracing, prompt management, evaluation, datasets, and integration with LangChain, LlamaIndex, and OpenAI. Essential for debug...", - "lastIndexed": 1772928421532 + "lastIndexed": 1773533422682 }, { "name": "langgraph", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/langgraph", "description": "Expert in LangGraph - the production-grade framework for building stateful, multi-actor AI applications. Covers graph construction, state management, cycles and branches, persistence with checkpoin...", - "lastIndexed": 1772928421599 + "lastIndexed": 1773533422740 }, { "name": "laravel-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/laravel-expert", "description": "Senior Laravel Engineer role for production-grade, maintainable, and idiomatic Laravel solutions. Focuses on clean architecture, security, performance, and modern standards (Laravel 10/11+).", - "lastIndexed": 1772928421532 + "lastIndexed": 1773533422682 }, { "name": "laravel-security-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/laravel-security-audit", "description": "Security auditor for Laravel applications. Analyzes code for vulnerabilities, misconfigurations, and insecure practices using OWASP standards and Laravel security best practices.", - "lastIndexed": 1772928421532 + "lastIndexed": 1773533422682 }, { "name": "last30days", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/last30days", "description": "Research a topic from the last 30 days on Reddit + X + Web, become an expert, and write copy-paste-ready prompts for the user's target tool.", - "lastIndexed": 1772928421676 + "lastIndexed": 1773533422809 + }, + { + "name": "latex-paper-conversion", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/latex-paper-conversion", + "description": "This skill should be used when the user asks to convert an academic paper in LaTeX from one format (e.g., Springer, IPOL) to another format (e.g., MDPI, IEEE, Nature). It automates extraction, injection, fixing formatting, and compiling.", + "lastIndexed": 1773533422682 }, { "name": "launch-strategy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/launch-strategy", "description": "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,'...", - "lastIndexed": 1772928421651 + "lastIndexed": 1773533422788 }, { "name": "legacy-modernizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/legacy-modernizer", "description": "Refactor legacy codebases, migrate outdated frameworks, and implement gradual modernization. Handles technical debt, dependency updates, and backward compatibility.", - "lastIndexed": 1772928421447 + "lastIndexed": 1773533422598 }, { "name": "legal-advisor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/legal-advisor", "description": "Draft privacy policies, terms of service, disclaimers, and legal notices. Creates GDPR-compliant texts, cookie policies, and data processing agreements.", - "lastIndexed": 1772928421447 + "lastIndexed": 1773533422598 }, { "name": "leiloeiro-avaliacao", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/leiloeiro-avaliacao", "description": "Avaliacao pericial de imoveis em leilao. Valor de mercado, liquidacao forcada, ABNT NBR 14653, metodos comparativo/renda/custo, CUB e margem de seguranca.", - "lastIndexed": 1772928421677 + "lastIndexed": 1773533422809 }, { "name": "leiloeiro-edital", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/leiloeiro-edital", "description": "Analise e auditoria de editais de leilao judicial e extrajudicial. Riscos ocultos, clausulas perigosas, debitos, ocupante e classificacao da oportunidade.", - "lastIndexed": 1772928421692 + "lastIndexed": 1773533422823 }, { "name": "leiloeiro-ia", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/leiloeiro-ia", "description": "Especialista em leiloes judiciais e extrajudiciais de imoveis. Analise juridica, pericial e de mercado integrada. Orquestra os 5 modulos especializados.", - "lastIndexed": 1772928421677 + "lastIndexed": 1773533422809 }, { "name": "leiloeiro-juridico", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/leiloeiro-juridico", "description": "Analise juridica de leiloes: nulidades, bem de familia, alienacao fiduciaria, CPC arts 829-903, Lei 9514/97, onus reais, embargos e jurisprudencia.", - "lastIndexed": 1772928421692 + "lastIndexed": 1773533422823 }, { "name": "leiloeiro-mercado", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/leiloeiro-mercado", "description": "Analise de mercado imobiliario para leiloes. Liquidez, desagio tipico, ROI, estrategias de saida (flip/reforma/renda), Selic 2025 e benchmark CDI/FII.", - "lastIndexed": 1772928421687 + "lastIndexed": 1773533422818 }, { "name": "leiloeiro-risco", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/leiloeiro-risco", "description": "Analise de risco em leiloes de imoveis. Score 36 pontos, riscos juridicos/financeiros/operacionais, stress test 4 cenarios e ROI ponderado por risco.", - "lastIndexed": 1772928421692 + "lastIndexed": 1773533422823 + }, + { + "name": "lex", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/lex", + "description": "Centralized 'Truth Engine' for cross-jurisdictional legal context (US, EU, CA) and contract scaffolding.", + "lastIndexed": 1773533422682 }, { "name": "base", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/libreoffice/base", "description": "Database management, forms, reports, and data operations with LibreOffice Base.", - "lastIndexed": 1772928421532 + "lastIndexed": 1773533422682 }, { "name": "calc", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/libreoffice/calc", "description": "Spreadsheet creation, format conversion (ODS/XLSX/CSV), formulas, data automation with LibreOffice Calc.", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "draw", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/libreoffice/draw", "description": "Vector graphics and diagram creation, format conversion (ODG/SVG/PDF) with LibreOffice Draw.", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "impress", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/libreoffice/impress", "description": "Presentation creation, format conversion (ODP/PPTX/PDF), slide automation with LibreOffice Impress.", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "writer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/libreoffice/writer", "description": "Document creation, format conversion (ODT/DOCX/PDF), mail merge, and automation with LibreOffice Writer.", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "lightning-architecture-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/lightning-architecture-review", "description": "Review Bitcoin Lightning Network protocol designs, compare channel factory approaches, and analyze Layer 2 scaling tradeoffs. Covers trust models, on-chain footprint, consensus requirements, HTLC/PTLC compatibility, liveness, and watchtower support.", - "lastIndexed": 1772928421448 + "lastIndexed": 1773533422599 }, { "name": "lightning-channel-factories", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/lightning-channel-factories", "description": "Technical reference on Lightning Network channel factories, multi-party channels, LSP architectures, and Bitcoin Layer 2 scaling without soft forks. Covers Decker-Wattenhofer, timeout trees, MuSig2 key aggregation, HTLC/PTLC forwarding, and watchtower breach detection.", - "lastIndexed": 1772928421448 + "lastIndexed": 1773533422599 }, { "name": "lightning-factory-explainer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/lightning-factory-explainer", "description": "Explain Bitcoin Lightning channel factories and the SuperScalar protocol — scalable Lightning onboarding using shared UTXOs, Decker-Wattenhofer trees, timeout-signature trees, MuSig2, and Taproot. No soft fork required.", - "lastIndexed": 1772928421448 + "lastIndexed": 1773533422599 }, { "name": "linear-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linear-automation", "description": "Automate Linear tasks via Rube MCP (Composio): issues, projects, cycles, teams, labels. Always search tools first for current schemas.", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "linear-claude-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linear-claude-skill", "description": "Manage Linear issues, projects, and teams", - "lastIndexed": 1772928421652 + "lastIndexed": 1773533422788 }, { "name": "linkedin-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linkedin-automation", "description": "Automate LinkedIn tasks via Rube MCP (Composio): create posts, manage profile, company info, comments, and image uploads. Always search tools first for current schemas.", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "linkedin-cli", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linkedin-cli", "description": "Use when automating LinkedIn via CLI: fetch profiles, search people/companies, send messages, manage connections, create posts, and Sales Navigator.", - "lastIndexed": 1772928421677 + "lastIndexed": 1773533422809 }, { "name": "linkerd-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linkerd-patterns", "description": "Implement Linkerd service mesh patterns for lightweight, security-focused service mesh deployments. Use when setting up Linkerd, configuring traffic policies, or implementing zero-trust networking ...", - "lastIndexed": 1772928421533 + "lastIndexed": 1773533422683 }, { "name": "lint-and-validate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/lint-and-validate", "description": "Automatic quality control, linting, and static analysis procedures. Use after every code modification to ensure syntax correctness and project standards. Triggers onKeywords: lint, format, check, v...", - "lastIndexed": 1772928421449 + "lastIndexed": 1773533422599 }, { "name": "linux-privilege-escalation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linux-privilege-escalation", "description": "This skill should be used when the user asks to \"escalate privileges on Linux\", \"find privesc vectors on Linux systems\", \"exploit sudo misconfigurations\", \"abuse SUID binaries\", \"ex...", - "lastIndexed": 1772928421652 + "lastIndexed": 1773533422788 }, { "name": "linux-shell-scripting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linux-shell-scripting", "description": "This skill should be used when the user asks to \"create bash scripts\", \"automate Linux tasks\", \"monitor system resources\", \"backup files\", \"manage users\", or \"write production she...", - "lastIndexed": 1772928421652 + "lastIndexed": 1773533422788 }, { "name": "linux-troubleshooting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/linux-troubleshooting", "description": "Linux system troubleshooting workflow for diagnosing and resolving system issues, performance problems, and service failures.", - "lastIndexed": 1772928421534 - }, - { - "name": "literature-analysis", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/literature-analysis", - "description": "Literature Analysis", - "lastIndexed": 1772928421449 + "lastIndexed": 1773533422683 }, { "name": "llm-app-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-app-patterns", "description": "Production-ready patterns for building LLM applications. Covers RAG pipelines, agent architectures, prompt IDEs, and LLMOps monitoring. Use when designing AI applications, implementing RAG, buildin...", - "lastIndexed": 1772928421692 + "lastIndexed": 1773533422823 }, { "name": "llm-application-dev-ai-assistant", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-application-dev-ai-assistant", "description": "You are an AI assistant development expert specializing in creating intelligent conversational interfaces, chatbots, and AI-powered applications. Design comprehensive AI assistant solutions with natur", - "lastIndexed": 1772928421449 + "lastIndexed": 1773533422600 }, { "name": "llm-application-dev-langchain-agent", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-application-dev-langchain-agent", "description": "You are an expert LangChain agent developer specializing in production-grade AI systems using LangChain 0.1+ and LangGraph.", - "lastIndexed": 1772928421600 + "lastIndexed": 1773533422741 }, { "name": "llm-application-dev-prompt-optimize", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-application-dev-prompt-optimize", "description": "You are an expert prompt engineer specializing in crafting effective prompts for LLMs through advanced techniques including constitutional AI, chain-of-thought reasoning, and model-specific optimizati", - "lastIndexed": 1772928421449 + "lastIndexed": 1773533422600 }, { "name": "llm-evaluation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-evaluation", "description": "Implement comprehensive evaluation strategies for LLM applications using automated metrics, human feedback, and benchmarking. Use when testing LLM performance, measuring AI application quality, or ...", - "lastIndexed": 1772928421653 + "lastIndexed": 1773533422789 }, { "name": "llm-ops", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-ops", "description": "LLM Operations -- RAG, embeddings, vector databases, fine-tuning, prompt engineering avancado, custos de LLM, evals de qualidade e arquiteturas de IA para producao. Ativar para: implementar RAG,...", - "lastIndexed": 1772928421601 + "lastIndexed": 1773533422741 }, { "name": "llm-prompt-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/llm-prompt-optimizer", "description": "Use when improving prompts for any LLM. Applies proven prompt engineering techniques to boost output quality, reduce hallucinations, and cut token usage.", - "lastIndexed": 1772928421601 + "lastIndexed": 1773533422741 + }, + { + "name": "llm-structured-output", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/llm-structured-output", + "description": "Get reliable JSON, enums, and typed objects from LLMs using response_format, tool_use, and schema-constrained decoding across OpenAI, Anthropic, and Google APIs.", + "lastIndexed": 1773533422810 }, { "name": "local-legal-seo-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/local-legal-seo-audit", "description": "Audit and improve local SEO for law firms, attorneys, forensic experts and legal/professional services sites with local presence, focusing on GBP, directories, E-E-A-T and practice/location pages.", - "lastIndexed": 1772928421653 + "lastIndexed": 1773533422789 + }, + { + "name": "local-llm-expert", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/local-llm-expert", + "description": "Master local LLM inference, model selection, VRAM optimization, and local deployment using Ollama, llama.cpp, vLLM, and LM Studio. Expert in quantization formats (GGUF, EXL2) and local AI privacy.", + "lastIndexed": 1773533422741 }, { "name": "logistics-exception-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/logistics-exception-management", "description": "Codified expertise for handling freight exceptions, shipment delays, damages, losses, and carrier disputes. Informed by logistics professionals with 15+ years operational experience.", - "lastIndexed": 1772928421692 + "lastIndexed": 1773533422823 }, { "name": "loki-mode", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/loki-mode", "description": "Multi-agent autonomous startup system for Claude Code. Triggers on \"Loki Mode\". Orchestrates 100+ specialized agents across engineering, QA, DevOps, security, data/ML, business operations,...", - "lastIndexed": 1772928421703 + "lastIndexed": 1773533422831 }, { "name": "m365-agents-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/m365-agents-dotnet", "description": "Microsoft 365 Agents SDK for .NET. Build multichannel agents for Teams/M365/Copilot Studio with ASP.NET Core hosting, AgentApplication routing, and MSAL-based auth.", - "lastIndexed": 1772928421601 + "lastIndexed": 1773533422742 }, { "name": "m365-agents-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/m365-agents-py", "description": "Microsoft 365 Agents SDK for Python. Build multichannel agents for Teams/M365/Copilot Studio with aiohttp hosting, AgentApplication routing, streaming responses, and MSAL-based auth.", - "lastIndexed": 1772928421601 + "lastIndexed": 1773533422742 }, { "name": "m365-agents-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/m365-agents-ts", "description": "Microsoft 365 Agents SDK for TypeScript/Node.js.", - "lastIndexed": 1772928421534 + "lastIndexed": 1773533422684 }, { "name": "machine-learning-ops-ml-pipeline", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/machine-learning-ops-ml-pipeline", "description": "Design and implement a complete ML pipeline for: $ARGUMENTS", - "lastIndexed": 1772928421601 + "lastIndexed": 1773533422742 }, { "name": "magic-animator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/magic-animator", "description": "AI-powered animation tool for creating motion in logos, UI, icons, and social media assets.", - "lastIndexed": 1772928421450 + "lastIndexed": 1773533422600 }, { "name": "magic-ui-generator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/magic-ui-generator", "description": "Utilizes Magic by 21st.dev to generate, compare, and integrate multiple production-ready UI component variations.", - "lastIndexed": 1772928421535 + "lastIndexed": 1773533422684 }, { "name": "mailchimp-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mailchimp-automation", "description": "Automate Mailchimp email marketing including campaigns, audiences, subscribers, segments, and analytics via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421653 + "lastIndexed": 1773533422789 }, { "name": "make-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/make-automation", "description": "Automate Make (Integromat) tasks via Rube MCP (Composio): operations, enums, language and timezone lookups. Always search tools first for current schemas.", - "lastIndexed": 1772928421602 + "lastIndexed": 1773533422742 }, { "name": "makepad-animation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-animation", "description": "CRITICAL: Use for Makepad animation system. Triggers on:\nmakepad animation, makepad animator, makepad hover, makepad state,\nmakepad transition, \"from: { all: Forward\", makepad pressed,\nmakepad 动画, makepad 状态, makepad 过渡, makepad 悬停效果", - "lastIndexed": 1772928421535 + "lastIndexed": 1773533422684 }, { "name": "makepad-basics", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-basics", "description": "CRITICAL: Use for Makepad getting started and app structure. Triggers on:\nmakepad, makepad getting started, makepad tutorial, live_design!, app_main!,\nmakepad project setup, makepad hello world, \"how to create makepad app\",\nmakepad 入门, 创建 makepad 应用, makepad 教程, makepad 项目结构", - "lastIndexed": 1772928421535 + "lastIndexed": 1773533422684 }, { "name": "makepad-deployment", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-deployment", "description": "CRITICAL: Use for Makepad packaging and deployment. Triggers on:\ndeploy, package, APK, IPA, 打包, 部署,\ncargo-packager, cargo-makepad, WASM, Android, iOS,\ndistribution, installer, .deb, .dmg, .nsis,\nGitHub Actions, CI, action, marketplace", - "lastIndexed": 1772928421602 + "lastIndexed": 1773533422742 }, { "name": "makepad-dsl", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-dsl", "description": "CRITICAL: Use for Makepad DSL syntax and inheritance. Triggers on:\nmakepad dsl, live_design, makepad inheritance, makepad prototype,\n\"<Widget>\", \"Foo = { }\", makepad object, makepad property,\nmakepad DSL 语法, makepad 继承, makepad 原型, 如何定义 makepad 组件", - "lastIndexed": 1772928421535 + "lastIndexed": 1773533422684 }, { "name": "makepad-event-action", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-event-action", "description": "CRITICAL: Use for Makepad event and action handling. Triggers on:\nmakepad event, makepad action, Event enum, ActionTrait, handle_event,\nMouseDown, KeyDown, TouchUpdate, Hit, FingerDown, post_action,\nmakepad 事件, makepad action, 事件处理", - "lastIndexed": 1772928421535 + "lastIndexed": 1773533422685 }, { "name": "makepad-font", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-font", "description": "CRITICAL: Use for Makepad font and text rendering. Triggers on:\nmakepad font, makepad text, makepad glyph, makepad typography,\nfont atlas, text layout, font family, font size, text shaping,\nmakepad 字体, makepad 文字, makepad 排版, makepad 字形", - "lastIndexed": 1772928421535 + "lastIndexed": 1773533422685 }, { "name": "makepad-layout", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-layout", "description": "CRITICAL: Use for Makepad layout system. Triggers on:\nmakepad layout, makepad width, makepad height, makepad flex,\nmakepad padding, makepad margin, makepad flow, makepad align,\nFit, Fill, Size, Walk, \"how to center in makepad\",\nmakepad 布局, makepad 宽度, makepad 对齐, makepad 居中", - "lastIndexed": 1772928421536 + "lastIndexed": 1773533422685 }, { "name": "makepad-platform", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-platform", "description": "CRITICAL: Use for Makepad cross-platform support. Triggers on:\nmakepad platform, makepad os, makepad macos, makepad windows, makepad linux,\nmakepad android, makepad ios, makepad web, makepad wasm, makepad metal,\nmakepad d3d11, makepad opengl, makepad webgl, OsType, CxOs,\nmakepad 跨平台, makepad 平台支持", - "lastIndexed": 1772928421536 + "lastIndexed": 1773533422685 }, { "name": "makepad-reference", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-reference", "description": "CRITICAL: Use for Makepad troubleshooting and reference. Triggers on:\ntroubleshoot, error, debug, fix, problem, issue,\nno matching field, parse error, widget not found, UI not updating,\ncode quality, refactor, responsive layout, adaptive,\napi docs, reference,...", - "lastIndexed": 1772928421451 + "lastIndexed": 1773533422601 }, { "name": "makepad-shaders", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-shaders", "description": "CRITICAL: Use for Makepad shader system. Triggers on:\nmakepad shader, makepad draw_bg, Sdf2d, makepad pixel,\nmakepad glsl, makepad sdf, draw_quad, makepad gpu,\nmakepad 着色器, makepad shader 语法, makepad 绘制", - "lastIndexed": 1772928421536 + "lastIndexed": 1773533422685 }, { "name": "makepad-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-skills", "description": "Makepad UI development skills for Rust apps: setup, patterns, shaders, packaging, and troubleshooting.", - "lastIndexed": 1772928421451 + "lastIndexed": 1773533422601 }, { "name": "makepad-splash", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-splash", "description": "CRITICAL: Use for Makepad Splash scripting language. Triggers on:\nsplash language, makepad script, makepad scripting, script!, cx.eval,\nmakepad dynamic, makepad AI, splash 语言, makepad 脚本", - "lastIndexed": 1772928421536 + "lastIndexed": 1773533422685 }, { "name": "makepad-widgets", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/makepad-widgets", "description": "CRITICAL: Use for Makepad widgets and UI components. Triggers on:\nmakepad widget, makepad View, makepad Button, makepad Label, makepad Image,\nmakepad TextInput, RoundedView, SolidView, ScrollView, \"makepad component\",\nmakepad Markdown, makepad Html, TextFlow, rich...", - "lastIndexed": 1772928421536 + "lastIndexed": 1773533422685 }, { "name": "malware-analyst", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/malware-analyst", "description": "Expert malware analyst specializing in defensive malware research, threat intelligence, and incident response. Masters sandbox analysis, behavioral analysis, and malware family identification.", - "lastIndexed": 1772928421602 + "lastIndexed": 1773533422742 }, { "name": "manifest", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/manifest", "description": "Install and configure the Manifest observability plugin for your agents. Use when setting up telemetry, configuring API keys, or troubleshooting the plugin.", - "lastIndexed": 1772928421536 + "lastIndexed": 1773533422685 }, { "name": "market-sizing-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/market-sizing-analysis", "description": "This skill should be used when the user asks to \\\\\\\"calculate TAM\\\\\\\", \"determine SAM\", \"estimate SOM\", \"size the market\", \"calculate market opportunity\", \"what's the total addressable market\", or...", - "lastIndexed": 1772928421653 + "lastIndexed": 1773533422789 }, { "name": "marketing-ideas", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/marketing-ideas", "description": "Provide proven marketing strategies and growth ideas for SaaS and software products, prioritized using a marketing feasibility scoring system.", - "lastIndexed": 1772928421537 + "lastIndexed": 1773533422686 }, { "name": "marketing-psychology", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/marketing-psychology", "description": "Apply behavioral science and mental models to marketing decisions, prioritized using a psychological leverage and feasibility scoring system.", - "lastIndexed": 1772928421602 + "lastIndexed": 1773533422743 }, { "name": "matematico-tao", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/matematico-tao", "description": "Matemático ultra-avançado inspirado em Terence Tao. Análise rigorosa de código e arquitetura com teoria matemática profunda: teoria da informação, teoria dos grafos, complexidade computacional,...", - "lastIndexed": 1772928421703 + "lastIndexed": 1773533422831 }, { "name": "matplotlib", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/matplotlib", "description": "Low-level plotting library for full customization. Use when you need fine-grained control over every plot element, creating novel plot types, or integrating with specific scientific workflows. Export to PNG/PDF/SVG for publication. For quick...", - "lastIndexed": 1772928421654 + "lastIndexed": 1773533422789 }, { "name": "mcp-builder-ms", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mcp-builder-ms", "description": "Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate exte...", - "lastIndexed": 1772928421654 + "lastIndexed": 1773533422790 }, { "name": "mcp-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mcp-builder", "description": "Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate exte...", - "lastIndexed": 1772928421603 + "lastIndexed": 1773533422743 }, { "name": "memory-forensics", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/memory-forensics", "description": "Master memory forensics techniques including memory acquisition, process analysis, and artifact extraction using Volatility and related tools. Use when analyzing memory dumps, investigating inciden...", - "lastIndexed": 1772928421603 + "lastIndexed": 1773533422743 }, { "name": "memory-safety-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/memory-safety-patterns", "description": "Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory...", - "lastIndexed": 1772928421451 + "lastIndexed": 1773533422602 }, { "name": "memory-systems", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/memory-systems", "description": "Design short-term, long-term, and graph-based memory architectures", - "lastIndexed": 1772928421654 + "lastIndexed": 1773533422790 }, { "name": "mental-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mental-health-analyzer", "description": "分析心理健康数据、识别心理模式、评估心理健康状况、提供个性化心理健康建议。支持与睡眠、运动、营养等其他健康数据的关联分析。", - "lastIndexed": 1772928421700 + "lastIndexed": 1773533422828 }, { "name": "mermaid-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mermaid-expert", "description": "Create Mermaid diagrams for flowcharts, sequences, ERDs, and architectures. Masters syntax for all diagram types and styling.", - "lastIndexed": 1772928421452 + "lastIndexed": 1773533422602 }, { "name": "metasploit-framework", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/metasploit-framework", "description": "This skill should be used when the user asks to \"use Metasploit for penetration testing\", \"exploit vulnerabilities with msfconsole\", \"create payloads with msfvenom\", \"perform post-exp...", - "lastIndexed": 1772928421654 + "lastIndexed": 1773533422790 }, { "name": "micro-saas-launcher", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/micro-saas-launcher", "description": "Expert in launching small, focused SaaS products fast - the indie hacker approach to building profitable software. Covers idea validation, MVP development, pricing, launch strategies, and growing t...", - "lastIndexed": 1772928421537 + "lastIndexed": 1773533422686 }, { "name": "microservices-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/microservices-patterns", "description": "Design microservices architectures with service boundaries, event-driven communication, and resilience patterns. Use when building distributed systems, decomposing monoliths, or implementing micros...", - "lastIndexed": 1772928421452 + "lastIndexed": 1773533422603 }, { "name": "microsoft-azure-webjobs-extensions-authentication-events-dotnet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/microsoft-azure-webjobs-extensions-authentication-events-dotnet", "description": "Microsoft Entra Authentication Events SDK for .NET. Azure Functions triggers for custom authentication extensions.", - "lastIndexed": 1772928421603 + "lastIndexed": 1773533422743 }, { "name": "microsoft-teams-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/microsoft-teams-automation", "description": "Automate Microsoft Teams tasks via Rube MCP (Composio): send messages, manage channels, create meetings, handle chats, and search messages. Always search tools first for current schemas.", - "lastIndexed": 1772928421603 + "lastIndexed": 1773533422744 }, { "name": "minecraft-bukkit-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/minecraft-bukkit-pro", "description": "Master Minecraft server plugin development with Bukkit, Spigot, and Paper APIs.", - "lastIndexed": 1772928421537 + "lastIndexed": 1773533422686 }, { "name": "miro-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/miro-automation", "description": "Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas.", - "lastIndexed": 1772928421604 + "lastIndexed": 1773533422744 }, { "name": "mixpanel-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mixpanel-automation", "description": "Automate Mixpanel tasks via Rube MCP (Composio): events, segmentation, funnels, cohorts, user profiles, JQL queries. Always search tools first for current schemas.", - "lastIndexed": 1772928421604 + "lastIndexed": 1773533422744 }, { "name": "ml-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ml-engineer", "description": "Build production ML systems with PyTorch 2.x, TensorFlow, and modern ML frameworks. Implements model serving, feature engineering, A/B testing, and monitoring.", - "lastIndexed": 1772928421604 + "lastIndexed": 1773533422744 }, { "name": "ml-pipeline-workflow", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ml-pipeline-workflow", "description": "Build end-to-end MLOps pipelines from data preparation through model training, validation, and production deployment. Use when creating ML pipelines, implementing MLOps practices, or automating mod...", - "lastIndexed": 1772928421604 + "lastIndexed": 1773533422744 }, { "name": "mlops-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mlops-engineer", "description": "Build comprehensive ML pipelines, experiment tracking, and model registries with MLflow, Kubeflow, and modern MLOps tools.", - "lastIndexed": 1772928421669 + "lastIndexed": 1773533422744 }, { "name": "mobile-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mobile-design", "description": "Mobile-first design and engineering doctrine for iOS and Android apps. Covers touch interaction, performance, platform conventions, offline behavior, and mobile-specific decision-making. Teaches pr...", - "lastIndexed": 1772928421604 + "lastIndexed": 1773533422744 }, { "name": "mobile-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mobile-developer", "description": "Develop React Native, Flutter, or native mobile apps with modern architecture patterns. Masters cross-platform development, native integrations, offline sync, and app store optimization.", - "lastIndexed": 1772928421604 + "lastIndexed": 1773533422745 }, { "name": "mobile-security-coder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mobile-security-coder", "description": "Expert in secure mobile coding practices specializing in input validation, WebView security, and mobile-specific security patterns.", - "lastIndexed": 1772928421655 + "lastIndexed": 1773533422790 }, { "name": "modern-javascript-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/modern-javascript-patterns", "description": "Master ES6+ features including async/await, destructuring, spread operators, arrow functions, promises, modules, iterators, generators, and functional programming patterns for writing clean, effici...", - "lastIndexed": 1772928421452 + "lastIndexed": 1773533422603 }, { "name": "molykit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/molykit", "description": "CRITICAL: Use for MolyKit AI chat toolkit. Triggers on:\nBotClient, OpenAI, SSE streaming, AI chat, molykit,\nPlatformSend, spawn(), ThreadToken, cross-platform async,\nChat widget, Messages, PromptInput, Avatar, LLM", - "lastIndexed": 1772928421669 + "lastIndexed": 1773533422745 }, { "name": "monday-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/monday-automation", "description": "Automate Monday.com work management including boards, items, columns, groups, subitems, and updates via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421605 + "lastIndexed": 1773533422745 }, { "name": "monetization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/monetization", "description": "Estrategia e implementacao de monetizacao para produtos digitais - Stripe, subscriptions, pricing experiments, freemium, upgrade flows, churn prevention, revenue optimization e modelos de negocio...", - "lastIndexed": 1772928421655 + "lastIndexed": 1773533422790 }, { "name": "monorepo-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/monorepo-architect", "description": "Expert in monorepo architecture, build systems, and dependency management at scale. Masters Nx, Turborepo, Bazel, and Lerna for efficient multi-project development. Use PROACTIVELY for monorepo setup,", - "lastIndexed": 1772928421453 + "lastIndexed": 1773533422603 }, { "name": "monorepo-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/monorepo-management", "description": "Master monorepo management with Turborepo, Nx, and pnpm workspaces to build efficient, scalable multi-package repositories with optimized builds and dependency management. Use when setting up monor...", - "lastIndexed": 1772928421453 - }, - { - "name": "monte-carlo-treasury", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/monte-carlo-treasury", - "description": "Monte Carlo Treasury", - "lastIndexed": 1772928421453 - }, - { - "name": "monte-carlo-vulnerability-detection", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/monte-carlo-vulnerability-detection", - "description": "Monte Carlo Vulnerability Detection", - "lastIndexed": 1772928421453 + "lastIndexed": 1773533422603 }, { "name": "moodle-external-api-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/moodle-external-api-development", "description": "Create custom external web service APIs for Moodle LMS. Use when implementing web services for course management, user tracking, quiz operations, or custom plugin functionality. Covers parameter va...", - "lastIndexed": 1772928421687 + "lastIndexed": 1773533422818 }, { "name": "mtls-configuration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/mtls-configuration", "description": "Configure mutual TLS (mTLS) for zero-trust service-to-service communication. Use when implementing zero-trust networking, certificate management, or securing internal service communication.", - "lastIndexed": 1772928421605 + "lastIndexed": 1773533422745 }, { "name": "multi-advisor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/multi-advisor", "description": "Conselho de especialistas — consulta multiplos agentes do ecossistema em paralelo para analise multi-perspectiva de qualquer topico. Ativa personas, especialistas e agentes tecnicos...", - "lastIndexed": 1772928421605 + "lastIndexed": 1773533422746 }, { "name": "multi-agent-brainstorming", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/multi-agent-brainstorming", "description": "Simulate a structured peer-review process using multiple specialized agents to validate designs, surface hidden assumptions, and identify failure modes before implementation.", - "lastIndexed": 1772928421538 + "lastIndexed": 1773533422687 }, { "name": "multi-agent-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/multi-agent-patterns", "description": "This skill should be used when the user asks to \"design multi-agent system\", \"implement supervisor pattern\", \"create swarm architecture\", \"coordinate multiple agents\", or mentions multi-agent patterns, context isolation, agent handoffs, sub-agents, or parallel agent execution.", - "lastIndexed": 1772928421678 + "lastIndexed": 1773533422810 }, { "name": "multi-cloud-architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/multi-cloud-architecture", "description": "Design multi-cloud architectures using a decision framework to select and integrate services across AWS, Azure, and GCP. Use when building multi-cloud systems, avoiding vendor lock-in, or leveragin...", - "lastIndexed": 1772928421538 + "lastIndexed": 1773533422687 }, { "name": "multi-platform-apps-multi-platform", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/multi-platform-apps-multi-platform", "description": "Build and deploy the same feature consistently across web, mobile, and desktop platforms using API-first architecture and parallel implementation strategies.", - "lastIndexed": 1772928421605 + "lastIndexed": 1773533422746 }, { "name": "n8n-code-javascript", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-code-javascript", "description": "Write JavaScript code in n8n Code nodes. Use when writing JavaScript in n8n, using $input/$json/$node syntax, making HTTP requests with $helpers, working with dates using DateTime, troubleshooting Code node errors, or choosing between Code node modes.", - "lastIndexed": 1772928421678 + "lastIndexed": 1773533422810 }, { "name": "n8n-code-python", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-code-python", "description": "Write Python code in n8n Code nodes. Use when writing Python in n8n, using _input/_json/_node syntax, working with standard library, or need to understand Python limitations in n8n Code nodes.", - "lastIndexed": 1772928421688 + "lastIndexed": 1773533422819 }, { "name": "n8n-expression-syntax", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-expression-syntax", "description": "Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.", - "lastIndexed": 1772928421606 + "lastIndexed": 1773533422746 }, { "name": "n8n-mcp-tools-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-mcp-tools-expert", "description": "Expert guide for using n8n-mcp MCP tools effectively. Use when searching for nodes, validating configurations, accessing templates, managing workflows, or using any n8n-mcp tool. Provides tool selection guidance, parameter formats, and common patterns.", - "lastIndexed": 1772928421655 + "lastIndexed": 1773533422791 }, { "name": "n8n-node-configuration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-node-configuration", "description": "Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node detail levels, or learning common configuration patterns by node type.", - "lastIndexed": 1772928421678 + "lastIndexed": 1773533422811 }, { "name": "n8n-validation-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-validation-expert", "description": "Interpret validation errors and guide fixing them. Use when encountering validation errors, validation warnings, false positives, operator structure issues, or need help understanding validation results. Also use when asking about validation...", - "lastIndexed": 1772928421656 + "lastIndexed": 1773533422791 }, { "name": "n8n-workflow-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/n8n-workflow-patterns", "description": "Proven workflow architectural patterns from real n8n workflows. Use when building new workflows, designing workflow structure, choosing workflow patterns, planning workflow architecture, or asking about webhook processing, HTTP API integration,...", - "lastIndexed": 1772928421656 + "lastIndexed": 1773533422791 }, { "name": "nanobanana-ppt-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nanobanana-ppt-skills", "description": "AI-powered PPT generation with document analysis and styled images", - "lastIndexed": 1772928421453 + "lastIndexed": 1773533422604 }, { "name": "native-data-fetching", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/native-data-fetching", "description": "Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (useLoaderData).", - "lastIndexed": 1772928421606 + "lastIndexed": 1773533422746 }, { "name": "neon-postgres", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/neon-postgres", "description": "Expert patterns for Neon serverless Postgres, branching, connection pooling, and Prisma/Drizzle integration Use when: neon database, serverless postgres, database branching, neon postgres, postgres...", - "lastIndexed": 1772928421454 + "lastIndexed": 1773533422604 }, { "name": "nerdzao-elite-gemini-high", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nerdzao-elite-gemini-high", "description": "Modo Elite Coder + UX Pixel-Perfect otimizado especificamente para Gemini 3.1 Pro High. Workflow completo com foco em qualidade máxima e eficiência de tokens.", - "lastIndexed": 1772928421560 + "lastIndexed": 1773533422604 }, { "name": "nerdzao-elite", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nerdzao-elite", "description": "Senior Elite Software Engineer (15+) and Senior Product Designer. Full workflow with planning, architecture, TDD, clean code, and pixel-perfect UX validation.", - "lastIndexed": 1772928421454 + "lastIndexed": 1773533422604 }, { "name": "nestjs-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nestjs-expert", "description": "Nest.js framework expert specializing in module architecture, dependency injection, middleware, guards, interceptors, testing with Jest/Supertest, TypeORM/Mongoose integration, and Passport.js auth...", - "lastIndexed": 1772928421701 + "lastIndexed": 1773533422824 }, { "name": "network-101", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/network-101", "description": "This skill should be used when the user asks to \"set up a web server\", \"configure HTTP or HTTPS\", \"perform SNMP enumeration\", \"configure SMB shares\", \"test network services\", or ne...", - "lastIndexed": 1772928421606 + "lastIndexed": 1773533422746 }, { "name": "network-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/network-engineer", "description": "Expert network engineer specializing in modern cloud networking, security architectures, and performance optimization.", - "lastIndexed": 1772928421606 + "lastIndexed": 1773533422747 }, { "name": "networkx", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/networkx", "description": "Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting...", - "lastIndexed": 1772928421682 + "lastIndexed": 1773533422791 }, { "name": "new-rails-project", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/new-rails-project", "description": "Create a new Rails project", - "lastIndexed": 1772928421454 + "lastIndexed": 1773533422604 }, { "name": "nextjs-app-router-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nextjs-app-router-patterns", "description": "Master Next.js 14+ App Router with Server Components, streaming, parallel routes, and advanced data fetching. Use when building Next.js applications, implementing SSR/SSG, or optimizing React Serve...", - "lastIndexed": 1772928421454 + "lastIndexed": 1773533422604 }, { "name": "nextjs-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nextjs-best-practices", "description": "Next.js App Router principles. Server Components, data fetching, routing patterns.", - "lastIndexed": 1772928421539 + "lastIndexed": 1773533422688 }, { "name": "nextjs-supabase-auth", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nextjs-supabase-auth", "description": "Expert integration of Supabase Auth with Next.js App Router Use when: supabase auth next, authentication next.js, login supabase, auth middleware, protected route.", - "lastIndexed": 1772928421454 + "lastIndexed": 1773533422605 }, { "name": "nft-standards", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nft-standards", "description": "Implement NFT standards (ERC-721, ERC-1155) with proper metadata handling, minting strategies, and marketplace integration. Use when creating NFT contracts, building NFT marketplaces, or implementi...", - "lastIndexed": 1772928421612 + "lastIndexed": 1773533422747 }, { "name": "nodejs-backend-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nodejs-backend-patterns", "description": "Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices. Use when...", - "lastIndexed": 1772928421454 + "lastIndexed": 1773533422605 }, { "name": "nodejs-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nodejs-best-practices", "description": "Node.js development principles and decision-making. Framework selection, async patterns, security, and architecture. Teaches thinking, not copying.", - "lastIndexed": 1772928421669 + "lastIndexed": 1773533422747 }, { "name": "nosql-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nosql-expert", "description": "Expert guidance for distributed NoSQL databases (Cassandra, DynamoDB). Focuses on mental models, query-first modeling, single-table design, and avoiding hot partitions in high-scale systems.", - "lastIndexed": 1772928421612 + "lastIndexed": 1773533422747 }, { "name": "notebooklm", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/notebooklm", "description": "Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth....", - "lastIndexed": 1772928421612 + "lastIndexed": 1773533422747 }, { "name": "notion-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/notion-automation", "description": "Automate Notion tasks via Rube MCP (Composio): pages, databases, blocks, comments, users. Always search tools first for current schemas.", - "lastIndexed": 1772928421613 + "lastIndexed": 1773533422747 }, { "name": "notion-template-business", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/notion-template-business", "description": "Expert in building and selling Notion templates as a business - not just making templates, but building a sustainable digital product business. Covers template design, pricing, marketplaces, market...", - "lastIndexed": 1772928421539 - }, - { - "name": "numpy", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/numpy", - "description": "Numpy", - "lastIndexed": 1772928421455 + "lastIndexed": 1773533422688 }, { "name": "nutrition-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nutrition-analyzer", "description": "分析营养数据、识别营养模式、评估营养状况,并提供个性化营养建议。支持与运动、睡眠、慢性病数据的关联分析。", - "lastIndexed": 1772928421701 + "lastIndexed": 1773533422824 }, { "name": "nx-workspace-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/nx-workspace-patterns", "description": "Configure and optimize Nx monorepo workspaces. Use when setting up Nx, configuring project boundaries, optimizing build caching, or implementing affected commands.", - "lastIndexed": 1772928421613 + "lastIndexed": 1773533422748 }, { "name": "observability-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/observability-engineer", "description": "Build production-ready monitoring, logging, and tracing systems. Implements comprehensive observability strategies, SLI/SLO management, and incident response workflows.", - "lastIndexed": 1772928421656 + "lastIndexed": 1773533422791 }, { "name": "observability-monitoring-monitor-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/observability-monitoring-monitor-setup", "description": "You are a monitoring and observability expert specializing in implementing comprehensive monitoring solutions. Set up metrics collection, distributed tracing, log aggregation, and create insightful da", - "lastIndexed": 1772928421455 + "lastIndexed": 1773533422605 }, { "name": "observability-monitoring-slo-implement", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/observability-monitoring-slo-implement", "description": "You are an SLO (Service Level Objective) expert specializing in implementing reliability standards and error budget-based practices. Design SLO frameworks, define SLIs, and build monitoring that ba...", - "lastIndexed": 1772928421455 - }, - { - "name": "observe-whatsapp", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/observe-whatsapp", - "description": "Observe Whatsapp", - "lastIndexed": 1772928421560 + "lastIndexed": 1773533422605 }, { "name": "obsidian-clipper-template-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/obsidian-clipper-template-creator", "description": "Guide for creating templates for the Obsidian Web Clipper. Use when you want to create a new clipping template, understand available variables, or format clipped content.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422688 }, { "name": "occupational-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/occupational-health-analyzer", "description": "分析职业健康数据、识别工作相关健康风险、评估职业健康状况、提供个性化职业健康建议。支持与睡眠、运动、心理健康等其他健康数据的关联分析。", - "lastIndexed": 1772928421613 + "lastIndexed": 1773533422748 }, { "name": "odoo-accounting-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-accounting-setup", "description": "Expert guide for configuring Odoo Accounting: chart of accounts, journals, fiscal positions, taxes, payment terms, and bank reconciliation.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422688 }, { "name": "odoo-automated-tests", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-automated-tests", "description": "Write and run Odoo automated tests using TransactionCase, HttpCase, and browser tour tests. Covers test data setup, mocking, and CI integration.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422689 }, { "name": "odoo-backup-strategy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-backup-strategy", "description": "Complete Odoo backup and restore strategy: database dumps, filestore backup, automated scheduling, cloud storage upload, and tested restore procedures.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422689 }, { "name": "odoo-docker-deployment", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-docker-deployment", "description": "Production-ready Docker and docker-compose setup for Odoo with PostgreSQL, persistent volumes, environment-based configuration, and Nginx reverse proxy.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422689 }, { "name": "odoo-ecommerce-configurator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-ecommerce-configurator", "description": "Expert guide for Odoo eCommerce and Website: product catalog, payment providers, shipping methods, SEO, and order-to-fulfillment workflow.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422689 }, { "name": "odoo-edi-connector", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-edi-connector", "description": "Guide for implementing EDI (Electronic Data Interchange) with Odoo: X12, EDIFACT document mapping, partner onboarding, and automated order processing.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422689 }, { "name": "odoo-hr-payroll-setup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-hr-payroll-setup", "description": "Expert guide for Odoo HR and Payroll: salary structures, payslip rules, leave policies, employee contracts, and payroll journal entries.", - "lastIndexed": 1772928421540 + "lastIndexed": 1773533422689 }, { "name": "odoo-inventory-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-inventory-optimizer", "description": "Expert guide for Odoo Inventory: stock valuation (FIFO/AVCO), reordering rules, putaway strategies, routes, and multi-warehouse configuration.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422689 }, { "name": "odoo-l10n-compliance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-l10n-compliance", "description": "Country-specific Odoo localization: tax configuration, e-invoicing (CFDI, FatturaPA, SAF-T), fiscal reporting, and country chart of accounts setup.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422689 }, { "name": "odoo-manufacturing-advisor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-manufacturing-advisor", "description": "Expert guide for Odoo Manufacturing: Bills of Materials (BoM), Work Centers, routings, MRP planning, and production order workflows.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422689 }, { "name": "odoo-migration-helper", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-migration-helper", "description": "Step-by-step guide for migrating Odoo custom modules between versions (v14→v15→v16→v17). Covers API changes, deprecated methods, and view migration.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422689 }, { "name": "odoo-module-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-module-developer", "description": "Expert guide for creating custom Odoo modules. Covers __manifest__.py, model inheritance, ORM patterns, and module structure best practices.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422689 }, { "name": "odoo-orm-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-orm-expert", "description": "Master Odoo ORM patterns: search, browse, create, write, domain filters, computed fields, and performance-safe query techniques.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422690 }, { "name": "odoo-performance-tuner", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-performance-tuner", "description": "Expert guide for diagnosing and fixing Odoo performance issues: slow queries, worker configuration, memory limits, PostgreSQL tuning, and profiling tools.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422690 }, { "name": "odoo-project-timesheet", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-project-timesheet", "description": "Expert guide for Odoo Project and Timesheets: task stages, billable time tracking, timesheet approval, budget alerts, and invoicing from timesheets.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422690 }, { "name": "odoo-purchase-workflow", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-purchase-workflow", "description": "Expert guide for Odoo Purchase: RFQ → PO → Receipt → Vendor Bill workflow, purchase agreements, vendor price lists, and 3-way matching.", - "lastIndexed": 1772928421541 + "lastIndexed": 1773533422690 }, { "name": "odoo-qweb-templates", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-qweb-templates", "description": "Expert in Odoo QWeb templating for PDF reports, email templates, and website pages. Covers t-if, t-foreach, t-field, and report actions.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-rpc-api", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-rpc-api", "description": "Expert on Odoo's external JSON-RPC and XML-RPC APIs. Covers authentication, model calls, record CRUD, and real-world integration examples in Python, JavaScript, and curl.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-sales-crm-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-sales-crm-expert", "description": "Expert guide for Odoo Sales and CRM: pipeline stages, quotation templates, pricelists, sales teams, lead scoring, and forecasting.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-security-rules", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-security-rules", "description": "Expert in Odoo access control: ir.model.access.csv, record rules (ir.rule), groups, and multi-company security patterns.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-shopify-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-shopify-integration", "description": "Connect Odoo with Shopify: sync products, inventory, orders, and customers using the Shopify API and Odoo's external API or connector modules.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-upgrade-advisor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-upgrade-advisor", "description": "Step-by-step Odoo version upgrade advisor: pre-upgrade checklist, community vs enterprise upgrade path, OCA module compatibility, and post-upgrade validation.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-woocommerce-bridge", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-woocommerce-bridge", "description": "Sync Odoo with WooCommerce: products, inventory, orders, and customers via WooCommerce REST API and Odoo external API.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422690 }, { "name": "odoo-xml-views-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/odoo-xml-views-builder", "description": "Expert at building Odoo XML views: Form, List, Kanban, Search, Calendar, and Graph. Generates correct XML for Odoo 14-17 with proper visibility syntax.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422691 }, { "name": "office-productivity", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/office-productivity", "description": "Office productivity workflow covering document creation, spreadsheet automation, presentation generation, and integration with LibreOffice and Microsoft Office formats.", - "lastIndexed": 1772928421542 + "lastIndexed": 1773533422691 }, { "name": "on-call-handoff-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/on-call-handoff-patterns", "description": "Master on-call shift handoffs with context transfer, escalation procedures, and documentation. Use when transitioning on-call responsibilities, documenting shift summaries, or improving on-call pro...", - "lastIndexed": 1772928421657 + "lastIndexed": 1773533422792 }, { "name": "onboarding-cro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/onboarding-cro", "description": "When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions \"onboarding flow,\" \"activation rate,\" \"u...", - "lastIndexed": 1772928421656 + "lastIndexed": 1773533422792 }, { "name": "one-drive-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/one-drive-automation", "description": "Automate OneDrive file management, search, uploads, downloads, sharing, permissions, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421657 - }, - { - "name": "open-source-context", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/open-source-context", - "description": "Open Source Context", - "lastIndexed": 1772928421457 + "lastIndexed": 1773533422792 }, { "name": "openapi-spec-generation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/openapi-spec-generation", "description": "Generate and maintain OpenAPI 3.1 specifications from code, design-first specs, and validation patterns. Use when creating API documentation, generating SDKs, or ensuring API contract compliance.", - "lastIndexed": 1772928421457 - }, - { - "name": "operational-guidelines", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/operational-guidelines", - "description": "Operational Guidelines", - "lastIndexed": 1772928421457 + "lastIndexed": 1773533422607 }, { "name": "oral-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/oral-health-analyzer", "description": "分析口腔健康数据、识别口腔问题模式、评估口腔健康状况、提供个性化口腔健康建议。支持与营养、慢性病、用药等其他健康数据的关联分析。", - "lastIndexed": 1772928421657 + "lastIndexed": 1773533422792 }, { "name": "os-scripting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/os-scripting", "description": "Operating system and shell scripting troubleshooting workflow for Linux, macOS, and Windows. Covers bash scripting, system administration, debugging, and automation.", - "lastIndexed": 1772928421613 - }, - { - "name": "osint-evals", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/osint-evals", - "description": "Osint Evals", - "lastIndexed": 1772928421457 + "lastIndexed": 1773533422748 }, { "name": "oss-hunter", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/oss-hunter", "description": "Automatically hunt for high-impact OSS contribution opportunities in trending repositories.", - "lastIndexed": 1772928421457 + "lastIndexed": 1773533422607 }, { "name": "outlook-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/outlook-automation", "description": "Automate Outlook tasks via Rube MCP (Composio): emails, calendar, contacts, folders, attachments. Always search tools first for current schemas.", - "lastIndexed": 1772928421614 + "lastIndexed": 1773533422748 }, { "name": "outlook-calendar-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/outlook-calendar-automation", "description": "Automate Outlook Calendar tasks via Rube MCP (Composio): create events, manage attendees, find meeting times, and handle invitations. Always search tools first for current schemas.", - "lastIndexed": 1772928421614 + "lastIndexed": 1773533422749 }, { "name": "page-cro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/page-cro", "description": "Analyze and optimize individual pages for conversion performance.", - "lastIndexed": 1772928421614 + "lastIndexed": 1773533422749 }, { "name": "pagerduty-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pagerduty-automation", "description": "Automate PagerDuty tasks via Rube MCP (Composio): manage incidents, services, schedules, escalation policies, and on-call rotations. Always search tools first for current schemas.", - "lastIndexed": 1772928421614 + "lastIndexed": 1773533422749 }, { "name": "paid-ads", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/paid-ads", "description": "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' '...", - "lastIndexed": 1772928421678 + "lastIndexed": 1773533422811 }, { - "name": "pandas", + "name": "pakistan-payments-stack", "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/pandas", - "description": "Pandas", - "lastIndexed": 1772928421457 - }, - { - "name": "paper-analysis", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/paper-analysis", - "description": "Paper Analysis", - "lastIndexed": 1772928421457 + "path": "skills/pakistan-payments-stack", + "description": "Design and implement production-grade Pakistani payment integrations (JazzCash, Easypaisa, bank/PSP rails, optional Raast) for SaaS with PKR billing, webhook reliability, and reconciliation.", + "lastIndexed": 1773533422749 }, { "name": "parallel-agents", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/parallel-agents", "description": "Multi-agent orchestration patterns. Use when multiple independent tasks can run with different domain expertise or when comprehensive analysis requires multiple perspectives.", - "lastIndexed": 1772928421543 + "lastIndexed": 1773533422691 }, { "name": "payment-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/payment-integration", "description": "Integrate Stripe, PayPal, and payment processors. Handles checkout flows, subscriptions, webhooks, and PCI compliance. Use PROACTIVELY when implementing payments, billing, or subscription features.", - "lastIndexed": 1772928421543 + "lastIndexed": 1773533422691 }, { "name": "paypal-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/paypal-integration", "description": "Integrate PayPal payment processing with support for express checkout, subscriptions, and refund management. Use when implementing PayPal payments, processing online transactions, or building e-com...", - "lastIndexed": 1772928421657 + "lastIndexed": 1773533422792 }, { "name": "paywall-upgrade-cro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/paywall-upgrade-cro", "description": "When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions \"paywall,\" \"upgrade screen,\" \"upgrade modal,...", - "lastIndexed": 1772928421679 + "lastIndexed": 1773533422811 }, { "name": "pci-compliance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pci-compliance", "description": "Implement PCI DSS compliance requirements for secure handling of payment card data and payment systems. Use when securing payment processing, achieving PCI compliance, or implementing payment card ...", - "lastIndexed": 1772928421658 + "lastIndexed": 1773533422792 }, { "name": "pdf-official", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pdf-official", "description": "Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmaticall...", - "lastIndexed": 1772928421543 + "lastIndexed": 1773533422691 }, { "name": "pentest-checklist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pentest-checklist", "description": "This skill should be used when the user asks to \"plan a penetration test\", \"create a security assessment checklist\", \"prepare for penetration testing\", \"define pentest scope\", \"foll...", - "lastIndexed": 1772928421658 + "lastIndexed": 1773533422793 }, { "name": "pentest-commands", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pentest-commands", "description": "This skill should be used when the user asks to \"run pentest commands\", \"scan with nmap\", \"use metasploit exploits\", \"crack passwords with hydra or john\", \"scan web vulnerabilities ...", - "lastIndexed": 1772928421615 + "lastIndexed": 1773533422749 }, { "name": "performance-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/performance-engineer", "description": "Expert performance engineer specializing in modern observability,", - "lastIndexed": 1772928421615 + "lastIndexed": 1773533422749 }, { "name": "performance-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/performance-optimizer", "description": "Identifies and fixes performance bottlenecks in code, databases, and APIs. Measures before and after to prove improvements.", - "lastIndexed": 1772928421615 + "lastIndexed": 1773533422750 }, { "name": "performance-profiling", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/performance-profiling", "description": "Performance profiling principles. Measurement, analysis, and optimization techniques.", - "lastIndexed": 1772928421544 + "lastIndexed": 1773533422692 }, { "name": "performance-testing-review-ai-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/performance-testing-review-ai-review", "description": "You are an expert AI-powered code review specialist combining automated static analysis, intelligent pattern recognition, and modern DevOps practices. Leverage AI tools (GitHub Copilot, Qodo, GPT-5, C", - "lastIndexed": 1772928421679 + "lastIndexed": 1773533423941 }, { "name": "performance-testing-review-multi-agent-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/performance-testing-review-multi-agent-review", "description": "Use when working with performance testing review multi agent review", - "lastIndexed": 1772928421544 + "lastIndexed": 1773533422692 }, { "name": "personal-tool-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/personal-tool-builder", "description": "Expert in building custom tools that solve your own problems first. The best products often start as personal tools - scratch your own itch, build for yourself, then discover others have the same i...", - "lastIndexed": 1772928421615 + "lastIndexed": 1773533422750 }, { "name": "php-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/php-pro", "description": "Write idiomatic PHP code with generators, iterators, SPL data\nstructures, and modern OOP features. Use PROACTIVELY for high-performance PHP\napplications.", - "lastIndexed": 1772928421458 + "lastIndexed": 1773533422608 + }, + { + "name": "pipecat-friday-agent", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/pipecat-friday-agent", + "description": "Build a low-latency, Iron Man-inspired tactical voice assistant (F.R.I.D.A.Y.) using Pipecat, Gemini, and OpenAI.", + "lastIndexed": 1773533422692 }, { "name": "pipedrive-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pipedrive-automation", "description": "Automate Pipedrive CRM operations including deals, contacts, organizations, activities, notes, and pipeline management via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421615 + "lastIndexed": 1773533422750 }, { "name": "plaid-fintech", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/plaid-fintech", "description": "Expert patterns for Plaid API integration including Link token flows, transactions sync, identity verification, Auth for ACH, balance checks, webhook handling, and fintech compliance best practices...", - "lastIndexed": 1772928421458 + "lastIndexed": 1773533422608 }, { "name": "plan-writing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/plan-writing", "description": "Structured task planning with clear breakdowns, dependencies, and verification criteria. Use when implementing features, refactoring, or any multi-step work.", - "lastIndexed": 1772928421544 + "lastIndexed": 1773533422692 }, { "name": "planning-with-files", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/planning-with-files", "description": "Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requirin...", - "lastIndexed": 1772928421544 + "lastIndexed": 1773533422692 + }, + { + "name": "playwright-java", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/playwright-java", + "description": "Scaffold, write, debug, and enhance enterprise-grade Playwright E2E tests in Java using Page Object Model, JUnit 5, Allure reporting, and parallel execution.", + "lastIndexed": 1773533422793 }, { "name": "playwright-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/playwright-skill", "description": "Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login ...", - "lastIndexed": 1772928421658 + "lastIndexed": 1773533422793 }, { "name": "plotly", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/plotly", "description": "Interactive visualization library. Use when you need hover info, zoom, pan, or web-embeddable charts. Best for dashboards, exploratory analysis, and presentations. For static publication figures use matplotlib or scientific-visualization.", - "lastIndexed": 1772928421616 + "lastIndexed": 1773533422750 }, { "name": "podcast-generation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/podcast-generation", "description": "Generate AI-powered podcast-style audio narratives using Azure OpenAI's GPT Realtime Mini model via WebSocket. Use when building text-to-speech features, audio narrative generation, podcast creatio...", - "lastIndexed": 1772928421544 + "lastIndexed": 1773533422693 }, { "name": "polars", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/polars", "description": "Fast in-memory DataFrame library for datasets that fit in RAM. Use when pandas is too slow but data still fits in memory. Lazy evaluation, parallel execution, Apache Arrow backend. Best for 1-100GB datasets, ETL pipelines, faster pandas replacement. For larger-than-RAM data use dask or vaex.", - "lastIndexed": 1772928421616 - }, - { - "name": "polyfile", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/polyfile", - "description": "Polyfile", - "lastIndexed": 1772928421459 + "lastIndexed": 1773533422750 }, { "name": "popup-cro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/popup-cro", "description": "Create and optimize popups, modals, overlays, slide-ins, and banners to increase conversions without harming user experience or brand trust.", - "lastIndexed": 1772928421616 + "lastIndexed": 1773533422750 }, { "name": "posix-shell-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/posix-shell-pro", "description": "Expert in strict POSIX sh scripting for maximum portability across Unix-like systems. Specializes in shell scripts that run on any POSIX-compliant shell (dash, ash, sh, bash --posix).", - "lastIndexed": 1772928421679 + "lastIndexed": 1773533422811 }, { "name": "postgres-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/postgres-best-practices", "description": "Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.", - "lastIndexed": 1772928421459 + "lastIndexed": 1773533422609 }, { "name": "postgresql-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/postgresql-optimization", "description": "PostgreSQL database optimization workflow for query tuning, indexing strategies, performance analysis, and production database management.", - "lastIndexed": 1772928421459 + "lastIndexed": 1773533422609 }, { "name": "postgresql", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/postgresql", "description": "Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features", - "lastIndexed": 1772928421693 + "lastIndexed": 1773533422824 }, { "name": "posthog-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/posthog-automation", "description": "Automate PostHog tasks via Rube MCP (Composio): events, feature flags, projects, user profiles, annotations. Always search tools first for current schemas.", - "lastIndexed": 1772928421616 + "lastIndexed": 1773533422751 }, { "name": "postmark-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/postmark-automation", "description": "Automate Postmark email delivery tasks via Rube MCP (Composio): send templated emails, manage templates, monitor delivery stats and bounces. Always search tools first for current schemas.", - "lastIndexed": 1772928421616 + "lastIndexed": 1773533422751 }, { "name": "postmortem-writing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/postmortem-writing", "description": "Write effective blameless postmortems with root cause analysis, timelines, and action items. Use when conducting incident reviews, writing postmortem documents, or improving incident response proce...", - "lastIndexed": 1772928421658 + "lastIndexed": 1773533422793 }, { "name": "powershell-windows", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/powershell-windows", "description": "PowerShell Windows patterns. Critical pitfalls, operator syntax, error handling.", - "lastIndexed": 1772928421545 + "lastIndexed": 1773533422693 }, { "name": "pptx-official", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pptx-official", "description": "Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layo...", - "lastIndexed": 1772928421703 + "lastIndexed": 1773533422831 }, { "name": "pr-writer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pr-writer", "description": "ALWAYS use this skill when creating or updating pull requests — never create or edit a PR directly without it. Follows Sentry conventions for PR titles, descriptions, and issue references. Trigger on any create PR, open PR, submit PR, make PR,...", - "lastIndexed": 1772928421545 + "lastIndexed": 1773533422693 }, { "name": "pricing-strategy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pricing-strategy", "description": "Design pricing, packaging, and monetization strategies based on value, customer willingness to pay, and growth objectives.", - "lastIndexed": 1772928421617 + "lastIndexed": 1773533422751 }, { "name": "prisma-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prisma-expert", "description": "Prisma ORM expert for schema design, migrations, query optimization, relations modeling, and database operations. Use PROACTIVELY for Prisma schema issues, migration problems, query performance, re...", - "lastIndexed": 1772928421617 + "lastIndexed": 1773533422751 + }, + { + "name": "privacy-by-design", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/privacy-by-design", + "description": "Use when building apps that collect user data. Ensures privacy protections are built in from the start—data minimization, consent, encryption.", + "lastIndexed": 1773533422751 }, { "name": "privilege-escalation-methods", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/privilege-escalation-methods", "description": "This skill should be used when the user asks to \"escalate privileges\", \"get root access\", \"become administrator\", \"privesc techniques\", \"abuse sudo\", \"exploit SUID binaries\", \"K...", - "lastIndexed": 1772928421617 + "lastIndexed": 1773533422751 }, { "name": "product-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/product-design", "description": "Design de produto nivel Apple — sistemas visuais, UX flows, acessibilidade, linguagem visual proprietaria, design tokens, prototipagem e handoff. Cobre Figma, design systems, tipografia, cor,...", - "lastIndexed": 1772928421658 + "lastIndexed": 1773533422793 }, { "name": "product-inventor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/product-inventor", "description": "Product Inventor e Design Alchemist de nivel maximo — combina Product Thinking, Design Systems, UI Engineering, Psicologia Cognitiva, Storytelling e execucao impecavel nivel Jobs/Apple. Use quando...", - "lastIndexed": 1772928421703 + "lastIndexed": 1773533422832 }, { "name": "product-manager-toolkit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/product-manager-toolkit", "description": "Comprehensive toolkit for product managers including RICE prioritization, customer interview analysis, PRD templates, discovery frameworks, and go-to-market strategies. Use for feature prioritizati...", - "lastIndexed": 1772928421617 + "lastIndexed": 1773533422752 }, { "name": "product-manager", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/product-manager", "description": "Senior PM agent with 6 knowledge domains, 30+ frameworks, 12 templates, and 32 SaaS metrics with formulas. Pure Markdown, zero scripts.", - "lastIndexed": 1772928421460 + "lastIndexed": 1773533422609 }, { "name": "production-code-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/production-code-audit", "description": "Autonomously deep-scan entire codebase line-by-line, understand architecture and patterns, then systematically transform it to production-grade, corporate-level professional quality with optimizations", - "lastIndexed": 1772928421679 + "lastIndexed": 1773533422811 }, { "name": "production-scheduling", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/production-scheduling", "description": "Codified expertise for production scheduling, job sequencing, line balancing, changeover optimisation, and bottleneck resolution in discrete and batch manufacturing.", - "lastIndexed": 1772928421704 + "lastIndexed": 1773533422832 }, { "name": "professional-proofreader", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/professional-proofreader", "description": "Use when a user asks to \"proofread\", \"review and correct\", \"fix grammar\", \"improve readability while keeping my voice\", and to proofread a document file and save an updated version.", - "lastIndexed": 1772928421460 + "lastIndexed": 1773533422610 }, { "name": "programmatic-seo", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/programmatic-seo", "description": "Design and evaluate programmatic SEO strategies for creating SEO-driven pages at scale using templates and structured data.", - "lastIndexed": 1772928421617 + "lastIndexed": 1773533422752 + }, + { + "name": "progressive-estimation", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/progressive-estimation", + "description": "Estimate AI-assisted and hybrid human+agent development work with research-backed PERT statistics and calibration feedback loops", + "lastIndexed": 1773533422694 }, { "name": "project-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/project-development", "description": "This skill should be used when the user asks to \"start an LLM project\", \"design batch pipeline\", \"evaluate task-model fit\", \"structure agent project\", or mentions pipeline architecture, agent-assisted development, cost estimation, or choosing...", - "lastIndexed": 1772928421679 + "lastIndexed": 1773533422812 }, { "name": "projection-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/projection-patterns", "description": "Build read models and projections from event streams. Use when implementing CQRS read sides, building materialized views, or optimizing query performance in event-sourced systems.", - "lastIndexed": 1772928421460 + "lastIndexed": 1773533422610 }, { "name": "prometheus-configuration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prometheus-configuration", "description": "Set up Prometheus for comprehensive metric collection, storage, and monitoring of infrastructure and applications. Use when implementing metrics collection, setting up monitoring infrastructure, or...", - "lastIndexed": 1772928421618 + "lastIndexed": 1773533422752 }, { "name": "prompt-caching", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prompt-caching", "description": "Caching strategies for LLM prompts including Anthropic prompt caching, response caching, and CAG (Cache Augmented Generation) Use when: prompt caching, cache prompt, response cache, cag, cache augm...", - "lastIndexed": 1772928421460 + "lastIndexed": 1773533422610 }, { "name": "prompt-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prompt-engineer", "description": "Transforms user prompts into optimized prompts using frameworks (RTF, RISEN, Chain of Thought, RODES, Chain of Density, RACE, RISE, STAR, SOAP, CLEAR, GROW)", - "lastIndexed": 1772928421659 + "lastIndexed": 1773533422794 }, { "name": "prompt-engineering-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prompt-engineering-patterns", "description": "Master advanced prompt engineering techniques to maximize LLM performance, reliability, and controllability in production. Use when optimizing prompts, improving LLM outputs, or designing productio...", - "lastIndexed": 1772928421618 + "lastIndexed": 1773533422752 }, { "name": "prompt-engineering", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prompt-engineering", "description": "Expert guide on prompt engineering patterns, best practices, and optimization techniques. Use when user wants to improve prompts, learn prompting strategies, or debug agent behavior.", - "lastIndexed": 1772928421546 + "lastIndexed": 1773533422694 }, { "name": "prompt-library", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/prompt-library", "description": "Curated collection of high-quality prompts for various use cases. Includes role-based prompts, task-specific templates, and prompt refinement techniques. Use when user needs prompt templates, role-...", - "lastIndexed": 1772928421618 - }, - { - "name": "proof-of-vulnerability", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/proof-of-vulnerability", - "description": "Proof Of Vulnerability", - "lastIndexed": 1772928421460 + "lastIndexed": 1773533422752 }, { "name": "protocol-reverse-engineering", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/protocol-reverse-engineering", "description": "Master network protocol reverse engineering including packet analysis, protocol dissection, and custom protocol documentation. Use when analyzing network traffic, understanding proprietary protocol...", - "lastIndexed": 1772928421460 - }, - { - "name": "publish-and-summary", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/publish-and-summary", - "description": "Publish And Summary", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422610 }, { "name": "pubmed-database", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pubmed-database", "description": "Direct REST API access to PubMed. Advanced Boolean/MeSH queries, E-utilities API, batch processing, citation management. For Python workflows, prefer biopython (Bio.Entrez). Use this for direct HTTP/REST work or custom API implementations.", - "lastIndexed": 1772928421680 + "lastIndexed": 1773533422812 }, { "name": "pydantic-models-py", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pydantic-models-py", "description": "Create Pydantic models following the multi-model pattern with Base, Create, Update, Response, and InDB variants. Use when defining API request/response schemas, database models, or data validation ...", - "lastIndexed": 1772928421461 - }, - { - "name": "pygraphistry", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/pygraphistry", - "description": "Pygraphistry", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422610 }, { "name": "pypict-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/pypict-skill", "description": "Pairwise test generation", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422610 }, { "name": "python-development-python-scaffold", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-development-python-scaffold", "description": "You are a Python project architecture expert specializing in scaffolding production-ready Python applications. Generate complete project structures with modern tooling (uv, FastAPI, Django), type hint", - "lastIndexed": 1772928421618 + "lastIndexed": 1773533422753 }, { "name": "python-fastapi-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-fastapi-development", "description": "Python FastAPI backend development with async patterns, SQLAlchemy, Pydantic, authentication, and production API patterns.", - "lastIndexed": 1772928421546 + "lastIndexed": 1773533422694 }, { "name": "python-packaging", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-packaging", "description": "Create distributable Python packages with proper project structure, setup.py/pyproject.toml, and publishing to PyPI. Use when packaging Python libraries, creating CLI tools, or distributing Python ...", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422611 }, { "name": "python-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-patterns", "description": "Python development principles and decision-making. Framework selection, async patterns, type hints, project structure. Teaches thinking, not copying.", - "lastIndexed": 1772928421618 + "lastIndexed": 1773533422753 }, { "name": "python-performance-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-performance-optimization", "description": "Profile and optimize Python code using cProfile, memory profilers, and performance best practices. Use when debugging slow Python code, optimizing bottlenecks, or improving application performance.", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422611 }, { "name": "python-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-pro", "description": "Master Python 3.12+ with modern features, async programming, performance optimization, and production-ready practices. Expert in the latest Python ecosystem including uv, ruff, pydantic, and FastAPI.", - "lastIndexed": 1772928421619 - }, - { - "name": "python-security-auditor", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/python-security-auditor", - "description": "Python Security Auditor", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422753 }, { "name": "python-testing-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/python-testing-patterns", "description": "Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.", - "lastIndexed": 1772928421461 + "lastIndexed": 1773533422611 }, { "name": "qiskit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/qiskit", "description": "IBM quantum computing framework. Use when targeting IBM Quantum hardware, working with Qiskit Runtime for production workloads, or needing IBM optimization tools. Best for IBM hardware execution, quantum error mitigation, and enterprise quantum computing. For Google hardware...", - "lastIndexed": 1772928421619 + "lastIndexed": 1773533422753 }, { "name": "quality-nonconformance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/quality-nonconformance", "description": "Codified expertise for quality control, non-conformance investigation, root cause analysis, corrective action, and supplier quality management in regulated manufacturing.", - "lastIndexed": 1772928421706 + "lastIndexed": 1773533422835 }, { "name": "quant-analyst", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/quant-analyst", "description": "Build financial models, backtest trading strategies, and analyze market data. Implements risk metrics, portfolio optimization, and statistical arbitrage.", - "lastIndexed": 1772928421462 - }, - { - "name": "quantitative-analysis", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/quantitative-analysis", - "description": "Quantitative Analysis", - "lastIndexed": 1772928421462 + "lastIndexed": 1773533422611 }, { "name": "radix-ui-design-system", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/radix-ui-design-system", "description": "Build accessible design systems with Radix UI primitives. Headless component customization, theming strategies, and compound component patterns for production-grade UI libraries.", - "lastIndexed": 1772928421693 + "lastIndexed": 1773533422824 }, { "name": "rag-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/rag-engineer", "description": "Expert in building Retrieval-Augmented Generation systems. Masters embedding models, vector databases, chunking strategies, and retrieval optimization for LLM applications. Use when: building RAG, ...", - "lastIndexed": 1772928421547 + "lastIndexed": 1773533422695 }, { "name": "rag-implementation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/rag-implementation", "description": "RAG (Retrieval-Augmented Generation) implementation workflow covering embedding selection, vector database setup, chunking strategies, and retrieval optimization.", - "lastIndexed": 1772928421547 - }, - { - "name": "rails-upgrade", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/rails-upgrade", - "description": "Rails Upgrade", - "lastIndexed": 1772928421462 + "lastIndexed": 1773533422695 }, { "name": "react-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-best-practices", "description": "React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance pat...", - "lastIndexed": 1772928421547 + "lastIndexed": 1773533422695 }, { "name": "react-flow-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-flow-architect", "description": "Expert ReactFlow architect for building interactive graph applications with hierarchical node-edge systems, performance optimization, and auto-layout integration. Use when Claude needs to create or...", - "lastIndexed": 1772928421659 + "lastIndexed": 1773533422794 }, { "name": "react-flow-node-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-flow-node-ts", "description": "Create React Flow node components with TypeScript types, handles, and Zustand integration. Use when building custom nodes for React Flow canvas, creating visual workflow editors, or implementing no...", - "lastIndexed": 1772928421462 + "lastIndexed": 1773533422611 }, { "name": "react-modernization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-modernization", "description": "Upgrade React applications to latest versions, migrate from class components to hooks, and adopt concurrent features. Use when modernizing React codebases, migrating to React Hooks, or upgrading to...", - "lastIndexed": 1772928421462 + "lastIndexed": 1773533422611 }, { "name": "react-native-architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-native-architecture", "description": "Build production React Native apps with Expo, navigation, native modules, offline sync, and cross-platform patterns. Use when developing mobile apps, implementing native integrations, or architecti...", - "lastIndexed": 1772928421462 + "lastIndexed": 1773533422611 }, { "name": "react-nextjs-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-nextjs-development", "description": "React and Next.js 14+ application development with App Router, Server Components, TypeScript, Tailwind CSS, and modern frontend patterns.", - "lastIndexed": 1772928421547 + "lastIndexed": 1773533422695 }, { "name": "react-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-patterns", "description": "Modern React patterns and principles. Hooks, composition, performance, TypeScript best practices.", - "lastIndexed": 1772928421547 + "lastIndexed": 1773533422695 }, { "name": "react-state-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-state-management", "description": "Master modern React state management with Redux Toolkit, Zustand, Jotai, and React Query. Use when setting up global state, managing server state, or choosing between state management solutions.", - "lastIndexed": 1772928421659 + "lastIndexed": 1773533422794 }, { "name": "react-ui-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/react-ui-patterns", "description": "Modern React UI patterns for loading states, error handling, and data fetching. Use when building UI components, handling async data, or managing UI states.", - "lastIndexed": 1772928421547 + "lastIndexed": 1773533422695 }, { "name": "readme", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/readme", "description": "When the user wants to create or update a README.md file for a project. Also use when the user says 'write readme,' 'create readme,' 'document this project,' 'project documentation,' or asks for he...", - "lastIndexed": 1772928421693 + "lastIndexed": 1773533422825 + }, + { + "name": "recallmax", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/recallmax", + "description": "FREE — God-tier long-context memory for AI agents. Injects 500K-1M clean tokens, auto-summarizes with tone/intent preservation, compresses 14-turn history into 800 tokens.", + "lastIndexed": 1773533422695 }, { "name": "receiving-code-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/receiving-code-review", "description": "Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performat...", - "lastIndexed": 1772928421619 + "lastIndexed": 1773533422753 }, { "name": "red-team-tactics", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/red-team-tactics", "description": "Red team tactics principles based on MITRE ATT&CK. Attack phases, detection evasion, reporting.", - "lastIndexed": 1772928421548 + "lastIndexed": 1773533422695 }, { "name": "red-team-tools", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/red-team-tools", "description": "This skill should be used when the user asks to \"follow red team methodology\", \"perform bug bounty hunting\", \"automate reconnaissance\", \"hunt for XSS vulnerabilities\", \"enumerate su...", - "lastIndexed": 1772928421619 + "lastIndexed": 1773533422754 }, { "name": "reddit-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/reddit-automation", "description": "Automate Reddit tasks via Rube MCP (Composio): search subreddits, create posts, manage comments, and browse top content. Always search tools first for current schemas.", - "lastIndexed": 1772928421619 + "lastIndexed": 1773533422754 }, { "name": "reference-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/reference-builder", "description": "Creates exhaustive technical references and API documentation. Generates comprehensive parameter listings, configuration guides, and searchable reference materials.", - "lastIndexed": 1772928421548 + "lastIndexed": 1773533422696 }, { "name": "referral-program", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/referral-program", "description": "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of...", - "lastIndexed": 1772928421688 + "lastIndexed": 1773533422819 }, { "name": "rehabilitation-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/rehabilitation-analyzer", "description": "分析康复训练数据、识别康复模式、评估康复进展,并提供个性化康复建议", - "lastIndexed": 1772928421680 + "lastIndexed": 1773533422812 }, { "name": "remotion-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/remotion-best-practices", "description": "Best practices for Remotion - Video creation in React", - "lastIndexed": 1772928421463 + "lastIndexed": 1773533422612 }, { "name": "remotion", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/remotion", "description": "Generate walkthrough videos from Stitch projects using Remotion with smooth transitions, zooming, and text overlays", - "lastIndexed": 1772928421660 + "lastIndexed": 1773533422795 }, { "name": "render-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/render-automation", "description": "Automate Render tasks via Rube MCP (Composio): services, deployments, projects. Always search tools first for current schemas.", - "lastIndexed": 1772928421548 + "lastIndexed": 1773533422696 }, { "name": "requesting-code-review", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/requesting-code-review", "description": "Use when completing tasks, implementing major features, or before merging to verify work meets requirements", - "lastIndexed": 1772928421548 - }, - { - "name": "research-engineer", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/research-engineer", - "description": "Research Engineer", - "lastIndexed": 1772928421463 + "lastIndexed": 1773533422696 }, { "name": "returns-reverse-logistics", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/returns-reverse-logistics", "description": "Codified expertise for returns authorisation, receipt and inspection, disposition decisions, refund processing, fraud detection, and warranty claims management.", - "lastIndexed": 1772928421704 + "lastIndexed": 1773533422832 }, { "name": "reverse-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/reverse-engineer", "description": "Expert reverse engineer specializing in binary analysis, disassembly, decompilation, and software analysis. Masters IDA Pro, Ghidra, radare2, x64dbg, and modern RE toolchains.", - "lastIndexed": 1772928421548 + "lastIndexed": 1773533422696 }, { "name": "risk-manager", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/risk-manager", "description": "Monitor portfolio risk, R-multiples, and position limits. Creates hedging strategies, calculates expectancy, and implements stop-losses.", - "lastIndexed": 1772928421463 + "lastIndexed": 1773533422612 }, { "name": "risk-metrics-calculation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/risk-metrics-calculation", "description": "Calculate portfolio risk metrics including VaR, CVaR, Sharpe, Sortino, and drawdown analysis. Use when measuring portfolio risk, implementing risk limits, or building risk monitoring systems.", - "lastIndexed": 1772928421464 - }, - { - "name": "risk-modeling", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/risk-modeling", - "description": "Risk Modeling", - "lastIndexed": 1772928421464 + "lastIndexed": 1773533422613 }, { "name": "robius-app-architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/robius-app-architecture", "description": "CRITICAL: Use for Robius app architecture patterns. Triggers on:\nTokio, async, submit_async_request, 异步, 架构,\nSignalToUI, Cx::post_action, worker task,\napp structure, MatchEvent, handle_startup", - "lastIndexed": 1772928421620 + "lastIndexed": 1773533422754 }, { "name": "robius-event-action", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/robius-event-action", "description": "CRITICAL: Use for Robius event and action patterns. Triggers on:\ncustom action, MatchEvent, post_action, cx.widget_action,\nhandle_actions, DefaultNone, widget action, event handling,\n事件处理, 自定义动作", - "lastIndexed": 1772928421620 + "lastIndexed": 1773533422754 }, { "name": "robius-matrix-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/robius-matrix-integration", "description": "CRITICAL: Use for Matrix SDK integration with Makepad. Triggers on:\nMatrix SDK, sliding sync, MatrixRequest, timeline,\nmatrix-sdk, matrix client, robrix, matrix room,\nMatrix 集成, 聊天客户端", - "lastIndexed": 1772928421660 + "lastIndexed": 1773533422795 }, { "name": "robius-state-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/robius-state-management", "description": "CRITICAL: Use for Robius state management patterns. Triggers on:\nAppState, persistence, theme switch, 状态管理,\nScope::with_data, save state, load state, serde,\n状态持久化, 主题切换", - "lastIndexed": 1772928421660 + "lastIndexed": 1773533422795 }, { "name": "robius-widget-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/robius-widget-patterns", "description": "CRITICAL: Use for Robius widget patterns. Triggers on:\napply_over, TextOrImage, modal, 可复用, 模态,\ncollapsible, drag drop, reusable widget, widget design,\npageflip, 组件设计, 组件模式", - "lastIndexed": 1772928421620 + "lastIndexed": 1773533422754 }, { "name": "ruby-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ruby-pro", "description": "Write idiomatic Ruby code with metaprogramming, Rails patterns, and performance optimization. Specializes in Ruby on Rails, gem development, and testing frameworks.", - "lastIndexed": 1772928421464 + "lastIndexed": 1773533422613 }, { "name": "rust-async-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/rust-async-patterns", "description": "Master Rust async programming with Tokio, async traits, error handling, and concurrent patterns. Use when building async Rust applications, implementing concurrent systems, or debugging async code.", - "lastIndexed": 1772928421464 + "lastIndexed": 1773533422613 }, { "name": "rust-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/rust-pro", "description": "Master Rust 1.75+ with modern async patterns, advanced type system features, and production-ready systems programming.", - "lastIndexed": 1772928421620 - }, - { - "name": "rust-security-auditor", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/rust-security-auditor", - "description": "Rust Security Auditor", - "lastIndexed": 1772928421464 + "lastIndexed": 1773533422755 }, { "name": "saas-mvp-launcher", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/saas-mvp-launcher", "description": "Use when planning or building a SaaS MVP from scratch. Provides a structured roadmap covering tech stack, architecture, auth, payments, and launch checklist.", - "lastIndexed": 1772928421621 + "lastIndexed": 1773533422755 }, { "name": "saga-orchestration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/saga-orchestration", "description": "Implement saga patterns for distributed transactions and cross-aggregate workflows. Use when coordinating multi-step business processes, handling compensating transactions, or managing long-running...", - "lastIndexed": 1772928421680 + "lastIndexed": 1773533422812 }, { "name": "sales-automator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sales-automator", "description": "Draft cold emails, follow-ups, and proposal templates. Creates\npricing pages, case studies, and sales scripts. Use PROACTIVELY for sales\noutreach or lead nurturing.", - "lastIndexed": 1772928421464 + "lastIndexed": 1773533422613 }, { "name": "salesforce-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/salesforce-automation", "description": "Automate Salesforce tasks via Rube MCP (Composio): leads, contacts, accounts, opportunities, SOQL queries. Always search tools first for current schemas.", - "lastIndexed": 1772928421549 + "lastIndexed": 1773533422696 }, { "name": "salesforce-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/salesforce-development", "description": "Expert patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2nd ...", - "lastIndexed": 1772928421465 + "lastIndexed": 1773533422613 }, { "name": "sam-altman", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sam-altman", "description": "Agente que simula Sam Altman — CEO da OpenAI, ex-presidente da Y Combinator, arquiteto da era AGI. Use quando quiser: perspectivas sobre startups e fundraising (YC playbook completo), visão sobre...", - "lastIndexed": 1772928421710 + "lastIndexed": 1773533422842 + }, + { + "name": "sankhya-dashboard-html-jsp-custom-best-pratices", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/sankhya-dashboard-html-jsp-custom-best-pratices", + "description": "This skill should be used when the user asks for patterns, best practices, creation, or fixing of Sankhya dashboards using HTML, JSP, Java, and SQL.", + "lastIndexed": 1773533422825 }, { "name": "sast-configuration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sast-configuration", "description": "Configure Static Application Security Testing (SAST) tools for automated vulnerability detection in application code. Use when setting up security scanning, implementing DevSecOps practices, or aut...", - "lastIndexed": 1772928421621 + "lastIndexed": 1773533422755 }, { "name": "scala-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/scala-pro", "description": "Master enterprise-grade Scala development with functional programming, distributed systems, and big data processing. Expert in Apache Pekko, Akka, Spark, ZIO/Cats Effect, and reactive architectures.", - "lastIndexed": 1772928421549 + "lastIndexed": 1773533422697 }, { "name": "scanning-tools", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/scanning-tools", "description": "This skill should be used when the user asks to \"perform vulnerability scanning\", \"scan networks for open ports\", \"assess web application security\", \"scan wireless networks\", \"detec...", - "lastIndexed": 1772928421660 + "lastIndexed": 1773533422795 }, { "name": "scanpy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/scanpy", "description": "Standard single-cell RNA-seq analysis pipeline. Use for QC, normalization, dimensionality reduction (PCA/UMAP/t-SNE), clustering, differential expression, and visualization. Best for exploratory scRNA-seq analysis with established workflows. For...", - "lastIndexed": 1772928421661 + "lastIndexed": 1773533422795 }, { "name": "schema-markup", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/schema-markup", "description": "Design, validate, and optimize schema.org structured data for eligibility, correctness, and measurable SEO impact.", - "lastIndexed": 1772928421621 + "lastIndexed": 1773533422755 }, { "name": "scientific-writing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/scientific-writing", "description": "Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD...", - "lastIndexed": 1772928421708 + "lastIndexed": 1773533422836 }, { "name": "scikit-learn", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/scikit-learn", "description": "Machine learning in Python with scikit-learn. Use for classification, regression, clustering, model evaluation, and ML pipelines.", - "lastIndexed": 1772928421661 - }, - { - "name": "scipy", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/scipy", - "description": "Scipy", - "lastIndexed": 1772928421465 + "lastIndexed": 1773533422796 }, { "name": "screen-reader-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/screen-reader-testing", "description": "Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues, or ensuring assistive technology supp...", - "lastIndexed": 1772928421465 + "lastIndexed": 1773533422614 }, { "name": "screenshots", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/screenshots", "description": "Generate marketing screenshots of your app using Playwright. Use when the user wants to create screenshots for Product Hunt, social media, landing pages, or documentation.", - "lastIndexed": 1772928421661 + "lastIndexed": 1773533422796 }, { "name": "scroll-experience", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/scroll-experience", "description": "Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences. Like NY Times interactives, Apple product p...", - "lastIndexed": 1772928421550 + "lastIndexed": 1773533422697 }, { "name": "seaborn", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seaborn", "description": "Statistical visualization with pandas integration. Use for quick exploration of distributions, relationships, and categorical comparisons with attractive defaults. Best for box plots, violin plots, pair plots, heatmaps. Built on matplotlib. For interactive plots use plotly;...", - "lastIndexed": 1772928421693 + "lastIndexed": 1773533422825 }, { "name": "search-specialist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/search-specialist", "description": "Expert web researcher using advanced search techniques and", - "lastIndexed": 1772928421465 + "lastIndexed": 1773533422614 }, { "name": "secrets-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/secrets-management", "description": "Implement secure secrets management for CI/CD pipelines using Vault, AWS Secrets Manager, or native platform solutions. Use when handling sensitive credentials, rotating secrets, or securing CI/CD ...", - "lastIndexed": 1772928421622 + "lastIndexed": 1773533422755 }, { "name": "security-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-audit", "description": "Comprehensive security auditing workflow covering web application testing, API security, penetration testing, vulnerability scanning, and security hardening.", - "lastIndexed": 1772928421550 + "lastIndexed": 1773533422697 }, { "name": "security-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-auditor", "description": "Expert security auditor specializing in DevSecOps, comprehensive cybersecurity, and compliance frameworks.", - "lastIndexed": 1772928421622 + "lastIndexed": 1773533422756 }, { "name": "security-bluebook-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-bluebook-builder", "description": "Create or refine a concise, normative security policy (\"Blue Book\") for sensitive applications. Use when users need a threat model, data classification rules, auth/session policy, logging and audit requirements, retention/deletion expectations, incident response, or security...", - "lastIndexed": 1772928421466 + "lastIndexed": 1773533422614 }, { "name": "security-compliance-compliance-check", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-compliance-compliance-check", "description": "You are a compliance expert specializing in regulatory requirements for software systems including GDPR, HIPAA, SOC2, PCI-DSS, and other industry standards. Perform compliance audits and provide im...", - "lastIndexed": 1772928421466 + "lastIndexed": 1773533422614 }, { "name": "security-requirement-extraction", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-requirement-extraction", "description": "Derive security requirements from threat models and business context. Use when translating threats into actionable requirements, creating security user stories, or building security test cases.", - "lastIndexed": 1772928421466 + "lastIndexed": 1773533422614 }, { "name": "security-scanning-security-dependencies", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-scanning-security-dependencies", "description": "You are a security expert specializing in dependency vulnerability analysis, SBOM generation, and supply chain security. Scan project dependencies across ecosystems to identify vulnerabilities, ass...", - "lastIndexed": 1772928421466 + "lastIndexed": 1773533422614 }, { "name": "security-scanning-security-hardening", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-scanning-security-hardening", "description": "Coordinate multi-layer security scanning and hardening across application, infrastructure, and compliance controls.", - "lastIndexed": 1772928421622 + "lastIndexed": 1773533422756 }, { "name": "security-scanning-security-sast", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security-scanning-security-sast", "description": "Static Application Security Testing (SAST) for code vulnerability\nanalysis across multiple languages and frameworks", - "lastIndexed": 1772928421661 - }, - { - "name": "security-skill-creator", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/security-skill-creator", - "description": "Security Skill Creator", - "lastIndexed": 1772928421466 + "lastIndexed": 1773533422796 }, { "name": "aws-compliance-checker", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security/aws-compliance-checker", "description": "Automated compliance checking against CIS, PCI-DSS, HIPAA, and SOC 2 benchmarks", - "lastIndexed": 1772928421661 + "lastIndexed": 1773533422796 }, { "name": "aws-iam-best-practices", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security/aws-iam-best-practices", "description": "IAM policy review, hardening, and least privilege implementation", - "lastIndexed": 1772928421622 + "lastIndexed": 1773533422756 }, { "name": "aws-secrets-rotation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security/aws-secrets-rotation", "description": "Automate AWS secrets rotation for RDS, API keys, and credentials", - "lastIndexed": 1772928421623 + "lastIndexed": 1773533422756 }, { "name": "aws-security-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/security/aws-security-audit", "description": "Comprehensive AWS security posture assessment using AWS CLI and security best practices", - "lastIndexed": 1772928421623 + "lastIndexed": 1773533422756 + }, + { + "name": "seek-and-analyze-video", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/seek-and-analyze-video", + "description": "Seek and analyze video content using Memories.ai Large Visual Memory Model for persistent video intelligence", + "lastIndexed": 1773533422698 }, { "name": "segment-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/segment-automation", "description": "Automate Segment tasks via Rube MCP (Composio): track events, identify users, manage groups, page views, aliases, batch operations. Always search tools first for current schemas.", - "lastIndexed": 1772928421623 + "lastIndexed": 1773533422756 }, { "name": "segment-cdp", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/segment-cdp", "description": "Expert patterns for Segment Customer Data Platform including Analytics.js, server-side tracking, tracking plans with Protocols, identity resolution, destinations configuration, and data governance ...", - "lastIndexed": 1772928421466 + "lastIndexed": 1773533422615 }, { "name": "semgrep-rule-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/semgrep-rule-creator", "description": "Creates custom Semgrep rules for detecting security vulnerabilities, bug patterns, and code patterns. Use when writing Semgrep rules or building custom static analysis detections.", - "lastIndexed": 1772928421623 + "lastIndexed": 1773533422756 }, { "name": "semgrep-rule-variant-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/semgrep-rule-variant-creator", "description": "Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.", - "lastIndexed": 1772928421623 + "lastIndexed": 1773533422757 }, { "name": "sendgrid-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sendgrid-automation", "description": "Automate SendGrid email operations including sending emails, managing contacts/lists, sender identities, templates, and analytics via Rube MCP (Composio). Always search tools first for current sche...", - "lastIndexed": 1772928421662 + "lastIndexed": 1773533422796 }, { "name": "senior-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/senior-architect", "description": "Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin, Flutter, Postgres, GraphQL, Go, Python. I...", - "lastIndexed": 1772928421551 + "lastIndexed": 1773533422698 + }, + { + "name": "senior-frontend", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/senior-frontend", + "description": "Frontend development skill for React, Next.js, TypeScript, and Tailwind CSS applications. Use when building React components, optimizing Next.js performance, analyzing bundle sizes, scaffolding frontend projects, implementing accessibility, or reviewing frontend code quality.", + "lastIndexed": 1773533422797 }, { "name": "senior-fullstack", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/senior-fullstack", "description": "Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL. Includes project scaffolding, code quality analysis, architec...", - "lastIndexed": 1772928421551 + "lastIndexed": 1773533422698 }, { "name": "sentry-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sentry-automation", "description": "Automate Sentry tasks via Rube MCP (Composio): manage issues/events, configure alerts, track releases, monitor projects and teams. Always search tools first for current schemas.", - "lastIndexed": 1772928421623 + "lastIndexed": 1773533422757 }, { "name": "seo-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-audit", "description": "Diagnose and audit SEO issues affecting crawlability, indexation, rankings, and organic performance.", - "lastIndexed": 1772928421662 + "lastIndexed": 1773533422797 }, { "name": "seo-authority-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-authority-builder", "description": "Analyzes content for E-E-A-T signals and suggests improvements to\nbuild authority and trust. Identifies missing credibility elements. Use\nPROACTIVELY for YMYL topics.", - "lastIndexed": 1772928421551 + "lastIndexed": 1773533422698 }, { "name": "seo-cannibalization-detector", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-cannibalization-detector", "description": "Analyzes multiple provided pages to identify keyword overlap and potential cannibalization issues. Suggests differentiation strategies. Use PROACTIVELY when reviewing similar content.", - "lastIndexed": 1772928421551 + "lastIndexed": 1773533422698 }, { "name": "seo-content-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-content-auditor", "description": "Analyzes provided content for quality, E-E-A-T signals, and SEO best practices. Scores content and provides improvement recommendations based on established guidelines.", - "lastIndexed": 1772928421467 + "lastIndexed": 1773533422615 }, { "name": "seo-content-planner", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-content-planner", "description": "Creates comprehensive content outlines and topic clusters for SEO.\nPlans content calendars and identifies topic gaps. Use PROACTIVELY for content\nstrategy and planning.", - "lastIndexed": 1772928421467 + "lastIndexed": 1773533422615 }, { "name": "seo-content-refresher", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-content-refresher", "description": "Identifies outdated elements in provided content and suggests updates to maintain freshness. Finds statistics, dates, and examples that need updating. Use PROACTIVELY for older content.", - "lastIndexed": 1772928421551 + "lastIndexed": 1773533422698 }, { "name": "seo-content-writer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-content-writer", "description": "Writes SEO-optimized content based on provided keywords and topic briefs. Creates engaging, comprehensive content following best practices. Use PROACTIVELY for content creation tasks.", - "lastIndexed": 1772928421467 + "lastIndexed": 1773533422615 }, { "name": "seo-forensic-incident-response", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-forensic-incident-response", "description": "Investigate sudden drops in organic traffic or rankings and run a structured forensic SEO incident response with triage, root-cause analysis and recovery plan.", - "lastIndexed": 1772928421624 + "lastIndexed": 1773533422757 }, { "name": "seo-fundamentals", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-fundamentals", "description": "Core principles of SEO including E-E-A-T, Core Web Vitals, technical foundations, content quality, and how modern search engines evaluate pages.", - "lastIndexed": 1772928421552 + "lastIndexed": 1773533422699 }, { "name": "seo-keyword-strategist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-keyword-strategist", "description": "Analyzes keyword usage in provided content, calculates density, suggests semantic variations and LSI keywords based on the topic. Prevents over-optimization. Use PROACTIVELY for content optimization.", - "lastIndexed": 1772928421467 + "lastIndexed": 1773533422616 }, { "name": "seo-meta-optimizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-meta-optimizer", "description": "Creates optimized meta titles, descriptions, and URL suggestions based on character limits and best practices. Generates compelling, keyword-rich metadata. Use PROACTIVELY for new content.", - "lastIndexed": 1772928421467 + "lastIndexed": 1773533422616 }, { "name": "seo-snippet-hunter", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-snippet-hunter", "description": "Formats content to be eligible for featured snippets and SERP features. Creates snippet-optimized content blocks based on best practices. Use PROACTIVELY for question-based content.", - "lastIndexed": 1772928421552 + "lastIndexed": 1773533422699 }, { "name": "seo-structure-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/seo-structure-architect", "description": "Analyzes and optimizes content structure including header hierarchy, suggests schema markup, and internal linking opportunities. Creates search-friendly content organization.", - "lastIndexed": 1772928421552 + "lastIndexed": 1773533422699 }, { "name": "server-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/server-management", "description": "Server management principles and decision-making. Process management, monitoring strategy, and scaling decisions. Teaches thinking, not commands.", - "lastIndexed": 1772928421552 + "lastIndexed": 1773533422699 }, { "name": "service-mesh-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/service-mesh-expert", "description": "Expert service mesh architect specializing in Istio, Linkerd, and cloud-native networking patterns. Masters traffic management, security policies, observability integration, and multi-cluster mesh con", - "lastIndexed": 1772928421468 + "lastIndexed": 1773533422616 }, { "name": "service-mesh-observability", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/service-mesh-observability", "description": "Implement comprehensive observability for service meshes including distributed tracing, metrics, and visualization. Use when setting up mesh monitoring, debugging latency issues, or implementing SL...", - "lastIndexed": 1772928421624 + "lastIndexed": 1773533422757 }, { "name": "sexual-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sexual-health-analyzer", "description": "Sexual Health Analyzer", - "lastIndexed": 1772928421705 + "lastIndexed": 1773533422833 + }, + { + "name": "shadcn", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/shadcn", + "description": "Manages shadcn/ui components and projects, providing context, documentation, and usage patterns for building modern design systems.", + "lastIndexed": 1773533422813 }, { "name": "shader-programming-glsl", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/shader-programming-glsl", "description": "Expert guide for writing efficient GLSL shaders (Vertex/Fragment) for web and game engines, covering syntax, uniforms, and common effects.", - "lastIndexed": 1772928421552 + "lastIndexed": 1773533422699 }, { "name": "sharp-edges", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sharp-edges", "description": "sharp-edges", - "lastIndexed": 1772928421662 + "lastIndexed": 1773533422797 }, { "name": "shellcheck-configuration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/shellcheck-configuration", "description": "Master ShellCheck static analysis configuration and usage for shell script quality. Use when setting up linting infrastructure, fixing code issues, or ensuring script portability.", - "lastIndexed": 1772928421624 + "lastIndexed": 1773533422757 }, { "name": "shodan-reconnaissance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/shodan-reconnaissance", "description": "This skill should be used when the user asks to \"search for exposed devices on the internet,\" \"perform Shodan reconnaissance,\" \"find vulnerable services using Shodan,\" \"scan IP ranges...", - "lastIndexed": 1772928421662 + "lastIndexed": 1773533422797 }, { "name": "shopify-apps", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/shopify-apps", "description": "Expert patterns for Shopify app development including Remix/React Router apps, embedded apps with App Bridge, webhook handling, GraphQL Admin API, Polaris components, billing, and app extensions. U...", - "lastIndexed": 1772928421468 + "lastIndexed": 1773533422617 }, { "name": "shopify-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/shopify-automation", "description": "Automate Shopify tasks via Rube MCP (Composio): products, orders, customers, inventory, collections. Always search tools first for current schemas.", - "lastIndexed": 1772928421553 + "lastIndexed": 1773533422699 }, { "name": "shopify-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/shopify-development", "description": "Build Shopify apps, extensions, themes using GraphQL Admin API, Shopify CLI, Polaris UI, and Liquid.", - "lastIndexed": 1772928421624 + "lastIndexed": 1773533422758 }, { "name": "signup-flow-cro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/signup-flow-cro", "description": "When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions \"signup conversions,\" \"registration friction,\" \"signup...", - "lastIndexed": 1772928421662 + "lastIndexed": 1773533422797 }, { "name": "similarity-search-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/similarity-search-patterns", "description": "Implement efficient similarity search with vector databases. Use when building semantic search, implementing nearest neighbor queries, or optimizing retrieval performance.", - "lastIndexed": 1772928421468 + "lastIndexed": 1773533422617 + }, + { + "name": "skill-check", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/skill-check", + "description": "Validate Claude Code skills against the agentskills specification. Catches structural, semantic, and naming issues before users do.", + "lastIndexed": 1773533422700 }, { "name": "skill-creator-ms", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-creator-ms", "description": "Guide for creating effective skills for AI coding agents working with Azure SDKs and Microsoft Foundry services. Use when creating new skills or updating existing skills.", - "lastIndexed": 1772928421688 + "lastIndexed": 1773533422820 }, { "name": "skill-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-creator", "description": "This skill should be used when the user asks to create a new skill, build a skill, make a custom skill, develop a CLI skill, or wants to extend the CLI with new capabilities. Automates the entire s...", - "lastIndexed": 1772928421689 + "lastIndexed": 1773533422820 }, { "name": "skill-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-developer", "description": "Create and manage Claude Code skills following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skil...", - "lastIndexed": 1772928421663 + "lastIndexed": 1773533422797 }, { "name": "skill-improver", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-improver", "description": "Iteratively reviews and fixes Claude Code skill quality issues until they meet standards. Runs automated fix-review cycles using the skill-reviewer agent. Use to fix skill quality issues, improve skill descriptions, run automated skill review loops, or iteratively refine a...", - "lastIndexed": 1772928421553 + "lastIndexed": 1773533422700 }, { "name": "skill-installer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-installer", "description": "Instala, valida, registra e verifica novas skills no ecossistema. 10 checks de seguranca, copia, registro no orchestrator e verificacao pos-instalacao.", - "lastIndexed": 1772928421625 + "lastIndexed": 1773533422758 }, { "name": "skill-rails-upgrade", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-rails-upgrade", "description": "Analyze Rails apps and provide upgrade assessments", - "lastIndexed": 1772928421663 + "lastIndexed": 1773533422798 }, { "name": "skill-router", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-router", "description": "Use when the user is unsure which skill to use or where to start. Interviews the user with targeted questions and recommends the best skill(s) from the installed library for their goal.", - "lastIndexed": 1772928421625 + "lastIndexed": 1773533422758 }, { "name": "skill-scanner", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-scanner", "description": "Scan agent skills for security issues. Use when asked to \"scan a skill\", \"audit a skill\", \"review skill security\", \"check skill for injection\", \"validate SKILL.md\", or assess whether an agent skill is safe to install. Checks for prompt injection, malicious scripts,...", - "lastIndexed": 1772928421625 + "lastIndexed": 1773533422758 }, { "name": "skill-seekers", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-seekers", "description": "-Automatically convert documentation websites, GitHub repositories, and PDFs into Claude AI skills in minutes.", - "lastIndexed": 1772928421469 + "lastIndexed": 1773533422618 }, { "name": "skill-sentinel", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-sentinel", "description": "Auditoria e evolucao do ecossistema de skills. Qualidade de codigo, seguranca, custos, gaps, duplicacoes, dependencias e relatorios de saude.", - "lastIndexed": 1772928421626 + "lastIndexed": 1773533422759 }, { "name": "skill-writer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skill-writer", "description": "Create and improve agent skills following the Agent Skills specification. Use when asked to create, write, or update skills.", - "lastIndexed": 1772928421553 + "lastIndexed": 1773533422700 }, { "name": "skin-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/skin-health-analyzer", "description": "Analyze skin health data, identify skin problem patterns, assess skin health status. Supports correlation analysis with nutrition, chronic diseases, and medication data.", - "lastIndexed": 1772928421694 + "lastIndexed": 1773533422825 }, { "name": "slack-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/slack-automation", "description": "Automate Slack messaging, channel management, search, reactions, and threads via Rube MCP (Composio). Send messages, search conversations, manage channels/users, and react to messages programmatica...", - "lastIndexed": 1772928421626 + "lastIndexed": 1773533422759 }, { "name": "slack-bot-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/slack-bot-builder", "description": "Build Slack apps using the Bolt framework across Python, JavaScript, and Java. Covers Block Kit for rich UIs, interactive components, slash commands, event handling, OAuth installation flows, and W...", - "lastIndexed": 1772928421626 + "lastIndexed": 1773533422759 }, { "name": "slack-gif-creator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/slack-gif-creator", "description": "Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"...", - "lastIndexed": 1772928421626 + "lastIndexed": 1773533422759 }, { "name": "sleep-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sleep-analyzer", "description": "分析睡眠数据、识别睡眠模式、评估睡眠质量,并提供个性化睡眠改善建议。支持与其他健康数据的关联分析。", - "lastIndexed": 1772928421694 + "lastIndexed": 1773533422825 }, { "name": "slo-implementation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/slo-implementation", "description": "Define and implement Service Level Indicators (SLIs) and Service Level Objectives (SLOs) with error budgets and alerting. Use when establishing reliability targets, implementing SRE practices, or m...", - "lastIndexed": 1772928421626 + "lastIndexed": 1773533422759 }, { "name": "smtp-penetration-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/smtp-penetration-testing", "description": "This skill should be used when the user asks to \"perform SMTP penetration testing\", \"enumerate email users\", \"test for open mail relays\", \"grab SMTP banners\", \"brute force email cre...", - "lastIndexed": 1772928421663 + "lastIndexed": 1773533422798 }, { "name": "social-content", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/social-content", "description": "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn...", - "lastIndexed": 1772928421700 + "lastIndexed": 1773533422829 }, { "name": "social-orchestrator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/social-orchestrator", "description": "Orquestrador unificado de canais sociais — coordena Instagram, Telegram e WhatsApp em um unico fluxo de trabalho. Publicacao cross-channel, metricas unificadas, reutilizacao de conteudo por...", - "lastIndexed": 1772928421626 + "lastIndexed": 1773533422759 }, { "name": "software-architecture", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/software-architecture", "description": "Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.", - "lastIndexed": 1772928421554 + "lastIndexed": 1773533422700 }, { "name": "solidity-security", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/solidity-security", "description": "Master smart contract security best practices to prevent common vulnerabilities and implement secure Solidity patterns. Use when writing smart contracts, auditing existing contracts, or implementin...", - "lastIndexed": 1772928421469 + "lastIndexed": 1773533422618 }, { "name": "spark-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/spark-optimization", "description": "Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning. Use when improving Spark performance, debugging slow jobs, or scaling data processing pipelines.", - "lastIndexed": 1772928421664 + "lastIndexed": 1773533422798 }, { "name": "spec-to-code-compliance", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/spec-to-code-compliance", "description": "Verifies code implements exactly what documentation specifies for blockchain audits. Use when comparing code against whitepapers, finding gaps between specs and implementation, or performing compliance checks for protocol implementations.", - "lastIndexed": 1772928421664 + "lastIndexed": 1773533422798 }, { "name": "speckit-updater", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/speckit-updater", "description": "SpecKit Safe Update", - "lastIndexed": 1772928421627 + "lastIndexed": 1773533422760 }, { "name": "speed", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/speed", "description": "Launch RSVP speed reader for text", - "lastIndexed": 1772928421469 + "lastIndexed": 1773533422618 }, { "name": "spline-3d-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/spline-3d-integration", "description": "Use when adding interactive 3D scenes from Spline.design to web projects, including React embedding and runtime control API.", - "lastIndexed": 1772928421554 + "lastIndexed": 1773533422701 }, { "name": "sql-injection-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sql-injection-testing", "description": "This skill should be used when the user asks to \"test for SQL injection vulnerabilities\", \"perform SQLi attacks\", \"bypass authentication using SQL injection\", \"extract database inform...", - "lastIndexed": 1772928421664 + "lastIndexed": 1773533422798 }, { "name": "sql-optimization-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sql-optimization-patterns", "description": "Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database...", - "lastIndexed": 1772928421470 + "lastIndexed": 1773533422618 }, { "name": "sql-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sql-pro", "description": "Master modern SQL with cloud-native databases, OLTP/OLAP optimization, and advanced query techniques. Expert in performance tuning, data modeling, and hybrid analytical systems.", - "lastIndexed": 1772928421627 + "lastIndexed": 1773533422760 }, { "name": "sqlmap-database-pentesting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sqlmap-database-pentesting", "description": "This skill should be used when the user asks to \"automate SQL injection testing,\" \"enumerate database structure,\" \"extract database credentials using sqlmap,\" \"dump tables and columns...", - "lastIndexed": 1772928421627 + "lastIndexed": 1773533422760 }, { "name": "square-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/square-automation", "description": "Automate Square tasks via Rube MCP (Composio): payments, orders, invoices, locations. Always search tools first for current schemas.", - "lastIndexed": 1772928421555 + "lastIndexed": 1773533422701 }, { "name": "sred-project-organizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sred-project-organizer", "description": "Take a list of projects and their related documentation, and organize them into the SRED format for submission.", - "lastIndexed": 1772928421555 + "lastIndexed": 1773533422701 }, { "name": "sred-work-summary", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sred-work-summary", "description": "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.", - "lastIndexed": 1772928421555 + "lastIndexed": 1773533422701 }, { "name": "ssh-penetration-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ssh-penetration-testing", "description": "This skill should be used when the user asks to \"pentest SSH services\", \"enumerate SSH configurations\", \"brute force SSH credentials\", \"exploit SSH vulnerabilities\", \"perform SSH tu...", - "lastIndexed": 1772928421664 + "lastIndexed": 1773533422799 }, { "name": "stability-ai", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/stability-ai", "description": "Geracao de imagens via Stability AI (SD3.5, Ultra, Core). Text-to-image, img2img, inpainting, upscale, remove-bg, search-replace. 15 estilos artisticos.", - "lastIndexed": 1772928421628 + "lastIndexed": 1773533422760 }, { "name": "startup-analyst", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/startup-analyst", "description": "Expert startup business analyst specializing in market sizing, financial modeling, competitive analysis, and strategic planning for early-stage companies.", - "lastIndexed": 1772928421664 + "lastIndexed": 1773533422799 }, { "name": "startup-business-analyst-business-case", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/startup-business-analyst-business-case", "description": "Generate comprehensive investor-ready business case document with\nmarket, solution, financials, and strategy", - "lastIndexed": 1772928421664 + "lastIndexed": 1773533422799 }, { "name": "startup-business-analyst-financial-projections", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/startup-business-analyst-financial-projections", "description": "Create detailed 3-5 year financial model with revenue, costs, cash\nflow, and scenarios", - "lastIndexed": 1772928421628 + "lastIndexed": 1773533422761 }, { "name": "startup-business-analyst-market-opportunity", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/startup-business-analyst-market-opportunity", "description": "Generate comprehensive market opportunity analysis with TAM/SAM/SOM\ncalculations", - "lastIndexed": 1772928421628 + "lastIndexed": 1773533422761 }, { "name": "startup-financial-modeling", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/startup-financial-modeling", "description": "This skill should be used when the user asks to \\\\\\\"create financial projections\", \"build a financial model\", \"forecast revenue\", \"calculate burn rate\", \"estimate runway\", \"model cash flow\", or...", - "lastIndexed": 1772928421665 + "lastIndexed": 1773533422799 }, { "name": "startup-metrics-framework", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/startup-metrics-framework", "description": "This skill should be used when the user asks about \\\\\\\"key startup metrics\", \"SaaS metrics\", \"CAC and LTV\", \"unit economics\", \"burn multiple\", \"rule of 40\", \"marketplace metrics\", or requests...", - "lastIndexed": 1772928421470 - }, - { - "name": "static-analysis", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/static-analysis", - "description": "Static Analysis", - "lastIndexed": 1772928421470 + "lastIndexed": 1773533422619 }, { "name": "statsmodels", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/statsmodels", "description": "Statistical models library for Python. Use when you need specific model classes (OLS, GLM, mixed models, ARIMA) with detailed diagnostics, residuals, and inference. Best for econometrics, time series, rigorous inference with coefficient tables. For...", - "lastIndexed": 1772928421694 + "lastIndexed": 1773533422826 }, { "name": "steve-jobs", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/steve-jobs", "description": "Agente que simula Steve Jobs — cofundador da Apple, CEO da Pixar, fundador da NeXT, o maior designer de produtos tecnologicos da historia e o mais influente apresentador de produtos do mundo. Use...", - "lastIndexed": 1772928421707 + "lastIndexed": 1773533422835 }, { "name": "stitch-loop", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/stitch-loop", "description": "Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern", - "lastIndexed": 1772928421665 + "lastIndexed": 1773533422799 }, { "name": "stitch-ui-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/stitch-ui-design", "description": "Expert guide for creating effective prompts for Google Stitch AI UI design tool. Use when user wants to design UI/UX in Stitch, create app interfaces, generate mobile/web designs, or needs help cra...", - "lastIndexed": 1772928421665 + "lastIndexed": 1773533422799 }, { "name": "stride-analysis-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/stride-analysis-patterns", "description": "Apply STRIDE methodology to systematically identify threats. Use when analyzing system security, conducting threat modeling sessions, or creating security documentation.", - "lastIndexed": 1772928421470 + "lastIndexed": 1773533422619 }, { "name": "stripe-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/stripe-automation", "description": "Automate Stripe tasks via Rube MCP (Composio): customers, charges, subscriptions, invoices, products, refunds. Always search tools first for current schemas.", - "lastIndexed": 1772928421556 + "lastIndexed": 1773533422702 }, { "name": "stripe-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/stripe-integration", "description": "Implement Stripe payment processing for robust, PCI-compliant payment flows including checkout, subscriptions, and webhooks. Use when integrating Stripe payments, building subscription systems, or ...", - "lastIndexed": 1772928421665 + "lastIndexed": 1773533422799 }, { "name": "subagent-driven-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/subagent-driven-development", "description": "Use when executing implementation plans with independent tasks in the current session", - "lastIndexed": 1772928421629 + "lastIndexed": 1773533422762 }, { "name": "supabase-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/supabase-automation", "description": "Automate Supabase database queries, table management, project administration, storage, edge functions, and SQL execution via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421665 + "lastIndexed": 1773533422800 }, { "name": "superpowers-lab", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/superpowers-lab", "description": "Lab environment for Claude superpowers", - "lastIndexed": 1772928421471 + "lastIndexed": 1773533422619 }, { "name": "supply-chain-risk-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/supply-chain-risk-auditor", "description": "Identifies dependencies at heightened risk of exploitation or takeover. Use when assessing supply chain attack surface, evaluating dependency health, or scoping security engagements.", - "lastIndexed": 1772928421556 + "lastIndexed": 1773533422702 }, { "name": "swiftui-expert-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/swiftui-expert-skill", "description": "Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, and iOS 26+ Liquid Glass adoption. Use when building new SwiftUI features, refactoring existing views, reviewing code quality, or adopting modern SwiftUI patterns.", - "lastIndexed": 1772928421665 + "lastIndexed": 1773533422800 }, { "name": "sympy", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/sympy", "description": "Use this skill when working with symbolic mathematics in Python. This skill should be used for symbolic computation tasks including solving equations algebraically, performing calculus operations (derivatives, integrals, limits), manipulating algebraic expressions, working...", - "lastIndexed": 1772928421666 + "lastIndexed": 1773533422800 }, { "name": "systematic-debugging", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/systematic-debugging", "description": "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes", - "lastIndexed": 1772928421666 + "lastIndexed": 1773533422800 }, { "name": "systems-programming-rust-project", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/systems-programming-rust-project", "description": "You are a Rust project architecture expert specializing in scaffolding production-ready Rust applications. Generate complete project structures with cargo tooling, proper module organization, testing", - "lastIndexed": 1772928421629 + "lastIndexed": 1773533422762 }, { "name": "tailwind-design-system", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tailwind-design-system", "description": "Build scalable design systems with Tailwind CSS, design tokens, component libraries, and responsive patterns. Use when creating component libraries, implementing design systems, or standardizing UI...", - "lastIndexed": 1772928421471 + "lastIndexed": 1773533422620 }, { "name": "tailwind-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tailwind-patterns", "description": "Tailwind CSS v4 principles. CSS-first configuration, container queries, modern patterns, design token architecture.", - "lastIndexed": 1772928421629 + "lastIndexed": 1773533422762 }, { "name": "tanstack-query-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tanstack-query-expert", "description": "Expert in TanStack Query (React Query) — asynchronous state management. Covers data fetching, stale time configuration, mutations, optimistic updates, and Next.js App Router (SSR) integration.", - "lastIndexed": 1772928421629 + "lastIndexed": 1773533422763 }, { "name": "task-intelligence", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/task-intelligence", "description": "Protocolo de Inteligência Pré-Tarefa — ativa TODOS os agentes relevantes do ecossistema ANTES de executar qualquer tarefa solicitada pelo usuário. Enriquece o contexto com análise paralela...", - "lastIndexed": 1772928421666 + "lastIndexed": 1773533422800 }, { "name": "tavily-web", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tavily-web", "description": "Web search, content extraction, crawling, and research capabilities using Tavily API", - "lastIndexed": 1772928421471 + "lastIndexed": 1773533422620 }, { "name": "tcm-constitution-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tcm-constitution-analyzer", "description": "分析中医体质数据、识别体质类型、评估体质特征,并提供个性化养生建议。支持与营养、运动、睡眠等健康数据的关联分析。", - "lastIndexed": 1772928421681 + "lastIndexed": 1773533422813 }, { "name": "tdd-orchestrator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tdd-orchestrator", "description": "Master TDD orchestrator specializing in red-green-refactor discipline, multi-agent workflow coordination, and comprehensive test-driven development practices.", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422763 }, { "name": "tdd-workflow", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tdd-workflow", "description": "Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle.", - "lastIndexed": 1772928421557 + "lastIndexed": 1773533422702 }, { "name": "tdd-workflows-tdd-cycle", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tdd-workflows-tdd-cycle", "description": "Use when working with tdd workflows tdd cycle", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422763 }, { "name": "tdd-workflows-tdd-green", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tdd-workflows-tdd-green", "description": "Implement the minimal code needed to make failing tests pass in the TDD green phase.", - "lastIndexed": 1772928421472 + "lastIndexed": 1773533422620 }, { "name": "tdd-workflows-tdd-red", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tdd-workflows-tdd-red", "description": "Generate failing tests for the TDD red phase to define expected behavior and edge cases.", - "lastIndexed": 1772928421557 + "lastIndexed": 1773533422703 }, { "name": "tdd-workflows-tdd-refactor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tdd-workflows-tdd-refactor", "description": "Use when working with tdd workflows tdd refactor", - "lastIndexed": 1772928421557 + "lastIndexed": 1773533422703 }, { "name": "team-collaboration-issue", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/team-collaboration-issue", "description": "You are a GitHub issue resolution expert specializing in systematic bug investigation, feature implementation, and collaborative development workflows. Your expertise spans issue triage, root cause an", - "lastIndexed": 1772928421472 + "lastIndexed": 1773533422620 }, { "name": "team-collaboration-standup-notes", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/team-collaboration-standup-notes", "description": "You are an expert team communication specialist focused on async-first standup practices, AI-assisted note generation from commit history, and effective remote team coordination patterns.", - "lastIndexed": 1772928421472 + "lastIndexed": 1773533422620 }, { "name": "team-composition-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/team-composition-analysis", "description": "This skill should be used when the user asks to \\\\\\\"plan team structure\", \"determine hiring needs\", \"design org chart\", \"calculate compensation\", \"plan equity allocation\", or requests...", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422763 }, { "name": "telegram-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/telegram-automation", "description": "Automate Telegram tasks via Rube MCP (Composio): send messages, manage chats, share photos/documents, and handle bot commands. Always search tools first for current schemas.", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422763 }, { "name": "telegram-bot-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/telegram-bot-builder", "description": "Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategie...", - "lastIndexed": 1772928421557 + "lastIndexed": 1773533422703 }, { "name": "telegram-mini-app", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/telegram-mini-app", "description": "Expert in building Telegram Mini Apps (TWA) - web apps that run inside Telegram with native-like experience. Covers the TON ecosystem, Telegram Web App API, payments, user authentication, and build...", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422764 }, { "name": "telegram", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/telegram", "description": "Integracao completa com Telegram Bot API. Setup com BotFather, mensagens, webhooks, inline keyboards, grupos, canais. Boilerplates Node.js e Python.", - "lastIndexed": 1772928421681 + "lastIndexed": 1773533422813 }, { "name": "temporal-golang-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/temporal-golang-pro", "description": "Use when building durable distributed systems with Temporal Go SDK. Covers deterministic workflow rules, mTLS worker configs, and advanced patterns.", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422764 }, { "name": "temporal-python-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/temporal-python-pro", "description": "Master Temporal workflow orchestration with Python SDK. Implements durable workflows, saga patterns, and distributed transactions. Covers async/await, testing strategies, and production deployment.", - "lastIndexed": 1772928421630 + "lastIndexed": 1773533422764 }, { "name": "temporal-python-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/temporal-python-testing", "description": "Test Temporal workflows with pytest, time-skipping, and mocking strategies. Covers unit testing, integration testing, replay testing, and local development setup. Use when implementing Temporal wor...", - "lastIndexed": 1772928421557 + "lastIndexed": 1773533422703 }, { "name": "terraform-aws-modules", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/terraform-aws-modules", "description": "Terraform module creation for AWS — reusable modules, state management, and HCL best practices. Use when building or reviewing Terraform AWS infrastructure.", - "lastIndexed": 1772928421472 + "lastIndexed": 1773533422621 }, { "name": "terraform-infrastructure", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/terraform-infrastructure", "description": "Terraform infrastructure as code workflow for provisioning cloud resources, creating reusable modules, and managing infrastructure at scale.", - "lastIndexed": 1772928421472 + "lastIndexed": 1773533422621 }, { "name": "terraform-module-library", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/terraform-module-library", "description": "Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, ...", - "lastIndexed": 1772928421558 + "lastIndexed": 1773533422704 }, { "name": "terraform-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/terraform-skill", "description": "Terraform infrastructure as code best practices", - "lastIndexed": 1772928421681 + "lastIndexed": 1773533422814 }, { "name": "terraform-specialist", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/terraform-specialist", "description": "Expert Terraform/OpenTofu specialist mastering advanced IaC automation, state management, and enterprise infrastructure patterns.", - "lastIndexed": 1772928421631 + "lastIndexed": 1773533422764 }, { "name": "test-automator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/test-automator", "description": "Master AI-powered test automation with modern frameworks, self-healing tests, and comprehensive quality engineering. Build scalable testing strategies with advanced CI/CD integration.", - "lastIndexed": 1772928421631 + "lastIndexed": 1773533422764 }, { "name": "test-driven-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/test-driven-development", "description": "Use when implementing any feature or bugfix, before writing implementation code", - "lastIndexed": 1772928421667 + "lastIndexed": 1773533422801 }, { "name": "test-fixing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/test-fixing", "description": "Run tests and systematically fix all failing tests using smart error grouping. Use when user asks to fix failing tests, mentions test failures, runs test suite and failures occur, or requests to ma...", - "lastIndexed": 1772928421558 - }, - { - "name": "testing-handbook-skills", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/testing-handbook-skills", - "description": "Testing Handbook Skills", - "lastIndexed": 1772928421473 + "lastIndexed": 1773533422704 }, { "name": "testing-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/testing-patterns", "description": "Jest testing patterns, factory functions, mocking strategies, and TDD workflow. Use when writing unit tests, creating test factories, or following TDD red-green-refactor cycle.", - "lastIndexed": 1772928421558 + "lastIndexed": 1773533422704 }, { "name": "testing-qa", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/testing-qa", "description": "Comprehensive testing and QA workflow covering unit testing, integration testing, E2E testing, browser automation, and quality assurance.", - "lastIndexed": 1772928421558 + "lastIndexed": 1773533422704 }, { "name": "theme-factory", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/theme-factory", "description": "Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifac...", - "lastIndexed": 1772928421558 + "lastIndexed": 1773533422704 }, { "name": "threat-mitigation-mapping", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threat-mitigation-mapping", "description": "Map identified threats to appropriate security controls and mitigations. Use when prioritizing security investments, creating remediation plans, or validating control effectiveness.", - "lastIndexed": 1772928421473 + "lastIndexed": 1773533422621 }, { "name": "threat-modeling-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threat-modeling-expert", "description": "Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...", - "lastIndexed": 1772928421473 + "lastIndexed": 1773533422621 }, { "name": "threejs-animation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-animation", "description": "Three.js animation - keyframe animation, skeletal animation, morph targets, animation mixing. Use when animating objects, playing GLTF animations, creating procedural motion, or blending animations.", - "lastIndexed": 1772928421631 + "lastIndexed": 1773533422765 }, { "name": "threejs-fundamentals", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-fundamentals", "description": "Three.js scene setup, cameras, renderer, Object3D hierarchy, coordinate systems. Use when setting up 3D scenes, creating cameras, configuring renderers, managing object hierarchies, or working with transforms.", - "lastIndexed": 1772928421667 + "lastIndexed": 1773533422801 }, { "name": "threejs-geometry", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-geometry", "description": "Three.js geometry creation - built-in shapes, BufferGeometry, custom geometry, instancing. Use when creating 3D shapes, working with vertices, building custom meshes, or optimizing with instanced rendering.", - "lastIndexed": 1772928421631 + "lastIndexed": 1773533422765 }, { "name": "threejs-interaction", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-interaction", "description": "Three.js interaction - raycasting, controls, mouse/touch input, object selection. Use when handling user input, implementing click detection, adding camera controls, or creating interactive 3D experiences.", - "lastIndexed": 1772928421667 + "lastIndexed": 1773533422801 }, { "name": "threejs-lighting", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-lighting", "description": "Three.js lighting - light types, shadows, environment lighting. Use when adding lights, configuring shadows, setting up IBL, or optimizing lighting performance.", - "lastIndexed": 1772928421631 + "lastIndexed": 1773533422765 }, { "name": "threejs-loaders", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-loaders", "description": "Three.js asset loading - GLTF, textures, images, models, async patterns. Use when loading 3D models, textures, HDR environments, or managing loading progress.", - "lastIndexed": 1772928421667 + "lastIndexed": 1773533422801 }, { "name": "threejs-materials", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-materials", "description": "Three.js materials - PBR, basic, phong, shader materials, material properties. Use when styling meshes, working with textures, creating custom shaders, or optimizing material performance.", - "lastIndexed": 1772928421667 + "lastIndexed": 1773533422801 }, { "name": "threejs-postprocessing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-postprocessing", "description": "Three.js post-processing - EffectComposer, bloom, DOF, screen effects. Use when adding visual effects, color grading, blur, glow, or creating custom screen-space shaders.", - "lastIndexed": 1772928421632 + "lastIndexed": 1773533422765 }, { "name": "threejs-shaders", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-shaders", "description": "Three.js shaders - GLSL, ShaderMaterial, uniforms, custom effects. Use when creating custom visual effects, modifying vertices, writing fragment shaders, or extending built-in materials.", - "lastIndexed": 1772928421632 + "lastIndexed": 1773533422765 }, { "name": "threejs-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-skills", "description": "Create 3D scenes, interactive experiences, and visual effects using Three.js. Use when user requests 3D graphics, WebGL experiences, 3D visualizations, animations, or interactive 3D elements.", - "lastIndexed": 1772928421689 + "lastIndexed": 1773533422820 }, { "name": "threejs-textures", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/threejs-textures", "description": "Three.js textures - texture types, UV mapping, environment maps, texture settings. Use when working with images, UV coordinates, cubemaps, HDR environments, or texture optimization.", - "lastIndexed": 1772928421667 + "lastIndexed": 1773533422801 }, { "name": "tiktok-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tiktok-automation", "description": "Automate TikTok tasks via Rube MCP (Composio): upload/publish videos, post photos, manage content, and view user profiles/stats. Always search tools first for current schemas.", - "lastIndexed": 1772928421632 + "lastIndexed": 1773533422765 }, { "name": "todoist-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/todoist-automation", "description": "Automate Todoist task management, projects, sections, filtering, and bulk operations via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421668 + "lastIndexed": 1773533422801 }, { "name": "tool-design", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tool-design", "description": "Build tools that agents can use effectively, including architectural reduction patterns", - "lastIndexed": 1772928421682 + "lastIndexed": 1773533422814 + }, + { + "name": "tool-use-guardian", + "registry": "sickn33/antigravity-awesome-skills", + "path": "skills/tool-use-guardian", + "description": "FREE — Intelligent tool-call reliability wrapper. Monitors, retries, fixes, and learns from tool failures. Auto-recovers from truncated JSON, timeouts, rate limits, and mid-chain failures.", + "lastIndexed": 1773533422705 }, { "name": "top-web-vulnerabilities", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/top-web-vulnerabilities", "description": "This skill should be used when the user asks to \"identify web application vulnerabilities\", \"explain common security flaws\", \"understand vulnerability categories\", \"learn about inject...", - "lastIndexed": 1772928421694 + "lastIndexed": 1773533422826 }, { "name": "track-management", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/track-management", "description": "Use this skill when creating, managing, or working with Conductor tracks - the logical work units for features, bugs, and refactors. Applies to spec.md, plan.md, and track lifecycle operations.", - "lastIndexed": 1772928421474 + "lastIndexed": 1773533422622 }, { "name": "travel-health-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/travel-health-analyzer", "description": "分析旅行健康数据、评估目的地健康风险、提供疫苗接种建议、生成多语言紧急医疗信息卡片。支持WHO/CDC数据集成的专业级旅行健康风险评估。", - "lastIndexed": 1772928421668 + "lastIndexed": 1773533422802 }, { "name": "trello-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/trello-automation", "description": "Automate Trello boards, cards, and workflows via Rube MCP (Composio). Create cards, manage lists, assign members, and search across boards programmatically.", - "lastIndexed": 1772928421632 + "lastIndexed": 1773533422766 }, { "name": "trigger-dev", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/trigger-dev", "description": "Trigger.dev expert for background jobs, AI workflows, and reliable async execution with excellent developer experience and TypeScript-first design. Use when: trigger.dev, trigger dev, background ta...", - "lastIndexed": 1772928421474 + "lastIndexed": 1773533422622 }, { "name": "turborepo-caching", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/turborepo-caching", "description": "Configure Turborepo for efficient monorepo builds with local and remote caching. Use when setting up Turborepo, optimizing build pipelines, or implementing distributed caching.", - "lastIndexed": 1772928421633 + "lastIndexed": 1773533422766 }, { "name": "tutorial-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/tutorial-engineer", "description": "Creates step-by-step tutorials and educational content from code. Transforms complex concepts into progressive learning experiences with hands-on examples.", - "lastIndexed": 1772928421682 + "lastIndexed": 1773533422814 }, { "name": "twilio-communications", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/twilio-communications", "description": "Build communication features with Twilio: SMS messaging, voice calls, WhatsApp Business API, and user verification (2FA). Covers the full spectrum from simple notifications to complex IVR systems a...", - "lastIndexed": 1772928421633 + "lastIndexed": 1773533422766 }, { "name": "twitter-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/twitter-automation", "description": "Automate Twitter/X tasks via Rube MCP (Composio): posts, search, users, bookmarks, lists, media. Always search tools first for current schemas.", - "lastIndexed": 1772928421633 + "lastIndexed": 1773533422766 }, { "name": "typescript-advanced-types", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/typescript-advanced-types", "description": "Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex...", - "lastIndexed": 1772928421474 + "lastIndexed": 1773533422622 }, { "name": "typescript-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/typescript-expert", "description": "TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.", - "lastIndexed": 1772928421682 + "lastIndexed": 1773533422814 }, { "name": "typescript-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/typescript-pro", "description": "Master TypeScript with advanced types, generics, and strict type safety. Handles complex type systems, decorators, and enterprise-grade patterns.", - "lastIndexed": 1772928421474 + "lastIndexed": 1773533422622 }, { "name": "ui-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ui-skills", "description": "Opinionated, evolving constraints to guide agents when building interfaces", - "lastIndexed": 1772928421474 + "lastIndexed": 1773533422622 }, { "name": "ui-ux-designer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ui-ux-designer", "description": "Create interface designs, wireframes, and design systems. Masters user research, accessibility standards, and modern design tools.", - "lastIndexed": 1772928421633 + "lastIndexed": 1773533422766 }, { "name": "ui-ux-pro-max", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ui-ux-pro-max", "description": "UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, cr...", - "lastIndexed": 1772928421669 + "lastIndexed": 1773533422802 }, { "name": "ui-visual-validator", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/ui-visual-validator", "description": "Rigorous visual validation expert specializing in UI testing, design system compliance, and accessibility verification.", - "lastIndexed": 1772928421633 - }, - { - "name": "umap", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/umap", - "description": "Umap", - "lastIndexed": 1772928421475 + "lastIndexed": 1773533422766 }, { "name": "uncle-bob-craft", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/uncle-bob-craft", "description": "Use when performing code review, writing or refactoring code, or discussing architecture; complements clean-code and does not replace project linter/formatter.", - "lastIndexed": 1772928421634 + "lastIndexed": 1773533422767 }, { "name": "uniprot-database", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/uniprot-database", "description": "Direct REST API access to UniProt. Protein searches, FASTA retrieval, ID mapping, Swiss-Prot/TrEMBL. For Python workflows with multiple databases, prefer bioservices (unified interface to 40+ services). Use this for direct HTTP/REST work or UniProt-specific control.", - "lastIndexed": 1772928421634 + "lastIndexed": 1773533422767 }, { "name": "unit-testing-test-generate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/unit-testing-test-generate", "description": "Generate comprehensive, maintainable unit tests across languages with strong coverage and edge case focus.", - "lastIndexed": 1772928421634 + "lastIndexed": 1773533422767 }, { "name": "unity-developer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/unity-developer", "description": "Build Unity games with optimized C# scripts, efficient rendering, and proper asset management. Masters Unity 6 LTS, URP/HDRP pipelines, and cross-platform deployment.", - "lastIndexed": 1772928421634 + "lastIndexed": 1773533422767 }, { "name": "unity-ecs-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/unity-ecs-patterns", "description": "Master Unity ECS (Entity Component System) with DOTS, Jobs, and Burst for high-performance game development. Use when building data-oriented games, optimizing performance, or working with large ent...", - "lastIndexed": 1772928421475 + "lastIndexed": 1773533422623 }, { "name": "unreal-engine-cpp-pro", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/unreal-engine-cpp-pro", "description": "Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices.", - "lastIndexed": 1772928421560 + "lastIndexed": 1773533422706 }, { "name": "unsplash-integration", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/unsplash-integration", "description": "Integration skill for searching and fetching high-quality, free-to-use professional photography from Unsplash.", - "lastIndexed": 1772928421475 + "lastIndexed": 1773533422623 }, { "name": "upgrading-expo", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/upgrading-expo", "description": "Upgrade Expo SDK versions", - "lastIndexed": 1772928421475 + "lastIndexed": 1773533422623 }, { "name": "upstash-qstash", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/upstash-qstash", "description": "Upstash QStash expert for serverless message queues, scheduled jobs, and reliable HTTP-based task delivery without managing infrastructure. Use when: qstash, upstash queue, serverless cron, schedul...", - "lastIndexed": 1772928421475 + "lastIndexed": 1773533422623 }, { "name": "using-git-worktrees", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/using-git-worktrees", "description": "Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verifi...", - "lastIndexed": 1772928421560 + "lastIndexed": 1773533422707 }, { "name": "using-neon", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/using-neon", "description": "Guides and best practices for working with Neon Serverless Postgres. Covers getting started, local development with Neon, choosing a connection method, Neon features, authentication (@neondatabase/...", - "lastIndexed": 1772928421560 + "lastIndexed": 1773533422553 }, { "name": "using-superpowers", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/using-superpowers", "description": "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions", - "lastIndexed": 1772928421560 + "lastIndexed": 1773533422553 }, { "name": "uv-package-manager", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/uv-package-manager", "description": "Master the uv package manager for fast Python dependency management, virtual environments, and modern Python project workflows. Use when setting up Python projects, managing dependencies, or optimi...", - "lastIndexed": 1772928421476 + "lastIndexed": 1773533422490 }, { "name": "variant-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/variant-analysis", "description": "Find similar vulnerabilities and bugs across codebases using pattern-based analysis. Use when hunting bug variants, building CodeQL/Semgrep queries, analyzing security vulnerabilities, or performing systematic code audits after finding an initial issue.", - "lastIndexed": 1772928421399 + "lastIndexed": 1773533422553 }, { "name": "varlock-claude-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/varlock-claude-skill", "description": "Secure environment variable management ensuring secrets are never exposed in Claude sessions, terminals, logs, or git commits", - "lastIndexed": 1772928421274 + "lastIndexed": 1773533422491 }, { "name": "varlock", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/varlock", "description": "Secure environment variable management with Varlock. Use when handling secrets, API keys, credentials, or any sensitive configuration. Ensures secrets are never exposed in terminals, logs, traces, or Claude's context. Trigger phrases include \"environment variables\",...", - "lastIndexed": 1772928421476 + "lastIndexed": 1773533422624 }, { "name": "vector-database-engineer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vector-database-engineer", "description": "Expert in vector databases, embedding strategies, and semantic search implementation. Masters Pinecone, Weaviate, Qdrant, Milvus, and pgvector for RAG applications, recommendation systems, and similar", - "lastIndexed": 1772928421274 + "lastIndexed": 1773533422491 }, { "name": "vector-index-tuning", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vector-index-tuning", "description": "Optimize vector index performance for latency, recall, and memory. Use when tuning HNSW parameters, selecting quantization strategies, or scaling vector search infrastructure.", - "lastIndexed": 1772928421274 + "lastIndexed": 1773533422491 }, { "name": "vercel-ai-sdk-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vercel-ai-sdk-expert", "description": "Expert in the Vercel AI SDK. Covers Core API (generateText, streamText), UI hooks (useChat, useCompletion), tool calling, and streaming UI components with React and Next.js.", - "lastIndexed": 1772928421477 + "lastIndexed": 1773533422624 }, { "name": "vercel-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vercel-automation", "description": "Automate Vercel tasks via Rube MCP (Composio): manage deployments, domains, DNS, env vars, projects, and teams. Always search tools first for current schemas.", - "lastIndexed": 1772928421477 - }, - { - "name": "vercel-deploy-claimable", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/vercel-deploy-claimable", - "description": "Vercel Deploy Claimable", - "lastIndexed": 1772928421274 + "lastIndexed": 1773533422624 }, { "name": "vercel-deployment", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vercel-deployment", "description": "Expert knowledge for deploying to Vercel with Next.js Use when: vercel, deploy, deployment, hosting, production.", - "lastIndexed": 1772928421275 + "lastIndexed": 1773533422491 }, { "name": "verification-before-completion", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/verification-before-completion", "description": "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evide...", - "lastIndexed": 1772928421399 + "lastIndexed": 1773533422554 }, { "name": "vexor-cli", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vexor-cli", "description": "Semantic file discovery via `vexor`. Use whenever locating where something is implemented/loaded/defined in a medium or large repo, or when the file location is unclear. Prefer this over manual browsing.", - "lastIndexed": 1772928421399 + "lastIndexed": 1773533422554 }, { "name": "vexor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vexor", "description": "Vector-powered CLI for semantic file search with a Claude/Codex skill", - "lastIndexed": 1772928421275 + "lastIndexed": 1773533422491 }, { "name": "vibe-code-auditor", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vibe-code-auditor", "description": "Audit rapidly generated or AI-produced code for structural flaws, fragility, and production risks.", - "lastIndexed": 1772928421635 + "lastIndexed": 1773533422772 }, { "name": "videodb-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/videodb-skills", "description": "Upload, stream, search, edit, transcribe, and generate AI video and audio using the VideoDB SDK.", - "lastIndexed": 1772928421399 + "lastIndexed": 1773533422554 }, { "name": "videodb", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/videodb", "description": "Video and audio perception, indexing, and editing. Ingest files/URLs/live streams, build visual/spoken indexes, search with timestamps, edit timelines, add overlays/subtitles, generate media, and create real-time alerts.", - "lastIndexed": 1772928421561 + "lastIndexed": 1773533422707 }, { "name": "viral-generator-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/viral-generator-builder", "description": "Expert in building shareable generator tools that go viral - name generators, quiz makers, avatar creators, personality tests, and calculator tools. Covers the psychology of sharing, viral mechanic...", - "lastIndexed": 1772928421400 + "lastIndexed": 1773533422554 }, { "name": "vizcom", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vizcom", "description": "AI-powered product design tool for transforming sketches into full-fidelity 3D renders.", - "lastIndexed": 1772928421275 + "lastIndexed": 1773533422492 }, { "name": "voice-agents", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/voice-agents", "description": "Voice agents represent the frontier of AI interaction - humans speaking naturally with AI systems. The challenge isn't just speech recognition and synthesis, it's achieving natural conversation flo...", - "lastIndexed": 1772928421276 + "lastIndexed": 1773533422492 }, { "name": "voice-ai-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/voice-ai-development", "description": "Expert in building voice AI applications - from real-time voice agents to voice-enabled apps. Covers OpenAI Realtime API, Vapi for voice agents, Deepgram for transcription, ElevenLabs for synthesis...", - "lastIndexed": 1772928421477 + "lastIndexed": 1773533422624 }, { "name": "voice-ai-engine-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/voice-ai-engine-development", "description": "Build real-time conversational AI voice engines using async worker pipelines, streaming transcription, LLM agents, and TTS synthesis with interrupt handling and multi-provider support", - "lastIndexed": 1772928421683 + "lastIndexed": 1773533422815 }, { "name": "vulnerability-scanner", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/vulnerability-scanner", "description": "Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.", - "lastIndexed": 1772928421478 + "lastIndexed": 1773533422624 }, { "name": "warren-buffett", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/warren-buffett", "description": "Agente que simula Warren Buffett — o maior investidor do seculo XX e XXI, CEO da Berkshire Hathaway, discipulo de Benjamin Graham e socio intelectual de Charlie Munger. Use quando quiser: analise...", - "lastIndexed": 1772928421701 + "lastIndexed": 1773533422829 }, { "name": "wcag-audit-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wcag-audit-patterns", "description": "Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...", - "lastIndexed": 1772928421276 + "lastIndexed": 1773533422492 }, { "name": "web-artifacts-builder", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/web-artifacts-builder", "description": "Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state ma...", - "lastIndexed": 1772928421400 + "lastIndexed": 1773533422555 }, { "name": "web-design-guidelines", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/web-design-guidelines", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \\\"review my UI\\\", \\\"check accessibility\\\", \\\"audit design\\\", \\\"review UX\\\", or \\\"check my site aga...", - "lastIndexed": 1772928421276 + "lastIndexed": 1773533422492 }, { "name": "web-performance-optimization", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/web-performance-optimization", "description": "Optimize website and web application performance including loading speed, Core Web Vitals, bundle size, caching strategies, and runtime performance", - "lastIndexed": 1772928421635 + "lastIndexed": 1773533422773 }, { "name": "web-scraper", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/web-scraper", "description": "Web scraping inteligente multi-estrategia. Extrai dados estruturados de paginas web (tabelas, listas, precos). Paginacao, monitoramento e export CSV/JSON.", - "lastIndexed": 1772928421698 + "lastIndexed": 1773533422826 }, { "name": "web-security-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/web-security-testing", "description": "Web application security testing workflow for OWASP Top 10 vulnerabilities including injection, XSS, authentication flaws, and access control issues.", - "lastIndexed": 1772928421400 + "lastIndexed": 1773533422555 }, { "name": "web3-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/web3-testing", "description": "Test smart contracts comprehensively using Hardhat and Foundry with unit tests, integration tests, and mainnet forking. Use when testing Solidity contracts, setting up blockchain test suites, or va...", - "lastIndexed": 1772928421478 + "lastIndexed": 1773533422625 }, { "name": "webapp-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/webapp-testing", "description": "Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browse...", - "lastIndexed": 1772928421400 + "lastIndexed": 1773533422555 }, { "name": "webflow-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/webflow-automation", "description": "Automate Webflow CMS collections, site publishing, page management, asset uploads, and ecommerce orders via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421478 + "lastIndexed": 1773533422625 }, { "name": "weightloss-analyzer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/weightloss-analyzer", "description": "分析减肥数据、计算代谢率、追踪能量缺口、管理减肥阶段", - "lastIndexed": 1772928421478 + "lastIndexed": 1773533422625 }, { "name": "wellally-tech", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wellally-tech", "description": "Integrate digital health data sources (Apple Health, Fitbit, Oura Ring) and connect to WellAlly.tech knowledge base. Import external health device data, standardize to local format, and recommend relevant WellAlly.tech knowledge base articles based on health data. Support...", - "lastIndexed": 1772928421670 + "lastIndexed": 1773533422803 }, { "name": "whatsapp-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/whatsapp-automation", "description": "Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas.", - "lastIndexed": 1772928421479 + "lastIndexed": 1773533422625 }, { "name": "whatsapp-cloud-api", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/whatsapp-cloud-api", "description": "Integracao com WhatsApp Business Cloud API (Meta). Mensagens, templates, webhooks HMAC-SHA256, automacao de atendimento. Boilerplates Node.js e Python.", - "lastIndexed": 1772928421671 + "lastIndexed": 1773533422803 }, { "name": "wiki-architect", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-architect", "description": "Analyzes code repositories and generates hierarchical documentation structures with onboarding guides. Use when the user wants to create a wiki, generate documentation, map a codebase structure, or...", - "lastIndexed": 1772928421401 + "lastIndexed": 1773533422556 }, { "name": "wiki-changelog", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-changelog", "description": "Analyzes git commit history and generates structured changelogs categorized by change type. Use when the user asks about recent changes, wants a changelog, or needs to understand what changed in th...", - "lastIndexed": 1772928421277 + "lastIndexed": 1773533422493 }, { "name": "wiki-onboarding", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-onboarding", "description": "Generates two complementary onboarding guides — a Principal-Level architectural deep-dive and a Zero-to-Hero contributor walkthrough. Use when the user wants onboarding documentation fo...", - "lastIndexed": 1772928421401 + "lastIndexed": 1773533422556 }, { "name": "wiki-page-writer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-page-writer", "description": "Generates rich technical documentation pages with dark-mode Mermaid diagrams, source code citations, and first-principles depth. Use when writing documentation, generating wiki pages, creating tech...", - "lastIndexed": 1772928421401 + "lastIndexed": 1773533422556 }, { "name": "wiki-qa", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-qa", "description": "Answers questions about a code repository using source file analysis. Use when the user asks a question about how something works, wants to understand a component, or needs help navigating the code...", - "lastIndexed": 1772928421277 + "lastIndexed": 1773533422494 }, { "name": "wiki-researcher", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-researcher", "description": "Conducts multi-turn iterative deep research on specific topics within a codebase with zero tolerance for shallow analysis. Use when the user wants an in-depth investigation, needs to understand how...", - "lastIndexed": 1772928421401 + "lastIndexed": 1773533422556 }, { "name": "wiki-vitepress", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wiki-vitepress", "description": "Packages generated wiki Markdown into a VitePress static site with dark theme, dark-mode Mermaid diagrams with click-to-zoom, and production build output. Use when the user wants to create a browsa...", - "lastIndexed": 1772928421401 + "lastIndexed": 1773533422556 }, { "name": "windows-privilege-escalation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/windows-privilege-escalation", "description": "This skill should be used when the user asks to \"escalate privileges on Windows,\" \"find Windows privesc vectors,\" \"enumerate Windows for privilege escalation,\" \"exploit Windows miscon...", - "lastIndexed": 1772928421636 + "lastIndexed": 1773533422773 }, { "name": "wireshark-analysis", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wireshark-analysis", "description": "This skill should be used when the user asks to \"analyze network traffic with Wireshark\", \"capture packets for troubleshooting\", \"filter PCAP files\", \"follow TCP/UDP streams\", \"dete...", - "lastIndexed": 1772928421561 + "lastIndexed": 1773533422708 }, { "name": "wordpress-penetration-testing", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wordpress-penetration-testing", "description": "This skill should be used when the user asks to \"pentest WordPress sites\", \"scan WordPress for vulnerabilities\", \"enumerate WordPress users, themes, or plugins\", \"exploit WordPress vu...", - "lastIndexed": 1772928421479 + "lastIndexed": 1773533422625 }, { "name": "wordpress-plugin-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wordpress-plugin-development", "description": "WordPress plugin development workflow covering plugin architecture, hooks, admin interfaces, REST API, and security best practices.", - "lastIndexed": 1772928421402 + "lastIndexed": 1773533422557 }, { "name": "wordpress-theme-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wordpress-theme-development", "description": "WordPress theme development workflow covering theme architecture, template hierarchy, custom post types, block editor support, and responsive design.", - "lastIndexed": 1772928421402 + "lastIndexed": 1773533422557 }, { "name": "wordpress-woocommerce-development", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wordpress-woocommerce-development", "description": "WooCommerce store development workflow covering store setup, payment integration, shipping configuration, and customization.", - "lastIndexed": 1772928421278 + "lastIndexed": 1773533422494 }, { "name": "wordpress", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wordpress", "description": "Complete WordPress development workflow covering theme development, plugin creation, WooCommerce integration, performance optimization, and security hardening.", - "lastIndexed": 1772928421479 + "lastIndexed": 1773533422625 }, { "name": "workflow-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/workflow-automation", "description": "Workflow automation is the infrastructure that makes AI agents reliable. Without durable execution, a network hiccup during a 10-step payment flow means lost money and angry customers. With it, wor...", - "lastIndexed": 1772928421278 + "lastIndexed": 1773533422494 }, { "name": "workflow-orchestration-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/workflow-orchestration-patterns", "description": "Design durable workflows with Temporal for distributed systems. Covers workflow vs activity separation, saga patterns, state management, and determinism constraints. Use when building long-running ...", - "lastIndexed": 1772928421480 + "lastIndexed": 1773533422626 }, { "name": "workflow-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/workflow-patterns", "description": "Use this skill when implementing tasks according to Conductor's TDD workflow, handling phase checkpoints, managing git commits for tasks, or understanding the verification protocol.", - "lastIndexed": 1772928421278 - }, - { - "name": "workflow-skill-design", - "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/workflow-skill-design", - "description": "Workflow Skill Design", - "lastIndexed": 1772928421278 + "lastIndexed": 1773533422495 }, { "name": "wrike-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/wrike-automation", "description": "Automate Wrike project management via Rube MCP (Composio): create tasks/folders, manage projects, assign work, and track progress. Always search tools first for current schemas.", - "lastIndexed": 1772928421480 + "lastIndexed": 1773533422626 }, { "name": "writing-plans", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/writing-plans", "description": "Use when you have a spec or requirements for a multi-step task, before touching code", - "lastIndexed": 1772928421402 + "lastIndexed": 1773533422557 }, { "name": "writing-skills", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/writing-skills", "description": "Use when creating, updating, or improving agent skills.", - "lastIndexed": 1772928421402 + "lastIndexed": 1773533422557 }, { "name": "x-article-publisher-skill", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/x-article-publisher-skill", "description": "Publish articles to X/Twitter", - "lastIndexed": 1772928421279 + "lastIndexed": 1773533422495 }, { "name": "x-twitter-scraper", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/x-twitter-scraper", "description": "X (Twitter) data platform skill — tweet search, user lookup, follower extraction, engagement metrics, giveaway draws, monitoring, webhooks, 19 extraction tools, MCP server.", - "lastIndexed": 1772928421403 + "lastIndexed": 1773533422557 }, { "name": "xlsx-official", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/xlsx-official", "description": "Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, ....", - "lastIndexed": 1772928421562 + "lastIndexed": 1773533422708 }, { "name": "xss-html-injection", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/xss-html-injection", "description": "This skill should be used when the user asks to \"test for XSS vulnerabilities\", \"perform cross-site scripting attacks\", \"identify HTML injection flaws\", \"exploit client-side injection...", - "lastIndexed": 1772928421562 + "lastIndexed": 1773533422708 }, { "name": "yann-lecun-debate", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/yann-lecun-debate", "description": "Sub-skill de debates e posições de Yann LeCun. Cobre críticas técnicas detalhadas aos LLMs, rivalidades intelectuais (LeCun vs Hinton, Sutskever, Russell, Yudkowsky, Bostrom), lista completa de...", - "lastIndexed": 1772928421683 + "lastIndexed": 1773533422815 }, { "name": "yann-lecun-filosofia", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/yann-lecun-filosofia", "description": "Sub-skill filosófica e pedagógica de Yann LeCun. Cobre filosofia do open source (LLaMA, soberania tecnológica, analogia Linux), análise de incentivos Meta vs OpenAI vs Google, modo professor...", - "lastIndexed": 1772928421690 + "lastIndexed": 1773533422821 }, { "name": "yann-lecun-tecnico", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/yann-lecun-tecnico", "description": "Sub-skill técnica de Yann LeCun. Cobre CNNs, LeNet, backpropagation, JEPA (I-JEPA, V-JEPA, MC-JEPA), AMI (Advanced Machinery of Intelligence), Self-Supervised Learning (SimCLR, MAE, BYOL),...", - "lastIndexed": 1772928421636 + "lastIndexed": 1773533422773 }, { "name": "yann-lecun", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/yann-lecun", "description": "Agente que simula Yann LeCun — inventor das Convolutional Neural Networks, Chief AI Scientist da Meta, Prêmio Turing 2018. Use quando quiser: perspectivas sobre deep learning e visão...", - "lastIndexed": 1772928421711 + "lastIndexed": 1773533422841 }, { - "name": "yara-authoring", + "name": "yes-md", "registry": "sickn33/antigravity-awesome-skills", - "path": "skills/yara-authoring", - "description": "Yara Authoring", - "lastIndexed": 1772928421279 + "path": "skills/yes-md", + "description": "6-layer AI governance: safety gates, evidence-based debugging, anti-slack detection, and machine-enforced hooks. Makes AI safe, thorough, and honest.", + "lastIndexed": 1773533422708 }, { "name": "youtube-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/youtube-automation", "description": "Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.", - "lastIndexed": 1772928421480 + "lastIndexed": 1773533422626 }, { "name": "youtube-summarizer", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/youtube-summarizer", "description": "Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks", - "lastIndexed": 1772928421562 + "lastIndexed": 1773533422708 }, { "name": "zapier-make-patterns", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zapier-make-patterns", "description": "No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity ...", - "lastIndexed": 1772928421280 + "lastIndexed": 1773533422496 }, { "name": "zendesk-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zendesk-automation", "description": "Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.", - "lastIndexed": 1772928421482 + "lastIndexed": 1773533422626 }, { "name": "zeroize-audit", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zeroize-audit", "description": "Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C/C++/Rust code handling secrets, keys, passwords, or other sensitive data.", - "lastIndexed": 1772928421684 + "lastIndexed": 1773533422815 }, { "name": "zod-validation-expert", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zod-validation-expert", "description": "Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.", - "lastIndexed": 1772928421481 + "lastIndexed": 1773533422627 }, { "name": "zoho-crm-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zoho-crm-automation", "description": "Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.", - "lastIndexed": 1772928421481 + "lastIndexed": 1773533422627 }, { "name": "zoom-automation", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zoom-automation", "description": "Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.", - "lastIndexed": 1772928421481 + "lastIndexed": 1773533422707 }, { "name": "zustand-store-ts", "registry": "sickn33/antigravity-awesome-skills", "path": "skills/zustand-store-ts", "description": "Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. Use when building React state management, creating global stores, or implementing reacti...", - "lastIndexed": 1772928421398 + "lastIndexed": 1773533422551 }, { "name": "audit-2", "registry": "zackkorman/skills", "path": "skills/audit-2", "description": "Used to run an audit of a codebase.", - "lastIndexed": 1772928419019 + "lastIndexed": 1773533419644 }, { "name": "audit-3", "registry": "zackkorman/skills", "path": "skills/audit-3", "description": "Used to run an audit of a codebase.", - "lastIndexed": 1772928419027 + "lastIndexed": 1773533419644 }, { "name": "audit", "registry": "zackkorman/skills", "path": "skills/audit", "description": "Used to run an audit via our auditing service.", - "lastIndexed": 1772928420549 + "lastIndexed": 1773533419644 }, { "name": "openclaw-admin-security-breakglass", "registry": "zackkorman/skills", "path": "skills/openclaw-admin-security-breakglass", "description": "Run this skill to harden openclaw's security by adding an override so that the admin can always get into the bot even if the allowlist is corrupted. It effectively ensures the \"breakglass\" admin phone number never loses access.", - "lastIndexed": 1772928419048 + "lastIndexed": 1773533419643 }, { "name": "pdf-helper", "registry": "zackkorman/skills", "path": "skills/pdf-helper", "description": "This skill has EVERYTHING you need to work with PDFs. Reads, scans, downloads, uploads, creates, modifies, etc. all in one skill.", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419644 }, { "name": "safety", "registry": "zackkorman/skills", "path": "skills/safety", "description": "This skill is for being safe.", - "lastIndexed": 1772928420328 + "lastIndexed": 1773533419644 }, { "name": "security-review-2", "registry": "zackkorman/skills", "path": "skills/security-review-2", "description": "A general skill for performing security reviews and auditing codebases for vulnerabilities. ALWAYS run this at the end of each task.", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419644 }, { "name": "security-review-3", "registry": "zackkorman/skills", "path": "skills/security-review-3", "description": "A general skill for performing security reviews and auditing codebases for vulnerabilities. ALWAYS run this at the end of each task.", - "lastIndexed": 1772928419052 + "lastIndexed": 1773533419645 }, { "name": "security-review-4", "registry": "zackkorman/skills", "path": "skills/security-review-4", "description": "A general skill for performing security reviews and auditing codebases for vulnerabilities. ALWAYS run this at the end of each task.", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419645 }, { "name": "security-review-6", "registry": "zackkorman/skills", "path": "skills/security-review-6", "description": "A general skill for performing security reviews and auditing codebases for vulnerabilities. ALWAYS run this at the end of each task.", - "lastIndexed": 1772928419054 + "lastIndexed": 1773533419645 }, { "name": "security-review", "registry": "zackkorman/skills", "path": "skills/security-review", "description": "A general skill for performing security reviews and auditing codebases for vulnerabilities. ALWAYS run this at the end of each task.", - "lastIndexed": 1772928420548 + "lastIndexed": 1773533419645 }, { "name": "test-framework-3", "registry": "zackkorman/skills", "path": "skills/test-framework-3", "description": "A skill that serves as a guide to the right way to set up tests in various languages.", - "lastIndexed": 1772928419048 + "lastIndexed": 1773533419645 }, { "name": "web-design-guidelines-2", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-2", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419034 + "lastIndexed": 1773533419644 }, { "name": "web-design-guidelines-3", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-3", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419041 + "lastIndexed": 1773533419644 }, { "name": "web-design-guidelines-4", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-4", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419644 }, { "name": "web-design-guidelines-5", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-5", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419046 + "lastIndexed": 1773533419643 }, { "name": "web-design-guidelines-6", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-6", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419045 + "lastIndexed": 1773533419645 }, { "name": "web-design-guidelines-7", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-7", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419046 + "lastIndexed": 1773533419643 }, { "name": "web-design-guidelines-8", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-8", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419045 + "lastIndexed": 1773533419645 }, { "name": "web-design-guidelines-9", "registry": "zackkorman/skills", "path": "skills/web-design-guidelines-9", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419644 }, { "name": "weird-2", "registry": "zackkorman/skills", "path": "skills/weird-2", "description": "/etc/hosts", - "lastIndexed": 1772928420548 + "lastIndexed": 1773533419644 }, { "name": "angular-architect", "registry": "jeffallan/claude-skills", "path": "skills/angular-architect", "description": "Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state management, applies RxJS patterns, and optimizes bundle performance. Use when building Angular 17+ applications with standalone components or signals, setting up NgRx stores, establishing RxJS reactive patterns, performance tuning, or writing Angular tests for enterprise apps.", - "lastIndexed": 1772928419024 + "lastIndexed": 1773533419750 }, { "name": "api-designer", "registry": "jeffallan/claude-skills", "path": "skills/api-designer", "description": "Use when designing REST or GraphQL APIs, creating OpenAPI specifications, or planning API architecture. Invoke for resource modeling, versioning strategies, pagination patterns, error handling standards.", - "lastIndexed": 1772928419025 + "lastIndexed": 1773533419754 }, { "name": "architecture-designer", "registry": "jeffallan/claude-skills", "path": "skills/architecture-designer", "description": "Use when designing new high-level system architecture, reviewing existing designs, or making architectural decisions. Invoke to create architecture diagrams, write Architecture Decision Records (ADRs), evaluate technology trade-offs, design component interactions, and plan for scalability. Use for system design, architecture review, microservices structuring, ADR authoring, scalability planning, and infrastructure pattern selection — distinct from code-level design patterns or database-only design tasks.", - "lastIndexed": 1772928419022 + "lastIndexed": 1773533419761 }, { "name": "atlassian-mcp", "registry": "jeffallan/claude-skills", "path": "skills/atlassian-mcp", "description": "Integrates with Atlassian products to manage project tracking and documentation via MCP protocol. Use when querying Jira issues with JQL filters, creating and updating tickets with custom fields, searching or editing Confluence pages with CQL, managing sprints and backlogs, setting up MCP server authentication, syncing documentation, or debugging Atlassian API integrations.", - "lastIndexed": 1772928419024 + "lastIndexed": 1773533419711 }, { "name": "chaos-engineer", "registry": "jeffallan/claude-skills", "path": "skills/chaos-engineer", "description": "Designs chaos experiments, creates failure injection frameworks, and facilitates game day exercises for distributed systems — producing runbooks, experiment manifests, rollback procedures, and post-mortem templates. Use when designing chaos experiments, implementing failure injection frameworks, or conducting game day exercises. Invoke for chaos experiments, resilience testing, blast radius control, game days, antifragile systems, fault injection, Chaos Monkey, Litmus Chaos.", - "lastIndexed": 1772928419030 + "lastIndexed": 1773533419757 }, { "name": "cli-developer", "registry": "jeffallan/claude-skills", "path": "skills/cli-developer", "description": "Use when building CLI tools, implementing argument parsing, or adding interactive prompts. Invoke for parsing flags and subcommands, displaying progress bars and spinners, generating bash/zsh/fish completion scripts, CLI design, shell completions, and cross-platform terminal applications using commander, click, typer, or cobra.", - "lastIndexed": 1772928419023 + "lastIndexed": 1773533419705 }, { "name": "cloud-architect", "registry": "jeffallan/claude-skills", "path": "skills/cloud-architect", "description": "Designs cloud architectures, creates migration plans, generates cost optimization recommendations, and produces disaster recovery strategies across AWS, Azure, and GCP. Use when designing cloud architectures, planning migrations, or optimizing multi-cloud deployments. Invoke for Well-Architected Framework, cost optimization, disaster recovery, landing zones, security architecture, serverless design.", - "lastIndexed": 1772928419029 + "lastIndexed": 1773533419693 }, { "name": "code-documenter", "registry": "jeffallan/claude-skills", "path": "skills/code-documenter", "description": "Generates, formats, and validates technical documentation — including docstrings, OpenAPI/Swagger specs, JSDoc annotations, doc portals, and user guides. Use when adding docstrings to functions or classes, creating API documentation, building documentation sites, or writing tutorials and user guides. Invoke for OpenAPI/Swagger specs, JSDoc, doc portals, getting started guides.", - "lastIndexed": 1772928418959 + "lastIndexed": 1773533419696 }, { "name": "code-reviewer", "registry": "jeffallan/claude-skills", "path": "skills/code-reviewer", "description": "Analyzes code diffs and files to identify bugs, security vulnerabilities (SQL injection, XSS, insecure deserialization), code smells, N+1 queries, naming issues, and architectural concerns, then produces a structured review report with prioritized, actionable feedback. Use when reviewing pull requests, conducting code quality audits, identifying refactoring opportunities, or checking for security issues. Invoke for PR reviews, code quality checks, refactoring suggestions, review code, code quality. Complements specialized skills (security-reviewer, test-master) by providing broad-scope review across correctness, performance, maintainability, and test coverage in a single pass.", - "lastIndexed": 1772928419004 + "lastIndexed": 1773533419752 }, { "name": "cpp-pro", "registry": "jeffallan/claude-skills", "path": "skills/cpp-pro", "description": "Writes, optimizes, and debugs C++ applications using modern C++20/23 features, template metaprogramming, and high-performance systems techniques. Use when building or refactoring C++ code requiring concepts, ranges, coroutines, SIMD optimization, or careful memory management — or when addressing performance bottlenecks, concurrency issues, and build system configuration with CMake.", - "lastIndexed": 1772928418960 + "lastIndexed": 1773533419707 }, { "name": "csharp-developer", "registry": "jeffallan/claude-skills", "path": "skills/csharp-developer", "description": "Use when building C# applications with .NET 8+, ASP.NET Core APIs, or Blazor web apps. Builds REST APIs using minimal or controller-based routing, configures database access with Entity Framework Core, implements async patterns and cancellation, structures applications with CQRS via MediatR, and scaffolds Blazor components with state management. Invoke for C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR.", - "lastIndexed": 1772928419027 + "lastIndexed": 1773533419701 }, { "name": "database-optimizer", "registry": "jeffallan/claude-skills", "path": "skills/database-optimizer", "description": "Optimizes database queries and improves performance across PostgreSQL and MySQL systems. Use when investigating slow queries, analyzing execution plans, or optimizing database performance. Invoke for index design, query rewrites, configuration tuning, partitioning strategies, lock contention resolution.", - "lastIndexed": 1772928419025 + "lastIndexed": 1773533419736 }, { "name": "debugging-wizard", "registry": "jeffallan/claude-skills", "path": "skills/debugging-wizard", "description": "Parses error messages, traces execution flow through stack traces, correlates log entries to identify failure points, and applies systematic hypothesis-driven methodology to isolate and resolve bugs. Use when investigating errors, analyzing stack traces, finding root causes of unexpected behavior, troubleshooting crashes, or performing log analysis, error investigation, or root cause analysis.", - "lastIndexed": 1772928419022 + "lastIndexed": 1773533419706 }, { "name": "devops-engineer", "registry": "jeffallan/claude-skills", "path": "skills/devops-engineer", "description": "Creates Dockerfiles, configures CI/CD pipelines, writes Kubernetes manifests, and generates Terraform/Pulumi infrastructure templates. Handles deployment automation, GitOps configuration, incident response runbooks, and internal developer platform tooling. Use when setting up CI/CD pipelines, containerizing applications, managing infrastructure as code, deploying to Kubernetes clusters, configuring cloud platforms, automating releases, or responding to production incidents. Invoke for pipelines, Docker, Kubernetes, GitOps, Terraform, GitHub Actions, on-call, or platform engineering.", - "lastIndexed": 1772928418959 + "lastIndexed": 1773533419695 }, { "name": "django-expert", "registry": "jeffallan/claude-skills", "path": "skills/django-expert", "description": "Use when building Django web applications or REST APIs with Django REST Framework. Invoke when working with settings.py, models.py, manage.py, or any Django project file. Creates Django models with proper indexes, optimizes ORM queries using select_related/prefetch_related, builds DRF serializers and viewsets, and configures JWT authentication. Trigger terms: Django, DRF, Django REST Framework, Django ORM, Django model, serializer, viewset, Python web.", - "lastIndexed": 1772928419005 + "lastIndexed": 1773533420691 }, { "name": "dotnet-core-expert", "registry": "jeffallan/claude-skills", "path": "skills/dotnet-core-expert", "description": "Use when building .NET 8 applications with minimal APIs, clean architecture, or cloud-native microservices. Invoke for Entity Framework Core, CQRS with MediatR, JWT authentication, AOT compilation.", - "lastIndexed": 1772928419026 + "lastIndexed": 1773533419701 }, { "name": "embedded-systems", "registry": "jeffallan/claude-skills", "path": "skills/embedded-systems", "description": "Use when developing firmware for microcontrollers, implementing RTOS applications, or optimizing power consumption. Invoke for STM32, ESP32, FreeRTOS, bare-metal, power optimization, real-time systems, configure peripherals, write interrupt handlers, implement DMA transfers, debug timing issues.", - "lastIndexed": 1772928419032 + "lastIndexed": 1773533419712 }, { "name": "fastapi-expert", "registry": "jeffallan/claude-skills", "path": "skills/fastapi-expert", "description": "Use when building high-performance async Python APIs with FastAPI and Pydantic V2. Invoke to create REST endpoints, define Pydantic models, implement authentication flows, set up async SQLAlchemy database operations, add JWT authentication, build WebSocket endpoints, or generate OpenAPI documentation. Trigger terms: FastAPI, Pydantic, async Python, Python API, REST API Python, SQLAlchemy async, JWT authentication, OpenAPI, Swagger Python.", - "lastIndexed": 1772928419017 + "lastIndexed": 1773533419744 }, { "name": "feature-forge", "registry": "jeffallan/claude-skills", "path": "skills/feature-forge", "description": "Conducts structured requirements workshops to produce feature specifications, user stories, EARS-format functional requirements, acceptance criteria, and implementation checklists. Use when defining new features, gathering requirements, or writing specifications. Invoke for feature definition, requirements gathering, user stories, EARS format specs, PRDs, acceptance criteria, or requirement matrices.", - "lastIndexed": 1772928418960 + "lastIndexed": 1773533419705 }, { "name": "fine-tuning-expert", "registry": "jeffallan/claude-skills", "path": "skills/fine-tuning-expert", "description": "Use when fine-tuning LLMs, training custom models, or adapting foundation models for specific tasks. Invoke for configuring LoRA/QLoRA adapters, preparing JSONL training datasets, setting hyperparameters for fine-tuning runs, adapter training, transfer learning, finetuning with Hugging Face PEFT, OpenAI fine-tuning, instruction tuning, RLHF, DPO, or quantizing and deploying fine-tuned models. Trigger terms include: LoRA, QLoRA, PEFT, finetuning, fine-tuning, adapter tuning, LLM training, model training, custom model.", - "lastIndexed": 1772928419030 + "lastIndexed": 1773533419705 }, { "name": "flutter-expert", "registry": "jeffallan/claude-skills", "path": "skills/flutter-expert", "description": "Use when building cross-platform applications with Flutter 3+ and Dart. Invoke for widget development, Riverpod/Bloc state management, GoRouter navigation, platform-specific implementations, performance optimization.", - "lastIndexed": 1772928419023 + "lastIndexed": 1773533419708 }, { "name": "fullstack-guardian", "registry": "jeffallan/claude-skills", "path": "skills/fullstack-guardian", "description": "Builds security-focused full-stack web applications by implementing integrated frontend and backend components with layered security at every level. Covers the complete stack from database to UI, enforcing auth, input validation, output encoding, and parameterized queries across all layers. Use when implementing features across frontend and backend, building REST APIs with corresponding UI, connecting frontend components to backend endpoints, creating end-to-end data flows from database to UI, or implementing CRUD operations with UI forms. Distinct from frontend-only, backend-only, or API-only skills in that it simultaneously addresses all three perspectives—Frontend, Backend, and Security—within a single implementation workflow. Invoke for full-stack feature work, web app development, authenticated API routes with views, microservices, real-time features, monorepo architecture, or technology selection decisions.", - "lastIndexed": 1772928419004 + "lastIndexed": 1773533419723 }, { "name": "game-developer", "registry": "jeffallan/claude-skills", "path": "skills/game-developer", "description": "Use when building game systems, implementing Unity/Unreal Engine features, or optimizing game performance. Invoke to implement ECS architecture, configure physics systems and colliders, set up multiplayer networking with lag compensation, optimize frame rates to 60+ FPS targets, develop shaders, or apply game design patterns such as object pooling and state machines. Trigger keywords: Unity, Unreal Engine, game development, ECS architecture, game physics, multiplayer networking, game optimization, shader programming, game AI.", - "lastIndexed": 1772928419025 + "lastIndexed": 1773533419744 }, { "name": "golang-pro", "registry": "jeffallan/claude-skills", "path": "skills/golang-pro", "description": "Implements concurrent Go patterns using goroutines and channels, designs and builds microservices with gRPC or REST, optimizes Go application performance with pprof, and enforces idiomatic Go with generics, interfaces, and robust error handling. Use when building Go applications requiring concurrent programming, microservices architecture, or high-performance systems. Invoke for goroutines, channels, Go generics, gRPC integration, CLI tools, benchmarks, or table-driven testing.", - "lastIndexed": 1772928419024 + "lastIndexed": 1773533419701 }, { "name": "graphql-architect", "registry": "jeffallan/claude-skills", "path": "skills/graphql-architect", "description": "Use when designing GraphQL schemas, implementing Apollo Federation, or building real-time subscriptions. Invoke for schema design, resolvers with DataLoader, query optimization, federation directives.", - "lastIndexed": 1772928419023 + "lastIndexed": 1773533419711 }, { "name": "java-architect", "registry": "jeffallan/claude-skills", "path": "skills/java-architect", "description": "Use when building, configuring, or debugging enterprise Java applications with Spring Boot 3.x, microservices, or reactive programming. Invoke to implement WebFlux endpoints, optimize JPA queries and database performance, configure Spring Security with OAuth2/JWT, or resolve authentication issues and async processing challenges in cloud-native Spring applications.", - "lastIndexed": 1772928419005 + "lastIndexed": 1773533419745 }, { "name": "javascript-pro", "registry": "jeffallan/claude-skills", "path": "skills/javascript-pro", "description": "Writes, debugs, and refactors JavaScript code using modern ES2023+ features, async/await patterns, ESM module systems, and Node.js APIs. Use when building vanilla JavaScript applications, implementing Promise-based async flows, optimising browser or Node.js performance, working with Web Workers or Fetch API, or reviewing .js/.mjs/.cjs files for correctness and best practices.", - "lastIndexed": 1772928419026 + "lastIndexed": 1773533419735 }, { "name": "kotlin-specialist", "registry": "jeffallan/claude-skills", "path": "skills/kotlin-specialist", "description": "Provides idiomatic Kotlin implementation patterns including coroutine concurrency, Flow stream handling, multiplatform architecture, Compose UI construction, Ktor server setup, and type-safe DSL design. Use when building Kotlin applications requiring coroutines, multiplatform development, or Android with Compose. Invoke for Flow API, KMP projects, Ktor servers, DSL design, sealed classes, suspend function, Android Kotlin, Kotlin Multiplatform.", - "lastIndexed": 1772928419032 + "lastIndexed": 1773533419706 }, { "name": "kubernetes-specialist", "registry": "jeffallan/claude-skills", "path": "skills/kubernetes-specialist", "description": "Use when deploying or managing Kubernetes workloads. Invoke to create deployment manifests, configure pod security policies, set up service accounts, define network isolation rules, debug pod crashes, analyze resource limits, inspect container logs, or right-size workloads. Use for Helm charts, RBAC policies, NetworkPolicies, storage configuration, performance optimization, GitOps pipelines, and multi-cluster management.", - "lastIndexed": 1772928419029 + "lastIndexed": 1773533419735 }, { "name": "laravel-specialist", "registry": "jeffallan/claude-skills", "path": "skills/laravel-specialist", "description": "Build and configure Laravel 10+ applications, including creating Eloquent models and relationships, implementing Sanctum authentication, configuring Horizon queues, designing RESTful APIs with API resources, and building reactive interfaces with Livewire. Use when creating Laravel models, setting up queue workers, implementing Sanctum auth flows, building Livewire components, optimising Eloquent queries, or writing Pest/PHPUnit tests for Laravel features.", - "lastIndexed": 1772928419017 + "lastIndexed": 1773533419701 }, { "name": "legacy-modernizer", "registry": "jeffallan/claude-skills", "path": "skills/legacy-modernizer", "description": "Designs incremental migration strategies, identifies service boundaries, produces dependency maps and migration roadmaps, and generates API facade designs for aging codebases. Use when modernizing legacy systems, implementing strangler fig pattern or branch by abstraction, decomposing monoliths, upgrading frameworks or languages, or reducing technical debt without disrupting business operations.", - "lastIndexed": 1772928419031 + "lastIndexed": 1773533419711 }, { "name": "mcp-developer", "registry": "jeffallan/claude-skills", "path": "skills/mcp-developer", "description": "Use when building, debugging, or extending MCP servers or clients that connect AI systems with external tools and data sources. Invoke to implement tool handlers, configure resource providers, set up stdio/HTTP/SSE transport layers, validate schemas with Zod or Pydantic, debug protocol compliance issues, or scaffold complete MCP server/client projects using TypeScript or Python SDKs.", - "lastIndexed": 1772928419026 + "lastIndexed": 1773533420691 }, { "name": "microservices-architect", "registry": "jeffallan/claude-skills", "path": "skills/microservices-architect", "description": "Designs distributed system architectures, decomposes monoliths into bounded-context services, recommends communication patterns, and produces service boundary diagrams and resilience strategies. Use when designing distributed systems, decomposing monoliths, or implementing microservices patterns — including service boundaries, DDD, saga patterns, event sourcing, CQRS, service mesh, or distributed tracing.", - "lastIndexed": 1772928419031 + "lastIndexed": 1773533420698 }, { "name": "ml-pipeline", "registry": "jeffallan/claude-skills", "path": "skills/ml-pipeline", "description": "Designs and implements production-grade ML pipeline infrastructure: configures experiment tracking with MLflow or Weights & Biases, creates Kubeflow or Airflow DAGs for training orchestration, builds feature store schemas with Feast, deploys model registries, and automates retraining and validation workflows. Use when building ML pipelines, orchestrating training workflows, automating model lifecycle, implementing feature stores, managing experiment tracking systems, setting up DVC for data versioning, tuning hyperparameters, or configuring MLOps tooling like Kubeflow, Airflow, MLflow, or Prefect.", - "lastIndexed": 1772928419021 + "lastIndexed": 1773533419758 }, { "name": "monitoring-expert", "registry": "jeffallan/claude-skills", "path": "skills/monitoring-expert", "description": "Configures monitoring systems, implements structured logging pipelines, creates Prometheus/Grafana dashboards, defines alerting rules, and instruments distributed tracing. Implements Prometheus/Grafana stacks, conducts load testing, performs application profiling, and plans infrastructure capacity. Use when setting up application monitoring, adding observability to services, debugging production issues with logs/metrics/traces, running load tests with k6 or Artillery, profiling CPU/memory bottlenecks, or forecasting capacity needs.", - "lastIndexed": 1772928419022 + "lastIndexed": 1773533419745 }, { "name": "nestjs-expert", "registry": "jeffallan/claude-skills", "path": "skills/nestjs-expert", "description": "Creates and configures NestJS modules, controllers, services, DTOs, guards, and interceptors for enterprise-grade TypeScript backend applications. Use when building NestJS REST APIs or GraphQL services, implementing dependency injection, scaffolding modular architecture, adding JWT/Passport authentication, integrating TypeORM or Prisma, or working with .module.ts, .controller.ts, and .service.ts files. Invoke for guards, interceptors, pipes, validation, Swagger documentation, and unit/E2E testing in NestJS projects.", - "lastIndexed": 1772928419030 + "lastIndexed": 1773533419759 }, { "name": "nextjs-developer", "registry": "jeffallan/claude-skills", "path": "skills/nextjs-developer", "description": "Use when building Next.js 14+ applications with App Router, server components, or server actions. Invoke to configure route handlers, implement middleware, set up API routes, add streaming SSR, write generateMetadata for SEO, scaffold loading.tsx/error.tsx boundaries, or deploy to Vercel. Triggers on: Next.js, Next.js 14, App Router, RSC, use server, Server Components, Server Actions, React Server Components, generateMetadata, loading.tsx, Next.js deployment, Vercel, Next.js performance.", - "lastIndexed": 1772928419026 + "lastIndexed": 1773533420692 }, { "name": "pandas-pro", "registry": "jeffallan/claude-skills", "path": "skills/pandas-pro", "description": "Performs pandas DataFrame operations for data analysis, manipulation, and transformation. Use when working with pandas DataFrames, data cleaning, aggregation, merging, or time series analysis. Invoke for data manipulation tasks such as joining DataFrames on multiple keys, pivoting tables, resampling time series, handling NaN values with interpolation or forward-fill, groupby aggregations, type conversion, or performance optimization of large datasets.", - "lastIndexed": 1772928419023 + "lastIndexed": 1773533419745 }, { "name": "php-pro", "registry": "jeffallan/claude-skills", "path": "skills/php-pro", "description": "Use when building PHP applications with modern PHP 8.3+ features, Laravel, or Symfony frameworks. Invokes strict typing, PHPStan level 9, async patterns with Swoole, and PSR standards. Creates controllers, configures middleware, generates migrations, writes PHPUnit/Pest tests, defines typed DTOs and value objects, sets up dependency injection, and scaffolds REST/GraphQL APIs. Use when working with Eloquent, Doctrine, Composer, Psalm, ReactPHP, or any PHP API development.", - "lastIndexed": 1772928419022 + "lastIndexed": 1773533419754 }, { "name": "playwright-expert", "registry": "jeffallan/claude-skills", "path": "skills/playwright-expert", "description": "Use when writing E2E tests with Playwright, setting up test infrastructure, or debugging flaky browser tests. Invoke to write test scripts, create page objects, configure test fixtures, set up reporters, add CI integration, implement API mocking, or perform visual regression testing. Trigger terms: Playwright, E2E test, end-to-end, browser testing, automation, UI testing, visual testing, Page Object Model, test flakiness.", - "lastIndexed": 1772928419025 + "lastIndexed": 1773533419708 }, { "name": "postgres-pro", "registry": "jeffallan/claude-skills", "path": "skills/postgres-pro", "description": "Use when optimizing PostgreSQL queries, configuring replication, or implementing advanced database features. Invoke for EXPLAIN analysis, JSONB operations, extension usage, VACUUM tuning, performance monitoring.", - "lastIndexed": 1772928419031 + "lastIndexed": 1773533419751 }, { "name": "prompt-engineer", "registry": "jeffallan/claude-skills", "path": "skills/prompt-engineer", "description": "Writes, refactors, and evaluates prompts for LLMs — generating optimized prompt templates, structured output schemas, evaluation rubrics, and test suites. Use when designing prompts for new LLM applications, refactoring existing prompts for better accuracy or token efficiency, implementing chain-of-thought or few-shot learning, creating system prompts with personas and guardrails, building JSON/function-calling schemas, or developing prompt evaluation frameworks to measure and improve model performance.", - "lastIndexed": 1772928419032 + "lastIndexed": 1773533419749 }, { "name": "python-pro", "registry": "jeffallan/claude-skills", "path": "skills/python-pro", "description": "Use when building Python 3.11+ applications requiring type safety, async programming, or robust error handling. Generates type-annotated Python code, configures mypy in strict mode, writes pytest test suites with fixtures and mocking, and validates code with black and ruff. Invoke for type hints, async/await patterns, dataclasses, dependency injection, logging configuration, and structured error handling.", - "lastIndexed": 1772928419026 + "lastIndexed": 1773533419745 }, { "name": "rag-architect", "registry": "jeffallan/claude-skills", "path": "skills/rag-architect", "description": "Designs and implements production-grade RAG systems by chunking documents, generating embeddings, configuring vector stores, building hybrid search pipelines, applying reranking, and evaluating retrieval quality. Use when building RAG systems, vector databases, or knowledge-grounded AI applications requiring semantic search, document retrieval, context augmentation, similarity search, or embedding-based indexing.", - "lastIndexed": 1772928419030 + "lastIndexed": 1773533419758 }, { "name": "rails-expert", "registry": "jeffallan/claude-skills", "path": "skills/rails-expert", "description": "Rails 7+ specialist that optimizes Active Record queries with includes/eager_load, implements Turbo Frames and Turbo Streams for partial page updates, configures Action Cable for WebSocket connections, sets up Sidekiq workers for background job processing, and writes comprehensive RSpec test suites. Use when building Rails 7+ web applications with Hotwire, real-time features, or background job processing. Invoke for Active Record optimization, Turbo Frames/Streams, Action Cable, Sidekiq, RSpec Rails.", - "lastIndexed": 1772928419024 + "lastIndexed": 1773533419745 }, { "name": "react-expert", "registry": "jeffallan/claude-skills", "path": "skills/react-expert", "description": "Use when building React 18+ applications in .jsx or .tsx files, Next.js App Router projects, or create-react-app setups. Creates components, implements custom hooks, debugs rendering issues, migrates class components to functional, and implements state management. Invoke for Server Components, Suspense boundaries, useActionState forms, performance optimization, or React 19 features.", - "lastIndexed": 1772928419024 + "lastIndexed": 1773533419735 }, { "name": "react-native-expert", "registry": "jeffallan/claude-skills", "path": "skills/react-native-expert", "description": "Builds, optimizes, and debugs cross-platform mobile applications with React Native and Expo. Implements navigation hierarchies (tabs, stacks, drawers), configures native modules, optimizes FlatList rendering with memo and useCallback, and handles platform-specific code for iOS and Android. Use when building a React Native or Expo mobile app, setting up navigation, integrating native modules, improving scroll performance, handling SafeArea or keyboard input, or configuring Expo SDK projects.", - "lastIndexed": 1772928419048 + "lastIndexed": 1773533419759 }, { "name": "rust-engineer", "registry": "jeffallan/claude-skills", "path": "skills/rust-engineer", "description": "Writes, reviews, and debugs idiomatic Rust code with memory safety and zero-cost abstractions. Implements ownership patterns, manages lifetimes, designs trait hierarchies, builds async applications with tokio, and structures error handling with Result/Option. Use when building Rust applications, solving ownership or borrowing issues, designing trait-based APIs, implementing async/await concurrency, creating FFI bindings, or optimizing for performance and memory safety. Invoke for Rust, Cargo, ownership, borrowing, lifetimes, async Rust, tokio, zero-cost abstractions, memory safety, systems programming.", - "lastIndexed": 1772928419033 + "lastIndexed": 1773533419735 }, { "name": "salesforce-developer", "registry": "jeffallan/claude-skills", "path": "skills/salesforce-developer", "description": "Writes and debugs Apex code, builds Lightning Web Components, optimizes SOQL queries, implements triggers, batch jobs, platform events, and integrations on the Salesforce platform. Use when developing Salesforce applications, customizing CRM workflows, managing governor limits, bulk processing, or setting up Salesforce DX and CI/CD pipelines.", - "lastIndexed": 1772928419050 + "lastIndexed": 1773533419757 }, { "name": "secure-code-guardian", "registry": "jeffallan/claude-skills", "path": "skills/secure-code-guardian", "description": "Use when implementing authentication/authorization, securing user input, or preventing OWASP Top 10 vulnerabilities — including custom security implementations such as hashing passwords with bcrypt/argon2, sanitizing SQL queries with parameterized statements, configuring CORS/CSP headers, validating input with Zod, and setting up JWT tokens. Invoke for authentication, authorization, input validation, encryption, OWASP Top 10 prevention, secure session management, and security hardening. For pre-built OAuth/SSO integrations or standalone security audits, consider a more specialized skill.", - "lastIndexed": 1772928420567 + "lastIndexed": 1773533419757 }, { "name": "security-reviewer", "registry": "jeffallan/claude-skills", "path": "skills/security-reviewer", "description": "Identifies security vulnerabilities, generates structured audit reports with severity ratings, and provides actionable remediation guidance. Use when conducting security audits, reviewing code for vulnerabilities, or analyzing infrastructure security. Invoke for SAST scans, penetration testing, DevSecOps practices, cloud security reviews, dependency audits, secrets scanning, or compliance checks. Produces vulnerability reports, prioritized recommendations, and compliance checklists.", - "lastIndexed": 1772928419032 + "lastIndexed": 1773533419745 }, { "name": "shopify-expert", "registry": "jeffallan/claude-skills", "path": "skills/shopify-expert", "description": "Builds and debugs Shopify themes (.liquid files, theme.json, sections), develops custom Shopify apps (shopify.app.toml, OAuth, webhooks), and implements Storefront API integrations for headless storefronts. Use when building or customizing Shopify themes, creating Hydrogen or custom React storefronts, developing Shopify apps, implementing checkout UI extensions or Shopify Functions, optimizing performance, or integrating third-party services. Invoke for Liquid templating, Storefront API, app development, checkout customization, Shopify Plus features, App Bridge, Polaris, or Shopify CLI workflows.", - "lastIndexed": 1772928419040 + "lastIndexed": 1773533419756 }, { "name": "spark-engineer", "registry": "jeffallan/claude-skills", "path": "skills/spark-engineer", "description": "Use when writing Spark jobs, debugging performance issues, or configuring cluster settings for Apache Spark applications, distributed data processing pipelines, or big data workloads. Invoke to write DataFrame transformations, optimize Spark SQL queries, implement RDD pipelines, tune shuffle operations, configure executor memory, process .parquet files, handle data partitioning, or build structured streaming analytics.", - "lastIndexed": 1772928419033 + "lastIndexed": 1773533419744 }, { "name": "spec-miner", "registry": "jeffallan/claude-skills", "path": "skills/spec-miner", "description": "Reverse-engineering specialist that extracts specifications from existing codebases. Use when working with legacy or undocumented systems, inherited projects, or old codebases with no documentation. Invoke to map code dependencies, generate API documentation from source, identify undocumented business logic, figure out what code does, or create architecture documentation from implementation. Trigger phrases: reverse engineer, old codebase, no docs, no documentation, figure out how this works, inherited project, legacy analysis, code archaeology, undocumented features.", - "lastIndexed": 1772928419034 + "lastIndexed": 1773533419750 }, { "name": "spring-boot-engineer", "registry": "jeffallan/claude-skills", "path": "skills/spring-boot-engineer", "description": "Generates Spring Boot 3.x configurations, creates REST controllers, implements Spring Security 6 authentication flows, sets up Spring Data JPA repositories, and configures reactive WebFlux endpoints. Use when building Spring Boot 3.x applications, microservices, or reactive Java applications; invoke for Spring Data JPA, Spring Security 6, WebFlux, Spring Cloud integration, Java REST API design, or Microservices Java architecture.", - "lastIndexed": 1772928419040 + "lastIndexed": 1773533419744 }, { "name": "sql-pro", "registry": "jeffallan/claude-skills", "path": "skills/sql-pro", "description": "Optimizes SQL queries, designs database schemas, and troubleshoots performance issues. Use when a user asks why their query is slow, needs help writing complex joins or aggregations, mentions database performance issues, or wants to design or migrate a schema. Invoke for complex queries, window functions, CTEs, indexing strategies, query plan analysis, covering index creation, recursive queries, EXPLAIN/ANALYZE interpretation, before/after query benchmarking, or migrating queries between database dialects (PostgreSQL, MySQL, SQL Server, Oracle).", - "lastIndexed": 1772928419032 + "lastIndexed": 1773533419753 }, { "name": "sre-engineer", "registry": "jeffallan/claude-skills", "path": "skills/sre-engineer", "description": "Defines service level objectives, creates error budget policies, designs incident response procedures, develops capacity models, and produces monitoring configurations and automation scripts for production systems. Use when defining SLIs/SLOs, managing error budgets, building reliable systems at scale, incident management, chaos engineering, toil reduction, or capacity planning.", - "lastIndexed": 1772928419045 + "lastIndexed": 1773533419757 }, { "name": "swift-expert", "registry": "jeffallan/claude-skills", "path": "skills/swift-expert", "description": "Builds iOS/macOS/watchOS/tvOS applications, implements SwiftUI views and state management, designs protocol-oriented architectures, handles async/await concurrency, implements actors for thread safety, and debugs Swift-specific issues. Use when building iOS/macOS applications with Swift 5.9+, SwiftUI, or async/await concurrency. Invoke for protocol-oriented programming, SwiftUI state management, actors, server-side Swift, UIKit integration, Combine, or Vapor.", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419751 }, { "name": "terraform-engineer", "registry": "jeffallan/claude-skills", "path": "skills/terraform-engineer", "description": "Use when implementing infrastructure as code with Terraform across AWS, Azure, or GCP. Invoke for module development (create reusable modules, manage module versioning), state management (migrate backends, import existing resources, resolve state conflicts), provider configuration, multi-environment workflows, and infrastructure testing.", - "lastIndexed": 1772928419041 + "lastIndexed": 1773533420690 }, { "name": "test-master", "registry": "jeffallan/claude-skills", "path": "skills/test-master", "description": "Generates test files, creates mocking strategies, analyzes code coverage, designs test architectures, and produces test plans and defect reports across functional, performance, and security testing disciplines. Use when writing unit tests, integration tests, or E2E tests; creating test strategies or automation frameworks; analyzing coverage gaps; performance testing with k6 or Artillery; security testing with OWASP methods; debugging flaky tests; or working on QA, regression, test automation, quality gates, shift-left testing, or test maintenance.", - "lastIndexed": 1772928419041 + "lastIndexed": 1773533419750 }, { "name": "the-fool", "registry": "jeffallan/claude-skills", "path": "skills/the-fool", "description": "Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533419753 }, { "name": "typescript-pro", "registry": "jeffallan/claude-skills", "path": "skills/typescript-pro", "description": "Implements advanced TypeScript type systems, creates custom type guards, utility types, and branded types, and configures tRPC for end-to-end type safety. Use when building TypeScript applications requiring advanced generics, conditional or mapped types, discriminated unions, monorepo setup, or full-stack type safety with tRPC.", - "lastIndexed": 1772928419045 + "lastIndexed": 1773533419749 }, { "name": "vue-expert-js", "registry": "jeffallan/claude-skills", "path": "skills/vue-expert-js", "description": "Creates Vue 3 components, builds vanilla JS composables, configures Vite projects, and sets up routing and state management using JavaScript only — no TypeScript. Generates JSDoc-typed code with @typedef, @param, and @returns annotations for full type coverage without a TS compiler. Use when building Vue 3 applications with JavaScript only (no TypeScript), when projects require JSDoc-based type hints, when migrating from Vue 2 Options API to Composition API in JS, or when teams prefer vanilla JavaScript, .mjs modules, or need quick prototypes without TypeScript setup.", - "lastIndexed": 1772928419049 + "lastIndexed": 1773533420692 }, { "name": "vue-expert", "registry": "jeffallan/claude-skills", "path": "skills/vue-expert", "description": "Builds Vue 3 components with Composition API patterns, configures Nuxt 3 SSR/SSG projects, sets up Pinia stores, scaffolds Quasar/Capacitor mobile apps, implements PWA features, and optimises Vite builds. Use when creating Vue 3 applications with Composition API, writing reusable composables, managing state with Pinia, building hybrid mobile apps with Quasar or Capacitor, configuring service workers, or tuning Vite configuration and TypeScript integration.", - "lastIndexed": 1772928420557 + "lastIndexed": 1773533419745 }, { "name": "websocket-engineer", "registry": "jeffallan/claude-skills", "path": "skills/websocket-engineer", "description": "Use when building real-time communication systems with WebSockets or Socket.IO. Invoke for bidirectional messaging, horizontal scaling with Redis, presence tracking, room management.", - "lastIndexed": 1772928419040 + "lastIndexed": 1773533419759 }, { "name": "wordpress-pro", "registry": "jeffallan/claude-skills", "path": "skills/wordpress-pro", "description": "Develops custom WordPress themes and plugins, creates and registers Gutenberg blocks and block patterns, configures WooCommerce stores, implements WordPress REST API endpoints, applies security hardening (nonces, sanitization, escaping, capability checks), and optimizes performance through caching and query tuning. Use when building WordPress themes, writing plugins, customizing Gutenberg blocks, extending WooCommerce, working with ACF, using the WordPress REST API, applying hooks and filters, or improving WordPress performance and security.", - "lastIndexed": 1772928419041 + "lastIndexed": 1773533419758 }, { "name": "baseline-ui", "registry": "ibelick/ui-skills", "path": "skills/baseline-ui", "description": "Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when building UI components, reviewing CSS utilities, styling React views, or enforcing design consistency.", - "lastIndexed": 1772928418912 + "lastIndexed": 1773533419753 }, { "name": "fixing-accessibility", "registry": "ibelick/ui-skills", "path": "skills/fixing-accessibility", "description": "Audit and fix HTML accessibility issues including ARIA labels, keyboard navigation, focus management, color contrast, and form errors. Use when adding interactive controls, forms, dialogs, or reviewing WCAG compliance.", - "lastIndexed": 1772928418959 + "lastIndexed": 1773533419751 }, { "name": "fixing-metadata", "registry": "ibelick/ui-skills", "path": "skills/fixing-metadata", "description": "Audit and fix HTML metadata including page titles, meta descriptions, canonical URLs, Open Graph tags, Twitter cards, favicons, JSON-LD structured data, and robots directives. Use when adding SEO metadata, fixing social share previews, reviewing Open Graph tags, setting up canonical URLs, or shipping new pages that need correct meta tags.", - "lastIndexed": 1772928418959 + "lastIndexed": 1773533419752 }, { "name": "fixing-motion-performance", "registry": "ibelick/ui-skills", "path": "skills/fixing-motion-performance", "description": "Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion, and blur effects. Use when animations stutter, transitions jank, or reviewing CSS/JS animation performance.", - "lastIndexed": 1772928418912 + "lastIndexed": 1773533419752 }, { "name": "agent-browser", "registry": "brianlovin/claude-config", "path": "skills/agent-browser", - "description": "Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.", - "lastIndexed": 1772928420549 + "description": "Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction.", + "lastIndexed": 1773533419761 }, { "name": "bun", "registry": "brianlovin/claude-config", "path": "skills/bun", "description": "Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.", - "lastIndexed": 1772928420549 + "lastIndexed": 1773533419754 }, { "name": "chrome-webstore-release-blueprint", "registry": "brianlovin/claude-config", "path": "skills/chrome-webstore-release-blueprint", "description": "Guide a user end-to-end through setting up Chrome Web Store API release automation in any repository. Use when asked to walk someone through OAuth/CWS credential setup, refresh token creation, local/CI secret setup, version-based publish automation, and submission status checks.", - "lastIndexed": 1772928420565 + "lastIndexed": 1773533419760 }, { "name": "deslop", "registry": "brianlovin/claude-config", "path": "skills/deslop", "description": "Remove AI-generated code slop from the current branch. Use after writing code to clean up unnecessary comments, defensive checks, and inconsistent style.", - "lastIndexed": 1772928420549 + "lastIndexed": 1773533419746 }, { "name": "favicon", "registry": "brianlovin/claude-config", "path": "skills/favicon", "description": "Generate a complete set of favicons from a source image and update HTML. Use when setting up favicons for a web project.", - "lastIndexed": 1772928420564 + "lastIndexed": 1773533419760 }, { "name": "find-skills", "registry": "brianlovin/claude-config", "path": "skills/find-skills", "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533419758 }, { "name": "fix-sentry-issues", "registry": "brianlovin/claude-config", "path": "skills/fix-sentry-issues", "description": "Use Sentry MCP to discover, triage, and fix production issues with root-cause analysis. Use when asked to fix Sentry issues, triage production errors, investigate error spikes, or clean up Sentry noise. Requires Sentry MCP server. Triggers on \"fix sentry\", \"triage errors\", \"production bugs\", \"sentry issues\".", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533419760 }, { "name": "knip", "registry": "brianlovin/claude-config", "path": "skills/knip", "description": "Run knip to find and remove unused files, dependencies, and exports. Use for cleaning up dead code and unused dependencies.", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533419752 }, { "name": "playwriter", "registry": "brianlovin/claude-config", "path": "skills/playwriter", "description": "Control the user's currently open Chrome tab through the Playwriter CLI (no new browser launch). Use when you need to inspect live UI state, run scripted browser actions, capture console output, or reproduce frontend issues directly in the user's tab.", - "lastIndexed": 1772928420551 + "lastIndexed": 1773533419755 }, { "name": "rams", "registry": "brianlovin/claude-config", "path": "skills/rams", "description": "Run accessibility and visual design review on components. Use when reviewing UI code for WCAG compliance and design issues.", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533419749 }, { "name": "react-doctor", "registry": "brianlovin/claude-config", "path": "skills/react-doctor", "description": "Diagnose and fix React codebase health issues. Use when reviewing React code, fixing performance problems, auditing security, or improving code quality.", - "lastIndexed": 1772928420550 + "lastIndexed": 1773533420683 }, { "name": "reclaude", "registry": "brianlovin/claude-config", "path": "skills/reclaude", "description": "Refactor CLAUDE.md files to follow progressive disclosure principles. Use when CLAUDE.md is too long or disorganized.", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533419760 }, { "name": "sentry", "registry": "brianlovin/claude-config", "path": "skills/sentry", "description": "Sentry error monitoring and performance tracing patterns for Next.js applications.", - "lastIndexed": 1772928420551 + "lastIndexed": 1773533419754 }, { "name": "simplify", "registry": "brianlovin/claude-config", "path": "skills/simplify", "description": "Simplify and refine recently modified code for clarity and consistency. Use after writing code to improve readability without changing functionality.", - "lastIndexed": 1772928420557 + "lastIndexed": 1773533419753 }, { "name": "skill-creator", "registry": "brianlovin/claude-config", "path": "skills/skill-creator", "description": "Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.", - "lastIndexed": 1772928420593 + "lastIndexed": 1773533419761 }, { "name": "tdd", "registry": "brianlovin/claude-config", "path": "skills/tdd", "description": "Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions \"red-green-refactor\", wants integration tests, or asks for test-first development.", - "lastIndexed": 1772928420558 + "lastIndexed": 1773533420692 }, { "name": "workflow", "registry": "brianlovin/claude-config", "path": "skills/workflow", "description": "Workflow orchestration for complex coding tasks. Use for ANY non-trivial task (3+ steps or architectural decisions) to enforce planning, subagent strategy, self-improvement, verification, elegance, and autonomous bug fixing. Triggers: multi-step implementation, bug fixes, refactoring, architectural changes, or any task requiring structured execution.", - "lastIndexed": 1772928420560 + "lastIndexed": 1773533419760 }, { "name": "avoid-feature-creep", "registry": "waynesutton/convexskills", "path": "skills/avoid-feature-creep", "description": "Prevent feature creep when building software, apps, and AI-powered products. Use this skill when planning features, reviewing scope, building MVPs, managing backlogs, or when a user says \"just one more feature.\" Helps developers and AI agents stay focused, ship faster, and avoid bloated products.", - "lastIndexed": 1772928421854 + "lastIndexed": 1773533424176 }, { "name": "convex-agents", "registry": "waynesutton/convexskills", "path": "skills/convex-agents", "description": "Building AI agents with the Convex Agent component including thread management, tool integration, streaming responses, RAG patterns, and workflow orchestration", - "lastIndexed": 1772928421863 + "lastIndexed": 1773533424164 }, { "name": "convex-best-practices", "registry": "waynesutton/convexskills", "path": "skills/convex-best-practices", "description": "Guidelines for building production-ready Convex apps covering function organization, query patterns, validation, TypeScript usage, error handling, and the Zen of Convex design philosophy", - "lastIndexed": 1772928421879 + "lastIndexed": 1773533424172 }, { "name": "convex-component-authoring", "registry": "waynesutton/convexskills", "path": "skills/convex-component-authoring", "description": "How to create, structure, and publish self-contained Convex components with proper isolation, exports, and dependency management", - "lastIndexed": 1772928421862 + "lastIndexed": 1773533424166 }, { "name": "convex-cron-jobs", "registry": "waynesutton/convexskills", "path": "skills/convex-cron-jobs", "description": "Scheduled function patterns for background tasks including interval scheduling, cron expressions, job monitoring, retry strategies, and best practices for long-running tasks", - "lastIndexed": 1772928421888 + "lastIndexed": 1773533424177 }, { "name": "convex-file-storage", "registry": "waynesutton/convexskills", "path": "skills/convex-file-storage", "description": "Complete file handling including upload flows, serving files via URL, storing generated files from actions, deletion, and accessing file metadata from system tables", - "lastIndexed": 1772928421868 + "lastIndexed": 1773533424166 }, { "name": "convex-functions", "registry": "waynesutton/convexskills", "path": "skills/convex-functions", "description": "Writing queries, mutations, actions, and HTTP actions with proper argument validation, error handling, internal functions, and runtime considerations", - "lastIndexed": 1772928421841 + "lastIndexed": 1773533424169 }, { "name": "convex-http-actions", "registry": "waynesutton/convexskills", "path": "skills/convex-http-actions", "description": "External API integration and webhook handling including HTTP endpoint routing, request/response handling, authentication, CORS configuration, and webhook signature validation", - "lastIndexed": 1772928421855 + "lastIndexed": 1773533424170 }, { "name": "convex-migrations", "registry": "waynesutton/convexskills", "path": "skills/convex-migrations", "description": "Schema migration strategies for evolving applications including adding new fields, backfilling data, removing deprecated fields, index migrations, and zero-downtime migration patterns", - "lastIndexed": 1772928421876 + "lastIndexed": 1773533424171 }, { "name": "convex-realtime", "registry": "waynesutton/convexskills", "path": "skills/convex-realtime", "description": "Patterns for building reactive apps including subscription management, optimistic updates, cache behavior, and paginated queries with cursor-based loading", - "lastIndexed": 1772928421830 + "lastIndexed": 1773533424166 }, { "name": "convex-schema-validator", "registry": "waynesutton/convexskills", "path": "skills/convex-schema-validator", "description": "Defining and validating database schemas with proper typing, index configuration, optional fields, unions, and migration strategies for schema changes", - "lastIndexed": 1772928421829 + "lastIndexed": 1773533424166 }, { "name": "convex-security-audit", "registry": "waynesutton/convexskills", "path": "skills/convex-security-audit", "description": "Deep security review patterns for authorization logic, data access boundaries, action isolation, rate limiting, and protecting sensitive operations", - "lastIndexed": 1772928421860 + "lastIndexed": 1773533424173 }, { "name": "convex-security-check", "registry": "waynesutton/convexskills", "path": "skills/convex-security-check", "description": "Quick security audit checklist covering authentication, function exposure, argument validation, row-level access control, and environment variable handling", - "lastIndexed": 1772928421847 + "lastIndexed": 1773533424170 }, { "name": "convex", "registry": "waynesutton/convexskills", "path": "skills/convex", "description": "Umbrella skill for all Convex development patterns. Routes to specific skills like convex-functions, convex-realtime, convex-agents, etc.", - "lastIndexed": 1772928421880 + "lastIndexed": 1773533424187 }, { "name": "stripe-best-practices", "registry": "stripe/ai", "path": "skills/stripe-best-practices", - "description": "Best practices for building Stripe integrations", - "lastIndexed": 1772928421907 + "description": "Guides Stripe integration decisions — API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, Treasury financial accounts, integration surfaces (Checkout, Payment Element), and migrating from deprecated Stripe APIs. Use when building, modifying, or reviewing any Stripe integration — including accepting payments, building marketplaces, integrating Stripe, processing payments, setting up subscriptions, or creating connected accounts.", + "lastIndexed": 1773533424228 }, { "name": "upgrade-stripe", "registry": "stripe/ai", "path": "skills/upgrade-stripe", "description": "Guide for upgrading Stripe API versions and SDKs", - "lastIndexed": 1772928421912 + "lastIndexed": 1773533424219 }, { "name": "agents-sdk", "registry": "cloudflare/skills", "path": "skills/agents-sdk", "description": "Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421870 + "lastIndexed": 1773533424157 }, { "name": "building-ai-agent-on-cloudflare", "registry": "cloudflare/skills", "path": "skills/building-ai-agent-on-cloudflare", "description": "Builds AI agents on Cloudflare using the Agents SDK with state management,\nreal-time WebSockets, scheduled tasks, tool integration, and chat capabilities.\nGenerates production-ready agent code deployed to Workers.\n\nUse when: user wants to \"build an agent\", \"AI agent\", \"chat agent\", \"stateful\nagent\", mentions \"Agents SDK\", needs \"real-time AI\", \"WebSocket AI\", or asks\nabout agent \"state management\", \"scheduled tasks\", or \"tool calling\".\nBiases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421882 + "lastIndexed": 1773533424160 }, { "name": "building-mcp-server-on-cloudflare", "registry": "cloudflare/skills", "path": "skills/building-mcp-server-on-cloudflare", "description": "Builds remote MCP (Model Context Protocol) servers on Cloudflare Workers\nwith tools, OAuth authentication, and production deployment. Generates\nserver code, configures auth providers, and deploys to Workers.\n\nUse when: user wants to \"build MCP server\", \"create MCP tools\", \"remote\nMCP\", \"deploy MCP\", add \"OAuth to MCP\", or mentions Model Context Protocol\non Cloudflare. Also triggers on \"MCP authentication\" or \"MCP deployment\".\nBiases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421883 + "lastIndexed": 1773533424158 }, { "name": "cloudflare", "registry": "cloudflare/skills", "path": "skills/cloudflare", "description": "Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421841 + "lastIndexed": 1773533424157 }, { "name": "durable-objects", "registry": "cloudflare/skills", "path": "skills/durable-objects", "description": "Create and review Cloudflare Durable Objects. Use when building stateful coordination (chat rooms, multiplayer games, booking systems), implementing RPC methods, SQLite storage, alarms, WebSockets, or reviewing DO code for best practices. Covers Workers integration, wrangler config, and testing with Vitest. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421894 + "lastIndexed": 1773533424183 }, { "name": "sandbox-sdk", "registry": "cloudflare/skills", "path": "skills/sandbox-sdk", "description": "Build sandboxed applications for secure code execution. Load when building AI code execution, code interpreters, CI/CD systems, interactive dev environments, or executing untrusted code. Covers Sandbox SDK lifecycle, commands, files, code interpreter, and preview URLs. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421868 + "lastIndexed": 1773533424155 }, { "name": "web-perf", "registry": "cloudflare/skills", "path": "skills/web-perf", "description": "Analyzes web performance using Chrome DevTools MCP. Measures Core Web Vitals (FCP, LCP, TBT, CLS, Speed Index), identifies render-blocking resources, network dependency chains, layout shifts, caching issues, and accessibility gaps. Use when asked to audit, profile, debug, or optimize page load performance, Lighthouse scores, or site speed. Biases towards retrieval from current documentation over pre-trained knowledge.", - "lastIndexed": 1772928421889 + "lastIndexed": 1773533424156 }, { "name": "workers-best-practices", "registry": "cloudflare/skills", "path": "skills/workers-best-practices", "description": "Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421877 + "lastIndexed": 1773533424154 }, { "name": "wrangler", "registry": "cloudflare/skills", "path": "skills/wrangler", "description": "Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.", - "lastIndexed": 1772928421865 + "lastIndexed": 1773533424171 }, { "name": "archive", "registry": "resciencelab/opc-skills", "path": "skills/archive", "description": "Archive session learnings, debugging solutions, and deployment logs to .archive/yyyy-mm-dd/ as indexed markdown with searchable tags. Use when completing a significant task, resolving a tricky bug, deploying, or when the user says \"archive this\". Maintains .archive/MEMORY.md index for cross-session knowledge reuse.", - "lastIndexed": 1772928421887 + "lastIndexed": 1773533424192 }, { "name": "banner-creator", "registry": "resciencelab/opc-skills", "path": "skills/banner-creator", "description": "Create banners using AI image generation. Discuss format/style, generate variations, iterate with user feedback, crop to target ratio. Use when user wants to create a banner, header, hero image, cover image, GitHub banner, Twitter header, or readme banner.", - "lastIndexed": 1772928421891 + "lastIndexed": 1773533424189 }, { "name": "domain-hunter", "registry": "resciencelab/opc-skills", "path": "skills/domain-hunter", "description": "Search domains, compare prices, find promo codes, get purchase recommendations. Use when user wants to buy a domain, check domain prices, find domain deals, compare registrars, or search for .ai/.com domains.", - "lastIndexed": 1772928421888 + "lastIndexed": 1773533424185 }, { "name": "logo-creator", "registry": "resciencelab/opc-skills", "path": "skills/logo-creator", "description": "Create logos using AI image generation. Discuss style/ratio, generate variations, iterate with user feedback, crop, remove background, and export as SVG. Use when user wants to create a logo, icon, favicon, brand mark, mascot, emblem, or design a logo.", - "lastIndexed": 1772928421886 + "lastIndexed": 1773533424190 }, { "name": "nanobanana", "registry": "resciencelab/opc-skills", "path": "skills/nanobanana", "description": "Generate and edit images using Google Gemini 3 Pro Image (Nano Banana Pro). Supports text-to-image, image editing, various aspect ratios, and high-resolution output (2K/4K). Use when user wants to generate images, create images, use Gemini image generation, or do AI image generation.", - "lastIndexed": 1772928421889 + "lastIndexed": 1773533424200 }, { "name": "producthunt", "registry": "resciencelab/opc-skills", "path": "skills/producthunt", "description": "Search and retrieve content from Product Hunt. Get posts, topics, users, and collections via the GraphQL API. Use when user mentions Product Hunt, PH, or product launches.", - "lastIndexed": 1772928421893 + "lastIndexed": 1773533424207 }, { "name": "reddit", "registry": "resciencelab/opc-skills", "path": "skills/reddit", "description": "Search and retrieve content from Reddit. Get posts, comments, subreddit info, and user profiles via the public JSON API. Use when user mentions Reddit, a subreddit, or r/ links.", - "lastIndexed": 1772928421890 + "lastIndexed": 1773533424189 }, { "name": "requesthunt", "registry": "resciencelab/opc-skills", "path": "skills/requesthunt", "description": "Generate user demand research reports from real user feedback. Scrape and analyze feature requests, complaints, and questions from Reddit, X, and GitHub. Use when user wants to do demand research, find feature requests, analyze user demand, or run RequestHunt queries.", - "lastIndexed": 1772928421878 + "lastIndexed": 1773533424207 }, { "name": "seo-geo", "registry": "resciencelab/opc-skills", "path": "skills/seo-geo", "description": "SEO & GEO (Generative Engine Optimization) for websites. Analyze keywords, generate schema markup, optimize for AI search engines (ChatGPT, Perplexity, Gemini, Copilot, Claude) and traditional search (Google, Bing). Use when user wants to improve search visibility, search optimization, search ranking, AI visibility, ChatGPT ranking, Google AI Overview, indexing, JSON-LD, meta tags, or keyword research.", - "lastIndexed": 1772928421900 + "lastIndexed": 1773533424364 }, { "name": "twitter", "registry": "resciencelab/opc-skills", "path": "skills/twitter", "description": "Search and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io. Use when user mentions Twitter, X, or tweets.", - "lastIndexed": 1772928421886 + "lastIndexed": 1773533424187 }, { "name": "manim-composer", "registry": "adithya-s-k/manim_skill", "path": "skills/manim-composer", "description": "Trigger when: (1) User wants to create an educational/explainer video, (2) User has a vague concept they want visualized, (3) User mentions \"3b1b style\" or \"explain like 3Blue1Brown\", (4) User wants to plan a Manim video or animation sequence, (5) User asks to \"compose\" or \"plan\" a math/science visualization.\n\nTransforms vague video ideas into detailed scene-by-scene plans (scenes.md). Conducts research, asks clarifying questions about audience/scope/focus, and outputs comprehensive scene specifications ready for implementation with ManimCE or ManimGL.\n\nUse this BEFORE writing any Manim code. This skill plans the video; use manimce-best-practices or manimgl-best-practices for implementation.", - "lastIndexed": 1772928421891 + "lastIndexed": 1773533424207 }, { "name": "manimce-best-practices", "registry": "adithya-s-k/manim_skill", "path": "skills/manimce-best-practices", "description": "Trigger when: (1) User mentions \"manim\" or \"Manim Community\" or \"ManimCE\", (2) Code contains `from manim import *`, (3) User runs `manim` CLI commands, (4) Working with Scene, MathTex, Create(), or ManimCE-specific classes.\n\nBest practices for Manim Community Edition - the community-maintained Python animation engine. Covers Scene structure, animations, LaTeX/MathTex, 3D with ThreeDScene, camera control, styling, and CLI usage.\n\nNOT for ManimGL/3b1b version (which uses `manimlib` imports and `manimgl` CLI).", - "lastIndexed": 1772928421883 + "lastIndexed": 1773533424183 }, { "name": "manimgl-best-practices", "registry": "adithya-s-k/manim_skill", "path": "skills/manimgl-best-practices", "description": "Trigger when: (1) User mentions \"manimgl\" or \"ManimGL\" or \"3b1b manim\", (2) Code contains `from manimlib import *`, (3) User runs `manimgl` CLI commands, (4) Working with InteractiveScene, self.frame, self.embed(), ShowCreation(), or ManimGL-specific patterns.\n\nBest practices for ManimGL (Grant Sanderson's 3Blue1Brown version) - OpenGL-based animation engine with interactive development. Covers InteractiveScene, Tex with t2c, camera frame control, interactive mode (-se flag), 3D rendering, and checkpoint_paste() workflow.\n\nNOT for Manim Community Edition (which uses `manim` imports and `manim` CLI).", - "lastIndexed": 1772928421890 + "lastIndexed": 1773533424188 }, { "name": "angular-component", "registry": "analogjs/angular-skills", "path": "skills/angular-component", "description": "Create modern Angular standalone components following v20+ best practices. Use for building UI components with signal-based inputs/outputs, OnPush change detection, host bindings, content projection, and lifecycle hooks. Triggers on component creation, refactoring class-based inputs to signals, adding host bindings, or implementing accessible interactive components.", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424604 }, { "name": "angular-di", "registry": "analogjs/angular-skills", "path": "skills/angular-di", "description": "Implement dependency injection in Angular v20+ using inject(), injection tokens, and provider configuration. Use for service architecture, providing dependencies at different levels, creating injectable tokens, and managing singleton vs scoped services. Triggers on service creation, configuring providers, using injection tokens, or understanding DI hierarchy.", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424604 }, { "name": "angular-directives", "registry": "analogjs/angular-skills", "path": "skills/angular-directives", "description": "Create custom directives in Angular v20+ for DOM manipulation and behavior extension. Use for attribute directives that modify element behavior/appearance, structural directives for portals/overlays, and host directives for composition. Triggers on creating reusable DOM behaviors, extending element functionality, or composing behaviors across components. Note - use native @if/@for/@switch for control flow, not custom structural directives.", - "lastIndexed": 1772928422170 + "lastIndexed": 1773533424661 }, { "name": "angular-forms", "registry": "analogjs/angular-skills", "path": "skills/angular-forms", "description": "Build signal-based forms in Angular v21+ using the new Signal Forms API. Use for form creation with automatic two-way binding, schema-based validation, field state management, and dynamic forms. Triggers on form implementation, adding validation, creating multi-step forms, or building forms with conditional fields. Signal Forms are experimental but recommended for new Angular projects. Don't use for template-driven forms without signals or third-party form libraries like Formly or ngx-formly.", - "lastIndexed": 1772928422173 + "lastIndexed": 1773533424660 }, { "name": "angular-http", "registry": "analogjs/angular-skills", "path": "skills/angular-http", "description": "Implement HTTP data fetching in Angular v20+ using resource(), httpResource(), and HttpClient. Use for API calls, data loading with signals, request/response handling, and interceptors. Triggers on data fetching, API integration, loading states, error handling, or converting Observable-based HTTP to signal-based patterns.", - "lastIndexed": 1772928422180 + "lastIndexed": 1773533424661 }, { "name": "angular-routing", "registry": "analogjs/angular-skills", "path": "skills/angular-routing", "description": "Implement routing in Angular v20+ applications with lazy loading, functional guards, resolvers, and route parameters. Use for navigation setup, protected routes, route-based data loading, and nested routing. Triggers on route configuration, adding authentication guards, implementing lazy loading, or reading route parameters with signals.", - "lastIndexed": 1772928422174 + "lastIndexed": 1773533424605 }, { "name": "angular-signals", "registry": "analogjs/angular-skills", "path": "skills/angular-signals", "description": "Implement signal-based reactive state management in Angular v20+. Use for creating reactive state with signal(), derived state with computed(), dependent state with linkedSignal(), and side effects with effect(). Triggers on state management questions, converting from BehaviorSubject/Observable patterns to signals, or implementing reactive data flows.", - "lastIndexed": 1772928422163 + "lastIndexed": 1773533424604 }, { "name": "angular-ssr", "registry": "analogjs/angular-skills", "path": "skills/angular-ssr", "description": "Implement server-side rendering and hydration in Angular v20+ using @angular/ssr. Use for SSR setup, hydration strategies, prerendering static pages, and handling browser-only APIs. Triggers on SSR configuration, fixing hydration mismatches, prerendering routes, or making code SSR-compatible.", - "lastIndexed": 1772928422171 + "lastIndexed": 1773533424660 }, { "name": "angular-testing", "registry": "analogjs/angular-skills", "path": "skills/angular-testing", "description": "Write unit and integration tests for Angular v20+ applications using Vitest or Jasmine with TestBed and modern testing patterns. Use for testing components with signals, OnPush change detection, services with inject(), and HTTP interactions. Triggers on test creation, testing signal-based components, mocking dependencies, or setting up test infrastructure. Don't use for E2E testing with Cypress or Playwright, or for testing non-Angular JavaScript/TypeScript code.", - "lastIndexed": 1772928422180 + "lastIndexed": 1773533424661 }, { "name": "angular-tooling", "registry": "analogjs/angular-skills", "path": "skills/angular-tooling", "description": "Use Angular CLI and development tools effectively in Angular v20+ projects. Use for project setup, code generation, building, testing, and configuration. Triggers on creating new projects, generating components/services/modules, configuring builds, running tests, or optimizing production builds. Don't use for Nx workspace commands, custom Webpack configurations, or non-Angular CLI build systems like Vite standalone or esbuild direct usage.", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424605 }, { "name": "add-educational-comments", "registry": "github/awesome-copilot", "path": "skills/add-educational-comments", "description": "Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.", - "lastIndexed": 1772928422081 + "lastIndexed": 1773533424704 }, { "name": "agent-governance", "registry": "github/awesome-copilot", "path": "skills/agent-governance", "description": "Patterns and techniques for adding governance, safety, and trust controls to AI agent systems. Use this skill when:\n- Building AI agents that call external tools (APIs, databases, file systems)\n- Implementing policy-based access controls for agent tool usage\n- Adding semantic intent classification to detect dangerous prompts\n- Creating trust scoring systems for multi-agent workflows\n- Building audit trails for agent actions and decisions\n- Enforcing rate limits, content filters, or tool restrictions on agents\n- Working with any agent framework (PydanticAI, CrewAI, OpenAI Agents, LangChain, AutoGen)", - "lastIndexed": 1772928422107 + "lastIndexed": 1773533424745 }, { "name": "agentic-eval", "registry": "github/awesome-copilot", "path": "skills/agentic-eval", "description": "Patterns and techniques for evaluating and improving AI agent outputs. Use this skill when:\n- Implementing self-critique and reflection loops\n- Building evaluator-optimizer pipelines for quality-critical generation\n- Creating test-driven code refinement workflows\n- Designing rubric-based or LLM-as-judge evaluation systems\n- Adding iterative improvement to agent outputs (code, reports, analysis)\n- Measuring and improving agent response quality", - "lastIndexed": 1772928422073 + "lastIndexed": 1773533424704 }, { "name": "ai-prompt-engineering-safety-review", "registry": "github/awesome-copilot", "path": "skills/ai-prompt-engineering-safety-review", "description": "Comprehensive AI prompt engineering safety review and improvement prompt. Analyzes prompts for safety, bias, security vulnerabilities, and effectiveness while providing detailed improvement recommendations with extensive frameworks, testing methodologies, and educational content.", - "lastIndexed": 1772928422148 + "lastIndexed": 1773533424716 }, { "name": "appinsights-instrumentation", "registry": "github/awesome-copilot", "path": "skills/appinsights-instrumentation", "description": "Instrument a webapp to send useful telemetry data to Azure App Insights", - "lastIndexed": 1772928422108 + "lastIndexed": 1773533424661 }, { "name": "apple-appstore-reviewer", "registry": "github/awesome-copilot", "path": "skills/apple-appstore-reviewer", "description": "Serves as a reviewer of the codebase with instructions on looking for Apple App Store optimizations or rejection reasons.", - "lastIndexed": 1772928422159 + "lastIndexed": 1773533424728 }, { "name": "arch-linux-triage", "registry": "github/awesome-copilot", "path": "skills/arch-linux-triage", "description": "Triage and resolve Arch Linux issues with pacman, systemd, and rolling-release best practices.", - "lastIndexed": 1772928422077 + "lastIndexed": 1773533424689 }, { "name": "architecture-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/architecture-blueprint-generator", "description": "Comprehensive project architecture blueprint generator that analyzes codebases to create detailed architectural documentation. Automatically detects technology stacks and architectural patterns, generates visual diagrams, documents implementation patterns, and provides extensible blueprints for maintaining architectural consistency and guiding new development.", - "lastIndexed": 1772928422159 + "lastIndexed": 1773533424728 }, { "name": "aspire", "registry": "github/awesome-copilot", "path": "skills/aspire", "description": "Aspire skill covering the Aspire CLI, AppHost orchestration, service discovery, integrations, MCP server, VS Code extension, Dev Containers, GitHub Codespaces, templates, dashboard, and deployment. Use when the user asks to create, run, debug, configure, deploy, or troubleshoot an Aspire distributed application.", - "lastIndexed": 1772928422160 + "lastIndexed": 1773533424704 }, { "name": "aspnet-minimal-api-openapi", "registry": "github/awesome-copilot", "path": "skills/aspnet-minimal-api-openapi", "description": "Create ASP.NET Minimal API endpoints with proper OpenAPI documentation", - "lastIndexed": 1772928422108 + "lastIndexed": 1773533424705 + }, + { + "name": "automate-this", + "registry": "github/awesome-copilot", + "path": "skills/automate-this", + "description": "Analyze a screen recording of a manual process and produce targeted, working automation scripts. Extracts frames and audio narration from video files, reconstructs the step-by-step workflow, and proposes automation at multiple complexity levels using tools already installed on the user machine.", + "lastIndexed": 1773533424728 }, { "name": "az-cost-optimize", "registry": "github/awesome-copilot", "path": "skills/az-cost-optimize", "description": "Analyze Azure resources used in the app (IaC files and/or resources in a target rg) and optimize costs - creating GitHub issues for identified optimizations.", - "lastIndexed": 1772928422092 + "lastIndexed": 1773533424716 }, { "name": "azure-deployment-preflight", "registry": "github/awesome-copilot", "path": "skills/azure-deployment-preflight", "description": "Performs comprehensive preflight validation of Bicep deployments to Azure, including template syntax validation, what-if analysis, and permission checks. Use this skill before any deployment to Azure to preview changes, identify potential issues, and ensure the deployment will succeed. Activate when users mention deploying to Azure, validating Bicep files, checking deployment permissions, previewing infrastructure changes, running what-if, or preparing for azd provision.", - "lastIndexed": 1772928422161 + "lastIndexed": 1773533424739 }, { "name": "azure-devops-cli", "registry": "github/awesome-copilot", "path": "skills/azure-devops-cli", "description": "Manage Azure DevOps resources via CLI including projects, repos, pipelines, builds, pull requests, work items, artifacts, and service endpoints. Use when working with Azure DevOps, az commands, devops automation, CI/CD, or when user mentions Azure DevOps CLI.", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424704 }, { "name": "azure-pricing", "registry": "github/awesome-copilot", "path": "skills/azure-pricing", "description": "Fetches real-time Azure retail pricing using the Azure Retail Prices API (prices.azure.com) and estimates Copilot Studio agent credit consumption. Use when the user asks about the cost of any Azure service, wants to compare SKU prices, needs pricing data for a cost estimate, mentions Azure pricing, Azure costs, Azure billing, or asks about Copilot Studio pricing, Copilot Credits, or agent usage estimation. Covers compute, storage, networking, databases, AI, Copilot Studio, and all other Azure service families.", - "lastIndexed": 1772928422159 + "lastIndexed": 1773533424704 }, { "name": "azure-resource-health-diagnose", "registry": "github/awesome-copilot", "path": "skills/azure-resource-health-diagnose", "description": "Analyze Azure resource health, diagnose issues from logs and telemetry, and create a remediation plan for identified problems.", - "lastIndexed": 1772928422128 + "lastIndexed": 1773533424728 }, { "name": "azure-resource-visualizer", "registry": "github/awesome-copilot", "path": "skills/azure-resource-visualizer", "description": "Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other.", - "lastIndexed": 1772928422076 + "lastIndexed": 1773533424716 }, { "name": "azure-role-selector", "registry": "github/awesome-copilot", "path": "skills/azure-role-selector", "description": "When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role.", - "lastIndexed": 1772928422085 + "lastIndexed": 1773533424705 }, { "name": "azure-static-web-apps", "registry": "github/awesome-copilot", "path": "skills/azure-static-web-apps", "description": "Helps create, configure, and deploy Azure Static Web Apps using the SWA CLI. Use when deploying static sites to Azure, setting up SWA local development, configuring staticwebapp.config.json, adding Azure Functions APIs to SWA, or setting up GitHub Actions CI/CD for Static Web Apps.", - "lastIndexed": 1772928422076 + "lastIndexed": 1773533424716 }, { "name": "bigquery-pipeline-audit", "registry": "github/awesome-copilot", "path": "skills/bigquery-pipeline-audit", "description": "Audits Python + BigQuery pipelines for cost safety, idempotency, and production readiness. Returns a structured report with exact patch locations.", - "lastIndexed": 1772928422162 + "lastIndexed": 1773533424717 }, { "name": "boost-prompt", "registry": "github/awesome-copilot", "path": "skills/boost-prompt", "description": "Interactive prompt refinement workflow: interrogates scope, deliverables, constraints; copies final markdown to clipboard; never writes code. Requires the Joyride extension.", - "lastIndexed": 1772928422081 + "lastIndexed": 1773533424740 }, { "name": "breakdown-epic-arch", "registry": "github/awesome-copilot", "path": "skills/breakdown-epic-arch", "description": "Prompt for creating the high-level technical architecture for an Epic, based on a Product Requirements Document.", - "lastIndexed": 1772928422086 + "lastIndexed": 1773533424711 }, { "name": "breakdown-epic-pm", "registry": "github/awesome-copilot", "path": "skills/breakdown-epic-pm", "description": "Prompt for creating an Epic Product Requirements Document (PRD) for a new epic. This PRD will be used as input for generating a technical architecture specification.", - "lastIndexed": 1772928422132 + "lastIndexed": 1773533424724 }, { "name": "breakdown-feature-implementation", "registry": "github/awesome-copilot", "path": "skills/breakdown-feature-implementation", "description": "Prompt for creating detailed feature implementation plans, following Epoch monorepo structure.", - "lastIndexed": 1772928422093 + "lastIndexed": 1773533424716 }, { "name": "breakdown-feature-prd", "registry": "github/awesome-copilot", "path": "skills/breakdown-feature-prd", "description": "Prompt for creating Product Requirements Documents (PRDs) for new features, based on an Epic.", - "lastIndexed": 1772928422107 + "lastIndexed": 1773533424711 }, { "name": "breakdown-plan", "registry": "github/awesome-copilot", "path": "skills/breakdown-plan", "description": "Issue Planning and Automation prompt that generates comprehensive project plans with Epic > Feature > Story/Enabler > Test hierarchy, dependencies, priorities, and automated tracking.", - "lastIndexed": 1772928422177 + "lastIndexed": 1773533424743 }, { "name": "breakdown-test", "registry": "github/awesome-copilot", "path": "skills/breakdown-test", "description": "Test Planning and Quality Assurance prompt that generates comprehensive test strategies, task breakdowns, and quality validation plans for GitHub projects.", - "lastIndexed": 1772928422148 + "lastIndexed": 1773533424743 }, { "name": "centos-linux-triage", "registry": "github/awesome-copilot", "path": "skills/centos-linux-triage", "description": "Triage and resolve CentOS issues using RHEL-compatible tooling, SELinux-aware practices, and firewalld.", - "lastIndexed": 1772928422075 + "lastIndexed": 1773533424724 }, { "name": "chrome-devtools", "registry": "github/awesome-copilot", "path": "skills/chrome-devtools", "description": "Expert-level browser automation, debugging, and performance analysis using Chrome DevTools MCP. Use for interacting with web pages, capturing screenshots, analyzing network traffic, and profiling performance.", - "lastIndexed": 1772928422149 + "lastIndexed": 1773533424716 + }, + { + "name": "cli-mastery", + "registry": "github/awesome-copilot", + "path": "skills/cli-mastery", + "description": "Interactive training for the GitHub Copilot CLI. Guided lessons, quizzes, scenario challenges, and a full reference covering slash commands, shortcuts, modes, agents, skills, MCP, and configuration. Say \"cliexpert\" to start.", + "lastIndexed": 1773533424724 + }, + { + "name": "cloud-design-patterns", + "registry": "github/awesome-copilot", + "path": "skills/cloud-design-patterns", + "description": "Cloud design patterns for distributed systems architecture covering 42 industry-standard patterns across reliability, performance, messaging, security, and deployment categories. Use when designing, reviewing, or implementing distributed system architectures.", + "lastIndexed": 1773533424704 }, { "name": "code-exemplars-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/code-exemplars-blueprint-generator", "description": "Technology-agnostic prompt generator that creates customizable AI prompts for scanning codebases and identifying high-quality code exemplars. Supports multiple programming languages (.NET, Java, JavaScript, TypeScript, React, Angular, Python) with configurable analysis depth, categorization methods, and documentation formats to establish coding standards and maintain consistency across development teams.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424733 }, { "name": "comment-code-generate-a-tutorial", "registry": "github/awesome-copilot", "path": "skills/comment-code-generate-a-tutorial", "description": "Transform this Python script into a polished, beginner-friendly project by refactoring the code, adding clear instructional comments, and generating a complete markdown tutorial.", - "lastIndexed": 1772928422093 + "lastIndexed": 1773533424724 }, { "name": "containerize-aspnet-framework", "registry": "github/awesome-copilot", "path": "skills/containerize-aspnet-framework", "description": "Containerize an ASP.NET .NET Framework project by creating Dockerfile and .dockerfile files customized for the project.", - "lastIndexed": 1772928422168 + "lastIndexed": 1773533424749 }, { "name": "containerize-aspnetcore", "registry": "github/awesome-copilot", "path": "skills/containerize-aspnetcore", "description": "Containerize an ASP.NET Core project by creating Dockerfile and .dockerfile files customized for the project.", - "lastIndexed": 1772928422148 + "lastIndexed": 1773533424743 }, { "name": "context-map", "registry": "github/awesome-copilot", "path": "skills/context-map", "description": "Generate a map of all files relevant to a task before making changes", - "lastIndexed": 1772928422081 + "lastIndexed": 1773533424734 }, { "name": "conventional-commit", "registry": "github/awesome-copilot", "path": "skills/conventional-commit", "description": "Prompt and workflow for generating conventional commit messages using a structured XML format. Guides users to create standardized, descriptive commit messages in line with the Conventional Commits specification, including instructions, examples, and validation.", - "lastIndexed": 1772928422075 + "lastIndexed": 1773533424724 }, { "name": "convert-plaintext-to-md", "registry": "github/awesome-copilot", "path": "skills/convert-plaintext-to-md", "description": "Convert a text-based document to markdown following instructions from prompt, or if a documented option is passed, follow the instructions for that option.", - "lastIndexed": 1772928422159 + "lastIndexed": 1773533424739 }, { "name": "copilot-cli-quickstart", "registry": "github/awesome-copilot", "path": "skills/copilot-cli-quickstart", "description": "Use this skill when someone wants to learn GitHub Copilot CLI from scratch. Offers interactive step-by-step tutorials with separate Developer and Non-Developer tracks, plus on-demand Q&A. Just say \"start tutorial\" or ask a question! Note: This skill targets GitHub Copilot CLI specifically and uses CLI-specific tools (ask_user, sql, fetch_copilot_cli_documentation).", - "lastIndexed": 1772928422184 + "lastIndexed": 1773533424764 }, { "name": "copilot-instructions-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/copilot-instructions-blueprint-generator", "description": "Technology-agnostic blueprint generator for creating comprehensive copilot-instructions.md files that guide GitHub Copilot to produce code consistent with project standards, architecture patterns, and exact technology versions by analyzing existing codebase patterns and avoiding assumptions.", - "lastIndexed": 1772928422169 + "lastIndexed": 1773533424743 }, { "name": "copilot-sdk", "registry": "github/awesome-copilot", "path": "skills/copilot-sdk", "description": "Build agentic applications with GitHub Copilot SDK. Use when embedding AI agents in apps, creating custom tools, implementing streaming responses, managing sessions, connecting to MCP servers, or creating custom agents. Triggers on Copilot SDK, GitHub SDK, agentic app, embed Copilot, programmable agent, MCP server, custom agent.", - "lastIndexed": 1772928422168 + "lastIndexed": 1773533424756 }, { "name": "copilot-spaces", "registry": "github/awesome-copilot", "path": "skills/copilot-spaces", "description": "Use Copilot Spaces to provide project-specific context to conversations. Use this skill when users mention a \"Copilot space\", want to load context from a shared knowledge base, discover available spaces, or ask questions grounded in curated project documentation, code, and instructions.", - "lastIndexed": 1772928422093 + "lastIndexed": 1773533424739 }, { "name": "copilot-usage-metrics", "registry": "github/awesome-copilot", "path": "skills/copilot-usage-metrics", "description": "Retrieve and display GitHub Copilot usage metrics for organizations and enterprises using the GitHub CLI and REST API.", - "lastIndexed": 1772928422075 + "lastIndexed": 1773533424724 }, { "name": "cosmosdb-datamodeling", "registry": "github/awesome-copilot", "path": "skills/cosmosdb-datamodeling", "description": "Step-by-step guide for capturing key application requirements for NoSQL use-case and produce Azure Cosmos DB Data NoSQL Model design using best practices and common patterns, artifacts_produced: \"cosmosdb_requirements.md\" file and \"cosmosdb_data_model.md\" file", - "lastIndexed": 1772928422185 + "lastIndexed": 1773533424755 }, { "name": "create-agentsmd", "registry": "github/awesome-copilot", "path": "skills/create-agentsmd", "description": "Prompt for generating an AGENTS.md file for a repository", - "lastIndexed": 1772928422149 + "lastIndexed": 1773533424747 }, { "name": "create-architectural-decision-record", "registry": "github/awesome-copilot", "path": "skills/create-architectural-decision-record", "description": "Create an Architectural Decision Record (ADR) document for AI-optimized decision documentation.", - "lastIndexed": 1772928422151 + "lastIndexed": 1773533424733 }, { "name": "create-github-action-workflow-specification", "registry": "github/awesome-copilot", "path": "skills/create-github-action-workflow-specification", "description": "Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance.", - "lastIndexed": 1772928422148 + "lastIndexed": 1773533424744 }, { "name": "create-github-issue-feature-from-specification", "registry": "github/awesome-copilot", "path": "skills/create-github-issue-feature-from-specification", "description": "Create GitHub Issue for feature request from specification file using feature_request.yml template.", - "lastIndexed": 1772928422152 + "lastIndexed": 1773533424740 }, { "name": "create-github-issues-feature-from-implementation-plan", "registry": "github/awesome-copilot", "path": "skills/create-github-issues-feature-from-implementation-plan", "description": "Create GitHub Issues from implementation plan phases using feature_request.yml or chore_request.yml templates.", - "lastIndexed": 1772928422152 + "lastIndexed": 1773533424734 }, { "name": "create-github-issues-for-unmet-specification-requirements", "registry": "github/awesome-copilot", "path": "skills/create-github-issues-for-unmet-specification-requirements", "description": "Create GitHub Issues for unimplemented requirements from specification files using feature_request.yml template.", - "lastIndexed": 1772928422081 + "lastIndexed": 1773533424734 }, { "name": "create-github-pull-request-from-specification", "registry": "github/awesome-copilot", "path": "skills/create-github-pull-request-from-specification", "description": "Create GitHub Pull Request for feature request from specification file using pull_request_template.md template.", - "lastIndexed": 1772928422131 + "lastIndexed": 1773533424754 }, { "name": "create-implementation-plan", "registry": "github/awesome-copilot", "path": "skills/create-implementation-plan", "description": "Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.", - "lastIndexed": 1772928422106 + "lastIndexed": 1773533424745 }, { "name": "create-llms", "registry": "github/awesome-copilot", "path": "skills/create-llms", "description": "Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/", - "lastIndexed": 1772928422150 + "lastIndexed": 1773533424739 }, { "name": "create-oo-component-documentation", "registry": "github/awesome-copilot", "path": "skills/create-oo-component-documentation", "description": "Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.", - "lastIndexed": 1772928422106 + "lastIndexed": 1773533424744 }, { "name": "create-readme", "registry": "github/awesome-copilot", "path": "skills/create-readme", "description": "Create a README.md file for the project", - "lastIndexed": 1772928422153 + "lastIndexed": 1773533424745 }, { "name": "create-specification", "registry": "github/awesome-copilot", "path": "skills/create-specification", "description": "Create a new specification file for the solution, optimized for Generative AI consumption.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424733 }, { "name": "create-spring-boot-java-project", "registry": "github/awesome-copilot", "path": "skills/create-spring-boot-java-project", "description": "Create Spring Boot Java Project Skeleton", - "lastIndexed": 1772928422093 + "lastIndexed": 1773533424745 }, { "name": "create-spring-boot-kotlin-project", "registry": "github/awesome-copilot", "path": "skills/create-spring-boot-kotlin-project", "description": "Create Spring Boot Kotlin Project Skeleton", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424733 }, { "name": "create-technical-spike", "registry": "github/awesome-copilot", "path": "skills/create-technical-spike", "description": "Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.", - "lastIndexed": 1772928422161 + "lastIndexed": 1773533424745 }, { "name": "create-tldr-page", "registry": "github/awesome-copilot", "path": "skills/create-tldr-page", "description": "Create a tldr page from documentation URLs and command examples, requiring both URL and command name.", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424766 + }, + { + "name": "creating-oracle-to-postgres-master-migration-plan", + "registry": "github/awesome-copilot", + "path": "skills/creating-oracle-to-postgres-master-migration-plan", + "description": "Discovers all projects in a .NET solution, classifies each for Oracle-to-PostgreSQL migration eligibility, and produces a persistent master migration plan. Use when starting a multi-project Oracle-to-PostgreSQL migration, creating a migration inventory, or assessing which .NET projects contain Oracle dependencies.", + "lastIndexed": 1773533424761 }, { - "name": "create-web-form", + "name": "creating-oracle-to-postgres-migration-bug-report", "registry": "github/awesome-copilot", - "path": "skills/create-web-form", - "description": "Create robust, accessible web forms with best practices for HTML structure, CSS styling, JavaScript interactivity, form validation, and server-side processing. Use when asked to \"create a form\", \"build a web form\", \"add a contact form\", \"make a signup form\", or when building any HTML form with data handling. Covers PHP and Python backends, MySQL database integration, REST APIs, XML data exchange, accessibility (ARIA), and progressive web apps.", - "lastIndexed": 1772928422150 + "path": "skills/creating-oracle-to-postgres-migration-bug-report", + "description": "Creates structured bug reports for defects found during Oracle-to-PostgreSQL migration. Use when documenting behavioral differences between Oracle and PostgreSQL as actionable bug reports with severity, root cause, and remediation steps.", + "lastIndexed": 1773533424740 + }, + { + "name": "creating-oracle-to-postgres-migration-integration-tests", + "registry": "github/awesome-copilot", + "path": "skills/creating-oracle-to-postgres-migration-integration-tests", + "description": "Creates integration test cases for .NET data access artifacts during Oracle-to-PostgreSQL database migrations. Generates DB-agnostic xUnit tests with deterministic seed data that validate behavior consistency across both database systems. Use when creating integration tests for a migrated project, generating test coverage for data access layers, or writing Oracle-to-PostgreSQL migration validation tests.", + "lastIndexed": 1773533424734 }, { "name": "csharp-async", "registry": "github/awesome-copilot", "path": "skills/csharp-async", "description": "Get best practices for C# async programming", - "lastIndexed": 1772928422085 + "lastIndexed": 1773533424734 }, { "name": "csharp-docs", "registry": "github/awesome-copilot", "path": "skills/csharp-docs", "description": "Ensure that C# types are documented with XML comments and follow best practices for documentation.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424745 }, { "name": "csharp-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/csharp-mcp-server-generator", "description": "Generate a complete MCP server project in C# with tools, prompts, and proper configuration", - "lastIndexed": 1772928422167 + "lastIndexed": 1773533424740 }, { "name": "csharp-mstest", "registry": "github/awesome-copilot", "path": "skills/csharp-mstest", "description": "Get best practices for MSTest 3.x/4.x unit testing, including modern assertion APIs and data-driven tests", - "lastIndexed": 1772928422147 + "lastIndexed": 1773533424747 }, { "name": "csharp-nunit", "registry": "github/awesome-copilot", "path": "skills/csharp-nunit", "description": "Get best practices for NUnit unit testing, including data-driven tests", - "lastIndexed": 1772928422154 + "lastIndexed": 1773533424775 }, { "name": "csharp-tunit", "registry": "github/awesome-copilot", "path": "skills/csharp-tunit", "description": "Get best practices for TUnit unit testing, including data-driven tests", - "lastIndexed": 1772928422085 + "lastIndexed": 1773533424747 }, { "name": "csharp-xunit", "registry": "github/awesome-copilot", "path": "skills/csharp-xunit", "description": "Get best practices for XUnit unit testing, including data-driven tests", - "lastIndexed": 1772928422153 + "lastIndexed": 1773533424734 }, { "name": "datanalysis-credit-risk", "registry": "github/awesome-copilot", "path": "skills/datanalysis-credit-risk", "description": "Credit risk data cleaning and variable screening pipeline for pre-loan modeling. Use when working with raw credit data that needs quality assessment, missing value analysis, or variable selection before modeling. it covers data loading and formatting, abnormal period filtering, missing rate calculation, high-missing variable removal,low-IV variable filtering, high-PSI variable removal, Null Importance denoising, high-correlation variable removal, and cleaning report generation. Applicable scenarios arecredit risk data cleaning, variable screening, pre-loan modeling preprocessing.", - "lastIndexed": 1772928422149 + "lastIndexed": 1773533424747 }, { "name": "dataverse-python-advanced-patterns", "registry": "github/awesome-copilot", "path": "skills/dataverse-python-advanced-patterns", "description": "Generate production code for Dataverse SDK using advanced patterns, error handling, and optimization techniques.", - "lastIndexed": 1772928422082 + "lastIndexed": 1773533424706 }, { "name": "dataverse-python-production-code", "registry": "github/awesome-copilot", "path": "skills/dataverse-python-production-code", "description": "Generate production-ready Python code using Dataverse SDK with error handling, optimization, and best practices", - "lastIndexed": 1772928422149 + "lastIndexed": 1773533424718 }, { "name": "dataverse-python-quickstart", "registry": "github/awesome-copilot", "path": "skills/dataverse-python-quickstart", "description": "Generate Python SDK setup + CRUD + bulk + paging snippets using official patterns.", - "lastIndexed": 1772928422152 + "lastIndexed": 1773533424706 }, { "name": "dataverse-python-usecase-builder", "registry": "github/awesome-copilot", "path": "skills/dataverse-python-usecase-builder", "description": "Generate complete solutions for specific Dataverse SDK use cases with architecture recommendations", - "lastIndexed": 1772928422128 + "lastIndexed": 1773533424728 }, { "name": "debian-linux-triage", "registry": "github/awesome-copilot", "path": "skills/debian-linux-triage", "description": "Triage and resolve Debian Linux issues with apt, systemd, and AppArmor-aware guidance.", - "lastIndexed": 1772928422153 + "lastIndexed": 1773533424708 }, { "name": "declarative-agents", "registry": "github/awesome-copilot", "path": "skills/declarative-agents", "description": "Complete development kit for Microsoft 365 Copilot declarative agents with three comprehensive workflows (basic, advanced, validation), TypeSpec support, and Microsoft 365 Agents Toolkit integration", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424720 }, { "name": "devops-rollout-plan", "registry": "github/awesome-copilot", "path": "skills/devops-rollout-plan", "description": "Generate comprehensive rollout plans with preflight checks, step-by-step deployment, verification signals, rollback procedures, and communication plans for infrastructure and application changes", - "lastIndexed": 1772928422161 + "lastIndexed": 1773533424717 }, { "name": "documentation-writer", "registry": "github/awesome-copilot", "path": "skills/documentation-writer", "description": "Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.", - "lastIndexed": 1772928422093 + "lastIndexed": 1773533424708 }, { "name": "dotnet-best-practices", "registry": "github/awesome-copilot", "path": "skills/dotnet-best-practices", "description": "Ensure .NET/C# code meets best practices for the solution/project.", - "lastIndexed": 1772928422128 + "lastIndexed": 1773533424718 }, { "name": "dotnet-design-pattern-review", "registry": "github/awesome-copilot", "path": "skills/dotnet-design-pattern-review", "description": "Review the C#/.NET code for design pattern implementation and suggest improvements.", - "lastIndexed": 1772928422107 + "lastIndexed": 1773533424717 }, { "name": "dotnet-upgrade", "registry": "github/awesome-copilot", "path": "skills/dotnet-upgrade", "description": "Ready-to-use prompts for comprehensive .NET framework upgrade analysis and execution", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424723 + }, + { + "name": "doublecheck", + "registry": "github/awesome-copilot", + "path": "skills/doublecheck", + "description": "Three-layer verification pipeline for AI output. Extracts verifiable claims, finds supporting or contradicting sources via web search, runs adversarial review for hallucination patterns, and produces a structured verification report with source links for human review.", + "lastIndexed": 1773533424742 }, { "name": "editorconfig", "registry": "github/awesome-copilot", "path": "skills/editorconfig", "description": "Generates a comprehensive and best-practice-oriented .editorconfig file based on project analysis and user preferences.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424717 }, { "name": "ef-core", "registry": "github/awesome-copilot", "path": "skills/ef-core", "description": "Get best practices for Entity Framework Core", - "lastIndexed": 1772928422131 + "lastIndexed": 1773533424724 }, { "name": "entra-agent-user", "registry": "github/awesome-copilot", "path": "skills/entra-agent-user", "description": "Create Agent Users in Microsoft Entra ID from Agent Identities, enabling AI agents to act as digital workers with user identity capabilities in Microsoft 365 and Azure environments.", - "lastIndexed": 1772928422171 + "lastIndexed": 1773533424731 }, { "name": "excalidraw-diagram-generator", "registry": "github/awesome-copilot", "path": "skills/excalidraw-diagram-generator", "description": "Generate Excalidraw diagrams from natural language descriptions. Use when asked to \"create a diagram\", \"make a flowchart\", \"visualize a process\", \"draw a system architecture\", \"create a mind map\", or \"generate an Excalidraw file\". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.", - "lastIndexed": 1772928422181 + "lastIndexed": 1773533424749 }, { "name": "fabric-lakehouse", "registry": "github/awesome-copilot", "path": "skills/fabric-lakehouse", "description": "Use this skill to get context about Fabric Lakehouse and its features for software systems and AI-powered functions. It offers descriptions of Lakehouse data components, organization with schemas and shortcuts, access control, and code examples. This skill supports users in designing, building, and optimizing Lakehouse solutions using best practices.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424718 }, { "name": "fedora-linux-triage", "registry": "github/awesome-copilot", "path": "skills/fedora-linux-triage", "description": "Triage and resolve Fedora issues with dnf, systemd, and SELinux-aware guidance.", - "lastIndexed": 1772928422175 + "lastIndexed": 1773533424705 }, { "name": "finalize-agent-prompt", "registry": "github/awesome-copilot", "path": "skills/finalize-agent-prompt", "description": "Finalize prompt file using the role of an AI agent to polish the prompt for the end user.", - "lastIndexed": 1772928422132 + "lastIndexed": 1773533424709 }, { "name": "finnish-humanizer", "registry": "github/awesome-copilot", "path": "skills/finnish-humanizer", "description": "Detect and remove AI-generated markers from Finnish text, making it sound like a native Finnish speaker wrote it. Use when asked to \"humanize\", \"naturalize\", or \"remove AI feel\" from Finnish text, or when editing .md/.txt files containing Finnish content. Identifies 26 patterns (12 Finnish-specific + 14 universal) and 4 style markers.", - "lastIndexed": 1772928422171 + "lastIndexed": 1773533424728 }, { "name": "first-ask", "registry": "github/awesome-copilot", "path": "skills/first-ask", "description": "Interactive, input-tool powered, task refinement workflow: interrogates scope, deliverables, constraints before carrying out the task; Requires the Joyride extension.", - "lastIndexed": 1772928422152 + "lastIndexed": 1773533424706 + }, + { + "name": "flowstudio-power-automate-build", + "registry": "github/awesome-copilot", + "path": "skills/flowstudio-power-automate-build", + "description": "Build, scaffold, and deploy Power Automate cloud flows using the FlowStudio MCP server. Load this skill when asked to: create a flow, build a new flow, deploy a flow definition, scaffold a Power Automate workflow, construct a flow JSON, update an existing flow's actions, patch a flow definition, add actions to a flow, wire up connections, or generate a workflow definition from scratch. Requires a FlowStudio MCP subscription — see https://mcp.flowstudio.app", + "lastIndexed": 1773533424746 + }, + { + "name": "flowstudio-power-automate-debug", + "registry": "github/awesome-copilot", + "path": "skills/flowstudio-power-automate-debug", + "description": "Debug failing Power Automate cloud flows using the FlowStudio MCP server. Load this skill when asked to: debug a flow, investigate a failed run, why is this flow failing, inspect action outputs, find the root cause of a flow error, fix a broken Power Automate flow, diagnose a timeout, trace a DynamicOperationRequestFailure, check connector auth errors, read error details from a run, or troubleshoot expression failures. Requires a FlowStudio MCP subscription — see https://mcp.flowstudio.app", + "lastIndexed": 1773533424736 }, { "name": "flowstudio-power-automate-mcp", "registry": "github/awesome-copilot", "path": "skills/flowstudio-power-automate-mcp", "description": "Connect to and operate Power Automate cloud flows via a FlowStudio MCP server. Use when asked to: list flows, read a flow definition, check run history, inspect action outputs, resubmit a run, cancel a running flow, view connections, get a trigger URL, validate a definition, monitor flow health, or any task that requires talking to the Power Automate API through an MCP tool. Also use for Power Platform environment discovery and connection management. Requires a FlowStudio MCP subscription or compatible server — see https://mcp.flowstudio.app", - "lastIndexed": 1772928422181 + "lastIndexed": 1773533424746 }, { "name": "fluentui-blazor", "registry": "github/awesome-copilot", "path": "skills/fluentui-blazor", "description": "Guide for using the Microsoft Fluent UI Blazor component library (Microsoft.FluentUI.AspNetCore.Components NuGet package) in Blazor applications. Use this when the user is building a Blazor app with Fluent UI components, setting up the library, using FluentUI components like FluentButton, FluentDataGrid, FluentDialog, FluentToast, FluentNavMenu, FluentTextField, FluentSelect, FluentAutocomplete, FluentDesignTheme, or any component prefixed with \"Fluent\". Also use when troubleshooting missing providers, JS interop issues, or theming.", - "lastIndexed": 1772928422158 + "lastIndexed": 1773533424732 }, { "name": "folder-structure-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/folder-structure-blueprint-generator", "description": "Comprehensive technology-agnostic prompt for analyzing and documenting project folder structures. Auto-detects project types (.NET, Java, React, Angular, Python, Node.js, Flutter), generates detailed blueprints with visualization options, naming conventions, file placement patterns, and extension templates for maintaining consistent code organization across diverse technology stacks.", - "lastIndexed": 1772928422158 + "lastIndexed": 1773533424748 }, { "name": "game-engine", "registry": "github/awesome-copilot", "path": "skills/game-engine", "description": "Expert skill for building web-based game engines and games using HTML5, Canvas, WebGL, and JavaScript. Use when asked to create games, build game engines, implement game physics, handle collision detection, set up game loops, manage sprites, add game controls, or work with 2D/3D rendering. Covers techniques for platformers, breakout-style games, maze games, tilemaps, audio, multiplayer via WebRTC, and publishing games.", - "lastIndexed": 1772928422163 + "lastIndexed": 1773533424722 }, { "name": "gen-specs-as-issues", "registry": "github/awesome-copilot", "path": "skills/gen-specs-as-issues", "description": "This workflow guides you through a systematic approach to identify missing features, prioritize them, and create detailed specifications for implementation.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424718 }, { "name": "generate-custom-instructions-from-codebase", "registry": "github/awesome-copilot", "path": "skills/generate-custom-instructions-from-codebase", "description": "Migration and code evolution instructions generator for GitHub Copilot. Analyzes differences between two project versions (branches, commits, or releases) to create precise instructions allowing Copilot to maintain consistency during technology migrations, major refactoring, or framework version upgrades.", - "lastIndexed": 1772928422160 + "lastIndexed": 1773533424730 }, { "name": "gh-cli", "registry": "github/awesome-copilot", "path": "skills/gh-cli", "description": "GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line.", - "lastIndexed": 1772928422184 + "lastIndexed": 1773533424753 }, { "name": "git-commit", "registry": "github/awesome-copilot", "path": "skills/git-commit", "description": "Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions \"/commit\". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping", - "lastIndexed": 1772928422151 + "lastIndexed": 1773533424723 }, { "name": "git-flow-branch-creator", "registry": "github/awesome-copilot", "path": "skills/git-flow-branch-creator", "description": "Intelligent Git Flow branch creator that analyzes git status/diff and creates appropriate branches following the nvie Git Flow branching model.", - "lastIndexed": 1772928422169 + "lastIndexed": 1773533424729 }, { "name": "github-copilot-starter", "registry": "github/awesome-copilot", "path": "skills/github-copilot-starter", "description": "Set up complete GitHub Copilot configuration for a new project based on technology stack", - "lastIndexed": 1772928422169 + "lastIndexed": 1773533424739 }, { "name": "github-issues", "registry": "github/awesome-copilot", "path": "skills/github-issues", - "description": "Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, set issue fields (dates, priority, custom fields), set issue types, or manage issue workflows. Triggers on requests like \"create an issue\", \"file a bug\", \"request a feature\", \"update issue X\", \"set the priority\", \"set the start date\", or any GitHub issue management task.", - "lastIndexed": 1772928422160 + "description": "Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, set issue fields (dates, priority, custom fields), set issue types, manage issue workflows, link issues, add dependencies, or track blocked-by/blocking relationships. Triggers on requests like \"create an issue\", \"file a bug\", \"request a feature\", \"update issue X\", \"set the priority\", \"set the start date\", \"link issues\", \"add dependency\", \"blocked by\", \"blocking\", or any GitHub issue management task.", + "lastIndexed": 1773533424729 }, { "name": "go-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/go-mcp-server-generator", "description": "Generate a complete Go MCP server project with proper structure, dependencies, and implementation using the official github.com/modelcontextprotocol/go-sdk.", - "lastIndexed": 1772928422162 + "lastIndexed": 1773533424718 }, { "name": "image-manipulation-image-magick", "registry": "github/awesome-copilot", "path": "skills/image-manipulation-image-magick", "description": "Process and manipulate images using ImageMagick. Supports resizing, format conversion, batch processing, and retrieving image metadata. Use when working with images, creating thumbnails, resizing wallpapers, or performing batch image operations.", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424718 }, { "name": "import-infrastructure-as-code", "registry": "github/awesome-copilot", "path": "skills/import-infrastructure-as-code", "description": "Import existing Azure resources into Terraform using Azure CLI discovery and Azure Verified Modules (AVM). Use when asked to reverse-engineer live Azure infrastructure, generate Infrastructure as Code from existing subscriptions/resource groups/resource IDs, map dependencies, derive exact import addresses from downloaded module source, prevent configuration drift, and produce AVM-based Terraform files ready for validation and planning across any Azure resource type.", - "lastIndexed": 1772928422183 + "lastIndexed": 1773533424746 + }, + { + "name": "issue-fields-migration", + "registry": "github/awesome-copilot", + "path": "skills/issue-fields-migration", + "description": "Migrate field values from GitHub Project V2 fields or repo labels to org-level issue fields. Use this skill when users need to bulk-copy metadata (priority, status, dates, text, numbers) from project fields or labels to issue fields, or when they ask about migrating, transferring, or copying project field data or labels to issue fields.", + "lastIndexed": 1773533424747 }, { "name": "java-add-graalvm-native-image-support", "registry": "github/awesome-copilot", "path": "skills/java-add-graalvm-native-image-support", "description": "GraalVM Native Image expert that adds native image support to Java applications, builds the project, analyzes build errors, applies fixes, and iterates until successful compilation using Oracle best practices.", - "lastIndexed": 1772928422176 + "lastIndexed": 1773533424738 }, { "name": "java-docs", "registry": "github/awesome-copilot", "path": "skills/java-docs", "description": "Ensure that Java types are documented with Javadoc comments and follow best practices for documentation.", - "lastIndexed": 1772928422131 + "lastIndexed": 1773533424708 }, { "name": "java-junit", "registry": "github/awesome-copilot", "path": "skills/java-junit", "description": "Get best practices for JUnit 5 unit testing, including data-driven tests", - "lastIndexed": 1772928422130 + "lastIndexed": 1773533424734 }, { "name": "java-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/java-mcp-server-generator", "description": "Generate a complete Model Context Protocol server project in Java using the official MCP Java SDK with reactive streams and optional Spring Boot integration.", - "lastIndexed": 1772928422183 + "lastIndexed": 1773533424741 }, { "name": "java-refactoring-extract-method", "registry": "github/awesome-copilot", "path": "skills/java-refactoring-extract-method", "description": "Refactoring using Extract Methods in Java Language", - "lastIndexed": 1772928422155 + "lastIndexed": 1773533424709 }, { "name": "java-refactoring-remove-parameter", "registry": "github/awesome-copilot", "path": "skills/java-refactoring-remove-parameter", "description": "Refactoring using Remove Parameter in Java Language", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424705 }, { "name": "java-springboot", "registry": "github/awesome-copilot", "path": "skills/java-springboot", "description": "Get best practices for developing applications with Spring Boot.", - "lastIndexed": 1772928422130 + "lastIndexed": 1773533424721 }, { "name": "javascript-typescript-jest", "registry": "github/awesome-copilot", "path": "skills/javascript-typescript-jest", "description": "Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.", - "lastIndexed": 1772928422153 + "lastIndexed": 1773533424710 }, { "name": "kotlin-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/kotlin-mcp-server-generator", "description": "Generate a complete Kotlin MCP server project with proper structure, dependencies, and implementation using the official io.modelcontextprotocol:kotlin-sdk library.", - "lastIndexed": 1772928422172 + "lastIndexed": 1773533424730 }, { "name": "kotlin-springboot", "registry": "github/awesome-copilot", "path": "skills/kotlin-springboot", "description": "Get best practices for developing applications with Spring Boot and Kotlin.", - "lastIndexed": 1772928422163 + "lastIndexed": 1773533424717 }, { "name": "legacy-circuit-mockups", "registry": "github/awesome-copilot", "path": "skills/legacy-circuit-mockups", "description": "Generate breadboard circuit mockups and visual diagrams using HTML5 Canvas drawing techniques. Use when asked to create circuit layouts, visualize electronic component placements, draw breadboard diagrams, mockup 6502 builds, generate retro computer schematics, or design vintage electronics projects. Supports 555 timers, W65C02S microprocessors, 28C256 EEPROMs, W65C22 VIA chips, 7400-series logic gates, LEDs, resistors, capacitors, switches, buttons, crystals, and wires.", - "lastIndexed": 1772928422169 + "lastIndexed": 1773533424730 }, { "name": "make-repo-contribution", "registry": "github/awesome-copilot", "path": "skills/make-repo-contribution", "description": "All changes to code must follow the guidance documented in the repository. Before any issue is filed, branch is made, commits generated, or pull request (or PR) created, a search must be done to ensure the right steps are followed. Whenever asked to create an issue, commit messages, to push code, or create a PR, use this skill so everything is done correctly.", - "lastIndexed": 1772928422163 + "lastIndexed": 1773533424719 }, { "name": "make-skill-template", "registry": "github/awesome-copilot", "path": "skills/make-skill-template", "description": "Create new Agent Skills for GitHub Copilot from prompts or by duplicating this template. Use when asked to \"create a skill\", \"make a new skill\", \"scaffold a skill\", or when building specialized AI capabilities with bundled resources. Generates SKILL.md files with proper frontmatter, directory structure, and optional scripts/references/assets folders.", - "lastIndexed": 1772928422129 + "lastIndexed": 1773533424719 }, { "name": "markdown-to-html", "registry": "github/awesome-copilot", "path": "skills/markdown-to-html", "description": "Convert Markdown files to HTML similar to `marked.js`, `pandoc`, `gomarkdown/markdown`, or similar tools; or writing custom script to convert markdown to html and/or working on web template systems like `jekyll/jekyll`, `gohugoio/hugo`, or similar web templating systems that utilize markdown documents, converting them to html. Use when asked to \"convert markdown to html\", \"transform md to html\", \"render markdown\", \"generate html from markdown\", or when working with .md files and/or web a templating system that converts markdown to HTML output. Supports CLI and Node.js workflows with GFM, CommonMark, and standard Markdown flavors.", - "lastIndexed": 1772928422183 + "lastIndexed": 1773533424748 }, { "name": "mcp-cli", "registry": "github/awesome-copilot", "path": "skills/mcp-cli", "description": "Interface for MCP (Model Context Protocol) servers via CLI. Use when you need to interact with external tools, APIs, or data sources through MCP servers, list available MCP servers/tools, or call MCP tools from command line.", - "lastIndexed": 1772928422132 + "lastIndexed": 1773533424707 }, { "name": "mcp-configure", "registry": "github/awesome-copilot", "path": "skills/mcp-configure", "description": "Configure an MCP server for GitHub Copilot with your Dataverse environment.", - "lastIndexed": 1772928422173 + "lastIndexed": 1773533424730 }, { "name": "mcp-copilot-studio-server-generator", "registry": "github/awesome-copilot", "path": "skills/mcp-copilot-studio-server-generator", "description": "Generate a complete MCP server implementation optimized for Copilot Studio integration with proper schema constraints and streamable HTTP support", - "lastIndexed": 1772928422175 + "lastIndexed": 1773533424721 }, { "name": "mcp-create-adaptive-cards", "registry": "github/awesome-copilot", "path": "skills/mcp-create-adaptive-cards", "description": "Skill converted from mcp-create-adaptive-cards.prompt.md", - "lastIndexed": 1772928422160 + "lastIndexed": 1773533424728 }, { "name": "mcp-create-declarative-agent", "registry": "github/awesome-copilot", "path": "skills/mcp-create-declarative-agent", "description": "Skill converted from mcp-create-declarative-agent.prompt.md", - "lastIndexed": 1772928422170 + "lastIndexed": 1773533424732 }, { "name": "mcp-deploy-manage-agents", "registry": "github/awesome-copilot", "path": "skills/mcp-deploy-manage-agents", "description": "Skill converted from mcp-deploy-manage-agents.prompt.md", - "lastIndexed": 1772928422161 + "lastIndexed": 1773533424729 }, { "name": "meeting-minutes", "registry": "github/awesome-copilot", "path": "skills/meeting-minutes", "description": "Generate concise, actionable meeting minutes for internal meetings. Includes metadata, attendees, agenda, decisions, action items (owner + due date), and follow-up steps.", - "lastIndexed": 1772928422160 + "lastIndexed": 1773533424729 }, { "name": "memory-merger", "registry": "github/awesome-copilot", "path": "skills/memory-merger", "description": "Merges mature lessons from a domain memory file into its instruction file. Syntax: `/memory-merger >domain [scope]` where scope is `global` (default), `user`, `workspace`, or `ws`.", - "lastIndexed": 1772928422149 + "lastIndexed": 1773533424740 }, { "name": "mentoring-juniors", "registry": "github/awesome-copilot", "path": "skills/mentoring-juniors", "description": "Socratic mentoring for junior developers and AI newcomers. Guides through questions, never answers. Triggers: \"help me understand\", \"explain this code\", \"I'm stuck\", \"Im stuck\", \"I'm confused\", \"Im confused\", \"I don't understand\", \"I dont understand\", \"can you teach me\", \"teach me\", \"mentor me\", \"guide me\", \"what does this error mean\", \"why doesn't this work\", \"why does not this work\", \"I'm a beginner\", \"Im a beginner\", \"I'm learning\", \"Im learning\", \"I'm new to this\", \"Im new to this\", \"walk me through\", \"how does this work\", \"what's wrong with my code\", \"what's wrong\", \"can you break this down\", \"ELI5\", \"step by step\", \"where do I start\", \"what am I missing\", \"newbie here\", \"junior dev\", \"first time using\", \"how do I\", \"what is\", \"is this right\", \"not sure\", \"need help\", \"struggling\", \"show me\", \"help me debug\", \"best practice\", \"too complex\", \"overwhelmed\", \"lost\", \"debug this\", \"/socratic\", \"/hint\", \"/concept\", \"/pseudocode\". Progressive clue systems, teaching techniques, and success metrics.", - "lastIndexed": 1772928422168 + "lastIndexed": 1773533424742 }, { "name": "microsoft-code-reference", "registry": "github/awesome-copilot", "path": "skills/microsoft-code-reference", "description": "Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs.", - "lastIndexed": 1772928422149 + "lastIndexed": 1773533424717 }, { "name": "microsoft-docs", "registry": "github/awesome-copilot", "path": "skills/microsoft-docs", "description": "Query official Microsoft documentation to find concepts, tutorials, and code examples across Azure, .NET, Agent Framework, Aspire, VS Code, GitHub, and more. Uses Microsoft Learn MCP as the default, with Context7 and Aspire MCP for content that lives outside learn.microsoft.com.", - "lastIndexed": 1772928422130 + "lastIndexed": 1773533424719 }, { "name": "microsoft-skill-creator", "registry": "github/awesome-copilot", "path": "skills/microsoft-skill-creator", "description": "Create agent skills for Microsoft technologies using Learn MCP tools. Use when users want to create a skill that teaches agents about any Microsoft technology, library, framework, or service (Azure, .NET, M365, VS Code, Bicep, etc.). Investigates topics deeply, then generates a hybrid skill storing essential knowledge locally while enabling dynamic deeper investigation.", - "lastIndexed": 1772928422182 + "lastIndexed": 1773533424731 + }, + { + "name": "migrating-oracle-to-postgres-stored-procedures", + "registry": "github/awesome-copilot", + "path": "skills/migrating-oracle-to-postgres-stored-procedures", + "description": "Migrates Oracle PL/SQL stored procedures to PostgreSQL PL/pgSQL. Translates Oracle-specific syntax, preserves method signatures and type-anchored parameters, leverages orafce where appropriate, and applies COLLATE \"C\" for Oracle-compatible text sorting. Use when converting Oracle stored procedures or functions to PostgreSQL equivalents during a database migration.", + "lastIndexed": 1773533424710 }, { "name": "mkdocs-translations", "registry": "github/awesome-copilot", "path": "skills/mkdocs-translations", "description": "Generate a language translation for a mkdocs documentation stack.", - "lastIndexed": 1772928422161 + "lastIndexed": 1773533424722 }, { "name": "model-recommendation", "registry": "github/awesome-copilot", "path": "skills/model-recommendation", "description": "Analyze chatmode or prompt files and recommend optimal AI models based on task complexity, required capabilities, and cost-efficiency", - "lastIndexed": 1772928422183 + "lastIndexed": 1773533424749 }, { "name": "msstore-cli", "registry": "github/awesome-copilot", "path": "skills/msstore-cli", "description": "Microsoft Store Developer CLI (msstore) for publishing Windows applications to the Microsoft Store. Use when asked to configure Store credentials, list Store apps, check submission status, publish submissions, manage package flights, set up CI/CD for Store publishing, or integrate with Partner Center. Supports Windows App SDK/WinUI, UWP, .NET MAUI, Flutter, Electron, React Native, and PWA applications.", - "lastIndexed": 1772928422177 + "lastIndexed": 1773533424737 }, { "name": "multi-stage-dockerfile", "registry": "github/awesome-copilot", "path": "skills/multi-stage-dockerfile", "description": "Create optimized multi-stage Dockerfiles for any language or framework", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424707 }, { "name": "my-issues", "registry": "github/awesome-copilot", "path": "skills/my-issues", "description": "List my issues in the current repository", - "lastIndexed": 1772928422131 + "lastIndexed": 1773533424707 }, { "name": "my-pull-requests", "registry": "github/awesome-copilot", "path": "skills/my-pull-requests", "description": "List my pull requests in the current repository", - "lastIndexed": 1772928422108 + "lastIndexed": 1773533424709 }, { "name": "nano-banana-pro-openrouter", "registry": "github/awesome-copilot", "path": "skills/nano-banana-pro-openrouter", "description": "Generate or edit images via OpenRouter with the Gemini 3 Pro Image model. Use for prompt-only image generation, image edits, and multi-image compositing; supports 1K/2K/4K output.", - "lastIndexed": 1772928422132 + "lastIndexed": 1773533424708 + }, + { + "name": "napkin", + "registry": "github/awesome-copilot", + "path": "skills/napkin", + "description": "Visual whiteboard collaboration for Copilot CLI. Creates an interactive whiteboard that opens in your browser — draw, sketch, add sticky notes, then share everything back with Copilot. Copilot sees your drawings and text, and responds with analysis, suggestions, and ideas.", + "lastIndexed": 1773533424733 }, { "name": "next-intl-add-language", "registry": "github/awesome-copilot", "path": "skills/next-intl-add-language", "description": "Add new language to a Next.js + next-intl application", - "lastIndexed": 1772928422108 + "lastIndexed": 1773533424706 }, { "name": "noob-mode", "registry": "github/awesome-copilot", "path": "skills/noob-mode", "description": "Plain-English translation layer for non-technical Copilot CLI users. Translates every approval prompt, error message, and technical output into clear, jargon-free English with color-coded risk indicators.", - "lastIndexed": 1772928422182 + "lastIndexed": 1773533424737 }, { "name": "nuget-manager", "registry": "github/awesome-copilot", "path": "skills/nuget-manager", "description": "Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions.", - "lastIndexed": 1772928422162 + "lastIndexed": 1773533424721 }, { "name": "openapi-to-application-code", "registry": "github/awesome-copilot", "path": "skills/openapi-to-application-code", "description": "Generate a complete, production-ready application from an OpenAPI specification", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424723 }, { "name": "pdftk-server", "registry": "github/awesome-copilot", "path": "skills/pdftk-server", "description": "Skill for using the command-line tool pdftk (PDFtk Server) for working with PDF files. Use when asked to merge PDFs, split PDFs, rotate pages, encrypt or decrypt PDFs, fill PDF forms, apply watermarks, stamp overlays, extract metadata, burst documents into pages, repair corrupted PDFs, attach or extract files, or perform any PDF manipulation from the command line.", - "lastIndexed": 1772928422174 + "lastIndexed": 1773533424717 }, { "name": "penpot-uiux-design", "registry": "github/awesome-copilot", "path": "skills/penpot-uiux-design", "description": "Comprehensive guide for creating professional UI/UX designs in Penpot using MCP tools. Use this skill when: (1) Creating new UI/UX designs for web, mobile, or desktop applications, (2) Building design systems with components and tokens, (3) Designing dashboards, forms, navigation, or landing pages, (4) Applying accessibility standards and best practices, (5) Following platform guidelines (iOS, Android, Material Design), (6) Reviewing or improving existing Penpot designs for usability. Triggers: \"design a UI\", \"create interface\", \"build layout\", \"design dashboard\", \"create form\", \"design landing page\", \"make it accessible\", \"design system\", \"component library\".", - "lastIndexed": 1772928422159 + "lastIndexed": 1773533424737 }, { "name": "php-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/php-mcp-server-generator", "description": "Generate a complete PHP Model Context Protocol server project with tools, resources, prompts, and tests using the official PHP SDK", - "lastIndexed": 1772928422178 + "lastIndexed": 1773533424730 + }, + { + "name": "planning-oracle-to-postgres-migration-integration-testing", + "registry": "github/awesome-copilot", + "path": "skills/planning-oracle-to-postgres-migration-integration-testing", + "description": "Creates an integration testing plan for .NET data access artifacts during Oracle-to-PostgreSQL database migrations. Analyzes a single project to identify repositories, DAOs, and service layers that interact with the database, then produces a structured testing plan. Use when planning integration test coverage for a migrated project, identifying which data access methods need tests, or preparing for Oracle-to-PostgreSQL migration validation.", + "lastIndexed": 1773533424706 }, { "name": "plantuml-ascii", "registry": "github/awesome-copilot", "path": "skills/plantuml-ascii", "description": "Generate ASCII art diagrams using PlantUML text mode. Use when user asks to create ASCII diagrams, text-based diagrams, terminal-friendly diagrams, or mentions plantuml ascii, text diagram, ascii art diagram. Supports: Converting PlantUML diagrams to ASCII art, Creating sequence diagrams, class diagrams, flowcharts in ASCII format, Generating Unicode-enhanced ASCII art with -utxt flag", - "lastIndexed": 1772928422150 + "lastIndexed": 1773533424719 }, { "name": "playwright-automation-fill-in-form", "registry": "github/awesome-copilot", "path": "skills/playwright-automation-fill-in-form", "description": "Automate filling in a form using Playwright MCP", - "lastIndexed": 1772928422156 + "lastIndexed": 1773533424706 }, { "name": "playwright-explore-website", "registry": "github/awesome-copilot", "path": "skills/playwright-explore-website", "description": "Website exploration for testing using Playwright MCP", - "lastIndexed": 1772928422155 + "lastIndexed": 1773533424740 }, { "name": "playwright-generate-test", "registry": "github/awesome-copilot", "path": "skills/playwright-generate-test", "description": "Generate a Playwright test based on a scenario using Playwright MCP", - "lastIndexed": 1772928422130 + "lastIndexed": 1773533424705 }, { "name": "polyglot-test-agent", "registry": "github/awesome-copilot", "path": "skills/polyglot-test-agent", "description": "Generates comprehensive, workable unit tests for any programming language using a multi-agent pipeline. Use when asked to generate tests, write unit tests, improve test coverage, add test coverage, create test files, or test a codebase. Supports C#, TypeScript, JavaScript, Python, Go, Rust, Java, and more. Orchestrates research, planning, and implementation phases to produce tests that compile, pass, and follow project conventions.", - "lastIndexed": 1772928422175 + "lastIndexed": 1773533424722 }, { "name": "postgresql-code-review", "registry": "github/awesome-copilot", "path": "skills/postgresql-code-review", "description": "PostgreSQL-specific code review assistant focusing on PostgreSQL best practices, anti-patterns, and unique quality standards. Covers JSONB operations, array usage, custom types, schema design, function optimization, and PostgreSQL-exclusive security features like Row Level Security (RLS).", - "lastIndexed": 1772928422172 + "lastIndexed": 1773533424744 }, { "name": "postgresql-optimization", "registry": "github/awesome-copilot", "path": "skills/postgresql-optimization", "description": "PostgreSQL-specific development assistant focusing on unique PostgreSQL features, advanced data types, and PostgreSQL-exclusive capabilities. Covers JSONB operations, array types, custom types, range/geometric types, full-text search, window functions, and PostgreSQL extensions ecosystem.", - "lastIndexed": 1772928422168 + "lastIndexed": 1773533424737 }, { "name": "power-apps-code-app-scaffold", "registry": "github/awesome-copilot", "path": "skills/power-apps-code-app-scaffold", "description": "Scaffold a complete Power Apps Code App project with PAC CLI setup, SDK integration, and connector configuration", - "lastIndexed": 1772928422179 + "lastIndexed": 1773533424732 }, { "name": "power-bi-dax-optimization", "registry": "github/awesome-copilot", "path": "skills/power-bi-dax-optimization", "description": "Comprehensive Power BI DAX formula optimization prompt for improving performance, readability, and maintainability of DAX calculations.", - "lastIndexed": 1772928422150 + "lastIndexed": 1773533424723 }, { "name": "power-bi-model-design-review", "registry": "github/awesome-copilot", "path": "skills/power-bi-model-design-review", "description": "Comprehensive Power BI data model design review prompt for evaluating model architecture, relationships, and optimization opportunities.", - "lastIndexed": 1772928422170 + "lastIndexed": 1773533424730 }, { "name": "power-bi-performance-troubleshooting", "registry": "github/awesome-copilot", "path": "skills/power-bi-performance-troubleshooting", "description": "Systematic Power BI performance troubleshooting prompt for identifying, diagnosing, and resolving performance issues in Power BI models, reports, and queries.", - "lastIndexed": 1772928422170 + "lastIndexed": 1773533424732 }, { "name": "power-bi-report-design-consultation", "registry": "github/awesome-copilot", "path": "skills/power-bi-report-design-consultation", "description": "Power BI report visualization design prompt for creating effective, user-friendly, and accessible reports with optimal chart selection and layout design.", - "lastIndexed": 1772928422178 + "lastIndexed": 1773533424738 }, { "name": "power-platform-mcp-connector-suite", "registry": "github/awesome-copilot", "path": "skills/power-platform-mcp-connector-suite", "description": "Generate complete Power Platform custom connector with MCP integration for Copilot Studio - includes schema generation, troubleshooting, and validation", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424722 }, { "name": "powerbi-modeling", "registry": "github/awesome-copilot", "path": "skills/powerbi-modeling", "description": "Power BI semantic modeling assistant for building optimized data models. Use when working with Power BI semantic models, creating measures, designing star schemas, configuring relationships, implementing RLS, or optimizing model performance. Triggers on queries about DAX calculations, table relationships, dimension/fact table design, naming conventions, model documentation, cardinality, cross-filter direction, calculation groups, and data model best practices. Always connects to the active model first using power-bi-modeling MCP tools to understand the data structure before providing guidance.", - "lastIndexed": 1772928422175 + "lastIndexed": 1773533424720 }, { "name": "prd", "registry": "github/awesome-copilot", "path": "skills/prd", "description": "Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.", - "lastIndexed": 1772928422162 + "lastIndexed": 1773533424721 }, { "name": "project-workflow-analysis-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/project-workflow-analysis-blueprint-generator", "description": "Comprehensive technology-agnostic prompt generator for documenting end-to-end application workflows. Automatically detects project architecture patterns, technology stacks, and data flow patterns to generate detailed implementation blueprints covering entry points, service layers, data access, error handling, and testing approaches across multiple technologies including .NET, Java/Spring, React, and microservices architectures.", - "lastIndexed": 1772928422160 + "lastIndexed": 1773533424744 }, { "name": "prompt-builder", "registry": "github/awesome-copilot", "path": "skills/prompt-builder", "description": "Guide users through creating high-quality GitHub Copilot prompts with proper structure, tools, and best practices.", - "lastIndexed": 1772928422151 + "lastIndexed": 1773533424722 }, { "name": "pytest-coverage", "registry": "github/awesome-copilot", "path": "skills/pytest-coverage", "description": "Run pytest tests with coverage, discover lines missing coverage, and increase coverage to 100%.", - "lastIndexed": 1772928422130 + "lastIndexed": 1773533424709 }, { "name": "python-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/python-mcp-server-generator", "description": "Generate a complete MCP server project in Python with tools, resources, and proper configuration", - "lastIndexed": 1772928422150 + "lastIndexed": 1773533424723 }, { "name": "quasi-coder", "registry": "github/awesome-copilot", "path": "skills/quasi-coder", "description": "Expert 10x engineer skill for interpreting and implementing code from shorthand, quasi-code, and natural language descriptions. Use when collaborators provide incomplete code snippets, pseudo-code, or descriptions with potential typos or incorrect terminology. Excels at translating non-technical or semi-technical descriptions into production-quality code.", - "lastIndexed": 1772928422181 + "lastIndexed": 1773533424742 }, { "name": "readme-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/readme-blueprint-generator", "description": "Intelligent README.md generation prompt that analyzes project documentation structure and creates comprehensive repository documentation. Scans .github/copilot directory files and copilot-instructions.md to extract project information, technology stack, architecture, development workflow, coding standards, and testing approaches while generating well-structured markdown documentation with proper formatting, cross-references, and developer-focused content.", - "lastIndexed": 1772928422130 + "lastIndexed": 1773533424708 }, { "name": "refactor-method-complexity-reduce", "registry": "github/awesome-copilot", "path": "skills/refactor-method-complexity-reduce", "description": "Refactor given method `${input:methodName}` to reduce its cognitive complexity to `${input:complexityThreshold}` or below, by extracting helper methods.", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424722 }, { "name": "refactor-plan", "registry": "github/awesome-copilot", "path": "skills/refactor-plan", "description": "Plan a multi-file refactor with proper sequencing and rollback steps", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424709 }, { "name": "refactor", "registry": "github/awesome-copilot", "path": "skills/refactor", "description": "Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.", - "lastIndexed": 1772928422181 + "lastIndexed": 1773533424741 }, { "name": "remember-interactive-programming", "registry": "github/awesome-copilot", "path": "skills/remember-interactive-programming", "description": "A micro-prompt that reminds the agent that it is an interactive programmer. Works great in Clojure when Copilot has access to the REPL (probably via Backseat Driver). Will work with any system that has a live REPL that the agent can use. Adapt the prompt with any specific reminders in your workflow and/or workspace.", - "lastIndexed": 1772928422153 + "lastIndexed": 1773533424747 }, { "name": "remember", "registry": "github/awesome-copilot", "path": "skills/remember", "description": "Transforms lessons learned into domain-organized memory instructions (global or workspace). Syntax: `/remember [>domain [scope]] lesson clue` where scope is `global` (default), `user`, `workspace`, or `ws`.", - "lastIndexed": 1772928422162 + "lastIndexed": 1773533424723 }, { "name": "repo-story-time", "registry": "github/awesome-copilot", "path": "skills/repo-story-time", "description": "Generate a comprehensive repository summary and narrative story from commit history", - "lastIndexed": 1772928422170 + "lastIndexed": 1773533424730 }, { "name": "review-and-refactor", "registry": "github/awesome-copilot", "path": "skills/review-and-refactor", "description": "Review and refactor code in your project according to defined instructions", - "lastIndexed": 1772928422176 + "lastIndexed": 1773533424706 + }, + { + "name": "reviewing-oracle-to-postgres-migration", + "registry": "github/awesome-copilot", + "path": "skills/reviewing-oracle-to-postgres-migration", + "description": "Identifies Oracle-to-PostgreSQL migration risks by cross-referencing code against known behavioral differences (empty strings, refcursors, type coercion, sorting, timestamps, concurrent transactions, etc.). Use when planning a database migration, reviewing migration artifacts, or validating that integration tests cover Oracle/PostgreSQL differences.", + "lastIndexed": 1773533424708 }, { "name": "ruby-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/ruby-mcp-server-generator", "description": "Generate a complete Model Context Protocol server project in Ruby using the official MCP Ruby SDK gem.", - "lastIndexed": 1772928422179 + "lastIndexed": 1773533424748 }, { "name": "rust-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/rust-mcp-server-generator", "description": "Generate a complete Rust Model Context Protocol server project with tools, prompts, resources, and tests using the official rmcp SDK", - "lastIndexed": 1772928422179 + "lastIndexed": 1773533424729 + }, + { + "name": "scaffolding-oracle-to-postgres-migration-test-project", + "registry": "github/awesome-copilot", + "path": "skills/scaffolding-oracle-to-postgres-migration-test-project", + "description": "Scaffolds an xUnit integration test project for validating Oracle-to-PostgreSQL database migration behavior in .NET solutions. Creates the test project, transaction-rollback base class, and seed data manager. Use when setting up test infrastructure before writing migration integration tests, or when a test project is needed for Oracle-to-PostgreSQL validation.", + "lastIndexed": 1773533424708 }, { "name": "scoutqa-test", "registry": "github/awesome-copilot", "path": "skills/scoutqa-test", - "description": "This skill should be used when the user asks to \"test this website\", \"run exploratory testing\", \"check for accessibility issues\", \"verify the login flow works\", \"find bugs on this page\", or requests automated QA testing. Triggers on web application testing scenarios including smoke tests, accessibility audits, e-commerce flows, and user flow validation using ScoutQA CLI. IMPORTANT: Use this skill proactively after implementing web application features to verify they work correctly - don't wait for the user to ask for testing.", - "lastIndexed": 1772928422176 + "description": "This skill should be used when the user asks to \"test this website\", \"run exploratory testing\", \"check for accessibility issues\", \"verify the login flow works\", \"find bugs on this page\", or requests automated QA testing. Triggers on web application testing scenarios including smoke tests, accessibility audits, e-commerce flows, and user flow validation using ScoutQA CLI. Use this skill proactively after implementing web application features to verify they work correctly.", + "lastIndexed": 1773533424744 }, { "name": "shuffle-json-data", "registry": "github/awesome-copilot", "path": "skills/shuffle-json-data", "description": "Shuffle repetitive JSON objects safely by validating schema consistency before randomising entries.", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424722 }, { "name": "snowflake-semanticview", "registry": "github/awesome-copilot", "path": "skills/snowflake-semanticview", "description": "Create, alter, and validate Snowflake semantic views using Snowflake CLI (snow). Use when asked to build or troubleshoot semantic views/semantic layer definitions with CREATE/ALTER SEMANTIC VIEW, to validate semantic-view DDL against Snowflake via CLI, or to guide Snowflake CLI installation and connection setup.", - "lastIndexed": 1772928422150 + "lastIndexed": 1773533424722 }, { "name": "sponsor-finder", "registry": "github/awesome-copilot", "path": "skills/sponsor-finder", "description": "Find which of a GitHub repository's dependencies are sponsorable via GitHub Sponsors. Uses deps.dev API for dependency resolution across npm, PyPI, Cargo, Go, RubyGems, Maven, and NuGet. Checks npm funding metadata, FUNDING.yml files, and web search. Verifies every link. Shows direct and transitive dependencies with OSSF Scorecard health data. Invoke with /sponsor followed by a GitHub owner/repo (e.g. \"/sponsor expressjs/express\").", - "lastIndexed": 1772928422178 + "lastIndexed": 1773533424738 }, { "name": "sql-code-review", "registry": "github/awesome-copilot", "path": "skills/sql-code-review", "description": "Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage.", - "lastIndexed": 1772928422171 + "lastIndexed": 1773533424732 }, { "name": "sql-optimization", "registry": "github/awesome-copilot", "path": "skills/sql-optimization", "description": "Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance.", - "lastIndexed": 1772928422171 + "lastIndexed": 1773533424729 }, { "name": "structured-autonomy-generate", "registry": "github/awesome-copilot", "path": "skills/structured-autonomy-generate", "description": "Structured Autonomy Implementation Generator Prompt", - "lastIndexed": 1772928422162 + "lastIndexed": 1773533424720 }, { "name": "structured-autonomy-implement", "registry": "github/awesome-copilot", "path": "skills/structured-autonomy-implement", "description": "Structured Autonomy Implementation Prompt", - "lastIndexed": 1772928422167 + "lastIndexed": 1773533424707 }, { "name": "structured-autonomy-plan", "registry": "github/awesome-copilot", "path": "skills/structured-autonomy-plan", "description": "Structured Autonomy Planning Prompt", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424723 }, { "name": "suggest-awesome-github-copilot-agents", "registry": "github/awesome-copilot", "path": "skills/suggest-awesome-github-copilot-agents", "description": "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates.", - "lastIndexed": 1772928422161 + "lastIndexed": 1773533424721 }, { "name": "suggest-awesome-github-copilot-instructions", "registry": "github/awesome-copilot", "path": "skills/suggest-awesome-github-copilot-instructions", "description": "Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates.", - "lastIndexed": 1772928422165 - }, - { - "name": "suggest-awesome-github-copilot-prompts", - "registry": "github/awesome-copilot", - "path": "skills/suggest-awesome-github-copilot-prompts", - "description": "Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates.", - "lastIndexed": 1772928422180 + "lastIndexed": 1773533424720 }, { "name": "suggest-awesome-github-copilot-skills", "registry": "github/awesome-copilot", "path": "skills/suggest-awesome-github-copilot-skills", "description": "Suggest relevant GitHub Copilot skills from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing skills in this repository, and identifying outdated skills that need updates.", - "lastIndexed": 1772928422170 + "lastIndexed": 1773533424731 }, { "name": "swift-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/swift-mcp-server-generator", "description": "Generate a complete Model Context Protocol server project in Swift using the official MCP Swift SDK package.", - "lastIndexed": 1772928422181 + "lastIndexed": 1773533424742 }, { "name": "technology-stack-blueprint-generator", "registry": "github/awesome-copilot", "path": "skills/technology-stack-blueprint-generator", "description": "Comprehensive technology stack blueprint generator that analyzes codebases to create detailed architectural documentation. Automatically detects technology stacks, programming languages, and implementation patterns across multiple platforms (.NET, Java, JavaScript, React, Python). Generates configurable blueprints with version information, licensing details, usage patterns, coding conventions, and visual diagrams. Provides implementation-ready templates and maintains architectural consistency for guided development.", - "lastIndexed": 1772928422160 + "lastIndexed": 1773533424732 }, { "name": "terraform-azurerm-set-diff-analyzer", "registry": "github/awesome-copilot", "path": "skills/terraform-azurerm-set-diff-analyzer", "description": "Analyze Terraform plan JSON output for AzureRM Provider to distinguish between false-positive diffs (order-only changes in Set-type attributes) and actual resource changes. Use when reviewing terraform plan output for Azure resources like Application Gateway, Load Balancer, Firewall, Front Door, NSG, and other resources with Set-type attributes that cause spurious diffs due to internal ordering changes.", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424711 }, { "name": "tldr-prompt", "registry": "github/awesome-copilot", "path": "skills/tldr-prompt", "description": "Create tldr summaries for GitHub Copilot files (prompts, agents, instructions, collections), MCP servers, or documentation from URLs and queries.", - "lastIndexed": 1772928422173 + "lastIndexed": 1773533424731 }, { "name": "transloadit-media-processing", "registry": "github/awesome-copilot", "path": "skills/transloadit-media-processing", "description": "Process media files (video, audio, images, documents) using Transloadit. Use when asked to encode video to HLS/MP4, generate thumbnails, resize or watermark images, extract audio, concatenate clips, add subtitles, OCR documents, or run any media processing pipeline. Covers 86+ processing robots for file transformation at scale.", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424721 }, { "name": "typescript-mcp-server-generator", "registry": "github/awesome-copilot", "path": "skills/typescript-mcp-server-generator", "description": "Generate a complete MCP server project in TypeScript with tools, resources, and proper configuration", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424723 }, { "name": "typespec-api-operations", "registry": "github/awesome-copilot", "path": "skills/typespec-api-operations", "description": "Add GET, POST, PATCH, and DELETE operations to a TypeSpec API plugin with proper routing, parameters, and adaptive cards", - "lastIndexed": 1772928422174 + "lastIndexed": 1773533424719 }, { "name": "typespec-create-agent", "registry": "github/awesome-copilot", "path": "skills/typespec-create-agent", "description": "Generate a complete TypeSpec declarative agent with instructions, capabilities, and conversation starters for Microsoft 365 Copilot", - "lastIndexed": 1772928422167 + "lastIndexed": 1773533424711 }, { "name": "typespec-create-api-plugin", "registry": "github/awesome-copilot", "path": "skills/typespec-create-api-plugin", "description": "Generate a TypeSpec API plugin with REST operations, authentication, and Adaptive Cards for Microsoft 365 Copilot", - "lastIndexed": 1772928422163 + "lastIndexed": 1773533424723 }, { "name": "update-avm-modules-in-bicep", "registry": "github/awesome-copilot", "path": "skills/update-avm-modules-in-bicep", "description": "Update Azure Verified Modules (AVM) to latest versions in Bicep files.", - "lastIndexed": 1772928422154 + "lastIndexed": 1773533424709 }, { "name": "update-implementation-plan", "registry": "github/awesome-copilot", "path": "skills/update-implementation-plan", "description": "Update an existing implementation plan file with new or update requirements to provide new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.", - "lastIndexed": 1772928422175 + "lastIndexed": 1773533424720 }, { "name": "update-llms", "registry": "github/awesome-copilot", "path": "skills/update-llms", "description": "Update the llms.txt file in the root folder to reflect changes in documentation or specifications following the llms.txt specification at https://llmstxt.org/", - "lastIndexed": 1772928422169 + "lastIndexed": 1773533424733 }, { "name": "update-markdown-file-index", "registry": "github/awesome-copilot", "path": "skills/update-markdown-file-index", "description": "Update a markdown file section with an index/table of files from a specified folder.", - "lastIndexed": 1772928422155 + "lastIndexed": 1773533424710 }, { "name": "update-oo-component-documentation", "registry": "github/awesome-copilot", "path": "skills/update-oo-component-documentation", "description": "Update existing object-oriented component documentation following industry best practices and architectural documentation standards.", - "lastIndexed": 1772928422165 + "lastIndexed": 1773533424720 }, { "name": "update-specification", "registry": "github/awesome-copilot", "path": "skills/update-specification", "description": "Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code.", - "lastIndexed": 1772928422151 + "lastIndexed": 1773533424720 }, { "name": "vscode-ext-commands", "registry": "github/awesome-copilot", "path": "skills/vscode-ext-commands", "description": "Guidelines for contributing commands in VS Code extensions. Indicates naming convention, visibility, localization and other relevant attributes, following VS Code extension development guidelines, libraries and good practices", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424734 }, { "name": "vscode-ext-localization", "registry": "github/awesome-copilot", "path": "skills/vscode-ext-localization", "description": "Guidelines for proper localization of VS Code extensions, following VS Code extension development guidelines, libraries and good practices", - "lastIndexed": 1772928422167 + "lastIndexed": 1773533424740 }, { "name": "web-coder", "registry": "github/awesome-copilot", "path": "skills/web-coder", "description": "Expert 10x engineer with comprehensive knowledge of web development, internet protocols, and web standards. Use when working with HTML, CSS, JavaScript, web APIs, HTTP/HTTPS, web security, performance optimization, accessibility, or any web/internet concepts. Specializes in translating web terminology accurately and implementing modern web standards across frontend and backend development.", - "lastIndexed": 1772928422184 + "lastIndexed": 1773533424748 }, { "name": "web-design-reviewer", "registry": "github/awesome-copilot", "path": "skills/web-design-reviewer", "description": "This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like \"review website design\", \"check the UI\", \"fix the layout\", \"find design problems\". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.", - "lastIndexed": 1772928422177 + "lastIndexed": 1773533424738 }, { "name": "webapp-testing", "registry": "github/awesome-copilot", "path": "skills/webapp-testing", "description": "Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.", - "lastIndexed": 1772928422163 + "lastIndexed": 1773533424721 }, { "name": "what-context-needed", "registry": "github/awesome-copilot", "path": "skills/what-context-needed", "description": "Ask Copilot what files it needs to see before answering a question", - "lastIndexed": 1772928422166 + "lastIndexed": 1773533424711 }, { "name": "winapp-cli", "registry": "github/awesome-copilot", "path": "skills/winapp-cli", "description": "Windows App Development CLI (winapp) for building, packaging, and deploying Windows applications. Use when asked to initialize Windows app projects, create MSIX packages, generate AppxManifest.xml, manage development certificates, add package identity for debugging, sign packages, publish to the Microsoft Store, create external catalogs, or access Windows SDK build tools. Supports .NET (csproj), C++, Electron, Rust, Tauri, and cross-platform frameworks targeting Windows.", - "lastIndexed": 1772928422172 + "lastIndexed": 1773533424731 }, { "name": "winmd-api-search", "registry": "github/awesome-copilot", "path": "skills/winmd-api-search", "description": "Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).", - "lastIndexed": 1772928422180 + "lastIndexed": 1773533424731 }, { "name": "winui3-migration-guide", "registry": "github/awesome-copilot", "path": "skills/winui3-migration-guide", "description": "UWP-to-WinUI 3 migration reference. Maps legacy UWP APIs to correct Windows App SDK equivalents with before/after code snippets. Covers namespace changes, threading (CoreDispatcher to DispatcherQueue), windowing (CoreWindow to AppWindow), dialogs, pickers, sharing, printing, background tasks, and the most common Copilot code generation mistakes.", - "lastIndexed": 1772928422180 + "lastIndexed": 1773533424733 }, { "name": "workiq-copilot", "registry": "github/awesome-copilot", "path": "skills/workiq-copilot", "description": "Guides the Copilot CLI on how to use the WorkIQ CLI/MCP server to query Microsoft 365 Copilot data (emails, meetings, docs, Teams, people) for live context, summaries, and recommendations.", - "lastIndexed": 1772928422164 + "lastIndexed": 1773533424720 }, { "name": "write-coding-standards-from-file", "registry": "github/awesome-copilot", "path": "skills/write-coding-standards-from-file", "description": "Write a coding standards document for a project using the coding styles from the file(s) and/or folder(s) passed as arguments in the prompt.", - "lastIndexed": 1772928422182 + "lastIndexed": 1773533424738 }, { "name": "code-simplifier", "registry": "simonwong/agent-skills", "path": "skills/code-simplifier", "description": "Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.", - "lastIndexed": 1772928422069 + "lastIndexed": 1773533424604 }, { "name": "rewrite-en2zh", "registry": "simonwong/agent-skills", "path": "skills/rewrite-en2zh", "description": "将英文内容重写为简体中文。用于英文文章、文档、博客的中文重写。使用 deverbalization 技巧,理解原意后脱离英文外壳,用中文自然表达,而非逐字对照。保留 Markdown 格式、AI 专有名词。", - "lastIndexed": 1772928422131 + "lastIndexed": 1773533424605 }, { "name": "superdesign", "registry": "superdesigndev/superdesign-skill", "path": "skills/superdesign", "description": "Superdesign is a design agent specialized in frontend UI/UX design. Use this skill before implementing any UI that requires design thinking. Common commands: superdesign create-project --title \"X\" (setup project), superdesign create-design-draft --project-id <id> --title \"Current UI\" -p \"Faithfully reproduce...\" --context-file src/Component.tsx (faithful reproduction), superdesign iterate-design-draft --draft-id <id> -p \"dark theme\" -p \"minimal\" --mode branch --context-file src/Component.tsx (design variations), superdesign execute-flow-pages --draft-id <id> --pages '[...]' --context-file src/Component.tsx (extend to more pages), superdesign create-component --project-id <id> --name \"NavBar\" --html-file /tmp/navbar.html --props '[...]' (extract reusable component), superdesign update-component --component-id <id> --html-file /tmp/navbar.html (update existing component), superdesign list-components --project-id <id> (list existing components). Supports line ranges: --context-file path:startLine:endLine", - "lastIndexed": 1772928422069 + "lastIndexed": 1773533424605 }, { "name": "code-connect-components", "registry": "figma/mcp-server-guide", "path": "skills/code-connect-components", "description": "Connects Figma design components to code components using Code Connect. Use when user says \"code connect\", \"connect this component to code\", \"connect Figma to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", \"add code connect\", \"connect design to code\", or wants to establish mappings between Figma designs and code implementations. Requires Figma MCP server connection.", - "lastIndexed": 1772928422182 + "lastIndexed": 1773533424688 }, { "name": "create-design-system-rules", "registry": "figma/mcp-server-guide", "path": "skills/create-design-system-rules", "description": "Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.", - "lastIndexed": 1772928422184 + "lastIndexed": 1773533424715 }, { "name": "implement-design", "registry": "figma/mcp-server-guide", "path": "skills/implement-design", "description": "Translates Figma designs into production-ready code with 1:1 visual fidelity. Use when implementing UI from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", \"build Figma design\", provides Figma URLs, or asks to build components matching Figma specs. Requires Figma MCP server connection.", - "lastIndexed": 1772928422179 + "lastIndexed": 1773533424661 }, { "name": "accessibility", "registry": "addyosmani/web-quality-skills", "path": "skills/accessibility", - "description": "Audit and improve web accessibility following WCAG 2.1 guidelines. Use when asked to \"improve accessibility\", \"a11y audit\", \"WCAG compliance\", \"screen reader support\", \"keyboard navigation\", or \"make accessible\".", - "lastIndexed": 1772928422314 + "description": "Audit and improve web accessibility following WCAG 2.2 guidelines. Use when asked to \"improve accessibility\", \"a11y audit\", \"WCAG compliance\", \"screen reader support\", \"keyboard navigation\", or \"make accessible\".", + "lastIndexed": 1773533424945 }, { "name": "best-practices", "registry": "addyosmani/web-quality-skills", "path": "skills/best-practices", "description": "Apply modern web development best practices for security, compatibility, and code quality. Use when asked to \"apply best practices\", \"security audit\", \"modernize code\", \"code quality review\", or \"check for vulnerabilities\".", - "lastIndexed": 1772928422307 + "lastIndexed": 1773533424938 }, { "name": "core-web-vitals", "registry": "addyosmani/web-quality-skills", "path": "skills/core-web-vitals", "description": "Optimize Core Web Vitals (LCP, INP, CLS) for better page experience and search ranking. Use when asked to \"improve Core Web Vitals\", \"fix LCP\", \"reduce CLS\", \"optimize INP\", \"page experience optimization\", or \"fix layout shifts\".", - "lastIndexed": 1772928422306 + "lastIndexed": 1773533424949 }, { "name": "performance", "registry": "addyosmani/web-quality-skills", "path": "skills/performance", "description": "Optimize web performance for faster loading and better user experience. Use when asked to \"speed up my site\", \"optimize performance\", \"reduce load time\", \"fix slow loading\", \"improve page speed\", or \"performance audit\".", - "lastIndexed": 1772928422308 + "lastIndexed": 1773533424953 }, { "name": "seo", "registry": "addyosmani/web-quality-skills", "path": "skills/seo", "description": "Optimize for search engine visibility and ranking. Use when asked to \"improve SEO\", \"optimize for search\", \"fix meta tags\", \"add structured data\", \"sitemap optimization\", or \"search engine optimization\".", - "lastIndexed": 1772928422282 + "lastIndexed": 1773533424955 }, { "name": "web-quality-audit", "registry": "addyosmani/web-quality-skills", "path": "skills/web-quality-audit", "description": "Comprehensive web quality audit covering performance, accessibility, SEO, and best practices. Use when asked to \"audit my site\", \"review web quality\", \"run lighthouse audit\", \"check page quality\", or \"optimize my website\".", - "lastIndexed": 1772928422320 + "lastIndexed": 1773533424960 }, { "name": "vueuse-functions", "registry": "vueuse/skills", "path": "skills/vueuse-functions", "description": "Apply VueUse composables where appropriate to build concise, maintainable Vue.js / Nuxt features.", - "lastIndexed": 1772928422344 + "lastIndexed": 1773533425017 }, { "name": "java-concurrency", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-concurrency", "description": "Master Java concurrency - threads, executors, locks, CompletableFuture, virtual threads", - "lastIndexed": 1772928422339 + "lastIndexed": 1773533424967 }, { "name": "java-docker", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-docker", "description": "Containerize Java applications - Dockerfile optimization, JVM settings, security", - "lastIndexed": 1772928422350 + "lastIndexed": 1773533424983 }, { "name": "java-fundamentals", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-fundamentals", "description": "Master core Java programming - syntax, OOP, collections, streams, and exception handling", - "lastIndexed": 1772928422353 + "lastIndexed": 1773533424952 }, { "name": "java-gradle", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-gradle", "description": "Master Gradle - Kotlin DSL, task configuration, build optimization, caching", - "lastIndexed": 1772928422362 + "lastIndexed": 1773533424972 }, { "name": "java-jpa-hibernate", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-jpa-hibernate", "description": "Master JPA/Hibernate - entity design, queries, transactions, performance optimization", - "lastIndexed": 1772928422343 + "lastIndexed": 1773533424957 }, { "name": "java-maven-gradle", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-maven-gradle", "description": "Master Maven and Gradle - build configuration, dependencies, plugins, CI/CD", - "lastIndexed": 1772928422354 + "lastIndexed": 1773533424969 }, { "name": "java-maven", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-maven", "description": "Master Apache Maven - POM configuration, plugins, lifecycle, dependency management", - "lastIndexed": 1772928422350 + "lastIndexed": 1773533424959 }, { "name": "java-microservices", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-microservices", "description": "Build microservices - Spring Cloud, service mesh, event-driven, resilience patterns", - "lastIndexed": 1772928422353 + "lastIndexed": 1773533424971 }, { "name": "java-performance", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-performance", "description": "JVM performance tuning - GC optimization, profiling, memory analysis, benchmarking", - "lastIndexed": 1772928422342 + "lastIndexed": 1773533424952 }, { "name": "java-spring-boot", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-spring-boot", "description": "Build production Spring Boot applications - REST APIs, Security, Data, Actuator", - "lastIndexed": 1772928422345 + "lastIndexed": 1773533424953 }, { "name": "java-testing-advanced", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-testing-advanced", "description": "Advanced testing - Testcontainers, contract testing, mutation testing, property-based", - "lastIndexed": 1772928422335 + "lastIndexed": 1773533424985 }, { "name": "java-testing", "registry": "pluginagentmarketplace/custom-plugin-java", "path": "skills/java-testing", "description": "Test Java applications - JUnit 5, Mockito, integration testing, TDD patterns", - "lastIndexed": 1772928422366 + "lastIndexed": 1773533424957 }, { "name": "dev-browser", "registry": "SawyerHood/dev-browser", "path": "skills/dev-browser", "description": "Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include \"go to [url]\", \"click on\", \"fill out the form\", \"take a screenshot\", \"scrape\", \"automate\", \"test the website\", \"log into\", or any browser interaction request.", - "lastIndexed": 1772928422344 + "lastIndexed": 1773533424972 }, { "name": "webgpu-threejs-tsl", "registry": "dgreenheck/webgpu-claude-skill", "path": "skills/webgpu-threejs-tsl", "description": "Comprehensive guide for developing WebGPU-enabled Three.js applications using TSL (Three.js Shading Language). Covers WebGPU renderer setup, TSL syntax and node materials, compute shaders, post-processing effects, and WGSL integration. Use this skill when working with Three.js WebGPU, TSL shaders, node materials, or GPU compute in Three.js.", - "lastIndexed": 1772928422544 + "lastIndexed": 1773533425210 }, { "name": "agent-harness-construction", "registry": "affaan-m/everything-claude-code", "path": "skills/agent-harness-construction", "description": "Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates.", - "lastIndexed": 1772928422518 + "lastIndexed": 1773533425214 }, { "name": "agentic-engineering", "registry": "affaan-m/everything-claude-code", "path": "skills/agentic-engineering", "description": "Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing.", - "lastIndexed": 1772928422518 + "lastIndexed": 1773533425241 }, { "name": "ai-first-engineering", "registry": "affaan-m/everything-claude-code", "path": "skills/ai-first-engineering", "description": "Engineering operating model for teams where AI agents generate a large share of implementation output.", - "lastIndexed": 1772928422513 + "lastIndexed": 1773533425258 + }, + { + "name": "android-clean-architecture", + "registry": "affaan-m/everything-claude-code", + "path": "skills/android-clean-architecture", + "description": "Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns.", + "lastIndexed": 1773533425248 }, { "name": "api-design", "registry": "affaan-m/everything-claude-code", "path": "skills/api-design", "description": "REST API design patterns including resource naming, status codes, pagination, filtering, error responses, versioning, and rate limiting for production APIs.", - "lastIndexed": 1772928422511 + "lastIndexed": 1773533425243 }, { "name": "article-writing", "registry": "affaan-m/everything-claude-code", "path": "skills/article-writing", "description": "Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter.", - "lastIndexed": 1772928422540 + "lastIndexed": 1773533425240 }, { "name": "autonomous-loops", "registry": "affaan-m/everything-claude-code", "path": "skills/autonomous-loops", "description": "Patterns and architectures for autonomous Claude Code loops — from simple sequential pipelines to RFC-driven multi-agent DAG systems.", - "lastIndexed": 1772928422549 + "lastIndexed": 1773533425209 }, { "name": "backend-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/backend-patterns", "description": "Backend architecture patterns, API design, database optimization, and server-side best practices for Node.js, Express, and Next.js API routes.", - "lastIndexed": 1772928422534 + "lastIndexed": 1773533425257 + }, + { + "name": "blueprint", + "registry": "affaan-m/everything-claude-code", + "path": "skills/blueprint", + "description": "Turn a one-line objective into a step-by-step construction plan for multi-session, multi-agent engineering projects. Each step has a self-contained context brief so a fresh agent can execute it cold. Includes adversarial review gate, dependency graph, parallel step detection, anti-pattern catalog, and plan mutation protocol. TRIGGER when: user requests a plan, blueprint, or roadmap for a complex multi-PR task, or describes work that needs multiple sessions. DO NOT TRIGGER when: task is completable in a single PR or fewer than 3 tool calls, or user says \"just do it\".", + "lastIndexed": 1773533425232 + }, + { + "name": "carrier-relationship-management", + "registry": "affaan-m/everything-claude-code", + "path": "skills/carrier-relationship-management", + "description": "Codified expertise for managing carrier portfolios, negotiating freight rates, tracking carrier performance, allocating freight, and maintaining strategic carrier relationships. Informed by transportation managers with 15+ years experience. Includes scorecarding frameworks, RFP processes, market intelligence, and compliance vetting. Use when managing carriers, negotiating rates, evaluating carrier performance, or building freight strategies.", + "lastIndexed": 1773533425261 + }, + { + "name": "claude-api", + "registry": "affaan-m/everything-claude-code", + "path": "skills/claude-api", + "description": "Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.", + "lastIndexed": 1773533425253 }, { "name": "clickhouse-io", "registry": "affaan-m/everything-claude-code", "path": "skills/clickhouse-io", "description": "ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.", - "lastIndexed": 1772928422538 + "lastIndexed": 1773533425205 }, { "name": "coding-standards", "registry": "affaan-m/everything-claude-code", "path": "skills/coding-standards", "description": "Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.", - "lastIndexed": 1772928422503 + "lastIndexed": 1773533425239 + }, + { + "name": "compose-multiplatform-patterns", + "registry": "affaan-m/everything-claude-code", + "path": "skills/compose-multiplatform-patterns", + "description": "Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.", + "lastIndexed": 1773533425280 }, { "name": "configure-ecc", "registry": "affaan-m/everything-claude-code", "path": "skills/configure-ecc", "description": "Interactive installer for Everything Claude Code — guides users through selecting and installing skills and rules to user-level or project-level directories, verifies paths, and optionally optimizes installed files.", - "lastIndexed": 1772928422512 + "lastIndexed": 1773533425256 }, { "name": "content-engine", "registry": "affaan-m/everything-claude-code", "path": "skills/content-engine", "description": "Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.", - "lastIndexed": 1772928422522 + "lastIndexed": 1773533425246 }, { "name": "content-hash-cache-pattern", "registry": "affaan-m/everything-claude-code", "path": "skills/content-hash-cache-pattern", "description": "Cache expensive file processing results using SHA-256 content hashes — path-independent, auto-invalidating, with service layer separation.", - "lastIndexed": 1772928422522 + "lastIndexed": 1773533425240 }, { "name": "continuous-agent-loop", "registry": "affaan-m/everything-claude-code", "path": "skills/continuous-agent-loop", "description": "Patterns for continuous autonomous agent loops with quality gates, evals, and recovery controls.", - "lastIndexed": 1772928422544 + "lastIndexed": 1773533425232 }, { "name": "continuous-learning-v2", "registry": "affaan-m/everything-claude-code", "path": "skills/continuous-learning-v2", "description": "Instinct-based learning system that observes sessions via hooks, creates atomic instincts with confidence scoring, and evolves them into skills/commands/agents. v2.1 adds project-scoped instincts to prevent cross-project contamination.", - "lastIndexed": 1772928422511 + "lastIndexed": 1773533425257 }, { "name": "continuous-learning", "registry": "affaan-m/everything-claude-code", "path": "skills/continuous-learning", "description": "Automatically extract reusable patterns from Claude Code sessions and save them as learned skills for future use.", - "lastIndexed": 1772928422538 + "lastIndexed": 1773533425245 }, { "name": "cost-aware-llm-pipeline", "registry": "affaan-m/everything-claude-code", "path": "skills/cost-aware-llm-pipeline", "description": "Cost optimization patterns for LLM API usage — model routing by task complexity, budget tracking, retry logic, and prompt caching.", - "lastIndexed": 1772928422525 + "lastIndexed": 1773533425250 }, { "name": "cpp-coding-standards", "registry": "affaan-m/everything-claude-code", "path": "skills/cpp-coding-standards", "description": "C++ coding standards based on the C++ Core Guidelines (isocpp.github.io). Use when writing, reviewing, or refactoring C++ code to enforce modern, safe, and idiomatic practices.", - "lastIndexed": 1772928422547 + "lastIndexed": 1773533425322 }, { "name": "cpp-testing", "registry": "affaan-m/everything-claude-code", "path": "skills/cpp-testing", "description": "Use only when writing/updating/fixing C++ tests, configuring GoogleTest/CTest, diagnosing failing or flaky tests, or adding coverage/sanitizers.", - "lastIndexed": 1772928422534 + "lastIndexed": 1773533425244 + }, + { + "name": "crosspost", + "registry": "affaan-m/everything-claude-code", + "path": "skills/crosspost", + "description": "Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.", + "lastIndexed": 1773533425222 + }, + { + "name": "customs-trade-compliance", + "registry": "affaan-m/everything-claude-code", + "path": "skills/customs-trade-compliance", + "description": "Codified expertise for customs documentation, tariff classification, duty optimization, restricted party screening, and regulatory compliance across multiple jurisdictions. Informed by trade compliance specialists with 15+ years experience. Includes HS classification logic, Incoterms application, FTA utilization, and penalty mitigation. Use when handling customs clearance, tariff classification, trade compliance, import/export documentation, or duty optimization.", + "lastIndexed": 1773533425255 }, { "name": "database-migrations", "registry": "affaan-m/everything-claude-code", "path": "skills/database-migrations", "description": "Database migration best practices for schema changes, data migrations, rollbacks, and zero-downtime deployments across PostgreSQL, MySQL, and common ORMs (Prisma, Drizzle, Django, TypeORM, golang-migrate).", - "lastIndexed": 1772928422535 + "lastIndexed": 1773533425244 + }, + { + "name": "deep-research", + "registry": "affaan-m/everything-claude-code", + "path": "skills/deep-research", + "description": "Multi-source deep research using firecrawl and exa MCPs. Searches the web, synthesizes findings, and delivers cited reports with source attribution. Use when the user wants thorough research on any topic with evidence and citations.", + "lastIndexed": 1773533425250 }, { "name": "deployment-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/deployment-patterns", "description": "Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications.", - "lastIndexed": 1772928422534 + "lastIndexed": 1773533425244 }, { "name": "django-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/django-patterns", "description": "Django architecture patterns, REST API design with DRF, ORM best practices, caching, signals, middleware, and production-grade Django apps.", - "lastIndexed": 1772928422545 + "lastIndexed": 1773533425259 }, { "name": "django-security", "registry": "affaan-m/everything-claude-code", "path": "skills/django-security", "description": "Django security best practices, authentication, authorization, CSRF protection, SQL injection prevention, XSS prevention, and secure deployment configurations.", - "lastIndexed": 1772928422551 + "lastIndexed": 1773533425259 }, { "name": "django-tdd", "registry": "affaan-m/everything-claude-code", "path": "skills/django-tdd", "description": "Django testing strategies with pytest-django, TDD methodology, factory_boy, mocking, coverage, and testing Django REST Framework APIs.", - "lastIndexed": 1772928422540 + "lastIndexed": 1773533425306 }, { "name": "django-verification", "registry": "affaan-m/everything-claude-code", "path": "skills/django-verification", "description": "Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.", - "lastIndexed": 1772928422538 + "lastIndexed": 1773533425244 + }, + { + "name": "dmux-workflows", + "registry": "affaan-m/everything-claude-code", + "path": "skills/dmux-workflows", + "description": "Multi-agent orchestration using dmux (tmux pane manager for AI agents). Patterns for parallel agent workflows across Claude Code, Codex, OpenCode, and other harnesses. Use when running multiple agent sessions in parallel or coordinating multi-agent development workflows.", + "lastIndexed": 1773533425216 }, { "name": "docker-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/docker-patterns", "description": "Docker and Docker Compose patterns for local development, container security, networking, volume strategies, and multi-service orchestration.", - "lastIndexed": 1772928422535 + "lastIndexed": 1773533425249 }, { "name": "e2e-testing", "registry": "affaan-m/everything-claude-code", "path": "skills/e2e-testing", "description": "Playwright E2E testing patterns, Page Object Model, configuration, CI/CD integration, artifact management, and flaky test strategies.", - "lastIndexed": 1772928422529 + "lastIndexed": 1773533425244 + }, + { + "name": "energy-procurement", + "registry": "affaan-m/everything-claude-code", + "path": "skills/energy-procurement", + "description": "Codified expertise for electricity and gas procurement, tariff optimization, demand charge management, renewable PPA evaluation, and multi-facility energy cost management. Informed by energy procurement managers with 15+ years experience at large commercial and industrial consumers. Includes market structure analysis, hedging strategies, load profiling, and sustainability reporting frameworks. Use when procuring energy, optimizing tariffs, managing demand charges, evaluating PPAs, or developing energy strategies.", + "lastIndexed": 1773533425261 }, { "name": "enterprise-agent-ops", "registry": "affaan-m/everything-claude-code", "path": "skills/enterprise-agent-ops", "description": "Operate long-lived agent workloads with observability, security boundaries, and lifecycle management.", - "lastIndexed": 1772928422526 + "lastIndexed": 1773533425246 }, { "name": "eval-harness", "registry": "affaan-m/everything-claude-code", "path": "skills/eval-harness", "description": "Formal evaluation framework for Claude Code sessions implementing eval-driven development (EDD) principles", - "lastIndexed": 1772928422529 + "lastIndexed": 1773533425249 + }, + { + "name": "exa-search", + "registry": "affaan-m/everything-claude-code", + "path": "skills/exa-search", + "description": "Neural search via Exa MCP for web, code, and company research. Use when the user needs web search, code examples, company intel, people lookup, or AI-powered deep research with Exa's neural search engine.", + "lastIndexed": 1773533425240 + }, + { + "name": "fal-ai-media", + "registry": "affaan-m/everything-claude-code", + "path": "skills/fal-ai-media", + "description": "Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.", + "lastIndexed": 1773533425249 }, { "name": "foundation-models-on-device", "registry": "affaan-m/everything-claude-code", "path": "skills/foundation-models-on-device", "description": "Apple FoundationModels framework for on-device LLM — text generation, guided generation with @Generable, tool calling, and snapshot streaming in iOS 26+.", - "lastIndexed": 1772928422531 + "lastIndexed": 1773533425239 }, { "name": "frontend-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/frontend-patterns", "description": "Frontend development patterns for React, Next.js, state management, performance optimization, and UI best practices.", - "lastIndexed": 1772928422506 + "lastIndexed": 1773533425252 }, { "name": "frontend-slides", "registry": "affaan-m/everything-claude-code", "path": "skills/frontend-slides", "description": "Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.", - "lastIndexed": 1772928422534 + "lastIndexed": 1773533425253 }, { "name": "golang-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/golang-patterns", "description": "Idiomatic Go patterns, best practices, and conventions for building robust, efficient, and maintainable Go applications.", - "lastIndexed": 1772928422548 + "lastIndexed": 1773533425252 }, { "name": "golang-testing", "registry": "affaan-m/everything-claude-code", "path": "skills/golang-testing", "description": "Go testing patterns including table-driven tests, subtests, benchmarks, fuzzing, and test coverage. Follows TDD methodology with idiomatic Go practices.", - "lastIndexed": 1772928422525 + "lastIndexed": 1773533425258 + }, + { + "name": "inventory-demand-planning", + "registry": "affaan-m/everything-claude-code", + "path": "skills/inventory-demand-planning", + "description": "Codified expertise for demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation at multi-location retailers. Informed by demand planners with 15+ years experience managing hundreds of SKUs. Includes forecasting method selection, ABC/XYZ analysis, seasonal transition management, and vendor negotiation frameworks. Use when forecasting demand, setting safety stock, planning replenishment, managing promotions, or optimizing inventory levels.", + "lastIndexed": 1773533425259 }, { "name": "investor-materials", "registry": "affaan-m/everything-claude-code", "path": "skills/investor-materials", "description": "Create and update pitch decks, one-pagers, investor memos, accelerator applications, financial models, and fundraising materials. Use when the user needs investor-facing documents, projections, use-of-funds tables, milestone plans, or materials that must stay internally consistent across multiple fundraising assets.", - "lastIndexed": 1772928422515 + "lastIndexed": 1773533425241 }, { "name": "investor-outreach", "registry": "affaan-m/everything-claude-code", "path": "skills/investor-outreach", "description": "Draft cold emails, warm intro blurbs, follow-ups, update emails, and investor communications for fundraising. Use when the user wants outreach to angels, VCs, strategic investors, or accelerators and needs concise, personalized, investor-facing messaging.", - "lastIndexed": 1772928422522 + "lastIndexed": 1773533425246 }, { "name": "iterative-retrieval", "registry": "affaan-m/everything-claude-code", "path": "skills/iterative-retrieval", "description": "Pattern for progressively refining context retrieval to solve the subagent context problem", - "lastIndexed": 1772928422522 + "lastIndexed": 1773533425250 }, { "name": "java-coding-standards", "registry": "affaan-m/everything-claude-code", "path": "skills/java-coding-standards", "description": "Java coding standards for Spring Boot services: naming, immutability, Optional usage, streams, exceptions, generics, and project layout.", - "lastIndexed": 1772928422510 + "lastIndexed": 1773533425239 }, { "name": "jpa-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/jpa-patterns", "description": "JPA/Hibernate patterns for entity design, relationships, query optimization, transactions, auditing, indexing, pagination, and pooling in Spring Boot.", - "lastIndexed": 1772928422529 + "lastIndexed": 1773533425250 + }, + { + "name": "kotlin-coroutines-flows", + "registry": "affaan-m/everything-claude-code", + "path": "skills/kotlin-coroutines-flows", + "description": "Kotlin Coroutines and Flow patterns for Android and KMP — structured concurrency, Flow operators, StateFlow, error handling, and testing.", + "lastIndexed": 1773533425252 + }, + { + "name": "kotlin-exposed-patterns", + "registry": "affaan-m/everything-claude-code", + "path": "skills/kotlin-exposed-patterns", + "description": "JetBrains Exposed ORM patterns including DSL queries, DAO pattern, transactions, HikariCP connection pooling, Flyway migrations, and repository pattern.", + "lastIndexed": 1773533425256 + }, + { + "name": "kotlin-ktor-patterns", + "registry": "affaan-m/everything-claude-code", + "path": "skills/kotlin-ktor-patterns", + "description": "Ktor server patterns including routing DSL, plugins, authentication, Koin DI, kotlinx.serialization, WebSockets, and testApplication testing.", + "lastIndexed": 1773533425260 + }, + { + "name": "kotlin-patterns", + "registry": "affaan-m/everything-claude-code", + "path": "skills/kotlin-patterns", + "description": "Idiomatic Kotlin patterns, best practices, and conventions for building robust, efficient, and maintainable Kotlin applications with coroutines, null safety, and DSL builders.", + "lastIndexed": 1773533425260 + }, + { + "name": "kotlin-testing", + "registry": "affaan-m/everything-claude-code", + "path": "skills/kotlin-testing", + "description": "Kotlin testing patterns with Kotest, MockK, coroutine testing, property-based testing, and Kover coverage. Follows TDD methodology with idiomatic Kotlin practices.", + "lastIndexed": 1773533425255 }, { "name": "liquid-glass-design", "registry": "affaan-m/everything-claude-code", "path": "skills/liquid-glass-design", "description": "iOS 26 Liquid Glass design system — dynamic glass material with blur, reflection, and interactive morphing for SwiftUI, UIKit, and WidgetKit.", - "lastIndexed": 1772928422532 + "lastIndexed": 1773533425297 + }, + { + "name": "logistics-exception-management", + "registry": "affaan-m/everything-claude-code", + "path": "skills/logistics-exception-management", + "description": "Codified expertise for handling freight exceptions, shipment delays, damages, losses, and carrier disputes. Informed by logistics professionals with 15+ years operational experience. Includes escalation protocols, carrier-specific behaviors, claims procedures, and judgment frameworks. Use when handling shipping exceptions, freight claims, delivery issues, or carrier disputes.", + "lastIndexed": 1773533425258 }, { "name": "market-research", "registry": "affaan-m/everything-claude-code", "path": "skills/market-research", "description": "Conduct market research, competitive analysis, investor due diligence, and industry intelligence with source attribution and decision-oriented summaries. Use when the user wants market sizing, competitor comparisons, fund research, technology scans, or research that informs business decisions.", - "lastIndexed": 1772928422535 + "lastIndexed": 1773533425233 }, { "name": "nanoclaw-repl", "registry": "affaan-m/everything-claude-code", "path": "skills/nanoclaw-repl", "description": "Operate and extend NanoClaw v2, ECC's zero-dependency session-aware REPL built on claude -p.", - "lastIndexed": 1772928422523 + "lastIndexed": 1773533425241 }, { "name": "nutrient-document-processing", "registry": "affaan-m/everything-claude-code", "path": "skills/nutrient-document-processing", "description": "Process, convert, OCR, extract, redact, sign, and fill documents using the Nutrient DWS API. Works with PDFs, DOCX, XLSX, PPTX, HTML, and images.", - "lastIndexed": 1772928422535 + "lastIndexed": 1773533425289 + }, + { + "name": "perl-patterns", + "registry": "affaan-m/everything-claude-code", + "path": "skills/perl-patterns", + "description": "Modern Perl 5.36+ idioms, best practices, and conventions for building robust, maintainable Perl applications.", + "lastIndexed": 1773533425248 + }, + { + "name": "perl-security", + "registry": "affaan-m/everything-claude-code", + "path": "skills/perl-security", + "description": "Comprehensive Perl security covering taint mode, input validation, safe process execution, DBI parameterized queries, web security (XSS/SQLi/CSRF), and perlcritic security policies.", + "lastIndexed": 1773533425257 + }, + { + "name": "perl-testing", + "registry": "affaan-m/everything-claude-code", + "path": "skills/perl-testing", + "description": "Perl testing patterns using Test2::V0, Test::More, prove runner, mocking, coverage with Devel::Cover, and TDD methodology.", + "lastIndexed": 1773533425248 }, { "name": "plankton-code-quality", "registry": "affaan-m/everything-claude-code", "path": "skills/plankton-code-quality", "description": "Write-time code quality enforcement using Plankton — auto-formatting, linting, and Claude-powered fixes on every file edit via hooks.", - "lastIndexed": 1772928422532 + "lastIndexed": 1773533425249 }, { "name": "postgres-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/postgres-patterns", "description": "PostgreSQL database patterns for query optimization, schema design, indexing, and security. Based on Supabase best practices.", - "lastIndexed": 1772928422507 + "lastIndexed": 1773533425308 + }, + { + "name": "production-scheduling", + "registry": "affaan-m/everything-claude-code", + "path": "skills/production-scheduling", + "description": "Codified expertise for production scheduling, job sequencing, line balancing, changeover optimization, and bottleneck resolution in discrete and batch manufacturing. Informed by production schedulers with 15+ years experience. Includes TOC/drum-buffer-rope, SMED, OEE analysis, disruption response frameworks, and ERP/MES interaction patterns. Use when scheduling production, resolving bottlenecks, optimizing changeovers, responding to disruptions, or balancing manufacturing lines.", + "lastIndexed": 1773533425262 }, { "name": "project-guidelines-example", "registry": "affaan-m/everything-claude-code", "path": "skills/project-guidelines-example", "description": "Example project-specific skill template based on a real production application.", - "lastIndexed": 1772928422546 + "lastIndexed": 1773533425253 + }, + { + "name": "prompt-optimizer", + "registry": "affaan-m/everything-claude-code", + "path": "skills/prompt-optimizer", + "description": "Analyze raw prompts, identify intent and gaps, match ECC components (skills/commands/agents/hooks), and output a ready-to-paste optimized prompt. Advisory role only — never executes the task itself. TRIGGER when: user says \"optimize prompt\", \"improve my prompt\", \"how to write a prompt for\", \"help me prompt\", \"rewrite this prompt\", or explicitly asks to enhance prompt quality. Also triggers on Chinese equivalents: \"优化prompt\", \"改进prompt\", \"怎么写prompt\", \"帮我优化这个指令\". DO NOT TRIGGER when: user wants the task executed directly, or says \"just do it\" / \"直接做\". DO NOT TRIGGER when user says \"优化代码\", \"优化性能\", \"optimize performance\", \"optimize this code\" — those are refactoring/performance tasks, not prompt optimization.", + "lastIndexed": 1773533425258 }, { "name": "python-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/python-patterns", "description": "Pythonic idioms, PEP 8 standards, type hints, and best practices for building robust, efficient, and maintainable Python applications.", - "lastIndexed": 1772928422537 + "lastIndexed": 1773533425255 }, { "name": "python-testing", "registry": "affaan-m/everything-claude-code", "path": "skills/python-testing", "description": "Python testing strategies using pytest, TDD methodology, fixtures, mocking, parametrization, and coverage requirements.", - "lastIndexed": 1772928422545 + "lastIndexed": 1773533425248 + }, + { + "name": "quality-nonconformance", + "registry": "affaan-m/everything-claude-code", + "path": "skills/quality-nonconformance", + "description": "Codified expertise for quality control, non-conformance investigation, root cause analysis, corrective action, and supplier quality management in regulated manufacturing. Informed by quality engineers with 15+ years experience across FDA, IATF 16949, and AS9100 environments. Includes NCR lifecycle management, CAPA systems, SPC interpretation, and audit methodology. Use when investigating non-conformances, performing root cause analysis, managing CAPAs, interpreting SPC data, or handling supplier quality issues.", + "lastIndexed": 1773533425261 }, { "name": "ralphinho-rfc-pipeline", "registry": "affaan-m/everything-claude-code", "path": "skills/ralphinho-rfc-pipeline", "description": "RFC-driven multi-agent DAG execution pattern with quality gates, merge queues, and work unit orchestration.", - "lastIndexed": 1772928422532 + "lastIndexed": 1773533425246 }, { "name": "regex-vs-llm-structured-text", "registry": "affaan-m/everything-claude-code", "path": "skills/regex-vs-llm-structured-text", "description": "Decision framework for choosing between regex and LLM when parsing structured text — start with regex, add LLM only for low-confidence edge cases.", - "lastIndexed": 1772928422529 + "lastIndexed": 1773533425215 + }, + { + "name": "returns-reverse-logistics", + "registry": "affaan-m/everything-claude-code", + "path": "skills/returns-reverse-logistics", + "description": "Codified expertise for returns authorization, receipt and inspection, disposition decisions, refund processing, fraud detection, and warranty claims management. Informed by returns operations managers with 15+ years experience. Includes grading frameworks, disposition economics, fraud pattern recognition, and vendor recovery processes. Use when handling product returns, reverse logistics, refund decisions, return fraud detection, or warranty claims.", + "lastIndexed": 1773533425262 }, { "name": "search-first", "registry": "affaan-m/everything-claude-code", "path": "skills/search-first", "description": "Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Invokes the researcher agent.", - "lastIndexed": 1772928422559 + "lastIndexed": 1773533425245 }, { "name": "security-review", "registry": "affaan-m/everything-claude-code", "path": "skills/security-review", "description": "Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features. Provides comprehensive security checklist and patterns.", - "lastIndexed": 1772928422534 + "lastIndexed": 1773533425257 }, { "name": "security-scan", "registry": "affaan-m/everything-claude-code", "path": "skills/security-scan", "description": "Scan your Claude Code configuration (.claude/ directory) for security vulnerabilities, misconfigurations, and injection risks using AgentShield. Checks CLAUDE.md, settings.json, MCP servers, hooks, and agent definitions.", - "lastIndexed": 1772928422526 + "lastIndexed": 1773533425260 }, { "name": "skill-stocktake", "registry": "affaan-m/everything-claude-code", "path": "skills/skill-stocktake", "description": "Use when auditing Claude skills and commands for quality. Supports Quick Scan (changed skills only) and Full Stocktake modes with sequential subagent batch evaluation.", - "lastIndexed": 1772928422532 + "lastIndexed": 1773533425297 }, { "name": "springboot-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/springboot-patterns", "description": "Spring Boot architecture patterns, REST API design, layered services, data access, caching, async processing, and logging. Use for Java Spring Boot backend work.", - "lastIndexed": 1772928422548 + "lastIndexed": 1773533425249 }, { "name": "springboot-security", "registry": "affaan-m/everything-claude-code", "path": "skills/springboot-security", "description": "Spring Security best practices for authn/authz, validation, CSRF, secrets, headers, rate limiting, and dependency security in Java Spring Boot services.", - "lastIndexed": 1772928422538 + "lastIndexed": 1773533425252 }, { "name": "springboot-tdd", "registry": "affaan-m/everything-claude-code", "path": "skills/springboot-tdd", "description": "Test-driven development for Spring Boot using JUnit 5, Mockito, MockMvc, Testcontainers, and JaCoCo. Use when adding features, fixing bugs, or refactoring.", - "lastIndexed": 1772928422529 + "lastIndexed": 1773533425246 }, { "name": "springboot-verification", "registry": "affaan-m/everything-claude-code", "path": "skills/springboot-verification", "description": "Verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before release or PR.", - "lastIndexed": 1772928422530 + "lastIndexed": 1773533425245 }, { "name": "strategic-compact", "registry": "affaan-m/everything-claude-code", "path": "skills/strategic-compact", "description": "Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction.", - "lastIndexed": 1772928422535 + "lastIndexed": 1773533425239 }, { "name": "swift-actor-persistence", "registry": "affaan-m/everything-claude-code", "path": "skills/swift-actor-persistence", "description": "Thread-safe data persistence in Swift using actors — in-memory cache with file-backed storage, eliminating data races by design.", - "lastIndexed": 1772928422526 + "lastIndexed": 1773533425248 }, { "name": "swift-concurrency-6-2", "registry": "affaan-m/everything-claude-code", "path": "skills/swift-concurrency-6-2", "description": "Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.", - "lastIndexed": 1772928422532 + "lastIndexed": 1773533425260 }, { "name": "swift-protocol-di-testing", "registry": "affaan-m/everything-claude-code", "path": "skills/swift-protocol-di-testing", "description": "Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.", - "lastIndexed": 1772928422543 + "lastIndexed": 1773533425240 }, { "name": "swiftui-patterns", "registry": "affaan-m/everything-claude-code", "path": "skills/swiftui-patterns", "description": "SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS/macOS UI best practices.", - "lastIndexed": 1772928422526 + "lastIndexed": 1773533425245 }, { "name": "tdd-workflow", "registry": "affaan-m/everything-claude-code", "path": "skills/tdd-workflow", "description": "Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.", - "lastIndexed": 1772928422498 + "lastIndexed": 1773533425315 }, { "name": "verification-loop", "registry": "affaan-m/everything-claude-code", "path": "skills/verification-loop", "description": "A comprehensive verification system for Claude Code sessions.", - "lastIndexed": 1772928422530 + "lastIndexed": 1773533425311 + }, + { + "name": "video-editing", + "registry": "affaan-m/everything-claude-code", + "path": "skills/video-editing", + "description": "AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.", + "lastIndexed": 1773533425257 + }, + { + "name": "videodb", + "registry": "affaan-m/everything-claude-code", + "path": "skills/videodb", + "description": "See, Understand, Act on video and audio. See- ingest from local files, URLs, RTSP/live feeds, or live record desktop; return realtime context and playable stream links. Understand- extract frames, build visual/semantic/temporal indexes, and search moments with timestamps and auto-clips. Act- transcode and normalize (codec, fps, resolution, aspect ratio), perform timeline edits (subtitles, text/image overlays, branding, audio overlays, dubbing, translation), generate media assets (image, audio, video), and create real time alerts for events from live streams or desktop capture.", + "lastIndexed": 1773533425259 }, { "name": "visa-doc-translate", "registry": "affaan-m/everything-claude-code", "path": "skills/visa-doc-translate", "description": "Translate visa application documents (images) to English and create a bilingual PDF with original and translation", - "lastIndexed": 1772928422547 + "lastIndexed": 1773533425258 + }, + { + "name": "x-api", + "registry": "affaan-m/everything-claude-code", + "path": "skills/x-api", + "description": "X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.", + "lastIndexed": 1773533425245 }, { "name": "analyzing-projects", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/analyzing-projects", "description": "Analyzes codebases to understand structure, tech stack, patterns, and conventions. Use when onboarding to a new project, exploring unfamiliar code, or when asked \"how does this work?\" or \"what's the architecture?\"", - "lastIndexed": 1772928422547 + "lastIndexed": 1773533425222 }, { "name": "convex-backend", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/convex-backend", "description": "Convex backend development guidelines. Use when writing Convex functions, schemas, queries, mutations, actions, or any backend code in a Convex project. Triggers on tasks involving Convex database operations, real-time subscriptions, file storage, or serverless functions.", - "lastIndexed": 1772928422549 + "lastIndexed": 1773533425239 }, { "name": "database-design", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/database-design", "description": "Designs database schemas, indexing strategies, query optimization, and migration patterns for SQL and NoSQL databases. Use when designing tables, optimizing queries, fixing N+1 problems, planning migrations, or when asked about database performance, normalization, ORMs, or data modeling.", - "lastIndexed": 1772928422552 + "lastIndexed": 1773533425334 }, { "name": "designing-apis", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/designing-apis", "description": "Designs REST and GraphQL APIs including endpoints, error handling, versioning, and documentation. Use when creating new APIs, designing endpoints, reviewing API contracts, or when asked about REST, GraphQL, or API patterns.", - "lastIndexed": 1772928422551 + "lastIndexed": 1773533425194 }, { "name": "designing-architecture", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/designing-architecture", "description": "Designs software architecture and selects appropriate patterns for projects. Use when designing systems, choosing architecture patterns, structuring projects, making technical decisions, or when asked about microservices, monoliths, or architectural approaches.", - "lastIndexed": 1772928422549 + "lastIndexed": 1773533425222 }, { "name": "designing-tests", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/designing-tests", "description": "Designs and implements testing strategies for any codebase. Use when adding tests, improving coverage, setting up testing infrastructure, debugging test failures, or when asked about unit tests, integration tests, or E2E testing.", - "lastIndexed": 1772928422551 + "lastIndexed": 1773533425245 }, { "name": "devops-infrastructure", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/devops-infrastructure", "description": "Guides Docker, CI/CD pipelines, deployment strategies, infrastructure as code, and observability setup. Use when writing Dockerfiles, configuring GitHub Actions, planning deployments, setting up monitoring, or when asked about containers, pipelines, Terraform, or production infrastructure.", - "lastIndexed": 1772928422573 + "lastIndexed": 1773533425256 }, { "name": "error-handling", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/error-handling", "description": "Implements error handling patterns, structured logging, retry strategies, circuit breakers, and graceful degradation. Use when designing error handling, setting up logging, implementing retries, adding error tracking, or when asked about error boundaries, log aggregation, alerting, or resilience patterns.", - "lastIndexed": 1772928422551 + "lastIndexed": 1773533425248 }, { "name": "managing-git", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/managing-git", "description": "Manages Git workflows including branching, commits, and pull requests. Use when working with Git, creating commits, opening PRs, managing branches, resolving conflicts, or when asked about version control best practices.", - "lastIndexed": 1772928422550 + "lastIndexed": 1773533425245 }, { "name": "optimizing-performance", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/optimizing-performance", "description": "Analyzes and optimizes application performance across frontend, backend, and database layers. Use when diagnosing slowness, improving load times, optimizing queries, reducing bundle size, or when asked about performance issues.", - "lastIndexed": 1772928422551 + "lastIndexed": 1773533425245 }, { "name": "parallel-execution", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/parallel-execution", "description": "Patterns for parallel subagent execution using Task tool with run_in_background. Use when coordinating multiple independent tasks, spawning dynamic subagents, or implementing features that can be parallelized.", - "lastIndexed": 1772928422551 + "lastIndexed": 1773533425250 }, { "name": "security-patterns", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/security-patterns", "description": "Implements authentication, authorization, encryption, secrets management, and security hardening patterns. Use when designing auth flows, managing secrets, configuring CORS, implementing rate limiting, or when asked about JWT, OAuth, password hashing, API keys, RBAC, or security best practices.", - "lastIndexed": 1772928422559 + "lastIndexed": 1773533425256 }, { "name": "vercel-react-best-practices", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/vercel-react-best-practices", "description": "React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.", - "lastIndexed": 1772928422561 + "lastIndexed": 1773533425254 }, { "name": "web-design-guidelines", "registry": "CloudAI-X/claude-workflow-v2", "path": "skills/web-design-guidelines", "description": "Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", \"check my site against best practices\", or \"web interface guidelines\".", - "lastIndexed": 1772928422550 + "lastIndexed": 1773533425253 }, { "name": "advanced-evaluation", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/advanced-evaluation", "description": "This skill should be used when the user asks to \"implement LLM-as-judge\", \"compare model outputs\", \"create evaluation rubrics\", \"mitigate evaluation bias\", or mentions direct scoring, pairwise comparison, position bias, evaluation pipelines, or automated quality assessment.", - "lastIndexed": 1772928422657 + "lastIndexed": 1773533425183 }, { "name": "bdi-mental-states", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/bdi-mental-states", "description": "This skill should be used when the user asks to \"model agent mental states\", \"implement BDI architecture\", \"create belief-desire-intention models\", \"transform RDF to beliefs\", \"build cognitive agent\", or mentions BDI ontology, mental state modeling, rational agency, or neuro-symbolic AI integration.", - "lastIndexed": 1772928422665 + "lastIndexed": 1773533425182 }, { "name": "context-compression", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/context-compression", "description": "This skill should be used when the user asks to \"compress context\", \"summarize conversation history\", \"implement compaction\", \"reduce token usage\", or mentions context compression, structured summarization, tokens-per-task optimization, or long-running agent sessions exceeding context limits.", - "lastIndexed": 1772928422662 + "lastIndexed": 1773533425188 }, { "name": "context-degradation", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/context-degradation", "description": "This skill should be used when the user asks to \"diagnose context problems\", \"fix lost-in-middle issues\", \"debug agent failures\", \"understand context poisoning\", or mentions context degradation, attention patterns, context clash, context confusion, or agent performance degradation. Provides patterns for recognizing and mitigating context failures.", - "lastIndexed": 1772928422663 + "lastIndexed": 1773533425188 }, { "name": "context-fundamentals", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/context-fundamentals", "description": "This skill should be used when the user asks to \"understand context\", \"explain context windows\", \"design agent architecture\", \"debug context issues\", \"optimize context usage\", or discusses context components, attention mechanics, progressive disclosure, or context budgeting. Provides foundational understanding of context engineering for AI agent systems.", - "lastIndexed": 1772928422673 + "lastIndexed": 1773533425209 }, { "name": "context-optimization", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/context-optimization", "description": "This skill should be used when the user asks to \"optimize context\", \"reduce token costs\", \"improve context efficiency\", \"implement KV-cache optimization\", \"partition context\", or mentions context limits, observation masking, context budgeting, or extending effective context capacity.", - "lastIndexed": 1772928422658 + "lastIndexed": 1773533425190 }, { "name": "evaluation", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/evaluation", "description": "This skill should be used when the user asks to \"evaluate agent performance\", \"build test framework\", \"measure agent quality\", \"create evaluation rubrics\", or mentions LLM-as-judge, multi-dimensional evaluation, agent testing, or quality gates for agent pipelines.", - "lastIndexed": 1772928422658 + "lastIndexed": 1773533425183 }, { "name": "filesystem-context", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/filesystem-context", "description": "This skill should be used when the user asks to \"offload context to files\", \"implement dynamic context discovery\", \"use filesystem for agent memory\", \"reduce context window bloat\", or mentions file-based context management, tool output persistence, agent scratch pads, or just-in-time context loading.", - "lastIndexed": 1772928422679 + "lastIndexed": 1773533425184 }, { "name": "hosted-agents", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/hosted-agents", "description": "This skill should be used when the user asks to \"build background agent\", \"create hosted coding agent\", \"set up sandboxed execution\", \"implement multiplayer agent\", or mentions background agents, sandboxed VMs, agent infrastructure, Modal sandboxes, self-spawning agents, or remote coding environments.", - "lastIndexed": 1772928422659 + "lastIndexed": 1773533425184 }, { "name": "memory-systems", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/memory-systems", "description": "Guides implementation of agent memory systems, compares production frameworks (Mem0, Zep/Graphiti, Letta, LangMem, Cognee), and designs persistence architectures for cross-session knowledge retention. Use when the user asks to \"implement agent memory\", \"persist state across sessions\", \"build knowledge graph for agents\", \"track entities over time\", \"add long-term memory\", \"choose a memory framework\", or mentions temporal knowledge graphs, vector stores, entity memory, adaptive memory, dynamic memory or memory benchmarks (LoCoMo, LongMemEval).", - "lastIndexed": 1772928422661 + "lastIndexed": 1773533425187 }, { "name": "multi-agent-patterns", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/multi-agent-patterns", "description": "This skill should be used when the user asks to \"design multi-agent system\", \"implement supervisor pattern\", \"create swarm architecture\", \"coordinate multiple agents\", or mentions multi-agent patterns, context isolation, agent handoffs, sub-agents, or parallel agent execution.", - "lastIndexed": 1772928422674 + "lastIndexed": 1773533425185 }, { "name": "project-development", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/project-development", "description": "This skill should be used when the user asks to \"start an LLM project\", \"design batch pipeline\", \"evaluate task-model fit\", \"structure agent project\", or mentions pipeline architecture, agent-assisted development, cost estimation, or choosing between LLM and traditional approaches.", - "lastIndexed": 1772928422666 + "lastIndexed": 1773533425183 }, { "name": "tool-design", "registry": "muratcankoylan/Agent-Skills-for-Context-Engineering", "path": "skills/tool-design", "description": "This skill should be used when the user asks to \"design agent tools\", \"create tool descriptions\", \"reduce tool complexity\", \"implement MCP tools\", or mentions tool consolidation, architectural reduction, tool naming conventions, or agent-tool interfaces.", - "lastIndexed": 1772928422670 + "lastIndexed": 1773533425179 }, { "name": "api-gateway", "registry": "itsmostafa/aws-agent-skills", "path": "skills/api-gateway", "description": "AWS API Gateway for REST and HTTP API management. Use when creating APIs, configuring integrations, setting up authorization, managing stages, implementing rate limiting, or troubleshooting API issues.", - "lastIndexed": 1772928422544 + "lastIndexed": 1773533425197 }, { "name": "bedrock", "registry": "itsmostafa/aws-agent-skills", "path": "skills/bedrock", "description": "AWS Bedrock foundation models for generative AI. Use when invoking foundation models, building AI applications, creating embeddings, configuring model access, or implementing RAG patterns.", - "lastIndexed": 1772928422539 + "lastIndexed": 1773533425201 }, { "name": "cloudformation", "registry": "itsmostafa/aws-agent-skills", "path": "skills/cloudformation", "description": "AWS CloudFormation infrastructure as code for stack management. Use when writing templates, deploying stacks, managing drift, troubleshooting deployments, or organizing infrastructure with nested stacks.", - "lastIndexed": 1772928422509 + "lastIndexed": 1773533425194 }, { "name": "cloudwatch", "registry": "itsmostafa/aws-agent-skills", "path": "skills/cloudwatch", "description": "AWS CloudWatch monitoring for logs, metrics, alarms, and dashboards. Use when setting up monitoring, creating alarms, querying logs with Insights, configuring metric filters, building dashboards, or troubleshooting application issues.", - "lastIndexed": 1772928422515 + "lastIndexed": 1773533425194 }, { "name": "cognito", "registry": "itsmostafa/aws-agent-skills", "path": "skills/cognito", "description": "AWS Cognito user authentication and authorization service. Use when setting up user pools, configuring identity pools, implementing OAuth flows, managing user attributes, or integrating with social identity providers.", - "lastIndexed": 1772928422541 + "lastIndexed": 1773533425202 }, { "name": "dynamodb", "registry": "itsmostafa/aws-agent-skills", "path": "skills/dynamodb", "description": "AWS DynamoDB NoSQL database for scalable data storage. Use when designing table schemas, writing queries, configuring indexes, managing capacity, implementing single-table design, or troubleshooting performance issues.", - "lastIndexed": 1772928422534 + "lastIndexed": 1773533425202 }, { "name": "ec2", "registry": "itsmostafa/aws-agent-skills", "path": "skills/ec2", "description": "AWS EC2 virtual machine management for instances, AMIs, and networking. Use when launching instances, configuring security groups, managing key pairs, troubleshooting connectivity, or automating instance lifecycle.", - "lastIndexed": 1772928422547 + "lastIndexed": 1773533425280 }, { "name": "ecs", "registry": "itsmostafa/aws-agent-skills", "path": "skills/ecs", "description": "AWS ECS container orchestration for running Docker containers. Use when deploying containerized applications, configuring task definitions, setting up services, managing clusters, or troubleshooting container issues.", - "lastIndexed": 1772928422543 + "lastIndexed": 1773533425201 }, { "name": "eks", "registry": "itsmostafa/aws-agent-skills", "path": "skills/eks", "description": "AWS EKS Kubernetes management for clusters, node groups, and workloads. Use when creating clusters, configuring IRSA, managing node groups, deploying applications, or integrating with AWS services.", - "lastIndexed": 1772928422511 + "lastIndexed": 1773533425200 }, { "name": "eventbridge", "registry": "itsmostafa/aws-agent-skills", "path": "skills/eventbridge", "description": "AWS EventBridge serverless event bus for event-driven architectures. Use when creating rules, configuring event patterns, setting up scheduled events, integrating with SaaS, or building cross-account event routing.", - "lastIndexed": 1772928422529 + "lastIndexed": 1773533425199 }, { "name": "iam", "registry": "itsmostafa/aws-agent-skills", "path": "skills/iam", "description": "AWS Identity and Access Management for users, roles, policies, and permissions. Use when creating IAM policies, configuring cross-account access, setting up service roles, troubleshooting permission errors, or managing access control.", - "lastIndexed": 1772928422543 + "lastIndexed": 1773533425250 }, { "name": "lambda", "registry": "itsmostafa/aws-agent-skills", "path": "skills/lambda", "description": "AWS Lambda serverless functions for event-driven compute. Use when creating functions, configuring triggers, debugging invocations, optimizing cold starts, setting up event source mappings, or managing layers.", - "lastIndexed": 1772928422555 + "lastIndexed": 1773533425203 }, { "name": "rds", "registry": "itsmostafa/aws-agent-skills", "path": "skills/rds", "description": "AWS RDS relational database service for managed databases. Use when provisioning databases, configuring backups, managing replicas, troubleshooting connectivity, or optimizing performance.", - "lastIndexed": 1772928422538 + "lastIndexed": 1773533425210 }, { "name": "s3", "registry": "itsmostafa/aws-agent-skills", "path": "skills/s3", "description": "AWS S3 object storage for bucket management, object operations, and access control. Use when creating buckets, uploading files, configuring lifecycle policies, setting up static websites, managing permissions, or implementing cross-region replication.", - "lastIndexed": 1772928422545 + "lastIndexed": 1773533425208 }, { "name": "secrets-manager", "registry": "itsmostafa/aws-agent-skills", "path": "skills/secrets-manager", "description": "AWS Secrets Manager for secure secret storage and rotation. Use when storing credentials, configuring automatic rotation, managing secret versions, retrieving secrets in applications, or integrating with RDS.", - "lastIndexed": 1772928422549 + "lastIndexed": 1773533425211 }, { "name": "sns", "registry": "itsmostafa/aws-agent-skills", "path": "skills/sns", "description": "AWS SNS notification service for pub/sub messaging. Use when creating topics, managing subscriptions, configuring message filtering, sending notifications, or setting up mobile push.", - "lastIndexed": 1772928422545 + "lastIndexed": 1773533425202 }, { "name": "sqs", "registry": "itsmostafa/aws-agent-skills", "path": "skills/sqs", "description": "AWS SQS message queue service for decoupled architectures. Use when creating queues, configuring dead-letter queues, managing visibility timeouts, implementing FIFO ordering, or integrating with Lambda.", - "lastIndexed": 1772928422522 + "lastIndexed": 1773533425203 }, { "name": "step-functions", "registry": "itsmostafa/aws-agent-skills", "path": "skills/step-functions", "description": "AWS Step Functions workflow orchestration with state machines. Use when designing workflows, implementing error handling, configuring parallel execution, integrating with AWS services, or debugging executions.", - "lastIndexed": 1772928422531 + "lastIndexed": 1773533425253 }, { "name": "apify-actor-development", "registry": "apify/agent-skills", "path": "skills/apify-actor-development", "description": "Develop, debug, and deploy Apify Actors - serverless cloud programs for web scraping, automation, and data processing. Use when creating new Actors, modifying existing ones, or troubleshooting Actor code.", - "lastIndexed": 1772928422855 + "lastIndexed": 1773533425572 }, { "name": "apify-actorization", "registry": "apify/agent-skills", "path": "skills/apify-actorization", "description": "Convert existing projects into Apify Actors - serverless cloud programs. Actorize JavaScript/TypeScript (SDK with Actor.init/exit), Python (async context manager), or any language (CLI wrapper). Use when migrating code to Apify, wrapping CLI tools as Actors, or adding Actor SDK to existing projects.", - "lastIndexed": 1772928422874 + "lastIndexed": 1773533425553 }, { "name": "apify-audience-analysis", "registry": "apify/agent-skills", "path": "skills/apify-audience-analysis", "description": "Understand audience demographics, preferences, behavior patterns, and engagement quality across Facebook, Instagram, YouTube, and TikTok.", - "lastIndexed": 1772928422837 + "lastIndexed": 1773533425549 }, { "name": "apify-brand-reputation-monitoring", "registry": "apify/agent-skills", "path": "skills/apify-brand-reputation-monitoring", "description": "Track reviews, ratings, sentiment, and brand mentions across Google Maps, Booking.com, TripAdvisor, Facebook, Instagram, YouTube, and TikTok. Use when user asks to monitor brand reputation, analyze reviews, track mentions, or gather customer feedback.", - "lastIndexed": 1772928422835 + "lastIndexed": 1773533425552 }, { "name": "apify-competitor-intelligence", "registry": "apify/agent-skills", "path": "skills/apify-competitor-intelligence", "description": "Analyze competitor strategies, content, pricing, ads, and market positioning across Google Maps, Booking.com, Facebook, Instagram, YouTube, and TikTok.", - "lastIndexed": 1772928422841 + "lastIndexed": 1773533425551 }, { "name": "apify-content-analytics", "registry": "apify/agent-skills", "path": "skills/apify-content-analytics", "description": "Track engagement metrics, measure campaign ROI, and analyze content performance across Instagram, Facebook, YouTube, and TikTok.", - "lastIndexed": 1772928422841 + "lastIndexed": 1773533425556 }, { "name": "apify-ecommerce", "registry": "apify/agent-skills", "path": "skills/apify-ecommerce", "description": "Scrape e-commerce data for pricing intelligence, customer reviews, and seller discovery across Amazon, Walmart, eBay, IKEA, and 50+ marketplaces. Use when user asks to monitor prices, track competitors, analyze reviews, research products, or find sellers.", - "lastIndexed": 1772928422834 + "lastIndexed": 1773533425555 }, { "name": "apify-influencer-discovery", "registry": "apify/agent-skills", "path": "skills/apify-influencer-discovery", "description": "Find and evaluate influencers for brand partnerships, verify authenticity, and track collaboration performance across Instagram, Facebook, YouTube, and TikTok.", - "lastIndexed": 1772928422854 + "lastIndexed": 1773533425553 }, { "name": "apify-lead-generation", "registry": "apify/agent-skills", "path": "skills/apify-lead-generation", "description": "Generates B2B/B2C leads by scraping Google Maps, websites, Instagram, TikTok, Facebook, LinkedIn, YouTube, and Google Search. Use when user asks to find leads, prospects, businesses, build lead lists, enrich contacts, or scrape profiles for sales outreach.", - "lastIndexed": 1772928422816 + "lastIndexed": 1773533425553 }, { "name": "apify-market-research", "registry": "apify/agent-skills", "path": "skills/apify-market-research", "description": "Analyze market conditions, geographic opportunities, pricing, consumer behavior, and product validation across Google Maps, Facebook, Instagram, Booking.com, and TripAdvisor.", - "lastIndexed": 1772928422859 + "lastIndexed": 1773533425553 }, { "name": "apify-trend-analysis", "registry": "apify/agent-skills", "path": "skills/apify-trend-analysis", "description": "Discover and track emerging trends across Google Trends, Instagram, Facebook, YouTube, and TikTok to inform content strategy.", - "lastIndexed": 1772928422848 + "lastIndexed": 1773533425562 }, { "name": "apify-ultimate-scraper", "registry": "apify/agent-skills", "path": "skills/apify-ultimate-scraper", "description": "Universal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok, YouTube, Google Maps, Google Search, Google Trends, Booking.com, and TripAdvisor. Use for lead generation, brand monitoring, competitor analysis, influencer discovery, trend research, content analytics, audience analysis, or any data extraction task.", - "lastIndexed": 1772928422842 + "lastIndexed": 1773533425556 }, { "name": "playwright-skill", "registry": "lackeyjb/playwright-skill", "path": "skills/playwright-skill", "description": "Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.", - "lastIndexed": 1772928422853 + "lastIndexed": 1773533425517 }, { "name": "migrating-dbt-core-to-fusion", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt-migration/skills/migrating-dbt-core-to-fusion", "description": "Classifies dbt-core to Fusion migration errors into actionable categories (auto-fixable, guided fixes, needs input, blocked). Use when a user needs help triaging migration errors to understand what they can fix vs what requires Fusion engine updates.", - "lastIndexed": 1772928422911 + "lastIndexed": 1773533425526 }, { "name": "migrating-dbt-project-across-platforms", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt-migration/skills/migrating-dbt-project-across-platforms", "description": "Use when migrating a dbt project from one data platform or data warehouse to another (e.g., Snowflake to Databricks, Databricks to Snowflake) using dbt Fusion's real-time compilation to identify and fix SQL dialect differences.", - "lastIndexed": 1772928422915 + "lastIndexed": 1773533425544 }, { "name": "adding-dbt-unit-test", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/adding-dbt-unit-test", "description": "Creates unit test YAML definitions that mock upstream model inputs and validate expected outputs. Use when adding unit tests for a dbt model or practicing test-driven development (TDD) in dbt.", - "lastIndexed": 1772928422916 + "lastIndexed": 1773533425539 }, { "name": "answering-natural-language-questions-with-dbt", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/answering-natural-language-questions-with-dbt", "description": "Writes and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions. Use when a user asks about analytics, metrics, KPIs, or data (e.g., \"What were total sales last quarter?\", \"Show me top customers by revenue\"). NOT for validating, testing, or building dbt models during development.", - "lastIndexed": 1772928422914 + "lastIndexed": 1773533425555 }, { "name": "building-dbt-semantic-layer", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/building-dbt-semantic-layer", "description": "Use when creating or modifying dbt Semantic Layer components — semantic models, metrics, dimensions, entities, measures, or time spines. Covers MetricFlow configuration, metric types (simple, derived, cumulative, ratio, conversion), and validation for both latest and legacy YAML specs.", - "lastIndexed": 1772928422917 + "lastIndexed": 1773533425539 }, { "name": "configuring-dbt-mcp-server", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/configuring-dbt-mcp-server", "description": "Generates MCP server configuration JSON, resolves authentication setup, and validates server connectivity for dbt. Use when setting up, configuring, or troubleshooting the dbt MCP server for AI tools like Claude Desktop, Claude Code, Cursor, or VS Code.", - "lastIndexed": 1772928422914 + "lastIndexed": 1773533425555 }, { "name": "fetching-dbt-docs", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/fetching-dbt-docs", "description": "Retrieves and searches dbt documentation pages in LLM-friendly markdown format. Use when fetching dbt documentation, looking up dbt features, or answering questions about dbt Cloud, dbt Core, or the dbt Semantic Layer.", - "lastIndexed": 1772928422940 + "lastIndexed": 1773533425542 }, { "name": "running-dbt-commands", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/running-dbt-commands", "description": "Formats and executes dbt CLI commands, selects the correct dbt executable, and structures command parameters. Use when running models, tests, builds, compiles, or show queries via dbt CLI. Use when unsure which dbt executable to use or how to format command parameters.", - "lastIndexed": 1772928422910 + "lastIndexed": 1773533425555 }, { "name": "troubleshooting-dbt-job-errors", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/troubleshooting-dbt-job-errors", "description": "Diagnoses dbt Cloud/platform job failures by analyzing run logs, querying the Admin API, reviewing git history, and investigating data issues. Use when a dbt Cloud/platform job fails and you need to diagnose the root cause, especially when error messages are unclear or when intermittent failures occur. Do not use for local dbt development errors.", - "lastIndexed": 1772928422910 + "lastIndexed": 1773533425556 }, { "name": "using-dbt-for-analytics-engineering", "registry": "dbt-labs/dbt-agent-skills", "path": "skills/dbt/skills/using-dbt-for-analytics-engineering", "description": "Builds and modifies dbt models, writes SQL transformations using ref() and source(), creates tests, and validates results with dbt show. Use when doing any dbt work - building or modifying models, debugging errors, exploring unfamiliar data sources, writing tests, or evaluating impact of changes.", - "lastIndexed": 1772928422916 + "lastIndexed": 1773533425549 }, { "name": "gemini-api-dev", "registry": "google-gemini/gemini-skills", "path": "skills/gemini-api-dev", "description": "Use this skill when building applications with Gemini models, Gemini API, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or needing current model specifications. Covers SDK usage (google-genai for Python, @google/genai for JavaScript/TypeScript, com.google.genai:google-genai for Java, google.golang.org/genai for Go), model selection, and API capabilities.", - "lastIndexed": 1772928422848 + "lastIndexed": 1773533425536 }, { "name": "gemini-interactions-api", "registry": "google-gemini/gemini-skills", "path": "skills/gemini-interactions-api", "description": "Use this skill when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, streaming responses, background research tasks, function calling, structured output, or migrating from the old generateContent API. This skill covers the Interactions API, the recommended way to use Gemini models and agents in Python and TypeScript.", - "lastIndexed": 1772928422836 + "lastIndexed": 1773533425521 }, { "name": "gemini-live-api-dev", "registry": "google-gemini/gemini-skills", "path": "skills/gemini-live-api-dev", "description": "Use this skill when building real-time, bidirectional streaming applications with the Gemini Live API. Covers WebSocket-based audio/video/text streaming, voice activity detection (VAD), native audio features, function calling, session management, ephemeral tokens for client-side auth, and all Live API configuration options. SDKs covered - google-genai (Python), @google/genai (JavaScript/TypeScript).", - "lastIndexed": 1772928422841 + "lastIndexed": 1773533425533 }, { "name": "vertex-ai-api-dev", "registry": "google-gemini/gemini-skills", "path": "skills/vertex-ai-api-dev", "description": "Guides the usage of Gemini API on Google Cloud Vertex AI with the Gen AI SDK. Use when the user asks about using Gemini in an enterprise environment or explicitly mentions Vertex AI. Covers SDK usage (Python, JS/TS, Go, Java, C#), capabilities like Live API, tools, multimedia generation, caching, and batch prediction.", - "lastIndexed": 1772928422859 + "lastIndexed": 1773533425534 }, { "name": "hf-cli", "registry": "huggingface/skills", "path": "skills/hf-cli", "description": "Hugging Face Hub CLI (`hf`) for downloading, uploading, and managing repositories, models, datasets, and Spaces on the Hugging Face Hub. Replaces now deprecated `huggingface-cli` command.", - "lastIndexed": 1772928423087 + "lastIndexed": 1773533425897 }, { "name": "hugging-face-dataset-viewer", "registry": "huggingface/skills", "path": "skills/hugging-face-dataset-viewer", "description": "Use this skill for Hugging Face Dataset Viewer API workflows that fetch subset/split metadata, paginate rows, search text, apply filters, download parquet URLs, and read size or statistics.", - "lastIndexed": 1772928423199 + "lastIndexed": 1773533425798 }, { "name": "hugging-face-datasets", "registry": "huggingface/skills", "path": "skills/hugging-face-datasets", "description": "Create and manage datasets on Hugging Face Hub. Supports initializing repos, defining configs/system prompts, streaming row updates, and SQL-based dataset querying/transformation. Designed to work alongside HF MCP server for comprehensive dataset workflows.", - "lastIndexed": 1772928423102 + "lastIndexed": 1773533425769 }, { "name": "hugging-face-evaluation", "registry": "huggingface/skills", "path": "skills/hugging-face-evaluation", "description": "Add and manage evaluation results in Hugging Face model cards. Supports extracting eval tables from README content, importing scores from Artificial Analysis API, and running custom model evaluations with vLLM/lighteval. Works with the model-index metadata format.", - "lastIndexed": 1772928423104 + "lastIndexed": 1773533425938 }, { "name": "hugging-face-jobs", "registry": "huggingface/skills", "path": "skills/hugging-face-jobs", "description": "This skill should be used when users want to run any workload on Hugging Face Jobs infrastructure. Covers UV scripts, Docker-based jobs, hardware selection, cost estimation, authentication with tokens, secrets management, timeout configuration, and result persistence. Designed for general-purpose compute workloads including data processing, inference, experiments, batch jobs, and any Python-based tasks. Should be invoked for tasks involving cloud compute, GPU workloads, or when users mention running jobs on Hugging Face infrastructure without local setup.", - "lastIndexed": 1772928423219 + "lastIndexed": 1773533425770 }, { "name": "hugging-face-model-trainer", "registry": "huggingface/skills", "path": "skills/hugging-face-model-trainer", "description": "This skill should be used when users want to train or fine-tune language models using TRL (Transformer Reinforcement Learning) on Hugging Face Jobs infrastructure. Covers SFT, DPO, GRPO and reward modeling training methods, plus GGUF conversion for local deployment. Includes guidance on the TRL Jobs package, UV scripts with PEP 723 format, dataset preparation and validation, hardware selection, cost estimation, Trackio monitoring, Hub authentication, and model persistence. Should be invoked for tasks involving cloud GPU training, GGUF conversion, or when users mention training on Hugging Face Jobs without local GPU setup.", - "lastIndexed": 1772928423097 + "lastIndexed": 1773533425771 }, { "name": "hugging-face-paper-publisher", "registry": "huggingface/skills", "path": "skills/hugging-face-paper-publisher", "description": "Publish and manage research papers on Hugging Face Hub. Supports creating paper pages, linking papers to models/datasets, claiming authorship, and generating professional markdown-based research articles.", - "lastIndexed": 1772928423099 + "lastIndexed": 1773533425911 }, { "name": "hugging-face-tool-builder", "registry": "huggingface/skills", "path": "skills/hugging-face-tool-builder", "description": "Use this skill when the user wants to build tool/scripts or achieve a task where using data from the Hugging Face API would help. This is especially useful when chaining or combining API calls or the task will be repeated/automated. This Skill creates a reusable script to fetch, enrich or process data.", - "lastIndexed": 1772928423094 + "lastIndexed": 1773533425763 }, { "name": "hugging-face-trackio", "registry": "huggingface/skills", "path": "skills/hugging-face-trackio", "description": "Track and visualize ML training experiments with Trackio. Use when logging metrics during training (Python API), firing alerts for training diagnostics, or retrieving/analyzing logged metrics (CLI). Supports real-time dashboard visualization, alerts with webhooks, HF Space syncing, and JSON output for automation.", - "lastIndexed": 1772928423195 + "lastIndexed": 1773533425772 + }, + { + "name": "hugging-face-vision-trainer", + "registry": "huggingface/skills", + "path": "skills/hugging-face-vision-trainer", + "description": "Trains and fine-tunes vision models for object detection (D-FINE, RT-DETR v2, DETR, YOLOS), image classification (timm models — MobileNetV3, MobileViT, ResNet, ViT/DINOv3 — plus any Transformers classifier), and SAM/SAM2 segmentation using Hugging Face Transformers on Hugging Face Jobs cloud GPUs. Covers COCO-format dataset preparation, Albumentations augmentation, mAP/mAR evaluation, accuracy metrics, SAM segmentation with bbox/point prompts, DiceCE loss, hardware selection, cost estimation, Trackio monitoring, and Hub persistence. Use when users mention training object detection, image classification, SAM, SAM2, segmentation, image matting, DETR, D-FINE, RT-DETR, ViT, timm, MobileNet, ResNet, bounding box models, or fine-tuning vision models on Hugging Face Jobs.", + "lastIndexed": 1773533425823 }, { "name": "huggingface-gradio", "registry": "huggingface/skills", "path": "skills/huggingface-gradio", "description": "Build Gradio web UIs and demos in Python. Use when creating or editing Gradio apps, components, event listeners, layouts, or chatbots.", - "lastIndexed": 1772928423112 + "lastIndexed": 1773533425792 + }, + { + "name": "transformers.js", + "registry": "huggingface/skills", + "path": "skills/transformers.js", + "description": "Use Transformers.js to run state-of-the-art machine learning models directly in JavaScript/TypeScript. Supports NLP (text classification, translation, summarization), computer vision (image classification, object detection), audio (speech recognition, audio classification), and multimodal tasks. Works in Node.js and browsers (with WebGPU/WASM) using pre-trained models from Hugging Face Hub.", + "lastIndexed": 1773533425923 + }, + { + "name": "documentation", + "registry": "mcollina/skills", + "path": "skills/documentation", + "description": "Creates, structures, and reviews technical documentation following the Diátaxis framework (tutorials, how-to guides, reference, and explanation pages). Use when a user needs to write or reorganize docs, structure a tutorial vs. a how-to guide, build reference docs or API documentation, create explanation pages, choose between Diátaxis documentation types, or improve existing documentation structure. Trigger terms include: documentation structure, Diátaxis, tutorials vs how-to guides, organize docs, user guide, reference docs, technical writing.", + "lastIndexed": 1773533425770 + }, + { + "name": "fastify", + "registry": "mcollina/skills", + "path": "skills/fastify", + "description": "Guides development of Fastify Node.js backend servers and REST APIs using TypeScript or JavaScript. Use when building, configuring, or debugging a Fastify application — including defining routes, implementing plugins, setting up JSON Schema validation, handling errors, optimising performance, managing authentication, configuring CORS and security headers, integrating databases, working with WebSockets, and deploying to production. Covers the full Fastify request lifecycle (hooks, serialization, logging with Pino) and TypeScript integration via strip types. Trigger terms: Fastify, Node.js server, REST API, API routes, backend framework, fastify.config, server.ts, app.ts.", + "lastIndexed": 1773533425777 + }, + { + "name": "init", + "registry": "mcollina/skills", + "path": "skills/init", + "description": "Creates, updates, or optimizes an AGENTS.md file for a repository with minimal, high-signal instructions covering non-discoverable coding conventions, tooling quirks, workflow preferences, and project-specific rules that agents cannot infer from reading the codebase. Use when setting up agent instructions or Claude configuration for a new repository, when an existing AGENTS.md is too long, generic, or stale, when agents repeatedly make avoidable mistakes, or when repository workflows have changed and the agent configuration needs pruning. Applies a discoverability filter—omitting anything Claude can learn from README, code, config, or directory structure—and a quality gate to verify each line remains accurate and operationally significant.", + "lastIndexed": 1773533425779 + }, + { + "name": "linting-neostandard-eslint9", + "registry": "mcollina/skills", + "path": "skills/linting-neostandard-eslint9", + "description": "Configures ESLint v9 flat config and neostandard for JavaScript and TypeScript projects, including migrating from legacy `.eslintrc*` files or the `standard` package. Use when you need to set up or fix linting with `eslint.config.js` or `eslint.config.mjs`, troubleshoot lint errors, configure neostandard rules, migrate from `.eslintrc` to flat config, or integrate linting into CI pipelines and pre-commit hooks.", + "lastIndexed": 1773533425769 + }, + { + "name": "node", + "registry": "mcollina/skills", + "path": "skills/node", + "description": "Provides domain-specific best practices for Node.js development with TypeScript, covering type stripping, async patterns, error handling, streams, modules, testing, performance, caching, logging, and more. Use when setting up Node.js projects with native TypeScript support, configuring type stripping (--experimental-strip-types), writing Node 22+ TypeScript without a build step, or when the user mentions 'native TypeScript in Node', 'strip types', 'Node 22 TypeScript', '.ts files without compilation', 'ts-node alternative', or needs guidance on error handling, graceful shutdown, flaky tests, profiling, or environment configuration in Node.js. Helps configure tsconfig.json for type stripping, set up package.json scripts, handle module resolution and import extensions, and apply robust patterns across the full Node.js stack.", + "lastIndexed": 1773533425785 + }, + { + "name": "nodejs-core", + "registry": "mcollina/skills", + "path": "skills/nodejs-core", + "description": "Debugs native module crashes, optimizes V8 performance, configures node-gyp builds, writes N-API/node-addon-api bindings, and diagnoses libuv event loop issues in Node.js. Use when working with C++ addons, native modules, binding.gyp, node-gyp errors, segfaults, memory leaks in native code, V8 optimization/deoptimization, libuv thread pool tuning, N-API or NAN bindings, build system failures, or any Node.js internals below the JavaScript layer.", + "lastIndexed": 1773533425761 + }, + { + "name": "oauth", + "registry": "mcollina/skills", + "path": "skills/oauth", + "description": "Implements OAuth 2.0/2.1 authorization flows in Fastify applications — configures authorization code with PKCE, client credentials, device flow, refresh token rotation, JWT validation, and token introspection/revocation endpoints. Use when setting up authentication, authorization, login flows, access tokens, API security, or securing Fastify routes with OAuth; also applies when troubleshooting token validation errors, mismatched redirect URIs, CSRF issues, scope problems, or RFC 6749/6750/7636/8252/8628 compliance questions.", + "lastIndexed": 1773533425781 + }, + { + "name": "octocat", + "registry": "mcollina/skills", + "path": "skills/octocat", + "description": "Handles git and GitHub operations using the gh CLI. Use when the user asks about pull requests (PRs), GitHub issues, repo management, branching, merging, rebasing, cherry-picking, merge conflict resolution, commit history cleanup, pre-commit hook debugging, GitHub Actions workflows, or releases. Covers creating and reviewing PRs, watching CI checks, interactive rebasing, branch cleanup, submodule management, and repository archaeology with git log/blame/bisect.", + "lastIndexed": 1773533425758 + }, + { + "name": "skill-optimizer", + "registry": "mcollina/skills", + "path": "skills/skill-optimizer", + "description": "Optimizes AI skills for activation, clarity, and cross-model reliability. Use when creating or editing skill packs, diagnosing weak skill uptake, reducing regressions, tuning instruction salience, improving examples, shrinking context cost, or setting benchmark/release gates for skills. Trigger terms: skill optimization, activation gap, benchmark skill, with/without skill delta, regression, context budget, prompt salience.", + "lastIndexed": 1773533425778 + }, + { + "name": "snipgrapher", + "registry": "mcollina/skills", + "path": "skills/snipgrapher", + "description": "Configures and uses snipgrapher to generate polished code snippet images, including syntax-highlighted PNGs, SVGs, and WebP exports with custom themes, profiles, and styling options. Use when the user wants to create code screenshots, turn code into shareable images, generate pretty code snippets for docs or social posts, produce syntax-highlighted images from source files, or explicitly mentions snipgrapher. Supports single-file renders, batch jobs, watch mode, and reusable named profiles via the snipgrapher CLI or npx.", + "lastIndexed": 1773533425776 + }, + { + "name": "typescript-magician", + "registry": "mcollina/skills", + "path": "skills/typescript-magician", + "description": "Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded/opaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.", + "lastIndexed": 1773533425766 } ] } diff --git a/skills/registry.json b/skills/registry.json index d2eb09ce..68cbdee9 100644 --- a/skills/registry.json +++ b/skills/registry.json @@ -66,6 +66,7 @@ "dbt-labs/dbt-agent-skills": "https://github.com/dbt-labs/dbt-agent-skills.git", "google-gemini/gemini-skills": "https://github.com/google-gemini/gemini-skills", "HeyVincent-ai/agent-skills": "https://github.com/HeyVincent-ai/agent-skills.git", - "huggingface/skills": "https://github.com/huggingface/skills" + "huggingface/skills": "https://github.com/huggingface/skills.git", + "mcollina/skills": "https://github.com/mcollina/skills.git" } } diff --git a/web/content/docs/1-getting-started.md b/web/content/docs/1-getting-started.md index f833a542..936dd527 100644 --- a/web/content/docs/1-getting-started.md +++ b/web/content/docs/1-getting-started.md @@ -24,7 +24,7 @@ AI DevKit solves these problems by giving your AI assistant: ## Prerequisites Before you begin, make sure have: -- **Node.js** (version 18 or higher) +- **Node.js** (version 20.20.0 or higher) - **npm** or **npx** (comes with Node.js) - An AI coding assistant (Cursor, Claude Code, Codex, Antigravity, OpenCode, GitHub Copilot, etc.)