fix: add YAML frontmatter (name + description) to all SKILL.md files
- Added frontmatter to 34 skills that were missing it entirely (0% Tessl score) - Fixed name field format to kebab-case across all 169 skills - Resolves #284
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "contract-and-proposal-writer"
|
||||
description: "Contract & Proposal Writer"
|
||||
---
|
||||
|
||||
# Contract & Proposal Writer
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: customer-success-manager
|
||||
name: "customer-success-manager"
|
||||
description: Monitors customer health, predicts churn risk, and identifies expansion opportunities using weighted scoring models for SaaS customer success
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: revenue-operations
|
||||
name: "revenue-operations"
|
||||
description: Analyzes pipeline coverage, tracks forecast accuracy with MAPE, and calculates GTM efficiency metrics for SaaS revenue optimization
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: sales-engineer
|
||||
name: "sales-engineer"
|
||||
description: Analyzes RFP responses for coverage gaps, builds competitive feature matrices, and plans proof-of-concept engagements for pre-sales engineering
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: c-level-advisor
|
||||
name: "c-level-advisor"
|
||||
description: "Complete virtual board of directors — 28 skills covering 10 C-level roles, orchestration, cross-cutting capabilities, and culture frameworks. Features internal quality loop, two-layer memory, board meeting protocol with Phase 2 isolation, proactive triggers, and structured communication standard."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: agent-protocol
|
||||
name: "agent-protocol"
|
||||
description: "Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, and response formats. Use when C-suite agents need to query each other, coordinate cross-functional analysis, or run board meetings with multiple agent roles."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: board-deck-builder
|
||||
name: "board-deck-builder"
|
||||
description: "Assembles comprehensive board and investor update decks by pulling perspectives from all C-suite roles. Use when preparing board meetings, investor updates, quarterly business reviews, or fundraising narratives. Covers structure, narrative framework, bad news delivery, and common mistakes."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: board-meeting
|
||||
name: "board-meeting"
|
||||
description: "Multi-agent board meeting protocol for strategic decisions. Runs a structured 6-phase deliberation: context loading, independent C-suite contributions (isolated, no cross-pollination), critic analysis, synthesis, founder review, and decision extraction. Use when the user invokes /cs:board, calls a board meeting, or wants structured multi-perspective executive deliberation on a strategic question."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: ceo-advisor
|
||||
name: "ceo-advisor"
|
||||
description: "Executive leadership guidance for strategic decision-making, organizational development, and stakeholder management. Use when planning strategy, preparing board presentations, managing investors, developing organizational culture, making executive decisions, fundraising, or when user mentions CEO, strategic planning, board meetings, investor updates, organizational leadership, or executive strategy."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: cfo-advisor
|
||||
name: "cfo-advisor"
|
||||
description: "Financial leadership for startups and scaling companies. Financial modeling, unit economics, fundraising strategy, cash management, and board financial packages. Use when building financial models, analyzing unit economics, planning fundraising, managing cash runway, preparing board materials, or when user mentions CFO, burn rate, runway, fundraising, unit economics, LTV, CAC, term sheets, or financial strategy."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: change-management
|
||||
name: "change-management"
|
||||
description: "Framework for rolling out organizational changes without chaos. Covers the ADKAR model adapted for startups, communication templates, resistance patterns, and change fatigue management. Handles process changes, org restructures, strategy pivots, and culture changes. Use when announcing a reorg, switching tools, pivoting strategy, killing a product, changing leadership, or when user mentions change management, change rollout, managing resistance, org change, reorg, or pivot communication."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: chief-of-staff
|
||||
name: "chief-of-staff"
|
||||
description: "C-suite orchestration layer. Routes founder questions to the right advisor role(s), triggers multi-role board meetings for complex decisions, synthesizes outputs, and tracks decisions. Every C-suite interaction starts here. Loads company context automatically."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: chro-advisor
|
||||
name: "chro-advisor"
|
||||
description: "People leadership for scaling companies. Hiring strategy, compensation design, org structure, culture, and retention. Use when building hiring plans, designing comp frameworks, restructuring teams, managing performance, building culture, or when user mentions CHRO, HR, people strategy, talent, headcount, compensation, org design, retention, or performance management."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: ciso-advisor
|
||||
name: "ciso-advisor"
|
||||
description: "Security leadership for growth-stage companies. Risk quantification in dollars, compliance roadmap (SOC 2/ISO 27001/HIPAA/GDPR), security architecture strategy, incident response leadership, and board-level security reporting. Use when building security programs, justifying security budget, selecting compliance frameworks, managing incidents, assessing vendor risk, or when user mentions CISO, security strategy, compliance roadmap, zero trust, or board security reporting."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: cmo-advisor
|
||||
name: "cmo-advisor"
|
||||
description: "Marketing leadership for scaling companies. Brand positioning, growth model design, marketing budget allocation, and marketing org design. Use when designing brand strategy, selecting growth models (PLG vs sales-led vs community-led), allocating marketing budgets, building marketing teams, or when user mentions CMO, brand strategy, growth model, CAC, LTV, channel mix, or marketing ROI."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: company-os
|
||||
name: "company-os"
|
||||
description: "The meta-framework for how a company runs — the connective tissue between all C-suite roles. Covers operating system selection (EOS, Scaling Up, OKR-native, hybrid), accountability charts, scorecards, meeting pulse, issue resolution, and 90-day rocks. Use when setting up company operations, selecting a management framework, designing meeting rhythms, building accountability systems, implementing OKRs, or when user mentions EOS, Scaling Up, operating system, L10 meetings, rocks, scorecard, accountability chart, or quarterly planning."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: competitive-intel
|
||||
name: "competitive-intel"
|
||||
description: "Systematic competitor tracking that feeds CMO positioning, CRO battlecards, and CPO roadmap decisions. Use when analyzing competitors, building sales battlecards, tracking market moves, positioning against alternatives, or when user mentions competitive intelligence, competitive analysis, competitor research, battlecards, win/loss, or market positioning."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: context-engine
|
||||
name: "context-engine"
|
||||
description: "Loads and manages company context for all C-suite advisor skills. Reads ~/.claude/company-context.md, detects stale context (>90 days), enriches context during conversations, and enforces privacy/anonymization rules before external API calls."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: coo-advisor
|
||||
name: "coo-advisor"
|
||||
description: "Operations leadership for scaling companies. Process design, OKR execution, operational cadence, and scaling playbooks. Use when designing operations, setting up OKRs, building processes, scaling teams, analyzing bottlenecks, planning operational cadence, or when user mentions COO, operations, process improvement, OKRs, scaling, operational efficiency, or execution."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: cpo-advisor
|
||||
name: "cpo-advisor"
|
||||
description: "Product leadership for scaling companies. Product vision, portfolio strategy, product-market fit, and product org design. Use when setting product vision, managing a product portfolio, measuring PMF, designing product teams, prioritizing at the portfolio level, reporting to the board on product, or when user mentions CPO, product strategy, product-market fit, product organization, portfolio prioritization, or roadmap strategy."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: cro-advisor
|
||||
name: "cro-advisor"
|
||||
description: "Revenue leadership for B2B SaaS companies. Revenue forecasting, sales model design, pricing strategy, net revenue retention, and sales team scaling. Use when designing the revenue engine, setting quotas, modeling NRR, evaluating pricing, building board forecasts, or when user mentions CRO, chief revenue officer, revenue strategy, sales model, ARR growth, NRR, expansion revenue, churn, pricing strategy, or sales capacity."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: cs-onboard
|
||||
name: "cs-onboard"
|
||||
description: "Founder onboarding interview that captures company context across 7 dimensions. Invoke with /cs:setup for initial interview or /cs:update for quarterly refresh. Generates ~/.claude/company-context.md used by all C-suite advisor skills."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: cto-advisor
|
||||
name: "cto-advisor"
|
||||
description: "Technical leadership guidance for engineering teams, architecture decisions, and technology strategy. Use when assessing technical debt, scaling engineering teams, evaluating technologies, making architecture decisions, establishing engineering metrics, or when user mentions CTO, tech debt, technical debt, team scaling, architecture decisions, technology evaluation, engineering metrics, DORA metrics, or technology strategy."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: culture-architect
|
||||
name: "culture-architect"
|
||||
description: "Build, measure, and evolve company culture as operational behavior — not wall posters. Covers mission/vision/values workshops, values-to-behaviors translation, culture code creation, culture health assessment, and cultural rituals by stage. Use when building company values, assessing culture health, designing cultural rituals, creating culture codes, handling culture clashes, or when user mentions culture, values, culture debt, founder culture, or culture code."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: decision-logger
|
||||
name: "decision-logger"
|
||||
description: "Two-layer memory architecture for board meeting decisions. Manages raw transcripts (Layer 1) and approved decisions (Layer 2). Use when logging decisions after a board meeting, reviewing past decisions with /cs:decisions, or checking overdue action items with /cs:review. Invoked automatically by the board-meeting skill after Phase 5 founder approval."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: executive-mentor
|
||||
name: "executive-mentor"
|
||||
description: "Adversarial thinking partner for founders and executives. Stress-tests plans, prepares for brutal board meetings, dissects decisions with no good options, and forces honest post-mortems. Use when you need someone to find the holes before the board does, make a decision you've been avoiding, or understand what actually went wrong."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "board-prep"
|
||||
description: "/em -board-prep — Board Meeting Preparation"
|
||||
---
|
||||
|
||||
# /em:board-prep — Board Meeting Preparation
|
||||
|
||||
**Command:** `/em:board-prep <agenda>`
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "challenge"
|
||||
description: "/em -challenge — Pre-Mortem Plan Analysis"
|
||||
---
|
||||
|
||||
# /em:challenge — Pre-Mortem Plan Analysis
|
||||
|
||||
**Command:** `/em:challenge <plan>`
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "hard-call"
|
||||
description: "/em -hard-call — Framework for Decisions With No Good Options"
|
||||
---
|
||||
|
||||
# /em:hard-call — Framework for Decisions With No Good Options
|
||||
|
||||
**Command:** `/em:hard-call <decision>`
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "postmortem"
|
||||
description: "/em -postmortem — Honest Analysis of What Went Wrong"
|
||||
---
|
||||
|
||||
# /em:postmortem — Honest Analysis of What Went Wrong
|
||||
|
||||
**Command:** `/em:postmortem <event>`
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "stress-test"
|
||||
description: "/em -stress-test — Business Assumption Stress Testing"
|
||||
---
|
||||
|
||||
# /em:stress-test — Business Assumption Stress Testing
|
||||
|
||||
**Command:** `/em:stress-test <assumption>`
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: founder-coach
|
||||
name: "founder-coach"
|
||||
description: "Personal leadership development for founders and first-time CEOs. Covers founder archetype identification, delegation frameworks, energy management, CEO calendar audits, leadership style evolution, blind spot identification, imposter syndrome, founder mental health, and succession planning. Use when a founder feels like the bottleneck, struggles to delegate, is burning out, transitioning from IC to executive, managing a board, or when user mentions founder mode, CEO growth, leadership development, delegation, burnout, or imposter syndrome."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: internal-narrative
|
||||
name: "internal-narrative"
|
||||
description: "Build and maintain one coherent company story across all audiences — employees, investors, customers, candidates, and partners. Detects narrative contradictions and ensures the same truth is framed for each audience's needs. Use when preparing investor updates, all-hands presentations, board communications, recruiting narratives, crisis communications, or when user mentions company narrative, messaging consistency, storytelling, all-hands, investor update, or crisis communication."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: intl-expansion
|
||||
name: "intl-expansion"
|
||||
description: "International market expansion strategy. Market selection, entry modes, localization, regulatory compliance, and go-to-market by region. Use when expanding to new countries, evaluating international markets, planning localization, or building regional teams."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: ma-playbook
|
||||
name: "ma-playbook"
|
||||
description: "M&A strategy for acquiring companies or being acquired. Due diligence, valuation, integration, and deal structure. Use when evaluating acquisitions, preparing for acquisition, M&A due diligence, integration planning, or deal negotiation."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: org-health-diagnostic
|
||||
name: "org-health-diagnostic"
|
||||
description: "Cross-functional organizational health check combining signals from all C-suite roles. Scores 8 dimensions on a traffic-light scale with drill-down recommendations. Use when assessing overall company health, preparing for board reviews, identifying at-risk functions, or when user mentions org health, health check, or health dashboard."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: scenario-war-room
|
||||
name: "scenario-war-room"
|
||||
description: "Cross-functional what-if modeling for cascading multi-variable scenarios. Unlike single-assumption stress testing, this models compound adversity across all business functions simultaneously. Use when facing complex risk scenarios, strategic decisions with major downside, or when the user asks 'what if X AND Y both happen?'"
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: strategic-alignment
|
||||
name: "strategic-alignment"
|
||||
description: "Cascades strategy from boardroom to individual contributor. Detects and fixes misalignment between company goals and team execution. Covers strategy articulation, cascade mapping, orphan goal detection, silo identification, communication gap analysis, and realignment protocols. Use when teams are pulling in different directions, OKRs don't connect, departments optimize locally at company expense, or when user mentions alignment, strategy cascade, silo, conflicting OKRs, or strategy communication."
|
||||
license: MIT
|
||||
metadata:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: aws-solution-architect
|
||||
name: "aws-solution-architect"
|
||||
description: Design AWS architectures for startups using serverless patterns and IaC templates. Use when asked to design serverless architecture, create CloudFormation templates, optimize AWS costs, set up CI/CD pipelines, or migrate to AWS. Covers Lambda, API Gateway, DynamoDB, ECS, Aurora, and cost optimization.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: code-reviewer
|
||||
name: "code-reviewer"
|
||||
description: Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin. Analyzes PRs for complexity and risk, checks code quality for SOLID violations and code smells, generates review reports. Use when reviewing pull requests, analyzing code quality, identifying issues, generating review checklists.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "email-template-builder"
|
||||
description: "Email Template Builder"
|
||||
---
|
||||
|
||||
# Email Template Builder
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -157,7 +162,7 @@ import { Button, Heading, Text } from "@react-email/components"
|
||||
import { EmailLayout } from "../components/layout/email-layout"
|
||||
|
||||
interface WelcomeEmailProps {
|
||||
name: string
|
||||
name: "string"
|
||||
confirmUrl: string
|
||||
trialDays?: number
|
||||
}
|
||||
@@ -216,7 +221,7 @@ import { EmailLayout } from "../components/layout/email-layout"
|
||||
interface InvoiceItem { description: string; amount: number }
|
||||
|
||||
interface InvoiceEmailProps {
|
||||
name: string
|
||||
name: "string"
|
||||
invoiceNumber: string
|
||||
invoiceDate: string
|
||||
dueDate: string
|
||||
@@ -323,7 +328,7 @@ export async function sendEmail(to: string, payload: EmailPayload) {
|
||||
to,
|
||||
subject: template.subject,
|
||||
html: trackedHtml,
|
||||
tags: [{ name: "email_type", value: payload.type }],
|
||||
tags: [{ name: "email-type", value: payload.type }],
|
||||
})
|
||||
|
||||
return result
|
||||
@@ -356,8 +361,8 @@ export async function sendEmail(to: string, payload: EmailPayload) {
|
||||
// emails/i18n/en.ts
|
||||
export const en = {
|
||||
welcome: {
|
||||
preview: (name: string) => `Welcome to MyApp, ${name}!`,
|
||||
heading: (name: string) => `Welcome to MyApp, ${name}!`,
|
||||
preview: (name: "string-welcome-to-myapp-name"
|
||||
heading: (name: "string-welcome-to-myapp-name"
|
||||
body: (days: number) => `You've got ${days} days to explore everything.`,
|
||||
cta: "Confirm Email Address",
|
||||
},
|
||||
@@ -366,8 +371,8 @@ export const en = {
|
||||
// emails/i18n/de.ts
|
||||
export const de = {
|
||||
welcome: {
|
||||
preview: (name: string) => `Willkommen bei MyApp, ${name}!`,
|
||||
heading: (name: string) => `Willkommen bei MyApp, ${name}!`,
|
||||
preview: (name: "string-willkommen-bei-myapp-name"
|
||||
heading: (name: "string-willkommen-bei-myapp-name"
|
||||
body: (days: number) => `Du hast ${days} Tage Zeit, alles zu erkunden.`,
|
||||
cta: "E-Mail-Adresse bestätigen",
|
||||
},
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "incident-commander"
|
||||
description: "Incident Commander Skill"
|
||||
---
|
||||
|
||||
# Incident Commander Skill
|
||||
|
||||
**Category:** Engineering Team
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: ms365-tenant-manager
|
||||
name: "ms365-tenant-manager"
|
||||
description: Microsoft 365 tenant administration for Global Administrators. Automate M365 tenant setup, Office 365 admin tasks, Azure AD user management, Exchange Online configuration, Teams administration, and security policies. Generate PowerShell scripts for bulk operations, Conditional Access policies, license management, and compliance reporting. Use for M365 tenant manager, Office 365 admin, Azure AD users, Global Administrator, tenant configuration, or Microsoft 365 automation.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: playwright-pro
|
||||
name: "playwright-pro"
|
||||
description: "Production-grade Playwright testing toolkit. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting."
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: browserstack
|
||||
name: "browserstack"
|
||||
description: >-
|
||||
Run tests on BrowserStack. Use when user mentions "browserstack",
|
||||
"cross-browser", "cloud testing", "browser matrix", "test on safari",
|
||||
@@ -40,7 +40,7 @@ export default defineConfig({
|
||||
// ... existing config
|
||||
projects: isBS ? [
|
||||
{
|
||||
name: 'chrome@latest:Windows 11',
|
||||
name: "chromelatestwindows-11",
|
||||
use: {
|
||||
connectOptions: {
|
||||
wsEndpoint: `wss://cdp.browserstack.com/playwright?caps=${encodeURIComponent(JSON.stringify({
|
||||
@@ -55,7 +55,7 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'firefox@latest:Windows 11',
|
||||
name: "firefoxlatestwindows-11",
|
||||
use: {
|
||||
connectOptions: {
|
||||
wsEndpoint: `wss://cdp.browserstack.com/playwright?caps=${encodeURIComponent(JSON.stringify({
|
||||
@@ -70,7 +70,7 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'webkit@latest:OS X Ventura',
|
||||
name: "webkitlatestos-x-ventura",
|
||||
use: {
|
||||
connectOptions: {
|
||||
wsEndpoint: `wss://cdp.browserstack.com/playwright?caps=${encodeURIComponent(JSON.stringify({
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: coverage
|
||||
name: "coverage"
|
||||
description: >-
|
||||
Analyze test coverage gaps. Use when user says "test coverage",
|
||||
"what's not tested", "coverage gaps", "missing tests", "coverage report",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: fix
|
||||
name: "fix"
|
||||
description: >-
|
||||
Fix failing or flaky Playwright tests. Use when user says "fix test",
|
||||
"flaky test", "test failing", "debug test", "test broken", "test passes
|
||||
@@ -14,7 +14,7 @@ Diagnose and fix a Playwright test that fails or passes intermittently using a s
|
||||
|
||||
`$ARGUMENTS` contains:
|
||||
- A test file path: `e2e/login.spec.ts`
|
||||
- A test name: `"should redirect after login"`
|
||||
- A test name: ""should redirect after login"`
|
||||
- A description: `"the checkout test fails in CI but passes locally"`
|
||||
|
||||
## Steps
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: generate
|
||||
name: "generate"
|
||||
description: >-
|
||||
Generate Playwright tests. Use when user says "write tests", "generate tests",
|
||||
"add tests for", "test this component", "e2e test", "create test for",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: init
|
||||
name: "init"
|
||||
description: >-
|
||||
Set up Playwright in a project. Use when user says "set up playwright",
|
||||
"add e2e tests", "configure playwright", "testing setup", "init playwright",
|
||||
@@ -61,9 +61,9 @@ export default defineConfig({
|
||||
screenshot: 'only-on-failure',
|
||||
},
|
||||
projects: [
|
||||
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
||||
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
|
||||
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
|
||||
{ name: "chromium", use: { ...devices['Desktop Chrome'] } },
|
||||
{ name: "firefox", use: { ...devices['Desktop Firefox'] } },
|
||||
{ name: "webkit", use: { ...devices['Desktop Safari'] } },
|
||||
],
|
||||
webServer: {
|
||||
command: 'npm run dev',
|
||||
@@ -125,7 +125,7 @@ test.describe('Homepage', () => {
|
||||
If `.github/workflows/` exists, create `playwright.yml`:
|
||||
|
||||
```yaml
|
||||
name: Playwright Tests
|
||||
name: "playwright-tests"
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -142,16 +142,16 @@ jobs:
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
- name: Install dependencies
|
||||
- name: "install-dependencies"
|
||||
run: npm ci
|
||||
- name: Install Playwright Browsers
|
||||
- name: "install-playwright-browsers"
|
||||
run: npx playwright install --with-deps
|
||||
- name: Run Playwright tests
|
||||
- name: "run-playwright-tests"
|
||||
run: npx playwright test
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: playwright-report
|
||||
name: "playwright-report"
|
||||
path: playwright-report/
|
||||
retention-days: 30
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: migrate
|
||||
name: "migrate"
|
||||
description: >-
|
||||
Migrate from Cypress or Selenium to Playwright. Use when user mentions
|
||||
"cypress", "selenium", "migrate tests", "convert tests", "switch to
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: report
|
||||
name: "report"
|
||||
description: >-
|
||||
Generate test report. Use when user says "test report", "results summary",
|
||||
"test status", "show results", "test dashboard", or "how did tests go".
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: review
|
||||
name: "review"
|
||||
description: >-
|
||||
Review Playwright tests for quality. Use when user says "review tests",
|
||||
"check test quality", "audit tests", "improve tests", "test code review",
|
||||
@@ -72,7 +72,7 @@ For each file:
|
||||
|
||||
### Critical
|
||||
- Line 15: `waitForTimeout(2000)` → use `expect(locator).toBeVisible()`
|
||||
- Line 28: CSS selector `.btn-submit` → `getByRole('button', { name: 'Submit' })`
|
||||
- Line 28: CSS selector `.btn-submit` → `getByRole('button', { name: "submit" })`
|
||||
|
||||
### Warning
|
||||
- Line 42: Test name "test login" → "should redirect to dashboard after login"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: testrail
|
||||
name: "testrail"
|
||||
description: >-
|
||||
Sync tests with TestRail. Use when user mentions "testrail", "test management",
|
||||
"test cases", "test run", "sync test cases", "push results to testrail",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: self-improving-agent
|
||||
name: "self-improving-agent"
|
||||
description: "Curate Claude Code's auto-memory into durable project knowledge. Analyze MEMORY.md for patterns, promote proven learnings to CLAUDE.md and .claude/rules/, extract recurring solutions into reusable skills. Use when: (1) reviewing what Claude has learned about your project, (2) graduating a pattern from notes to enforced rules, (3) turning a debugging solution into a skill, (4) checking memory health and capacity."
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: extract
|
||||
name: "extract"
|
||||
description: "Turn a proven pattern or debugging solution into a standalone reusable skill with SKILL.md, reference docs, and examples."
|
||||
command: /si:extract
|
||||
---
|
||||
@@ -75,7 +75,7 @@ The generated SKILL.md must follow this format:
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: <skill-name>
|
||||
name: "skill-name"
|
||||
description: "<one-line description>. Use when: <trigger conditions>."
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: promote
|
||||
name: "promote"
|
||||
description: "Graduate a proven pattern from auto-memory (MEMORY.md) to CLAUDE.md or .claude/rules/ for permanent enforcement."
|
||||
command: /si:promote
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: remember
|
||||
name: "remember"
|
||||
description: "Explicitly save important knowledge to auto-memory with timestamp and context. Use when a discovery is too important to rely on auto-capture."
|
||||
command: /si:remember
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: review
|
||||
name: "review"
|
||||
description: "Analyze auto-memory for promotion candidates, stale entries, consolidation opportunities, and health metrics."
|
||||
command: /si:review
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: status
|
||||
name: "status"
|
||||
description: "Memory health dashboard showing line counts, topic files, capacity, stale entries, and recommendations."
|
||||
command: /si:status
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-architect
|
||||
name: "senior-architect"
|
||||
description: This skill should be used when the user asks to "design system architecture", "evaluate microservices vs monolith", "create architecture diagrams", "analyze dependencies", "choose a database", "plan for scalability", "make technical decisions", or "review system design". Use for architecture decision records (ADRs), tech stack evaluation, system design reviews, dependency analysis, and generating architecture diagrams in Mermaid, PlantUML, or ASCII format.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-backend
|
||||
name: "senior-backend"
|
||||
description: This skill should be used when the user asks to "design REST APIs", "optimize database queries", "implement authentication", "build microservices", "review backend code", "set up GraphQL", "handle database migrations", or "load test APIs". Use for Node.js/Express/Fastify development, PostgreSQL optimization, API security, and backend architecture patterns.
|
||||
---
|
||||
|
||||
@@ -192,7 +192,7 @@ paths:
|
||||
get:
|
||||
summary: List users
|
||||
parameters:
|
||||
- name: limit
|
||||
- name: "limit"
|
||||
in: query
|
||||
schema:
|
||||
type: integer
|
||||
@@ -319,7 +319,7 @@ import { z } from 'zod';
|
||||
|
||||
const CreateUserSchema = z.object({
|
||||
email: z.string().email().max(255),
|
||||
name: z.string().min(1).max(100),
|
||||
name: "zstringmin1max100"
|
||||
age: z.number().int().positive().optional()
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-computer-vision
|
||||
name: "senior-computer-vision"
|
||||
description: Computer vision engineering skill for object detection, image segmentation, and visual AI systems. Covers CNN and Vision Transformer architectures, YOLO/Faster R-CNN/DETR detection, Mask R-CNN/SAM segmentation, and production deployment with ONNX/TensorRT. Includes PyTorch, torchvision, Ultralytics, Detectron2, and MMDetection frameworks. Use when building detection pipelines, training custom models, optimizing inference, or deploying vision systems.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-data-engineer
|
||||
name: "senior-data-engineer"
|
||||
description: Data engineering skill for building scalable data pipelines, ETL/ELT systems, and data infrastructure. Expertise in Python, SQL, Spark, Airflow, dbt, Kafka, and modern data stack. Includes data modeling, pipeline orchestration, data quality, and DataOps. Use when designing data architectures, building data pipelines, optimizing data workflows, implementing data governance, or troubleshooting data issues.
|
||||
---
|
||||
|
||||
@@ -173,20 +173,20 @@ WHERE o._extracted_at > (SELECT MAX(_extracted_at) FROM {{ this }})
|
||||
version: 2
|
||||
|
||||
models:
|
||||
- name: fct_orders
|
||||
- name: "fct-orders"
|
||||
description: "Order fact table"
|
||||
columns:
|
||||
- name: order_id
|
||||
- name: "order-id"
|
||||
tests:
|
||||
- unique
|
||||
- not_null
|
||||
- name: total_amount
|
||||
- name: "total-amount"
|
||||
tests:
|
||||
- not_null
|
||||
- dbt_utils.accepted_range:
|
||||
min_value: 0
|
||||
max_value: 1000000
|
||||
- name: order_date
|
||||
- name: "order-date"
|
||||
tests:
|
||||
- not_null
|
||||
- dbt_utils.recency:
|
||||
@@ -544,7 +544,7 @@ validator.save_expectation_suite(discard_failed_expectations=False)
|
||||
version: 2
|
||||
|
||||
models:
|
||||
- name: fct_orders
|
||||
- name: "fct-orders"
|
||||
description: "Order fact table with data quality checks"
|
||||
|
||||
tests:
|
||||
@@ -559,7 +559,7 @@ models:
|
||||
interval: 24
|
||||
|
||||
columns:
|
||||
- name: order_id
|
||||
- name: "order-id"
|
||||
description: "Unique order identifier"
|
||||
tests:
|
||||
- unique
|
||||
@@ -568,7 +568,7 @@ models:
|
||||
to: ref('dim_orders')
|
||||
field: order_id
|
||||
|
||||
- name: total_amount
|
||||
- name: "total-amount"
|
||||
tests:
|
||||
- not_null
|
||||
- dbt_utils.accepted_range:
|
||||
@@ -579,7 +579,7 @@ models:
|
||||
min_value: 0
|
||||
row_condition: "status != 'cancelled'"
|
||||
|
||||
- name: customer_id
|
||||
- name: "customer-id"
|
||||
tests:
|
||||
- not_null
|
||||
- relationships:
|
||||
@@ -593,7 +593,7 @@ models:
|
||||
```yaml
|
||||
# contracts/orders_contract.yaml
|
||||
contract:
|
||||
name: orders_data_contract
|
||||
name: "orders-data-contract"
|
||||
version: "1.0.0"
|
||||
owner: data-team@company.com
|
||||
|
||||
@@ -628,9 +628,9 @@ sla:
|
||||
duplicate_tolerance: 0.01
|
||||
|
||||
consumers:
|
||||
- name: analytics-team
|
||||
- name: "analytics-team"
|
||||
usage: "Daily reporting dashboards"
|
||||
- name: ml-team
|
||||
- name: "ml-team"
|
||||
usage: "Churn prediction model"
|
||||
```
|
||||
|
||||
@@ -641,7 +641,7 @@ consumers:
|
||||
from datetime import datetime, timedelta
|
||||
import pandas as pd
|
||||
|
||||
def generate_quality_report(connection, table_name: str) -> dict:
|
||||
def generate_quality_report(connection, table_name: "str-dict"
|
||||
"""Generate comprehensive data quality report."""
|
||||
|
||||
report = {
|
||||
@@ -914,7 +914,7 @@ Last update: 3 days ago
|
||||
```yaml
|
||||
# dbt freshness check
|
||||
sources:
|
||||
- name: raw
|
||||
- name: "raw"
|
||||
freshness:
|
||||
warn_after: {count: 12, period: hour}
|
||||
error_after: {count: 24, period: hour}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-data-scientist
|
||||
name: "senior-data-scientist"
|
||||
description: World-class data science skill for statistical modeling, experimentation, causal inference, and advanced analytics. Expertise in Python (NumPy, Pandas, Scikit-learn), R, SQL, statistical methods, A/B testing, time series, and business intelligence. Includes experiment design, feature engineering, model evaluation, and stakeholder communication. Use when designing experiments, building predictive models, performing causal analysis, or driving data-driven decisions.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-devops
|
||||
name: "senior-devops"
|
||||
description: Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup, infrastructure as code, deployment automation, and monitoring. Use when setting up pipelines, deploying applications, managing infrastructure, implementing monitoring, or optimizing deployment processes.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-frontend
|
||||
name: "senior-frontend"
|
||||
description: Frontend development skill for React, Next.js, TypeScript, and Tailwind CSS applications. Use when building React components, optimizing Next.js performance, analyzing bundle sizes, scaffolding frontend projects, implementing accessibility, or reviewing frontend code quality.
|
||||
---
|
||||
|
||||
@@ -422,7 +422,7 @@ test('dialog is accessible', async () => {
|
||||
// next.config.js
|
||||
const nextConfig = {
|
||||
images: {
|
||||
remotePatterns: [{ hostname: 'cdn.example.com' }],
|
||||
remotePatterns: [{ hostname: "cdnexamplecom" }],
|
||||
formats: ['image/avif', 'image/webp'],
|
||||
},
|
||||
experimental: {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-fullstack
|
||||
name: "senior-fullstack"
|
||||
description: Fullstack development toolkit with project scaffolding for Next.js, FastAPI, MERN, and Django stacks, code quality analysis with security and complexity scoring, and stack selection guidance. Use when the user asks to "scaffold a new project", "create a Next.js app", "set up FastAPI with React", "analyze code quality", "audit my codebase", "what stack should I use", "generate project boilerplate", or mentions fullstack development, project setup, or tech stack comparison.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-ml-engineer
|
||||
name: "senior-ml-engineer"
|
||||
description: ML engineering skill for productionizing models, building MLOps pipelines, and integrating LLMs. Covers model deployment, feature stores, drift monitoring, RAG systems, and cost optimization.
|
||||
triggers:
|
||||
- MLOps pipeline
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-prompt-engineer
|
||||
name: "senior-prompt-engineer"
|
||||
description: This skill should be used when the user asks to "optimize prompts", "design prompt templates", "evaluate LLM outputs", "build agentic systems", "implement RAG", "create few-shot examples", "analyze token usage", or "design AI workflows". Use for prompt engineering patterns, LLM evaluation frameworks, agent architectures, and structured output design.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-qa
|
||||
name: "senior-qa"
|
||||
description: This skill should be used when the user asks to "generate tests", "write unit tests", "analyze test coverage", "scaffold E2E tests", "set up Playwright", "configure Jest", "implement testing patterns", or "improve test quality". Use for React/Next.js testing with Jest, React Testing Library, and Playwright.
|
||||
---
|
||||
|
||||
@@ -184,7 +184,7 @@ import { Button } from '../src/components/Button';
|
||||
describe('Button', () => {
|
||||
it('renders with label', () => {
|
||||
render(<Button>Click me</Button>);
|
||||
expect(screen.getByRole('button', { name: /click me/i })).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: "click-mei-tobeinthedocument"
|
||||
});
|
||||
|
||||
it('calls onClick when clicked', () => {
|
||||
@@ -278,12 +278,12 @@ npx playwright show-report
|
||||
**Step 5: Add to CI pipeline**
|
||||
```yaml
|
||||
# .github/workflows/e2e.yml
|
||||
- name: Run E2E tests
|
||||
- name: "run-e2e-tests"
|
||||
run: npx playwright test
|
||||
- name: Upload report
|
||||
- name: "upload-report"
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: playwright-report
|
||||
name: "playwright-report"
|
||||
path: playwright-report/
|
||||
```
|
||||
|
||||
@@ -305,7 +305,7 @@ npx playwright show-report
|
||||
|
||||
```typescript
|
||||
// Preferred (accessible)
|
||||
screen.getByRole('button', { name: /submit/i })
|
||||
screen.getByRole('button', { name: "submiti"
|
||||
screen.getByLabelText(/email/i)
|
||||
screen.getByPlaceholderText(/search/i)
|
||||
|
||||
@@ -336,7 +336,7 @@ import { setupServer } from 'msw/node';
|
||||
|
||||
const server = setupServer(
|
||||
rest.get('/api/users', (req, res, ctx) => {
|
||||
return res(ctx.json([{ id: 1, name: 'John' }]));
|
||||
return res(ctx.json([{ id: 1, name: "john" }]));
|
||||
})
|
||||
);
|
||||
|
||||
@@ -349,7 +349,7 @@ afterAll(() => server.close());
|
||||
|
||||
```typescript
|
||||
// Preferred
|
||||
page.getByRole('button', { name: 'Submit' })
|
||||
page.getByRole('button', { name: "submit" })
|
||||
page.getByLabel('Email')
|
||||
page.getByText('Welcome')
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-secops
|
||||
name: "senior-secops"
|
||||
description: Comprehensive SecOps skill for application security, vulnerability management, compliance, and secure development practices. Includes security scanning, vulnerability assessment, compliance checking, and security automation. Use when implementing security controls, conducting security audits, responding to vulnerabilities, or ensuring compliance requirements.
|
||||
---
|
||||
|
||||
@@ -148,7 +148,7 @@ Integrate security checks into deployment pipeline.
|
||||
|
||||
```yaml
|
||||
# .github/workflows/security.yml
|
||||
name: Security Scan
|
||||
name: "security-scan"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
@@ -160,18 +160,18 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
- name: "set-up-python"
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Security Scanner
|
||||
- name: "security-scanner"
|
||||
run: python scripts/security_scanner.py . --severity high
|
||||
|
||||
- name: Vulnerability Assessment
|
||||
- name: "vulnerability-assessment"
|
||||
run: python scripts/vulnerability_assessor.py . --severity critical
|
||||
|
||||
- name: Compliance Check
|
||||
- name: "compliance-check"
|
||||
run: python scripts/compliance_checker.py . --framework soc2
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: senior-security
|
||||
name: "senior-security"
|
||||
description: Security engineering toolkit for threat modeling, vulnerability analysis, secure architecture, and penetration testing. Includes STRIDE analysis, OWASP guidance, cryptography patterns, and security scanning tools.
|
||||
triggers:
|
||||
- security architecture
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "stripe-integration-expert"
|
||||
description: "Stripe Integration Expert"
|
||||
---
|
||||
|
||||
# Stripe Integration Expert
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -67,7 +72,7 @@ export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
|
||||
apiVersion: "2024-04-10",
|
||||
typescript: true,
|
||||
appInfo: {
|
||||
name: "MyApp",
|
||||
name: "myapp",
|
||||
version: "1.0.0",
|
||||
},
|
||||
})
|
||||
@@ -109,7 +114,7 @@ export async function POST(req: Request) {
|
||||
if (!stripeCustomerId) {
|
||||
const customer = await stripe.customers.create({
|
||||
email: user.email,
|
||||
name: user.name ?? undefined,
|
||||
name: "username-undefined"
|
||||
metadata: { userId: user.id },
|
||||
})
|
||||
stripeCustomerId = customer.id
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: tdd-guide
|
||||
name: "tdd-guide"
|
||||
description: Test-driven development workflow with test generation, coverage analysis, and multi-framework support
|
||||
triggers:
|
||||
- generate tests
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: tech-stack-evaluator
|
||||
name: "tech-stack-evaluator"
|
||||
description: Technology stack evaluation and comparison with TCO analysis, security assessment, and ecosystem health scoring. Use when comparing frameworks, evaluating technology stacks, calculating total cost of ownership, assessing migration paths, or analyzing ecosystem viability.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "agent-designer"
|
||||
description: "Agent Designer - Multi-Agent System Architecture"
|
||||
---
|
||||
|
||||
# Agent Designer - Multi-Agent System Architecture
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "agent-workflow-designer"
|
||||
description: "Agent Workflow Designer"
|
||||
---
|
||||
|
||||
# Agent Workflow Designer
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -62,7 +67,7 @@ import anthropic
|
||||
|
||||
@dataclass
|
||||
class PipelineStage:
|
||||
name: str
|
||||
name: "str"
|
||||
system_prompt: str
|
||||
input_key: str # what to take from state
|
||||
output_key: str # what to write to state
|
||||
@@ -131,7 +136,7 @@ import asyncio
|
||||
import anthropic
|
||||
from typing import Any
|
||||
|
||||
async def run_agent(client, task_name: str, system: str, user: str, model: str = "claude-3-5-sonnet-20241022") -> dict:
|
||||
async def run_agent(client, task_name: "str-system-str-user-str-model-str"claude-3-5-sonnet-20241022") -> dict:
|
||||
"""Single async agent call"""
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
@@ -397,7 +402,7 @@ class ContextBudget:
|
||||
def remaining(self):
|
||||
return self.total - self.reserve - self.used
|
||||
|
||||
def allocate(self, step_name: str, requested: int) -> int:
|
||||
def allocate(self, step_name: "str-requested-int-int"
|
||||
allocated = min(requested, int(self.remaining * 0.6)) # max 60% of remaining
|
||||
print(f"[Budget] {step_name}: allocated {allocated:,} tokens (remaining: {self.remaining:,})")
|
||||
return allocated
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "api-design-reviewer"
|
||||
description: "API Design Reviewer"
|
||||
---
|
||||
|
||||
# API Design Reviewer
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -363,13 +368,13 @@ Provides comprehensive scoring of API design quality.
|
||||
|
||||
### CI/CD Integration
|
||||
```yaml
|
||||
- name: API Linting
|
||||
- name: "api-linting"
|
||||
run: python scripts/api_linter.py openapi.json
|
||||
|
||||
- name: Breaking Change Detection
|
||||
- name: "breaking-change-detection"
|
||||
run: python scripts/breaking_change_detector.py openapi-v1.json openapi-v2.json
|
||||
|
||||
- name: API Scorecard
|
||||
- name: "api-scorecard"
|
||||
run: python scripts/api_scorecard.py openapi.json
|
||||
```
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "api-test-suite-builder"
|
||||
description: "API Test Suite Builder"
|
||||
---
|
||||
|
||||
# API Test Suite Builder
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -243,7 +248,7 @@ describe('POST /api/users', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/users')
|
||||
.set('Authorization', `Bearer ${adminToken}`)
|
||||
.send({ name: 'Test User', role: 'user' })
|
||||
.send({ name: "test-user", role: 'user' })
|
||||
expect(res.status).toBe(422)
|
||||
expect(res.body.errors).toContainEqual(
|
||||
expect.objectContaining({ field: 'email' })
|
||||
@@ -254,7 +259,7 @@ describe('POST /api/users', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/users')
|
||||
.set('Authorization', `Bearer ${adminToken}`)
|
||||
.send({ email: 'not-an-email', name: 'Test', role: 'user' })
|
||||
.send({ email: 'not-an-email', name: "test", role: 'user' })
|
||||
expect(res.status).toBe(422)
|
||||
})
|
||||
|
||||
@@ -262,7 +267,7 @@ describe('POST /api/users', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/users')
|
||||
.set('Authorization', `Bearer ${adminToken}`)
|
||||
.send({ email: "' OR '1'='1", name: 'Hacker', role: 'user' })
|
||||
.send({ email: "' OR '1'='1", name: "hacker", role: 'user' })
|
||||
expect(res.status).toBe(422)
|
||||
})
|
||||
|
||||
@@ -271,7 +276,7 @@ describe('POST /api/users', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/users')
|
||||
.set('Authorization', `Bearer ${adminToken}`)
|
||||
.send({ email: existing.email, name: 'Duplicate', role: 'user' })
|
||||
.send({ email: existing.email, name: "duplicate", role: 'user' })
|
||||
expect(res.status).toBe(409)
|
||||
})
|
||||
|
||||
@@ -279,7 +284,7 @@ describe('POST /api/users', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/users')
|
||||
.set('Authorization', `Bearer ${adminToken}`)
|
||||
.send({ email: 'newuser@example.com', name: 'New User', role: 'user' })
|
||||
.send({ email: 'newuser@example.com', name: "new-user", role: 'user' })
|
||||
expect(res.status).toBe(201)
|
||||
expect(res.body).toHaveProperty('id')
|
||||
expect(res.body.email).toBe('newuser@example.com')
|
||||
@@ -380,7 +385,7 @@ describe('POST /api/upload', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/upload')
|
||||
.set('Authorization', `Bearer ${validToken}`)
|
||||
.attach('file', Buffer.from('MZ fake exe'), { filename: 'virus.exe', contentType: 'application/octet-stream' })
|
||||
.attach('file', Buffer.from('MZ fake exe'), { filename: "virusexe", contentType: 'application/octet-stream' })
|
||||
expect(res.status).toBe(400)
|
||||
expect(res.body.error).toMatch(/type|format|allowed/i)
|
||||
})
|
||||
@@ -390,7 +395,7 @@ describe('POST /api/upload', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/upload')
|
||||
.set('Authorization', `Bearer ${validToken}`)
|
||||
.attach('file', largeBuf, { filename: 'large.pdf', contentType: 'application/pdf' })
|
||||
.attach('file', largeBuf, { filename: "largepdf", contentType: 'application/pdf' })
|
||||
expect(res.status).toBe(413)
|
||||
})
|
||||
|
||||
@@ -398,7 +403,7 @@ describe('POST /api/upload', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/upload')
|
||||
.set('Authorization', `Bearer ${validToken}`)
|
||||
.attach('file', Buffer.alloc(0), { filename: 'empty.pdf', contentType: 'application/pdf' })
|
||||
.attach('file', Buffer.alloc(0), { filename: "emptypdf", contentType: 'application/pdf' })
|
||||
expect(res.status).toBe(400)
|
||||
})
|
||||
|
||||
@@ -408,7 +413,7 @@ describe('POST /api/upload', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/upload')
|
||||
.set('Authorization', `Bearer ${validToken}`)
|
||||
.attach('file', fakeExe, { filename: 'document.pdf', contentType: 'application/pdf' })
|
||||
.attach('file', fakeExe, { filename: "documentpdf", contentType: 'application/pdf' })
|
||||
// Should detect magic bytes mismatch
|
||||
expect([400, 415]).toContain(res.status)
|
||||
})
|
||||
@@ -418,7 +423,7 @@ describe('POST /api/upload', () => {
|
||||
const res = await request(app)
|
||||
.post('/api/upload')
|
||||
.set('Authorization', `Bearer ${validToken}`)
|
||||
.attach('file', pdfHeader, { filename: 'valid.pdf', contentType: 'application/pdf' })
|
||||
.attach('file', pdfHeader, { filename: "validpdf", contentType: 'application/pdf' })
|
||||
expect(res.status).toBe(200)
|
||||
expect(res.body).toHaveProperty('url')
|
||||
expect(res.body).toHaveProperty('id')
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "changelog-generator"
|
||||
description: "Changelog Generator"
|
||||
---
|
||||
|
||||
# Changelog Generator
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "ci-cd-pipeline-builder"
|
||||
description: "CI/CD Pipeline Builder"
|
||||
---
|
||||
|
||||
# CI/CD Pipeline Builder
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "codebase-onboarding"
|
||||
description: "Codebase Onboarding"
|
||||
---
|
||||
|
||||
# Codebase Onboarding
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -262,7 +267,7 @@ await sendEmail({
|
||||
to: user.email,
|
||||
subject: 'Subject line',
|
||||
template: 'my-email',
|
||||
props: { name: user.name },
|
||||
props: { name: "username"
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "database-designer"
|
||||
description: "Database Designer - POWERFUL Tier Skill"
|
||||
---
|
||||
|
||||
# Database Designer - POWERFUL Tier Skill
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "database-schema-designer"
|
||||
description: "Database Schema Designer"
|
||||
---
|
||||
|
||||
# Database Schema Designer
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -407,7 +412,7 @@ async function seed() {
|
||||
// Create org
|
||||
const [org] = await db.insert(organizations).values({
|
||||
id: createId(),
|
||||
name: 'Acme Corp',
|
||||
name: "acme-corp",
|
||||
slug: 'acme',
|
||||
plan: 'growth',
|
||||
}).returning()
|
||||
@@ -416,7 +421,7 @@ async function seed() {
|
||||
const adminUser = await db.insert(users).values({
|
||||
id: createId(),
|
||||
email: 'admin@acme.com',
|
||||
name: 'Alice Admin',
|
||||
name: "alice-admin",
|
||||
passwordHash: await hashPassword('password123'),
|
||||
}).returning().then(r => r[0])
|
||||
|
||||
@@ -425,7 +430,7 @@ async function seed() {
|
||||
id: createId(),
|
||||
organizationId: org.id,
|
||||
ownerId: adminUser.id,
|
||||
name: faker.company.catchPhrase(),
|
||||
name: "fakercompanycatchphrase"
|
||||
description: faker.lorem.paragraph(),
|
||||
status: 'active' as const,
|
||||
}))
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "dependency-auditor"
|
||||
description: "Dependency Auditor"
|
||||
---
|
||||
|
||||
# Dependency Auditor
|
||||
|
||||
> **Skill Type:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "env-secrets-manager"
|
||||
description: "Env & Secrets Manager"
|
||||
---
|
||||
|
||||
# Env & Secrets Manager
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -451,7 +456,7 @@ repos:
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: validate-env-example
|
||||
name: Check .env.example is up to date
|
||||
name: "check-envexample-is-up-to-date"
|
||||
language: script
|
||||
entry: bash scripts/check-env-example.sh
|
||||
pass_filenames: false
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "git-worktree-manager"
|
||||
description: "Git Worktree Manager"
|
||||
---
|
||||
|
||||
# Git Worktree Manager
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: interview-system-designer
|
||||
name: "interview-system-designer"
|
||||
description: This skill should be used when the user asks to "design interview processes", "create hiring pipelines", "calibrate interview loops", "generate interview questions", "design competency matrices", "analyze interviewer bias", "create scoring rubrics", "build question banks", or "optimize hiring systems". Use for designing role-specific interview loops, competency assessments, and hiring calibration systems.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "mcp-server-builder"
|
||||
description: "MCP Server Builder"
|
||||
---
|
||||
|
||||
# MCP Server Builder
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "migration-architect"
|
||||
description: "Migration Architect"
|
||||
---
|
||||
|
||||
# Migration Architect
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "monorepo-navigator"
|
||||
description: "Monorepo Navigator"
|
||||
---
|
||||
|
||||
# Monorepo Navigator
|
||||
|
||||
**Tier:** POWERFUL
|
||||
@@ -416,7 +421,7 @@ turbo run build test lint
|
||||
|
||||
```yaml
|
||||
# .github/workflows/ci.yml
|
||||
name: CI
|
||||
name: "ci"
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -450,16 +455,16 @@ jobs:
|
||||
restore-keys: ${{ runner.os }}-turbo-
|
||||
|
||||
# Only test/build affected packages
|
||||
- name: Build affected
|
||||
- name: "build-affected"
|
||||
run: turbo run build --filter=...[origin/main]
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
|
||||
|
||||
- name: Test affected
|
||||
- name: "test-affected"
|
||||
run: turbo run test --filter=...[origin/main]
|
||||
|
||||
- name: Lint affected
|
||||
- name: "lint-affected"
|
||||
run: turbo run lint --filter=...[origin/main]
|
||||
```
|
||||
|
||||
@@ -536,7 +541,7 @@ pnpm changeset pre exit # back to stable releases
|
||||
|
||||
```yaml
|
||||
# .github/workflows/release.yml
|
||||
name: Release
|
||||
name: "release"
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -555,7 +560,7 @@ jobs:
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Create Release PR or Publish
|
||||
- name: "create-release-pr-or-publish"
|
||||
uses: changesets/action@v1
|
||||
with:
|
||||
publish: pnpm changeset publish
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "observability-designer"
|
||||
description: "Observability Designer (POWERFUL)"
|
||||
---
|
||||
|
||||
# Observability Designer (POWERFUL)
|
||||
|
||||
**Category:** Engineering
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "performance-profiler"
|
||||
description: "Performance Profiler"
|
||||
---
|
||||
|
||||
# Performance Profiler
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "pr-review-expert"
|
||||
description: "PR Review Expert"
|
||||
---
|
||||
|
||||
# PR Review Expert
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "rag-architect"
|
||||
description: "RAG Architect - POWERFUL"
|
||||
---
|
||||
|
||||
# RAG Architect - POWERFUL
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "release-manager"
|
||||
description: "Release Manager"
|
||||
---
|
||||
|
||||
# Release Manager
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "runbook-generator"
|
||||
description: "Runbook Generator"
|
||||
---
|
||||
|
||||
# Runbook Generator
|
||||
|
||||
**Tier:** POWERFUL
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: skill-security-auditor
|
||||
name: "skill-security-auditor"
|
||||
description: >
|
||||
Security audit and vulnerability scanner for AI agent skills before installation.
|
||||
Use when: (1) evaluating a skill from an untrusted source, (2) auditing a skill
|
||||
@@ -141,7 +141,7 @@ python3 scripts/skill_security_auditor.py https://github.com/user/skill-repo --s
|
||||
|
||||
```yaml
|
||||
# GitHub Actions step
|
||||
- name: Audit Skill Security
|
||||
- name: "audit-skill-security"
|
||||
run: |
|
||||
python3 skill-security-auditor/scripts/skill_security_auditor.py ./skills/new-skill/ --strict --json > audit.json
|
||||
if [ $? -ne 0 ]; then echo "Security audit failed"; exit 1; fi
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
name: "skill-tester"
|
||||
description: "Skill Tester"
|
||||
---
|
||||
|
||||
# Skill Tester
|
||||
|
||||
---
|
||||
@@ -161,7 +166,7 @@ quality_scorer.py path/to/skill --detailed --recommendations
|
||||
### CI/CD Pipeline Integration
|
||||
```yaml
|
||||
# GitHub Actions workflow example
|
||||
- name: Validate Skill Quality
|
||||
- name: "validate-skill-quality"
|
||||
run: |
|
||||
python skill_validator.py engineering/${{ matrix.skill }} --json | tee validation.json
|
||||
python script_tester.py engineering/${{ matrix.skill }} | tee testing.json
|
||||
@@ -271,7 +276,7 @@ echo "Validation passed. Proceeding with commit."
|
||||
|
||||
### GitHub Actions Workflow
|
||||
```yaml
|
||||
name: Skill Quality Gate
|
||||
name: "skill-quality-gate"
|
||||
on:
|
||||
pull_request:
|
||||
paths: ['engineering/**']
|
||||
@@ -281,11 +286,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Setup Python
|
||||
- name: "setup-python"
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- name: Validate Changed Skills
|
||||
- name: "validate-changed-skills"
|
||||
run: |
|
||||
changed_skills=$(git diff --name-only ${{ github.event.before }} | grep -E '^engineering/[^/]+/' | cut -d'/' -f1-2 | sort -u)
|
||||
for skill in $changed_skills; do
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: financial-analyst
|
||||
name: "financial-analyst"
|
||||
description: Performs financial ratio analysis, DCF valuation, budget variance analysis, and rolling forecast construction for strategic decision-making
|
||||
---
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user