@takuma-hirai/hirai-method 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/.stale-harness-state/last-check +0 -0
- package/.claude/CommonRules.md +121 -0
- package/.claude/agents/01-core-development/api-designer.md +237 -0
- package/.claude/agents/01-core-development/backend-developer.md +222 -0
- package/.claude/agents/01-core-development/design-bridge.md +127 -0
- package/.claude/agents/01-core-development/electron-pro.md +240 -0
- package/.claude/agents/01-core-development/frontend-developer.md +133 -0
- package/.claude/agents/01-core-development/fullstack-developer.md +235 -0
- package/.claude/agents/01-core-development/graphql-architect.md +238 -0
- package/.claude/agents/01-core-development/microservices-architect.md +239 -0
- package/.claude/agents/01-core-development/mobile-developer.md +283 -0
- package/.claude/agents/01-core-development/ui-designer.md +174 -0
- package/.claude/agents/01-core-development/websocket-engineer.md +150 -0
- package/.claude/agents/03-infrastructure/azure-infra-engineer.md +53 -0
- package/.claude/agents/03-infrastructure/cloud-architect.md +277 -0
- package/.claude/agents/03-infrastructure/database-administrator.md +287 -0
- package/.claude/agents/03-infrastructure/deployment-engineer.md +287 -0
- package/.claude/agents/03-infrastructure/devops-engineer.md +287 -0
- package/.claude/agents/03-infrastructure/devops-incident-responder.md +287 -0
- package/.claude/agents/03-infrastructure/docker-expert.md +278 -0
- package/.claude/agents/03-infrastructure/incident-responder.md +287 -0
- package/.claude/agents/03-infrastructure/kubernetes-specialist.md +287 -0
- package/.claude/agents/03-infrastructure/network-engineer.md +287 -0
- package/.claude/agents/03-infrastructure/platform-engineer.md +287 -0
- package/.claude/agents/03-infrastructure/security-engineer.md +277 -0
- package/.claude/agents/03-infrastructure/sre-engineer.md +287 -0
- package/.claude/agents/03-infrastructure/terraform-engineer.md +287 -0
- package/.claude/agents/03-infrastructure/terragrunt-expert.md +307 -0
- package/.claude/agents/03-infrastructure/windows-infra-admin.md +52 -0
- package/.claude/agents/04-quality-security/accessibility-tester.md +277 -0
- package/.claude/agents/04-quality-security/ad-security-reviewer.md +56 -0
- package/.claude/agents/04-quality-security/ai-writing-auditor.md +77 -0
- package/.claude/agents/04-quality-security/architect-reviewer.md +287 -0
- package/.claude/agents/04-quality-security/chaos-engineer.md +277 -0
- package/.claude/agents/04-quality-security/code-reviewer.md +287 -0
- package/.claude/agents/04-quality-security/compliance-auditor.md +277 -0
- package/.claude/agents/04-quality-security/debugger.md +287 -0
- package/.claude/agents/04-quality-security/error-detective.md +287 -0
- package/.claude/agents/04-quality-security/penetration-tester.md +287 -0
- package/.claude/agents/04-quality-security/performance-engineer.md +287 -0
- package/.claude/agents/04-quality-security/powershell-security-hardening.md +54 -0
- package/.claude/agents/04-quality-security/qa-expert.md +287 -0
- package/.claude/agents/04-quality-security/security-auditor.md +287 -0
- package/.claude/agents/04-quality-security/test-automator.md +287 -0
- package/.claude/agents/04-quality-security/ui-ux-tester.md +234 -0
- package/.claude/agents/06-developer-experience/build-engineer.md +286 -0
- package/.claude/agents/06-developer-experience/cli-developer.md +286 -0
- package/.claude/agents/06-developer-experience/dependency-manager.md +286 -0
- package/.claude/agents/06-developer-experience/documentation-engineer.md +276 -0
- package/.claude/agents/06-developer-experience/dx-optimizer.md +286 -0
- package/.claude/agents/06-developer-experience/git-workflow-manager.md +286 -0
- package/.claude/agents/06-developer-experience/legacy-modernizer.md +286 -0
- package/.claude/agents/06-developer-experience/mcp-developer.md +275 -0
- package/.claude/agents/06-developer-experience/powershell-module-architect.md +58 -0
- package/.claude/agents/06-developer-experience/powershell-ui-architect.md +135 -0
- package/.claude/agents/06-developer-experience/readme-generator.md +238 -0
- package/.claude/agents/06-developer-experience/refactoring-specialist.md +286 -0
- package/.claude/agents/06-developer-experience/slack-expert.md +232 -0
- package/.claude/agents/06-developer-experience/tooling-engineer.md +286 -0
- package/.claude/agents/09-meta-orchestration/agent-installer.md +97 -0
- package/.claude/agents/09-meta-orchestration/agent-organizer.md +287 -0
- package/.claude/agents/09-meta-orchestration/codebase-orchestrator.md +249 -0
- package/.claude/agents/09-meta-orchestration/context-manager.md +287 -0
- package/.claude/agents/09-meta-orchestration/error-coordinator.md +287 -0
- package/.claude/agents/09-meta-orchestration/it-ops-orchestrator.md +60 -0
- package/.claude/agents/09-meta-orchestration/knowledge-synthesizer.md +287 -0
- package/.claude/agents/09-meta-orchestration/multi-agent-coordinator.md +287 -0
- package/.claude/agents/09-meta-orchestration/performance-monitor.md +287 -0
- package/.claude/agents/09-meta-orchestration/task-distributor.md +287 -0
- package/.claude/agents/09-meta-orchestration/workflow-orchestrator.md +287 -0
- package/.claude/agents/10-research-analysis/competitive-analyst.md +287 -0
- package/.claude/agents/10-research-analysis/data-researcher.md +287 -0
- package/.claude/agents/10-research-analysis/market-researcher.md +287 -0
- package/.claude/agents/10-research-analysis/project-idea-validator.md +269 -0
- package/.claude/agents/10-research-analysis/research-analyst.md +287 -0
- package/.claude/agents/10-research-analysis/scientific-literature-researcher.md +151 -0
- package/.claude/agents/10-research-analysis/search-specialist.md +287 -0
- package/.claude/agents/10-research-analysis/trend-analyst.md +287 -0
- package/.claude/archive/README.md +47 -0
- package/.claude/archive/agents/02-language-specialists/angular-architect.md +287 -0
- package/.claude/archive/agents/02-language-specialists/cpp-pro.md +277 -0
- package/.claude/archive/agents/02-language-specialists/csharp-developer.md +287 -0
- package/.claude/archive/agents/02-language-specialists/django-developer.md +287 -0
- package/.claude/archive/agents/02-language-specialists/dotnet-core-expert.md +287 -0
- package/.claude/archive/agents/02-language-specialists/dotnet-framework-4.8-expert.md +306 -0
- package/.claude/archive/agents/02-language-specialists/elixir-expert.md +311 -0
- package/.claude/archive/agents/02-language-specialists/expo-react-native-expert.md +268 -0
- package/.claude/archive/agents/02-language-specialists/fastapi-developer.md +287 -0
- package/.claude/archive/agents/02-language-specialists/flutter-expert.md +287 -0
- package/.claude/archive/agents/02-language-specialists/golang-pro.md +277 -0
- package/.claude/archive/agents/02-language-specialists/java-architect.md +287 -0
- package/.claude/archive/agents/02-language-specialists/javascript-pro.md +277 -0
- package/.claude/archive/agents/02-language-specialists/kotlin-specialist.md +287 -0
- package/.claude/archive/agents/02-language-specialists/laravel-specialist.md +287 -0
- package/.claude/archive/agents/02-language-specialists/nextjs-developer.md +287 -0
- package/.claude/archive/agents/02-language-specialists/node-specialist.md +124 -0
- package/.claude/archive/agents/02-language-specialists/php-pro.md +287 -0
- package/.claude/archive/agents/02-language-specialists/powershell-5.1-expert.md +59 -0
- package/.claude/archive/agents/02-language-specialists/powershell-7-expert.md +57 -0
- package/.claude/archive/agents/02-language-specialists/python-pro.md +277 -0
- package/.claude/archive/agents/02-language-specialists/rails-expert.md +358 -0
- package/.claude/archive/agents/02-language-specialists/react-specialist.md +287 -0
- package/.claude/archive/agents/02-language-specialists/rust-engineer.md +287 -0
- package/.claude/archive/agents/02-language-specialists/spring-boot-engineer.md +287 -0
- package/.claude/archive/agents/02-language-specialists/sql-pro.md +287 -0
- package/.claude/archive/agents/02-language-specialists/swift-expert.md +287 -0
- package/.claude/archive/agents/02-language-specialists/symfony-specialist.md +354 -0
- package/.claude/archive/agents/02-language-specialists/typescript-pro.md +277 -0
- package/.claude/archive/agents/02-language-specialists/vue-expert.md +287 -0
- package/.claude/archive/agents/05-data-ai/ai-engineer.md +287 -0
- package/.claude/archive/agents/05-data-ai/data-analyst.md +277 -0
- package/.claude/archive/agents/05-data-ai/data-engineer.md +287 -0
- package/.claude/archive/agents/05-data-ai/data-scientist.md +287 -0
- package/.claude/archive/agents/05-data-ai/database-optimizer.md +287 -0
- package/.claude/archive/agents/05-data-ai/llm-architect.md +287 -0
- package/.claude/archive/agents/05-data-ai/machine-learning-engineer.md +277 -0
- package/.claude/archive/agents/05-data-ai/ml-engineer.md +287 -0
- package/.claude/archive/agents/05-data-ai/mlops-engineer.md +287 -0
- package/.claude/archive/agents/05-data-ai/nlp-engineer.md +287 -0
- package/.claude/archive/agents/05-data-ai/postgres-pro.md +287 -0
- package/.claude/archive/agents/05-data-ai/prompt-engineer.md +287 -0
- package/.claude/archive/agents/05-data-ai/reinforcement-learning-engineer.md +277 -0
- package/.claude/archive/agents/07-specialized-domains/api-documenter.md +277 -0
- package/.claude/archive/agents/07-specialized-domains/blockchain-developer.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/embedded-systems.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/fintech-engineer.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/game-developer.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/healthcare-admin.md +199 -0
- package/.claude/archive/agents/07-specialized-domains/iot-engineer.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/m365-admin.md +48 -0
- package/.claude/archive/agents/07-specialized-domains/mobile-app-developer.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/payment-integration.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/quant-analyst.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/risk-manager.md +287 -0
- package/.claude/archive/agents/07-specialized-domains/seo-specialist.md +184 -0
- package/.claude/archive/agents/08-business-product/business-analyst.md +287 -0
- package/.claude/archive/agents/08-business-product/content-marketer.md +287 -0
- package/.claude/archive/agents/08-business-product/customer-success-manager.md +287 -0
- package/.claude/archive/agents/08-business-product/legal-advisor.md +287 -0
- package/.claude/archive/agents/08-business-product/license-engineer.md +295 -0
- package/.claude/archive/agents/08-business-product/product-manager.md +287 -0
- package/.claude/archive/agents/08-business-product/project-manager.md +287 -0
- package/.claude/archive/agents/08-business-product/sales-engineer.md +287 -0
- package/.claude/archive/agents/08-business-product/scrum-master.md +287 -0
- package/.claude/archive/agents/08-business-product/technical-writer.md +287 -0
- package/.claude/archive/agents/08-business-product/ux-researcher.md +287 -0
- package/.claude/archive/agents/08-business-product/wordpress-master.md +316 -0
- package/.claude/archive/skills/competitive-ads-extractor/SKILL.md +293 -0
- package/.claude/archive/skills/developer-growth-analysis/SKILL.md +322 -0
- package/.claude/archive/skills/document-docx/LICENSE.txt +30 -0
- package/.claude/archive/skills/document-docx/SKILL.md +197 -0
- package/.claude/archive/skills/document-docx/docx-js.md +350 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.claude/archive/skills/document-docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/pack.py +159 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/unpack.py +29 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/validate.py +69 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/validation/__init__.py +15 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/validation/base.py +951 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/validation/docx.py +274 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/validation/pptx.py +315 -0
- package/.claude/archive/skills/document-docx/ooxml/scripts/validation/redlining.py +279 -0
- package/.claude/archive/skills/document-docx/ooxml.md +610 -0
- package/.claude/archive/skills/document-docx/scripts/__init__.py +1 -0
- package/.claude/archive/skills/document-docx/scripts/document.py +1276 -0
- package/.claude/archive/skills/document-docx/scripts/templates/comments.xml +3 -0
- package/.claude/archive/skills/document-docx/scripts/templates/commentsExtended.xml +3 -0
- package/.claude/archive/skills/document-docx/scripts/templates/commentsExtensible.xml +3 -0
- package/.claude/archive/skills/document-docx/scripts/templates/commentsIds.xml +3 -0
- package/.claude/archive/skills/document-docx/scripts/templates/people.xml +3 -0
- package/.claude/archive/skills/document-docx/scripts/utilities.py +374 -0
- package/.claude/archive/skills/document-pdf/LICENSE.txt +30 -0
- package/.claude/archive/skills/document-pdf/SKILL.md +294 -0
- package/.claude/archive/skills/document-pdf/forms.md +205 -0
- package/.claude/archive/skills/document-pdf/reference.md +612 -0
- package/.claude/archive/skills/document-pdf/scripts/check_bounding_boxes.py +70 -0
- package/.claude/archive/skills/document-pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/.claude/archive/skills/document-pdf/scripts/check_fillable_fields.py +12 -0
- package/.claude/archive/skills/document-pdf/scripts/convert_pdf_to_images.py +35 -0
- package/.claude/archive/skills/document-pdf/scripts/create_validation_image.py +41 -0
- package/.claude/archive/skills/document-pdf/scripts/extract_form_field_info.py +152 -0
- package/.claude/archive/skills/document-pdf/scripts/fill_fillable_fields.py +114 -0
- package/.claude/archive/skills/document-pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/.claude/archive/skills/document-pptx/LICENSE.txt +30 -0
- package/.claude/archive/skills/document-pptx/SKILL.md +484 -0
- package/.claude/archive/skills/document-pptx/html2pptx.md +625 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.claude/archive/skills/document-pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/pack.py +159 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/unpack.py +29 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/validate.py +69 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/validation/base.py +951 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/validation/docx.py +274 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/.claude/archive/skills/document-pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/.claude/archive/skills/document-pptx/ooxml.md +427 -0
- package/.claude/archive/skills/document-pptx/scripts/html2pptx.js +979 -0
- package/.claude/archive/skills/document-pptx/scripts/inventory.py +1020 -0
- package/.claude/archive/skills/document-pptx/scripts/rearrange.py +231 -0
- package/.claude/archive/skills/document-pptx/scripts/replace.py +385 -0
- package/.claude/archive/skills/document-pptx/scripts/thumbnail.py +450 -0
- package/.claude/archive/skills/document-xlsx/LICENSE.txt +30 -0
- package/.claude/archive/skills/document-xlsx/SKILL.md +289 -0
- package/.claude/archive/skills/document-xlsx/recalc.py +178 -0
- package/.claude/archive/skills/image-enhancer/SKILL.md +99 -0
- package/.claude/archive/skills/meeting-insights-analyzer/SKILL.md +327 -0
- package/.claude/archive/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/.claude/archive/skills/slack-gif-creator/SKILL.md +646 -0
- package/.claude/archive/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/.claude/archive/skills/slack-gif-creator/core/easing.py +230 -0
- package/.claude/archive/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/.claude/archive/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/.claude/archive/skills/slack-gif-creator/core/typography.py +357 -0
- package/.claude/archive/skills/slack-gif-creator/core/validators.py +264 -0
- package/.claude/archive/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/.claude/archive/skills/slack-gif-creator/requirements.txt +4 -0
- package/.claude/archive/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/.claude/archive/skills/slack-gif-creator/templates/explode.py +331 -0
- package/.claude/archive/skills/slack-gif-creator/templates/fade.py +329 -0
- package/.claude/archive/skills/slack-gif-creator/templates/flip.py +291 -0
- package/.claude/archive/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/.claude/archive/skills/slack-gif-creator/templates/morph.py +329 -0
- package/.claude/archive/skills/slack-gif-creator/templates/move.py +293 -0
- package/.claude/archive/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/.claude/archive/skills/slack-gif-creator/templates/shake.py +127 -0
- package/.claude/archive/skills/slack-gif-creator/templates/slide.py +291 -0
- package/.claude/archive/skills/slack-gif-creator/templates/spin.py +269 -0
- package/.claude/archive/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/.claude/archive/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/.claude/archive/skills/twitter-algorithm-optimizer/SKILL.md +327 -0
- package/.claude/archive/skills/video-downloader/SKILL.md +99 -0
- package/.claude/archive/skills/video-downloader/scripts/download_video.py +145 -0
- package/.claude/bash-whitelist-requests/2026-05-28-grep-find-rg.md +68 -0
- package/.claude/bash-whitelist-requests/2026-06-01-readonly-filters.md +76 -0
- package/.claude/bash-whitelist.txt +124 -0
- package/.claude/commands/agent-introspect.md +89 -0
- package/.claude/commands/apply-rules.md +363 -0
- package/.claude/commands/approve-design.md +219 -0
- package/.claude/commands/approve-org-money.md +267 -0
- package/.claude/commands/build.md +234 -0
- package/.claude/commands/commit.md +97 -0
- package/.claude/commands/context-fetch.md +113 -0
- package/.claude/commands/create-tool.md +496 -0
- package/.claude/commands/design-review.md +138 -0
- package/.claude/commands/design.md +807 -0
- package/.claude/commands/discharge-byproduct.md +208 -0
- package/.claude/commands/doc-review.md +165 -0
- package/.claude/commands/document-pair.md +76 -0
- package/.claude/commands/error-triage.md +435 -0
- package/.claude/commands/eval.md +70 -0
- package/.claude/commands/evolve.md +49 -0
- package/.claude/commands/finish-task.md +105 -0
- package/.claude/commands/gan-build.md +91 -0
- package/.claude/commands/gan-design.md +82 -0
- package/.claude/commands/gate-bypass.md +77 -0
- package/.claude/commands/gate-clear.md +45 -0
- package/.claude/commands/gate-status.md +46 -0
- package/.claude/commands/harness-audit.md +151 -0
- package/.claude/commands/hearing.md +138 -0
- package/.claude/commands/impact-check.md +486 -0
- package/.claude/commands/init-tasks.md +49 -0
- package/.claude/commands/instinct-export.md +47 -0
- package/.claude/commands/instinct-import.md +41 -0
- package/.claude/commands/instinct-status.md +43 -0
- package/.claude/commands/investigate.md +547 -0
- package/.claude/commands/learn.md +55 -0
- package/.claude/commands/lint-rules.md +400 -0
- package/.claude/commands/mode.md +58 -0
- package/.claude/commands/modify-feature.md +209 -0
- package/.claude/commands/module-review.md +149 -0
- package/.claude/commands/move-section.md +67 -0
- package/.claude/commands/new-draft.md +67 -0
- package/.claude/commands/new-feature.md +286 -0
- package/.claude/commands/new-task.md +156 -0
- package/.claude/commands/notification.md +107 -0
- package/.claude/commands/pm-start.md +119 -0
- package/.claude/commands/projects.md +32 -0
- package/.claude/commands/promote.md +43 -0
- package/.claude/commands/rasis-report.md +1323 -0
- package/.claude/commands/release-note.md +130 -0
- package/.claude/commands/reply-watch.md +149 -0
- package/.claude/commands/requirement.md +352 -0
- package/.claude/commands/resume-state.md +187 -0
- package/.claude/commands/reviewpr.md +118 -0
- package/.claude/commands/save-state.md +100 -0
- package/.claude/commands/sentry-pr.md +157 -0
- package/.claude/commands/start-task.md +87 -0
- package/.claude/commands/system-review.md +147 -0
- package/.claude/commands/task-bypass.md +70 -0
- package/.claude/commands/task-estimate.md +100 -0
- package/.claude/commands/template-apply.md +89 -0
- package/.claude/commands/test-design.md +116 -0
- package/.claude/commands/transfer-mismatch.md +317 -0
- package/.claude/commands/verify.md +51 -0
- package/.claude/evals/grader-loop-mode-autonomy.sh +165 -0
- package/.claude/evals/grader-system-reminder-attention.sh +99 -0
- package/.claude/evals/loop-mode-autonomy.md +121 -0
- package/.claude/evals/loop-mode-autonomy.results.template.md +133 -0
- package/.claude/evals/system-reminder-attention.md +123 -0
- package/.claude/evals/system-reminder-attention.results.template.md +93 -0
- package/.claude/evals/system-reminder-attention.runner.md +353 -0
- package/.claude/harness-config.local.yml +48 -0
- package/.claude/harness-config.yml +534 -0
- package/.claude/hooks/agent-marker-clear.sh +43 -0
- package/.claude/hooks/agent-marker-set.sh +40 -0
- package/.claude/hooks/agent-router-suggest.sh +123 -0
- package/.claude/hooks/autonomous-action-guard.sh +242 -0
- package/.claude/hooks/byproduct-discharge-guard.sh +128 -0
- package/.claude/hooks/check-md-mermaid.sh +144 -0
- package/.claude/hooks/check-required-env.sh +95 -0
- package/.claude/hooks/check-serena-mcp.sh +123 -0
- package/.claude/hooks/confidence-gate.sh +139 -0
- package/.claude/hooks/context-budget.sh +233 -0
- package/.claude/hooks/delegation-guard.sh +99 -0
- package/.claude/hooks/dispatcher-manifest.tsv +38 -0
- package/.claude/hooks/draft-flow-guard.sh +304 -0
- package/.claude/hooks/failure-loop-detect.sh +139 -0
- package/.claude/hooks/gateguard.sh +209 -0
- package/.claude/hooks/improvement-proposal.sh +112 -0
- package/.claude/hooks/init-tasks-on-start.sh +34 -0
- package/.claude/hooks/lib/bypass-logger.sh +82 -0
- package/.claude/hooks/lib/confidence-gate/bypass.sh +48 -0
- package/.claude/hooks/lib/confidence-gate/extract.sh +99 -0
- package/.claude/hooks/lib/confidence-gate/major-agent-filter.sh +59 -0
- package/.claude/hooks/lib/confidence-gate/messages.sh +53 -0
- package/.claude/hooks/lib/config-loader.sh +784 -0
- package/.claude/hooks/lib/delegation-guard/bash-whitelist.sh +323 -0
- package/.claude/hooks/lib/delegation-guard/git-deny.sh +188 -0
- package/.claude/hooks/lib/delegation-guard/protected-paths.sh +105 -0
- package/.claude/hooks/lib/delegation-guard/subagent-detect.sh +40 -0
- package/.claude/hooks/lib/dispatcher-core.sh +454 -0
- package/.claude/hooks/lib/improvement-proposal/aggregate.py +466 -0
- package/.claude/hooks/lib/improvement-proposal/cache.sh +78 -0
- package/.claude/hooks/lib/mode-loader.sh +80 -0
- package/.claude/hooks/lib/next-actions-parser.sh +153 -0
- package/.claude/hooks/lib/project-root.sh +60 -0
- package/.claude/hooks/list-md-plan-first-reminder.sh +143 -0
- package/.claude/hooks/loop-auto-progress-reminder.sh +108 -0
- package/.claude/hooks/loop-confirmation-detector.sh +241 -0
- package/.claude/hooks/mode-asana-prompt.sh +61 -0
- package/.claude/hooks/mode-enforce.sh +57 -0
- package/.claude/hooks/mode-session-start.sh +93 -0
- package/.claude/hooks/next-actions-surface.sh +136 -0
- package/.claude/hooks/notification-dispatcher.sh +9 -0
- package/.claude/hooks/notify.sh +27 -0
- package/.claude/hooks/parallel-subagent-reminder.sh +469 -0
- package/.claude/hooks/post-tool-use-dispatcher.sh +9 -0
- package/.claude/hooks/pre-tool-use-dispatcher.sh +9 -0
- package/.claude/hooks/reviewer-count-guard.sh +313 -0
- package/.claude/hooks/session-help-surface.sh +192 -0
- package/.claude/hooks/session-start-dispatcher.sh +9 -0
- package/.claude/hooks/session-start-wrapper.sh +156 -0
- package/.claude/hooks/stale-harness-detect.sh +422 -0
- package/.claude/hooks/stop-dispatcher.sh +9 -0
- package/.claude/hooks/stop.sh +25 -0
- package/.claude/hooks/subagent-stop-dispatcher.sh +9 -0
- package/.claude/hooks/task-rule-guard.sh +317 -0
- package/.claude/hooks/tests/run-tests.sh +23 -0
- package/.claude/hooks/tests/test-agent-marker-warn.sh +86 -0
- package/.claude/hooks/tests/test-check-required-env.sh +138 -0
- package/.claude/hooks/tests/test-confidence-gate.sh +170 -0
- package/.claude/hooks/tests/test-config-env-override.sh +220 -0
- package/.claude/hooks/tests/test-gate-disable.sh +118 -0
- package/.claude/hooks/tests/test-improvement-proposal.sh +284 -0
- package/.claude/hooks/tool-call-slip-detector.sh +188 -0
- package/.claude/hooks/user-prompt-submit-dispatcher.sh +9 -0
- package/.claude/hooks/why-x5-reminder.sh +45 -0
- package/.claude/hooks/why-x5-violation-detect.sh +152 -0
- package/.claude/hooks/workflow-guard.sh +263 -0
- package/.claude/mode.yml +28 -0
- package/.claude/project-rules/development-process.md +8 -0
- package/.claude/project-rules/git-workflow.md +8 -0
- package/.claude/project-rules/modes.md +8 -0
- package/.claude/project-rules/self-improvement.md +8 -0
- package/.claude/project-rules/task-management.md +8 -0
- package/.claude/project-rules/why-x5-output.md +8 -0
- package/.claude/project-rules/workflow.md +8 -0
- package/.claude/rules/development-process.md +293 -0
- package/.claude/rules/git-workflow.md +71 -0
- package/.claude/rules/modes.md +189 -0
- package/.claude/rules/self-improvement.md +76 -0
- package/.claude/rules/task-management.md +261 -0
- package/.claude/rules/why-x5-output.md +97 -0
- package/.claude/rules/workflow.md +157 -0
- package/.claude/rules-details/README.md +67 -0
- package/.claude/rules-details/development-process/confidence-gate.md +22 -0
- package/.claude/rules-details/development-process/cross-repo-write.md +35 -0
- package/.claude/rules-details/development-process/delegation-requirements.md +158 -0
- package/.claude/rules-details/development-process/harness-sync.md +21 -0
- package/.claude/rules-details/development-process/origin.md +13 -0
- package/.claude/rules-details/development-process/parallelization-origin.md +22 -0
- package/.claude/rules-details/development-process/research-reuse.md +22 -0
- package/.claude/rules-details/development-process/staging-strategy.md +47 -0
- package/.claude/rules-details/modes/artifacts.md +34 -0
- package/.claude/rules-details/modes/compliance-items.md +120 -0
- package/.claude/rules-details/modes/five-layer-enforcement.md +46 -0
- package/.claude/rules-details/modes/mode-hooks.md +51 -0
- package/.claude/rules-details/modes/origin.md +17 -0
- package/.claude/rules-details/self-improvement/l4-mechanics.md +36 -0
- package/.claude/rules-details/self-improvement/origin.md +8 -0
- package/.claude/rules-details/self-improvement/related-skills.md +35 -0
- package/.claude/rules-details/self-improvement/when-to-use-layers.md +39 -0
- package/.claude/rules-details/task-management/hook-enforcement.md +25 -0
- package/.claude/rules-details/task-management/mandatory-reading.md +20 -0
- package/.claude/rules-details/task-management/origin.md +12 -0
- package/.claude/rules-details/task-management/parking-lot.md +26 -0
- package/.claude/rules-details/task-management/plan-first.md +44 -0
- package/.claude/rules-details/task-management/six-articles.md +68 -0
- package/.claude/rules-details/task-management/task-migration.md +16 -0
- package/.claude/rules-details/task-management/ui-detection.md +11 -0
- package/.claude/rules-details/why-x5-output/examples.md +41 -0
- package/.claude/rules-details/why-x5-output/feedback-memory.md +14 -0
- package/.claude/rules-details/why-x5-output/origin.md +10 -0
- package/.claude/rules-details/why-x5-output/v1-v10-history.md +19 -0
- package/.claude/rules-details/workflow/10-stage.md +43 -0
- package/.claude/rules-details/workflow/14-stage.md +52 -0
- package/.claude/rules-details/workflow/byproduct-discharge.md +39 -0
- package/.claude/rules-details/workflow/draft-flow-guard.md +31 -0
- package/.claude/rules-details/workflow/fan-out.md +70 -0
- package/.claude/rules-details/workflow/mece-20.md +36 -0
- package/.claude/rules-details/workflow/origin.md +14 -0
- package/.claude/rules-details/workflow/refactoring.md +48 -0
- package/.claude/rules-details/workflow/related-skills.md +22 -0
- package/.claude/rules-details/workflow/reviewer-prompt.md +100 -0
- package/.claude/rules-details/workflow/session-persistence.md +46 -0
- package/.claude/rules-details/workflow/workflow-guard.md +36 -0
- package/.claude/scripts/__pycache__/harness-audit.cpython-313.pyc +0 -0
- package/.claude/scripts/agent-stocktake.py +421 -0
- package/.claude/scripts/check-md-mermaid.mjs +138 -0
- package/.claude/scripts/generate-settings.sh +0 -0
- package/.claude/scripts/harness-audit.py +1547 -0
- package/.claude/scripts/hc-config.sh +2265 -0
- package/.claude/scripts/init-tasks.sh +117 -0
- package/.claude/scripts/lib/enforcement-matrix-parse.sh +81 -0
- package/.claude/scripts/lib/hc-config-metadata.sh +190 -0
- package/.claude/scripts/lib/hc-config-web-server.js +1528 -0
- package/.claude/scripts/lib/hc-config-web-ui/app.js +1054 -0
- package/.claude/scripts/lib/hc-config-web-ui/index.html +130 -0
- package/.claude/scripts/lib/hc-config-web-ui/style.css +522 -0
- package/.claude/scripts/new-task-helper.sh +432 -0
- package/.claude/scripts/observe-repair.sh +437 -0
- package/.claude/scripts/observe-rotate.sh +311 -0
- package/.claude/scripts/statusline.sh +239 -0
- package/.claude/settings.generated.preview.json +211 -0
- package/.claude/settings.json +215 -0
- package/.claude/settings.local.example.json +20 -0
- package/.claude/settings.local.json +36 -0
- package/.claude/skills/agent-introspection-debugging/SKILL.md +123 -0
- package/.claude/skills/agent-router/README.md +137 -0
- package/.claude/skills/agent-router/SKILL.md +74 -0
- package/.claude/skills/agent-router/dispatch-table.yml +352 -0
- package/.claude/skills/agent-router/router.py +1086 -0
- package/.claude/skills/agent-router/samples/representative_prompts.txt +24 -0
- package/.claude/skills/agent-router/tests/__init__.py +0 -0
- package/.claude/skills/agent-router/tests/test_router.py +762 -0
- package/.claude/skills/artifacts-builder/LICENSE.txt +202 -0
- package/.claude/skills/artifacts-builder/SKILL.md +74 -0
- package/.claude/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/.claude/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/.claude/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/.claude/skills/brand-guidelines/LICENSE.txt +202 -0
- package/.claude/skills/brand-guidelines/SKILL.md +73 -0
- package/.claude/skills/canvas-design/LICENSE.txt +202 -0
- package/.claude/skills/canvas-design/SKILL.md +130 -0
- package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/.claude/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/.claude/skills/changelog-generator/SKILL.md +104 -0
- package/.claude/skills/check-md-mermaid/SKILL.md +62 -0
- package/.claude/skills/connect/SKILL.md +156 -0
- package/.claude/skills/connect-apps/SKILL.md +80 -0
- package/.claude/skills/content-research-writer/SKILL.md +538 -0
- package/.claude/skills/continuous-agent-loop/SKILL.md +187 -0
- package/.claude/skills/continuous-learning-v2/SKILL.md +238 -0
- package/.claude/skills/continuous-learning-v2/config.json +35 -0
- package/.claude/skills/continuous-learning-v2/hooks/observe.sh +333 -0
- package/.claude/skills/continuous-learning-v2/instinct-cli.py +406 -0
- package/.claude/skills/domain-name-brainstormer/SKILL.md +212 -0
- package/.claude/skills/eval-harness/SKILL.md +100 -0
- package/.claude/skills/eval-harness/swe-bench/README.md +80 -0
- package/.claude/skills/eval-harness/swe-bench/config.yml +29 -0
- package/.claude/skills/eval-harness/swe-bench/docker/Dockerfile +25 -0
- package/.claude/skills/eval-harness/swe-bench/docker/docker-compose.yml +18 -0
- package/.claude/skills/eval-harness/swe-bench/results/dry-run-2026-05-04.json +137 -0
- package/.claude/skills/eval-harness/swe-bench/results/dry-run-comparison-2026-05-04.md +112 -0
- package/.claude/skills/eval-harness/swe-bench/results/dry-run-improved-2026-05-04.json +165 -0
- package/.claude/skills/eval-harness/swe-bench/results/raw/astropy__astropy-12907.patch +12 -0
- package/.claude/skills/eval-harness/swe-bench/results/raw/astropy__astropy-12907.txt +322 -0
- package/.claude/skills/eval-harness/swe-bench/results/raw/astropy__astropy-12907.whole-file.txt +322 -0
- package/.claude/skills/eval-harness/swe-bench/runner.py +845 -0
- package/.claude/skills/eval-harness/swe-bench/scoring.py +298 -0
- package/.claude/skills/eval-harness/swe-bench/tasks/fetch_tasks.py +81 -0
- package/.claude/skills/eval-harness/swe-bench/tasks/lite-50.json +702 -0
- package/.claude/skills/file-organizer/SKILL.md +433 -0
- package/.claude/skills/gan-style-harness/SKILL.md +111 -0
- package/.claude/skills/gateguard/.gateguard.yml +47 -0
- package/.claude/skills/gateguard/SKILL.md +99 -0
- package/.claude/skills/internal-comms/LICENSE.txt +202 -0
- package/.claude/skills/internal-comms/SKILL.md +32 -0
- package/.claude/skills/internal-comms/examples/3p-updates.md +47 -0
- package/.claude/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/.claude/skills/internal-comms/examples/faq-answers.md +30 -0
- package/.claude/skills/internal-comms/examples/general-comms.md +16 -0
- package/.claude/skills/invoice-organizer/SKILL.md +446 -0
- package/.claude/skills/karpathy-guidelines/SKILL.md +67 -0
- package/.claude/skills/langsmith-fetch/SKILL.md +485 -0
- package/.claude/skills/lead-research-assistant/SKILL.md +199 -0
- package/.claude/skills/mcp-builder/LICENSE.txt +202 -0
- package/.claude/skills/mcp-builder/SKILL.md +328 -0
- package/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/.claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/.claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/.claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.claude/skills/raffle-winner-picker/SKILL.md +159 -0
- package/.claude/skills/repo-map/README.md +125 -0
- package/.claude/skills/repo-map/SKILL.md +128 -0
- package/.claude/skills/repo-map/examples/sample-output.md +1194 -0
- package/.claude/skills/repo-map/repo-map.py +715 -0
- package/.claude/skills/salesforce-e2e-testing/SKILL.md +116 -0
- package/.claude/skills/salesforce-e2e-testing/catalog-template.md +161 -0
- package/.claude/skills/salesforce-e2e-testing/methodology.md +179 -0
- package/.claude/skills/salesforce-e2e-testing/observation-rules.md +280 -0
- package/.claude/skills/salesforce-e2e-testing/pattern-taxonomy.md +392 -0
- package/.claude/skills/salesforce-e2e-testing/procedure-template.md +376 -0
- package/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/skill-creator/SKILL.md +209 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/.claude/skills/skill-share/SKILL.md +80 -0
- package/.claude/skills/tailored-resume-generator/SKILL.md +345 -0
- package/.claude/skills/template-skill/SKILL.md +6 -0
- package/.claude/skills/theme-factory/LICENSE.txt +202 -0
- package/.claude/skills/theme-factory/SKILL.md +59 -0
- package/.claude/skills/theme-factory/theme-showcase.pdf +0 -0
- package/.claude/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/.claude/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/.claude/skills/theme-factory/themes/desert-rose.md +19 -0
- package/.claude/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/.claude/skills/theme-factory/themes/golden-hour.md +19 -0
- package/.claude/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/.claude/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/.claude/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/.claude/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/.claude/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/.claude/skills/verification-loop/SKILL.md +129 -0
- package/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/.claude/skills/webapp-testing/SKILL.md +96 -0
- package/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/.claude/templates/docs/draft/_DRAFT_TEMPLATE.md +162 -0
- package/.claude/templates/docs/draft/_TEST_DESIGN_TEMPLATE.md +76 -0
- package/.claude/templates/docs/tasks/_TASK_TEMPLATE.md +276 -0
- package/.claude/templates/docs/tasks/list.md +80 -0
- package/.claude/templates/docs/tasks/parking-lot.md +82 -0
- package/.claude/templates/settings.user-level.json.template +306 -0
- package/.claude/tests/SMOKE-CLASSIFICATION.md +199 -0
- package/.claude/tests/action-space-count-smoke.sh +130 -0
- package/.claude/tests/agent-router-suggest-wiring-smoke.sh +188 -0
- package/.claude/tests/audit-followups-smoke.sh +158 -0
- package/.claude/tests/autonomous-action-guard-relaxation-smoke.sh +479 -0
- package/.claude/tests/autonomous-action-guard-smoke.sh +187 -0
- package/.claude/tests/check-serena-mcp-smoke.sh +156 -0
- package/.claude/tests/common-rules-import-smoke.sh +209 -0
- package/.claude/tests/confidence-gate-smoke.sh +220 -0
- package/.claude/tests/config-feature-toggles-smoke.sh +389 -0
- package/.claude/tests/context-budget-smoke.sh +222 -0
- package/.claude/tests/custom-pm-commands-smoke.sh +93 -0
- package/.claude/tests/delegation-guard-code-smoke.sh +244 -0
- package/.claude/tests/delegation-guard-deny-layers-smoke.sh +356 -0
- package/.claude/tests/delegation-guard-readonly-filter-smoke.sh +205 -0
- package/.claude/tests/delegation-guard-search-whitelist-smoke.sh +152 -0
- package/.claude/tests/delegation-guard-segment-smoke.sh +109 -0
- package/.claude/tests/dispatcher-blocker-invariance-smoke.sh +700 -0
- package/.claude/tests/dispatcher-core-smoke.sh +452 -0
- package/.claude/tests/dispatcher-merge-matrix-smoke.sh +825 -0
- package/.claude/tests/dispatcher-success-stdout-smoke.sh +290 -0
- package/.claude/tests/draft-flow-guard-approved-dir-smoke.sh +234 -0
- package/.claude/tests/draft-flow-guard-smoke.sh +194 -0
- package/.claude/tests/dual-mode-portability-smoke.sh +131 -0
- package/.claude/tests/effective-hook-matrix-smoke.sh +261 -0
- package/.claude/tests/enforcement-mismatch-smoke.sh +263 -0
- package/.claude/tests/fixtures/cascade-sample.jsonl +9 -0
- package/.claude/tests/fixtures/next-actions/case-clean.md +14 -0
- package/.claude/tests/fixtures/next-actions/case-with-red.md +16 -0
- package/.claude/tests/fixtures/next-actions/case-with-yellow-only.md +14 -0
- package/.claude/tests/fixtures/normal-broken-scatter.jsonl +5 -0
- package/.claude/tests/fixtures/task-71/blocker-baseline.tsv +24 -0
- package/.claude/tests/fixtures/task-71/settings-inventory.tsv +37 -0
- package/.claude/tests/fixtures/transcript-50pct.jsonl +2 -0
- package/.claude/tests/fixtures/transcript-60pct.jsonl +2 -0
- package/.claude/tests/fixtures/transcript-80pct.jsonl +2 -0
- package/.claude/tests/fixtures/transcript-95pct.jsonl +2 -0
- package/.claude/tests/fixtures/workflow-guard/case-2-mid.json +21 -0
- package/.claude/tests/fixtures/workflow-guard/case-3-blocked.json +33 -0
- package/.claude/tests/fixtures/workflow-guard/case-4-clean.json +27 -0
- package/.claude/tests/fixtures/workflow-guard/case-8-modify.json +23 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-1.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-2.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-3.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-4.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-5.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-6.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-7.json +1 -0
- package/.claude/tests/fixtures/workflow-guard/inputs/case-8.json +1 -0
- package/.claude/tests/gateguard-smoke.sh +213 -0
- package/.claude/tests/git-deny-mainline-policy-smoke.sh +222 -0
- package/.claude/tests/harness-audit-c-batch-smoke.sh +270 -0
- package/.claude/tests/harness-audit-compare-smoke.sh +186 -0
- package/.claude/tests/harness-audit-pipeline-health-smoke.sh +326 -0
- package/.claude/tests/harness-config-local-smoke.sh +232 -0
- package/.claude/tests/hc-config-git-policy-smoke.sh +241 -0
- package/.claude/tests/hc-config-key-parity-smoke.sh +149 -0
- package/.claude/tests/hc-config-migration-smoke.sh +251 -0
- package/.claude/tests/hc-config-script-smoke.sh +1106 -0
- package/.claude/tests/hc-config-tui-smoke.sh +801 -0
- package/.claude/tests/hc-config-web-ui-smoke.sh +3224 -0
- package/.claude/tests/hook-cwd-robustness-smoke.sh +206 -0
- package/.claude/tests/hook-frequency-tweaks-smoke.sh +312 -0
- package/.claude/tests/improvement-proposal-cache-smoke.sh +238 -0
- package/.claude/tests/install-sh-overwrite-all-smoke.sh +274 -0
- package/.claude/tests/install-sh-regen-settings-smoke.sh +301 -0
- package/.claude/tests/install-sh-sync-drift-smoke.sh +285 -0
- package/.claude/tests/layer-b-context-isolation-smoke.sh +392 -0
- package/.claude/tests/list-md-plan-first-reminder-smoke.sh +313 -0
- package/.claude/tests/loop-auto-progress-smoke.sh +372 -0
- package/.claude/tests/loop-confirmation-detector-smoke.sh +674 -0
- package/.claude/tests/new-task-batch-update-smoke.sh +664 -0
- package/.claude/tests/next-actions-hooks-smoke.sh +283 -0
- package/.claude/tests/npx-cli-smoke.sh +696 -0
- package/.claude/tests/observe-flock-smoke.sh +223 -0
- package/.claude/tests/observe-jq-parse-smoke.sh +250 -0
- package/.claude/tests/observe-repair-smoke.sh +475 -0
- package/.claude/tests/observe-rotate-smoke.sh +428 -0
- package/.claude/tests/observe-subagent-stop-smoke.sh +476 -0
- package/.claude/tests/parallel-subagent-reminder-smoke.sh +918 -0
- package/.claude/tests/project-root-smoke.sh +140 -0
- package/.claude/tests/project-rules-protection-smoke.sh +199 -0
- package/.claude/tests/review-required-min-count-smoke.sh +286 -0
- package/.claude/tests/reviewer-count-guard-smoke.sh +490 -0
- package/.claude/tests/rule-architecture-smoke.sh +418 -0
- package/.claude/tests/rule-change-draft-flow-guard-smoke.sh +343 -0
- package/.claude/tests/run-all-smokes.sh +340 -0
- package/.claude/tests/session-help-surface-smoke.sh +224 -0
- package/.claude/tests/session-start-parallel-smoke.sh +165 -0
- package/.claude/tests/sessionstart-budget-smoke.sh +185 -0
- package/.claude/tests/sessionstart-footprint-smoke.sh +258 -0
- package/.claude/tests/settings-dispatcher-baseline-smoke.sh +709 -0
- package/.claude/tests/settings-generation-feature-pruning-smoke.sh +196 -0
- package/.claude/tests/stale-harness-detect-smoke.sh +974 -0
- package/.claude/tests/statusline-smoke.sh +180 -0
- package/.claude/tests/task-rule-guard-smoke.sh +656 -0
- package/.claude/tests/tool-call-slip-detector-smoke.sh +101 -0
- package/.claude/tests/wave-precheck-template-smoke.sh +159 -0
- package/.claude/tests/why-x5-violation-detect-smoke.sh +157 -0
- package/.claude/tests/workflow-guard-smoke.sh +266 -0
- package/CLAUDE.md +75 -0
- package/LICENSE +21 -0
- package/README.md +790 -0
- package/bin/cli.js +395 -0
- package/docs/INVENTORY.md +163 -0
- package/install.sh +769 -0
- package/package.json +25 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# agent-router
|
|
2
|
+
|
|
3
|
+
Skill that recommends a specialist subagent for ambiguous prompts that would otherwise default to `general-purpose`. The skill establishes a habit of naming the right specialist at dispatch time, instead of falling back to general-purpose by default.
|
|
4
|
+
|
|
5
|
+
> **Note on justification**: An earlier draft cited "66% (1,178/1,749) of historical subagent invocations went to general-purpose while named specialists sat dormant" as the activation rationale. That figure was measured before the 100 named agents existed in their current form — they were imported on 2026-05-04 in a single commit, so the 90-day pre-import window contains structurally unreliable dormant percentages (see `docs/INVENTORY-stocktake-2026-05-04.md` §8). The router is justified primarily by **habit formation** at dispatch time, not by the dormant figure. The empirical 84.1% dispatch rate against the 1,178 historical `general-purpose` prompts remains a meaningful coverage indicator and will be re-measured against post-import transcripts in 30 / 90 days.
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
| Path | Purpose |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `SKILL.md` | Skill manifest (name, description, when-to-use) |
|
|
12
|
+
| `router.py` | Dispatch implementation (stdlib only) |
|
|
13
|
+
| `dispatch-table.yml` | Single source of truth: keyword → agent map |
|
|
14
|
+
| `tests/test_router.py` | 40 unit + integration tests (19 keyword + 21 Phase 2) |
|
|
15
|
+
| `samples/representative_prompts.txt` | Verification fixtures sampled from real history |
|
|
16
|
+
| `README.md` | This file (design notes & extension guide) |
|
|
17
|
+
|
|
18
|
+
## Design
|
|
19
|
+
|
|
20
|
+
### Why scoring rather than ML?
|
|
21
|
+
|
|
22
|
+
- Stdlib only, zero dependencies — runs anywhere Python 3 runs.
|
|
23
|
+
- Auditable: every routing decision is reproducible from the dispatch table.
|
|
24
|
+
- Easy to extend: add a keyword line, no retraining.
|
|
25
|
+
- Threshold-controlled fallback prevents false-positive specialist routing.
|
|
26
|
+
|
|
27
|
+
### Algorithm (Phase 1: keyword)
|
|
28
|
+
|
|
29
|
+
1. **Tokenize** the prompt: lowercase, alphanumeric + `-` + `_` + `.`, drop a small stop-word set (~50 entries — small to avoid filtering domain terms).
|
|
30
|
+
2. **Match keywords**:
|
|
31
|
+
- Single-word keywords: O(1) lookup against the token set.
|
|
32
|
+
- Multi-word phrases (`"app router"`, `"sql injection"`): word-boundary regex search.
|
|
33
|
+
3. **Score**: each keyword hit contributes `weight` (default 1.0) to its target agent.
|
|
34
|
+
4. **Specialty boost**: when the same agent matches N>1 distinct keywords, add `(N-1) * specialty_boost` (default 0.6). This rewards prompts with strong domain signal.
|
|
35
|
+
5. **Confidence** = `min(score / saturation, 1.0)`. Saturation 3.0 means a single hit yields ~0.33 confidence; two hits ~0.87.
|
|
36
|
+
6. **Threshold**: if best confidence < 0.25, return `general-purpose` fallback.
|
|
37
|
+
|
|
38
|
+
### Phase 2: Hybrid (LLM fallback)
|
|
39
|
+
|
|
40
|
+
When `--use-llm-fallback` is on AND keyword confidence < `--llm-threshold` (default `0.5`):
|
|
41
|
+
|
|
42
|
+
1. Build a candidate list: top-N keyword candidates first, padded to 30 agents from the active set for breadth.
|
|
43
|
+
2. Invoke the Claude CLI selector via subprocess (`claude -p --model claude-haiku-4-5 ...`) with timeout `30s` and per-call budget cap `$0.05`.
|
|
44
|
+
3. Parse the JSON output `{"agent": "...", "confidence": 0.0-1.0, "reason": "..."}`. The model may wrap in `\\\`\\\`\\\`json` fences — those are stripped.
|
|
45
|
+
4. **Name normalization** maps loose responses (`Code Reviewer`, `code_reviewer`) to canonical agent names. Unknown agents trigger a retry.
|
|
46
|
+
5. Up to **3 retries** on timeout / parse failure / unknown agent. After 3 failures, the keyword result is kept and the failure is surfaced in `reason`.
|
|
47
|
+
6. **Cycle detection** reads `~/.claude/agent-router-history.json` (last 100 entries). When the same prompt hash dispatched to the same agent twice in a row, the router forces a switch to the next-best alternative.
|
|
48
|
+
|
|
49
|
+
### Tuning levers
|
|
50
|
+
|
|
51
|
+
| Field | Default | Effect |
|
|
52
|
+
|---|---:|---|
|
|
53
|
+
| `threshold` (table) | 0.25 | Lower = route more aggressively to specialists |
|
|
54
|
+
| `saturation` (table) | 3.0 | Lower = single keyword hits more confident |
|
|
55
|
+
| `specialty_boost` (table) | 0.6 | Higher = stack-rank prompts that hit multiple kw on same agent |
|
|
56
|
+
| `--llm-threshold` | 0.5 | Confidence under this triggers LLM selector (Hybrid mode) |
|
|
57
|
+
| `--llm-max-attempts` | 3 | Selector retries before keyword fallback |
|
|
58
|
+
| `--llm-budget-usd` | 0.05 | Per-call cost cap (forwarded to `claude -p --max-budget-usd`) |
|
|
59
|
+
|
|
60
|
+
Empirical tuning on 1,178 historical `general-purpose` prompts achieves **~84% routing to named agents** at the current keyword settings. Phase 2 Hybrid mode (mock-evaluated) routes the residual ~16% low-confidence prompts to a named agent in the majority of cases — see [`docs/AGENT-ROUTER.md`](../../../docs/AGENT-ROUTER.md) for the measured uplift.
|
|
61
|
+
|
|
62
|
+
## Adding / removing agents
|
|
63
|
+
|
|
64
|
+
When a new agent is added under `.claude/agents/<category>/<name>.md`:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
# dispatch-table.yml
|
|
68
|
+
keywords:
|
|
69
|
+
...
|
|
70
|
+
<new-keyword>: <new-agent-name>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
When an agent is **archived** (moved to `docs/archive/agents/`):
|
|
74
|
+
|
|
75
|
+
1. Open `dispatch-table.yml`.
|
|
76
|
+
2. Search for the archived agent name and **delete every keyword** pointing at it.
|
|
77
|
+
3. Run `python3 -m unittest discover tests -v` to confirm nothing breaks.
|
|
78
|
+
|
|
79
|
+
If an archived agent is left in the table, the router will return its name and the caller will fail at `Agent(subagent_type=...)` invocation. The skill never validates that recommended agents still exist on disk — keep the table clean.
|
|
80
|
+
|
|
81
|
+
## Coordinating with the archive subagent
|
|
82
|
+
|
|
83
|
+
The agent inventory was reduced from 144 → 100 active agents in a parallel task (see `docs/draft/agent-router-handoff-2026-05-05.md`). The dispatch table here was authored against that final 100-agent active set:
|
|
84
|
+
|
|
85
|
+
- Archived language specialists (PowerShell, .NET, Rails, Java, Kotlin, Swift, C++, Vue, Angular, FastAPI, Django, Elixir, Flutter, PHP, Rust, etc.) have **no entries** in the table; their typical keywords route to general specialists (e.g. `django` → `python-pro`, `vue` → `frontend-developer`).
|
|
86
|
+
- Archived infra/security/data agents (`azure-infra-engineer`, `chaos-engineer`, `ai-engineer`, `reinforcement-learning-engineer`, etc.) have no entries either.
|
|
87
|
+
- The `09-meta-orchestration/agent-router.md` agent itself (if added) is not currently in the dispatch table — the router skill is meant to be invoked, not subagented.
|
|
88
|
+
|
|
89
|
+
## Tests
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
cd .claude/skills/agent-router
|
|
93
|
+
python3 -m unittest discover tests -v
|
|
94
|
+
# 40 tests: parse + tokenize + dispatch + coverage + LLM fallback + cycle detection + name normalization + history recording
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The `CoverageTests` suite verifies that ≥70% of representative prompts route correctly. The implementation currently achieves 100% on the 20-prompt fixture (keyword-only) and ~84% on the unfiltered 1,178-prompt 90-day historical sample. Phase 2 Hybrid mode further lifts low-confidence prompts; see the benchmark table below.
|
|
98
|
+
|
|
99
|
+
## Benchmark
|
|
100
|
+
|
|
101
|
+
| Mode | Sample | Dispatch rate | LLM calls | Cost / prompt |
|
|
102
|
+
|---|---|---:|---:|---:|
|
|
103
|
+
| Phase 1 (keyword only) | 1,178 historical prompts | 84.1% | 0 | $0.00 |
|
|
104
|
+
| Phase 1 (keyword only) | 20 representative prompts | 100% | 0 | $0.00 |
|
|
105
|
+
| Phase 2 (Hybrid mock) | 15 low-/subtle-signal prompts | 100% | 13 | ~$0.0009 |
|
|
106
|
+
|
|
107
|
+
The Phase 2 row uses a deterministic mock selector to validate the wiring; live measurement against the historical 188 low-confidence sample is gated on cost — set `AGENT_ROUTER_LLM_FALLBACK=on` and re-run the harness audit to collect live numbers.
|
|
108
|
+
|
|
109
|
+
## CLI examples
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Basic
|
|
113
|
+
python3 router.py "review the auth module"
|
|
114
|
+
# → {"agent": "security-auditor", "confidence": 1.0, "reason": "matched: auth, review", ...}
|
|
115
|
+
|
|
116
|
+
# With per-candidate breakdown
|
|
117
|
+
python3 router.py --explain "set up kubernetes ingress with helm"
|
|
118
|
+
|
|
119
|
+
# From stdin
|
|
120
|
+
echo "write tdd unit tests with pytest" | python3 router.py --stdin
|
|
121
|
+
|
|
122
|
+
# With alternative table
|
|
123
|
+
python3 router.py --table /tmp/experimental-table.yml "<prompt>"
|
|
124
|
+
|
|
125
|
+
# Hybrid mode (LLM selector for low-confidence prompts)
|
|
126
|
+
python3 router.py --use-llm-fallback --llm-threshold 0.5 "<vague prompt>"
|
|
127
|
+
|
|
128
|
+
# Hybrid via env (recommended for hooks)
|
|
129
|
+
AGENT_ROUTER_LLM_FALLBACK=on python3 router.py "<vague prompt>"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Limitations & future work
|
|
133
|
+
|
|
134
|
+
- **No semantic understanding** in keyword mode: a prompt like "I need help with Python\'s payment processing" routes on `payment` (→ payment-integration), not on `python` (→ python-pro). Specialty boost mitigates this when both keywords appear, but truly ambiguous prompts may pick the wrong specialist. Hybrid mode addresses this when enabled.
|
|
135
|
+
- **No `SubagentStart` hook**: see `SKILL.md#why-a-skill-rather-than-a-hook-today`. The optional `agent-router-suggest.sh` `UserPromptSubmit` hook offers a workaround by injecting routing hints, but the main agent must still consult the result.
|
|
136
|
+
- **No invocation feedback loop**: if an agent recommendation produces poor downstream results, the table doesn\'t learn. Periodically re-run the keyword-frequency analysis (see `docs/AGENT-ROUTER.md`) and tune.
|
|
137
|
+
- **Hybrid cost discipline**: each LLM selector call is bounded by `--llm-budget-usd` (default $0.05) and timeout 30s. Aggregate cost still scales with the rate of low-confidence prompts; monitor `~/.claude/agent-router-history.json` and the `llm_cost_usd` field for runaway usage.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-router
|
|
3
|
+
description: Route ambiguous "general-purpose" subagent prompts to the most relevant named agent. Use when about to launch Agent/Task with subagent_type=general-purpose and unsure which named agent fits, when reviewing past general-purpose flows for downgrade to a specialist, or when the user asks "which agent should handle X?". Inputs a prompt string, scores against the dispatch table (~100 active agents under .claude/agents/), and returns the best-matching agent + confidence + reason. Hybrid mode (--use-llm-fallback / AGENT_ROUTER_LLM_FALLBACK=on) invokes a Claude CLI selector for low-confidence prompts to lift dispatch rate further. Three-stage fallback (keyword → LLM → previous → general-purpose) inherits the prior dispatch on the same prompt before falling back to general-purpose.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Router
|
|
7
|
+
|
|
8
|
+
Establishes a hook-driven habit for the main agent to choose the right `subagent_type` at dispatch time. Recommends a specialist named agent based on prompt keywords so newly-imported specialists do not sit structurally idle.
|
|
9
|
+
|
|
10
|
+
> **Note on justification**: The original framing cited "66% of historical flow went to general-purpose" as the activation rationale. That figure was measured before the 100 named agents existed in their current form — they were imported on 2026-05-04 in a single commit, so the 90-day pre-import window contains structurally unreliable dormant percentages (see `docs/INVENTORY-stocktake-2026-05-04.md` §8). The router\'s primary justification is **habit formation**: making "name the right specialist" the default behaviour at dispatch time. Dormant numbers are at best a secondary indicator and will be re-measured against post-import transcripts in 30 / 90 days. The empirical 84.1% dispatch rate against the historical prompt sample remains a meaningful coverage signal.
|
|
11
|
+
|
|
12
|
+
## When to invoke
|
|
13
|
+
|
|
14
|
+
The main agent (or another skill) should consult agent-router **before** launching `Agent(subagent_type="general-purpose", ...)` when:
|
|
15
|
+
|
|
16
|
+
1. The prompt mentions a specific domain (review / debug / docs / infra / data / etc.).
|
|
17
|
+
2. The user explicitly asks "which agent should handle this?".
|
|
18
|
+
3. A previous general-purpose run produced low-confidence output and a re-run with a specialist might do better.
|
|
19
|
+
|
|
20
|
+
Skip when:
|
|
21
|
+
|
|
22
|
+
- The prompt is genuinely cross-cutting research with no dominant domain (router will return `general-purpose` as fallback).
|
|
23
|
+
- A `subagent_type` is already explicitly specified by the user.
|
|
24
|
+
|
|
25
|
+
## How to use
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# CLI form (returns JSON)
|
|
29
|
+
python3 .claude/skills/agent-router/router.py "review the auth module for SQL injection"
|
|
30
|
+
# → {"agent": "security-auditor", "confidence": 0.71, "reason": "matched: security, auth, injection, review", "fallback": false}
|
|
31
|
+
|
|
32
|
+
# Hybrid mode — invokes the Claude CLI selector when keyword confidence < 0.5
|
|
33
|
+
AGENT_ROUTER_LLM_FALLBACK=on python3 .claude/skills/agent-router/router.py "investigate the supply chain dependencies"
|
|
34
|
+
# → {"agent": "security-auditor", "confidence": 0.75, "reason": "llm-selector: ...", "llm_used": true, "llm_attempts": 1, "llm_cost_usd": 0.0009}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The CLI exits 0 with the JSON result on stdout. Exit 2 means the router itself errored (file missing, table unparseable). On exit 2 the caller should fall back to `general-purpose` and continue.
|
|
38
|
+
|
|
39
|
+
## Dispatch table
|
|
40
|
+
|
|
41
|
+
`dispatch-table.yml` is the single source of truth. Each entry maps a keyword (case-insensitive, word-boundary match) to the preferred named agent under `.claude/agents/<category>/<name>.md`. Multiple keywords can point at the same agent. Specialty boost is applied when several keywords from the same agent fire together.
|
|
42
|
+
|
|
43
|
+
Routing model:
|
|
44
|
+
|
|
45
|
+
1. Tokenize prompt (lowercase, alphanumeric / `-` / `_`, stop-word filtered).
|
|
46
|
+
2. For every keyword in the table, look for a word-boundary match. Each hit contributes `weight` (default 1.0) to the target agent\'s score.
|
|
47
|
+
3. Apply specialty boost: when two or more keywords resolve to the same agent, add `0.5` per extra hit.
|
|
48
|
+
4. Normalize against a saturation cap (`6.0`) to produce a confidence in `[0, 1]`.
|
|
49
|
+
5. If best confidence < `0.30`, return the fallback `general-purpose` with the original tokens as reason.
|
|
50
|
+
6. **Hybrid mode (Phase 2)**: when `--use-llm-fallback` (or `AGENT_ROUTER_LLM_FALLBACK=on`) is set and best confidence is below `--llm-threshold` (default `0.5`), invoke a Claude CLI selector with the top 30 candidate agents. Up to 3 retries on parse / timeout / unknown-agent errors. The selector\'s recommendation overrides the keyword fallback when valid; otherwise keyword result is preserved.
|
|
51
|
+
7. **Cycle detection (Phase 2)**: same prompt hash dispatched to the same agent twice in a row triggers a forced switch to the next-best agent (or `general-purpose`).
|
|
52
|
+
8. **Name normalization (Phase 2)**: LLM agent names get normalized — `Code Reviewer`, `code_reviewer`, `code-reviewer` all map to the canonical `code-reviewer`.
|
|
53
|
+
|
|
54
|
+
The threshold is conservative on purpose — false-positive routing wastes tokens reframing the prompt for an unsuitable specialist.
|
|
55
|
+
|
|
56
|
+
## Updating the dispatch table
|
|
57
|
+
|
|
58
|
+
When a new agent is added under `.claude/agents/`, update `dispatch-table.yml` with at least one keyword. When an agent is archived to `docs/archive/agents/`, **remove** its keywords from the table — routing to an archived agent fails silently and degrades to general-purpose.
|
|
59
|
+
|
|
60
|
+
Validation:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
python3 -m unittest discover .claude/skills/agent-router/tests -v
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Why a skill rather than a hook (today)
|
|
67
|
+
|
|
68
|
+
Subagent dispatch happens at `Agent(subagent_type=...)` invocation time. There is no native `SubagentStart` PreToolUse hook that can rewrite `subagent_type` (PreToolUse can block but cannot transparently rewrite tool inputs in a way the calling model accepts). Until that lands, the router is invoked manually by the orchestrator (main agent) via this skill or via the optional `agent-router-suggest.sh` `UserPromptSubmit` hook, which injects routing hints into freshly submitted prompts.
|
|
69
|
+
|
|
70
|
+
## Related
|
|
71
|
+
|
|
72
|
+
- Inventory & rationale: `docs/INVENTORY-stocktake-2026-05-04.md`
|
|
73
|
+
- Handoff context: `docs/draft/agent-router-handoff-2026-05-05.md`
|
|
74
|
+
- Router architecture doc: `docs/AGENT-ROUTER.md`
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# agent-router dispatch table
|
|
2
|
+
# version: 1
|
|
3
|
+
# Last updated: 2026-05-04
|
|
4
|
+
#
|
|
5
|
+
# Format:
|
|
6
|
+
# threshold: <float> # Minimum confidence to return a non-fallback agent (0.0–1.0)
|
|
7
|
+
# saturation: <float> # Score above this saturates confidence at 1.0
|
|
8
|
+
# specialty_boost: <float> # Bonus per extra keyword that hits the same agent
|
|
9
|
+
# fallback: <agent_name> # Returned when no candidate clears threshold
|
|
10
|
+
# keywords:
|
|
11
|
+
# <keyword>: <agent_name> # Word-boundary match, lowercased
|
|
12
|
+
# <keyword>: { agent: <name>, weight: <float> }
|
|
13
|
+
#
|
|
14
|
+
# Keywords are lowercased and matched on word boundaries (\b<keyword>\b).
|
|
15
|
+
# Multi-word keywords (e.g. "code review") are matched as the literal phrase.
|
|
16
|
+
# Hyphens / underscores are treated as part of the token.
|
|
17
|
+
#
|
|
18
|
+
# When you ARCHIVE an agent under docs/archive/agents/, REMOVE its keywords here
|
|
19
|
+
# so the router degrades to general-purpose instead of returning a dead agent.
|
|
20
|
+
|
|
21
|
+
threshold: 0.25
|
|
22
|
+
saturation: 3.0
|
|
23
|
+
specialty_boost: 0.6
|
|
24
|
+
fallback: general-purpose
|
|
25
|
+
|
|
26
|
+
keywords:
|
|
27
|
+
# ---------- 04-quality-security: review / audit / test ----------
|
|
28
|
+
review: code-reviewer
|
|
29
|
+
reviewer: code-reviewer
|
|
30
|
+
"code review": code-reviewer
|
|
31
|
+
"pr review": code-reviewer
|
|
32
|
+
refactor: refactoring-specialist
|
|
33
|
+
refactoring: refactoring-specialist
|
|
34
|
+
cleanup: refactoring-specialist
|
|
35
|
+
audit: security-auditor
|
|
36
|
+
auditor: security-auditor
|
|
37
|
+
security: security-auditor
|
|
38
|
+
vulnerability: security-auditor
|
|
39
|
+
vulnerabilities: security-auditor
|
|
40
|
+
exploit: security-auditor
|
|
41
|
+
pentest: penetration-tester
|
|
42
|
+
pen-test: penetration-tester
|
|
43
|
+
penetration: penetration-tester
|
|
44
|
+
owasp: penetration-tester
|
|
45
|
+
csrf: penetration-tester
|
|
46
|
+
xss: penetration-tester
|
|
47
|
+
injection: security-auditor
|
|
48
|
+
"sql injection": security-auditor
|
|
49
|
+
auth: security-auditor
|
|
50
|
+
authentication: security-auditor
|
|
51
|
+
authorization: security-auditor
|
|
52
|
+
oauth: security-auditor
|
|
53
|
+
jwt: security-auditor
|
|
54
|
+
rbac: security-auditor
|
|
55
|
+
secrets: security-auditor
|
|
56
|
+
credentials: security-auditor
|
|
57
|
+
compliance: compliance-auditor
|
|
58
|
+
gdpr: compliance-auditor
|
|
59
|
+
hipaa: compliance-auditor
|
|
60
|
+
pci: compliance-auditor
|
|
61
|
+
test: test-automator
|
|
62
|
+
tests: test-automator
|
|
63
|
+
testing: test-automator
|
|
64
|
+
tdd: test-automator
|
|
65
|
+
unittest: test-automator
|
|
66
|
+
pytest: test-automator
|
|
67
|
+
jest: test-automator
|
|
68
|
+
vitest: test-automator
|
|
69
|
+
qa: qa-expert
|
|
70
|
+
e2e: ui-ux-tester
|
|
71
|
+
playwright: ui-ux-tester
|
|
72
|
+
cypress: ui-ux-tester
|
|
73
|
+
accessibility: accessibility-tester
|
|
74
|
+
a11y: accessibility-tester
|
|
75
|
+
wcag: accessibility-tester
|
|
76
|
+
aria: accessibility-tester
|
|
77
|
+
debug: debugger
|
|
78
|
+
debugger: debugger
|
|
79
|
+
debugging: debugger
|
|
80
|
+
trace: debugger
|
|
81
|
+
stacktrace: debugger
|
|
82
|
+
exception: error-detective
|
|
83
|
+
error: error-detective
|
|
84
|
+
failure: error-detective
|
|
85
|
+
crash: error-detective
|
|
86
|
+
performance: performance-engineer
|
|
87
|
+
optimization: performance-engineer
|
|
88
|
+
profiling: performance-engineer
|
|
89
|
+
bottleneck: performance-engineer
|
|
90
|
+
architecture: architect-reviewer
|
|
91
|
+
architect: architect-reviewer
|
|
92
|
+
"architecture review": architect-reviewer
|
|
93
|
+
"ai writing": ai-writing-auditor
|
|
94
|
+
"ai-generated": ai-writing-auditor
|
|
95
|
+
|
|
96
|
+
# ---------- 01-core-development ----------
|
|
97
|
+
api: api-designer
|
|
98
|
+
endpoint: api-designer
|
|
99
|
+
rest: api-designer
|
|
100
|
+
openapi: api-designer
|
|
101
|
+
swagger: api-designer
|
|
102
|
+
graphql: graphql-architect
|
|
103
|
+
microservice: microservices-architect
|
|
104
|
+
microservices: microservices-architect
|
|
105
|
+
websocket: websocket-engineer
|
|
106
|
+
socket.io: websocket-engineer
|
|
107
|
+
realtime: websocket-engineer
|
|
108
|
+
fullstack: fullstack-developer
|
|
109
|
+
full-stack: fullstack-developer
|
|
110
|
+
backend: backend-developer
|
|
111
|
+
frontend: frontend-developer
|
|
112
|
+
ui: ui-designer
|
|
113
|
+
"ui design": ui-designer
|
|
114
|
+
"user interface": ui-designer
|
|
115
|
+
mobile: mobile-developer
|
|
116
|
+
electron: electron-pro
|
|
117
|
+
|
|
118
|
+
# ---------- 02-language-specialists (active subset only) ----------
|
|
119
|
+
python: python-pro
|
|
120
|
+
py: python-pro
|
|
121
|
+
django: python-pro # django-developer is archived; route to python-pro
|
|
122
|
+
fastapi: python-pro # fastapi-developer is archived; route to python-pro
|
|
123
|
+
typescript: typescript-pro
|
|
124
|
+
ts: typescript-pro
|
|
125
|
+
tsx: typescript-pro
|
|
126
|
+
javascript: javascript-pro
|
|
127
|
+
js: javascript-pro
|
|
128
|
+
esm: javascript-pro
|
|
129
|
+
node: node-specialist
|
|
130
|
+
node.js: node-specialist
|
|
131
|
+
nodejs: node-specialist
|
|
132
|
+
npm: node-specialist
|
|
133
|
+
pnpm: node-specialist
|
|
134
|
+
golang: golang-pro
|
|
135
|
+
go: golang-pro
|
|
136
|
+
goroutine: golang-pro
|
|
137
|
+
next: nextjs-developer
|
|
138
|
+
next.js: nextjs-developer
|
|
139
|
+
nextjs: nextjs-developer
|
|
140
|
+
"app router": nextjs-developer
|
|
141
|
+
rsc: nextjs-developer
|
|
142
|
+
"server component": nextjs-developer
|
|
143
|
+
react: react-specialist
|
|
144
|
+
jsx: react-specialist
|
|
145
|
+
hook: react-specialist
|
|
146
|
+
hooks: react-specialist
|
|
147
|
+
usestate: react-specialist
|
|
148
|
+
useeffect: react-specialist
|
|
149
|
+
sql: sql-pro
|
|
150
|
+
query: sql-pro
|
|
151
|
+
|
|
152
|
+
# ---------- 03-infrastructure ----------
|
|
153
|
+
cloud: cloud-architect
|
|
154
|
+
aws: cloud-architect
|
|
155
|
+
gcp: cloud-architect
|
|
156
|
+
s3: cloud-architect
|
|
157
|
+
ec2: cloud-architect
|
|
158
|
+
lambda: cloud-architect
|
|
159
|
+
cloudfront: cloud-architect
|
|
160
|
+
database: database-administrator
|
|
161
|
+
db: database-administrator
|
|
162
|
+
schema: database-administrator
|
|
163
|
+
migration: database-administrator
|
|
164
|
+
deploy: deployment-engineer
|
|
165
|
+
deployment: deployment-engineer
|
|
166
|
+
release: deployment-engineer
|
|
167
|
+
rollout: deployment-engineer
|
|
168
|
+
devops: devops-engineer
|
|
169
|
+
ci: devops-engineer
|
|
170
|
+
cd: devops-engineer
|
|
171
|
+
"ci/cd": devops-engineer
|
|
172
|
+
pipeline: devops-engineer
|
|
173
|
+
github-actions: devops-engineer
|
|
174
|
+
docker: docker-expert
|
|
175
|
+
dockerfile: docker-expert
|
|
176
|
+
container: docker-expert
|
|
177
|
+
compose: docker-expert
|
|
178
|
+
kubernetes: kubernetes-specialist
|
|
179
|
+
k8s: kubernetes-specialist
|
|
180
|
+
kubectl: kubernetes-specialist
|
|
181
|
+
helm: kubernetes-specialist
|
|
182
|
+
pod: kubernetes-specialist
|
|
183
|
+
network: network-engineer
|
|
184
|
+
dns: network-engineer
|
|
185
|
+
vpn: network-engineer
|
|
186
|
+
tcp: network-engineer
|
|
187
|
+
platform: platform-engineer
|
|
188
|
+
internal-tooling: platform-engineer
|
|
189
|
+
sre: sre-engineer
|
|
190
|
+
reliability: sre-engineer
|
|
191
|
+
slo: sre-engineer
|
|
192
|
+
sli: sre-engineer
|
|
193
|
+
terraform: terraform-engineer
|
|
194
|
+
hcl: terraform-engineer
|
|
195
|
+
iac: terraform-engineer
|
|
196
|
+
pulumi: terraform-engineer
|
|
197
|
+
"security engineering": security-engineer
|
|
198
|
+
hardening: security-engineer
|
|
199
|
+
|
|
200
|
+
# ---------- 05-data-ai ----------
|
|
201
|
+
llm: llm-architect
|
|
202
|
+
"llm architecture": llm-architect
|
|
203
|
+
rag: llm-architect
|
|
204
|
+
embedding: llm-architect
|
|
205
|
+
embeddings: llm-architect
|
|
206
|
+
prompt: prompt-engineer
|
|
207
|
+
"prompt engineering": prompt-engineer
|
|
208
|
+
"system prompt": prompt-engineer
|
|
209
|
+
ml: ml-engineer
|
|
210
|
+
machine-learning: machine-learning-engineer
|
|
211
|
+
classifier: machine-learning-engineer
|
|
212
|
+
regression: machine-learning-engineer
|
|
213
|
+
mlops: mlops-engineer
|
|
214
|
+
nlp: nlp-engineer
|
|
215
|
+
tokenizer: nlp-engineer
|
|
216
|
+
data: data-engineer
|
|
217
|
+
etl: data-engineer
|
|
218
|
+
pipeline-ingest: data-engineer
|
|
219
|
+
airflow: data-engineer
|
|
220
|
+
dbt: data-engineer
|
|
221
|
+
parquet: data-engineer
|
|
222
|
+
pandas: data-analyst
|
|
223
|
+
dataframe: data-analyst
|
|
224
|
+
notebook: data-scientist
|
|
225
|
+
jupyter: data-scientist
|
|
226
|
+
postgres: postgres-pro
|
|
227
|
+
postgresql: postgres-pro
|
|
228
|
+
pgsql: postgres-pro
|
|
229
|
+
index: database-optimizer
|
|
230
|
+
"query plan": database-optimizer
|
|
231
|
+
explain: database-optimizer
|
|
232
|
+
|
|
233
|
+
# ---------- 06-developer-experience ----------
|
|
234
|
+
build: build-engineer
|
|
235
|
+
webpack: build-engineer
|
|
236
|
+
vite: build-engineer
|
|
237
|
+
rollup: build-engineer
|
|
238
|
+
turbopack: build-engineer
|
|
239
|
+
cli: cli-developer
|
|
240
|
+
command-line: cli-developer
|
|
241
|
+
argparse: cli-developer
|
|
242
|
+
dependency: dependency-manager
|
|
243
|
+
dependencies: dependency-manager
|
|
244
|
+
"package update": dependency-manager
|
|
245
|
+
documentation: documentation-engineer
|
|
246
|
+
docs: documentation-engineer
|
|
247
|
+
doc: documentation-engineer
|
|
248
|
+
tutorial: documentation-engineer
|
|
249
|
+
guide: documentation-engineer
|
|
250
|
+
readme: readme-generator
|
|
251
|
+
changelog: documentation-engineer
|
|
252
|
+
legacy: legacy-modernizer
|
|
253
|
+
modernize: legacy-modernizer
|
|
254
|
+
"code modernization": legacy-modernizer
|
|
255
|
+
mcp: mcp-developer
|
|
256
|
+
"mcp server": mcp-developer
|
|
257
|
+
slack: slack-expert
|
|
258
|
+
"slack workflow": slack-expert
|
|
259
|
+
"slack bot": slack-expert
|
|
260
|
+
git-workflow: git-workflow-manager
|
|
261
|
+
rebase: git-workflow-manager
|
|
262
|
+
cherry-pick: git-workflow-manager
|
|
263
|
+
branch: git-workflow-manager
|
|
264
|
+
commit: git-workflow-manager
|
|
265
|
+
dx: dx-optimizer
|
|
266
|
+
"developer experience": dx-optimizer
|
|
267
|
+
tooling: tooling-engineer
|
|
268
|
+
|
|
269
|
+
# ---------- 07-specialized-domains ----------
|
|
270
|
+
"api docs": api-documenter
|
|
271
|
+
"api reference": api-documenter
|
|
272
|
+
"openapi spec": api-documenter
|
|
273
|
+
ios: mobile-app-developer
|
|
274
|
+
android: mobile-app-developer
|
|
275
|
+
"react native": mobile-app-developer
|
|
276
|
+
payment: payment-integration
|
|
277
|
+
stripe: payment-integration
|
|
278
|
+
paypal: payment-integration
|
|
279
|
+
billing: payment-integration
|
|
280
|
+
seo: seo-specialist
|
|
281
|
+
sitemap: seo-specialist
|
|
282
|
+
metadata: seo-specialist
|
|
283
|
+
opengraph: seo-specialist
|
|
284
|
+
|
|
285
|
+
# ---------- 08-business-product ----------
|
|
286
|
+
"business analysis": business-analyst
|
|
287
|
+
"requirements analysis": business-analyst
|
|
288
|
+
"content marketing": content-marketer
|
|
289
|
+
"blog post": content-marketer
|
|
290
|
+
newsletter: content-marketer
|
|
291
|
+
"customer success": customer-success-manager
|
|
292
|
+
"user retention": customer-success-manager
|
|
293
|
+
legal: legal-advisor
|
|
294
|
+
contract: legal-advisor
|
|
295
|
+
tos: legal-advisor
|
|
296
|
+
privacy: legal-advisor
|
|
297
|
+
license: license-engineer
|
|
298
|
+
"open source license": license-engineer
|
|
299
|
+
"product manager": product-manager
|
|
300
|
+
prd: product-manager
|
|
301
|
+
"product spec": product-manager
|
|
302
|
+
roadmap: product-manager
|
|
303
|
+
"project manager": project-manager
|
|
304
|
+
"project plan": project-manager
|
|
305
|
+
gantt: project-manager
|
|
306
|
+
"sales engineering": sales-engineer
|
|
307
|
+
rfp: sales-engineer
|
|
308
|
+
scrum: scrum-master
|
|
309
|
+
sprint: scrum-master
|
|
310
|
+
retrospective: scrum-master
|
|
311
|
+
technical-writing: technical-writer
|
|
312
|
+
"technical writing": technical-writer
|
|
313
|
+
whitepaper: technical-writer
|
|
314
|
+
"ux research": ux-researcher
|
|
315
|
+
"user interview": ux-researcher
|
|
316
|
+
usability: ux-researcher
|
|
317
|
+
wordpress: wordpress-master
|
|
318
|
+
wp-admin: wordpress-master
|
|
319
|
+
woocommerce: wordpress-master
|
|
320
|
+
|
|
321
|
+
# ---------- 09-meta-orchestration ----------
|
|
322
|
+
"agent install": agent-installer
|
|
323
|
+
"agent organize": agent-organizer
|
|
324
|
+
"agent organizer": agent-organizer
|
|
325
|
+
orchestrate: workflow-orchestrator
|
|
326
|
+
workflow: workflow-orchestrator
|
|
327
|
+
multi-agent: multi-agent-coordinator
|
|
328
|
+
"context manager": context-manager
|
|
329
|
+
"error coordinator": error-coordinator
|
|
330
|
+
"error coordination": error-coordinator
|
|
331
|
+
"knowledge synthesis": knowledge-synthesizer
|
|
332
|
+
"task distribution": task-distributor
|
|
333
|
+
it-ops: it-ops-orchestrator
|
|
334
|
+
"performance monitor": performance-monitor
|
|
335
|
+
"codebase orchestrator": codebase-orchestrator
|
|
336
|
+
|
|
337
|
+
# ---------- 10-research-analysis ----------
|
|
338
|
+
research: research-analyst
|
|
339
|
+
"research analyst": research-analyst
|
|
340
|
+
"deep research": research-analyst
|
|
341
|
+
competitive: competitive-analyst
|
|
342
|
+
"competitive analysis": competitive-analyst
|
|
343
|
+
competitor: competitive-analyst
|
|
344
|
+
"data research": data-researcher
|
|
345
|
+
"market research": market-researcher
|
|
346
|
+
market: market-researcher
|
|
347
|
+
trend: trend-analyst
|
|
348
|
+
trends: trend-analyst
|
|
349
|
+
"idea validation": project-idea-validator
|
|
350
|
+
validate: project-idea-validator
|
|
351
|
+
search-specialist: search-specialist
|
|
352
|
+
"advanced search": search-specialist
|