@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,263 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# .claude/hooks/workflow-guard.sh
|
|
3
|
+
# PreToolUse(Bash) hook — /finish-task で .claude/.workflow-state/<slug>.json を検証
|
|
4
|
+
# 仕様: docs/draft/workflow-enforcement.md v2 §3 W4 + .claude/.workflow-state/SCHEMA.md
|
|
5
|
+
#
|
|
6
|
+
# 役割:
|
|
7
|
+
# /finish-task <slug> 実行直前に下記 2 つを構造化判定する:
|
|
8
|
+
# A. current_stage が workflow_stages_{new|modify} の最終 stage に達しているか
|
|
9
|
+
# B. pending_findings.module_review / pending_findings.system_review が両方とも空配列か
|
|
10
|
+
# どちらか fail なら BLOCK + stderr に問題内容 + 推奨アクションを出力。
|
|
11
|
+
#
|
|
12
|
+
# 重要制約 (round-2 review):
|
|
13
|
+
# - grep / 文字列マッチ依存禁止。state JSON の構造化 parse のみで判定。
|
|
14
|
+
# - stage 名で判定(step 番号は使わない)。
|
|
15
|
+
#
|
|
16
|
+
# Args: $1 = tool name (Bash) — JSON tool_name 優先
|
|
17
|
+
# Stdin: PreToolUse JSON
|
|
18
|
+
#
|
|
19
|
+
# Bypass:
|
|
20
|
+
# ECC_WORKFLOW_GUARD_OFF=1 # 全 skip + bypass.log 記録
|
|
21
|
+
# HC_WORKFLOW_GUARD_ENABLED=false # 全 skip + bypass.log 記録 (config 系統)
|
|
22
|
+
#
|
|
23
|
+
# Bypass log path: .claude/.workflow-state/bypass.log (lib/bypass-logger.sh 経由で append)
|
|
24
|
+
# <ISO-8601> | <session_id> | workflow-guard | <var> | <reason>
|
|
25
|
+
|
|
26
|
+
set -uo pipefail # ⚠️ set -e は使わない (mode-loader.sh の CB-verify 教訓 - 5846925 参照)
|
|
27
|
+
|
|
28
|
+
# === config 読み込み (HC_WORKFLOW_STAGES_NEW / _MODIFY 取得) ===
|
|
29
|
+
# shellcheck source=lib/config-loader.sh
|
|
30
|
+
source "${CLAUDE_PROJECT_DIR:-$(pwd)}/.claude/hooks/lib/config-loader.sh"
|
|
31
|
+
|
|
32
|
+
# Feature toggle 参照 (task-45 Phase 2)
|
|
33
|
+
if command -v is_feature_enabled >/dev/null 2>&1 && ! is_feature_enabled workflow_enforcement; then
|
|
34
|
+
echo '{}'
|
|
35
|
+
exit 0 # feature OFF で no-op
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# === bypass.log 共通ライブラリ ===
|
|
39
|
+
# shellcheck source=lib/bypass-logger.sh
|
|
40
|
+
source "${CLAUDE_PROJECT_DIR:-$(pwd)}/.claude/hooks/lib/bypass-logger.sh"
|
|
41
|
+
|
|
42
|
+
# === workflow-state root (state file 解決に使用) ===
|
|
43
|
+
_workflow_state_root="${CLAUDE_PROJECT_DIR:-$(pwd)}/.claude/.workflow-state"
|
|
44
|
+
|
|
45
|
+
# === Bypass: ECC_WORKFLOW_GUARD_OFF ===
|
|
46
|
+
if [ "${ECC_WORKFLOW_GUARD_OFF:-0}" = "1" ] || [ "${ECC_WORKFLOW_GUARD_OFF:-}" = "true" ]; then
|
|
47
|
+
log_bypass "workflow-guard" "ECC_WORKFLOW_GUARD_OFF" "${ECC_BYPASS_REASON:-(not provided)}"
|
|
48
|
+
echo '{}'
|
|
49
|
+
exit 0
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# === Bypass: HC_WORKFLOW_GUARD_ENABLED=false ===
|
|
53
|
+
if [ "${HC_WORKFLOW_GUARD_ENABLED:-true}" = "false" ]; then
|
|
54
|
+
log_bypass "workflow-guard" "HC_WORKFLOW_GUARD_ENABLED" "${ECC_BYPASS_REASON:-(not provided)}"
|
|
55
|
+
echo '{}'
|
|
56
|
+
exit 0
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# === stdin 読み取り ===
|
|
60
|
+
input=$(cat)
|
|
61
|
+
|
|
62
|
+
# === jq 必須 (fallback: python3) ===
|
|
63
|
+
_has_jq=0
|
|
64
|
+
if command -v jq >/dev/null 2>&1; then
|
|
65
|
+
_has_jq=1
|
|
66
|
+
fi
|
|
67
|
+
_has_py=0
|
|
68
|
+
if command -v python3 >/dev/null 2>&1; then
|
|
69
|
+
_has_py=1
|
|
70
|
+
fi
|
|
71
|
+
if [ "$_has_jq" = "0" ] && [ "$_has_py" = "0" ]; then
|
|
72
|
+
# parser 不在: fail-open
|
|
73
|
+
echo '{}'
|
|
74
|
+
exit 0
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# === JSON field 抽出 helper ===
|
|
78
|
+
# jq があれば jq、なければ python3
|
|
79
|
+
_json_get() {
|
|
80
|
+
# $1 = JSON string
|
|
81
|
+
# $2 = jq filter (e.g. ".tool_name")
|
|
82
|
+
# $3 = python expression equivalent (e.g. "data.get('tool_name', '')")
|
|
83
|
+
if [ "$_has_jq" = "1" ]; then
|
|
84
|
+
printf '%s' "$1" | jq -r "$2 // empty" 2>/dev/null
|
|
85
|
+
else
|
|
86
|
+
printf '%s' "$1" | python3 -c "
|
|
87
|
+
import json, sys
|
|
88
|
+
try:
|
|
89
|
+
data = json.load(sys.stdin)
|
|
90
|
+
v = $3
|
|
91
|
+
print(v if v is not None else '')
|
|
92
|
+
except Exception:
|
|
93
|
+
print('')
|
|
94
|
+
" 2>/dev/null
|
|
95
|
+
fi
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
# === tool name 取得 ===
|
|
99
|
+
tool=$(_json_get "$input" '.tool_name' "data.get('tool_name')")
|
|
100
|
+
if [ -z "$tool" ] || [ "$tool" = "null" ]; then
|
|
101
|
+
tool="${1:-}"
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
# === Bash 以外は素通し ===
|
|
105
|
+
if [ "$tool" != "Bash" ]; then
|
|
106
|
+
echo '{}'
|
|
107
|
+
exit 0
|
|
108
|
+
fi
|
|
109
|
+
|
|
110
|
+
# === command 取得 ===
|
|
111
|
+
cmd=$(_json_get "$input" '.tool_input.command' "data.get('tool_input', {}).get('command', '')")
|
|
112
|
+
if [ -z "$cmd" ]; then
|
|
113
|
+
echo '{}'
|
|
114
|
+
exit 0
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
# === /finish-task or finish-task 検出 + slug 抽出 ===
|
|
118
|
+
# 許可: "/finish-task <slug>" / "finish-task <slug>"
|
|
119
|
+
# slug 規約: ^[a-z0-9][a-z0-9-]{2,48}$ (git branch 規約準拠)
|
|
120
|
+
slug=""
|
|
121
|
+
if printf '%s' "$cmd" | grep -qE '(^|[[:space:]])/?finish-task[[:space:]]+[a-z0-9][a-z0-9-]{2,48}([[:space:]]|$)'; then
|
|
122
|
+
# extract: first non-space token after "finish-task"
|
|
123
|
+
slug=$(printf '%s' "$cmd" | sed -nE 's/.*[[:space:]/]finish-task[[:space:]]+([a-z0-9][a-z0-9-]{2,48}).*/\1/p' | head -n1)
|
|
124
|
+
# fallback if anchored at start
|
|
125
|
+
if [ -z "$slug" ]; then
|
|
126
|
+
slug=$(printf '%s' "$cmd" | sed -nE 's/^[[:space:]]*\/?finish-task[[:space:]]+([a-z0-9][a-z0-9-]{2,48}).*/\1/p' | head -n1)
|
|
127
|
+
fi
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
if [ -z "$slug" ]; then
|
|
131
|
+
echo '{}'
|
|
132
|
+
exit 0
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
# === state JSON 不在: 旧 task 互換のため素通し ===
|
|
136
|
+
state_file="${_workflow_state_root}/${slug}.json"
|
|
137
|
+
if [ ! -f "$state_file" ]; then
|
|
138
|
+
echo '{}'
|
|
139
|
+
exit 0
|
|
140
|
+
fi
|
|
141
|
+
|
|
142
|
+
# === state JSON parse (workflow_type / current_stage / pending_findings) ===
|
|
143
|
+
if [ "$_has_jq" = "1" ]; then
|
|
144
|
+
workflow_type=$(jq -r '.workflow_type // empty' "$state_file" 2>/dev/null)
|
|
145
|
+
current_stage=$(jq -r '.current_stage // empty' "$state_file" 2>/dev/null)
|
|
146
|
+
mr_count=$(jq -r '(.pending_findings.module_review // []) | length' "$state_file" 2>/dev/null)
|
|
147
|
+
sr_count=$(jq -r '(.pending_findings.system_review // []) | length' "$state_file" 2>/dev/null)
|
|
148
|
+
else
|
|
149
|
+
# python3 fallback
|
|
150
|
+
_state_json=$(cat "$state_file" 2>/dev/null)
|
|
151
|
+
workflow_type=$(printf '%s' "$_state_json" | python3 -c "
|
|
152
|
+
import json, sys
|
|
153
|
+
try:
|
|
154
|
+
d = json.load(sys.stdin)
|
|
155
|
+
print(d.get('workflow_type', ''))
|
|
156
|
+
except Exception:
|
|
157
|
+
print('')
|
|
158
|
+
" 2>/dev/null)
|
|
159
|
+
current_stage=$(printf '%s' "$_state_json" | python3 -c "
|
|
160
|
+
import json, sys
|
|
161
|
+
try:
|
|
162
|
+
d = json.load(sys.stdin)
|
|
163
|
+
print(d.get('current_stage', ''))
|
|
164
|
+
except Exception:
|
|
165
|
+
print('')
|
|
166
|
+
" 2>/dev/null)
|
|
167
|
+
mr_count=$(printf '%s' "$_state_json" | python3 -c "
|
|
168
|
+
import json, sys
|
|
169
|
+
try:
|
|
170
|
+
d = json.load(sys.stdin)
|
|
171
|
+
print(len(d.get('pending_findings', {}).get('module_review', []) or []))
|
|
172
|
+
except Exception:
|
|
173
|
+
print('0')
|
|
174
|
+
" 2>/dev/null)
|
|
175
|
+
sr_count=$(printf '%s' "$_state_json" | python3 -c "
|
|
176
|
+
import json, sys
|
|
177
|
+
try:
|
|
178
|
+
d = json.load(sys.stdin)
|
|
179
|
+
print(len(d.get('pending_findings', {}).get('system_review', []) or []))
|
|
180
|
+
except Exception:
|
|
181
|
+
print('0')
|
|
182
|
+
" 2>/dev/null)
|
|
183
|
+
fi
|
|
184
|
+
|
|
185
|
+
# === workflow_type 別 stage 列取得 ===
|
|
186
|
+
if [ "$workflow_type" = "new" ]; then
|
|
187
|
+
stages="$HC_WORKFLOW_STAGES_NEW"
|
|
188
|
+
elif [ "$workflow_type" = "modify" ]; then
|
|
189
|
+
stages="$HC_WORKFLOW_STAGES_MODIFY"
|
|
190
|
+
else
|
|
191
|
+
# workflow_type 不明: fail-open (旧 task 互換 / 想定外データ)
|
|
192
|
+
echo '{}'
|
|
193
|
+
exit 0
|
|
194
|
+
fi
|
|
195
|
+
|
|
196
|
+
# 最終 stage 取得 (改行区切り→最終行)
|
|
197
|
+
final_stage=$(printf '%s' "$stages" | awk 'NF{last=$0} END{print last}')
|
|
198
|
+
if [ -z "$final_stage" ]; then
|
|
199
|
+
# config 不整合: fail-open
|
|
200
|
+
echo '{}'
|
|
201
|
+
exit 0
|
|
202
|
+
fi
|
|
203
|
+
|
|
204
|
+
# === 判定 A: current_stage が最終 stage に達しているか ===
|
|
205
|
+
stage_ok=0
|
|
206
|
+
if [ "$current_stage" = "$final_stage" ]; then
|
|
207
|
+
stage_ok=1
|
|
208
|
+
fi
|
|
209
|
+
|
|
210
|
+
# === 判定 B: pending findings が両方とも空か ===
|
|
211
|
+
findings_ok=0
|
|
212
|
+
if [ "${mr_count:-0}" = "0" ] && [ "${sr_count:-0}" = "0" ]; then
|
|
213
|
+
findings_ok=1
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
# === pass: 両方 OK ===
|
|
217
|
+
if [ "$stage_ok" = "1" ] && [ "$findings_ok" = "1" ]; then
|
|
218
|
+
echo '{}'
|
|
219
|
+
exit 0
|
|
220
|
+
fi
|
|
221
|
+
|
|
222
|
+
# === BLOCK: 問題内容を組み立て ===
|
|
223
|
+
problems=""
|
|
224
|
+
recommendations=""
|
|
225
|
+
|
|
226
|
+
if [ "$stage_ok" = "0" ]; then
|
|
227
|
+
problems="${problems}- current_stage='${current_stage}' が最終 stage='${final_stage}' (workflow_type=${workflow_type}) に達していません"$'\n'
|
|
228
|
+
recommendations="${recommendations}- 残り stage を順次完了させてから /finish-task ${slug} を実行してください"$'\n'
|
|
229
|
+
fi
|
|
230
|
+
|
|
231
|
+
if [ "$findings_ok" = "0" ]; then
|
|
232
|
+
problems="${problems}- pending_findings に未解決の指摘があります (module_review=${mr_count} / system_review=${sr_count})"$'\n'
|
|
233
|
+
recommendations="${recommendations}- /module-review および /system-review の指摘事項を全て解決 (修正 or skip 承認) してから /finish-task ${slug} を実行してください"$'\n'
|
|
234
|
+
fi
|
|
235
|
+
|
|
236
|
+
reason="[workflow-guard] BLOCK: /finish-task ${slug} は workflow 完了条件を満たしません。
|
|
237
|
+
|
|
238
|
+
state file: ${state_file}
|
|
239
|
+
workflow_type: ${workflow_type}
|
|
240
|
+
|
|
241
|
+
問題:
|
|
242
|
+
${problems}
|
|
243
|
+
推奨アクション:
|
|
244
|
+
${recommendations}
|
|
245
|
+
Bypass (audit-logged):
|
|
246
|
+
ECC_WORKFLOW_GUARD_OFF=1 ECC_BYPASS_REASON='<理由>' /finish-task ${slug}
|
|
247
|
+
または HC_WORKFLOW_GUARD_ENABLED=false (harness-config.yml)"
|
|
248
|
+
|
|
249
|
+
# stderr にも出す (PreToolUse block reason はモデルに渡るが、stderr は user/log に渡る)
|
|
250
|
+
printf '%s\n' "$reason" >&2
|
|
251
|
+
|
|
252
|
+
if [ "$_has_jq" = "1" ]; then
|
|
253
|
+
jq -n --arg r "$reason" '{decision:"block", reason:$r}'
|
|
254
|
+
else
|
|
255
|
+
# python3 fallback
|
|
256
|
+
printf '%s' "$reason" | python3 -c "
|
|
257
|
+
import json, sys
|
|
258
|
+
r = sys.stdin.read()
|
|
259
|
+
print(json.dumps({'decision': 'block', 'reason': r}))
|
|
260
|
+
" 2>/dev/null
|
|
261
|
+
fi
|
|
262
|
+
|
|
263
|
+
exit 2
|
package/.claude/mode.yml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# HIRAI メソッド 動作モード
|
|
2
|
+
#
|
|
3
|
+
# 設定ファイル 1 枚で動作モードを切替える。slash command `/mode <normal|loop>` でも更新可能。
|
|
4
|
+
#
|
|
5
|
+
# === 値の意味 ===
|
|
6
|
+
# - normal: 通常モード。重要分岐でユーザに確認を求めながら進める。Why × 5 表示は常時 ON。
|
|
7
|
+
# - loop : Loop モード。ユーザの明示的な停止指示までは、AI が推奨する方法を即採用して
|
|
8
|
+
# 実装を継続する。中間確認は行わない(Why × 5 表示は維持)。
|
|
9
|
+
# 停止条件: (1) ユーザの停止指示 (2) タスク完了 (3) 致命エラー
|
|
10
|
+
#
|
|
11
|
+
# === 環境変数による上書き ===
|
|
12
|
+
# `HC_MODE=loop` で本ファイル値を上書き可能(一時切替向け)。
|
|
13
|
+
# 値解決の優先順 (高 → 低): env > YAML > default(normal)
|
|
14
|
+
|
|
15
|
+
mode: loop
|
|
16
|
+
|
|
17
|
+
# === Asana 利用モード ===
|
|
18
|
+
# このプロジェクトで Asana 連携 (Asana タスク文脈取得 / docs/work.md 自動生成 / Slack スレ取込) を
|
|
19
|
+
# 利用するかどうかを per-project で管理。
|
|
20
|
+
#
|
|
21
|
+
# 値:
|
|
22
|
+
# - true : Asana 連携 ON。/work-init, work-session-check.sh, Asana MCP 関連機能が有効
|
|
23
|
+
# - false : Asana 連携 OFF。上記機能は no-op、ハーネスは Asana 抜きで動作 (OSS / 個人プロジェクト向け)
|
|
24
|
+
# - (unset / null) : 未決定。SessionStart hook (mode-asana-prompt.sh) が user に 1 度だけヒアリング
|
|
25
|
+
#
|
|
26
|
+
# 切替: slash command `/mode asana on` / `/mode asana off` でも更新可能
|
|
27
|
+
# 上書き env: `HC_ASANA_ENABLED=true` / `=false`
|
|
28
|
+
asana_enabled: false
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: development-process (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/development-process.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: git-workflow (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/git-workflow.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: modes (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/modes.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: self-improvement (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/self-improvement.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: task-management (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/task-management.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: why-x5-output (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/why-x5-output.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# project 固有ルール: workflow (CommonRules / harness rule への追補)
|
|
2
|
+
|
|
3
|
+
> 本 file は **project 所有** (`install.sh --update` で上書きされない、なければ作成のみ)。
|
|
4
|
+
> `.claude/rules/workflow.md` (harness 所有・update 上書き) から `@import` され、harness rule の**後に**結合 load される。
|
|
5
|
+
> harness 共通 rule を変えたい時は本 file に override/追補を書く (7 harness rule 本体は触らない)。
|
|
6
|
+
> 新規ルール領域は `.claude/project-rules/` に新 file 追加 + 必要なら CLAUDE.md / 既存 rule から @import。
|
|
7
|
+
|
|
8
|
+
<!-- ここに project 固有のルールを記述。空のままでも可 (harness rule のみ有効)。 -->
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "src/**/*"
|
|
4
|
+
- "scripts/**/*"
|
|
5
|
+
- "tests/**/*"
|
|
6
|
+
- "docs/tasks/**/*"
|
|
7
|
+
- "docs/draft/**/*"
|
|
8
|
+
- "doc/**/*"
|
|
9
|
+
- "force-app/**/*"
|
|
10
|
+
- "**/*.js"
|
|
11
|
+
- "**/*.php"
|
|
12
|
+
- "**/*.jsx"
|
|
13
|
+
- "**/*.html"
|
|
14
|
+
- "**/*.css"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 開発プロセスルール
|
|
18
|
+
|
|
19
|
+
本 rule は TDD・サブエージェント委譲・Bash 制御・並列化・staging 戦略・Confidence Gate・harness 取込の SSoT を集約する。`src/` `tests/` `scripts/` `docs/tasks/` `docs/draft/` 編集時に自動 Read される。
|
|
20
|
+
|
|
21
|
+
> **Layer B (詳細版) Read trigger** (4 条件):
|
|
22
|
+
> 1. **違反検出時**: hook BLOCK / warn 注入受領 / regex 不一致
|
|
23
|
+
> 2. **規範変更時**: rule 編集 / draft 起案 / 採用 N 条改定
|
|
24
|
+
> 3. **新規事案**: 初遭遇 keyword / 例外パターン疑い
|
|
25
|
+
> 4. **学習 / dogfood**: task 着手前依存先必読 / harness audit / 副産物整理
|
|
26
|
+
>
|
|
27
|
+
> 通常運用は Layer A のみで判断、Layer B Read skip (token 節約)。
|
|
28
|
+
> 詳細: 各 § 末尾 pointer から該当断片を直リンク Read (断片群: [`../rules-details/development-process/`](../rules-details/development-process/))
|
|
29
|
+
|
|
30
|
+
## コーディング指針 / 出力 / 研究 (必読)
|
|
31
|
+
|
|
32
|
+
| 規範 | SSoT |
|
|
33
|
+
|---|---|
|
|
34
|
+
| LLM コーディング行動規約 (Think Before Coding / Simplicity / Surgical / Verifiable) | [`.claude/skills/karpathy-guidelines/SKILL.md`](../skills/karpathy-guidelines/SKILL.md) |
|
|
35
|
+
| Why × 5 階層 / 現作業 / 他選択肢の 3 点を毎ステップ明示 | [`why-x5-output.md`](./why-x5-output.md)、`why-x5-reminder.sh` 強制 |
|
|
36
|
+
| 外部 library 仕様確認は context7 MCP → WebFetch → GitHub/Exa の fallback chain | training data outdated 回避、推測実装禁止 |
|
|
37
|
+
|
|
38
|
+
context7 fail で loop 停止しない / 「training data で確信あり」で skip しない (verify before recommending 原則)。
|
|
39
|
+
|
|
40
|
+
> **適用対象 task 完全 list / `.mcp.json` 設定詳細**: [development-process/research-reuse.md](../rules-details/development-process/research-reuse.md)
|
|
41
|
+
|
|
42
|
+
## TDD (テスト駆動開発)
|
|
43
|
+
|
|
44
|
+
すべての実装は TDD で進める:
|
|
45
|
+
|
|
46
|
+
1. テスト専門 agent (`Agent(tdd-guide)` / `test-automator` / `qa-expert`) でテスト観点洗い出し
|
|
47
|
+
2. テスト設計・実装 (Red: 失敗状態)
|
|
48
|
+
3. プロダクションコード実装 (Green)
|
|
49
|
+
4. リファクタリング (Refactor)
|
|
50
|
+
|
|
51
|
+
テストなしでプロダクションコードを書かない。
|
|
52
|
+
|
|
53
|
+
## サブエージェント委譲 (Hook で強制)
|
|
54
|
+
|
|
55
|
+
メインは `src/` `tests/` `scripts/` への **一切の直接操作を禁止**。読み取り (Read/Grep/Glob)・編集 (Edit/Write) 両方が Hook ブロック。
|
|
56
|
+
|
|
57
|
+
### メインの役割
|
|
58
|
+
|
|
59
|
+
- タスク管理 (専任、[`task-management.md`](./task-management.md) §「メインエージェント専任」)
|
|
60
|
+
- 作業のアサイン (Agent tool 経由)
|
|
61
|
+
- 完了報告・成果物の確認
|
|
62
|
+
- docs/, CLAUDE.md, .claude/ の更新
|
|
63
|
+
|
|
64
|
+
### メイン直接使用可 / Agent tool 経由委譲
|
|
65
|
+
|
|
66
|
+
| 操作種 | 経路 |
|
|
67
|
+
|---|---|
|
|
68
|
+
| `Skill` / `mcp__*` 全対象、docs/ / CLAUDE.md / .claude/ の Read/Edit/Write | メイン直接 |
|
|
69
|
+
| コード調査 | `Agent(Explore)` |
|
|
70
|
+
| テスト設計 | `Agent(tdd-guide)` / `test-automator` / `qa-expert` (`/test-design <slug>`) |
|
|
71
|
+
| コード実装 | `Agent(general-purpose)` or `Agent(isolation=worktree)` |
|
|
72
|
+
| ビルド確認 | 言語別 `/go-build` / `/rust-build` or `/verify` |
|
|
73
|
+
|
|
74
|
+
独立タスクは並列複数起動。
|
|
75
|
+
|
|
76
|
+
### Hook で強制ブロック (メイン直接禁止)
|
|
77
|
+
|
|
78
|
+
- `Edit` / `Write` / `Read` / `Grep` / `Glob` — src/ tests/ scripts/ 対象
|
|
79
|
+
- `WebSearch` / `WebFetch` — 全対象
|
|
80
|
+
- `Bash` — **原則禁止**、`.claude/bash-whitelist.txt` 登録 prefix のみ許可
|
|
81
|
+
|
|
82
|
+
### Bash 制御 SSoT
|
|
83
|
+
|
|
84
|
+
- `.claude/bash-whitelist.txt` が SSoT、`settings.json` の `permissions.allow` に `Bash(...)` を **重複追加しない**
|
|
85
|
+
- Bash 追加は whitelist 1 行追記のみで完結
|
|
86
|
+
- 追加申請: `.claude/bash-whitelist-requests/YYYY-MM-DD-<slug>.md` 作成 → user レビュー
|
|
87
|
+
- `permissions.deny` での禁止 (`rm -rf`, `git push --force` 等) は別系統
|
|
88
|
+
|
|
89
|
+
### Hook バイパス禁止
|
|
90
|
+
|
|
91
|
+
`CLAUDE_HARNESS_ROLE=` 等 inline env による Hook バイパスは `delegation-guard.sh` がブロック。
|
|
92
|
+
|
|
93
|
+
### Reviewer 制御 SSoT (`harness-config.yml`)
|
|
94
|
+
|
|
95
|
+
| key | 用途 |
|
|
96
|
+
|---|---|
|
|
97
|
+
| `review_required_<design\|test\|module\|system\|security>` | 各レビュー要否 |
|
|
98
|
+
| `review_min_count_<design\|test\|module\|system\|security>` | 並列起動 reviewer 数下限 |
|
|
99
|
+
| `review_max_count_<design\|test\|module\|system>` | 並列起動上限 (cost 制御) |
|
|
100
|
+
| `review_iteration_max` | 反復上限 (default 5) |
|
|
101
|
+
|
|
102
|
+
操作: `bash .claude/scripts/hc-config.sh --get <key>` / `--set <key>=<value>` (atomic backup + type validation)。詳細は [`workflow.md`](./workflow.md) + [`task-management.md`](./task-management.md) 採用 6 条 4 + `docs/SELF_IMPROVEMENT.md` 参照。
|
|
103
|
+
|
|
104
|
+
> **preset aware (task-70 Phase 2)**: `review_required_*` が「BLOCK して該当レビューを必須化する」と読める場合、その強制レベルは **enforcement preset** に依存する。team-default / strict preset では required (BLOCK)、harness-dev preset (本 repo 採用) では advisory (緩和理由は `harness-config.yml` の `enforcement_matrix.review_required_<x>.disabled_reason`、ハーネス自体のレビューは手動 fan-out 運用)。同様に **gateguard (F1)** の初回 Edit/Write/破壊的 Bash BLOCK (`self-improvement.md` §F1) も `feature_gateguard_enabled` 依存で harness-dev では advisory。現 effective 状態と docs/config mismatch は `bash .claude/scripts/hc-config.sh --summary`、整合は `.claude/tests/enforcement-mismatch-smoke.sh` が機械検証する。
|
|
105
|
+
|
|
106
|
+
## サブエージェント委譲の必須要件 7 件
|
|
107
|
+
|
|
108
|
+
| # | 要件 | 概要 |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| 1 | **background 起動強制** | `run_in_background: true` 必須。例外: 30 秒以内 smoke のみ。完了通知は SubagentStop hook 経由 |
|
|
111
|
+
| 2 | **順序整合性保証** | 依存解決 / 並行可能性判定 / partial commit 整合性をメインが事前判定 |
|
|
112
|
+
| 3 | **orchestration 義務** | Agent 起動は委譲ガード経由のみ、独立=並列 / 依存=逐次を事前計画 → user に開示 |
|
|
113
|
+
| 4 | **TaskCreate 登録** | Agent 起動前後で必ず TaskCreate (`subject` / `description` / `metadata.subagent_id` / status 遷移) |
|
|
114
|
+
| 5 | **Bash deny 時の委譲反射** | deny / whitelist 不在 / block を **loop 停止理由にしない**、直ちに Agent 委譲で再試行 |
|
|
115
|
+
| 6 | **並列化義務** | 独立 sub-task 2 件以上は並列起動 default、1 統合は明示理由 (race / 共有 file / context budget / sequential) 必要 |
|
|
116
|
+
| 7 | **agent type 選定義務** | task description に応じた specialist agent_type を default (test→`test-automator` / refactor→`refactoring-specialist` 等)、`general-purpose` は不在時のみ |
|
|
117
|
+
|
|
118
|
+
### 機械強制 (要件 6 + 7) と bypass
|
|
119
|
+
|
|
120
|
+
`.claude/hooks/parallel-subagent-reminder.sh` (PreToolUse(Agent)) が soft warning。並列化対象 keyword: "実装" "fix" "refactor" "設計" "新設" "拡張" "改修"。除外: "reviewer" "review" "監査" "audit"。
|
|
121
|
+
|
|
122
|
+
| bypass 経路 | env |
|
|
123
|
+
|---|---|
|
|
124
|
+
| reminder 無効化 | `HC_PARALLEL_SUBAGENT_REMINDER_ENABLED=false` |
|
|
125
|
+
| TTL 変更 | `HC_PARALLEL_SUBAGENT_TTL_SEC=<秒>` (default 300) |
|
|
126
|
+
| state dir 隔離 | `HC_PARALLEL_SUBAGENT_STATE_DIR=<path>` |
|
|
127
|
+
| 連続単発 streak batch 窓 (task-75) | `HC_PARALLEL_SUBAGENT_BATCH_WINDOW_SEC=<秒>` (default 5、near-ts batch 判定窓) |
|
|
128
|
+
| tier2 (強 reminder) 発火閾値 (task-75) | `HC_PARALLEL_SUBAGENT_STREAK_TIER2=<n>` (default 2、連続単発 streak) |
|
|
129
|
+
| tier3 (Workflow 誘導) 発火閾値 (task-75) | `HC_PARALLEL_SUBAGENT_STREAK_TIER3=<n>` (default 3、連続単発 streak) |
|
|
130
|
+
| agent type mapping override | `HC_AGENT_TYPE_KEYWORD_MAPPING=...` (改行区切り、advanced) |
|
|
131
|
+
|
|
132
|
+
### default mapping (要件 7、hook 内 SSoT、設定不要原則)
|
|
133
|
+
|
|
134
|
+
| keyword | 推奨 subagent_type |
|
|
135
|
+
|---|---|
|
|
136
|
+
| "smoke 拡張" / "test 追加" / "regression test" | `test-automator` |
|
|
137
|
+
| "refactor" / "関数分割" / "cleanup" | `refactoring-specialist` (or `refactor-cleaner`) |
|
|
138
|
+
| "build error" / "compile error" / "type error" | 言語別 `*-build-resolver` |
|
|
139
|
+
| "bash 品質" / "shellcheck" / "subshell" | `code-reviewer` |
|
|
140
|
+
| "設計レビュー" / "architecture review" | `architect-reviewer` |
|
|
141
|
+
| "セキュリティレビュー" / "OWASP" | `security-reviewer` (or `security-auditor`) |
|
|
142
|
+
| (specialized 不在) | `general-purpose` |
|
|
143
|
+
|
|
144
|
+
`harness-config.yml` 編集不要 (hook 内 hardcode 自動判定)、override は任意 (env `HC_AGENT_TYPE_KEYWORD_MAPPING`)。
|
|
145
|
+
|
|
146
|
+
> **要件 1-7 各論詳細 / 違反例 / heredoc 保護仕様 / 機械強制判定境界**: [development-process/delegation-requirements.md](../rules-details/development-process/delegation-requirements.md)
|
|
147
|
+
>
|
|
148
|
+
> **並列化義務 / agent type 選定の起源 (task-35 / task-34 実例)**: [development-process/parallelization-origin.md](../rules-details/development-process/parallelization-origin.md)
|
|
149
|
+
|
|
150
|
+
## 多数 fan-out の Workflow 標準化 + 1 ターン tool block 上限 (必須、task-68)
|
|
151
|
+
|
|
152
|
+
観測バグ「1 アシスタントターンに散文 + 多数 (4-6) の複雑 (長文 / 引用符 / markup 風) tool_use を詰めると invoke/parameter タグ脱落 → 実行されず本文化 → 同 batch リトライ (loop)」(memory [[feedback_multi_tool_block_serialization_failure]]) の構造防止。**単発でも複雑 command で誘発する** (2026-06-01 task-69 で実証、下記 **単発複雑 command 回避** 行)。
|
|
153
|
+
|
|
154
|
+
| 規範 | 内容 |
|
|
155
|
+
|---|---|
|
|
156
|
+
| **3+ fan-out は Workflow** | 3 件以上の独立 subagent fan-out は `Workflow` ツール (決定論 orchestration) を default 検討。手書き N block は **2 件まで許容**、3 件以上は Workflow 提案 (user opt-in 要件のため「多数時は Workflow を提案」運用とセット) |
|
|
157
|
+
| **1 ターン tool block 上限** | 1 アシスタントターンに emit する tool_use は、**長 prompt (>5 行) を含む場合 最大 1〜2 件**。長 prompt は file 経由 (subagent に Read させる) で payload を軽くする (本 session task-67 で実証: `/tmp/*-instructions.md` に共通指示を書き subagent prompt を短縮) |
|
|
158
|
+
| **単発複雑 command 回避** (2026-06-01 task-69) | 単発 Bash でも **複数 `;`/`|` 連結 + grep の alternation (`A\|B\|C`) + 多数 quote + 日本語混在** の複雑 command は slip を誘発する。検証は **ad-hoc 複合 grep を inline で組まず、既存/専用 smoke script を 1 コマンド実行** するか、目的ごとに 1 command へ分割する。subagent staging 検証 ([[feedback_subagent_staging_mv_silent_fail]]) も専用 smoke or 単一 `grep -n <key> <file>` で行う |
|
|
159
|
+
| **前置き語禁止** | tool 呼び出しの前に `call` 等の前置き語を書かない (slip 残渣 `call` と混同を招く)。「tool 前に `call` と書くと antml: prefix が脱落する」は **誤診断** — `call` は破綻した invoke wrapper の残渣であって原因ではない |
|
|
160
|
+
| **enforcement** | 予防規範は advisory (BLOCK しない)。事後検出は `tool-call-slip-detector.sh` (Stop hook) が最終 assistant `.text` の slip 痕跡 (`^call$` / `<parameter name=` 等) を grep → `{"decision":"block"}` で次 turn 自己是正を注入 (Normal/Loop 両モード、bypass `ECC_TOOL_CALL_SLIP_OFF=1`)。設計: [`tool-call-slip-detector-hook.md`](../../docs/draft/tool-call-slip-detector-hook.md) |
|
|
161
|
+
|
|
162
|
+
> **起源 / research 根拠 (§11 F1-4 Programmatic Tool Calling 優位 / F2-4 ordering)**: [harness-design-fundamental-review.md](../../docs/draft/harness-design-fundamental-review.md) §3.1
|
|
163
|
+
|
|
164
|
+
## サブエージェント `.claude/` 編集の staging 戦略 (必須)
|
|
165
|
+
|
|
166
|
+
Claude Code permission system は subagent context での `.claude/` 配下への直接 `Write` / `Edit` / `Bash` heredoc redirect を **一律 denied** (sub-agent isolation)。メインからは通過。subagent 委譲時は `/tmp/<file>` に `Write` → `mv` で install する staging 戦略が必須。
|
|
167
|
+
|
|
168
|
+
> **強制プロンプト雛型 / 検出パターン (subagent 失敗時の即時切替) / 起源 / 再発検出時の昇格判定 (案 B / 案 C)**: [development-process/staging-strategy.md](../rules-details/development-process/staging-strategy.md)
|
|
169
|
+
|
|
170
|
+
## cross-repo write 例外 (agent 経路 deny / user manual 専用)
|
|
171
|
+
|
|
172
|
+
本 repo から外部 repo への **cross-repo write** は agent context (main / subagent / `worktree` 含む全経路) で **完全 denied**。`bash install.sh --update <target>` は **user manual (terminal) 実行のみ可能**。
|
|
173
|
+
|
|
174
|
+
二重制約: system-level sandbox (cross-repo Write 一律 deny、`dangerouslyDisableSandbox: true` 付き Bash も block) + harness-level `delegation-guard.sh`。`ECC_*_OVERRIDE` / `HC_*_ENABLED=false` は system-level には効かない。
|
|
175
|
+
|
|
176
|
+
- 3 リポ反映系 task は `bash install.sh --update <target>` を **user に手動依頼** が default
|
|
177
|
+
- 「sandbox deny で進められない」を loop 停止理由にしない
|
|
178
|
+
|
|
179
|
+
> **起源 (task-24 W1 実証 confidence 0.85) / 緩和 (task-42 4 リポ全件 agent 直接成功実証) / 将来追随窓口**: [development-process/cross-repo-write.md](../rules-details/development-process/cross-repo-write.md)
|
|
180
|
+
|
|
181
|
+
## サブエージェント完了サマリ (Confidence Gate / F3 必須)
|
|
182
|
+
|
|
183
|
+
subagent の **最後の assistant text** に **必ず `confidence: 0.X`** (0.0〜1.0) を含める。`confidence-gate.sh` (SubagentStop hook) が抽出し閾値 (既定 0.6) 未満は **block**。
|
|
184
|
+
|
|
185
|
+
### 算出基準 (4 段階)
|
|
186
|
+
|
|
187
|
+
| レンジ | 状態 |
|
|
188
|
+
|---|---|
|
|
189
|
+
| 0.9 - 1.0 | 全条件を実測値で確認 (build / test / grep 生 log 引用可) |
|
|
190
|
+
| 0.7 - 0.8 | 主要条件確認、周辺は推定 (一部 grep 未実行など) |
|
|
191
|
+
| 0.5 - 0.6 | 実装完了だが検証浅い、未確認前提に依存 |
|
|
192
|
+
| 0.0 - 0.4 | 方針不明確、曖昧な仮実装 |
|
|
193
|
+
|
|
194
|
+
0.6 以上: `/finish-task` へ進める / 0.6 未満: block、検証追加 or 未解決事項明示 / 未記載: block。
|
|
195
|
+
|
|
196
|
+
### Bypass
|
|
197
|
+
|
|
198
|
+
| 方法 | スコープ | 痕跡 |
|
|
199
|
+
|---|---|---|
|
|
200
|
+
| `ECC_CONFIDENCE_GATE=off` | セッション全体 | env のみ |
|
|
201
|
+
| `HC_CONFIDENCE_REQUIRED=false` | セッション全体 | env のみ |
|
|
202
|
+
| `/gate-bypass confidence <reason>` | 次回 1 回のみ | `.claude/.confidence-gate-state/bypass.log` |
|
|
203
|
+
|
|
204
|
+
詳細: [`docs/CONFIDENCE-GATE.md`](../../docs/CONFIDENCE-GATE.md)。bypass 根拠は CLAUDE.md / docs/tasks/ に記録 (honor system)。
|
|
205
|
+
|
|
206
|
+
> **major subagent only block 仕様 (task #9) / 記載例 full**: [development-process/confidence-gate.md](../rules-details/development-process/confidence-gate.md)
|
|
207
|
+
|
|
208
|
+
## 指摘対応
|
|
209
|
+
|
|
210
|
+
1. 根本原因を特定する
|
|
211
|
+
2. 修正する
|
|
212
|
+
3. 再発防止策を考える
|
|
213
|
+
4. `.claude/rules/` へのルール追加を提案する
|
|
214
|
+
|
|
215
|
+
## タスク管理 (メイン専任)
|
|
216
|
+
|
|
217
|
+
詳細は [`task-management.md`](./task-management.md) §「メインエージェント専任(必須)」を参照。
|
|
218
|
+
|
|
219
|
+
## harness 取込チェックリスト (proactive sync、consuming repo 必須)
|
|
220
|
+
|
|
221
|
+
consuming repo は **proactive に harness 最新版を取り込む** 義務を持つ。
|
|
222
|
+
|
|
223
|
+
### 取込タイミング (4 経路、いずれかが trigger)
|
|
224
|
+
|
|
225
|
+
| # | trigger | 必須/推奨 |
|
|
226
|
+
|---|---|---|
|
|
227
|
+
| 1 | **stg* / main merge の直前** | **必須** |
|
|
228
|
+
| 2 | **定期 sync** (週次、曜日固定推奨) | 推奨 |
|
|
229
|
+
| 3 | **F WARN 検出時** (`stale-harness-detect.sh` が SessionStart で npm registry 最新版と `harness_npm_version` stamp を比較 → 新版検出で `npx @takuma-hirai/hirai-method@latest update <dir>` を WARN 誘導 → 即実行、task-84) | **必須** |
|
|
230
|
+
| 4 | **重大 fix 通知時** (hirai-method release notes / commit log 監視) | 任意 |
|
|
231
|
+
|
|
232
|
+
### 取込手順 5 step
|
|
233
|
+
|
|
234
|
+
1. `git checkout main && git pull origin main` (clone 経路の場合。**npx 経路なら本 step 不要**)
|
|
235
|
+
2. harness を target に反映。2 経路いずれか (cross-repo write は agent 経路 deny のため **どちらも user manual / terminal 実行のみ**):
|
|
236
|
+
- **clone 経路**: `bash install.sh --update <consuming repo absolute path>`
|
|
237
|
+
- **npx 経路 (task-83)**: `npx @takuma-hirai/hirai-method@latest update <consuming repo absolute path>` (clone 不要、registry から最新取得。事前に `npx @takuma-hirai/hirai-method@latest check` で stale 確認可)
|
|
238
|
+
3. consuming repo で `git status` / `git diff`
|
|
239
|
+
4. `chore: sync .claude/ from hirai-method <YYYY-MM-DD>` で分離 commit (`install.sh --update --commit` flag で自動 commit 可)
|
|
240
|
+
5. consuming repo 側の smoke / test 再実行
|
|
241
|
+
|
|
242
|
+
### 取込後検証
|
|
243
|
+
|
|
244
|
+
- [ ] `.claude/CommonRules.md` の harness_version が最新 stamp
|
|
245
|
+
- [ ] consuming repo SessionStart で stale-harness-detect WARN 消去
|
|
246
|
+
- [ ] 既存 smoke / test 全 PASS
|
|
247
|
+
|
|
248
|
+
### bypass
|
|
249
|
+
|
|
250
|
+
| 経路 | env | スコープ |
|
|
251
|
+
|---|---|---|
|
|
252
|
+
| 意図的旧 harness 稼働継続 | `harness-config.yml` の `feature_stale_harness_detect_enabled: false` | 永続 |
|
|
253
|
+
| 一時抑制 | `HC_FEATURE_STALE_HARNESS_DETECT_ENABLED=false` | 1 セッション |
|
|
254
|
+
|
|
255
|
+
> **CI 自動化 (将来 opt-in 案 B) / 前提 task 連携詳細 / F WARN 案内文の grep 検証経緯**: [development-process/harness-sync.md](../rules-details/development-process/harness-sync.md)
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 副産物発生時の即時 draft 起こし義務 (必須・再発防止)
|
|
260
|
+
|
|
261
|
+
タスク実装中・レビュー中に「これは別 task として管理すべき」と判断した副産物 (byproduct) は **memory / 会話履歴に流すだけでは禁止**。必ず以下フロー:
|
|
262
|
+
|
|
263
|
+
1. **即時記録**: `docs/tasks/next-actions.md` に entry 追加 (緊急度 / 推奨処理を明記)
|
|
264
|
+
2. **当セッション内に draft 起こし**: 緊急度 🔴 / 🟡 entry は当セッション中に `/new-draft <slug>` で draft 起こし
|
|
265
|
+
3. **次セッション or 同セッション内に承認 + tasking**: user 承認後に `/new-task <id> <slug>` で list.md 行追加
|
|
266
|
+
4. **next-actions.md の処理結果列に移行先記入** (例: 「→ `docs/draft/<slug>.md` → task #N」)
|
|
267
|
+
|
|
268
|
+
### 違反パターン (絶対禁止)
|
|
269
|
+
|
|
270
|
+
- 副産物を memory にのみ保存して draft 化しない
|
|
271
|
+
- 「次セッションで対応」とコメントだけ残してセッション終了
|
|
272
|
+
- 発生源 task の `/finish-task` 完了前に処理せず後送り
|
|
273
|
+
|
|
274
|
+
### 強制機構 (実装予定)
|
|
275
|
+
|
|
276
|
+
- `next-actions-surface.sh` (SessionStart): 未処理 entry を毎セッション開始時に `<system-reminder>` で stderr 出力
|
|
277
|
+
- `workflow-guard.sh` (PreToolUse Bash `/finish-task`): next-actions.md 関連 entry 未処理なら BLOCK
|
|
278
|
+
|
|
279
|
+
詳細は [`workflow.md`](./workflow.md) + [`docs/draft/byproduct-discharge-mechanism.md`](../../docs/draft/byproduct-discharge-mechanism.md) 参照。
|
|
280
|
+
|
|
281
|
+
## 設計→承認→タスク追加フロー
|
|
282
|
+
|
|
283
|
+
詳細は [`task-management.md`](./task-management.md) §「設計→承認→タスク追加フロー(必須)」を参照。
|
|
284
|
+
|
|
285
|
+
## Parking Lot (保留タスク)
|
|
286
|
+
|
|
287
|
+
詳細は [`task-management.md`](./task-management.md) §「Parking Lot(今後検討タスク)」を参照。
|
|
288
|
+
|
|
289
|
+
> **各規範の起源 / commit hash / 採用判断 (TDD / 委譲必須要件 7 件 / staging / cross-repo / Confidence Gate F3 / harness 取込)**: [development-process/origin.md](../rules-details/development-process/origin.md)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
> **project 固有の追補・override は `.claude/project-rules/development-process.md` に書く** (本 file は harness 所有、`install.sh --update` で上書きされる。project 固有編集は下記 import 先へ)。
|
|
293
|
+
@../project-rules/development-process.md
|