@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/tests/enforcement-mismatch-smoke.sh — task-70 Phase 2 (enforcement matrix) smoke test
|
|
3
|
+
#
|
|
4
|
+
# 目的:
|
|
5
|
+
# docs / rules が「BLOCK」と説明する guard (enforcement_matrix.<guard>.docs_claim=block) と、
|
|
6
|
+
# 実 enforcement を制御する feature toggle (enforcement_matrix.<guard>.feature_key) の実値の
|
|
7
|
+
# 不一致 (mismatch) を検出する。mismatch は「モデルには必須と読ませるが実際の境界では
|
|
8
|
+
# 止めない」中間状態であり、最も危険。
|
|
9
|
+
#
|
|
10
|
+
# ただし、mismatch があっても enforcement_matrix.<guard>.disabled_reason に現 preset
|
|
11
|
+
# (default_preset) の理由が明記されていれば「意図的な緩和」として PASS とする。
|
|
12
|
+
# disabled_reason が無い mismatch のみ FAIL にする。
|
|
13
|
+
#
|
|
14
|
+
# 対象 guard (draft §4.2): draft_flow_guard / task_rule_guard / workflow_guard / gateguard
|
|
15
|
+
# + review_required_{design,test,module,system}。
|
|
16
|
+
#
|
|
17
|
+
# 設計:
|
|
18
|
+
# - subshell 関数 ( set -uo pipefail; ... ) で各 case を隔離 (feedback_set_e_in_sourced_libs)
|
|
19
|
+
# - matrix の parse は yml を直接 awk (flat parser は nested 値を読めないため)
|
|
20
|
+
# - feature toggle 実値は hc-config.sh --get で取得 (env > local.yml > yml > default の解決を尊重)
|
|
21
|
+
# - PASS/FAIL カウンタ + 全 PASS で exit 0
|
|
22
|
+
#
|
|
23
|
+
# 起源: task-70 Step 4、設計 SSoT: docs/draft/harness-review-remediation-plan.md §4.2
|
|
24
|
+
|
|
25
|
+
set -uo pipefail
|
|
26
|
+
|
|
27
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
28
|
+
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
|
29
|
+
HC_CONFIG_SCRIPT="${REPO_ROOT}/.claude/scripts/hc-config.sh"
|
|
30
|
+
HC_CONFIG_YML="${REPO_ROOT}/.claude/harness-config.yml"
|
|
31
|
+
|
|
32
|
+
# task-70 Step 7 (LOW-1 DRY): enforcement matrix parse lib を source。
|
|
33
|
+
# lib が存在すれば em_guards / em_field / em_disabled_reason を取り込む。
|
|
34
|
+
_EM_PARSE_LIB="${REPO_ROOT}/.claude/scripts/lib/enforcement-matrix-parse.sh"
|
|
35
|
+
if [ -f "$_EM_PARSE_LIB" ]; then
|
|
36
|
+
# shellcheck disable=SC1090
|
|
37
|
+
source "$_EM_PARSE_LIB"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
PASS=0
|
|
41
|
+
FAIL=0
|
|
42
|
+
FAILED_CASES=""
|
|
43
|
+
|
|
44
|
+
_record() {
|
|
45
|
+
local result="$1" case_id="$2" desc="$3"
|
|
46
|
+
if [ "$result" = "PASS" ]; then
|
|
47
|
+
printf ' PASS Case %s: %s\n' "$case_id" "$desc"
|
|
48
|
+
PASS=$((PASS + 1))
|
|
49
|
+
else
|
|
50
|
+
printf ' FAIL Case %s: %s\n' "$case_id" "$desc"
|
|
51
|
+
FAIL=$((FAIL + 1))
|
|
52
|
+
FAILED_CASES="${FAILED_CASES} ${case_id}"
|
|
53
|
+
fi
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
# enforcement_matrix block の guard 名一覧を yml から抽出。
|
|
57
|
+
# task-70 Step 7 (LOW-1 DRY): awk ロジックは lib/enforcement-matrix-parse.sh に SSoT 化。
|
|
58
|
+
# lib 存在時は em_guards を、不在時は直接 awk に fallback。
|
|
59
|
+
_matrix_guards() {
|
|
60
|
+
if command -v em_guards >/dev/null 2>&1; then
|
|
61
|
+
em_guards "$HC_CONFIG_YML"
|
|
62
|
+
else
|
|
63
|
+
awk '
|
|
64
|
+
/^enforcement_matrix:[[:space:]]*$/ { in_m=1; next }
|
|
65
|
+
in_m && /^[^[:space:]]/ { in_m=0 }
|
|
66
|
+
in_m && /^ [a-z_][a-zA-Z0-9_]*:[[:space:]]*$/ {
|
|
67
|
+
line=$0; sub(/^ /,"",line); sub(/:.*$/,"",line); print line
|
|
68
|
+
}
|
|
69
|
+
' "$HC_CONFIG_YML"
|
|
70
|
+
fi
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# 指定 guard の指定 field 値を抽出 (4-space インデント ` <field>: <value>`)。
|
|
74
|
+
# $1=guard, $2=field
|
|
75
|
+
_matrix_field() {
|
|
76
|
+
if command -v em_field >/dev/null 2>&1; then
|
|
77
|
+
em_field "$HC_CONFIG_YML" "$1" "$2"
|
|
78
|
+
else
|
|
79
|
+
local guard="$1" field="$2"
|
|
80
|
+
awk -v g="$guard" -v f="$field" '
|
|
81
|
+
/^enforcement_matrix:[[:space:]]*$/ { in_m=1; next }
|
|
82
|
+
in_m && /^[^[:space:]]/ { in_m=0 }
|
|
83
|
+
in_m && $0 ~ "^ " g ":[[:space:]]*$" { in_g=1; next }
|
|
84
|
+
in_m && in_g && /^ [a-z_]/ { in_g=0 }
|
|
85
|
+
in_m && in_g && $0 ~ "^ " f ":" {
|
|
86
|
+
line=$0; sub("^ " f ":[[:space:]]*","",line); print line; exit
|
|
87
|
+
}
|
|
88
|
+
' "$HC_CONFIG_YML"
|
|
89
|
+
fi
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# 指定 guard の disabled_reason に指定 preset の理由があるか (0=あり / 1=なし)。
|
|
93
|
+
# $1=guard, $2=preset
|
|
94
|
+
# lib の em_disabled_reason は reason string を stdout に print + return 0 (理由あり)。
|
|
95
|
+
# 本関数は exit code のみを使うため stdout を /dev/null に捨てる。
|
|
96
|
+
_matrix_has_disabled_reason() {
|
|
97
|
+
if command -v em_disabled_reason >/dev/null 2>&1; then
|
|
98
|
+
em_disabled_reason "$HC_CONFIG_YML" "$1" "$2" >/dev/null
|
|
99
|
+
else
|
|
100
|
+
local guard="$1" preset="$2"
|
|
101
|
+
awk -v g="$guard" -v p="$preset" '
|
|
102
|
+
/^enforcement_matrix:[[:space:]]*$/ { in_m=1; next }
|
|
103
|
+
in_m && /^[^[:space:]]/ { in_m=0 }
|
|
104
|
+
in_m && $0 ~ "^ " g ":[[:space:]]*$" { in_g=1; next }
|
|
105
|
+
in_m && in_g && /^ [a-z_]/ { in_g=0; in_dr=0 }
|
|
106
|
+
in_m && in_g && /^ disabled_reason:[[:space:]]*$/ { in_dr=1; next }
|
|
107
|
+
in_m && in_g && /^ [a-z_]/ && !/^ disabled_reason:/ { in_dr=0 }
|
|
108
|
+
in_m && in_g && in_dr && $0 ~ "^ " p ":" {
|
|
109
|
+
val=$0; sub("^ " p ":[[:space:]]*","",val)
|
|
110
|
+
gsub(/^[\"\x27]|[\"\x27][[:space:]]*$/,"",val)
|
|
111
|
+
if (length(val) > 0) { found=1 }
|
|
112
|
+
}
|
|
113
|
+
END { exit (found ? 0 : 1) }
|
|
114
|
+
' "$HC_CONFIG_YML"
|
|
115
|
+
fi
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
# feature toggle の実効値を取得 (env > local.yml > yml > default)。
|
|
119
|
+
_effective() {
|
|
120
|
+
bash "$HC_CONFIG_SCRIPT" --get "$1" 2>/dev/null | head -n1
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
# ============================================================
|
|
124
|
+
# Case 1: enforcement_matrix が定義され guard を 1 件以上含む
|
|
125
|
+
# ============================================================
|
|
126
|
+
_case_1() (
|
|
127
|
+
set -uo pipefail
|
|
128
|
+
local guards count
|
|
129
|
+
guards="$(_matrix_guards)"
|
|
130
|
+
count=$(printf '%s\n' "$guards" | grep -c .)
|
|
131
|
+
printf 'Case 1: matrix guards=%d (%s)\n' "$count" "$(printf '%s' "$guards" | tr '\n' ' ')" >&2
|
|
132
|
+
[ "$count" -ge 4 ]
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
# ============================================================
|
|
136
|
+
# Case 2: 対象 5 guard (draft/task/workflow/gateguard/review-required) が matrix に存在
|
|
137
|
+
# ============================================================
|
|
138
|
+
_case_2() (
|
|
139
|
+
set -uo pipefail
|
|
140
|
+
local guards required missing g
|
|
141
|
+
guards="$(_matrix_guards)"
|
|
142
|
+
required="draft_flow_guard task_rule_guard workflow_guard gateguard review_required_design review_required_test review_required_module review_required_system"
|
|
143
|
+
missing=""
|
|
144
|
+
for g in $required; do
|
|
145
|
+
if ! printf '%s\n' "$guards" | grep -qx "$g"; then
|
|
146
|
+
missing="${missing} ${g}"
|
|
147
|
+
fi
|
|
148
|
+
done
|
|
149
|
+
if [ -n "$missing" ]; then
|
|
150
|
+
printf 'Case 2: missing guards in matrix:%s\n' "$missing" >&2
|
|
151
|
+
return 1
|
|
152
|
+
fi
|
|
153
|
+
return 0
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
# ============================================================
|
|
157
|
+
# Case 3: docs_claim=block かつ feature 実値=false の mismatch は
|
|
158
|
+
# 現 preset の disabled_reason が無い限り FAIL
|
|
159
|
+
# ============================================================
|
|
160
|
+
_case_3() (
|
|
161
|
+
set -uo pipefail
|
|
162
|
+
local preset guards g fkey claim eff undoc_mismatch
|
|
163
|
+
preset="$(_effective default_preset)"
|
|
164
|
+
[ -z "$preset" ] && preset="harness-dev"
|
|
165
|
+
guards="$(_matrix_guards)"
|
|
166
|
+
undoc_mismatch=""
|
|
167
|
+
while IFS= read -r g; do
|
|
168
|
+
[ -z "$g" ] && continue
|
|
169
|
+
fkey="$(_matrix_field "$g" feature_key)"
|
|
170
|
+
claim="$(_matrix_field "$g" docs_claim)"
|
|
171
|
+
[ "$claim" = "block" ] || continue
|
|
172
|
+
[ -z "$fkey" ] && continue
|
|
173
|
+
eff="$(_effective "$fkey")"
|
|
174
|
+
if [ "$eff" = "false" ]; then
|
|
175
|
+
# mismatch: docs claims block but effectively disabled
|
|
176
|
+
if ! _matrix_has_disabled_reason "$g" "$preset"; then
|
|
177
|
+
undoc_mismatch="${undoc_mismatch} ${g}"
|
|
178
|
+
printf 'Case 3: UNDOCUMENTED mismatch guard=%s feature_key=%s claim=block eff=%s preset=%s\n' \
|
|
179
|
+
"$g" "$fkey" "$eff" "$preset" >&2
|
|
180
|
+
else
|
|
181
|
+
printf 'Case 3: documented exception guard=%s (preset=%s has disabled_reason)\n' "$g" "$preset" >&2
|
|
182
|
+
fi
|
|
183
|
+
fi
|
|
184
|
+
done <<< "$guards"
|
|
185
|
+
if [ -n "$undoc_mismatch" ]; then
|
|
186
|
+
printf 'Case 3: undocumented mismatches:%s\n' "$undoc_mismatch" >&2
|
|
187
|
+
return 1
|
|
188
|
+
fi
|
|
189
|
+
return 0
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
# ============================================================
|
|
193
|
+
# Case 4: 各 guard の feature_key が yml top-level に実在する
|
|
194
|
+
# (matrix が存在しない feature_key を参照していない)
|
|
195
|
+
# ============================================================
|
|
196
|
+
_case_4() (
|
|
197
|
+
set -uo pipefail
|
|
198
|
+
local guards g fkey bad
|
|
199
|
+
guards="$(_matrix_guards)"
|
|
200
|
+
bad=""
|
|
201
|
+
while IFS= read -r g; do
|
|
202
|
+
[ -z "$g" ] && continue
|
|
203
|
+
fkey="$(_matrix_field "$g" feature_key)"
|
|
204
|
+
[ -z "$fkey" ] && { bad="${bad} ${g}:no-feature_key"; continue; }
|
|
205
|
+
if ! grep -qE "^${fkey}:" "$HC_CONFIG_YML"; then
|
|
206
|
+
bad="${bad} ${g}:${fkey}-not-in-yml"
|
|
207
|
+
fi
|
|
208
|
+
done <<< "$guards"
|
|
209
|
+
if [ -n "$bad" ]; then
|
|
210
|
+
printf 'Case 4: bad feature_key refs:%s\n' "$bad" >&2
|
|
211
|
+
return 1
|
|
212
|
+
fi
|
|
213
|
+
return 0
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
# ============================================================
|
|
217
|
+
# Case 5: docs_claim=block + 現 preset で false にする guard には必ず disabled_reason
|
|
218
|
+
# (documented-exception の網羅性: matrix の self-consistency)
|
|
219
|
+
# ============================================================
|
|
220
|
+
_case_5() (
|
|
221
|
+
set -uo pipefail
|
|
222
|
+
local preset guards g claim presetval missing
|
|
223
|
+
preset="$(_effective default_preset)"
|
|
224
|
+
[ -z "$preset" ] && preset="harness-dev"
|
|
225
|
+
guards="$(_matrix_guards)"
|
|
226
|
+
missing=""
|
|
227
|
+
while IFS= read -r g; do
|
|
228
|
+
[ -z "$g" ] && continue
|
|
229
|
+
claim="$(_matrix_field "$g" docs_claim)"
|
|
230
|
+
[ "$claim" = "block" ] || continue
|
|
231
|
+
# presets line: {advisory: false, team-default: true, ...}
|
|
232
|
+
presetval="$(_matrix_field "$g" presets)"
|
|
233
|
+
# 現 preset が false 期待なら disabled_reason 必須
|
|
234
|
+
if printf '%s' "$presetval" | grep -qE "${preset}:[[:space:]]*false"; then
|
|
235
|
+
if ! _matrix_has_disabled_reason "$g" "$preset"; then
|
|
236
|
+
missing="${missing} ${g}"
|
|
237
|
+
fi
|
|
238
|
+
fi
|
|
239
|
+
done <<< "$guards"
|
|
240
|
+
if [ -n "$missing" ]; then
|
|
241
|
+
printf 'Case 5: preset=%s expects false but no disabled_reason:%s\n' "$preset" "$missing" >&2
|
|
242
|
+
return 1
|
|
243
|
+
fi
|
|
244
|
+
return 0
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
# ============================================================
|
|
248
|
+
# Run
|
|
249
|
+
# ============================================================
|
|
250
|
+
printf '=== enforcement mismatch smoke ===\n'
|
|
251
|
+
|
|
252
|
+
if _case_1 2>&1; then _record PASS 1 "enforcement_matrix に guard が 4 件以上定義されている"; else _record FAIL 1 "enforcement_matrix に guard が 4 件以上定義されている"; fi
|
|
253
|
+
if _case_2 2>&1; then _record PASS 2 "対象 5 guard (draft/task/workflow/gateguard/review-required 4 種) が matrix に存在"; else _record FAIL 2 "対象 5 guard が matrix に存在"; fi
|
|
254
|
+
if _case_3 2>&1; then _record PASS 3 "docs=block かつ実値=false の mismatch は disabled_reason 不在で fail"; else _record FAIL 3 "undocumented mismatch を検出 (disabled_reason 不在)"; fi
|
|
255
|
+
if _case_4 2>&1; then _record PASS 4 "全 guard の feature_key が yml top-level に実在"; else _record FAIL 4 "feature_key が yml に実在"; fi
|
|
256
|
+
if _case_5 2>&1; then _record PASS 5 "現 preset で false 期待の block guard に disabled_reason が網羅"; else _record FAIL 5 "現 preset false 期待 guard の disabled_reason 網羅"; fi
|
|
257
|
+
|
|
258
|
+
printf '\n=== Result: %d PASS, %d FAIL ===\n' "$PASS" "$FAIL"
|
|
259
|
+
if [ "$FAIL" -gt 0 ]; then
|
|
260
|
+
printf 'FAILED cases:%s\n' "$FAILED_CASES" >&2
|
|
261
|
+
exit 1
|
|
262
|
+
fi
|
|
263
|
+
exit 0
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{"tool_name": "Bash", "raw": {"cmd": "ls"}, "timestamp": "2026-05-24T00:00:00Z"}
|
|
2
|
+
{"tool_name": "Read", "raw": {"path": "/tmp/foo"}, "timestamp": "2026-05-24T00:00:01Z"}
|
|
3
|
+
broken-line-1-not-json
|
|
4
|
+
broken-line-2-not-json
|
|
5
|
+
{"tool_name":"Edit","raw":"{broken
|
|
6
|
+
{"tool_name":"Write",
|
|
7
|
+
broken-line-5-not-json
|
|
8
|
+
{"tool_name": "Edit", "raw": {"file": "/tmp/x"}, "timestamp": "2026-05-24T00:00:08Z"}
|
|
9
|
+
{"tool_name": "Write", "raw": {"file": "/tmp/y"}, "timestamp": "2026-05-24T00:00:09Z"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Next Actions(副産物 / 派生 task 候補レジストリ)
|
|
2
|
+
|
|
3
|
+
すべて処理済の fixture (未処理 0 件)。
|
|
4
|
+
|
|
5
|
+
## エントリ一覧
|
|
6
|
+
|
|
7
|
+
| # | 記録日 | タイトル | 発生源 | 緊急度 | 推奨処理 | 処理結果 |
|
|
8
|
+
|---:|---|---|---|:---:|---|---|
|
|
9
|
+
| 1 | 2026-05-12 | 既に処理済 entry A | task #1 | 🔴 | (a) draft 起こし | → `docs/draft/done-a.md` → task #99 |
|
|
10
|
+
| 2 | 2026-05-12 | 既に処理済 entry B | task #2 | 🟡 | (a) draft 起こし | → `docs/draft/done-b.md` → task #100 |
|
|
11
|
+
|
|
12
|
+
## 履歴セクション
|
|
13
|
+
|
|
14
|
+
(過去 entry は省略)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Next Actions(副産物 / 派生 task 候補レジストリ)
|
|
2
|
+
|
|
3
|
+
🔴 未処理 2 件 + 🟡 未処理 1 件 + 処理済 1 件 の fixture。
|
|
4
|
+
|
|
5
|
+
## エントリ一覧
|
|
6
|
+
|
|
7
|
+
| # | 記録日 | タイトル | 発生源 | 緊急度 | 推奨処理 | 処理結果 |
|
|
8
|
+
|---:|---|---|---|:---:|---|---|
|
|
9
|
+
| 1 | 2026-05-12 | PR 作成タスク | task #1 | 🔴 | (a) draft 起こし | — |
|
|
10
|
+
| 2 | 2026-05-12 | CB-verify 観察 | task #9 | 🟡 | (a) draft 起こし | — |
|
|
11
|
+
| 3 | 2026-05-12 | hook 強制実装 | task #12 | 🔴 | (a) draft 起こし | — |
|
|
12
|
+
| 4 | 2026-05-12 | 過去処理済 entry | task #5 | 🟢 | 無視 | (c) 無視 — 別リポ管轄 |
|
|
13
|
+
|
|
14
|
+
## 履歴セクション
|
|
15
|
+
|
|
16
|
+
(過去 entry は省略)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Next Actions(副産物 / 派生 task 候補レジストリ)
|
|
2
|
+
|
|
3
|
+
🟡 未処理 1 件のみ。🔴 は 0 件 → discharge-guard は WARN のみで pass。
|
|
4
|
+
|
|
5
|
+
## エントリ一覧
|
|
6
|
+
|
|
7
|
+
| # | 記録日 | タイトル | 発生源 | 緊急度 | 推奨処理 | 処理結果 |
|
|
8
|
+
|---:|---|---|---|:---:|---|---|
|
|
9
|
+
| 1 | 2026-05-12 | 近日対応の中優先タスク | task #4 | 🟡 | (a) draft 起こし | — |
|
|
10
|
+
| 2 | 2026-05-12 | 処理済の高優先 entry | task #1 | 🔴 | (a) draft 起こし | → `docs/draft/done.md` → task #50 |
|
|
11
|
+
|
|
12
|
+
## 履歴セクション
|
|
13
|
+
|
|
14
|
+
(過去 entry は省略)
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"tool_name": "Read", "raw": {"path": "/tmp/a"}, "timestamp": "2026-05-24T00:00:00Z"}
|
|
2
|
+
broken-line-1-not-json
|
|
3
|
+
{"tool_name": "Edit", "raw": {"path": "/tmp/b"}, "timestamp": "2026-05-24T00:00:01Z"}
|
|
4
|
+
broken-line-2-not-json
|
|
5
|
+
{"tool_name": "Write", "raw": {"path": "/tmp/c"}, "timestamp": "2026-05-24T00:00:02Z"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
C01 delegation-guard.sh Edit protected src path (block) 0 yes
|
|
2
|
+
C02 delegation-guard.sh Edit README.md (non-protected pass) 0 no
|
|
3
|
+
C03 delegation-guard.sh Read protected src path (block) 0 yes
|
|
4
|
+
C04 delegation-guard.sh Bash git reset --hard HEAD (destructive block) 0 yes
|
|
5
|
+
C05 delegation-guard.sh Bash git status (whitelist pass) 0 no
|
|
6
|
+
C06 gateguard.sh Edit fresh state (first-edit block, feature ON) 0 yes
|
|
7
|
+
C07 gateguard.sh Edit feature OFF (no-op) 0 no
|
|
8
|
+
C08 task-rule-guard.sh Write new task no draft (block, feature ON) 0 yes
|
|
9
|
+
C09 task-rule-guard.sh Write feature OFF (no-op) 0 no
|
|
10
|
+
C10 draft-flow-guard.sh Write docs/zzz-new.md no draft (exit 2, feature ON) 2 no
|
|
11
|
+
C11 draft-flow-guard.sh Write docs/draft/zzz-new.md (draft path pass) 0 no
|
|
12
|
+
C12 draft-flow-guard.sh Write feature OFF (no-op) 0 no
|
|
13
|
+
C13 autonomous-action-guard.sh Loop supabase db reset (block) 0 yes
|
|
14
|
+
C14 autonomous-action-guard.sh Normal supabase db reset (advisory, no block) 0 no
|
|
15
|
+
C15 workflow-guard.sh /finish-task stage not final (exit 2, feature ON) 2 no
|
|
16
|
+
C16 workflow-guard.sh /finish-task feature OFF (no-op) 0 no
|
|
17
|
+
C17 check-md-mermaid.sh Edit .md broken mermaid (block if mermaid avail) 0 yes
|
|
18
|
+
C18 byproduct-discharge-guard.sh Stop with red entry (exit 2) 2 no
|
|
19
|
+
C19 byproduct-discharge-guard.sh Stop clean next-actions (exit 0) 0 no
|
|
20
|
+
C20 confidence-gate.sh SubagentStop confidence 0.3 (block) 0 yes
|
|
21
|
+
C21 confidence-gate.sh SubagentStop confidence 0.9 (pass) 0 no
|
|
22
|
+
C22 delegation-guard.sh Grep protected src path (block) 0 yes
|
|
23
|
+
C23 delegation-guard.sh Glob protected src path (block) 0 yes
|
|
24
|
+
C24 gateguard.sh Bash first destructive (block, feature ON) 0 yes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
event matcher hook_path timeout feature_flag classification blocker_condition success_output_bytes cwd_robust
|
|
2
|
+
PreToolUse Edit|Write .claude/hooks/delegation-guard.sh Edit 5 feature_delegation_guard_enabled blocker main-agent (not subagent) Edit/Write whose tool_input.file_path matches protected_paths/protected code ext -> stdout {"decision":"block"} (exit 0). jq absent -> fail-open. ~3 bytes (echo '{}') yes (config-loader CLAUDE_PROJECT_DIR/git; SCRIPT_DIR via dirname $0)
|
|
3
|
+
PreToolUse Edit|Write .claude/hooks/gateguard.sh Edit 5 feature_gateguard_enabled blocker main-agent first Edit/Write to a non-excluded file_path (no <state>.cleared marker yet) -> stdout {"decision":"block"} (exit 0). 2nd time same file passes. jq absent / ECC_GATEGUARD=off -> {}. ~3 bytes ({}) yes (config-loader; SCRIPT_DIR dirname $0)
|
|
4
|
+
PreToolUse Edit|Write .claude/hooks/task-rule-guard.sh Edit 5 feature_task_rule_guard_enabled blocker main-agent Write of docs/tasks/task-<id>-<slug>.md when (1) same-id task/phase file exists OR (2) no matching docs/draft -> stdout {"decision":"block"} (exit 0). Edit = advisory note only. draft Write = warn only. ~3 bytes ({}) or additionalContext JSON yes (config-loader; SCRIPT_DIR dirname $0)
|
|
5
|
+
PreToolUse Edit|Write .claude/hooks/draft-flow-guard.sh 5 feature_draft_flow_guard_enabled blocker main-agent NEW Write (file not yet existing) of docs/<basename>.md directly under docs/ (depth 1, not draft/tasks/approved_dir) with no docs/draft/<basename>.md -> exit 2 + stderr. Also exit 2 on newline in file_path (injection). jq/realpath absent -> fail-open. 0 bytes (exit 0, no stdout) yes (project-root.sh resolve_project_root + canonicalize)
|
|
6
|
+
PreToolUse Read .claude/hooks/delegation-guard.sh Read 5 feature_delegation_guard_enabled blocker main-agent Read of file under protected_paths -> stdout {"decision":"block"} (exit 0). ~3 bytes ({}) yes (config-loader; dirname $0)
|
|
7
|
+
PreToolUse Grep .claude/hooks/delegation-guard.sh Grep 5 feature_delegation_guard_enabled blocker main-agent Grep over protected_paths -> stdout {"decision":"block"} (exit 0). ~3 bytes ({}) yes (config-loader; dirname $0)
|
|
8
|
+
PreToolUse Glob .claude/hooks/delegation-guard.sh Glob 5 feature_delegation_guard_enabled blocker main-agent Glob over protected_paths -> stdout {"decision":"block"} (exit 0). ~3 bytes ({}) yes (config-loader; dirname $0)
|
|
9
|
+
PreToolUse Bash .claude/hooks/autonomous-action-guard.sh 5 feature_autonomous_action_guard_enabled blocker Loop mode + main-agent + tool_input.command segment matches 1 of 11 autonomous-deny regex (gh pr merge / gh release / supabase deploy / vercel --prod / kubectl/terraform apply / aws delete- etc) -> stdout {"decision":"block"} (exit 0). Normal mode = additionalContext only (not block). ~3 bytes ({}) or additionalContext JSON yes (config-loader + mode-loader; SCRIPT_DIR BASH_SOURCE)
|
|
10
|
+
PreToolUse Bash .claude/hooks/delegation-guard.sh Bash 5 feature_delegation_guard_enabled blocker main-agent tool_input.command matching git-destructive (10 patterns) / protected-branch push / not in bash-whitelist -> stdout {"decision":"block"} (exit 0). jq absent -> fail-open. ~3 bytes ({}) yes (config-loader; dirname $0)
|
|
11
|
+
PreToolUse Bash .claude/hooks/gateguard.sh Bash 5 feature_gateguard_enabled blocker main-agent first destructive Bash (rm -rf / git reset --hard / drop table / supabase db reset etc) with no bash-<hash>.cleared marker -> stdout {"decision":"block"} (exit 0). Non-destructive or cleared -> {}. ~3 bytes ({}) yes (config-loader; dirname $0)
|
|
12
|
+
PreToolUse Bash .claude/hooks/workflow-guard.sh Bash 5 feature_workflow_enforcement_enabled blocker tool_input.command containing /finish-task <slug> when .workflow-state/<slug>.json exists AND (current_stage != final stage OR pending_findings.module_review/system_review non-empty) -> exit 2 + stdout {"decision":"block"} + stderr. State file absent / workflow_type unknown -> fail-open. ~3 bytes ({}) yes (CLAUDE_PROJECT_DIR:-pwd for config + state root)
|
|
13
|
+
PreToolUse Agent|Task .claude/hooks/agent-marker-set.sh 5 (none - always) observer never blocks; writes marker file <dir>/<suffix>.lock. exit 0. (warns to stderr if run_in_background!=true) ~3 bytes ({}) + writes lock file yes (config-loader HC_AGENT_MARKER_DIR; dirname $0)
|
|
14
|
+
PreToolUse Agent|Task .claude/hooks/parallel-subagent-reminder.sh 5 feature_parallel_subagent_reminder_enabled advisory never blocks (fail-open exit 0); injects additionalContext system-reminder for parallelism/agent-type hints. ~3 bytes ({}) or additionalContext JSON yes (CLAUDE_PROJECT_DIR/git for state_dir; SCRIPT_DIR BASH_SOURCE)
|
|
15
|
+
PreToolUse Agent|Task .claude/hooks/reviewer-count-guard.sh 5 feature_reviewer_count_guard_enabled advisory never blocks (fail-open exit 0); injects additionalContext warn when session review-subagent count > review_max_count_<cat>. ~3 bytes ({}) or additionalContext JSON yes (CLAUDE_PROJECT_DIR/git for state_dir; SCRIPT_DIR BASH_SOURCE)
|
|
16
|
+
PreToolUse * .claude/skills/continuous-learning-v2/hooks/observe.sh 3 (none - always) observer never blocks; appends observation to homunculus/.../observations.jsonl. exit 0. 0 bytes stdout (writes jsonl + registry) yes (CLAUDE_PROJECT_DIR > git remote > git toplevel)
|
|
17
|
+
PostToolUse Agent|Task .claude/hooks/agent-marker-clear.sh 5 (none - always) observer never blocks; removes session/expired marker locks. exit 0. ~3 bytes ({}) yes (config-loader HC_AGENT_MARKER_DIR; dirname $0)
|
|
18
|
+
PostToolUse Edit|Write .claude/hooks/check-md-mermaid.sh 90 feature_check_md_mermaid_enabled blocker After Edit/Write of .md/.mdx containing a ```mermaid fence, if mermaid parser exits non-zero -> stdout {"decision":"block"} (exit 0). Non-md / no fence / no runner -> {} (fail-open). ~3 bytes ({}) yes (project-root.sh resolve_project_root; cd project_root)
|
|
19
|
+
PostToolUse * .claude/skills/continuous-learning-v2/hooks/observe.sh 3 (none - always) observer never blocks; appends observation jsonl. exit 0. 0 bytes stdout yes (CLAUDE_PROJECT_DIR > git)
|
|
20
|
+
PostToolUse * .claude/hooks/failure-loop-detect.sh 3 feature_failure_loop_detect_enabled advisory never blocks (exit 0); on 3 consecutive same-signature tool errors injects additionalContext suggesting /agent-introspect. ~3 bytes ({}) or additionalContext JSON yes (config-loader HC_FAILURE_WINDOW_DIR; dirname $0)
|
|
21
|
+
PostToolUse * .claude/hooks/why-x5-violation-detect.sh 3 feature_why_x5_enforcement_enabled advisory never blocks (exit 0); on v9 4-section format残骸 in last assistant text injects <system-reminder> to stdout. else silent. 0 bytes (silent) or system-reminder text yes (config-loader; SCRIPT_DIR BASH_SOURCE)
|
|
22
|
+
Notification (none) .claude/hooks/notify.sh 5 feature_notify_enabled observer never blocks; macOS afplay + osascript notification. no stdout. exit 0. 0 bytes stdout yes (config-loader; dirname $0; uses pwd only for project label)
|
|
23
|
+
Stop (none) .claude/hooks/stop.sh 5 feature_notify_enabled observer never blocks; macOS afplay + notification. exit 0. 0 bytes stdout partial (config-loader robust; project label from pwd basename only - cosmetic)
|
|
24
|
+
Stop (none) .claude/hooks/byproduct-discharge-guard.sh 5 feature_byproduct_discharge_enabled blocker Stop event: if next-actions.md has >=1 unprocessed 🔴 entry -> exit 2 + stderr (blocks session stop). 🟡 only -> warn exit 0. else silent. parser/file absent -> fail-open. 0 bytes stdout (exit 0) / exit 2 on block yes (project-root.sh + CLAUDE_PROJECT_DIR override)
|
|
25
|
+
Stop (none) .claude/hooks/loop-auto-progress-reminder.sh 5 feature_loop_mode_enforcement_enabled advisory never blocks; Loop mode only -> emits <system-reminder> to stdout. Normal mode no-op. 0 bytes (Normal) / system-reminder text (Loop) yes (mode-loader + config-loader; SCRIPT_DIR BASH_SOURCE)
|
|
26
|
+
Stop (none) .claude/hooks/loop-confirmation-detector.sh 5 feature_loop_mode_enforcement_enabled advisory Loop mode only; on confirmation/turn-break pattern in last assistant text emits stdout {"decision":"block"} -- but in Stop semantics this means "do NOT stop / inject reason", exit 0 (never an exit-code block). Normal mode no-op. 0 bytes (no match/Normal) / {"decision":"block"} JSON (advisory continue) yes (mode-loader + config-loader; SCRIPT_DIR BASH_SOURCE; rejects sensitive transcript paths)
|
|
27
|
+
Stop (none) .claude/hooks/tool-call-slip-detector.sh 5 feature_tool_call_slip_detect_enabled advisory mode-independent; on markup-slip痕跡 in last assistant .text emits stdout {"decision":"block"} (Stop semantics = inject reason, not exit-code block), exit 0. 0 bytes (no slip) / {"decision":"block"} JSON (advisory continue) yes (config-loader; SCRIPT_DIR BASH_SOURCE; rejects sensitive transcript paths)
|
|
28
|
+
Stop (none) .claude/skills/continuous-learning-v2/hooks/observe.sh 3 (none - always) observer never blocks; appends observation jsonl. exit 0. 0 bytes stdout yes (CLAUDE_PROJECT_DIR > git)
|
|
29
|
+
SubagentStop (none) .claude/hooks/confidence-gate.sh 10 feature_confidence_gate_enabled blocker SubagentStop for a major subagent: extracted confidence < HC_CONFIDENCE_THRESHOLD (0.6) OR regex no-match on major subagent -> stdout {"decision":"block"} (exit 0). Bypass: ECC_CONFIDENCE_GATE=off / HC_CONFIDENCE_REQUIRED=false / ECC_F3_OFF. ~3 bytes ({}) yes (config-loader; SCRIPT_DIR dirname $0)
|
|
30
|
+
SubagentStop (none) .claude/hooks/loop-auto-progress-reminder.sh 5 feature_loop_mode_enforcement_enabled advisory never blocks; Loop mode only -> <system-reminder> stdout. Normal no-op. 0 bytes (Normal) / system-reminder text (Loop) yes (mode-loader + config-loader)
|
|
31
|
+
SubagentStop (none) .claude/skills/continuous-learning-v2/hooks/observe.sh 3 (none - always) observer never blocks; appends observation jsonl. exit 0. 0 bytes stdout yes (CLAUDE_PROJECT_DIR > git)
|
|
32
|
+
SessionStart (none) .claude/hooks/session-start-wrapper.sh 15 (none - always; orchestrates 10 child hooks) bootstrap never blocks; runs 10 child SessionStart hooks in parallel (init-tasks-on-start, check-required-env, improvement-proposal, mode-session-start, mode-enforce, why-x5-reminder, next-actions-surface, mode-asana-prompt, check-serena-mcp, session-help-surface), aggregates stdout/stderr. exit 0. varies (concat of child stdout, often state/context system-reminders) yes (CLAUDE_PROJECT_DIR cd; SCRIPT_DIR BASH_SOURCE)
|
|
33
|
+
SessionStart (none) .claude/hooks/list-md-plan-first-reminder.sh 5 feature_task_rule_guard_enabled bootstrap never blocks; if drafts>=3 AND list.md task rows==0 emits <system-reminder> to stderr. else silent. 0 bytes stdout (stderr system-reminder when fired) yes (CLAUDE_PROJECT_DIR > git > pwd)
|
|
34
|
+
SessionStart (none) .claude/hooks/stale-harness-detect.sh 5 feature_stale_harness_detect_enabled bootstrap never blocks; if marker files missing OR harness_version invalid/future emits <system-reminder> to stderr. latest harness -> 0-byte silent. 0 bytes (silent when current) / stderr system-reminder yes (CLAUDE_PROJECT_DIR > git > pwd)
|
|
35
|
+
SessionStart (none) .claude/skills/continuous-learning-v2/hooks/observe.sh 3 (none - always) observer never blocks; appends observation jsonl. exit 0. 0 bytes stdout yes (CLAUDE_PROJECT_DIR > git)
|
|
36
|
+
UserPromptSubmit (none) .claude/hooks/context-budget.sh 5 feature_context_budget_enabled advisory never blocks; Loop mode only -> if context ratio >= threshold (tier 60/80/95) injects <system-reminder> to stdout (once per tier/session). Normal mode no-op. 0 bytes (below threshold/Normal) / system-reminder text yes (config-loader; SCRIPT_DIR BASH_SOURCE)
|
|
37
|
+
UserPromptSubmit (none) .claude/skills/continuous-learning-v2/hooks/observe.sh 3 (none - always) observer never blocks; appends observation jsonl. exit 0. 0 bytes stdout yes (CLAUDE_PROJECT_DIR > git)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"type":"user","message":{"role":"user","content":"hello"},"uuid":"u1"}
|
|
2
|
+
{"type":"assistant","message":{"role":"assistant","content":[{"type":"text","text":"hi"}],"usage":{"input_tokens":100000,"cache_creation_input_tokens":50000,"cache_read_input_tokens":340000,"output_tokens":10000}},"uuid":"a1"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"type":"user","message":{"role":"user","content":"hello"},"uuid":"u1"}
|
|
2
|
+
{"type":"assistant","message":{"role":"assistant","content":[{"type":"text","text":"hi"}],"usage":{"input_tokens":100000,"cache_creation_input_tokens":50000,"cache_read_input_tokens":450000,"output_tokens":5000}},"uuid":"a1"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"type":"user","message":{"role":"user","content":"hello"},"uuid":"u1"}
|
|
2
|
+
{"type":"assistant","message":{"role":"assistant","content":[{"type":"text","text":"hi"}],"usage":{"input_tokens":200000,"cache_creation_input_tokens":100000,"cache_read_input_tokens":500000,"output_tokens":10000}},"uuid":"a1"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"type":"user","message":{"role":"user","content":"hello"},"uuid":"u1"}
|
|
2
|
+
{"type":"assistant","message":{"role":"assistant","content":[{"type":"text","text":"hi"}],"usage":{"input_tokens":400000,"cache_creation_input_tokens":100000,"cache_read_input_tokens":450000,"output_tokens":10000}},"uuid":"a1"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "smoke-mid",
|
|
3
|
+
"workflow_type": "new",
|
|
4
|
+
"current_stage": "tdd",
|
|
5
|
+
"completed_stages": [
|
|
6
|
+
"requirements",
|
|
7
|
+
"basic-design",
|
|
8
|
+
"detailed-design",
|
|
9
|
+
"test-design",
|
|
10
|
+
"design-review",
|
|
11
|
+
"user-approval",
|
|
12
|
+
"task-creation"
|
|
13
|
+
],
|
|
14
|
+
"pending_findings": {
|
|
15
|
+
"module_review": [],
|
|
16
|
+
"system_review": []
|
|
17
|
+
},
|
|
18
|
+
"skip_log": [],
|
|
19
|
+
"created_at": "2026-05-12T09:00:00Z",
|
|
20
|
+
"updated_at": "2026-05-12T12:00:00Z"
|
|
21
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "smoke-blocked",
|
|
3
|
+
"workflow_type": "new",
|
|
4
|
+
"current_stage": "finish",
|
|
5
|
+
"completed_stages": [
|
|
6
|
+
"requirements",
|
|
7
|
+
"basic-design",
|
|
8
|
+
"detailed-design",
|
|
9
|
+
"test-design",
|
|
10
|
+
"design-review",
|
|
11
|
+
"user-approval",
|
|
12
|
+
"task-creation",
|
|
13
|
+
"tdd",
|
|
14
|
+
"module-review",
|
|
15
|
+
"local-test",
|
|
16
|
+
"system-review",
|
|
17
|
+
"ci-cd",
|
|
18
|
+
"scenario-test"
|
|
19
|
+
],
|
|
20
|
+
"pending_findings": {
|
|
21
|
+
"module_review": [
|
|
22
|
+
{
|
|
23
|
+
"id": "MR-001",
|
|
24
|
+
"severity": "CRITICAL",
|
|
25
|
+
"summary": "smoke fixture: simulated unresolved CRITICAL finding"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"system_review": []
|
|
29
|
+
},
|
|
30
|
+
"skip_log": [],
|
|
31
|
+
"created_at": "2026-05-12T09:00:00Z",
|
|
32
|
+
"updated_at": "2026-05-12T15:30:00Z"
|
|
33
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "smoke-clean",
|
|
3
|
+
"workflow_type": "new",
|
|
4
|
+
"current_stage": "finish",
|
|
5
|
+
"completed_stages": [
|
|
6
|
+
"requirements",
|
|
7
|
+
"basic-design",
|
|
8
|
+
"detailed-design",
|
|
9
|
+
"test-design",
|
|
10
|
+
"design-review",
|
|
11
|
+
"user-approval",
|
|
12
|
+
"task-creation",
|
|
13
|
+
"tdd",
|
|
14
|
+
"module-review",
|
|
15
|
+
"local-test",
|
|
16
|
+
"system-review",
|
|
17
|
+
"ci-cd",
|
|
18
|
+
"scenario-test"
|
|
19
|
+
],
|
|
20
|
+
"pending_findings": {
|
|
21
|
+
"module_review": [],
|
|
22
|
+
"system_review": []
|
|
23
|
+
},
|
|
24
|
+
"skip_log": [],
|
|
25
|
+
"created_at": "2026-05-12T09:00:00Z",
|
|
26
|
+
"updated_at": "2026-05-12T16:00:00Z"
|
|
27
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "smoke-modify",
|
|
3
|
+
"workflow_type": "modify",
|
|
4
|
+
"current_stage": "system-review",
|
|
5
|
+
"completed_stages": [
|
|
6
|
+
"branch-decision",
|
|
7
|
+
"checkout",
|
|
8
|
+
"recover-design",
|
|
9
|
+
"pre-test",
|
|
10
|
+
"redesign",
|
|
11
|
+
"retest-design",
|
|
12
|
+
"tdd",
|
|
13
|
+
"module-review",
|
|
14
|
+
"full-test"
|
|
15
|
+
],
|
|
16
|
+
"pending_findings": {
|
|
17
|
+
"module_review": [],
|
|
18
|
+
"system_review": []
|
|
19
|
+
},
|
|
20
|
+
"skip_log": [],
|
|
21
|
+
"created_at": "2026-05-12T09:00:00Z",
|
|
22
|
+
"updated_at": "2026-05-12T16:00:00Z"
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"/finish-task nonexistent-slug"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"/finish-task smoke-mid"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"/finish-task smoke-blocked"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"/finish-task smoke-clean"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"/finish-task smoke-blocked"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Edit","tool_input":{"file_path":"/tmp/foo.txt","old_string":"a","new_string":"b"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"ls -la"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tool_name":"Bash","tool_input":{"command":"/finish-task smoke-modify"}}
|