Compare commits

..

23 Commits

Author SHA1 Message Date
sck_0
d962bb21ea release: v2.14.0 - Web Intelligence & Windows, merge PRs #24 #25 #26 #27 2026-01-25 08:00:50 +01:00
sck_0
807f72a5be Merge branch 'pr-25' 2026-01-25 07:59:09 +01:00
sck_0
c29f87c2a9 Merge branch 'pr-27' 2026-01-25 07:59:02 +01:00
sck_0
06e8811af6 Merge branch 'pr-26' 2026-01-25 07:59:01 +01:00
GuppyTheCat
afafa37a2e docs: Update credits for obsidian-clipper-template-creator 2026-01-25 08:09:09 +03:00
GuppyTheCat
c69b033ada feat: add obsidian-clipper-template-creator for creating Obsidian Web Clipper templates 2026-01-25 07:52:26 +03:00
Viktor Ferenczi
2f01e2b267 Added skill busybox-on-windows 2026-01-25 05:07:32 +01:00
BenedictKing
91f46351be feat: add BenedictKing skills (context7, tavily, exa, firecrawl, codex-review) 2026-01-25 11:04:28 +08:00
krisnasantosa15
910cbeb8e0 fix: YAML frontmatter quoting in lint-and-validate skill 2026-01-25 09:36:49 +07:00
sck_0
2e835b9d66 chore: release v2.13.0 2026-01-24 21:07:58 +01:00
sck_0
4057e379d9 chore: update skills index and readme after merging PR #23 2026-01-24 21:05:49 +01:00
Ianj332
2d5a9a3e85 docs: remove meta-commentary from skill body 2026-01-23 20:08:06 -06:00
Ianj332
5d01094479 feat: add nosql-expert skill for distributed database patterns 2026-01-23 19:40:43 -06:00
sck_0
3c38ec509d docs: fix OpenCode skills directory path (issue #22) 2026-01-23 20:18:58 +01:00
sck_0
4365fba248 docs: remove individual contributors from credits 2026-01-23 19:48:34 +01:00
sck_0
2885b4ebaa chore: release v2.12.0 2026-01-23 19:42:52 +01:00
sck_0
63074bc2b7 docs: update hardcoded skill count in README intro 2026-01-23 19:35:17 +01:00
sck_0
33d8f93c7f feat: integrate PR #20 and #21 (Avalonia and Audit skills) 2026-01-23 19:33:36 +01:00
sck_0
c688c5e0fa Merge branch 'pr-21' 2026-01-23 19:31:03 +01:00
Mohammad Faiz
590ea1e5b3 Revise production code audit skill for clarity and depth
Updated the production code audit skill to enhance its description and functionality, focusing on autonomous analysis and transformation of codebases to meet enterprise-grade quality standards.
2026-01-23 21:00:06 +05:30
Mohammad Faiz
33908288f1 Merge branch 'sickn33:main' into main 2026-01-23 20:49:21 +05:30
Mohammad Faiz
831d87605a Add files via upload 2026-01-23 20:49:11 +05:30
SuperJMN
c6df6cee4c feat: add Avalonia Zafiro development, layout, and viewmodel skills 2026-01-23 15:24:41 +01:00
38 changed files with 2232 additions and 17 deletions

View File

@@ -9,6 +9,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
---
## [2.14.0] - 2026-01-25 - "Web Intelligence & Windows"
### Added
- **New Skill**:
- `context7-auto-research`: Auto-research capability for Claude Code.
- `codex-review`: Professional code review with AI integration.
- `exa-search`: Semantic search and discovery using Exa API.
- `firecrawl-scraper`: Deep web scraping and PDF parsing.
- `tavily-web`: Content extraction and research using Tavily.
- `busybox-on-windows`: UNIX tool suite for Windows environments.
### Changed
- **Documentation**: Updated `obsidian-clipper-template-creator` docs and templates.
- **Index & Registry**: Updated `skills_index.json` and `README.md` registry.
### Fixed
- **Skills**: Fixed YAML frontmatter quoting in `lint-and-validate`.
## [2.13.0] - 2026-01-24 - "NoSQL Expert"
### Added
- **New Skill**:
- `nosql-expert`: Expert guidance for distributed NoSQL databases (Cassandra, DynamoDB), focusing on query-first modeling and anti-patterns.
### Changed
- **Index & Registry**: Updated `skills_index.json` and `README.md` registry.
### Contributors
- [@sickn33](https://github.com/sickn33) - PR #23
## [2.12.0] - 2026-01-23 - "Enterprise & UI Power"
### Added
- **New Skills**:
- `production-code-audit`: Comprehensive enterprise auditing skill for production readiness.
- `avalonia-layout-zafiro`: Zafiro layout guidelines for Avalonia UI.
- `avalonia-viewmodels-zafiro`: ViewModel composition patterns for Avalonia.
- `avalonia-zafiro-development`: Core development rules for Avalonia Zafiro applications.
### Changed
- **Index & Registry**: Updated `skills_index.json` and `README.md` registry (Total: 243 skills).
### Contributors
- [@SuperJMN](https://github.com/SuperJMN) - PR #20
- [@Mohammad-Faiz-Cloud-Engineer](https://github.com/Mohammad-Faiz-Cloud-Engineer) - PR #21
## [2.11.0] - 2026-01-23 - "Postgres Performance"
### Added

1
FAQ.md
View File

@@ -72,6 +72,7 @@ git clone https://github.com/sickn33/antigravity-awesome-skills.git .agent/skill
- Gemini CLI: `.gemini/skills/` or `.agent/skills/`
- Cursor: `.cursor/skills/` or project root
- Antigravity: `.agent/skills/`
- OpenCode: `.opencode/skills/` or `.claude/skills/`
---

View File

@@ -1,6 +1,6 @@
# 🌌 Antigravity Awesome Skills: 239+ Agentic Skills for Claude Code, Gemini CLI, Cursor, Copilot & More
# 🌌 Antigravity Awesome Skills: 251+ Agentic Skills for Claude Code, Gemini CLI, Cursor, Copilot & More
> **The Ultimate Collection of 239+ Universal Agentic Skills for AI Coding Assistants — Claude Code, Gemini CLI, Codex CLI, Antigravity IDE, GitHub Copilot, Cursor, OpenCode**
> **The Ultimate Collection of 251+ Universal Agentic Skills for AI Coding Assistants — Claude Code, Gemini CLI, Codex CLI, Antigravity IDE, GitHub Copilot, Cursor, OpenCode**
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Claude Code](https://img.shields.io/badge/Claude%20Code-Anthropic-purple)](https://claude.ai)
@@ -11,7 +11,7 @@
[![OpenCode](https://img.shields.io/badge/OpenCode-CLI-gray)](https://github.com/opencode-ai/opencode)
[![Antigravity](https://img.shields.io/badge/Antigravity-DeepMind-red)](https://github.com/anthropics/antigravity)
**Antigravity Awesome Skills** is a curated, battle-tested library of **239 high-performance agentic skills** designed to work seamlessly across all major AI coding assistants:
**Antigravity Awesome Skills** is a curated, battle-tested library of **243 high-performance agentic skills** designed to work seamlessly across all major AI coding assistants:
- 🟣 **Claude Code** (Anthropic CLI)
- 🔵 **Gemini CLI** (Google DeepMind)
@@ -25,14 +25,20 @@ This repository provides essential skills to transform your AI assistant into a
## 📍 Table of Contents
- [🚀 New Here? Start Here!](#-new-here-start-here)
- [🔌 Compatibility](#-compatibility)
- [Features & Categories](#features--categories)
- [Full Skill Registry](#full-skill-registry-155155)
- [Installation](#installation)
- [How to Contribute](#how-to-contribute)
- [Credits & Sources](#credits--sources)
- [License](#license)
- [🌌 Antigravity Awesome Skills: 244+ Agentic Skills for Claude Code, Gemini CLI, Cursor, Copilot \& More](#-antigravity-awesome-skills-244-agentic-skills-for-claude-code-gemini-cli-cursor-copilot--more)
- [📍 Table of Contents](#-table-of-contents)
- [New Here? Start Here!](#new-here-start-here)
- [🔌 Compatibility](#-compatibility)
- [Features \& Categories](#features--categories)
- [Full Skill Registry (244/244)](#full-skill-registry-244244)
- [Installation](#installation)
- [How to Contribute](#how-to-contribute)
- [Credits \& Sources](#credits--sources)
- [Official Sources](#official-sources)
- [Community Contributors](#community-contributors)
- [Inspirations](#inspirations)
- [License](#license)
- [🏷️ GitHub Topics](#-github-topics)
---
@@ -55,7 +61,7 @@ git clone https://github.com/sickn33/antigravity-awesome-skills.git .agent/skill
@brainstorming help me design a todo app
```
That's it! Your AI assistant now has 239 specialized skills. 🎉
That's it! Your AI assistant now has 243 specialized skills. 🎉
**Additional Resources:**
@@ -76,7 +82,7 @@ These skills follow the universal **SKILL.md** format and work with any AI codin
| **Antigravity IDE** | IDE | ✅ Full | `.agent/skills/` |
| **Cursor** | IDE | ✅ Full | `.cursor/skills/` or project root |
| **GitHub Copilot** | Extension | ⚠️ Partial | Copy skill content to `.github/copilot/` |
| **OpenCode** | CLI | ✅ Full | `.opencode/skills/` or `.agent/skills/` |
| **OpenCode** | CLI | ✅ Full | `.opencode/skills/` or `.claude/skills/` |
> [!TIP]
> Most tools auto-discover skills in `.agent/skills/`. For maximum compatibility, clone to this directory.
@@ -109,7 +115,7 @@ The repository is organized into several key areas of expertise:
---
## Full Skill Registry (239/239)
## Full Skill Registry (251/251)
> [!NOTE] > **Document Skills**: We provide both **community** and **official Anthropic** versions for DOCX, PDF, PPTX, and XLSX. Locally, the official versions are used by default (via symlinks). In the repository, both versions are available for flexibility.
@@ -141,6 +147,9 @@ The repository is organized into several key areas of expertise:
| **architecture** | Architectural decision-making framework. Requirements analysis, trade-off evaluation, ADR documentation. Use when making architecture decisions or analyzing system design. | `skills/architecture` |
| **autonomous-agent-patterns** | "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 APIs, implementing permission systems, or creating autonomous coding assistants." | `skills/autonomous-agent-patterns` |
| **autonomous-agents** | "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's making them reliable. Every extra decision multiplies failure probability. This skill covers agent loops (ReAct, Plan-Execute), goal decomposition, reflection patterns, and production reliability. Key insight: compounding error rates kill autonomous agents. A 95% success rate per step drops to 60% b" | `skills/autonomous-agents` |
| **avalonia-layout-zafiro** | Guidelines for modern Avalonia UI layout using Zafiro.Avalonia, emphasizing shared styles, generic components, and avoiding XAML redundancy. | `skills/avalonia-layout-zafiro` |
| **avalonia-viewmodels-zafiro** | Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI. | `skills/avalonia-viewmodels-zafiro` |
| **avalonia-zafiro-development** | Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit. | `skills/avalonia-zafiro-development` |
| **AWS Penetration Testing** | 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", "metadata SSRF", "Lambda exploitation", or needs guidance on Amazon Web Services security assessment. | `skills/aws-penetration-testing` |
| **aws-serverless** | "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 optimization." | `skills/aws-serverless` |
| **azure-functions** | "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 programming models. Use when: azure function, azure functions, durable functions, azure serverless, function app." | `skills/azure-functions` |
@@ -158,6 +167,7 @@ The repository is organized into several key areas of expertise:
| **bullmq-specialist** | "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." | `skills/bullmq-specialist` |
| **bun-development** | "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, or migrating from Node.js to Bun." | `skills/bun-development` |
| **Burp Suite Web Application Testing** | 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 Repeater", "analyze HTTP history", or "configure proxy for web testing". It provides comprehensive guidance for using Burp Suite's core features for web application security testing. | `skills/burp-suite-testing` |
| **busybox-on-windows** | How to use a Win32 build of BusyBox to run many of the standard UNIX command line tools on Windows. | `skills/busybox-on-windows` |
| **canvas-design** | 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. | `skills/canvas-design` |
| **cc-skill-continuous-learning** | Development skill from everything-claude-code | `skills/cc-skill-continuous-learning` |
| **cc-skill-project-guidelines-example** | Project Guidelines Skill (Example) | `skills/cc-skill-project-guidelines-example` |
@@ -168,12 +178,14 @@ The repository is organized into several key areas of expertise:
| **clickhouse-io** | ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads. | `skills/cc-skill-clickhouse-io` |
| **Cloud Penetration Testing** | 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 misconfigurations", "test O365 security", "extract secrets from cloud environments", or "audit cloud infrastructure". It provides comprehensive techniques for security assessment across major cloud platforms. | `skills/cloud-penetration-testing` |
| **code-review-checklist** | "Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability" | `skills/code-review-checklist` |
| **codex-review** | Professional code review with auto CHANGELOG generation, integrated with Codex AI | `skills/codex-review` |
| **coding-standards** | Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development. | `skills/cc-skill-coding-standards` |
| **competitor-alternatives** | "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,' or 'competitive landing pages.' Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. Emphasizes deep research, modular content architecture, and varied section types beyond feature tables." | `skills/competitor-alternatives` |
| **computer-use-agents** | "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-source alternatives. Critical focus on sandboxing, security, and handling the unique challenges of vision-based control. Use when: computer use, desktop automation agent, screen control AI, vision-based agent, GUI automation." | `skills/computer-use-agents` |
| **concise-planning** | Use when a user asks for a plan for a coding task, to generate a clear, actionable, and atomic checklist. | `skills/concise-planning` |
| **content-creator** | 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, creating social media content, analyzing brand voice, optimizing SEO, planning content calendars, or when user mentions content creation, brand voice, SEO optimization, social media marketing, or content strategy. | `skills/content-creator` |
| **context-window-management** | "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 context." | `skills/context-window-management` |
| **context7-auto-research** | Automatically fetch latest library/framework documentation for Claude Code via Context7 API | `skills/context7-auto-research` |
| **conversation-memory** | "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." | `skills/conversation-memory` |
| **copy-editing** | "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,' or 'copy sweep.' This skill provides a systematic approach to editing marketing copy through multiple focused passes." | `skills/copy-editing` |
| **copywriting** | 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," or "CTA copy." For email copy, see email-sequence. For popup copy, see popup-cro. | `skills/copywriting` |
@@ -193,12 +205,14 @@ The repository is organized into several key areas of expertise:
| **email-systems** | "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 covers transactional email that works, marketing automation that converts, deliverability that reaches inboxes, and the infrastructure decisions that scale. Use when: keywords, file_patterns, code_patterns." | `skills/email-systems` |
| **environment-setup-guide** | "Guide developers through setting up development environments with proper tools, dependencies, and configurations" | `skills/environment-setup-guide` |
| **Ethical Hacking Methodology** | This skill should be used when the user asks to "learn ethical hacking", "understand penetration testing lifecycle", "perform reconnaissance", "conduct security scanning", "exploit vulnerabilities", or "write penetration test reports". It provides comprehensive ethical hacking methodology and techniques. | `skills/ethical-hacking-methodology` |
| **exa-search** | Semantic search, similar content discovery, and structured research using Exa API | `skills/exa-search` |
| **executing-plans** | Use when you have a written implementation plan to execute in a separate session with review checkpoints | `skills/executing-plans` |
| **File Path Traversal Testing** | 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 vulnerabilities", or "access files outside web root". It provides comprehensive file path traversal attack and testing methodologies. | `skills/file-path-traversal` |
| **file-organizer** | Intelligently organizes files and folders by understanding context, finding duplicates, and suggesting better organizational structures. Use when user wants to clean up directories, organize downloads, remove duplicates, or restructure projects. | `skills/file-organizer` |
| **file-uploads** | "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: file upload, S3, R2, presigned URL, multipart." | `skills/file-uploads` |
| **finishing-a-development-branch** | 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 | `skills/finishing-a-development-branch` |
| **firebase** | "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're often wrong. Firestore queries are limited, and you learn this after you've designed your data model. This skill covers Firebase Authentication, Firestore, Realtime Database, Cloud Functions, Cloud Storage, and Firebase Hosting. Key insight: Firebase is optimized for read-heavy, denormalized data. I" | `skills/firebase` |
| **firecrawl-scraper** | Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API | `skills/firecrawl-scraper` |
| **form-cro** | 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," or "contact form." For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro. | `skills/form-cro` |
| **free-tool-strategy** | 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," or "free resource." This skill bridges engineering and marketing — useful for founders and technical marketers. | `skills/free-tool-strategy` |
| **frontend-design** | 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. | `skills/frontend-design` |
@@ -226,7 +240,7 @@ The repository is organized into several key areas of expertise:
| **langfuse** | "Expert in Langfuse - the open-source LLM observability platform. Covers tracing, prompt management, evaluation, datasets, and integration with LangChain, LlamaIndex, and OpenAI. Essential for debugging, monitoring, and improving LLM applications in production. Use when: langfuse, llm observability, llm tracing, prompt management, llm evaluation." | `skills/langfuse` |
| **langgraph** | "Expert in LangGraph - the production-grade framework for building stateful, multi-actor AI applications. Covers graph construction, state management, cycles and branches, persistence with checkpointers, human-in-the-loop patterns, and the ReAct agent pattern. Used in production at LinkedIn, Uber, and 400+ companies. This is LangChain's recommended approach for building agents. Use when: langgraph, langchain agent, stateful agent, agent graph, react agent." | `skills/langgraph` |
| **launch-strategy** | "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,' or 'product update.' This skill covers phased launches, channel strategy, and ongoing launch momentum." | `skills/launch-strategy` |
| **lint-and-validate** | 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, validate, types, static analysis. | `skills/lint-and-validate` |
| **lint-and-validate** | "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, validate, types, static analysis." | `skills/lint-and-validate` |
| **Linux Privilege Escalation** | 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", "exploit cron jobs for root access", "enumerate Linux systems for privilege escalation", or "gain root access from low-privilege shell". It provides comprehensive techniques for identifying and exploiting privilege escalation paths on Linux systems. | `skills/linux-privilege-escalation` |
| **Linux Production Shell Scripts** | 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 shell scripts". It provides ready-to-use shell script templates for system administration. | `skills/linux-shell-scripting` |
| **llm-app-patterns** | "Production-ready patterns for building LLM applications. Covers RAG pipelines, agent architectures, prompt IDEs, and LLMOps monitoring. Use when designing AI applications, implementing RAG, building agents, or setting up LLM observability." | `skills/llm-app-patterns` |
@@ -246,8 +260,10 @@ The repository is organized into several key areas of expertise:
| **nextjs-best-practices** | Next.js App Router principles. Server Components, data fetching, routing patterns. | `skills/nextjs-best-practices` |
| **nextjs-supabase-auth** | "Expert integration of Supabase Auth with Next.js App Router Use when: supabase auth next, authentication next.js, login supabase, auth middleware, protected route." | `skills/nextjs-supabase-auth` |
| **nodejs-best-practices** | Node.js development principles and decision-making. Framework selection, async patterns, security, and architecture. Teaches thinking, not copying. | `skills/nodejs-best-practices` |
| **nosql-expert** | "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." | `skills/nosql-expert` |
| **notebooklm** | 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. Drastically reduced hallucinations through document-only responses. | `skills/notebooklm` |
| **notion-template-business** | "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, marketing, and scaling to real revenue. Use when: notion template, sell templates, digital product, notion business, gumroad." | `skills/notion-template-business` |
| **obsidian-clipper-template-creator** | 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. | `skills/obsidian-clipper-template-creator` |
| **onboarding-cro** | 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," or "new user experience." For signup/registration optimization, see signup-flow-cro. For ongoing email sequences, see email-sequence. | `skills/onboarding-cro` |
| **page-cro** | 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," or "why isn't this page working." 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. | `skills/page-cro` |
| **paid-ads** | "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,' 'ad copy,' 'ad creative,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' or 'audience targeting.' This skill covers campaign strategy, ad creation, audience targeting, and optimization." | `skills/paid-ads` |
@@ -270,6 +286,7 @@ The repository is organized into several key areas of expertise:
| **prisma-expert** | Prisma ORM expert for schema design, migrations, query optimization, relations modeling, and database operations. Use PROACTIVELY for Prisma schema issues, migration problems, query performance, relation design, or database connection issues. | `skills/prisma-expert` |
| **Privilege Escalation Methods** | This skill should be used when the user asks to "escalate privileges", "get root access", "become administrator", "privesc techniques", "abuse sudo", "exploit SUID binaries", "Kerberoasting", "pass-the-ticket", "token impersonation", or needs guidance on post-exploitation privilege escalation for Linux or Windows systems. | `skills/privilege-escalation-methods` |
| **product-manager-toolkit** | Comprehensive toolkit for product managers including RICE prioritization, customer interview analysis, PRD templates, discovery frameworks, and go-to-market strategies. Use for feature prioritization, user research synthesis, requirement documentation, and product strategy development. | `skills/product-manager-toolkit` |
| **production-code-audit** | "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" | `skills/production-code-audit` |
| **programmatic-seo** | 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," or "building many pages for SEO." For auditing existing SEO issues, see seo-audit. | `skills/programmatic-seo` |
| **prompt-caching** | "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 augmented." | `skills/prompt-caching` |
| **prompt-engineer** | "Expert in designing effective prompts for LLM-powered applications. Masters prompt structure, context management, output formatting, and prompt evaluation. Use when: prompt engineering, system prompt, few-shot, chain of thought, prompt design." | `skills/prompt-engineer` |
@@ -317,6 +334,7 @@ The repository is organized into several key areas of expertise:
| **supabase-postgres-best-practices** | Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations. | `skills/postgres-best-practices` |
| **systematic-debugging** | Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes | `skills/systematic-debugging` |
| **tailwind-patterns** | Tailwind CSS v4 principles. CSS-first configuration, container queries, modern patterns, design token architecture. | `skills/tailwind-patterns` |
| **tavily-web** | Web search, content extraction, crawling, and research capabilities using Tavily API | `skills/tavily-web` |
| **tdd-workflow** | Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle. | `skills/tdd-workflow` |
| **telegram-bot-builder** | "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 strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot." | `skills/telegram-bot-builder` |
| **telegram-mini-app** | "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 building viral mini apps that monetize. Use when: telegram mini app, TWA, telegram web app, TON app, mini app." | `skills/telegram-mini-app` |

View File

@@ -0,0 +1,59 @@
---
name: avalonia-layout-zafiro
description: Guidelines for modern Avalonia UI layout using Zafiro.Avalonia, emphasizing shared styles, generic components, and avoiding XAML redundancy.
allowed-tools: Read, Write, Edit, Glob, Grep
---
# Avalonia Layout with Zafiro.Avalonia
> Master modern, clean, and maintainable Avalonia UI layouts.
> **Focus on semantic containers, shared styles, and minimal XAML.**
## 🎯 Selective Reading Rule
**Read ONLY files relevant to the layout challenge!**
---
## 📑 Content Map
| File | Description | When to Read |
|------|-------------|--------------|
| `themes.md` | Theme organization and shared styles | Setting up or refining app themes |
| `containers.md` | Semantic containers (`HeaderedContainer`, `EdgePanel`, `Card`) | Structuring views and layouts |
| `icons.md` | Icon usage with `IconExtension` and `IconOptions` | Adding and customizing icons |
| `behaviors.md` | `Xaml.Interaction.Behaviors` and avoiding Converters | Implementing complex interactions |
| `components.md` | Generic components and avoiding nesting | Creating reusable UI elements |
---
## 🔗 Related Project (Exemplary Implementation)
For a real-world example, refer to the **Angor** project:
`/mnt/fast/Repos/angor/src/Angor/Avalonia/Angor.Avalonia.sln`
---
## ✅ Checklist for Clean Layouts
- [ ] **Used semantic containers?** (e.g., `HeaderedContainer` instead of `Border` with manual header)
- [ ] **Avoided redundant properties?** Use shared styles in `axaml` files.
- [ ] **Minimized nesting?** Flatten layouts using `EdgePanel` or generic components.
- [ ] **Icons via extension?** Use `{Icon fa-name}` and `IconOptions` for styling.
- [ ] **Behaviors over code-behind?** Use `Interaction.Behaviors` for UI-logic.
- [ ] **Avoided Converters?** Prefer ViewModel properties or Behaviors unless necessary.
---
## ❌ Anti-Patterns
**DON'T:**
- Use hardcoded colors or sizes (literals) in views.
- Create deep nesting of `Grid` and `StackPanel`.
- Repeat visual properties across multiple elements (use Styles).
- Use `IValueConverter` for simple logic that belongs in the ViewModel.
**DO:**
- Use `DynamicResource` for colors and brushes.
- Extract repeated layouts into generic components.
- Leverage `Zafiro.Avalonia` specific panels like `EdgePanel` for common UI patterns.

View File

@@ -0,0 +1,35 @@
# Interactions and Logic
To keep XAML clean and maintainable, minimize logic in views and avoid excessive use of converters.
## 🎭 Xaml.Interaction.Behaviors
Use `Interaction.Behaviors` to handle UI-related logic that doesn't belong in the ViewModel, such as focus management, animations, or specialized event handling.
```xml
<TextBox Text="{Binding Address}">
<Interaction.Behaviors>
<UntouchedClassBehavior />
</Interaction.Behaviors>
</TextBox>
```
### Why use Behaviors?
- **Encapsulation**: UI logic is contained in a reusable behavior class.
- **Clean XAML**: Avoids code-behind and complex XAML triggers.
- **Testability**: Behaviors can be tested independently of the View.
## 🚫 Avoiding Converters
Converters often lead to "magical" logic hidden in XAML. Whenever possible, prefer:
1. **ViewModel Properties**: Let the ViewModel provide the final data format (e.g., a `string` formatted for display).
2. **MultiBinding**: Use for simple logic combinations (And/Or) directly in XAML.
3. **Behaviors**: For more complex interactions that involve state or events.
### When to use Converters?
Only use them when the conversion is purely visual and highly reusable across different contexts (e.g., `BoolToOpacityConverter`).
## 🧩 Simplified Interactions
If you find yourself needing a complex converter or behavior, consider if the component can be simplified or if the data model can be adjusted to make the view binding more direct.

View File

@@ -0,0 +1,41 @@
# Building Generic Components
Reducing nesting and complexity is achieved by breaking down views into generic, reusable components.
## 🧊 Generic Components
Instead of building large, complex views, extract recurring patterns into small `UserControl`s.
### Example: A generic "Summary Item"
Instead of repeating a `Grid` with labels and values:
```xml
<!-- ❌ BAD: Repeated Grid -->
<Grid ColumnDefinitions="*,Auto">
<TextBlock Text="Total:" />
<TextBlock Grid.Column="1" Text="{Binding Total}" />
</Grid>
```
Create a generic component (or use `EdgePanel` with a Style):
```xml
<!-- ✅ GOOD: Use a specialized control or style -->
<EdgePanel StartContent="Total:" EndContent="{Binding Total}" Classes="SummaryItem" />
```
## 📉 Flattening Layouts
Avoid deep nesting. Deeply nested XAML is hard to read and can impact performance.
- **StackPanel vs Grid**: Use `StackPanel` (with `Spacing`) for simple linear layouts.
- **EdgePanel**: Great for "Label - Value" or "Icon - Text - Action" rows.
- **UniformGrid**: Use for grids where all cells are the same size.
## 🔧 Component Granularity
- **Atomical**: Small controls like custom buttons or icons.
- **Molecular**: Groups of atoms like a `HeaderedContainer` with specific content.
- **Organisms**: Higher-level sections of a page.
Aim for components that are generic enough to be reused but specific enough to simplify the parent view significantly.

View File

@@ -0,0 +1,50 @@
# Semantic Containers
Using the right container for the data type simplifies XAML and improves maintainability. `Zafiro.Avalonia` provides specialized controls for common layout patterns.
## 📦 HeaderedContainer
Prefer `HeaderedContainer` over a `Border` or `Grid` when a section needs a title or header.
```xml
<HeaderedContainer Header="Security Settings" Classes="WizardSection">
<StackPanel>
<!-- Content here -->
</StackPanel>
</HeaderedContainer>
```
### Key Properties:
- `Header`: The content or string for the header.
- `HeaderBackground`: Brush for the header area.
- `ContentPadding`: Padding for the content area.
## ↔️ EdgePanel
Use `EdgePanel` to position elements at the edges of a container without complex `Grid` definitions.
```xml
<EdgePanel StartContent="{Icon fa-wallet}"
Content="Wallet Balance"
EndContent="$1,234.00" />
```
### Slots:
- `StartContent`: Aligned to the left (or beginning).
- `Content`: Fills the remaining space in the middle.
- `EndContent`: Aligned to the right (or end).
## 📇 Card
A simple container for grouping related information, often used inside `HeaderedContainer` or as a standalone element in a list.
```xml
<Card Header="Enter recipient address:">
<TextBox Text="{Binding Address}" />
</Card>
```
## 📐 Best Practices
- Use `Classes` to apply themed variants (e.g., `Classes="Section"`, `Classes="Highlight"`).
- Customize internal parts of the containers using templates in your styles when necessary, rather than nesting more controls.

View File

@@ -0,0 +1,53 @@
# Icon Usage
`Zafiro.Avalonia` simplifies icon management using a specialized markup extension and styling options.
## 🛠️ IconExtension
Use the `{Icon}` markup extension to easily include icons from libraries like FontAwesome.
```xml
<!-- Positional parameter -->
<Button Content="{Icon fa-wallet}" />
<!-- Named parameter -->
<ContentControl Content="{Icon Source=fa-gear}" />
```
## 🎨 IconOptions
`IconOptions` allows you to customize icons without manually wrapping them in other controls. It's often used in styles to provide a consistent look.
```xml
<Style Selector="HeaderedContainer /template/ ContentPresenter#Header EdgePanel /template/ ContentControl#StartContent">
<Setter Property="IconOptions.Size" Value="20" />
<Setter Property="IconOptions.Fill" Value="{DynamicResource Accent}" />
<Setter Property="IconOptions.Padding" Value="10" />
<Setter Property="IconOptions.CornerRadius" Value="10" />
</Style>
```
### Common Properties:
- `IconOptions.Size`: Sets the width and height of the icon.
- `IconOptions.Fill`: The color/brush of the icon.
- `IconOptions.Background`: Background brush for the icon container.
- `IconOptions.Padding`: Padding inside the icon container.
- `IconOptions.CornerRadius`: Corner radius if a background is used.
## 📁 Shared Icon Resources
Define icons as resources for reuse across the application.
```xml
<ResourceDictionary xmlns="https://github.com/avaloniaui">
<Icon x:Key="fa-wallet" Source="fa-wallet" />
</ResourceDictionary>
```
Then use them with `StaticResource` if they are already defined:
```xml
<Button Content="{StaticResource fa-wallet}" />
```
However, the `{Icon ...}` extension is usually preferred for its brevity and ability to create new icon instances on the fly.

View File

@@ -0,0 +1,51 @@
# Theme Organization and Shared Styles
Efficient theme organization is key to avoiding redundant XAML and ensuring visual consistency.
## 🏗️ Structure
Follow the pattern from Angor:
1. **Colors & Brushes**: Define in a dedicated `Colors.axaml`. Use `DynamicResource` to support theme switching.
2. **Styles**: Group styles by category (e.g., `Buttons.axaml`, `Containers.axaml`, `Typography.axaml`).
3. **App-wide Theme**: Aggregate all styles in a main `Theme.axaml`.
## 🎨 Avoiding Redundancy
Instead of setting properties directly on elements:
```xml
<!-- ❌ BAD: Redundant properties -->
<HeaderedContainer CornerRadius="10" BorderThickness="1" BorderBrush="Blue" Background="LightBlue" />
<HeaderedContainer CornerRadius="10" BorderThickness="1" BorderBrush="Blue" Background="LightBlue" />
<!-- ✅ GOOD: Use Classes and Styles -->
<HeaderedContainer Classes="BlueSection" />
<HeaderedContainer Classes="BlueSection" />
```
Define the style in a shared `axaml` file:
```xml
<Style Selector="HeaderedContainer.BlueSection">
<Setter Property="CornerRadius" Value="10" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="{DynamicResource Accent}" />
<Setter Property="Background" Value="{DynamicResource SurfaceSubtle}" />
</Style>
```
## 🧩 Shared Icons and Resources
Centralize icon definitions and other shared resources in `Icons.axaml` and include them in the `MergedDictionaries` of your theme or `App.axaml`.
```xml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<MergeResourceInclude Source="UI/Themes/Styles/Containers.axaml" />
<MergeResourceInclude Source="UI/Shared/Resources/Icons.axaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
```

View File

@@ -0,0 +1,29 @@
---
name: avalonia-viewmodels-zafiro
description: Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI.
---
# Avalonia ViewModels with Zafiro
This skill provides a set of best practices and patterns for creating ViewModels, Wizards, and managing navigation in Avalonia applications, leveraging the power of **ReactiveUI** and the **Zafiro** toolkit.
## Core Principles
1. **Functional-Reactive Approach**: Use ReactiveUI (`ReactiveObject`, `WhenAnyValue`, etc.) to handle state and logic.
2. **Enhanced Commands**: Utilize `IEnhancedCommand` for better command management, including progress reporting and name/text attributes.
3. **Wizard Pattern**: Implement complex flows using `SlimWizard` and `WizardBuilder` for a declarative and maintainable approach.
4. **Automatic Section Discovery**: Use the `[Section]` attribute to register and discover UI sections automatically.
5. **Clean Composition**: map ViewModels to Views using `DataTypeViewLocator` and manage dependencies in the `CompositionRoot`.
## Guides
- [ViewModels & Commands](viewmodels.md): Creating robust ViewModels and handling commands.
- [Wizards & Flows](wizards.md): Building multi-step wizards with `SlimWizard`.
- [Navigation & Sections](navigation_sections.md): Managing navigation and section-based UIs.
- [Composition & Mapping](composition.md): Best practices for View-ViewModel wiring and DI.
## Example Reference
For real-world implementations, refer to the **Angor** project:
- `CreateProjectFlowV2.cs`: Excellent example of complex Wizard building.
- `HomeViewModel.cs`: Simple section ViewModel using functional-reactive commands.

View File

@@ -0,0 +1,75 @@
# Composition & Mapping
Ensuring your ViewModels are correctly instantiated and mapped to their corresponding Views is crucial for a maintainable application.
## ViewModel-to-View Mapping
Zafiro uses the `DataTypeViewLocator` to automatically map ViewModels to Views based on their data type.
### Integration in App.axaml
Register the `DataTypeViewLocator` in your application's data templates:
```xml
<Application.DataTemplates>
<DataTypeViewLocator />
<DataTemplateInclude Source="avares://Zafiro.Avalonia/DataTemplates.axaml" />
</Application.DataTemplates>
```
### Registration
Mappings can be registered globally or locally. Common practice in Zafiro projects is to use naming conventions or explicit registrations made by source generators.
## Composition Root
Use a central `CompositionRoot` to manage dependency injection and service registration.
```csharp
public static class CompositionRoot
{
public static IShellViewModel CreateMainViewModel(Control topLevelView)
{
var services = new ServiceCollection();
services
.AddViewModels()
.AddUIServices(topLevelView);
var serviceProvider = services.BuildServiceProvider();
return serviceProvider.GetRequiredService<IShellViewModel>();
}
}
```
### Registering ViewModels
Register ViewModels with appropriate scopes (Transient, Scoped, or Singleton).
```csharp
public static IServiceCollection AddViewModels(this IServiceCollection services)
{
return services
.AddTransient<IHomeSectionViewModel, HomeSectionSectionViewModel>()
.AddSingleton<IShellViewModel, ShellViewModel>();
}
```
## View Injection
Use the `Connect` helper (if available) or manual instantiation in `OnFrameworkInitializationCompleted`:
```csharp
public override void OnFrameworkInitializationCompleted()
{
this.Connect(
() => new ShellView(),
view => CompositionRoot.CreateMainViewModel(view),
() => new MainWindow());
base.OnFrameworkInitializationCompleted();
}
```
> [!TIP]
> Use `ActivatorUtilities.CreateInstance` when you need to manually instantiate a class while still resolving its dependencies from the `IServiceProvider`.

View File

@@ -0,0 +1,53 @@
# Navigation & Sections
Zafiro provides powerful abstractions for managing application-wide navigation and modular UI sections.
## Navigation with INavigator
The `INavigator` interface is used to switch between different views or viewmodels.
```csharp
public class MyViewModel(INavigator navigator)
{
public async Task GoToDetails()
{
await navigator.Navigate(() => new DetailsViewModel());
}
}
```
## UI Sections
Sections are modular parts of the UI (like tabs or sidebar items) that can be automatically registered.
### The [Section] Attribute
ViewModels intended to be sections should be marked with the `[Section]` attribute.
```csharp
[Section("Wallet", icon: "fa-wallet")]
public class WalletSectionViewModel : IWalletSectionViewModel
{
// ...
}
```
### Automatic Registration
In the `CompositionRoot`, sections can be automatically registered:
```csharp
services.AddAnnotatedSections(logger);
services.AddSectionsFromAttributes(logger);
```
### Switching Sections
You can switch the current active section via the `IShellViewModel`:
```csharp
shellViewModel.SetSection("Browse");
```
> [!IMPORTANT]
> The `icon` parameter in the `[Section]` attribute supports FontAwesome icons (e.g., `fa-home`) when configured with `ProjektankerIconControlProvider`.

View File

@@ -0,0 +1,68 @@
# ViewModels & Commands
In a Zafiro-based application, ViewModels should be functional, reactive, and resilient.
## Reactive ViewModels
Use `ReactiveObject` as the base class. Properties should be defined using the `[Reactive]` attribute (from ReactiveUI.SourceGenerators) for brevity.
```csharp
public partial class MyViewModel : ReactiveObject
{
[Reactive] private string name;
[Reactive] private bool isBusy;
}
```
### Observation and Transformation
Use `WhenAnyValue` to react to property changes:
```csharp
this.WhenAnyValue(x => x.Name)
.Select(name => !string.IsNullOrEmpty(name))
.ToPropertyEx(this, x => x.CanSubmit);
```
## Enhanced Commands
Zafiro uses `IEnhancedCommand`, which extends `ICommand` and `IReactiveCommand` with additional metadata like `Name` and `Text`.
### Creating a Command
Use `ReactiveCommand.Create` or `ReactiveCommand.CreateFromTask` and then `Enhance()` it.
```csharp
public IEnhancedCommand Submit { get; }
public MyViewModel()
{
Submit = ReactiveCommand.CreateFromTask(OnSubmit, canSubmit)
.Enhance(text: "Submit Data", name: "SubmitCommand");
}
```
### Error Handling
Use `HandleErrorsWith` to automatically channel command errors to the `NotificationService`.
```csharp
Submit.HandleErrorsWith(uiServices.NotificationService, "Submission Failed")
.DisposeWith(disposable);
```
## Disposables
Always use a `CompositeDisposable` to manage subscriptions and command lifetimes.
```csharp
public class MyViewModel : ReactiveObject, IDisposable
{
private readonly CompositeDisposable disposables = new();
public void Dispose() => disposables.Dispose();
}
```
> [!TIP]
> Use `.DisposeWith(disposables)` on any observable subscription or command to ensure proper cleanup.

View File

@@ -0,0 +1,47 @@
# Wizards & Flows
Complex multi-step processes are handled using the `SlimWizard` pattern. This provides a declarative way to define steps, navigation logic, and final results.
## Defining a Wizard
Use `WizardBuilder` to define the steps. Each step corresponds to a ViewModel.
```csharp
SlimWizard<string> wizard = WizardBuilder
.StartWith(() => new Step1ViewModel(data))
.NextUnit()
.WhenValid()
.Then(prevResult => new Step2ViewModel(prevResult))
.NextCommand(vm => vm.CustomNextCommand)
.Then(result => new SuccessViewModel("Done!"))
.Next((_, s) => s, "Finish")
.WithCompletionFinalStep();
```
### Navigation Rules
- **NextUnit()**: Advances when a simple signal is emitted.
- **NextCommand()**: Advances when a specific command in the ViewModel execution successfully.
- **WhenValid()**: Wait until the current ViewModel's validation passes before allowing navigation.
- **Always()**: Navigation is always allowed.
## Navigation Integration
The wizard is navigated using an `INavigator`:
```csharp
public async Task CreateSomething()
{
var wizard = BuildWizard();
var result = await wizard.Navigate(navigator);
// Handle result
}
```
## Step Configuration
- **WithCompletionFinalStep()**: Marks the wizard as finished when the last step completes.
- **WithCommitFinalStep()**: Typically used for wizards that perform a final "Save" or "Deploy" action.
> [!NOTE]
> The `SlimWizard` handles the "Back" command automatically, providing a consistent user experience across different flows.

View File

@@ -0,0 +1,29 @@
---
name: avalonia-zafiro-development
description: Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit.
---
# Avalonia Zafiro Development
This skill defines the mandatory conventions and behavioral rules for developing cross-platform applications with Avalonia UI and the Zafiro toolkit. These rules prioritize maintainability, correctness, and a functional-reactive approach.
## Core Pillars
1. **Functional-Reactive MVVM**: Pure MVVM logic using DynamicData and ReactiveUI.
2. **Safety & Predictability**: Explicit error handling with `Result` types and avoidance of exceptions for flow control.
3. **Cross-Platform Excellence**: Strictly Avalonia-independent ViewModels and composition-over-inheritance.
4. **Zafiro First**: Leverage existing Zafiro abstractions and helpers to avoid redundancy.
## Guides
- [Core Technical Skills & Architecture](core-technical-skills.md): Fundamental skills and architectural principles.
- [Naming & Coding Standards](naming-standards.md): Rules for naming, fields, and error handling.
- [Avalonia, Zafiro & Reactive Rules](avalonia-reactive-rules.md): Specific guidelines for UI, Zafiro integration, and DynamicData pipelines.
- [Zafiro Shortcuts](zafiro-shortcuts.md): Concise mappings for common Rx/Zafiro operations.
- [Common Patterns](patterns.md): Advanced patterns like `RefreshableCollection` and Validation.
## Procedure Before Writing Code
1. **Search First**: Search the codebase for similar implementations or existing Zafiro helpers.
2. **Reusable Extensions**: If a helper is missing, propose a new reusable extension method instead of inlining complex logic.
3. **Reactive Pipelines**: Ensure DynamicData operators are used instead of plain Rx where applicable.

View File

@@ -0,0 +1,49 @@
# Avalonia, Zafiro & Reactive Rules
## Avalonia UI Rules
- **Strict Avalonia**: Never use `System.Drawing`; always use Avalonia types.
- **Pure ViewModels**: ViewModels must **never** reference Avalonia types.
- **Bindings Over Code-Behind**: Logic should be driven by bindings.
- **DataTemplates**: Prefer explicit `DataTemplate`s and typed `DataContext`s.
- **VisualStates**: Avoid using `VisualStates` unless absolutely required.
## Zafiro Guidelines
- **Prefer Abstractions**: Always look for existing Zafiro helpers, extension methods, and abstractions before re-implementing logic.
- **Validation**: Use Zafiro's `ValidationRule` and validation extensions instead of ad-hoc reactive logic.
## DynamicData & Reactive Rules
### The Mandatory Approach
- **Operator Preference**: Always prefer **DynamicData** operators (`Connect`, `Filter`, `Transform`, `Sort`, `Bind`, `DisposeMany`) over plain Rx operators when working with collections.
- **Readable Pipelines**: Build and maintain pipelines as a single, readable chain.
- **Lifecycle**: Use `DisposeWith` for lifecycle management.
- **Minimal Subscriptions**: Subscriptions should be minimal, centralized, and strictly for side-effects.
### Forbidden Anti-Patterns
- **Ad-hoc Sources**: Do NOT create new `SourceList` / `SourceCache` on the fly for local problems.
- **Logic in Subscribe**: Do NOT place business logic inside `Subscribe`.
- **Operator Mismatch**: Do NOT use `System.Reactive` operators if a DynamicData equivalent exists.
### Canonical Patterns
**Validation of Dynamic Collections:**
```csharp
this.ValidationRule(
StagesSource
.Connect()
.FilterOnObservable(stage => stage.IsValid)
.IsEmpty(),
b => !b,
_ => "Stages are not valid")
.DisposeWith(Disposables);
```
**Filtering Nulls:**
Use `WhereNotNull()` in reactive pipelines.
```csharp
this.WhenAnyValue(x => x.DurationPreset).WhereNotNull()
```

View File

@@ -0,0 +1,19 @@
# Core Technical Skills & Architecture
## Mandatory Expertise
The developer must possess strong expertise in:
- **C# and modern .NET**: Utilizing the latest features of the language and framework.
- **Avalonia UI**: For cross-platform UI development.
- **MVVM Architecture**: Maintaining strict separation between UI and business logic.
- **Clean Code & Clean Architecture**: Focusing on maintainability and inward dependency flow.
- **Functional Programming in C#**: Embracing immutability and functional patterns.
- **Reactive Programming**: Expertise in DynamicData and System.Reactive.
## Architectural Principles
- **Pure MVVM**: Mandatory for all UI code. Logic must be independent of UI concerns.
- **Composition over Inheritance**: Favor modular building blocks over deep inheritance hierarchies.
- **Inward Dependency Flow**: Abstractions must not depend on implementations.
- **Immutability**: Prefer immutable structures where practical to ensure predictability.
- **Stable Public APIs**: Design APIs carefully to ensure long-term stability and clarity.

View File

@@ -0,0 +1,15 @@
# Naming & Coding Standards
## General Standards
- **Explicit Names**: Favor clarity over cleverness.
- **Async Suffix**: Do **NOT** use the `Async` suffix in method names, even if they return `Task`.
- **Private Fields**: Do **NOT** use the `_` prefix for private fields.
- **Static State**: Avoid static state unless explicitly justified and documented.
- **Method Design**: Keep methods small, expressive, and with low cyclomatic complexity.
## Error Handling
- **Result & Maybe**: Use types from **CSharpFunctionalExtensions** for flow control and error handling.
- **Exceptions**: Reserved strictly for truly exceptional, unrecoverable situations.
- **Boundaries**: Never allow exceptions to leak across architectural boundaries.

View File

@@ -0,0 +1,45 @@
# Common Patterns in Angor/Zafiro
## Refreshable Collections
The `RefreshableCollection` pattern is used to manage lists that can be refreshed via a command, maintaining an internal `SourceCache`/`SourceList` and exposing a `ReadOnlyObservableCollection`.
### Implementation
```csharp
var refresher = RefreshableCollection.Create(
() => GetDataTask(),
model => model.Id)
.DisposeWith(disposable);
LoadData = refresher.Refresh;
Items = refresher.Items;
```
### Benefits
- **Automatic Loading**: Handles the command execution and results.
- **Efficient Updates**: Uses `EditDiff` internally to update items without clearing the list.
- **UI Friendly**: Exposes `Items` as a `ReadOnlyObservableCollection` suitable for binding.
## Mandatory Validation Pattern
When validating dynamic collections, always use the Zafiro validation extension:
```csharp
this.ValidationRule(
StagesSource
.Connect()
.FilterOnObservable(stage => stage.IsValid)
.IsEmpty(),
b => !b,
_ => "Stages are not valid")
.DisposeWith(Disposables);
```
## Error Handling Pipeline
Instead of manual `Subscribe`, use `HandleErrorsWith` to pipe errors directly to the user:
```csharp
LoadProjects.HandleErrorsWith(uiServices.NotificationService, "Could not load projects");
```

View File

@@ -0,0 +1,43 @@
# Zafiro Reactive Shortcuts
Use these Zafiro extension methods to replace standard, more verbose Reactive and DynamicData patterns.
## General Observable Helpers
| Standard Pattern | Zafiro Shortcut |
| :--- | :--- |
| `Replay(1).RefCount()` | `ReplayLastActive()` |
| `Select(_ => Unit.Default)` | `ToSignal()` |
| `Select(b => !b)` | `Not()` |
| `Where(b => b).ToSignal()` | `Trues()` |
| `Where(b => !b).ToSignal()` | `Falses()` |
| `Select(x => x is null)` | `Null()` |
| `Select(x => x is not null)` | `NotNull()` |
| `Select(string.IsNullOrWhiteSpace)` | `NullOrWhitespace()` |
| `Select(s => !string.IsNullOrWhiteSpace(s))` | `NotNullOrEmpty()` |
## Result & Maybe Extensions
| Standard Pattern | Zafiro Shortcut |
| :--- | :--- |
| `Where(r => r.IsSuccess).Select(r => r.Value)` | `Successes()` |
| `Where(r => r.IsFailure).Select(r => r.Error)` | `Failures()` |
| `Where(m => m.HasValue).Select(m => m.Value)` | `Values()` |
| `Where(m => !m.HasValue).ToSignal()` | `Empties()` |
## Lifecycle Management
| Description | Method |
| :--- | :--- |
| Dispose previous item before emitting new one | `DisposePrevious()` |
| Manage lifecycle within a disposable | `DisposeWith(disposables)` |
## Command & Interaction
| Description | Method |
| :--- | :--- |
| Add metadata/text to a ReactiveCommand | `Enhance(text, name)` |
| Automatically show errors in UI | `HandleErrorsWith(notificationService)` |
> [!TIP]
> Always check `Zafiro.Reactive.ObservableMixin` and `Zafiro.CSharpFunctionalExtensions.ObservableExtensions` before writing custom Rx logic.

View File

@@ -0,0 +1,30 @@
---
name: busybox-on-windows
description: How to use a Win32 build of BusyBox to run many of the standard UNIX command line tools on Windows.
license: MIT
---
BusyBox is a single binary that implements many common Unix tools.
Use this skill only on Windows. If you are on UNIX, then stop here.
Run the following steps only if you cannot find a `busybox.exe` file in the same directory as this document is.
These are PowerShell commands, if you have a classic `cmd.exe` terminal, then you must use `powershell -Command "..."` to run them.
1. Print the type of CPU: `Get-CimInstance -ClassName Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed`
2. Print the OS versions: `Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object ProductName, DisplayVersion, CurrentBuild`
3. Download a suitable build of BusyBox by running one of these PowerShell commands:
- 32-bit x86 (ANSI): `$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://frippery.org/files/busybox/busybox.exe -OutFile busybox.exe`
- 64-bit x86 (ANSI): `$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://frippery.org/files/busybox/busybox64.exe -OutFile busybox.exe`
- 64-bit x86 (Unicode): `$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://frippery.org/files/busybox/busybox64u.exe -OutFile busybox.exe`
- 64-bit ARM (Unicode): `$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://frippery.org/files/busybox/busybox64a.exe -OutFile busybox.exe`
Useful commands:
- Help: `busybox.exe --list`
- Available UNIX commands: `busybox.exe --list`
Usage: Prefix the UNIX command with `busybox.exe`, for example: `busybox.exe ls -1`
If you need to run a UNIX command under another CWD, then use the absolute path to `busybox.exe`.
Documentation: https://frippery.org/busybox/
Original BusyBox: https://busybox.net/

View File

@@ -0,0 +1,37 @@
---
name: codex-review
description: Professional code review with auto CHANGELOG generation, integrated with Codex AI
---
# codex-review
## Overview
Professional code review with auto CHANGELOG generation, integrated with Codex AI
## When to Use
- When you want professional code review before commits
- When you need automatic CHANGELOG generation
- When reviewing large-scale refactoring
## Installation
```bash
npx skills add -g BenedictKing/codex-review
```
## Step-by-Step Guide
1. Install the skill using the command above
2. Ensure Codex CLI is installed
3. Use `/codex-review` or natural language triggers
## Examples
See [GitHub Repository](https://github.com/BenedictKing/codex-review) for examples.
## Best Practices
- Keep CHANGELOG.md in your project root
- Use conventional commit messages
## Troubleshooting
See the GitHub repository for troubleshooting guides.
## Related Skills
- context7-auto-research, tavily-web, exa-search, firecrawl-scraper

View File

@@ -0,0 +1,36 @@
---
name: context7-auto-research
description: Automatically fetch latest library/framework documentation for Claude Code via Context7 API
---
# context7-auto-research
## Overview
Automatically fetch latest library/framework documentation for Claude Code via Context7 API
## When to Use
- When you need up-to-date documentation for libraries and frameworks
- When asking about React, Next.js, Prisma, or any other popular library
## Installation
```bash
npx skills add -g BenedictKing/context7-auto-research
```
## Step-by-Step Guide
1. Install the skill using the command above
2. Configure API key (optional, see GitHub repo for details)
3. Use naturally in Claude Code conversations
## Examples
See [GitHub Repository](https://github.com/BenedictKing/context7-auto-research) for examples.
## Best Practices
- Configure API keys via environment variables for higher rate limits
- Use the skill's auto-trigger feature for seamless integration
## Troubleshooting
See the GitHub repository for troubleshooting guides.
## Related Skills
- tavily-web, exa-search, firecrawl-scraper, codex-review

View File

@@ -0,0 +1,36 @@
---
name: exa-search
description: Semantic search, similar content discovery, and structured research using Exa API
---
# exa-search
## Overview
Semantic search, similar content discovery, and structured research using Exa API
## When to Use
- When you need semantic/embeddings-based search
- When finding similar content
- When searching by category (company, people, research papers, etc.)
## Installation
```bash
npx skills add -g BenedictKing/exa-search
```
## Step-by-Step Guide
1. Install the skill using the command above
2. Configure Exa API key
3. Use naturally in Claude Code conversations
## Examples
See [GitHub Repository](https://github.com/BenedictKing/exa-search) for examples.
## Best Practices
- Configure API keys via environment variables
## Troubleshooting
See the GitHub repository for troubleshooting guides.
## Related Skills
- context7-auto-research, tavily-web, firecrawl-scraper, codex-review

View File

@@ -0,0 +1,37 @@
---
name: firecrawl-scraper
description: Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API
---
# firecrawl-scraper
## Overview
Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API
## When to Use
- When you need deep content extraction from web pages
- When page interaction is required (clicking, scrolling, etc.)
- When you want screenshots or PDF parsing
- When batch scraping multiple URLs
## Installation
```bash
npx skills add -g BenedictKing/firecrawl-scraper
```
## Step-by-Step Guide
1. Install the skill using the command above
2. Configure Firecrawl API key
3. Use naturally in Claude Code conversations
## Examples
See [GitHub Repository](https://github.com/BenedictKing/firecrawl-scraper) for examples.
## Best Practices
- Configure API keys via environment variables
## Troubleshooting
See the GitHub repository for troubleshooting guides.
## Related Skills
- context7-auto-research, tavily-web, exa-search, codex-review

View File

@@ -1,6 +1,6 @@
---
name: 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, validate, types, static analysis.
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, validate, types, static analysis."
allowed-tools: Read, Glob, Grep, Bash
---

View File

@@ -0,0 +1,111 @@
---
name: 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."
---
# NoSQL Expert Patterns (Cassandra & DynamoDB)
## Overview
This skill provides professional mental models and design patterns for **distributed wide-column and key-value stores** (specifically Apache Cassandra and Amazon DynamoDB).
Unlike SQL (where you model data entities), or document stores (like MongoDB), these distributed systems require you to **model your queries first**.
## When to Use
- **Designing for Scale**: Moving beyond simple single-node databases to distributed clusters.
- **Technology Selection**: Evaluating or using **Cassandra**, **ScyllaDB**, or **DynamoDB**.
- **Performance Tuning**: Troubleshooting "hot partitions" or high latency in existing NoSQL systems.
- **Microservices**: Implementing "database-per-service" patterns where highly optimized reads are required.
## The Mental Shift: SQL vs. Distributed NoSQL
| Feature | SQL (Relational) | Distributed NoSQL (Cassandra/DynamoDB) |
| :--- | :--- | :--- |
| **Data modeling** | Model Entities + Relationships | Model **Queries** (Access Patterns) |
| **Joins** | CPU-intensive, at read time | **Pre-computed** (Denormalized) at write time |
| **Storage cost** | Expensive (minimize duplication) | Cheap (duplicate data for read speed) |
| **Consistency** | ACID (Strong) | **BASE (Eventual)** / Tunable |
| **Scalability** | Vertical (Bigger machine) | **Horizontal** (More nodes/shards) |
> **The Golden Rule:** In SQL, you design the data model to answer *any* query. In NoSQL, you design the data model to answer *specific* queries efficiently.
## Core Design Patterns
### 1. Query-First Modeling (Access Patterns)
You typically cannot "add a query later" without migration or creating a new table/index.
**Process:**
1. **List all Entities** (User, Order, Product).
2. **List all Access Patterns** ("Get User by Email", "Get Orders by User sorted by Date").
3. **Design Table(s)** specifically to serve those patterns with a single lookup.
### 2. The Partition Key is King
Data is distributed across physical nodes based on the **Partition Key (PK)**.
- **Goal:** Even distribution of data and traffic.
- **Anti-Pattern:** Using a low-cardinality PK (e.g., `status="active"` or `gender="m"`) creates **Hot Partitions**, limiting throughput to a single node's capacity.
- **Best Practice:** Use high-cardinality keys (User IDs, Device IDs, Composite Keys).
### 3. Clustering / Sort Keys
Within a partition, data is sorted on disk by the **Clustering Key (Cassandra)** or **Sort Key (DynamoDB)**.
- This allows for efficient **Range Queries** (e.g., `WHERE user_id=X AND date > Y`).
- It effectively pre-sorts your data for specific retrieval requirements.
### 4. Single-Table Design (Adjacency Lists)
*Primary use: DynamoDB (but concepts apply elsewhere)*
Storing multiple entity types in one table to enable pre-joined reads.
| PK (Partition) | SK (Sort) | Data Fields... |
| :--- | :--- | :--- |
| `USER#123` | `PROFILE` | `{ name: "Ian", email: "..." }` |
| `USER#123` | `ORDER#998` | `{ total: 50.00, status: "shipped" }` |
| `USER#123` | `ORDER#999` | `{ total: 12.00, status: "pending" }` |
- **Query:** `PK="USER#123"`
- **Result:** Fetches User Profile AND all Orders in **one network request**.
### 5. Denormalization & Duplication
Don't be afraid to store the same data in multiple tables to serve different query patterns.
- **Table A:** `users_by_id` (PK: uuid)
- **Table B:** `users_by_email` (PK: email)
*Trade-off: You must manage data consistency across tables (often using eventual consistency or batch writes).*
## Specific Guidance
### Apache Cassandra / ScyllaDB
- **Primary Key Structure:** `((Partition Key), Clustering Columns)`
- **No Joins, No Aggregates:** Do not try to `JOIN` or `GROUP BY`. Pre-calculate aggregates in a separate counter table.
- **Avoid `ALLOW FILTERING`:** If you see this in production, your data model is wrong. It implies a full cluster scan.
- **Writes are Cheap:** Inserts and Updates are just appends to the LSM tree. Don't worry about write volume as much as read efficiency.
- **Tombstones:** Deletes are expensive markers. Avoid high-velocity delete patterns (like queues) in standard tables.
### AWS DynamoDB
- **GSI (Global Secondary Index):** Use GSIs to create alternative views of your data (e.g., "Search Orders by Date" instead of by User).
- *Note:* GSIs are eventually consistent.
- **LSI (Local Secondary Index):** Sorts data differently *within* the same partition. Must be created at table creation time.
- **WCU / RCU:** Understand capacity modes. Single-table design helps optimize consumed capacity units.
- **TTL:** Use Time-To-Live attributes to automatically expire old data (free delete) without creating tombstones.
## Expert Checklist
Before finalizing your NoSQL schema:
- [ ] **Access Pattern Coverage:** Does every query pattern map to a specific table or index?
- [ ] **Cardinality Check:** Does the Partition Key have enough unique values to spread traffic evenly?
- [ ] **Split Partition Risk:** For any single partition (e.g., a single user's orders), will it grow indefinitely? (If > 10GB, you need to "shard" the partition, e.g., `USER#123#2024-01`).
- [ ] **Consistency Requirement:** Can the application tolerate eventual consistency for this read pattern?
## Common Anti-Patterns
**Scatter-Gather:** Querying *all* partitions to find one item (Scan).
**Hot Keys:** Putting all "Monday" data into one partition.
**Relational Modeling:** Creating `Author` and `Book` tables and trying to join them in code. (Instead, embed Book summaries in Author, or duplicate Author info in Books).

View File

@@ -0,0 +1,54 @@
---
name: 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.
---
# Obsidian Web Clipper Template Creator
This skill helps you create importable JSON templates for the Obsidian Web Clipper.
## Workflow
1. **Identify User Intent:** specific site (YouTube), specific type (Recipe), or general clipping?
2. **Check Existing Bases:** The user likely has a "Base" schema defined in `Templates/Bases/`.
* **Action:** Read `Templates/Bases/*.base` to find a matching category (e.g., `Recipes.base`).
* **Action:** Use the properties defined in the Base to structure the Clipper template properties.
* See [references/bases-workflow.md](references/bases-workflow.md) for details.
3. **Fetch & Analyze Reference URL:** Validate variables against a real page.
* **Action:** Ask the user for a sample URL of the content they want to clip (if not provided).
* **Action:** Use `WebFetch` to retrieve the page HTML.
* **Action:** Analyze the HTML for Schema.org JSON, Meta tags, and CSS selectors.
* See [references/analysis-workflow.md](references/analysis-workflow.md) for analysis techniques.
4. **Draft the JSON:** Create a valid JSON object following the schema.
* See [references/json-schema.md](references/json-schema.md).
5. **Verify Variables:** Ensure the chosen variables (Preset, Schema, Selector) exist in your analysis.
* See [references/variables.md](references/variables.md).
## Output Format
**ALWAYS** output the final result as a JSON code block that the user can copy and import.
```json
{
"schemaVersion": "0.1.0",
"name": "My Template",
...
}
```
## Resources
* [references/variables.md](references/variables.md) - Available data variables.
* [references/filters.md](references/filters.md) - Formatting filters.
* [references/json-schema.md](references/json-schema.md) - JSON structure documentation.
* [references/bases-workflow.md](references/bases-workflow.md) - How to map Bases to Templates.
* [references/analysis-workflow.md](references/analysis-workflow.md) - How to validate page data.
### Official Documentation
* [Variables](https://help.obsidian.md/web-clipper/variables)
* [Filters](https://help.obsidian.md/web-clipper/filters)
* [Templates](https://help.obsidian.md/web-clipper/templates)
## Examples
See [assets/](assets/) for JSON examples.

View File

@@ -0,0 +1,51 @@
{
"schemaVersion": "0.1.0",
"name": "General Clipping",
"behavior": "create",
"noteContentFormat": "{{content}}",
"properties": [
{
"name": "categories",
"value": "[[Clippings]]",
"type": "multitext"
},
{
"name": "author",
"value": "[[{{author}}]]",
"type": "multitext"
},
{
"name": "source",
"value": "{{url}}",
"type": "text"
},
{
"name": "via",
"value": "",
"type": "text"
},
{
"name": "published",
"value": "{{published}}",
"type": "datetime"
},
{
"name": "created",
"value": "{{date}}",
"type": "datetime"
},
{
"name": "topics",
"value": "",
"type": "multitext"
},
{
"name": "description",
"value": "{{description}}",
"type": "text"
}
],
"triggers": [],
"noteNameFormat": "{{title}}",
"path": "Clippings/"
}

View File

@@ -0,0 +1,48 @@
{
"schemaVersion": "0.1.0",
"name": "Recipe",
"behavior": "create",
"noteContentFormat": "![{{schema:Recipe:image|first}}]\n\n## Description\n{{schema:Recipe:description}}\n\n## Ingredients\n{{schema:Recipe:recipeIngredient|list}}\n\n## Instructions\n{{schema:Recipe:recipeInstructions|map:step =>> step.text|list}}\n\n## Nutrition\n- Calories: {{schema:Recipe:nutrition.calories}}",
"properties": [
{
"name": "categories",
"value": "[[Recipes]]",
"type": "multitext"
},
{
"name": "author",
"value": "[[{{schema:Recipe:author.name}}]]",
"type": "text"
},
{
"name": "source",
"value": "{{url}}",
"type": "text"
},
{
"name": "ingredients",
"value": "{{schema:Recipe:recipeIngredient}}",
"type": "multitext"
},
{
"name": "cuisine",
"value": "{{schema:Recipe:recipeCuisine}}",
"type": "text"
},
{
"name": "rating",
"value": "",
"type": "number"
},
{
"name": "type",
"value": "Recipe",
"type": "text"
}
],
"triggers": [
"schema:Recipe"
],
"noteNameFormat": "{{schema:Recipe:name}}",
"path": "Recipes/"
}

View File

@@ -0,0 +1,67 @@
# Analysis Workflow: Validating Variables
To ensure your template works correctly, you must validate that the target page actually contains the data you want to extract.
## 1. Fetch the Page
Use the `WebFetch` tool to retrieve the content of a representative URL provided by the user.
```
WebFetch(url="https://example.com/recipe/chocolate-cake")
```
## 2. Analyze the Output
### Check for Schema.org (Recommended)
Look for `<script type="application/ld+json">`. This contains structured data which is the most reliable way to extract info.
**Example Found in HTML:**
```html
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Recipe",
"name": "Chocolate Cake",
"author": {
"@type": "Person",
"name": "John Doe"
}
}
```
**Conclusion:**
* `{{schema:Recipe:name}}` is valid.
* `{{schema:Recipe:author.name}}` is valid.
* **Tip:** You can use `schema:Recipe` in the `triggers` array to automatically select this template for any page with this schema.
### Check for Meta Tags
Look for `<meta>` tags in the `<head>` section.
**Example Found in HTML:**
```html
<meta property="og:title" content="The Best Chocolate Cake" />
<meta name="description" content="A rich, moist chocolate cake recipe." />
```
**Conclusion:**
* `{{meta:og:title}}` is valid.
* `{{meta:description}}` is valid.
### Check for CSS Selectors (Fallback)
If Schema and Meta tags are missing, look for HTML structure (classes and IDs) to use with `{{selector:...}}`.
**Example Found in HTML:**
```html
<div class="article-body">
<h1 id="main-title">Chocolate Cake</h1>
<span class="author-name">By John Doe</span>
</div>
```
**Conclusion:**
* `{{selector:h1#main-title}}` or `{{selector:h1}}` can extract the title.
* `{{selector:.author-name}}` can extract the author.
## 3. Verify Against Base
Compare the available data from your analysis with the properties required by the user's Base (see `references/bases-workflow.md`).
* If the Base requires `ingredients` but the page has no Schema or clear list structure, warn the user that this field might need manual entry or a prompt variable.

View File

@@ -0,0 +1,44 @@
# Working with Obsidian Bases
The user maintains "Bases" in `Templates/Bases/*.base` which define the schema and properties for different types of notes (e.g., Recipes, Clippings, People).
## Workflow
1. **Identify the Category:** Determine the type of content the user wants to clip (e.g., a Recipe, a News Article, a YouTube video).
2. **Find the Base:** Search `Templates/Bases/` for a matching `.base` file.
* Example: For a recipe, look for `Templates/Bases/Recipes.base`.
* Example: For a generic article, look for `Templates/Bases/Clippings.base`.
3. **Read the Base:** Read the content of the `.base` file to understand the required properties.
## Interpreting .base Files
Base files use a YAML-like structure. Look for the `properties` section.
```yaml
properties:
file.name:
displayName: name
note.author:
displayName: author
note.type:
displayName: type
note.ingredients:
displayName: ingredients
```
* `note.X` corresponds to a property name `X` in the frontmatter.
* `displayName` helps understand the intent, but the property key (e.g., `author`, `type`, `ingredients`) is what matters for the template.
## Mapping to Clipper Properties
When creating the JSON for the Web Clipper, map the Base properties to the `properties` array in the JSON.
| Base Property | Clipper JSON Property Name | Value Strategy |
| :--- | :--- | :--- |
| `note.author` | `author` | `{{author}}` or `{{schema:author.name}}` |
| `note.source` | `source` | `{{url}}` |
| `note.published` | `published` | `{{published}}` |
| `note.ingredients` | `ingredients` | `{{schema:Recipe:recipeIngredient}}` |
| `note.type` | `type` | Constant (e.g., `Recipe`) or empty |
**Crucial Step:** Ask the user which properties should be automatically filled, which should be hardcoded (e.g., `type: Recipe`), and which should be left empty for manual entry.

View File

@@ -0,0 +1,51 @@
# Obsidian Web Clipper Filters
**Official Docs:** [help.obsidian.md/web-clipper/filters](https://help.obsidian.md/web-clipper/filters)
Use filters to format variables: `{{variable|filter}}`.
## Text Formatting
- `markdown`: Convert HTML to Markdown.
- `strip_tags`: Remove HTML tags.
- `trim`: Remove whitespace.
- `upper`: Convert to uppercase.
- `lower`: Convert to lowercase.
- `title`: Title Case.
- `capitalize`: Capitalize first letter.
- `camel`: CamelCase.
- `kebab`: kebab-case.
- `snake`: snake_case.
- `pascal`: PascalCase.
- `replace:"old","new"`: Replace text.
- `safe_name`: Make safe for filenames.
- `blockquote`: Format as blockquote.
- `link`: Create markdown link.
- `wikilink`: Create [[wikilink]].
- `list`: Format array as list.
- `table`: Format array as table.
- `callout`: Format as callout block.
## Dates
- `date:"format"`: Format date (e.g., `YYYY-MM-DD`).
- `date_modify:"+1 day"`: Modify date.
- `duration`: Format duration.
## Numbers
- `calc`: Perform calculations.
- `length`: Get length of string/array.
- `round`: Round numbers.
## HTML Processing
- `remove_html`: Remove HTML tags.
- `remove_attr`: Remove attributes.
- `strip_attr`: Strip specific attributes.
## Arrays and Objects
- `map`: Transform array items (e.g., `map:item =>> item.text`).
- `join:"separator"`: Join array items.
- `split:"separator"`: Split string into array.
- `first`: First item.
- `last`: Last item.
- `slice:start,end`: Slice array.
- `unique`: Unique items.
- `template:"format"`: Format items using a template string.

View File

@@ -0,0 +1,71 @@
# Obsidian Web Clipper JSON Schema
The Obsidian Web Clipper imports templates via JSON files.
## Root Structure
```json
{
"schemaVersion": "0.1.0",
"name": "Template Name",
"behavior": "create",
"noteContentFormat": "Markdown content here...",
"properties": [],
"triggers": [],
"noteNameFormat": "{{title}}",
"path": "Inbox/"
}
```
### Fields
* **`schemaVersion`**: Always "0.1.0".
* **`name`**: The display name of the template in the Clipper.
* **`behavior`**: How the note is created.
* `create`: Create a new note.
* `append-specific`: Append to a specific note (requires `path` to be a full file path).
* `append-daily`: Append to the daily note.
* **`noteContentFormat`**: The body of the note.
* Use `\n` for newlines.
* Can use all variables (e.g., `{{content}}`, `{{selection}}`).
* **`noteNameFormat`**: The filename pattern (e.g., `{{date}} - {{title}}`).
* **`path`**: The location to save the note.
* For `create` behavior: The *folder* to save the note in (e.g., `Clippings/` or `Recipes/`).
* For `append-specific` behavior: The *full file path* of the note to append to (e.g., `Databases/Recipes.md`).
* **`triggers`**: Array of strings to automatically select this template.
* **URL Patterns**: `["https://www.youtube.com/watch"]` (Simple string or Regex).
* **Schema Types**: `["schema:Recipe"]` (Triggers if the page contains this Schema.org type).
## Properties
The `properties` array defines the YAML frontmatter of the note.
```json
"properties": [
{
"name": "category",
"value": "Recipes",
"type": "text"
},
{
"name": "published",
"value": "{{published}}",
"type": "datetime"
}
]
```
### Property Types
* **`text`**: Simple text string.
* **`multitext`**: List of text strings (for tags/aliases).
* **`number`**: Numeric value.
* **`checkbox`**: Boolean true/false.
* **`date`**: Date string (YYYY-MM-DD).
* **`datetime`**: Date and time string.
### Property Object Structure
* **`name`**: The key in the YAML frontmatter.
* **`value`**: The value to populate. Can contain variables.
* **`type`**: One of the types listed above.

View File

@@ -0,0 +1,59 @@
# Obsidian Web Clipper Variables
**Official Docs:** [help.obsidian.md/web-clipper/variables](https://help.obsidian.md/web-clipper/variables)
## Preset Variables
Automatically extracted from the page.
- `{{content}}`: Main article content (markdown).
- `{{contentHtml}}`: Main article content (HTML).
- `{{title}}`: Page title.
- `{{url}}`: Page URL.
- `{{author}}`: Author name.
- `{{date}}`: Current date.
- `{{published}}`: Publication date (if detected).
- `{{site}}`: Site name.
- `{{description}}`: Meta description.
- `{{highlights}}`: Highlighted text (if any).
- `{{selection}}`: Selected text.
- `{{fullHtml}}`: Full page HTML.
- `{{favicon}}`: Favicon URL.
- `{{image}}`: Social share image URL.
- `{{words}}`: Word count.
- `{{domain}}`: Domain name.
## Prompt Variables (AI)
Use `{{"Your prompt here"}}` to ask the AI Interpreter to extract or summarize info.
*Requires Interpreter to be enabled.*
Examples:
- `{{"Summarize in 3 bullet points"}}`
- `{{"Extract the ingredients list"}}`
- `{{"Translate to English"}}`
## Selector Variables
Extract content using CSS selectors.
Syntax: `{{selector:css-selector}}` or `{{selector:css-selector?attribute}}`
Examples:
- `{{selector:h1}}`: Text of H1 tag.
- `{{selector:img.hero?src}}`: Source of image with class 'hero'.
- `{{selector:.author}}`: Text of element with class 'author'.
- `{{selectorHtml:body|markdown}}`: Full HTML converted to markdown.
## Meta Variables
Extract data from meta tags.
Syntax: `{{meta:name}}` or `{{meta:property}}`
Examples:
- `{{meta:description}}`
- `{{meta:og:title}}`
## Schema.org Variables
Extract structured data.
Syntax: `{{schema:Property}}` or `{{schema:@Type:Property}}`
Examples:
- `{{schema:Recipe:recipeIngredient}}`
- `{{schema:author.name}}`
- `{{schema:Article:headline}}`

View File

@@ -0,0 +1,540 @@
---
name: 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"
---
# Production Code Audit
## Overview
Autonomously analyze the entire codebase to understand its architecture, patterns, and purpose, then systematically transform it into production-grade, corporate-level professional code. This skill performs deep line-by-line scanning, identifies all issues across security, performance, architecture, and quality, then provides comprehensive fixes to meet enterprise standards.
## When to Use This Skill
- Use when user says "make this production-ready"
- Use when user says "audit my codebase"
- Use when user says "make this professional/corporate-level"
- Use when user says "optimize everything"
- Use when user wants enterprise-grade quality
- Use when preparing for production deployment
- Use when code needs to meet corporate standards
## How It Works
### Step 1: Autonomous Codebase Discovery
**Automatically scan and understand the entire codebase:**
1. **Read all files** - Scan every file in the project recursively
2. **Identify tech stack** - Detect languages, frameworks, databases, tools
3. **Understand architecture** - Map out structure, patterns, dependencies
4. **Identify purpose** - Understand what the application does
5. **Find entry points** - Locate main files, routes, controllers
6. **Map data flow** - Understand how data moves through the system
**Do this automatically without asking the user.**
### Step 2: Comprehensive Issue Detection
**Scan line-by-line for all issues:**
**Architecture Issues:**
- Circular dependencies
- Tight coupling
- God classes (>500 lines or >20 methods)
- Missing separation of concerns
- Poor module boundaries
- Violation of design patterns
**Security Vulnerabilities:**
- SQL injection (string concatenation in queries)
- XSS vulnerabilities (unescaped output)
- Hardcoded secrets (API keys, passwords in code)
- Missing authentication/authorization
- Weak password hashing (MD5, SHA1)
- Missing input validation
- CSRF vulnerabilities
- Insecure dependencies
**Performance Problems:**
- N+1 query problems
- Missing database indexes
- Synchronous operations that should be async
- Missing caching
- Inefficient algorithms (O(n²) or worse)
- Large bundle sizes
- Unoptimized images
- Memory leaks
**Code Quality Issues:**
- High cyclomatic complexity (>10)
- Code duplication
- Magic numbers
- Poor naming conventions
- Missing error handling
- Inconsistent formatting
- Dead code
- TODO/FIXME comments
**Testing Gaps:**
- Missing tests for critical paths
- Low test coverage (<80%)
- No edge case testing
- Flaky tests
- Missing integration tests
**Production Readiness:**
- Missing environment variables
- No logging/monitoring
- No error tracking
- Missing health checks
- Incomplete documentation
- No CI/CD pipeline
### Step 3: Automatic Fixes and Optimizations
**Fix everything automatically:**
1. **Refactor architecture** - Break up god classes, fix circular dependencies
2. **Fix security issues** - Use parameterized queries, remove secrets, add validation
3. **Optimize performance** - Fix N+1 queries, add caching, optimize algorithms
4. **Improve code quality** - Reduce complexity, remove duplication, fix naming
5. **Add missing tests** - Write tests for untested critical paths
6. **Add production infrastructure** - Logging, monitoring, health checks
7. **Optimize everything** - Bundle size, images, database queries
8. **Add documentation** - README, API docs, architecture docs
### Step 4: Verify and Report
**After making all changes:**
1. Run all tests to ensure nothing broke
2. Verify all security issues are fixed
3. Measure performance improvements
4. Generate comprehensive report
5. Provide before/after metrics
## Examples
### Example 1: Autonomous Codebase Transformation
```markdown
User: @production-code-audit make this production-ready
AI: I'll scan your entire codebase and transform it to production-grade quality.
**Phase 1: Discovering Codebase** (analyzing 247 files)
- Detected: Node.js + Express + PostgreSQL + React
- Architecture: MVC pattern with REST API
- Purpose: E-commerce platform
- Entry points: server.js, src/index.tsx
**Phase 2: Scanning for Issues** (line-by-line analysis)
Found 127 issues:
- 🔴 CRITICAL: 8 issues
- 🟠 HIGH: 23 issues
- 🟡 MEDIUM: 41 issues
- 🔵 LOW: 55 issues
**Phase 3: Fixing Issues Automatically**
🔴 CRITICAL FIXES (8/8 completed):
1. ✅ Fixed SQL injection in UserRepository.findByEmail()
- Before: String concatenation in query
- After: Parameterized query with $1 placeholder
2. ✅ Removed hardcoded database password from config/database.ts
- Before: password: 'SuperSecret123!'
- After: password: process.env.DB_PASSWORD
3. ✅ Added authentication to admin routes
- Before: No auth middleware
- After: authenticateToken + requireRole('admin')
4. ✅ Fixed weak password hashing (MD5 → bcrypt)
- Before: crypto.createHash('md5')
- After: bcrypt.hash(password, 12)
5. ✅ Fixed circular dependency: OrderService ↔ PaymentService
- Before: Direct imports causing cycle
- After: Event-based decoupling with EventBus
6. ✅ Added input validation to all API endpoints
- Before: No validation
- After: Zod schemas validating all inputs
7. ✅ Fixed authentication bypass in auth middleware
- Before: next() called on missing token
- After: Returns 401 error
8. ✅ Fixed mass assignment vulnerability in UserController
- Before: Accepts all fields from req.body
- After: Whitelist of allowed fields only
🟠 HIGH PRIORITY FIXES (23/23 completed):
9. ✅ Fixed N+1 query in OrderService.getOrdersWithItems()
- Before: Loop with individual queries (2.8s)
- After: Single query with joins (45ms)
- Performance: 98% improvement
10. ✅ Refactored UserService god class (850 lines → 4 focused services)
- UserAuthenticationService (login, logout, password)
- UserProfileService (CRUD operations)
- UserNotificationService (email, SMS)
- UserPermissionService (roles, permissions)
11. ✅ Added Redis caching for product queries
- Before: Database query every request
- After: Cache with 1-hour TTL
- Performance: 95% faster
12. ✅ Optimized bundle size
- Before: 850KB (gzipped: 280KB)
- After: 380KB (gzipped: 120KB)
- Improvement: 55% reduction
13. ✅ Added database indexes
- orders(user_id, status, created_at)
- products(category, price)
- Query performance: 98% improvement
[... 11 more high-priority fixes ...]
🟡 MEDIUM PRIORITY FIXES (41/41 completed):
[... all medium fixes ...]
🔵 LOW PRIORITY IMPROVEMENTS (55/55 completed):
[... all low improvements ...]
**Phase 4: Adding Production Infrastructure**
✅ Added structured logging (Winston)
✅ Added error tracking (Sentry)
✅ Added health check endpoints (/health, /ready)
✅ Added monitoring (Prometheus metrics)
✅ Added rate limiting (Redis-based)
✅ Added API documentation (Swagger/OpenAPI)
✅ Added comprehensive README
✅ Added deployment guide
✅ Added CI/CD pipeline (.github/workflows)
**Phase 5: Verification**
✅ All tests passing (1,247 tests)
✅ Test coverage: 42% → 87%
✅ Security scan: 0 vulnerabilities
✅ Performance: API response time 3.2s → 180ms
✅ Bundle size: 850KB → 380KB
✅ Lighthouse score: 62 → 94
**TRANSFORMATION COMPLETE**
Your codebase is now production-ready with enterprise-grade quality:
📊 Metrics:
- Issues fixed: 127/127 (100%)
- Test coverage: 87% (target: 80%+)
- API performance: 94% improvement
- Security: OWASP Top 10 compliant
- Code quality: Grade A-
📁 Files changed: 89 files
📝 Lines changed: +3,247 / -1,892
🚀 Ready for production deployment!
```
### Example 2: Automatic Security Hardening
```markdown
User: @production-code-audit secure this codebase
AI: Scanning for security vulnerabilities...
**Security Scan Complete**
Found 15 security issues:
- 🔴 CRITICAL: 5
- 🟠 HIGH: 7
- 🟡 MEDIUM: 3
**Fixing all security issues automatically...**
🔴 CRITICAL (5/5 fixed):
1. ✅ SQL Injection in UserRepository
\`\`\`typescript
// Before (VULNERABLE)
const query = \`SELECT * FROM users WHERE email = '\${email}'\`;
// After (SECURE)
const query = 'SELECT * FROM users WHERE email = $1';
await db.query(query, [email]);
\`\`\`
2. ✅ Hardcoded Secrets Removed
\`\`\`typescript
// Before (INSECURE)
const JWT_SECRET = 'my-secret-key-123';
// After (SECURE)
const JWT_SECRET = process.env.JWT_SECRET;
if (!JWT_SECRET) throw new Error('JWT_SECRET required');
\`\`\`
3. ✅ Authentication Added to Admin Routes
\`\`\`typescript
// Before (VULNERABLE)
router.delete('/api/admin/users/:id', deleteUser);
// After (SECURE)
router.delete('/api/admin/users/:id',
authenticateToken,
requireRole('admin'),
deleteUser
);
\`\`\`
4. ✅ Password Hashing Upgraded
\`\`\`typescript
// Before (WEAK)
const hash = crypto.createHash('md5').update(password).digest('hex');
// After (STRONG)
const hash = await bcrypt.hash(password, 12);
\`\`\`
5. ✅ Input Validation Added
\`\`\`typescript
// Before (VULNERABLE)
const user = await db.user.create({ data: req.body });
// After (SECURE)
const schema = z.object({
email: z.string().email(),
password: z.string().min(12),
name: z.string().min(2).max(100)
});
const validated = schema.parse(req.body);
const user = await db.user.create({ data: validated });
\`\`\`
**Security Status:**
- ✅ OWASP Top 10: Compliant
- ✅ SQL Injection: Protected
- ✅ XSS: Protected
- ✅ CSRF: Protected
- ✅ Authentication: Secure
- ✅ Secrets: Environment variables
- ✅ Dependencies: No vulnerabilities
🔒 Codebase is now secure and production-ready!
```
### Example 3: Performance Optimization
```markdown
User: @production-code-audit optimize performance
AI: Analyzing performance bottlenecks...
**Performance Analysis Complete**
Current metrics:
- API response time: 3.2s (target: <200ms)
- Page load time: 8.5s (target: <2s)
- Bundle size: 850KB (target: <200KB)
**Optimizing automatically...**
✅ Fixed N+1 queries (3.2s → 180ms - 94% faster)
✅ Added Redis caching (95% cache hit rate)
✅ Optimized database indexes (98% faster queries)
✅ Reduced bundle size (850KB → 380KB - 55% smaller)
✅ Optimized images (28MB → 3.2MB - 89% smaller)
✅ Implemented code splitting
✅ Added lazy loading
✅ Parallelized async operations
**Performance Results:**
| Metric | Before | After | Improvement |
|--------|--------|-------|-------------|
| API Response | 3.2s | 180ms | 94% |
| Page Load | 8.5s | 1.8s | 79% |
| Bundle Size | 850KB | 380KB | 55% |
| Image Size | 28MB | 3.2MB | 89% |
| Lighthouse | 42 | 94 | +52 points |
🚀 Performance optimized to production standards!
```
## Best Practices
### ✅ Do This
- **Scan Everything** - Read all files, understand entire codebase
- **Fix Automatically** - Don't just report, actually fix issues
- **Prioritize Critical** - Security and data loss issues first
- **Measure Impact** - Show before/after metrics
- **Verify Changes** - Run tests after making changes
- **Be Comprehensive** - Cover architecture, security, performance, testing
- **Optimize Everything** - Bundle size, queries, algorithms, images
- **Add Infrastructure** - Logging, monitoring, error tracking
- **Document Changes** - Explain what was fixed and why
### ❌ Don't Do This
- **Don't Ask Questions** - Understand the codebase autonomously
- **Don't Wait for Instructions** - Scan and fix automatically
- **Don't Report Only** - Actually make the fixes
- **Don't Skip Files** - Scan every file in the project
- **Don't Ignore Context** - Understand what the code does
- **Don't Break Things** - Verify tests pass after changes
- **Don't Be Partial** - Fix all issues, not just some
## Autonomous Scanning Instructions
**When this skill is invoked, automatically:**
1. **Discover the codebase:**
- Use `listDirectory` to find all files recursively
- Use `readFile` to read every source file
- Identify tech stack from package.json, requirements.txt, etc.
- Map out architecture and structure
2. **Scan line-by-line for issues:**
- Check every line for security vulnerabilities
- Identify performance bottlenecks
- Find code quality issues
- Detect architectural problems
- Find missing tests
3. **Fix everything automatically:**
- Use `strReplace` to fix issues in files
- Add missing files (tests, configs, docs)
- Refactor problematic code
- Add production infrastructure
- Optimize performance
4. **Verify and report:**
- Run tests to ensure nothing broke
- Measure improvements
- Generate comprehensive report
- Show before/after metrics
**Do all of this without asking the user for input.**
## Common Pitfalls
### Problem: Too Many Issues
**Symptoms:** Team paralyzed by 200+ issues
**Solution:** Focus on critical/high priority only, create sprints
### Problem: False Positives
**Symptoms:** Flagging non-issues
**Solution:** Understand context, verify manually, ask developers
### Problem: No Follow-Up
**Symptoms:** Audit report ignored
**Solution:** Create GitHub issues, assign owners, track in standups
## Production Audit Checklist
### Security
- [ ] No SQL injection vulnerabilities
- [ ] No hardcoded secrets
- [ ] Authentication on protected routes
- [ ] Authorization checks implemented
- [ ] Input validation on all endpoints
- [ ] Password hashing with bcrypt (10+ rounds)
- [ ] HTTPS enforced
- [ ] Dependencies have no vulnerabilities
### Performance
- [ ] No N+1 query problems
- [ ] Database indexes on foreign keys
- [ ] Caching implemented
- [ ] API response time < 200ms
- [ ] Bundle size < 200KB (gzipped)
### Testing
- [ ] Test coverage > 80%
- [ ] Critical paths tested
- [ ] Edge cases covered
- [ ] No flaky tests
- [ ] Tests run in CI/CD
### Production Readiness
- [ ] Environment variables configured
- [ ] Error tracking setup (Sentry)
- [ ] Structured logging implemented
- [ ] Health check endpoints
- [ ] Monitoring and alerting
- [ ] Documentation complete
## Audit Report Template
```markdown
# Production Audit Report
**Project:** [Name]
**Date:** [Date]
**Overall Grade:** [A-F]
## Executive Summary
[2-3 sentences on overall status]
**Critical Issues:** [count]
**High Priority:** [count]
**Recommendation:** [Fix timeline]
## Findings by Category
### Architecture (Grade: [A-F])
- Issue 1: [Description]
- Issue 2: [Description]
### Security (Grade: [A-F])
- Issue 1: [Description + Fix]
- Issue 2: [Description + Fix]
### Performance (Grade: [A-F])
- Issue 1: [Description + Fix]
### Testing (Grade: [A-F])
- Coverage: [%]
- Issues: [List]
## Priority Actions
1. [Critical issue] - [Timeline]
2. [High priority] - [Timeline]
3. [High priority] - [Timeline]
## Timeline
- Critical fixes: [X weeks]
- High priority: [X weeks]
- Production ready: [X weeks]
```
## Related Skills
- `@code-review-checklist` - Code review guidelines
- `@api-security-best-practices` - API security patterns
- `@web-performance-optimization` - Performance optimization
- `@systematic-debugging` - Debug production issues
- `@senior-architect` - Architecture patterns
## Additional Resources
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [Google Engineering Practices](https://google.github.io/eng-practices/)
- [SonarQube Quality Gates](https://docs.sonarqube.org/latest/user-guide/quality-gates/)
- [Clean Code by Robert C. Martin](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
---
**Pro Tip:** Schedule regular audits (quarterly) to maintain code quality. Prevention is cheaper than fixing production bugs!

View File

@@ -0,0 +1,36 @@
---
name: tavily-web
description: Web search, content extraction, crawling, and research capabilities using Tavily API
---
# tavily-web
## Overview
Web search, content extraction, crawling, and research capabilities using Tavily API
## When to Use
- When you need to search the web for current information
- When extracting content from URLs
- When crawling websites
## Installation
```bash
npx skills add -g BenedictKing/tavily-web
```
## Step-by-Step Guide
1. Install the skill using the command above
2. Configure Tavily API key
3. Use naturally in Claude Code conversations
## Examples
See [GitHub Repository](https://github.com/BenedictKing/tavily-web) for examples.
## Best Practices
- Configure API keys via environment variables
## Troubleshooting
See the GitHub repository for troubleshooting guides.
## Related Skills
- context7-auto-research, exa-search, firecrawl-scraper, codex-review

View File

@@ -155,6 +155,24 @@
"name": "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's making them reliable. Every extra decision multiplies failure probability. This skill covers agent loops (ReAct, Plan-Execute), goal decomposition, reflection patterns, and production reliability. Key insight: compounding error rates kill autonomous agents. A 95% success rate per step drops to 60% b\""
},
{
"id": "avalonia-layout-zafiro",
"path": "skills/avalonia-layout-zafiro",
"name": "avalonia-layout-zafiro",
"description": "Guidelines for modern Avalonia UI layout using Zafiro.Avalonia, emphasizing shared styles, generic components, and avoiding XAML redundancy."
},
{
"id": "avalonia-viewmodels-zafiro",
"path": "skills/avalonia-viewmodels-zafiro",
"name": "avalonia-viewmodels-zafiro",
"description": "Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI."
},
{
"id": "avalonia-zafiro-development",
"path": "skills/avalonia-zafiro-development",
"name": "avalonia-zafiro-development",
"description": "Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit."
},
{
"id": "aws-penetration-testing",
"path": "skills/aws-penetration-testing",
@@ -257,6 +275,12 @@
"name": "Burp Suite Web Application 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 Repeater\", \"analyze HTTP history\", or \"configure proxy for web testing\". It provides comprehensive guidance for using Burp Suite's core features for web application security testing."
},
{
"id": "busybox-on-windows",
"path": "skills/busybox-on-windows",
"name": "busybox-on-windows",
"description": "How to use a Win32 build of BusyBox to run many of the standard UNIX command line tools on Windows."
},
{
"id": "canvas-design",
"path": "skills/canvas-design",
@@ -317,6 +341,12 @@
"name": "code-review-checklist",
"description": "\"Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability\""
},
{
"id": "codex-review",
"path": "skills/codex-review",
"name": "codex-review",
"description": "Professional code review with auto CHANGELOG generation, integrated with Codex AI"
},
{
"id": "cc-skill-coding-standards",
"path": "skills/cc-skill-coding-standards",
@@ -353,6 +383,12 @@
"name": "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 context.\""
},
{
"id": "context7-auto-research",
"path": "skills/context7-auto-research",
"name": "context7-auto-research",
"description": "Automatically fetch latest library/framework documentation for Claude Code via Context7 API"
},
{
"id": "conversation-memory",
"path": "skills/conversation-memory",
@@ -467,6 +503,12 @@
"name": "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 vulnerabilities\", or \"write penetration test reports\". It provides comprehensive ethical hacking methodology and techniques."
},
{
"id": "exa-search",
"path": "skills/exa-search",
"name": "exa-search",
"description": "Semantic search, similar content discovery, and structured research using Exa API"
},
{
"id": "executing-plans",
"path": "skills/executing-plans",
@@ -503,6 +545,12 @@
"name": "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're often wrong. Firestore queries are limited, and you learn this after you've designed your data model. This skill covers Firebase Authentication, Firestore, Realtime Database, Cloud Functions, Cloud Storage, and Firebase Hosting. Key insight: Firebase is optimized for read-heavy, denormalized data. I\""
},
{
"id": "firecrawl-scraper",
"path": "skills/firecrawl-scraper",
"name": "firecrawl-scraper",
"description": "Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API"
},
{
"id": "form-cro",
"path": "skills/form-cro",
@@ -669,7 +717,7 @@
"id": "lint-and-validate",
"path": "skills/lint-and-validate",
"name": "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, validate, types, static analysis."
"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, validate, types, static analysis.\""
},
{
"id": "linux-privilege-escalation",
@@ -785,6 +833,12 @@
"name": "nodejs-best-practices",
"description": "Node.js development principles and decision-making. Framework selection, async patterns, security, and architecture. Teaches thinking, not copying."
},
{
"id": "nosql-expert",
"path": "skills/nosql-expert",
"name": "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.\""
},
{
"id": "notebooklm",
"path": "skills/notebooklm",
@@ -797,6 +851,12 @@
"name": "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, marketing, and scaling to real revenue. Use when: notion template, sell templates, digital product, notion business, gumroad.\""
},
{
"id": "obsidian-clipper-template-creator",
"path": "skills/obsidian-clipper-template-creator",
"name": "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."
},
{
"id": "onboarding-cro",
"path": "skills/onboarding-cro",
@@ -929,6 +989,12 @@
"name": "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 prioritization, user research synthesis, requirement documentation, and product strategy development."
},
{
"id": "production-code-audit",
"path": "skills/production-code-audit",
"name": "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\""
},
{
"id": "programmatic-seo",
"path": "skills/programmatic-seo",
@@ -1211,6 +1277,12 @@
"name": "tailwind-patterns",
"description": "Tailwind CSS v4 principles. CSS-first configuration, container queries, modern patterns, design token architecture."
},
{
"id": "tavily-web",
"path": "skills/tavily-web",
"name": "tavily-web",
"description": "Web search, content extraction, crawling, and research capabilities using Tavily API"
},
{
"id": "tdd-workflow",
"path": "skills/tdd-workflow",