@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,280 @@
|
|
|
1
|
+
# Observation Rules — 観測・assertion・PASS 判定ルール
|
|
2
|
+
|
|
3
|
+
本ファイルは [SKILL.md](SKILL.md) の補助。E2E テストの **何を / どう / どこまで観測するか** を標準化する。procedure の Phase 5 (Observe) と Phase 6 (Assert) で参照。
|
|
4
|
+
|
|
5
|
+
## 観測の 5 軸
|
|
6
|
+
|
|
7
|
+
各テストは以下 5 軸を網羅して観測する。1 軸 = 1 evidence source。
|
|
8
|
+
|
|
9
|
+
### 1. DOM 軸(UI 構造)
|
|
10
|
+
|
|
11
|
+
#### 何を見るか
|
|
12
|
+
|
|
13
|
+
- 期待 element の存在 / 非存在
|
|
14
|
+
- text content の一致
|
|
15
|
+
- aria 属性(role, label, hidden)
|
|
16
|
+
- class / disabled state
|
|
17
|
+
- focus 位置
|
|
18
|
+
|
|
19
|
+
#### ツール
|
|
20
|
+
|
|
21
|
+
- e2e-runner agent: 自然言語で「ボタンが表示されているか」
|
|
22
|
+
- Playwright: `expect(locator).toBeVisible()`, `expect(locator).toHaveText(...)`
|
|
23
|
+
|
|
24
|
+
#### 評価ルール
|
|
25
|
+
|
|
26
|
+
- ✅ PASS: 期待 selector で element 取得、属性一致
|
|
27
|
+
- ❌ FAIL: element 取得不能、テキスト不一致
|
|
28
|
+
- ⚠️ WARN: 取得できるが想定外属性混入
|
|
29
|
+
|
|
30
|
+
#### 注意
|
|
31
|
+
|
|
32
|
+
- LWC は shadow DOM。selector は piercing 対応
|
|
33
|
+
- Loading state を待つ。`waitFor` で element 安定化
|
|
34
|
+
|
|
35
|
+
### 2. SOQL 軸(データ実体)
|
|
36
|
+
|
|
37
|
+
#### 何を見るか
|
|
38
|
+
|
|
39
|
+
- record の存在 / 非存在
|
|
40
|
+
- field 値(type 含む)
|
|
41
|
+
- count delta(baseline 比)
|
|
42
|
+
- related child の cascade
|
|
43
|
+
|
|
44
|
+
#### ツール
|
|
45
|
+
|
|
46
|
+
- `sf data query --target-org <alias> --query "SELECT ..."` (subagent 委譲)
|
|
47
|
+
- `sf data query --json` で structured 取得
|
|
48
|
+
|
|
49
|
+
#### 評価ルール
|
|
50
|
+
|
|
51
|
+
- ✅ PASS: 期待 record が期待値で存在
|
|
52
|
+
- ❌ FAIL: record 不存在 / field 値 mismatch / count 不一致
|
|
53
|
+
- ⚠️ WARN: 余分 record が混入(cleanup 漏れ)
|
|
54
|
+
|
|
55
|
+
#### 注意
|
|
56
|
+
|
|
57
|
+
- SOQL row limit (50k) に注意、必要なら where 句で絞る
|
|
58
|
+
- timezone を意識(CreatedDate は UTC)
|
|
59
|
+
- Custom Setting / CMDT は同 transaction 不可
|
|
60
|
+
|
|
61
|
+
### 3. Log 軸(実行ログ)
|
|
62
|
+
|
|
63
|
+
#### 何を見るか
|
|
64
|
+
|
|
65
|
+
- Apex Debug Log の例外 stack
|
|
66
|
+
- GAS Logger (`Logger.log`) の trace
|
|
67
|
+
- Slack notification の有無 / 内容
|
|
68
|
+
- External system log(Gmail label、Drive 等)
|
|
69
|
+
|
|
70
|
+
#### ツール
|
|
71
|
+
|
|
72
|
+
- `sf apex log list` / `sf apex log get` で Apex Debug
|
|
73
|
+
- GAS Web Editor → 実行ログ(user 確認)または `clasp logs`
|
|
74
|
+
- Slack: web UI / channel API
|
|
75
|
+
|
|
76
|
+
#### 評価ルール
|
|
77
|
+
|
|
78
|
+
- ✅ PASS: 期待 log 出力あり、例外なし
|
|
79
|
+
- ❌ FAIL: 想定外例外、error log
|
|
80
|
+
- ⚠️ WARN: warning level の log、retry log
|
|
81
|
+
|
|
82
|
+
#### 注意
|
|
83
|
+
|
|
84
|
+
- Debug Log は user 毎、trace flag 必要
|
|
85
|
+
- GAS Logger は **実行ログ画面で目視 or `clasp logs`**(リアルタイム視聴は GAS Web Editor)
|
|
86
|
+
|
|
87
|
+
### 4. Network 軸(HTTP 通信)
|
|
88
|
+
|
|
89
|
+
#### 何を見るか
|
|
90
|
+
|
|
91
|
+
- API request URL / method / body
|
|
92
|
+
- response status / body / headers
|
|
93
|
+
- timing(timeout 内)
|
|
94
|
+
- 認証 header(Authorization, apiKey 等)
|
|
95
|
+
|
|
96
|
+
#### ツール
|
|
97
|
+
|
|
98
|
+
- Playwright `page.on('request', ...)` / `page.on('response', ...)`
|
|
99
|
+
- Vercel Agent Browser の network capture
|
|
100
|
+
- `sf data query --use-tooling-api` で API call log(限定)
|
|
101
|
+
|
|
102
|
+
#### 評価ルール
|
|
103
|
+
|
|
104
|
+
- ✅ PASS: 期待 endpoint への期待 status response
|
|
105
|
+
- ❌ FAIL: 4xx/5xx unexpected、timeout、無 call
|
|
106
|
+
- ⚠️ WARN: retry が想定より多い、slow response
|
|
107
|
+
|
|
108
|
+
#### 注意
|
|
109
|
+
|
|
110
|
+
- CORS 制約で browser から外部 API 直叩きは見えない
|
|
111
|
+
- Salesforce 内部の Aura/LWC ↔ Apex は internal request、observability 限定
|
|
112
|
+
|
|
113
|
+
### 5. Screenshot 軸(visual)
|
|
114
|
+
|
|
115
|
+
#### 何を見るか
|
|
116
|
+
|
|
117
|
+
- レイアウト崩れ
|
|
118
|
+
- localization(日本語表示)
|
|
119
|
+
- error toast / modal display
|
|
120
|
+
- responsive 挙動
|
|
121
|
+
|
|
122
|
+
#### ツール
|
|
123
|
+
|
|
124
|
+
- e2e-runner agent / Playwright `page.screenshot()`
|
|
125
|
+
- baseline screenshot との diff(option)
|
|
126
|
+
|
|
127
|
+
#### 評価ルール
|
|
128
|
+
|
|
129
|
+
- ✅ PASS: 期待画面と一致(人間判定 or pixel diff threshold)
|
|
130
|
+
- ❌ FAIL: 表示崩れ、欠落、error visible
|
|
131
|
+
- ⚠️ WARN: minor visual change、font 差
|
|
132
|
+
|
|
133
|
+
#### 注意
|
|
134
|
+
|
|
135
|
+
- viewport size を catalog で明示(320 / 768 / 1024 / 1440)
|
|
136
|
+
- timestamp は image filename に含めて再現性確保
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## PASS / FAIL / WARN 判定の総合ルール
|
|
141
|
+
|
|
142
|
+
### ✅ PASS 条件
|
|
143
|
+
|
|
144
|
+
**全 5 軸**(または catalog で明示した必須軸)が PASS。
|
|
145
|
+
|
|
146
|
+
### ❌ FAIL 条件(即失敗)
|
|
147
|
+
|
|
148
|
+
- 必須軸(catalog で _required_)のいずれかが FAIL
|
|
149
|
+
- 例外発生(Apex / JS unhandled exception)
|
|
150
|
+
- データ整合性破壊(孤立 record、ロック残留)
|
|
151
|
+
- セキュリティ違反(権限 bypass、apiKey 漏洩)
|
|
152
|
+
|
|
153
|
+
### ⚠️ WARN 条件
|
|
154
|
+
|
|
155
|
+
- 必須軸は PASS だが、optional 軸で想定外
|
|
156
|
+
- log に warning が出ているが操作完了
|
|
157
|
+
- visual diff が threshold 内だが目視で気になる
|
|
158
|
+
|
|
159
|
+
WARN は **継続するが catalog の Notes 欄に記録**。連続 WARN は P0 化検討。
|
|
160
|
+
|
|
161
|
+
### 判定不能 (?)
|
|
162
|
+
|
|
163
|
+
- 観測 tool が不安定(network 接続不可、screenshot 失敗)
|
|
164
|
+
- 観測軸が catalog で未定義
|
|
165
|
+
- expected value が catalog に書かれていない
|
|
166
|
+
|
|
167
|
+
**判定不能 = テスト再設計** が必要、PASS とみなしてはならない。
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Evidence 保存規約
|
|
172
|
+
|
|
173
|
+
### ディレクトリ構造
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
docs/test-evidence/
|
|
177
|
+
└── <feature-name>/
|
|
178
|
+
└── <scenario-id>/
|
|
179
|
+
└── <timestamp>/
|
|
180
|
+
├── screenshot-<phase>.png
|
|
181
|
+
├── soql-<phase>.json
|
|
182
|
+
├── apex-log-<phase>.txt
|
|
183
|
+
├── network-<phase>.har
|
|
184
|
+
└── report.md
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 命名規約
|
|
188
|
+
|
|
189
|
+
- `<feature-name>`: 機能領域(例: `mail-platform`, `account-management`)
|
|
190
|
+
- `<scenario-id>`: catalog の ID(例: `P0-1`, `C-5`)
|
|
191
|
+
- `<timestamp>`: ISO 8601 形式(例: `2026-05-12T10-30-00Z`)
|
|
192
|
+
- `<phase>`: Phase 番号(例: `phase4-execute`, `phase5-observe`)
|
|
193
|
+
|
|
194
|
+
### 保存期間
|
|
195
|
+
|
|
196
|
+
- PASS の evidence: 30 日(最新のみ保持、古いものは削除)
|
|
197
|
+
- FAIL の evidence: **永続**(bug fix 完了後も regression 防止のため)
|
|
198
|
+
- WARN の evidence: 90 日
|
|
199
|
+
|
|
200
|
+
### Evidence のスタイル
|
|
201
|
+
|
|
202
|
+
- ファイル先頭にメタ情報(timestamp、user、env)
|
|
203
|
+
- 機微情報(API Key、PII)は **redact**(末尾 6 文字以外マスク)
|
|
204
|
+
- バイナリ(screenshot)以外は plain text / json で diff 可能に
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 観測「しない」境界
|
|
209
|
+
|
|
210
|
+
以下は E2E では **観測しない**(unit / integration test の責務):
|
|
211
|
+
|
|
212
|
+
- Apex 内部関数の input/output(→ Apex Test)
|
|
213
|
+
- LWC component の internal state(→ jest)
|
|
214
|
+
- DB index 効率(→ Performance Test)
|
|
215
|
+
- Memory profile(→ Apex Test System.Limits)
|
|
216
|
+
- 機微情報の暗号化アルゴリズム(→ Security Audit)
|
|
217
|
+
|
|
218
|
+
E2E は「**user / 外部システムから観測可能な振る舞い**」のみ扱う。
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 共通エラーパターン辞書
|
|
223
|
+
|
|
224
|
+
過去観測された FAIL / WARN の代表的 message / 対処:
|
|
225
|
+
|
|
226
|
+
### Apex / API
|
|
227
|
+
|
|
228
|
+
| エラー | 原因 | 対処 |
|
|
229
|
+
| -------------------------------------------------------------- | --------------------------------- | -------------------------------------- |
|
|
230
|
+
| `FORBIDDEN: You do not have access to the Apex class named: X` | classAccesses 未付与 | PS に classAccesses 追加 |
|
|
231
|
+
| `INVALID_LOGIN` | password + token 未連結、IP block | Connected App OAuth Policy、Trusted IP |
|
|
232
|
+
| `INVALID_SESSION_ID` | session timeout | Phase 3 URL mint 再実行 |
|
|
233
|
+
| `LIMIT_EXCEEDED: ApexCPU` | loop 内 SOQL、bulk 非対応 | Apex bulkify |
|
|
234
|
+
| `INSUFFICIENT_ACCESS_OR_READONLY` | sharing / OWD | Sharing Rule, profile 確認 |
|
|
235
|
+
|
|
236
|
+
### LWC / UI
|
|
237
|
+
|
|
238
|
+
| 症状 | 原因 | 対処 |
|
|
239
|
+
| -------------------- | ------------------------------------ | -------------------------------------------- |
|
|
240
|
+
| LWC が描画されない | shadow DOM piercing 失敗、wire error | Playwright `getByRole` 使用、@wire error log |
|
|
241
|
+
| Toast が見えない | variant ミスマッチ、auto-close | element wait + screenshot |
|
|
242
|
+
| Modal が閉じない | close event 未 handle | event bubbles/composed 確認 |
|
|
243
|
+
| @wire が更新されない | reactive `$` 抜け | `@wire(method, { param: '$reactive' })` |
|
|
244
|
+
|
|
245
|
+
### Network / Auth
|
|
246
|
+
|
|
247
|
+
| エラー | 原因 | 対処 |
|
|
248
|
+
| ------------------ | ----------------------- | ---------------------------------- |
|
|
249
|
+
| `URL expired` | mint から 60s 超 | per-test mint |
|
|
250
|
+
| `401 unauthorized` | apiKey / token mismatch | Custom Metadata 確認、token rotate |
|
|
251
|
+
| `403 FORBIDDEN` | PS / FLS / sharing | E-1 / E-2 / E-4 trace |
|
|
252
|
+
| `CORS error` | Origin mismatch | Connected App / CSP 確認 |
|
|
253
|
+
|
|
254
|
+
### Data Integrity
|
|
255
|
+
|
|
256
|
+
| 症状 | 原因 | 対処 |
|
|
257
|
+
| ---------------- | --------------------------------------- | ------------------------------- |
|
|
258
|
+
| Duplicate record | unique key 欠如、retry idempotency なし | Composite key、external Id |
|
|
259
|
+
| Orphan child | cascade delete 不在 | Master-Detail relationship 確認 |
|
|
260
|
+
| Stale cache | Lightning Data Service stale | `refreshApex` 呼出 |
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## 観測の自動化提案
|
|
265
|
+
|
|
266
|
+
将来的に CI/CD 化する場合:
|
|
267
|
+
|
|
268
|
+
- Phase 5 の SOQL 軸: GitHub Actions で `sf data query` 結果を assertion script に流す
|
|
269
|
+
- Log 軸: Apex Debug Log を artifact として保存
|
|
270
|
+
- Screenshot 軸: visual regression tool(Percy, Chromatic)連携
|
|
271
|
+
- Evidence: tarball で run artifact、index は GitHub Actions Summary
|
|
272
|
+
|
|
273
|
+
ただし本 skill の範囲は **観測 rules の定義** までであり、自動化実装は scope 外。
|
|
274
|
+
|
|
275
|
+
## 関連
|
|
276
|
+
|
|
277
|
+
- 手順: [procedure-template.md](procedure-template.md)
|
|
278
|
+
- パターン: [pattern-taxonomy.md](pattern-taxonomy.md)
|
|
279
|
+
- 技法: [methodology.md](methodology.md)
|
|
280
|
+
- Catalog 雛形: [catalog-template.md](catalog-template.md)
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
# Pattern Taxonomy — Salesforce E2E テストパターン分類
|
|
2
|
+
|
|
3
|
+
本ファイルは [SKILL.md](SKILL.md) の補助。Salesforce 開発の E2E テストで網羅すべきパターンを 9 カテゴリ (A-I) に分類する。各プロジェクトは該当カテゴリから必要パターンを選んで catalog 化する。
|
|
4
|
+
|
|
5
|
+
## カテゴリ一覧
|
|
6
|
+
|
|
7
|
+
| カテゴリ | 領域 | テストの主目的 |
|
|
8
|
+
| -------- | ----------------------- | ------------------------------------------- |
|
|
9
|
+
| A | データ操作 (DML / SOQL) | CRUD 経路、bulk、ガバナ制限境界 |
|
|
10
|
+
| B | Apex / 統合 | REST 経路、非同期、callout |
|
|
11
|
+
| C | LWC / UI | render、reactivity、event、shadow DOM |
|
|
12
|
+
| D | Flow / 自動化 | record-triggered、screen、scheduled |
|
|
13
|
+
| E | 権限 / セキュリティ | profile/PS、FLS、CRUD、sharing、OAuth |
|
|
14
|
+
| F | Lifecycle | navigation、session、refresh |
|
|
15
|
+
| G | UX / Visual | mobile、i18n、theme、a11y |
|
|
16
|
+
| H | Error / Edge | network、5xx、validation、limit、concurrent |
|
|
17
|
+
| I | Cross-org / Integration | inbound、outbound、retry、idempotency |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## A. データ操作 (DML / SOQL)
|
|
22
|
+
|
|
23
|
+
### A-1 Create
|
|
24
|
+
|
|
25
|
+
- **何を見る**: Apex / Flow / LWC からの insert で record が作成され、required field が populate
|
|
26
|
+
- **典型的失敗**: required 違反、validation rule、trigger NPE、duplicate rule
|
|
27
|
+
- **観測**: SOQL で Id 取得、各 field 値 assert、CreatedDate 範囲
|
|
28
|
+
|
|
29
|
+
### A-2 Read
|
|
30
|
+
|
|
31
|
+
- **何を見る**: SOQL / @wire / imperative で正しい record set が返る
|
|
32
|
+
- **典型的失敗**: sharing で見えない、FLS で field 欠落、SOQL limit、@wire の cacheable=true 罠
|
|
33
|
+
- **観測**: 期待 record 数、選択 field、order
|
|
34
|
+
|
|
35
|
+
### A-3 Update
|
|
36
|
+
|
|
37
|
+
- **何を見る**: DML update / inline edit / LWC edit で field 変更が永続化
|
|
38
|
+
- **典型的失敗**: lock contention、trigger 再帰、CreatedDate 自動 update なし
|
|
39
|
+
- **観測**: LastModifiedDate 更新、SystemModstamp、変更 field 値
|
|
40
|
+
|
|
41
|
+
### A-4 Delete
|
|
42
|
+
|
|
43
|
+
- **何を見る**: manual delete / cascade / restrict 動作
|
|
44
|
+
- **典型的失敗**: child cascade 未実装、Restrict relationship、recycle bin 残存
|
|
45
|
+
- **観測**: SOQL で record 不存在、related child の状態
|
|
46
|
+
|
|
47
|
+
### A-5 Bulk (200+ records)
|
|
48
|
+
|
|
49
|
+
- **何を見る**: 大量 record DML がガバナ制限内で処理される
|
|
50
|
+
- **典型的失敗**: SOQL row limit (50,000)、CPU time、DML statement 数、heap size
|
|
51
|
+
- **観測**: 処理件数、所要時間、debug log の limit 警告
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## B. Apex / 統合
|
|
56
|
+
|
|
57
|
+
### B-1 REST endpoint(正常系)
|
|
58
|
+
|
|
59
|
+
- **何を見る**: `@RestResource` endpoint が 200 で正しい body 返却
|
|
60
|
+
- **典型的失敗**: serialization 失敗、namespace prefix、status code 誤り
|
|
61
|
+
- **観測**: HTTP response status / body、Apex Debug Log
|
|
62
|
+
|
|
63
|
+
### B-2 REST endpoint(負テスト: 401/403/400/500)
|
|
64
|
+
|
|
65
|
+
- **何を見る**: 不正 auth / 不正 payload / Apex 例外で適切な status + error body
|
|
66
|
+
- **典型的失敗**: 例外を握り潰して 200 返す、stack trace 漏洩、CORS 不整合
|
|
67
|
+
- **観測**: HTTP status、error body 構造、log の例外 trace
|
|
68
|
+
|
|
69
|
+
### B-3 Schedulable / Batchable
|
|
70
|
+
|
|
71
|
+
- **何を見る**: schedule 登録後の execute、batch 200 record 単位処理
|
|
72
|
+
- **典型的失敗**: CronTrigger 未登録、Database.Batchable の retry、ガバナリセット
|
|
73
|
+
- **観測**: AsyncApexJob 状態、Status=Completed、NumberOfErrors
|
|
74
|
+
|
|
75
|
+
### B-4 Queueable / Future
|
|
76
|
+
|
|
77
|
+
- **何を見る**: 非同期キックで job 完了
|
|
78
|
+
- **典型的失敗**: chained queueable depth 制限、future 不可コンテキスト
|
|
79
|
+
- **観測**: AsyncApexJob、CompletedDate、JobItemsProcessed
|
|
80
|
+
|
|
81
|
+
### B-5 Trigger(before/after, 再帰防止)
|
|
82
|
+
|
|
83
|
+
- **何を見る**: bulk DML で trigger が期待回数のみ発火、再帰しない
|
|
84
|
+
- **典型的失敗**: 無限再帰、Trigger.new と old の混同、bulk 非対応
|
|
85
|
+
- **観測**: 副作用 field(Update_Count\_\_c 等)、log の trigger entry/exit
|
|
86
|
+
|
|
87
|
+
### B-6 Custom Metadata / Settings ロード
|
|
88
|
+
|
|
89
|
+
- **何を見る**: `Mdt.getInstance()` / `Settings.getOrgDefaults()` で正しい値取得
|
|
90
|
+
- **典型的失敗**: 同一 transaction での insert 後参照、Cache miss、test の SeeAllData
|
|
91
|
+
- **観測**: 取得値、log で getInstance return
|
|
92
|
+
|
|
93
|
+
### B-7 Named Credentials callout
|
|
94
|
+
|
|
95
|
+
- **何を見る**: Named Credential 経由の外部 API 呼び出し成功
|
|
96
|
+
- **典型的失敗**: credential 期限切れ、IP allowlist、protocol mismatch
|
|
97
|
+
- **観測**: HTTP request log、response、token rotation
|
|
98
|
+
|
|
99
|
+
### B-8 Platform Events
|
|
100
|
+
|
|
101
|
+
- **何を見る**: publish → subscribe で event が delivery
|
|
102
|
+
- **典型的失敗**: event volume limit、failed retry、CometD 接続切断
|
|
103
|
+
- **観測**: EventBus.publish の result、subscriber log、Replay ID
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## C. LWC / UI
|
|
108
|
+
|
|
109
|
+
### C-1 初期 render
|
|
110
|
+
|
|
111
|
+
- **何を見る**: ページロード後 component が DOM に展開
|
|
112
|
+
- **典型的失敗**: connectedCallback の例外、import エラー、scoped style 崩れ
|
|
113
|
+
- **観測**: DOM existence、shadow root 構造、screenshot
|
|
114
|
+
|
|
115
|
+
### C-2 Loading state / spinner
|
|
116
|
+
|
|
117
|
+
- **何を見る**: 非同期処理中に spinner / skeleton が表示
|
|
118
|
+
- **典型的失敗**: loading=true がずっと残る、即 false で flash
|
|
119
|
+
- **観測**: spinner element の visibility 遷移、duration
|
|
120
|
+
|
|
121
|
+
### C-3 @wire 反応性
|
|
122
|
+
|
|
123
|
+
- **何を見る**: reactive parameter 変更で wire が再 fetch
|
|
124
|
+
- **典型的失敗**: reactive 変数の `$` 抜け、cacheable=true で stale、refreshApex 未呼出
|
|
125
|
+
- **観測**: 表示データの更新、network 再リクエスト、debug log
|
|
126
|
+
|
|
127
|
+
### C-4 imperative call
|
|
128
|
+
|
|
129
|
+
- **何を見る**: ボタン click で `@AuraEnabled` メソッド呼出 → 結果反映
|
|
130
|
+
- **典型的失敗**: promise エラーハンドル抜け、then/catch 順序、toast 不発火
|
|
131
|
+
- **観測**: response data、UI 更新、toast text
|
|
132
|
+
|
|
133
|
+
### C-5 Form validation
|
|
134
|
+
|
|
135
|
+
- **何を見る**: 入力 invalid で送信 block、エラー表示
|
|
136
|
+
- **典型的失敗**: client validation で stop せず server まで投げる、message 多言語化
|
|
137
|
+
- **観測**: error message DOM、submit button disabled、focus 遷移
|
|
138
|
+
|
|
139
|
+
### C-6 Action button / Modal open-close
|
|
140
|
+
|
|
141
|
+
- **何を見る**: ボタン click で modal/dialog 開く、閉じるで状態クリア
|
|
142
|
+
- **典型的失敗**: lightning-modal の close callback 不発火、backdrop click が漏れる
|
|
143
|
+
- **観測**: modal DOM presence、aria-hidden、focus trap
|
|
144
|
+
|
|
145
|
+
### C-7 ナビゲーション
|
|
146
|
+
|
|
147
|
+
- **何を見る**: NavigationMixin で別 page / record / URL へ遷移
|
|
148
|
+
- **典型的失敗**: relative URL の解釈、param 欠落、Lightning Out で動かない
|
|
149
|
+
- **観測**: URL 変化、新ページ DOM、history stack
|
|
150
|
+
|
|
151
|
+
### C-8 Lightning Data Service cache
|
|
152
|
+
|
|
153
|
+
- **何を見る**: `getRecord` / `getRecordCreateDefaults` のキャッシュヒット
|
|
154
|
+
- **典型的失敗**: stale cache、recordId 変更で再 fetch せず
|
|
155
|
+
- **観測**: network request の有無、data 反映
|
|
156
|
+
|
|
157
|
+
### C-9 Custom Event 親子通信
|
|
158
|
+
|
|
159
|
+
- **何を見る**: child から `dispatchEvent` で parent が受信
|
|
160
|
+
- **典型的失敗**: bubbles/composed 設定漏れで親に届かず、detail シリアライズ
|
|
161
|
+
- **観測**: parent component の state 変化、handler 呼出回数
|
|
162
|
+
|
|
163
|
+
### C-10 Toast notification
|
|
164
|
+
|
|
165
|
+
- **何を見る**: 成功 / エラー時に lightning toast 表示
|
|
166
|
+
- **典型的失敗**: variant 違い、自動消失なし、stacking で先のが消える
|
|
167
|
+
- **観測**: toast DOM、role="status"、message text
|
|
168
|
+
|
|
169
|
+
### C-11 Shadow DOM 経由の選択
|
|
170
|
+
|
|
171
|
+
- **何を見る**: テストで shadow root 内の要素を取得・操作
|
|
172
|
+
- **典型的失敗**: querySelector が shadow 越え不可、Playwright が pierce 失敗
|
|
173
|
+
- **観測**: Playwright `getByRole`、locator chain、shadowRoot.querySelector
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## D. Flow / 自動化
|
|
178
|
+
|
|
179
|
+
### D-1 Record-triggered flow
|
|
180
|
+
|
|
181
|
+
- **何を見る**: insert/update trigger で flow が発火、record field 更新
|
|
182
|
+
- **典型的失敗**: entry condition mismatch、bulk 非対応、recursive update
|
|
183
|
+
- **観測**: 対象 field 値、FlowInterview record、debug log
|
|
184
|
+
|
|
185
|
+
### D-2 Screen flow path
|
|
186
|
+
|
|
187
|
+
- **何を見る**: ユーザ操作で screen 遷移、Resource に値設定
|
|
188
|
+
- **典型的失敗**: validation rule、Decision 分岐 mismatch、Loop 無限
|
|
189
|
+
- **観測**: 最終 screen の表示、変数値、screenshot
|
|
190
|
+
|
|
191
|
+
### D-3 Scheduled flow
|
|
192
|
+
|
|
193
|
+
- **何を見る**: schedule 登録、定刻で record バッチ処理
|
|
194
|
+
- **典型的失敗**: 大量 record で limit、frequency 不正、time zone
|
|
195
|
+
- **観測**: FlowInterview、対象 record の更新
|
|
196
|
+
|
|
197
|
+
### D-4 Auto-launched flow
|
|
198
|
+
|
|
199
|
+
- **何を見る**: Apex / Process から invoke、変数受け渡し
|
|
200
|
+
- **典型的失敗**: input variable mismatch、return variable 不在、subflow chain
|
|
201
|
+
- **観測**: 呼出元での結果取得、副作用 record
|
|
202
|
+
|
|
203
|
+
### D-5 Error handling path
|
|
204
|
+
|
|
205
|
+
- **何を見る**: Fault Connector / Default fault が error メッセージ表示
|
|
206
|
+
- **典型的失敗**: fault path 未設定で UnhandledFault email 飛ぶ、message 抽象的
|
|
207
|
+
- **観測**: 表示 message、log の Exception、admin email
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## E. 権限 / セキュリティ
|
|
212
|
+
|
|
213
|
+
### E-1 Profile + Permission Set 組合せ
|
|
214
|
+
|
|
215
|
+
- **何を見る**: profile + PS の union で適切な permission
|
|
216
|
+
- **典型的失敗**: PS assign 漏れ、PS Group の inherit、Muting PS
|
|
217
|
+
- **観測**: SetupEntityAccess query、UI Setup の Access Check
|
|
218
|
+
|
|
219
|
+
### E-2 FLS 制限 user の表示
|
|
220
|
+
|
|
221
|
+
- **何を見る**: FLS で field 不可の user に LWC で表示されない
|
|
222
|
+
- **典型的失敗**: `WITH SECURITY_ENFORCED` 抜け、`stripInaccessible` 未使用
|
|
223
|
+
- **観測**: 異なる user で同じ LWC を開いて表示差分
|
|
224
|
+
|
|
225
|
+
### E-3 CRUD 制限操作
|
|
226
|
+
|
|
227
|
+
- **何を見る**: CRUD 不可 user が DML 試行で reject
|
|
228
|
+
- **典型的失敗**: Apex with sharing で bypass、`Schema.sObjectType.X.isCreateable()` 抜け
|
|
229
|
+
- **観測**: DML 例外、AccessException、UI の disabled state
|
|
230
|
+
|
|
231
|
+
### E-4 Sharing rule
|
|
232
|
+
|
|
233
|
+
- **何を見る**: 所有者 / Role hierarchy / Sharing rule で record 可視
|
|
234
|
+
- **典型的失敗**: Public Read/Write OWD で意図せず公開、Manual share 未付与
|
|
235
|
+
- **観測**: 異なる user で SOQL、UserRecordAccess、Sharing reason
|
|
236
|
+
|
|
237
|
+
### E-5 Apex Class Access via PS
|
|
238
|
+
|
|
239
|
+
- **何を見る**: integration user が PS 経由で Apex class 呼出可
|
|
240
|
+
- **典型的失敗**: classAccesses 未付与で 403 FORBIDDEN
|
|
241
|
+
- **観測**: SetupEntityAccess (SetupEntityType='ApexClass')、REST 401/403
|
|
242
|
+
|
|
243
|
+
### E-6 Connected App + OAuth
|
|
244
|
+
|
|
245
|
+
- **何を見る**: Username-Password Flow / JWT Bearer Flow で access_token 取得
|
|
246
|
+
- **典型的失敗**: invalid_grant、IP block、Client Credential mismatch
|
|
247
|
+
- **観測**: token response、instance_url、token exchange error
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## F. Lifecycle
|
|
252
|
+
|
|
253
|
+
### F-1 ページ遷移
|
|
254
|
+
|
|
255
|
+
- **何を見る**: app navigation で state 保持 / リセット
|
|
256
|
+
- **典型的失敗**: cache 残留、background tab で wire 不発、url state lost
|
|
257
|
+
- **観測**: URL hash、component state、wire result
|
|
258
|
+
|
|
259
|
+
### F-2 Session timeout
|
|
260
|
+
|
|
261
|
+
- **何を見る**: 長時間放置で session expire → 再認証 prompt
|
|
262
|
+
- **典型的失敗**: silent re-auth で UX 断絶、unsaved data lost
|
|
263
|
+
- **観測**: 30 分後の API call で 401、login redirect
|
|
264
|
+
|
|
265
|
+
### F-3 再認証
|
|
266
|
+
|
|
267
|
+
- **何を見る**: session 失効後の再 login 成功 → 元 page 復帰
|
|
268
|
+
- **典型的失敗**: redirect 先 lost、retry 失敗、CSRF token mismatch
|
|
269
|
+
- **観測**: login 後の URL、operation 再実行
|
|
270
|
+
|
|
271
|
+
### F-4 Browser back/forward
|
|
272
|
+
|
|
273
|
+
- **何を見る**: navigation history で前 / 次の state が正しく restore
|
|
274
|
+
- **典型的失敗**: SPA history.pushState の管理漏れ
|
|
275
|
+
- **観測**: 戻った state の component / data
|
|
276
|
+
|
|
277
|
+
### F-5 Refresh
|
|
278
|
+
|
|
279
|
+
- **何を見る**: page reload で state 復元 / 再 fetch
|
|
280
|
+
- **典型的失敗**: local-only state lost、wire 再 cache されず stale
|
|
281
|
+
- **観測**: 再 render 後の data、network fetch
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## G. UX / Visual
|
|
286
|
+
|
|
287
|
+
### G-1 Mobile layout
|
|
288
|
+
|
|
289
|
+
- **何を見る**: Salesforce Mobile / responsive で layout 崩れず
|
|
290
|
+
- **典型的失敗**: SLDS breakpoint、column 1 stack 崩れ、touch target 過小
|
|
291
|
+
- **観測**: 異なる viewport size の screenshot
|
|
292
|
+
|
|
293
|
+
### G-2 Localization (ja_JP)
|
|
294
|
+
|
|
295
|
+
- **何を見る**: label / message / date format が日本語適切
|
|
296
|
+
- **典型的失敗**: Custom Label 翻訳漏れ、date が MM/DD/YYYY のまま、漢字 vs かな
|
|
297
|
+
- **観測**: profile language=ja の表示、Locale=ja_JP の日付
|
|
298
|
+
|
|
299
|
+
### G-3 Lightning vs Classic
|
|
300
|
+
|
|
301
|
+
- **何を見る**: Classic でも壊れない(必要なら)
|
|
302
|
+
- **典型的失敗**: LWC は Lightning 専用、$Api.Session_ID の context 違い
|
|
303
|
+
- **観測**: 両 mode で同じページを開く
|
|
304
|
+
|
|
305
|
+
### G-4 A11y(screen reader, keyboard)
|
|
306
|
+
|
|
307
|
+
- **何を見る**: aria-label、tab order、focus visible
|
|
308
|
+
- **典型的失敗**: button が div で実装、aria-label 不足、focus trap 欠落
|
|
309
|
+
- **観測**: keyboard 操作で全機能到達、screen reader 読み上げ
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## H. Error / Edge
|
|
314
|
+
|
|
315
|
+
### H-1 Network failure mid-action
|
|
316
|
+
|
|
317
|
+
- **何を見る**: 通信切断中の操作で適切な error 表示
|
|
318
|
+
- **典型的失敗**: spinner 永続、partial commit、retry なし
|
|
319
|
+
- **観測**: offline 状態にして操作、UI 表示、retry button
|
|
320
|
+
|
|
321
|
+
### H-2 Server 5xx
|
|
322
|
+
|
|
323
|
+
- **何を見る**: Apex 例外 / external 500 で UI が graceful 失敗
|
|
324
|
+
- **典型的失敗**: toast 出さず silent fail、内部 stack leak
|
|
325
|
+
- **観測**: toast variant=error、error message、log
|
|
326
|
+
|
|
327
|
+
### H-3 Validation rule 違反
|
|
328
|
+
|
|
329
|
+
- **何を見る**: validation rule trip で field error 表示
|
|
330
|
+
- **典型的失敗**: server error を生で表示、custom error message 表示崩れ
|
|
331
|
+
- **観測**: lightning-input の `messageWhenInvalid`、form-level error
|
|
332
|
+
|
|
333
|
+
### H-4 Trigger error
|
|
334
|
+
|
|
335
|
+
- **何を見る**: trigger 内 `addError` で operation reject、message 表示
|
|
336
|
+
- **典型的失敗**: 全 record reject (bulk で 1 件 fail で全部 rollback)
|
|
337
|
+
- **観測**: DML 例外、error message、UI display
|
|
338
|
+
|
|
339
|
+
### H-5 Concurrent edit conflict
|
|
340
|
+
|
|
341
|
+
- **何を見る**: 2 user 同時 edit で last-write-wins / optimistic lock
|
|
342
|
+
- **典型的失敗**: silent overwrite、SystemModstamp mismatch 未検出
|
|
343
|
+
- **観測**: 2 session で同 record edit、保存後の値
|
|
344
|
+
|
|
345
|
+
### H-6 Governor limit 違反
|
|
346
|
+
|
|
347
|
+
- **何を見る**: SOQL 100、DML 150、CPU 10s 等の境界
|
|
348
|
+
- **典型的失敗**: bulk 非対応、loop 内 SOQL、無限再帰
|
|
349
|
+
- **観測**: System.LimitException、debug log の limit 警告
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## I. Cross-org / Integration
|
|
354
|
+
|
|
355
|
+
### I-1 External system POST receive
|
|
356
|
+
|
|
357
|
+
- **何を見る**: 外部システムから REST POST で record 作成
|
|
358
|
+
- **典型的失敗**: auth bypass、payload validation 不足、idempotency なし
|
|
359
|
+
- **観測**: HTTP request log、created record、HTTP response
|
|
360
|
+
|
|
361
|
+
### I-2 Outbound callout to external
|
|
362
|
+
|
|
363
|
+
- **何を見る**: Apex から external API 呼出、retry、timeout
|
|
364
|
+
- **典型的失敗**: timeout 短すぎ、retry なし、circuit breaker なし
|
|
365
|
+
- **観測**: Apex Debug Log、external system 受信記録
|
|
366
|
+
|
|
367
|
+
### I-3 Webhook 認証
|
|
368
|
+
|
|
369
|
+
- **何を見る**: HMAC / API Key / OAuth の各方式で auth
|
|
370
|
+
- **典型的失敗**: secret 漏洩、timing attack、replay attack
|
|
371
|
+
- **観測**: 不正 secret で reject、replay test
|
|
372
|
+
|
|
373
|
+
### I-4 Retry / idempotency
|
|
374
|
+
|
|
375
|
+
- **何を見る**: 重複 request で record 二重作成しない
|
|
376
|
+
- **典型的失敗**: unique key 欠如、retry で duplicate insert
|
|
377
|
+
- **観測**: 同 request 2 回送信、record count 1 のみ
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## カテゴリ選択ガイド(プロジェクト類型別)
|
|
382
|
+
|
|
383
|
+
| プロジェクト類型 | 主要カテゴリ | 補助カテゴリ |
|
|
384
|
+
| ---------------------- | ---------------- | ------------ |
|
|
385
|
+
| LWC + Apex CRUD UI | A, C, E | F, G |
|
|
386
|
+
| 外部システム統合 | B, I, E | H |
|
|
387
|
+
| Workflow / Automation | A, D, E | H |
|
|
388
|
+
| Reporting / Dashboard | A, C, E | G |
|
|
389
|
+
| Multi-org sync | A, B, I | E, H |
|
|
390
|
+
| メール / Inbox 系 (例) | A, B, C, E, H, I | F, G |
|
|
391
|
+
|
|
392
|
+
具体的なプロジェクト catalog は [catalog-template.md](catalog-template.md) を複製して作成する。
|