diff --git a/.codex/skills-index.json b/.codex/skills-index.json new file mode 100644 index 0000000..1df5a81 --- /dev/null +++ b/.codex/skills-index.json @@ -0,0 +1,299 @@ +{ + "version": "1.0.0", + "name": "claude-code-skills", + "description": "Production-ready skill packages for AI agents - Marketing, Engineering, Product, C-Level, PM, and RA/QM", + "repository": "https://github.com/alirezarezvani/claude-skills", + "total_skills": 43, + "skills": [ + { + "name": "ceo-advisor", + "source": "../../c-level-advisor/ceo-advisor", + "category": "c-level", + "description": "Executive leadership guidance for strategic decision-making, organizational development, and stakeholder management. Includes strategy analyzer, financial scenario modeling, board governance frameworks, and investor relations playbooks. Use when planning strategy, preparing board presentations, managing investors, developing organizational culture, making executive decisions, or when user mentions CEO, strategic planning, board meetings, investor updates, organizational leadership, or executive strategy." + }, + { + "name": "cto-advisor", + "source": "../../c-level-advisor/cto-advisor", + "category": "c-level", + "description": "Technical leadership guidance for engineering teams, architecture decisions, and technology strategy. Includes tech debt analyzer, team scaling calculator, engineering metrics frameworks, technology evaluation tools, and ADR templates. 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." + }, + { + "name": "aws-solution-architect", + "source": "../../engineering-team/aws-solution-architect", + "category": "engineering", + "description": "Expert AWS solution architecture for startups focusing on serverless, scalable, and cost-effective cloud infrastructure with modern DevOps practices and infrastructure-as-code" + }, + { + "name": "code-reviewer", + "source": "../../engineering-team/code-reviewer", + "category": "engineering", + "description": "Comprehensive code review skill for TypeScript, JavaScript, Python, Swift, Kotlin, Go. Includes automated code analysis, best practice checking, security scanning, and review checklist generation. Use when reviewing pull requests, providing code feedback, identifying issues, or ensuring code quality standards." + }, + { + "name": "ms365-tenant-manager", + "source": "../../engineering-team/ms365-tenant-manager", + "category": "engineering", + "description": "Comprehensive Microsoft 365 tenant administration skill for setup, configuration, user management, security policies, and organizational structure optimization for Global Administrators" + }, + { + "name": "senior-architect", + "source": "../../engineering-team/senior-architect", + "category": "engineering", + "description": "Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin, Flutter, Postgres, GraphQL, Go, Python. Includes architecture diagram generation, system design patterns, tech stack decision frameworks, and dependency analysis. Use when designing system architecture, making technical decisions, creating architecture diagrams, evaluating trade-offs, or defining integration patterns." + }, + { + "name": "senior-backend", + "source": "../../engineering-team/senior-backend", + "category": "engineering", + "description": "Comprehensive backend development skill for building scalable backend systems using NodeJS, Express, Go, Python, Postgres, GraphQL, REST APIs. Includes API scaffolding, database optimization, security implementation, and performance tuning. Use when designing APIs, optimizing database queries, implementing business logic, handling authentication/authorization, or reviewing backend code." + }, + { + "name": "senior-computer-vision", + "source": "../../engineering-team/senior-computer-vision", + "category": "engineering", + "description": "World-class computer vision skill for image/video processing, object detection, segmentation, and visual AI systems. Expertise in PyTorch, OpenCV, YOLO, SAM, diffusion models, and vision transformers. Includes 3D vision, video analysis, real-time processing, and production deployment. Use when building vision AI systems, implementing object detection, training custom vision models, or optimizing inference pipelines." + }, + { + "name": "senior-data-engineer", + "source": "../../engineering-team/senior-data-engineer", + "category": "engineering", + "description": "World-class 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, or implementing data governance." + }, + { + "name": "senior-data-scientist", + "source": "../../engineering-team/senior-data-scientist", + "category": "engineering", + "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." + }, + { + "name": "senior-devops", + "source": "../../engineering-team/senior-devops", + "category": "engineering", + "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." + }, + { + "name": "senior-frontend", + "source": "../../engineering-team/senior-frontend", + "category": "engineering", + "description": "Comprehensive frontend development skill for building modern, performant web applications using ReactJS, NextJS, TypeScript, Tailwind CSS. Includes component scaffolding, performance optimization, bundle analysis, and UI best practices. Use when developing frontend features, optimizing performance, implementing UI/UX designs, managing state, or reviewing frontend code." + }, + { + "name": "senior-fullstack", + "source": "../../engineering-team/senior-fullstack", + "category": "engineering", + "description": "Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL. Includes project scaffolding, code quality analysis, architecture patterns, and complete tech stack guidance. Use when building new projects, analyzing code quality, implementing design patterns, or setting up development workflows." + }, + { + "name": "senior-ml-engineer", + "source": "../../engineering-team/senior-ml-engineer", + "category": "engineering", + "description": "World-class ML engineering skill for productionizing ML models, MLOps, and building scalable ML systems. Expertise in PyTorch, TensorFlow, model deployment, feature stores, model monitoring, and ML infrastructure. Includes LLM integration, fine-tuning, RAG systems, and agentic AI. Use when deploying ML models, building ML platforms, implementing MLOps, or integrating LLMs into production systems." + }, + { + "name": "senior-prompt-engineer", + "source": "../../engineering-team/senior-prompt-engineer", + "category": "engineering", + "description": "World-class prompt engineering skill for LLM optimization, prompt patterns, structured outputs, and AI product development. Expertise in Claude, GPT-4, prompt design patterns, few-shot learning, chain-of-thought, and AI evaluation. Includes RAG optimization, agent design, and LLM system architecture. Use when building AI products, optimizing LLM performance, designing agentic systems, or implementing advanced prompting techniques." + }, + { + "name": "senior-qa", + "source": "../../engineering-team/senior-qa", + "category": "engineering", + "description": "Comprehensive QA and testing skill for quality assurance, test automation, and testing strategies for ReactJS, NextJS, NodeJS applications. Includes test suite generation, coverage analysis, E2E testing setup, and quality metrics. Use when designing test strategies, writing test cases, implementing test automation, performing manual testing, or analyzing test coverage." + }, + { + "name": "senior-secops", + "source": "../../engineering-team/senior-secops", + "category": "engineering", + "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." + }, + { + "name": "senior-security", + "source": "../../engineering-team/senior-security", + "category": "engineering", + "description": "Comprehensive security engineering skill for application security, penetration testing, security architecture, and compliance auditing. Includes security assessment tools, threat modeling, crypto implementation, and security automation. Use when designing security architecture, conducting penetration tests, implementing cryptography, or performing security audits." + }, + { + "name": "tdd-guide", + "source": "../../engineering-team/tdd-guide", + "category": "engineering", + "description": "Comprehensive Test Driven Development guide for engineering subagents with multi-framework support, coverage analysis, and intelligent test generation" + }, + { + "name": "tech-stack-evaluator", + "source": "../../engineering-team/tech-stack-evaluator", + "category": "engineering", + "description": "Comprehensive technology stack evaluation and comparison tool with TCO analysis, security assessment, and intelligent recommendations for engineering teams" + }, + { + "name": "app-store-optimization", + "source": "../../marketing-skill/app-store-optimization", + "category": "marketing", + "description": "Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store" + }, + { + "name": "content-creator", + "source": "../../marketing-skill/content-creator", + "category": "marketing", + "description": "Create SEO-optimized marketing content with consistent brand voice. Includes brand voice analyzer, SEO optimizer, content frameworks, and social media templates. Use when writing blog posts, 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." + }, + { + "name": "marketing-demand-acquisition", + "source": "../../marketing-skill/marketing-demand-acquisition", + "category": "marketing", + "description": "Multi-channel demand generation, paid media optimization, SEO strategy, and partnership programs for Series A+ startups. Includes CAC calculator, channel playbooks, HubSpot integration, and international expansion tactics. Use when planning demand generation campaigns, optimizing paid media, building SEO strategies, establishing partnerships, or when user mentions demand gen, paid ads, LinkedIn ads, Google ads, CAC, acquisition, lead generation, or pipeline generation." + }, + { + "name": "marketing-strategy-pmm", + "source": "../../marketing-skill/marketing-strategy-pmm", + "category": "marketing", + "description": "Product marketing, positioning, GTM strategy, and competitive intelligence. Includes ICP definition, April Dunford positioning methodology, launch playbooks, competitive battlecards, and international market entry guides. Use when developing positioning, planning product launches, creating messaging, analyzing competitors, entering new markets, enabling sales, or when user mentions product marketing, positioning, GTM, go-to-market, competitive analysis, market entry, or sales enablement." + }, + { + "name": "social-media-analyzer", + "source": "../../marketing-skill/social-media-analyzer", + "category": "marketing", + "description": "Analyzes social media campaign performance across platforms with engagement metrics, ROI calculations, and audience insights for data-driven marketing decisions" + }, + { + "name": "agile-product-owner", + "source": "../../product-team/agile-product-owner", + "category": "product", + "description": "Agile product ownership toolkit for Senior Product Owner including INVEST-compliant user story generation, sprint planning, backlog management, and velocity tracking. Use for story writing, sprint planning, stakeholder communication, and agile ceremonies." + }, + { + "name": "product-manager-toolkit", + "source": "../../product-team/product-manager-toolkit", + "category": "product", + "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." + }, + { + "name": "product-strategist", + "source": "../../product-team/product-strategist", + "category": "product", + "description": "Strategic product leadership toolkit for Head of Product including OKR cascade generation, market analysis, vision setting, and team scaling. Use for strategic planning, goal alignment, competitive analysis, and organizational design." + }, + { + "name": "ui-design-system", + "source": "../../product-team/ui-design-system", + "category": "product", + "description": "UI design system toolkit for Senior UI Designer including design token generation, component documentation, responsive design calculations, and developer handoff tools. Use for creating design systems, maintaining visual consistency, and facilitating design-dev collaboration." + }, + { + "name": "ux-researcher-designer", + "source": "../../product-team/ux-researcher-designer", + "category": "product", + "description": "UX research and design toolkit for Senior UX Designer/Researcher including data-driven persona generation, journey mapping, usability testing frameworks, and research synthesis. Use for user research, persona creation, journey mapping, and design validation." + }, + { + "name": "scrum-master-agent", + "source": "../../project-management/scrum-master-agent", + "category": "project-management", + "description": "Comprehensive Scrum Master assistant for sprint planning, backlog grooming, retrospectives, capacity planning, and daily standups with intelligent context-aware reporting" + }, + { + "name": "capa-officer", + "source": "../../ra-qm-team/capa-officer", + "category": "ra-qm", + "description": "Senior CAPA Officer specialist for managing Corrective and Preventive Actions within Quality Management Systems. Provides CAPA process management, root cause analysis, effectiveness verification, and continuous improvement coordination. Use for CAPA investigations, corrective action planning, preventive action implementation, and CAPA system optimization." + }, + { + "name": "fda-consultant-specialist", + "source": "../../ra-qm-team/fda-consultant-specialist", + "category": "ra-qm", + "description": "Senior FDA consultant and specialist for medical device companies including HIPAA compliance and requirement management. Provides FDA pathway expertise, QSR compliance, cybersecurity guidance, and regulatory submission support. Use for FDA submission planning, QSR compliance assessments, HIPAA evaluations, and FDA regulatory strategy development." + }, + { + "name": "gdpr-dsgvo-expert", + "source": "../../ra-qm-team/gdpr-dsgvo-expert", + "category": "ra-qm", + "description": "Senior GDPR/DSGVO expert and internal/external auditor for data protection compliance. Provides EU GDPR and German DSGVO expertise, privacy impact assessments, data protection auditing, and compliance verification. Use for GDPR compliance assessments, privacy audits, data protection planning, and regulatory compliance verification." + }, + { + "name": "information-security-manager-iso27001", + "source": "../../ra-qm-team/information-security-manager-iso27001", + "category": "ra-qm", + "description": "Senior Information Security Manager specializing in ISO 27001 and ISO 27002 implementation for HealthTech and MedTech companies. Provides ISMS implementation, cybersecurity risk assessment, security controls management, and compliance oversight. Use for ISMS design, security risk assessments, control implementation, and ISO 27001 certification activities." + }, + { + "name": "isms-audit-expert", + "source": "../../ra-qm-team/isms-audit-expert", + "category": "ra-qm", + "description": "Senior ISMS Audit Expert for internal and external information security management system auditing. Provides ISO 27001 audit expertise, security audit program management, security control assessment, and compliance verification. Use for ISMS internal auditing, external audit preparation, security control testing, and ISO 27001 certification support." + }, + { + "name": "mdr-745-specialist", + "source": "../../ra-qm-team/mdr-745-specialist", + "category": "ra-qm", + "description": "EU MDR 2017/745 regulation specialist and consultant for medical device requirement management. Provides comprehensive MDR compliance expertise, gap analysis, technical documentation guidance, clinical evidence requirements, and post-market surveillance implementation. Use for MDR compliance assessment, classification decisions, technical file preparation, and regulatory requirement interpretation." + }, + { + "name": "qms-audit-expert", + "source": "../../ra-qm-team/qms-audit-expert", + "category": "ra-qm", + "description": "Senior QMS Audit Expert for internal and external quality management system auditing. Provides ISO 13485 audit expertise, audit program management, nonconformity identification, and corrective action verification. Use for internal audit planning, external audit preparation, audit execution, and audit follow-up activities." + }, + { + "name": "quality-documentation-manager", + "source": "../../ra-qm-team/quality-documentation-manager", + "category": "ra-qm", + "description": "Senior Quality Documentation Manager for comprehensive documentation control and regulatory document review. Provides document management system design, change control, configuration management, and regulatory documentation oversight. Use for document control system implementation, regulatory document review, change management, and documentation compliance verification." + }, + { + "name": "quality-manager-qmr", + "source": "../../ra-qm-team/quality-manager-qmr", + "category": "ra-qm", + "description": "Senior Quality Manager Responsible Person (QMR) for HealthTech and MedTech companies. Provides overall quality system responsibility, regulatory compliance oversight, management accountability, and strategic quality leadership. Use for quality system governance, regulatory compliance oversight, management responsibility, and quality strategic planning." + }, + { + "name": "quality-manager-qms-iso13485", + "source": "../../ra-qm-team/quality-manager-qms-iso13485", + "category": "ra-qm", + "description": "ISO 13485 Quality Management System specialist for medical device companies. Provides QMS implementation, maintenance, process optimization, and compliance expertise. Use for QMS design, documentation control, management review, internal auditing, corrective actions, and ISO 13485 certification activities." + }, + { + "name": "regulatory-affairs-head", + "source": "../../ra-qm-team/regulatory-affairs-head", + "category": "ra-qm", + "description": "Senior Regulatory Affairs Manager expertise for HealthTech and MedTech companies. Provides strategic regulatory guidance, submission management, regulatory pathway analysis, global compliance coordination, and cross-functional team leadership. Use for regulatory strategy development, submission planning, regulatory risk assessment, and team coordination activities." + }, + { + "name": "risk-management-specialist", + "source": "../../ra-qm-team/risk-management-specialist", + "category": "ra-qm", + "description": "Senior Risk Management specialist for medical device companies implementing ISO 14971 risk management throughout product lifecycle. Provides risk analysis, risk evaluation, risk control, and post-production information analysis. Use for risk management planning, risk assessments, risk control verification, and risk management file maintenance." + } + ], + "categories": { + "c-level": { + "count": 2, + "source": "../../c-level-advisor", + "description": "Executive leadership and advisory skills" + }, + "engineering": { + "count": 18, + "source": "../../engineering-team", + "description": "Software engineering and technical skills" + }, + "marketing": { + "count": 5, + "source": "../../marketing-skill", + "description": "Marketing, content, and demand generation skills" + }, + "product": { + "count": 5, + "source": "../../product-team", + "description": "Product management and design skills" + }, + "project-management": { + "count": 1, + "source": "../../project-management", + "description": "Project management and Atlassian skills" + }, + "ra-qm": { + "count": 12, + "source": "../../ra-qm-team", + "description": "Regulatory affairs and quality management skills" + } + } +} diff --git a/.codex/skills/agile-product-owner b/.codex/skills/agile-product-owner new file mode 120000 index 0000000..6f73e66 --- /dev/null +++ b/.codex/skills/agile-product-owner @@ -0,0 +1 @@ +../../product-team/agile-product-owner \ No newline at end of file diff --git a/.codex/skills/app-store-optimization b/.codex/skills/app-store-optimization new file mode 120000 index 0000000..4b234fb --- /dev/null +++ b/.codex/skills/app-store-optimization @@ -0,0 +1 @@ +../../marketing-skill/app-store-optimization \ No newline at end of file diff --git a/.codex/skills/aws-solution-architect b/.codex/skills/aws-solution-architect new file mode 120000 index 0000000..7ded4fe --- /dev/null +++ b/.codex/skills/aws-solution-architect @@ -0,0 +1 @@ +../../engineering-team/aws-solution-architect \ No newline at end of file diff --git a/.codex/skills/capa-officer b/.codex/skills/capa-officer new file mode 120000 index 0000000..97e4fcb --- /dev/null +++ b/.codex/skills/capa-officer @@ -0,0 +1 @@ +../../ra-qm-team/capa-officer \ No newline at end of file diff --git a/.codex/skills/ceo-advisor b/.codex/skills/ceo-advisor new file mode 120000 index 0000000..d3d9ac2 --- /dev/null +++ b/.codex/skills/ceo-advisor @@ -0,0 +1 @@ +../../c-level-advisor/ceo-advisor \ No newline at end of file diff --git a/.codex/skills/code-reviewer b/.codex/skills/code-reviewer new file mode 120000 index 0000000..7d93097 --- /dev/null +++ b/.codex/skills/code-reviewer @@ -0,0 +1 @@ +../../engineering-team/code-reviewer \ No newline at end of file diff --git a/.codex/skills/content-creator b/.codex/skills/content-creator new file mode 120000 index 0000000..115f485 --- /dev/null +++ b/.codex/skills/content-creator @@ -0,0 +1 @@ +../../marketing-skill/content-creator \ No newline at end of file diff --git a/.codex/skills/cto-advisor b/.codex/skills/cto-advisor new file mode 120000 index 0000000..2d0aefa --- /dev/null +++ b/.codex/skills/cto-advisor @@ -0,0 +1 @@ +../../c-level-advisor/cto-advisor \ No newline at end of file diff --git a/.codex/skills/fda-consultant-specialist b/.codex/skills/fda-consultant-specialist new file mode 120000 index 0000000..e286984 --- /dev/null +++ b/.codex/skills/fda-consultant-specialist @@ -0,0 +1 @@ +../../ra-qm-team/fda-consultant-specialist \ No newline at end of file diff --git a/.codex/skills/gdpr-dsgvo-expert b/.codex/skills/gdpr-dsgvo-expert new file mode 120000 index 0000000..c66855f --- /dev/null +++ b/.codex/skills/gdpr-dsgvo-expert @@ -0,0 +1 @@ +../../ra-qm-team/gdpr-dsgvo-expert \ No newline at end of file diff --git a/.codex/skills/information-security-manager-iso27001 b/.codex/skills/information-security-manager-iso27001 new file mode 120000 index 0000000..0b9e868 --- /dev/null +++ b/.codex/skills/information-security-manager-iso27001 @@ -0,0 +1 @@ +../../ra-qm-team/information-security-manager-iso27001 \ No newline at end of file diff --git a/.codex/skills/isms-audit-expert b/.codex/skills/isms-audit-expert new file mode 120000 index 0000000..5f32337 --- /dev/null +++ b/.codex/skills/isms-audit-expert @@ -0,0 +1 @@ +../../ra-qm-team/isms-audit-expert \ No newline at end of file diff --git a/.codex/skills/marketing-demand-acquisition b/.codex/skills/marketing-demand-acquisition new file mode 120000 index 0000000..d2e8f5d --- /dev/null +++ b/.codex/skills/marketing-demand-acquisition @@ -0,0 +1 @@ +../../marketing-skill/marketing-demand-acquisition \ No newline at end of file diff --git a/.codex/skills/marketing-strategy-pmm b/.codex/skills/marketing-strategy-pmm new file mode 120000 index 0000000..f182e5d --- /dev/null +++ b/.codex/skills/marketing-strategy-pmm @@ -0,0 +1 @@ +../../marketing-skill/marketing-strategy-pmm \ No newline at end of file diff --git a/.codex/skills/mdr-745-specialist b/.codex/skills/mdr-745-specialist new file mode 120000 index 0000000..2e00661 --- /dev/null +++ b/.codex/skills/mdr-745-specialist @@ -0,0 +1 @@ +../../ra-qm-team/mdr-745-specialist \ No newline at end of file diff --git a/.codex/skills/ms365-tenant-manager b/.codex/skills/ms365-tenant-manager new file mode 120000 index 0000000..a90e516 --- /dev/null +++ b/.codex/skills/ms365-tenant-manager @@ -0,0 +1 @@ +../../engineering-team/ms365-tenant-manager \ No newline at end of file diff --git a/.codex/skills/product-manager-toolkit b/.codex/skills/product-manager-toolkit new file mode 120000 index 0000000..9c58ece --- /dev/null +++ b/.codex/skills/product-manager-toolkit @@ -0,0 +1 @@ +../../product-team/product-manager-toolkit \ No newline at end of file diff --git a/.codex/skills/product-strategist b/.codex/skills/product-strategist new file mode 120000 index 0000000..403e9a5 --- /dev/null +++ b/.codex/skills/product-strategist @@ -0,0 +1 @@ +../../product-team/product-strategist \ No newline at end of file diff --git a/.codex/skills/qms-audit-expert b/.codex/skills/qms-audit-expert new file mode 120000 index 0000000..2994fc5 --- /dev/null +++ b/.codex/skills/qms-audit-expert @@ -0,0 +1 @@ +../../ra-qm-team/qms-audit-expert \ No newline at end of file diff --git a/.codex/skills/quality-documentation-manager b/.codex/skills/quality-documentation-manager new file mode 120000 index 0000000..40e803b --- /dev/null +++ b/.codex/skills/quality-documentation-manager @@ -0,0 +1 @@ +../../ra-qm-team/quality-documentation-manager \ No newline at end of file diff --git a/.codex/skills/quality-manager-qmr b/.codex/skills/quality-manager-qmr new file mode 120000 index 0000000..7cc57f8 --- /dev/null +++ b/.codex/skills/quality-manager-qmr @@ -0,0 +1 @@ +../../ra-qm-team/quality-manager-qmr \ No newline at end of file diff --git a/.codex/skills/quality-manager-qms-iso13485 b/.codex/skills/quality-manager-qms-iso13485 new file mode 120000 index 0000000..86e3184 --- /dev/null +++ b/.codex/skills/quality-manager-qms-iso13485 @@ -0,0 +1 @@ +../../ra-qm-team/quality-manager-qms-iso13485 \ No newline at end of file diff --git a/.codex/skills/regulatory-affairs-head b/.codex/skills/regulatory-affairs-head new file mode 120000 index 0000000..5efc863 --- /dev/null +++ b/.codex/skills/regulatory-affairs-head @@ -0,0 +1 @@ +../../ra-qm-team/regulatory-affairs-head \ No newline at end of file diff --git a/.codex/skills/risk-management-specialist b/.codex/skills/risk-management-specialist new file mode 120000 index 0000000..81f49c8 --- /dev/null +++ b/.codex/skills/risk-management-specialist @@ -0,0 +1 @@ +../../ra-qm-team/risk-management-specialist \ No newline at end of file diff --git a/.codex/skills/scrum-master-agent b/.codex/skills/scrum-master-agent new file mode 120000 index 0000000..7b8b7c9 --- /dev/null +++ b/.codex/skills/scrum-master-agent @@ -0,0 +1 @@ +../../project-management/scrum-master-agent \ No newline at end of file diff --git a/.codex/skills/senior-architect b/.codex/skills/senior-architect new file mode 120000 index 0000000..320310d --- /dev/null +++ b/.codex/skills/senior-architect @@ -0,0 +1 @@ +../../engineering-team/senior-architect \ No newline at end of file diff --git a/.codex/skills/senior-backend b/.codex/skills/senior-backend new file mode 120000 index 0000000..ccb97a7 --- /dev/null +++ b/.codex/skills/senior-backend @@ -0,0 +1 @@ +../../engineering-team/senior-backend \ No newline at end of file diff --git a/.codex/skills/senior-computer-vision b/.codex/skills/senior-computer-vision new file mode 120000 index 0000000..8caa4c3 --- /dev/null +++ b/.codex/skills/senior-computer-vision @@ -0,0 +1 @@ +../../engineering-team/senior-computer-vision \ No newline at end of file diff --git a/.codex/skills/senior-data-engineer b/.codex/skills/senior-data-engineer new file mode 120000 index 0000000..1521b80 --- /dev/null +++ b/.codex/skills/senior-data-engineer @@ -0,0 +1 @@ +../../engineering-team/senior-data-engineer \ No newline at end of file diff --git a/.codex/skills/senior-data-scientist b/.codex/skills/senior-data-scientist new file mode 120000 index 0000000..8d5bb52 --- /dev/null +++ b/.codex/skills/senior-data-scientist @@ -0,0 +1 @@ +../../engineering-team/senior-data-scientist \ No newline at end of file diff --git a/.codex/skills/senior-devops b/.codex/skills/senior-devops new file mode 120000 index 0000000..b6e7e71 --- /dev/null +++ b/.codex/skills/senior-devops @@ -0,0 +1 @@ +../../engineering-team/senior-devops \ No newline at end of file diff --git a/.codex/skills/senior-frontend b/.codex/skills/senior-frontend new file mode 120000 index 0000000..1690258 --- /dev/null +++ b/.codex/skills/senior-frontend @@ -0,0 +1 @@ +../../engineering-team/senior-frontend \ No newline at end of file diff --git a/.codex/skills/senior-fullstack b/.codex/skills/senior-fullstack new file mode 120000 index 0000000..5f441bc --- /dev/null +++ b/.codex/skills/senior-fullstack @@ -0,0 +1 @@ +../../engineering-team/senior-fullstack \ No newline at end of file diff --git a/.codex/skills/senior-ml-engineer b/.codex/skills/senior-ml-engineer new file mode 120000 index 0000000..3e5196e --- /dev/null +++ b/.codex/skills/senior-ml-engineer @@ -0,0 +1 @@ +../../engineering-team/senior-ml-engineer \ No newline at end of file diff --git a/.codex/skills/senior-prompt-engineer b/.codex/skills/senior-prompt-engineer new file mode 120000 index 0000000..0e07343 --- /dev/null +++ b/.codex/skills/senior-prompt-engineer @@ -0,0 +1 @@ +../../engineering-team/senior-prompt-engineer \ No newline at end of file diff --git a/.codex/skills/senior-qa b/.codex/skills/senior-qa new file mode 120000 index 0000000..0d1347f --- /dev/null +++ b/.codex/skills/senior-qa @@ -0,0 +1 @@ +../../engineering-team/senior-qa \ No newline at end of file diff --git a/.codex/skills/senior-secops b/.codex/skills/senior-secops new file mode 120000 index 0000000..2482fc7 --- /dev/null +++ b/.codex/skills/senior-secops @@ -0,0 +1 @@ +../../engineering-team/senior-secops \ No newline at end of file diff --git a/.codex/skills/senior-security b/.codex/skills/senior-security new file mode 120000 index 0000000..c578258 --- /dev/null +++ b/.codex/skills/senior-security @@ -0,0 +1 @@ +../../engineering-team/senior-security \ No newline at end of file diff --git a/.codex/skills/social-media-analyzer b/.codex/skills/social-media-analyzer new file mode 120000 index 0000000..2098f86 --- /dev/null +++ b/.codex/skills/social-media-analyzer @@ -0,0 +1 @@ +../../marketing-skill/social-media-analyzer \ No newline at end of file diff --git a/.codex/skills/tdd-guide b/.codex/skills/tdd-guide new file mode 120000 index 0000000..08669df --- /dev/null +++ b/.codex/skills/tdd-guide @@ -0,0 +1 @@ +../../engineering-team/tdd-guide \ No newline at end of file diff --git a/.codex/skills/tech-stack-evaluator b/.codex/skills/tech-stack-evaluator new file mode 120000 index 0000000..c3706ac --- /dev/null +++ b/.codex/skills/tech-stack-evaluator @@ -0,0 +1 @@ +../../engineering-team/tech-stack-evaluator \ No newline at end of file diff --git a/.codex/skills/ui-design-system b/.codex/skills/ui-design-system new file mode 120000 index 0000000..8290a40 --- /dev/null +++ b/.codex/skills/ui-design-system @@ -0,0 +1 @@ +../../product-team/ui-design-system \ No newline at end of file diff --git a/.codex/skills/ux-researcher-designer b/.codex/skills/ux-researcher-designer new file mode 120000 index 0000000..72d15cd --- /dev/null +++ b/.codex/skills/ux-researcher-designer @@ -0,0 +1 @@ +../../product-team/ux-researcher-designer \ No newline at end of file diff --git a/.github/workflows/sync-codex-skills.yml b/.github/workflows/sync-codex-skills.yml new file mode 100644 index 0000000..25908c2 --- /dev/null +++ b/.github/workflows/sync-codex-skills.yml @@ -0,0 +1,82 @@ +name: Sync Codex Skills Symlinks + +on: + push: + paths: + - '**/SKILL.md' + - 'scripts/sync-codex-skills.py' + branches: + - main + - dev + workflow_dispatch: + inputs: + dry_run: + description: 'Dry run (no changes)' + required: false + default: 'false' + type: boolean + +jobs: + sync: + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Sync Codex skills symlinks + env: + DRY_RUN: ${{ github.event.inputs.dry_run }} + run: | + if [ "$DRY_RUN" == "true" ]; then + python scripts/sync-codex-skills.py --verbose --dry-run + else + python scripts/sync-codex-skills.py --verbose --validate + fi + + - name: Check for changes + id: check_changes + run: | + if git diff --quiet .codex/; then + echo "has_changes=false" >> $GITHUB_OUTPUT + else + echo "has_changes=true" >> $GITHUB_OUTPUT + fi + + - name: Commit changes + if: steps.check_changes.outputs.has_changes == 'true' && github.event.inputs.dry_run != 'true' + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "chore: sync codex skills symlinks [automated]" + file_pattern: ".codex/*" + commit_user_name: "github-actions[bot]" + commit_user_email: "github-actions[bot]@users.noreply.github.com" + + - name: Summary + run: | + echo "## Codex Skills Sync Summary" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + if [ -f ".codex/skills-index.json" ]; then + TOTAL=$(python3 -c "import json; print(json.load(open('.codex/skills-index.json'))['total_skills'])") + echo "**Total Skills:** $TOTAL" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Categories" >> $GITHUB_STEP_SUMMARY + python3 << 'PYEOF' +import json +with open('.codex/skills-index.json') as f: + data = json.load(f) +for cat, info in data['categories'].items(): + print(f'- **{cat}**: {info["count"]} skills') +PYEOF + else + echo "No skills index found." >> $GITHUB_STEP_SUMMARY + fi diff --git a/.gitignore b/.gitignore index b6d8c1e..fc054eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,30 @@ +# IDE and OS .vscode .DS_Store + +# Environment files +.env +.env.* +!.env.example + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info/ +.eggs/ + +# Specific archive exclusions (NOT all .zip - skill packages are intentional) +medium-content-pro.zip +v1-10-2025-medium-content-pro.zip + +# Project-specific exclusions AGENTS.md PROMPTS.md -.env -.env.local -.env.development.local -.env.test.local -.env.production.local -.env.development -.env.test -.env.production -.env.local -.env.development.local -.env.test.local -.env.production.local medium-content-pro/* +medium-content-pro 2/* documentation/GIST_CONTENT.md documentation/implementation/*__pycache__/ medium-content-pro 2/* diff --git a/INSTALLATION.md b/INSTALLATION.md index 3f438e1..dedb186 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -5,10 +5,12 @@ Complete installation guide for all 48 production-ready skills across multiple A ## Table of Contents - [Quick Start](#quick-start) -- [Universal Installer (Recommended)](#universal-installer-recommended) -- [Manual Installation](#manual-installation) +- [Claude Code Native Marketplace](#claude-code-native-marketplace-new) +- [Universal Installer](#universal-installer) +- [OpenAI Codex Installation](#openai-codex-installation) - [Per-Skill Installation](#per-skill-installation) - [Multi-Agent Setup](#multi-agent-setup) +- [Manual Installation](#manual-installation) - [Verification & Testing](#verification--testing) - [Troubleshooting](#troubleshooting) - [Uninstallation](#uninstallation) @@ -17,9 +19,9 @@ Complete installation guide for all 48 production-ready skills across multiple A ## Quick Start -**Two installation methods available:** +**Choose your agent:** -### Method 1: Claude Code Native (Recommended for Claude Code users) +### For Claude Code Users (Recommended) ```bash # In Claude Code, run: @@ -29,13 +31,27 @@ Complete installation guide for all 48 production-ready skills across multiple A Native integration with automatic updates and version management. -### Method 2: Universal Installer (Works across all agents) +### For OpenAI Codex Users + +```bash +# Option 1: Universal installer +npx ai-agent-skills install alirezarezvani/claude-skills --agent codex + +# Option 2: Direct installation script +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills +./scripts/codex-install.sh +``` + +Skills install to `~/.codex/skills/`. See [OpenAI Codex Installation](#openai-codex-installation) for detailed instructions. + +### For All Other Agents (Cursor, VS Code, Goose, etc.) ```bash npx ai-agent-skills install alirezarezvani/claude-skills ``` -This single command installs all skills to all supported agents (Claude Code, Cursor, VS Code, Amp, Goose, etc.) automatically. +This single command installs all skills to all supported agents automatically. --- @@ -606,6 +622,108 @@ rm -rf .cursor/skills/fullstack-engineer/ --- +## OpenAI Codex Installation + +OpenAI Codex users can install skills using the methods below. This repository provides full Codex compatibility through a `.codex/skills/` directory with symlinks to all 43 skills. + +### Method 1: Universal Installer (Recommended) + +```bash +# Install all skills to Codex +npx ai-agent-skills install alirezarezvani/claude-skills --agent codex + +# Preview before installing +npx ai-agent-skills install alirezarezvani/claude-skills --agent codex --dry-run +``` + +### Method 2: Direct Installation Script + +For manual installation using the provided scripts: + +**macOS/Linux:** +```bash +# Clone repository +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills + +# Generate symlinks (if not already present) +python scripts/sync-codex-skills.py + +# Install all skills to ~/.codex/skills/ +./scripts/codex-install.sh + +# Or install specific category +./scripts/codex-install.sh --category marketing +./scripts/codex-install.sh --category engineering + +# Or install single skill +./scripts/codex-install.sh --skill content-creator + +# List available skills +./scripts/codex-install.sh --list +``` + +**Windows:** +```cmd +REM Clone repository +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills + +REM Generate structure (if not already present) +python scripts\sync-codex-skills.py + +REM Install all skills to %USERPROFILE%\.codex\skills\ +scripts\codex-install.bat + +REM Or install single skill +scripts\codex-install.bat --skill content-creator + +REM List available skills +scripts\codex-install.bat --list +``` + +### Method 3: Manual Installation + +```bash +# Clone repository +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills + +# Copy skills (following symlinks) to Codex directory +mkdir -p ~/.codex/skills +cp -rL .codex/skills/* ~/.codex/skills/ +``` + +### Verification + +```bash +# Check installed skills +ls ~/.codex/skills/ + +# Verify skill structure +ls ~/.codex/skills/content-creator/ +# Should show: SKILL.md, scripts/, references/, assets/ + +# Check total skill count +ls ~/.codex/skills/ | wc -l +# Should show: 43 +``` + +### Available Categories + +| Category | Skills | Examples | +|----------|--------|----------| +| **c-level** | 2 | ceo-advisor, cto-advisor | +| **engineering** | 18 | senior-fullstack, aws-solution-architect, senior-ml-engineer | +| **marketing** | 5 | content-creator, marketing-demand-acquisition, social-media-analyzer | +| **product** | 5 | product-manager-toolkit, agile-product-owner, ui-design-system | +| **project-management** | 1 | scrum-master-agent | +| **ra-qm** | 12 | regulatory-affairs-head, quality-manager-qms-iso13485, gdpr-dsgvo-expert | + +See `.codex/skills-index.json` for the complete manifest with descriptions. + +--- + ## Advanced: Installation Locations Reference | Agent | Default Location | Flag | Notes | @@ -615,7 +733,7 @@ rm -rf .cursor/skills/fullstack-engineer/ | **VS Code/Copilot** | `.github/skills/` | `--agent vscode` | Project-level installation | | **Goose** | `~/.config/goose/skills/` | `--agent goose` | User-level installation | | **Amp** | Platform-specific | `--agent amp` | Varies by platform | -| **Codex** | Platform-specific | `--agent codex` | Varies by platform | +| **Codex** | `~/.codex/skills/` | `--agent codex` | User-level installation | | **Letta** | Platform-specific | `--agent letta` | Varies by platform | | **OpenCode** | Platform-specific | `--agent opencode` | Varies by platform | | **Project** | `.skills/` | `--agent project` | Portable, project-specific | diff --git a/README.md b/README.md index 0fdef8a..68c47a6 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ ## ⚡ Quick Install -**Two installation methods available** - choose based on your needs: +**Choose your AI agent:** ### Method 1: Claude Code Native (Recommended for Claude Code users) @@ -44,7 +44,35 @@ Use Claude Code's built-in plugin system for native integration: --- -### Method 2: Universal Installer (Works across all agents) +### Method 2: OpenAI Codex Installation + +For OpenAI Codex users, install via universal installer or direct script: + +```bash +# Option A: Universal installer +npx ai-agent-skills install alirezarezvani/claude-skills --agent codex + +# Option B: Direct installation script +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills +./scripts/codex-install.sh + +# Option C: Install specific category or skill +./scripts/codex-install.sh --category engineering +./scripts/codex-install.sh --skill content-creator +``` + +**Benefits:** +- ✅ Full Codex compatibility via `.codex/skills/` symlinks +- ✅ 43 skills with YAML frontmatter metadata +- ✅ Cross-platform scripts (Unix + Windows) +- ✅ Skills available in `~/.codex/skills/` + +**See:** [How to Use with OpenAI Codex](#-how-to-use-with-openai-codex) for detailed guide. + +--- + +### Method 3: Universal Installer (Works across all agents) Install to Claude Code, Cursor, VS Code, Amp, Goose, and more - all with one command: @@ -70,13 +98,14 @@ npx ai-agent-skills install alirezarezvani/claude-skills --dry-run - ✅ One command installs to all agents - ✅ No agent-specific configuration needed -**Supported Agents:** Claude Code, Cursor, VS Code, Copilot, Goose, Amp, Codex, Letta, OpenCode +**Supported Agents:** Claude Code, Cursor, VS Code, Copilot, Goose, Amp, OpenAI Codex, Letta, OpenCode **Installation Locations:** - Claude Code: `~/.claude/skills/` - Cursor: `.cursor/skills/` - VS Code/Copilot: `.github/skills/` - Goose: `~/.config/goose/skills/` +- OpenAI Codex: `~/.codex/skills/` - Project-specific: `.skills/` --- @@ -87,12 +116,13 @@ npx ai-agent-skills install alirezarezvani/claude-skills --dry-run ## 📚 Table of Contents -- [Quick Install (Universal Installer)](#-quick-install-universal-installer) +- [Quick Install](#-quick-install) - [Overview](#-overview) - [Available Skills](#-available-skills) - [Quick Start](#-quick-start) - [How to Use with Claude AI](#-how-to-use-with-claude-ai) - [How to Use with Claude Code](#-how-to-use-with-claude-code) +- [How to Use with OpenAI Codex](#-how-to-use-with-openai-codex) - [Skill Architecture](#-skill-architecture) - [Installation](#-installation) - [Usage Examples](#-usage-examples) @@ -1413,6 +1443,126 @@ See [CLAUDE.md](CLAUDE.md) for detailed architecture and development guidelines. --- +## 🤖 How to Use with OpenAI Codex + +OpenAI Codex users can install and use these skills through the `.codex/skills/` directory, which provides Codex-compatible skill discovery. + +### Quick Installation + +**Option 1: Universal Installer (Recommended)** + +```bash +# Install all 43 skills to Codex +npx ai-agent-skills install alirezarezvani/claude-skills --agent codex + +# Verify installation +ls ~/.codex/skills/ +``` + +**Option 2: Direct Installation Script** + +```bash +# Clone and install +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills +./scripts/codex-install.sh + +# Or install specific category +./scripts/codex-install.sh --category marketing +./scripts/codex-install.sh --category engineering + +# Or install single skill +./scripts/codex-install.sh --skill content-creator +``` + +**Option 3: Manual Installation** + +```bash +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills +mkdir -p ~/.codex/skills +cp -rL .codex/skills/* ~/.codex/skills/ +``` + +### Using Skills in Codex + +Once installed, skills are available at `~/.codex/skills/`. Each skill contains: + +``` +~/.codex/skills/ +├── content-creator/ +│ ├── SKILL.md # Main documentation +│ ├── scripts/ # Python CLI tools +│ ├── references/ # Knowledge bases +│ └── assets/ # Templates +├── senior-fullstack/ +├── product-manager-toolkit/ +└── ... (43 skills total) +``` + +### Available Skills by Category + +| Category | Count | Key Skills | +|----------|-------|------------| +| **Marketing** | 5 | content-creator, marketing-demand-acquisition, app-store-optimization | +| **Engineering** | 18 | senior-fullstack, aws-solution-architect, senior-ml-engineer, tdd-guide | +| **Product** | 5 | product-manager-toolkit, agile-product-owner, ux-researcher-designer | +| **C-Level** | 2 | ceo-advisor, cto-advisor | +| **Project Management** | 1 | scrum-master-agent | +| **RA/QM** | 12 | regulatory-affairs-head, quality-manager-qms-iso13485, gdpr-dsgvo-expert | + +### Running Python Analysis Tools + +```bash +# Brand voice analysis +python ~/.codex/skills/content-creator/scripts/brand_voice_analyzer.py article.txt + +# SEO optimization +python ~/.codex/skills/content-creator/scripts/seo_optimizer.py blog.md "target keyword" + +# Tech debt analysis +python ~/.codex/skills/cto-advisor/scripts/tech_debt_analyzer.py /path/to/codebase + +# RICE prioritization +python ~/.codex/skills/product-manager-toolkit/scripts/rice_prioritizer.py features.csv +``` + +### Skills Index + +The `.codex/skills-index.json` manifest provides metadata for all skills: + +```bash +# View skills index +cat ~/.codex/skills-index.json | python -m json.tool + +# Or from the repository +cat .codex/skills-index.json +``` + +### Windows Installation + +```cmd +git clone https://github.com/alirezarezvani/claude-skills.git +cd claude-skills +scripts\codex-install.bat + +REM Or install single skill +scripts\codex-install.bat --skill content-creator +``` + +### Keeping Skills Updated + +```bash +# Update from repository +cd claude-skills +git pull +./scripts/codex-install.sh +``` + +**Detailed Installation Guide:** See [INSTALLATION.md](INSTALLATION.md#openai-codex-installation) for complete instructions, troubleshooting, and category-specific installation. + +--- + ## 🏗️ Skill Architecture Each skill package follows a consistent, modular structure: diff --git a/scripts/codex-install.bat b/scripts/codex-install.bat new file mode 100644 index 0000000..7989f2e --- /dev/null +++ b/scripts/codex-install.bat @@ -0,0 +1,175 @@ +@echo off +REM +REM Codex Installation Script for Claude Skills Library (Windows) +REM +REM Installs skills from this repository to your local Codex skills directory. +REM Uses direct copy (no symlinks) for Windows compatibility. +REM +REM Usage: +REM scripts\codex-install.bat [--all | --skill ] +REM +REM Options: +REM --all Install all skills (default) +REM --skill Install a single skill by name +REM --list List available skills +REM --help Show this help message +REM + +setlocal enabledelayedexpansion + +REM Configuration +set "CODEX_SKILLS_DIR=%USERPROFILE%\.codex\skills" +set "SCRIPT_DIR=%~dp0" +set "REPO_ROOT=%SCRIPT_DIR%.." +set "CODEX_SKILLS_SRC=%REPO_ROOT%\.codex\skills" +set "CODEX_INDEX=%REPO_ROOT%\.codex\skills-index.json" + +REM Check for help +if "%1"=="--help" goto :show_help +if "%1"=="-h" goto :show_help + +REM Check prerequisites +if not exist "%CODEX_SKILLS_SRC%" ( + echo [ERROR] Codex skills directory not found: %CODEX_SKILLS_SRC% + echo [INFO] Run 'python scripts\sync-codex-skills.py' first to generate structure. + exit /b 1 +) + +REM Parse arguments +set "MODE=all" +set "TARGET=" + +:parse_args +if "%1"=="" goto :run_mode +if "%1"=="--all" ( + set "MODE=all" + shift + goto :parse_args +) +if "%1"=="--skill" ( + set "MODE=skill" + set "TARGET=%2" + shift + shift + goto :parse_args +) +if "%1"=="--list" ( + set "MODE=list" + shift + goto :parse_args +) +echo [ERROR] Unknown option: %1 +goto :show_help + +:run_mode +echo. +echo ======================================== +echo Claude Skills - Codex Installer +echo (Windows Version) +echo ======================================== +echo. + +if "%MODE%"=="list" goto :list_skills +if "%MODE%"=="skill" goto :install_skill +if "%MODE%"=="all" goto :install_all +goto :end + +:list_skills +echo Available skills: +echo. +for /d %%i in ("%CODEX_SKILLS_SRC%\*") do ( + if exist "%%i\SKILL.md" ( + echo - %%~ni + ) +) +goto :end + +:install_skill +if "%TARGET%"=="" ( + echo [ERROR] Skill name required + exit /b 1 +) + +set "SKILL_SRC=%CODEX_SKILLS_SRC%\%TARGET%" +set "SKILL_DEST=%CODEX_SKILLS_DIR%\%TARGET%" + +if not exist "%SKILL_SRC%" ( + echo [ERROR] Skill not found: %TARGET% + exit /b 1 +) + +if not exist "%SKILL_SRC%\SKILL.md" ( + echo [ERROR] Invalid skill (no SKILL.md): %TARGET% + exit /b 1 +) + +echo [INFO] Installing skill: %TARGET% + +REM Create destination directory +if not exist "%CODEX_SKILLS_DIR%" mkdir "%CODEX_SKILLS_DIR%" + +REM Remove existing +if exist "%SKILL_DEST%" rmdir /s /q "%SKILL_DEST%" + +REM Copy skill +xcopy /e /i /q "%SKILL_SRC%" "%SKILL_DEST%" + +echo [SUCCESS] Installed: %TARGET% +goto :end + +:install_all +echo [INFO] Installing all skills to: %CODEX_SKILLS_DIR% +echo. + +set "INSTALLED=0" +set "FAILED=0" + +if not exist "%CODEX_SKILLS_DIR%" mkdir "%CODEX_SKILLS_DIR%" + +for /d %%i in ("%CODEX_SKILLS_SRC%\*") do ( + if exist "%%i\SKILL.md" ( + set "SKILL_NAME=%%~ni" + set "SKILL_DEST=%CODEX_SKILLS_DIR%\%%~ni" + + echo [INFO] Installing: %%~ni + + if exist "!SKILL_DEST!" rmdir /s /q "!SKILL_DEST!" + + xcopy /e /i /q "%%i" "!SKILL_DEST!" >nul + + if errorlevel 1 ( + echo [ERROR] Failed to install: %%~ni + set /a FAILED+=1 + ) else ( + set /a INSTALLED+=1 + ) + ) +) + +echo. +echo [INFO] Installation complete: !INSTALLED! installed, !FAILED! failed +echo. +echo [SUCCESS] Skills installed to: %CODEX_SKILLS_DIR% +goto :end + +:show_help +echo. +echo Codex Installation Script for Claude Skills Library (Windows) +echo. +echo Usage: +echo scripts\codex-install.bat [--all ^| --skill ^] +echo. +echo Options: +echo --all Install all skills (default) +echo --skill ^ Install a single skill by name +echo --list List available skills +echo --help Show this help message +echo. +echo Examples: +echo scripts\codex-install.bat +echo scripts\codex-install.bat --skill content-creator +echo scripts\codex-install.bat --list +goto :end + +:end +endlocal diff --git a/scripts/codex-install.sh b/scripts/codex-install.sh new file mode 100755 index 0000000..2aecc78 --- /dev/null +++ b/scripts/codex-install.sh @@ -0,0 +1,313 @@ +#!/bin/bash +# +# Codex Installation Script for Claude Skills Library +# +# Installs skills from this repository to your local Codex skills directory. +# Follows symlinks to copy actual skill contents. +# +# Usage: +# ./scripts/codex-install.sh [--all | --category | --skill ] +# +# Options: +# --all Install all skills (default) +# --category Install skills from a specific category +# --skill Install a single skill by name +# --list List available skills and categories +# --dry-run Show what would be installed without making changes +# --help Show this help message +# +# Examples: +# ./scripts/codex-install.sh # Install all skills +# ./scripts/codex-install.sh --category marketing +# ./scripts/codex-install.sh --skill content-creator +# ./scripts/codex-install.sh --list +# + +set -e + +# Configuration +CODEX_SKILLS_DIR="${CODEX_SKILLS_DIR:-$HOME/.codex/skills}" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(dirname "$SCRIPT_DIR")" +CODEX_SKILLS_SRC="$REPO_ROOT/.codex/skills" +CODEX_INDEX="$REPO_ROOT/.codex/skills-index.json" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Print colored output +print_info() { + echo -e "${BLUE}[INFO]${NC} $1" +} + +print_success() { + echo -e "${GREEN}[SUCCESS]${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}[WARNING]${NC} $1" +} + +print_error() { + echo -e "${RED}[ERROR]${NC} $1" +} + +# Show help +show_help() { + head -35 "$0" | tail -30 + exit 0 +} + +# Check prerequisites +check_prerequisites() { + if [[ ! -d "$CODEX_SKILLS_SRC" ]]; then + print_error "Codex skills directory not found: $CODEX_SKILLS_SRC" + print_info "Run 'python scripts/sync-codex-skills.py' first to generate symlinks." + exit 1 + fi + + if [[ ! -f "$CODEX_INDEX" ]]; then + print_warning "skills-index.json not found. Some features may be limited." + fi +} + +# List available skills +list_skills() { + print_info "Available skills in $CODEX_SKILLS_SRC:" + echo "" + + if [[ -f "$CODEX_INDEX" ]] && command -v python3 &> /dev/null; then + # Use Python to parse JSON and display nicely + python3 << 'EOF' +import json +import sys + +try: + with open('$CODEX_INDEX'.replace('$CODEX_INDEX', '''$CODEX_INDEX'''), 'r') as f: + index = json.load(f) + + print("Categories:") + print("-" * 50) + for cat, info in index.get('categories', {}).items(): + print(f" {cat}: {info['count']} skills") + + print() + print("Skills by category:") + print("-" * 50) + + current_cat = None + for skill in index.get('skills', []): + if skill['category'] != current_cat: + current_cat = skill['category'] + print(f"\n [{current_cat}]") + print(f" - {skill['name']}: {skill['description'][:60]}...") + +except Exception as e: + print(f"Error parsing index: {e}") + sys.exit(1) +EOF + else + # Fallback to simple listing + for skill in "$CODEX_SKILLS_SRC"/*; do + if [[ -L "$skill" ]] && [[ -e "$skill/SKILL.md" ]]; then + echo " - $(basename "$skill")" + fi + done + fi + + exit 0 +} + +# Install a single skill +install_skill() { + local skill_name="$1" + local dry_run="$2" + local skill_src="$CODEX_SKILLS_SRC/$skill_name" + local skill_dest="$CODEX_SKILLS_DIR/$skill_name" + + # Check if skill exists + if [[ ! -e "$skill_src" ]]; then + print_error "Skill not found: $skill_name" + return 1 + fi + + # Check if it's a valid skill (has SKILL.md) + if [[ ! -e "$skill_src/SKILL.md" ]]; then + print_error "Invalid skill (no SKILL.md): $skill_name" + return 1 + fi + + if [[ "$dry_run" == "true" ]]; then + print_info "[DRY RUN] Would install: $skill_name -> $skill_dest" + return 0 + fi + + # Create destination directory + mkdir -p "$CODEX_SKILLS_DIR" + + # Remove existing installation + if [[ -e "$skill_dest" ]]; then + print_info "Updating existing skill: $skill_name" + rm -rf "$skill_dest" + fi + + # Copy skill (following symlinks with -L) + cp -rL "$skill_src" "$skill_dest" + + print_success "Installed: $skill_name" + return 0 +} + +# Install skills by category +install_category() { + local category="$1" + local dry_run="$2" + local installed=0 + local failed=0 + + if [[ ! -f "$CODEX_INDEX" ]]; then + print_error "skills-index.json required for category installation" + exit 1 + fi + + print_info "Installing skills from category: $category" + + # Get skills for this category from index + local skills + skills=$(python3 -c " +import json +with open('$CODEX_INDEX', 'r') as f: + index = json.load(f) +for skill in index.get('skills', []): + if skill['category'] == '$category': + print(skill['name']) +") + + if [[ -z "$skills" ]]; then + print_error "No skills found for category: $category" + exit 1 + fi + + while IFS= read -r skill; do + if install_skill "$skill" "$dry_run"; then + ((installed++)) + else + ((failed++)) + fi + done <<< "$skills" + + echo "" + print_info "Category '$category' complete: $installed installed, $failed failed" +} + +# Install all skills +install_all() { + local dry_run="$1" + local installed=0 + local failed=0 + + print_info "Installing all skills to: $CODEX_SKILLS_DIR" + echo "" + + for skill in "$CODEX_SKILLS_SRC"/*; do + if [[ -L "$skill" ]] || [[ -d "$skill" ]]; then + local skill_name + skill_name=$(basename "$skill") + + if install_skill "$skill_name" "$dry_run"; then + ((installed++)) + else + ((failed++)) + fi + fi + done + + echo "" + print_info "Installation complete: $installed installed, $failed failed" + + if [[ "$dry_run" != "true" ]]; then + echo "" + print_success "Skills installed to: $CODEX_SKILLS_DIR" + print_info "Verify with: ls $CODEX_SKILLS_DIR" + fi +} + +# Main +main() { + local mode="all" + local target="" + local dry_run="false" + + # Parse arguments + while [[ $# -gt 0 ]]; do + case $1 in + --all) + mode="all" + shift + ;; + --category) + mode="category" + target="$2" + shift 2 + ;; + --skill) + mode="skill" + target="$2" + shift 2 + ;; + --list) + mode="list" + shift + ;; + --dry-run) + dry_run="true" + shift + ;; + --help|-h) + show_help + ;; + *) + print_error "Unknown option: $1" + show_help + ;; + esac + done + + # Banner + echo "" + echo "========================================" + echo " Claude Skills - Codex Installer" + echo "========================================" + echo "" + + check_prerequisites + + case $mode in + list) + list_skills + ;; + skill) + if [[ -z "$target" ]]; then + print_error "Skill name required" + exit 1 + fi + install_skill "$target" "$dry_run" + ;; + category) + if [[ -z "$target" ]]; then + print_error "Category name required" + exit 1 + fi + install_category "$target" "$dry_run" + ;; + all) + install_all "$dry_run" + ;; + esac +} + +main "$@" diff --git a/scripts/sync-codex-skills.py b/scripts/sync-codex-skills.py new file mode 100644 index 0000000..7d85881 --- /dev/null +++ b/scripts/sync-codex-skills.py @@ -0,0 +1,387 @@ +#!/usr/bin/env python3 +""" +Sync Codex Skills - Generate symlinks and index for OpenAI Codex compatibility. + +This script scans all domain folders for SKILL.md files and creates: +1. Symlinks in .codex/skills/ directory +2. skills-index.json manifest for tooling + +Usage: + python scripts/sync-codex-skills.py [--dry-run] [--verbose] +""" + +import argparse +import json +import os +import sys +from pathlib import Path +from typing import Dict, List, Optional + + +# Skill domain configuration +SKILL_DOMAINS = { + "marketing-skill": { + "category": "marketing", + "description": "Marketing, content, and demand generation skills" + }, + "engineering-team": { + "category": "engineering", + "description": "Software engineering and technical skills" + }, + "product-team": { + "category": "product", + "description": "Product management and design skills" + }, + "c-level-advisor": { + "category": "c-level", + "description": "Executive leadership and advisory skills" + }, + "project-management": { + "category": "project-management", + "description": "Project management and Atlassian skills" + }, + "ra-qm-team": { + "category": "ra-qm", + "description": "Regulatory affairs and quality management skills" + } +} + + +def find_skills(repo_root: Path) -> List[Dict]: + """ + Scan repository for all skills (folders containing SKILL.md). + + Returns list of skill dictionaries with metadata. + """ + skills = [] + + for domain_dir, domain_info in SKILL_DOMAINS.items(): + domain_path = repo_root / domain_dir + + if not domain_path.exists(): + continue + + # Find all subdirectories with SKILL.md + for skill_path in domain_path.iterdir(): + if not skill_path.is_dir(): + continue + + skill_md = skill_path / "SKILL.md" + if not skill_md.exists(): + continue + + # Extract skill name and description from SKILL.md + skill_name = skill_path.name + description = extract_skill_description(skill_md) + + # Calculate relative path from .codex/skills/ to skill folder + relative_path = f"../../{domain_dir}/{skill_name}" + + skills.append({ + "name": skill_name, + "source": relative_path, + "source_absolute": str(skill_path.relative_to(repo_root)), + "category": domain_info["category"], + "description": description or f"Skill from {domain_dir}" + }) + + # Sort by category then name for consistent output + skills.sort(key=lambda s: (s["category"], s["name"])) + + return skills + + +def extract_skill_description(skill_md_path: Path) -> Optional[str]: + """ + Extract description from SKILL.md YAML frontmatter. + + Looks for: + --- + name: ... + description: ... + --- + """ + try: + content = skill_md_path.read_text(encoding="utf-8") + + # Check for YAML frontmatter + if not content.startswith("---"): + return None + + # Find end of frontmatter + end_idx = content.find("---", 3) + if end_idx == -1: + return None + + frontmatter = content[3:end_idx] + + # Simple extraction without YAML parser dependency + for line in frontmatter.split("\n"): + line = line.strip() + if line.startswith("description:"): + desc = line[len("description:"):].strip() + # Remove quotes if present + if desc.startswith('"') and desc.endswith('"'): + desc = desc[1:-1] + elif desc.startswith("'") and desc.endswith("'"): + desc = desc[1:-1] + return desc + + return None + + except Exception: + return None + + +def create_symlinks(repo_root: Path, skills: List[Dict], dry_run: bool = False, verbose: bool = False) -> Dict: + """ + Create symlinks in .codex/skills/ directory. + + Returns summary of operations. + """ + codex_skills_dir = repo_root / ".codex" / "skills" + + created = [] + updated = [] + unchanged = [] + errors = [] + + if not dry_run: + codex_skills_dir.mkdir(parents=True, exist_ok=True) + + for skill in skills: + symlink_path = codex_skills_dir / skill["name"] + target = skill["source"] + + try: + if symlink_path.is_symlink(): + current_target = os.readlink(symlink_path) + if current_target == target: + unchanged.append(skill["name"]) + if verbose: + print(f" [UNCHANGED] {skill['name']} -> {target}") + else: + if not dry_run: + symlink_path.unlink() + symlink_path.symlink_to(target) + updated.append(skill["name"]) + if verbose: + print(f" [UPDATED] {skill['name']} -> {target} (was: {current_target})") + elif symlink_path.exists(): + errors.append(f"{skill['name']}: path exists but is not a symlink") + if verbose: + print(f" [ERROR] {skill['name']}: path exists but is not a symlink") + else: + if not dry_run: + symlink_path.symlink_to(target) + created.append(skill["name"]) + if verbose: + print(f" [CREATED] {skill['name']} -> {target}") + + except Exception as e: + errors.append(f"{skill['name']}: {str(e)}") + if verbose: + print(f" [ERROR] {skill['name']}: {str(e)}") + + return { + "created": created, + "updated": updated, + "unchanged": unchanged, + "errors": errors + } + + +def generate_skills_index(repo_root: Path, skills: List[Dict], dry_run: bool = False) -> Dict: + """ + Generate .codex/skills-index.json manifest. + + Returns the index data. + """ + # Calculate category counts + categories = {} + for skill in skills: + cat = skill["category"] + if cat not in categories: + # Find domain info + for domain_dir, domain_info in SKILL_DOMAINS.items(): + if domain_info["category"] == cat: + categories[cat] = { + "count": 0, + "source": f"../../{domain_dir}", + "description": domain_info["description"] + } + break + if cat in categories: + categories[cat]["count"] += 1 + + # Build index + index = { + "version": "1.0.0", + "name": "claude-code-skills", + "description": "Production-ready skill packages for AI agents - Marketing, Engineering, Product, C-Level, PM, and RA/QM", + "repository": "https://github.com/alirezarezvani/claude-skills", + "total_skills": len(skills), + "skills": [ + { + "name": s["name"], + "source": s["source"], + "category": s["category"], + "description": s["description"] + } + for s in skills + ], + "categories": categories + } + + if not dry_run: + index_path = repo_root / ".codex" / "skills-index.json" + index_path.parent.mkdir(parents=True, exist_ok=True) + index_path.write_text(json.dumps(index, indent=2) + "\n", encoding="utf-8") + + return index + + +def validate_symlinks(repo_root: Path, skills: List[Dict]) -> List[str]: + """ + Validate that all symlinks resolve to valid SKILL.md files. + + Returns list of broken symlinks. + """ + broken = [] + codex_skills_dir = repo_root / ".codex" / "skills" + + for skill in skills: + symlink_path = codex_skills_dir / skill["name"] + + if not symlink_path.exists(): + broken.append(f"{skill['name']}: symlink does not exist") + continue + + skill_md = symlink_path / "SKILL.md" + if not skill_md.exists(): + broken.append(f"{skill['name']}: SKILL.md not found through symlink") + + return broken + + +def main(): + parser = argparse.ArgumentParser( + description="Sync Codex skills symlinks and generate index" + ) + parser.add_argument( + "--dry-run", "-n", + action="store_true", + help="Show what would be done without making changes" + ) + parser.add_argument( + "--verbose", "-v", + action="store_true", + help="Show detailed output" + ) + parser.add_argument( + "--validate", + action="store_true", + help="Validate symlinks after sync" + ) + parser.add_argument( + "--json", + action="store_true", + help="Output results as JSON" + ) + + args = parser.parse_args() + + # Find repository root (where this script lives in scripts/) + script_path = Path(__file__).resolve() + repo_root = script_path.parent.parent + + if args.verbose and not args.json: + print(f"Repository root: {repo_root}") + print(f"Scanning for skills...") + + # Find all skills + skills = find_skills(repo_root) + + if not skills: + if args.json: + print(json.dumps({"error": "No skills found"}, indent=2)) + else: + print("No skills found in repository") + sys.exit(1) + + if args.verbose and not args.json: + print(f"Found {len(skills)} skills across {len(set(s['category'] for s in skills))} categories") + print() + + # Create symlinks + if not args.json: + mode = "[DRY RUN] " if args.dry_run else "" + print(f"{mode}Creating symlinks in .codex/skills/...") + + symlink_results = create_symlinks(repo_root, skills, args.dry_run, args.verbose) + + # Generate index + if not args.json: + print(f"{mode}Generating .codex/skills-index.json...") + + index = generate_skills_index(repo_root, skills, args.dry_run) + + # Validate if requested + validation_errors = [] + if args.validate and not args.dry_run: + if not args.json: + print("Validating symlinks...") + validation_errors = validate_symlinks(repo_root, skills) + + # Output results + if args.json: + output = { + "dry_run": args.dry_run, + "total_skills": len(skills), + "symlinks": symlink_results, + "index_generated": not args.dry_run, + "validation_errors": validation_errors if args.validate else None + } + print(json.dumps(output, indent=2)) + else: + print() + print("=" * 50) + print("SUMMARY") + print("=" * 50) + print(f"Total skills: {len(skills)}") + print(f"Symlinks created: {len(symlink_results['created'])}") + print(f"Symlinks updated: {len(symlink_results['updated'])}") + print(f"Symlinks unchanged: {len(symlink_results['unchanged'])}") + + if symlink_results['errors']: + print(f"Errors: {len(symlink_results['errors'])}") + for err in symlink_results['errors']: + print(f" - {err}") + + if validation_errors: + print(f"Validation errors: {len(validation_errors)}") + for err in validation_errors: + print(f" - {err}") + + print() + print("Categories:") + for cat, info in index["categories"].items(): + print(f" {cat}: {info['count']} skills") + + if args.dry_run: + print() + print("No changes made (dry run mode)") + else: + print() + print(f"Index written to: .codex/skills-index.json") + print(f"Symlinks created in: .codex/skills/") + + # Exit with error if there were issues + if symlink_results['errors'] or validation_errors: + sys.exit(1) + + sys.exit(0) + + +if __name__ == "__main__": + main()