aiox-core 5.0.2 → 5.0.3
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/.aiox-core/data/entity-registry.yaml +748 -763
- package/.aiox-core/install-manifest.yaml +4 -4
- package/package.json +6 -1
- package/pro/feature-registry.yaml +223 -0
- package/pro/package.json +39 -0
- package/pro/pro-config.yaml +63 -0
- package/pro/squads/README.md +24 -0
- package/pro/squads/design/HEADLINE.md +3 -0
- package/pro/squads/design/README.md +109 -0
- package/pro/squads/design/agents/brad-frost.md +1097 -0
- package/pro/squads/design/agents/dan-mall.md +857 -0
- package/pro/squads/design/agents/dave-malouf.md +2272 -0
- package/pro/squads/design/agents/design-chief.md +114 -0
- package/pro/squads/design/agents/ds-foundations-lead.md +194 -0
- package/pro/squads/design/agents/ds-token-architect.md +361 -0
- package/pro/squads/design/agents/nano-banana-generator.md +162 -0
- package/pro/squads/design/agents/storybook-expert.md +809 -0
- package/pro/squads/design/checklists/atomic-refactor-checklist.md +299 -0
- package/pro/squads/design/checklists/component-adaptation-checklist.md +81 -0
- package/pro/squads/design/checklists/design-fidelity-checklist.md +283 -0
- package/pro/squads/design/checklists/design-handoff-checklist.md +55 -0
- package/pro/squads/design/checklists/design-team-health-checklist.md +454 -0
- package/pro/squads/design/checklists/designops-maturity-checklist.md +518 -0
- package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +45 -0
- package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +147 -0
- package/pro/squads/design/checklists/ds-component-quality-checklist.md +150 -0
- package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +147 -0
- package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +99 -0
- package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +164 -0
- package/pro/squads/design/checklists/reading-accessibility-checklist.md +275 -0
- package/pro/squads/design/checklists/token-mapping-checklist.md +107 -0
- package/pro/squads/design/config/coding-standards.md +286 -0
- package/pro/squads/design/config/source-tree.md +59 -0
- package/pro/squads/design/config/tech-stack.md +48 -0
- package/pro/squads/design/config.yaml +204 -0
- package/pro/squads/design/data/agentic-design-systems-guide.md +46 -0
- package/pro/squads/design/data/agentic-ds-principles.md +100 -0
- package/pro/squads/design/data/atomic-design-principles.md +108 -0
- package/pro/squads/design/data/atomic-refactor-rules.md +582 -0
- package/pro/squads/design/data/base-component-specs.md +972 -0
- package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +270 -0
- package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +176 -0
- package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +168 -0
- package/pro/squads/design/data/brad-frost-dna.yaml +713 -0
- package/pro/squads/design/data/capability-tools.yaml +124 -0
- package/pro/squads/design/data/component-adaptation-changelog.md +318 -0
- package/pro/squads/design/data/consolidation-algorithms.md +168 -0
- package/pro/squads/design/data/critical-eye-scoring-rules.yaml +240 -0
- package/pro/squads/design/data/design-token-best-practices.md +107 -0
- package/pro/squads/design/data/design-tokens-spec.yaml +418 -0
- package/pro/squads/design/data/ds-reference-architectures.md +93 -0
- package/pro/squads/design/data/f2-qa-report.md +168 -0
- package/pro/squads/design/data/f3-derived-components-changelog.md +100 -0
- package/pro/squads/design/data/f3-qa-report.md +208 -0
- package/pro/squads/design/data/figma-base-components-raw.md +102 -0
- package/pro/squads/design/data/figma-tokens-raw.md +1549 -0
- package/pro/squads/design/data/fluent2-design-principles.md +114 -0
- package/pro/squads/design/data/high-retention-reading-guide.md +349 -0
- package/pro/squads/design/data/integration-patterns.md +207 -0
- package/pro/squads/design/data/internal-quality-chain.yaml +48 -0
- package/pro/squads/design/data/motion-tokens-guide.md +202 -0
- package/pro/squads/design/data/roi-calculation-guide.md +142 -0
- package/pro/squads/design/data/token-mapping-reference.md +213 -0
- package/pro/squads/design/data/w3c-dtcg-spec-reference.md +149 -0
- package/pro/squads/design/data/wcag-compliance-guide.md +267 -0
- package/pro/squads/design/docs/AUDIT_REPORT.md +97 -0
- package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +577 -0
- package/pro/squads/design/docs/UPGRADE_PLAN.md +618 -0
- package/pro/squads/design/docs/brad-frost-research-validation.md +372 -0
- package/pro/squads/design/docs/dave-malouf-research-validation.md +391 -0
- package/pro/squads/design/docs/tool-discovery-report.md +87 -0
- package/pro/squads/design/docs/tool-integration-plan.md +44 -0
- package/pro/squads/design/protocols/ai-first-governance.md +56 -0
- package/pro/squads/design/protocols/governance-execution-boundary.md +59 -0
- package/pro/squads/design/protocols/handoff.md +60 -0
- package/pro/squads/design/rules/.claude-rules.md +88 -0
- package/pro/squads/design/scripts/design-system/curate_colors.cjs +447 -0
- package/pro/squads/design/scripts/design-system/curate_components.cjs +217 -0
- package/pro/squads/design/scripts/design-system/curate_radius.cjs +190 -0
- package/pro/squads/design/scripts/design-system/curate_shadows.cjs +208 -0
- package/pro/squads/design/scripts/design-system/curate_spacing.cjs +243 -0
- package/pro/squads/design/scripts/design-system/curate_typography.cjs +404 -0
- package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +49 -0
- package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +142 -0
- package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +195 -0
- package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +114 -0
- package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +258 -0
- package/pro/squads/design/scripts/design-system/generate_tokens.cjs +342 -0
- package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +27 -0
- package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +232 -0
- package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +96 -0
- package/pro/squads/design/scripts/design-system/validate_curation.cjs +226 -0
- package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +72 -0
- package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +38 -0
- package/pro/squads/design/scripts/design-system/validate_registry.cjs +186 -0
- package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +78 -0
- package/pro/squads/design/scripts/dissect-artifact.cjs +806 -0
- package/pro/squads/design/scripts/validate-a11y-integration.cjs +40 -0
- package/pro/squads/design/scripts/validate-design-squad.py +411 -0
- package/pro/squads/design/squad.yaml +714 -0
- package/pro/squads/design/tasks/a11y-audit.md +340 -0
- package/pro/squads/design/tasks/aria-audit.md +525 -0
- package/pro/squads/design/tasks/atomic-refactor-execute.md +391 -0
- package/pro/squads/design/tasks/atomic-refactor-plan.md +262 -0
- package/pro/squads/design/tasks/audit-reading-experience.md +350 -0
- package/pro/squads/design/tasks/audit-tailwind-config.md +101 -0
- package/pro/squads/design/tasks/bootstrap-shadcn-library.md +96 -0
- package/pro/squads/design/tasks/bundle-audit.md +245 -0
- package/pro/squads/design/tasks/contrast-matrix.md +373 -0
- package/pro/squads/design/tasks/create-doc.md +135 -0
- package/pro/squads/design/tasks/dead-code-detection.md +329 -0
- package/pro/squads/design/tasks/design-compare.md +414 -0
- package/pro/squads/design/tasks/design-process-optimization.md +407 -0
- package/pro/squads/design/tasks/design-review-orchestration.md +99 -0
- package/pro/squads/design/tasks/design-team-scaling.md +407 -0
- package/pro/squads/design/tasks/design-tooling-audit.md +404 -0
- package/pro/squads/design/tasks/design-triage.md +89 -0
- package/pro/squads/design/tasks/designops-maturity-assessment.md +364 -0
- package/pro/squads/design/tasks/designops-metrics-setup.md +465 -0
- package/pro/squads/design/tasks/ds-agentic-audit.md +100 -0
- package/pro/squads/design/tasks/ds-agentic-setup.md +103 -0
- package/pro/squads/design/tasks/ds-audit-codebase.md +273 -0
- package/pro/squads/design/tasks/ds-build-component.md +349 -0
- package/pro/squads/design/tasks/ds-build-mcp-server.md +84 -0
- package/pro/squads/design/tasks/ds-calculate-roi.md +282 -0
- package/pro/squads/design/tasks/ds-compose-molecule.md +106 -0
- package/pro/squads/design/tasks/ds-consolidate-patterns.md +253 -0
- package/pro/squads/design/tasks/ds-context-contract.md +194 -0
- package/pro/squads/design/tasks/ds-critical-eye-compare.md +130 -0
- package/pro/squads/design/tasks/ds-critical-eye-decide.md +139 -0
- package/pro/squads/design/tasks/ds-critical-eye-inventory.md +111 -0
- package/pro/squads/design/tasks/ds-critical-eye-report.md +101 -0
- package/pro/squads/design/tasks/ds-critical-eye-score.md +109 -0
- package/pro/squads/design/tasks/ds-designops.md +99 -0
- package/pro/squads/design/tasks/ds-extend-pattern.md +91 -0
- package/pro/squads/design/tasks/ds-extract-tokens.md +312 -0
- package/pro/squads/design/tasks/ds-figma-pipeline.md +95 -0
- package/pro/squads/design/tasks/ds-fluent-audit.md +105 -0
- package/pro/squads/design/tasks/ds-fluent-build.md +110 -0
- package/pro/squads/design/tasks/ds-generate-ai-metadata.md +81 -0
- package/pro/squads/design/tasks/ds-generate-cursor-rules.md +74 -0
- package/pro/squads/design/tasks/ds-generate-documentation.md +101 -0
- package/pro/squads/design/tasks/ds-generate-migration-strategy.md +331 -0
- package/pro/squads/design/tasks/ds-generate-shock-report.md +323 -0
- package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +93 -0
- package/pro/squads/design/tasks/ds-governance.md +187 -0
- package/pro/squads/design/tasks/ds-health-metrics.md +278 -0
- package/pro/squads/design/tasks/ds-integrate-squad.md +130 -0
- package/pro/squads/design/tasks/ds-integrate-workspace.md +100 -0
- package/pro/squads/design/tasks/ds-legacy-modernization.md +302 -0
- package/pro/squads/design/tasks/ds-mcp-status.md +65 -0
- package/pro/squads/design/tasks/ds-motion-audit.md +118 -0
- package/pro/squads/design/tasks/ds-multi-framework.md +96 -0
- package/pro/squads/design/tasks/ds-parallelization-gate.md +246 -0
- package/pro/squads/design/tasks/ds-query.md +90 -0
- package/pro/squads/design/tasks/ds-rebuild-artifact.md +369 -0
- package/pro/squads/design/tasks/ds-reverse-engineer.md +194 -0
- package/pro/squads/design/tasks/ds-scan-artifact.md +131 -0
- package/pro/squads/design/tasks/ds-setup-design-system.md +297 -0
- package/pro/squads/design/tasks/ds-sync-registry.md +287 -0
- package/pro/squads/design/tasks/ds-theme-multi-brand.md +90 -0
- package/pro/squads/design/tasks/ds-token-modes.md +108 -0
- package/pro/squads/design/tasks/ds-token-w3c-extract.md +105 -0
- package/pro/squads/design/tasks/ds-validate-ai-readiness.md +69 -0
- package/pro/squads/design/tasks/ds-visual-regression.md +130 -0
- package/pro/squads/design/tasks/execute-checklist.md +141 -0
- package/pro/squads/design/tasks/export-design-tokens-dtcg.md +97 -0
- package/pro/squads/design/tasks/f1-apply-foundations.md +154 -0
- package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +130 -0
- package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +145 -0
- package/pro/squads/design/tasks/f1-qa-foundations.md +95 -0
- package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +155 -0
- package/pro/squads/design/tasks/f2-ingest-base-components.md +148 -0
- package/pro/squads/design/tasks/f2-qa-base-components.md +98 -0
- package/pro/squads/design/tasks/f3-derive-components.md +145 -0
- package/pro/squads/design/tasks/f3-qa-derived-components.md +101 -0
- package/pro/squads/design/tasks/focus-order-audit.md +450 -0
- package/pro/squads/design/tasks/sb-brownfield-migrate.md +367 -0
- package/pro/squads/design/tasks/sb-brownfield-scan.md +318 -0
- package/pro/squads/design/tasks/sb-configure.md +230 -0
- package/pro/squads/design/tasks/sb-expand-shadcn.md +213 -0
- package/pro/squads/design/tasks/sb-generate-all-stories.md +288 -0
- package/pro/squads/design/tasks/sb-install.md +152 -0
- package/pro/squads/design/tasks/sb-sync-workspace.md +239 -0
- package/pro/squads/design/tasks/sb-verify.md +203 -0
- package/pro/squads/design/tasks/tailwind-upgrade.md +117 -0
- package/pro/squads/design/tasks/token-usage-analytics.md +262 -0
- package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +82 -0
- package/pro/squads/design/tasks/validate-design-fidelity.md +222 -0
- package/pro/squads/design/templates/agent-template.yaml +46 -0
- package/pro/squads/design/templates/clone-mind-template.md +352 -0
- package/pro/squads/design/templates/component-prompt-injection-tmpl.md +236 -0
- package/pro/squads/design/templates/component-visual-spec-tmpl.md +378 -0
- package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +165 -0
- package/pro/squads/design/templates/design-fidelity-report-tmpl.md +155 -0
- package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +138 -0
- package/pro/squads/design/templates/ds-artifact-analysis.md +70 -0
- package/pro/squads/design/templates/ds-health-report-tmpl.md +236 -0
- package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +524 -0
- package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +194 -0
- package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +139 -0
- package/pro/squads/design/templates/migration-strategy-tmpl.md +524 -0
- package/pro/squads/design/templates/reading-design-tokens.css +26 -0
- package/pro/squads/design/templates/state-persistence-tmpl.yaml +219 -0
- package/pro/squads/design/templates/tokens-schema-tmpl.yaml +305 -0
- package/pro/squads/design/workflows/agentic-readiness.yaml +83 -0
- package/pro/squads/design/workflows/audit-only.yaml +198 -0
- package/pro/squads/design/workflows/brownfield-complete.yaml +257 -0
- package/pro/squads/design/workflows/critical-eye.yaml +184 -0
- package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +64 -0
- package/pro/squads/design/workflows/foundations-pipeline.yaml +192 -0
- package/pro/squads/design/workflows/greenfield-new.yaml +192 -0
- package/pro/squads/design/workflows/motion-quality.yaml +65 -0
- package/pro/squads/design/workflows/self-healing-workflow.yaml +237 -0
- package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +400 -0
- package/pro/squads/design/workflows/storybook-full-setup.yaml +280 -0
- package/pro/squads/index.js +145 -0
- package/pro/squads/squad-creator-pro/.state.json +32 -0
- package/pro/squads/squad-creator-pro/CHANGELOG.md +275 -0
- package/pro/squads/squad-creator-pro/HEADLINE.md +3 -0
- package/pro/squads/squad-creator-pro/README.md +1059 -0
- package/pro/squads/squad-creator-pro/agents/oalanicolas.md +438 -0
- package/pro/squads/squad-creator-pro/agents/pedro-valerio.md +449 -0
- package/pro/squads/squad-creator-pro/agents/squad-chief.md +1651 -0
- package/pro/squads/squad-creator-pro/agents/thiago_finch.md +976 -0
- package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +325 -0
- package/pro/squads/squad-creator-pro/checklists/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/checklists/agent-depth-checklist.md +244 -0
- package/pro/squads/squad-creator-pro/checklists/agent-quality-gate.md +434 -0
- package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +184 -0
- package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +219 -0
- package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +224 -0
- package/pro/squads/squad-creator-pro/checklists/deep-research-quality.md +506 -0
- package/pro/squads/squad-creator-pro/checklists/executor-matrix-checklist.md +260 -0
- package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +95 -0
- package/pro/squads/squad-creator-pro/checklists/mind-validation.md +374 -0
- package/pro/squads/squad-creator-pro/checklists/quality-gate-checklist.md +385 -0
- package/pro/squads/squad-creator-pro/checklists/smoke-test-agent.md +313 -0
- package/pro/squads/squad-creator-pro/checklists/sop-validation.md +250 -0
- package/pro/squads/squad-creator-pro/checklists/squad-checklist.md +1014 -0
- package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +393 -0
- package/pro/squads/squad-creator-pro/checklists/task-anatomy-checklist.md +626 -0
- package/pro/squads/squad-creator-pro/config/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/config/axioma-validator.yaml +371 -0
- package/pro/squads/squad-creator-pro/config/heuristics.yaml +753 -0
- package/pro/squads/squad-creator-pro/config/model-routing.yaml +693 -0
- package/pro/squads/squad-creator-pro/config/quality-gates.yaml +415 -0
- package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +199 -0
- package/pro/squads/squad-creator-pro/config/squad-config.yaml +165 -0
- package/pro/squads/squad-creator-pro/config/task-anatomy.yaml +263 -0
- package/pro/squads/squad-creator-pro/config/veto-conditions.yaml +455 -0
- package/pro/squads/squad-creator-pro/config.yaml +35 -0
- package/pro/squads/squad-creator-pro/data/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/data/an-anchor-words.yaml +78 -0
- package/pro/squads/squad-creator-pro/data/an-clone-anti-patterns.yaml +148 -0
- package/pro/squads/squad-creator-pro/data/an-clone-validation.yaml +190 -0
- package/pro/squads/squad-creator-pro/data/an-diagnostic-framework.yaml +164 -0
- package/pro/squads/squad-creator-pro/data/an-output-examples.yaml +102 -0
- package/pro/squads/squad-creator-pro/data/an-source-signals.yaml +98 -0
- package/pro/squads/squad-creator-pro/data/an-source-tiers.yaml +119 -0
- package/pro/squads/squad-creator-pro/data/best-practices.md +986 -0
- package/pro/squads/squad-creator-pro/data/core-heuristics.md +510 -0
- package/pro/squads/squad-creator-pro/data/decision-heuristics-framework.md +620 -0
- package/pro/squads/squad-creator-pro/data/executor-decision-tree.md +774 -0
- package/pro/squads/squad-creator-pro/data/executor-matrix-framework.md +441 -0
- package/pro/squads/squad-creator-pro/data/fusion-decision-points-analysis.md +397 -0
- package/pro/squads/squad-creator-pro/data/fusion-executor-analysis.md +677 -0
- package/pro/squads/squad-creator-pro/data/hybridops-patterns.md +1351 -0
- package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +99 -0
- package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +692 -0
- package/pro/squads/squad-creator-pro/data/pipeline-patterns.md +352 -0
- package/pro/squads/squad-creator-pro/data/pm-best-practices.md +440 -0
- package/pro/squads/squad-creator-pro/data/pv-anchor-words.yaml +64 -0
- package/pro/squads/squad-creator-pro/data/pv-authenticity-markers.yaml +200 -0
- package/pro/squads/squad-creator-pro/data/pv-meta-axiomas.yaml +162 -0
- package/pro/squads/squad-creator-pro/data/pv-output-examples.yaml +342 -0
- package/pro/squads/squad-creator-pro/data/pv-workflow-validation.yaml +318 -0
- package/pro/squads/squad-creator-pro/data/quality-dimensions-framework.md +405 -0
- package/pro/squads/squad-creator-pro/data/squad-analytics-guide.md +252 -0
- package/pro/squads/squad-creator-pro/data/squad-kb.md +987 -0
- package/pro/squads/squad-creator-pro/data/squad-registry.yaml +841 -0
- package/pro/squads/squad-creator-pro/data/squad-type-definitions.yaml +578 -0
- package/pro/squads/squad-creator-pro/data/tier-system-framework.md +475 -0
- package/pro/squads/squad-creator-pro/data/tool-evaluation-framework.md +847 -0
- package/pro/squads/squad-creator-pro/data/tool-registry.yaml +700 -0
- package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +344 -0
- package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +609 -0
- package/pro/squads/squad-creator-pro/docs/ARCHITECTURE-DIAGRAMS.md +1466 -0
- package/pro/squads/squad-creator-pro/docs/COMMANDS.md +544 -0
- package/pro/squads/squad-creator-pro/docs/CONCEPTS.md +584 -0
- package/pro/squads/squad-creator-pro/docs/FAQ.md +731 -0
- package/pro/squads/squad-creator-pro/docs/HITL-FLOW.md +255 -0
- package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +861 -0
- package/pro/squads/squad-creator-pro/docs/MIGRATION-ROADMAP-HYBRIDOPS.md +1161 -0
- package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +337 -0
- package/pro/squads/squad-creator-pro/docs/PATTERN-LIBRARY.md +333 -0
- package/pro/squads/squad-creator-pro/docs/PEDRO-VALERIO-ARCHITECTURE.md +456 -0
- package/pro/squads/squad-creator-pro/docs/POR-ONDE-COMECAR.md +210 -0
- package/pro/squads/squad-creator-pro/docs/QUICK-START.md +205 -0
- package/pro/squads/squad-creator-pro/docs/RFC-001-deterministic-refactoring.md +463 -0
- package/pro/squads/squad-creator-pro/docs/TOOL-RECOMMENDATIONS.md +379 -0
- package/pro/squads/squad-creator-pro/docs/TROUBLESHOOTING.md +412 -0
- package/pro/squads/squad-creator-pro/docs/TUTORIAL-COMPLETO.md +458 -0
- package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +354 -0
- package/pro/squads/squad-creator-pro/docs/session-report-2026-02-01.md +411 -0
- package/pro/squads/squad-creator-pro/docs/sop-extraction-process.md +674 -0
- package/pro/squads/squad-creator-pro/docs/squad-chief-agent-flow.md +981 -0
- package/pro/squads/squad-creator-pro/docs/squad-creation-pipeline-workflow.md +937 -0
- package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +229 -0
- package/pro/squads/squad-creator-pro/docs/validation-report-2026-02-01.md +439 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/HANDOFF_PROTOCOL.md +269 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/SOURCE_CLASSIFICATION.md +258 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_001.md +166 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_002.md +206 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_003.md +239 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_004.md +153 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_005.md +161 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_006.md +166 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_007.md +190 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_008.md +191 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_009.md +234 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +240 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/Assinatura_Linguistica.md +355 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/META_AXIOMAS.md +277 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_BS_001.md +144 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PA_001.md +174 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PM_001.md +191 -0
- package/pro/squads/squad-creator-pro/package.json +26 -0
- package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +63 -0
- package/pro/squads/squad-creator-pro/scripts/README.md +246 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/dependency_check.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/inventory.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/naming_validator.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/quality_gate.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/scoring.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/yaml_validator.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +443 -0
- package/pro/squads/squad-creator-pro/scripts/checklist_validator.py +451 -0
- package/pro/squads/squad-creator-pro/scripts/clone-review.sh +394 -0
- package/pro/squads/squad-creator-pro/scripts/coherence-validator.py +836 -0
- package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +243 -0
- package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +281 -0
- package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +462 -0
- package/pro/squads/squad-creator-pro/scripts/dependency_check.py +333 -0
- package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +519 -0
- package/pro/squads/squad-creator-pro/scripts/generate-squad-greeting.js +426 -0
- package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +558 -0
- package/pro/squads/squad-creator-pro/scripts/inventory.py +269 -0
- package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +151 -0
- package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +369 -0
- package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +245 -0
- package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +308 -0
- package/pro/squads/squad-creator-pro/scripts/naming_validator.py +299 -0
- package/pro/squads/squad-creator-pro/scripts/on-specialist-complete.py +98 -0
- package/pro/squads/squad-creator-pro/scripts/quality_gate.py +413 -0
- package/pro/squads/squad-creator-pro/scripts/refresh-registry.py +270 -0
- package/pro/squads/squad-creator-pro/scripts/save-session-metrics.py +136 -0
- package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +281 -0
- package/pro/squads/squad-creator-pro/scripts/scoring.py +395 -0
- package/pro/squads/squad-creator-pro/scripts/security_scanner.py +378 -0
- package/pro/squads/squad-creator-pro/scripts/squad-analytics.py +585 -0
- package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +205 -0
- package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +451 -0
- package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +471 -0
- package/pro/squads/squad-creator-pro/scripts/squad_utils.py +261 -0
- package/pro/squads/squad-creator-pro/scripts/sync-ide-command.py +590 -0
- package/pro/squads/squad-creator-pro/scripts/tests/__init__.py +1 -0
- package/pro/squads/squad-creator-pro/scripts/tests/conftest.py +309 -0
- package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +29 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +216 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_checklist_validator.py +396 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +239 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +212 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_dependency_check.py +361 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +298 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_inventory.py +307 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +211 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_naming_validator.py +373 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_quality_gate.py +280 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_refresh_registry.py +338 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_scoring.py +366 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +354 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_squad_analytics.py +450 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +252 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_yaml_validator.py +412 -0
- package/pro/squads/squad-creator-pro/scripts/validate-agent-output.py +115 -0
- package/pro/squads/squad-creator-pro/scripts/validate-all.sh +49 -0
- package/pro/squads/squad-creator-pro/scripts/validate-squad-structure.py +535 -0
- package/pro/squads/squad-creator-pro/scripts/validate-squad.sh +944 -0
- package/pro/squads/squad-creator-pro/scripts/yaml_validator.py +528 -0
- package/pro/squads/squad-creator-pro/skills/squad.md +301 -0
- package/pro/squads/squad-creator-pro/squad.yaml +36 -0
- package/pro/squads/squad-creator-pro/tasks/CHANGELOG.md +80 -0
- package/pro/squads/squad-creator-pro/tasks/an-assess-sources.md +78 -0
- package/pro/squads/squad-creator-pro/tasks/an-clone-review.md +104 -0
- package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +354 -0
- package/pro/squads/squad-creator-pro/tasks/an-design-clone.md +79 -0
- package/pro/squads/squad-creator-pro/tasks/an-diagnose-clone.md +87 -0
- package/pro/squads/squad-creator-pro/tasks/an-extract-dna.md +90 -0
- package/pro/squads/squad-creator-pro/tasks/an-extract-framework.md +100 -0
- package/pro/squads/squad-creator-pro/tasks/an-fidelity-score.md +108 -0
- package/pro/squads/squad-creator-pro/tasks/an-validate-clone.md +96 -0
- package/pro/squads/squad-creator-pro/tasks/auto-acquire-sources.md +349 -0
- package/pro/squads/squad-creator-pro/tasks/collect-sources.md +533 -0
- package/pro/squads/squad-creator-pro/tasks/create-agent.md +768 -0
- package/pro/squads/squad-creator-pro/tasks/create-documentation.md +258 -0
- package/pro/squads/squad-creator-pro/tasks/create-pipeline.md +296 -0
- package/pro/squads/squad-creator-pro/tasks/create-squad.md +933 -0
- package/pro/squads/squad-creator-pro/tasks/create-task.md +1148 -0
- package/pro/squads/squad-creator-pro/tasks/create-template.md +474 -0
- package/pro/squads/squad-creator-pro/tasks/create-workflow.md +720 -0
- package/pro/squads/squad-creator-pro/tasks/deconstruct.md +167 -0
- package/pro/squads/squad-creator-pro/tasks/deep-research-pre-agent.md +566 -0
- package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +81 -0
- package/pro/squads/squad-creator-pro/tasks/discover-tools.md +944 -0
- package/pro/squads/squad-creator-pro/tasks/extract-implicit.md +352 -0
- package/pro/squads/squad-creator-pro/tasks/extract-knowledge.md +577 -0
- package/pro/squads/squad-creator-pro/tasks/extract-sop.md +320 -0
- package/pro/squads/squad-creator-pro/tasks/extract-thinking-dna.md +653 -0
- package/pro/squads/squad-creator-pro/tasks/extract-voice-dna.md +619 -0
- package/pro/squads/squad-creator-pro/tasks/find-0.8.md +222 -0
- package/pro/squads/squad-creator-pro/tasks/install-commands.md +373 -0
- package/pro/squads/squad-creator-pro/tasks/lookup-model.md +78 -0
- package/pro/squads/squad-creator-pro/tasks/migrate-workflows-to-yaml.md +259 -0
- package/pro/squads/squad-creator-pro/tasks/next-squad.md +487 -0
- package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +851 -0
- package/pro/squads/squad-creator-pro/tasks/optimize.md +1082 -0
- package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +58 -0
- package/pro/squads/squad-creator-pro/tasks/pv-audit.md +244 -0
- package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +256 -0
- package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment.md +83 -0
- package/pro/squads/squad-creator-pro/tasks/pv-modernization-score.md +83 -0
- package/pro/squads/squad-creator-pro/tasks/qa-after-creation.md +475 -0
- package/pro/squads/squad-creator-pro/tasks/qualify-task.md +265 -0
- package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +64 -0
- package/pro/squads/squad-creator-pro/tasks/refresh-registry.md +403 -0
- package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +167 -0
- package/pro/squads/squad-creator-pro/tasks/squad-analytics.md +265 -0
- package/pro/squads/squad-creator-pro/tasks/squad-fusion.md +817 -0
- package/pro/squads/squad-creator-pro/tasks/squad-overview.md +683 -0
- package/pro/squads/squad-creator-pro/tasks/sync-ide-command.md +392 -0
- package/pro/squads/squad-creator-pro/tasks/update-mind.md +428 -0
- package/pro/squads/squad-creator-pro/tasks/upgrade-squad.md +919 -0
- package/pro/squads/squad-creator-pro/tasks/validate-extraction.md +209 -0
- package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +80 -0
- package/pro/squads/squad-creator-pro/tasks/validate-squad.md +1385 -0
- package/pro/squads/squad-creator-pro/templates/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/templates/agent-flow-doc-tmpl.md +512 -0
- package/pro/squads/squad-creator-pro/templates/agent-tmpl.md +697 -0
- package/pro/squads/squad-creator-pro/templates/config-tmpl.yaml +352 -0
- package/pro/squads/squad-creator-pro/templates/handoff-insumos-tmpl.yaml +112 -0
- package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +74 -0
- package/pro/squads/squad-creator-pro/templates/pipeline-progress-tmpl.py +373 -0
- package/pro/squads/squad-creator-pro/templates/pipeline-runner-tmpl.py +444 -0
- package/pro/squads/squad-creator-pro/templates/pipeline-state-tmpl.py +413 -0
- package/pro/squads/squad-creator-pro/templates/pop-extractor-prompt.md +549 -0
- package/pro/squads/squad-creator-pro/templates/quality-dashboard-tmpl.md +286 -0
- package/pro/squads/squad-creator-pro/templates/quality-gate-tmpl.yaml +589 -0
- package/pro/squads/squad-creator-pro/templates/readme-tmpl.md +231 -0
- package/pro/squads/squad-creator-pro/templates/research-output-tmpl.md +625 -0
- package/pro/squads/squad-creator-pro/templates/research-prompt-tmpl.md +479 -0
- package/pro/squads/squad-creator-pro/templates/squad-prd-tmpl.md +464 -0
- package/pro/squads/squad-creator-pro/templates/squad-readme-tmpl.md +170 -0
- package/pro/squads/squad-creator-pro/templates/story-create-agent-tmpl.md +284 -0
- package/pro/squads/squad-creator-pro/templates/task-tmpl.md +461 -0
- package/pro/squads/squad-creator-pro/templates/template-tmpl.yaml +227 -0
- package/pro/squads/squad-creator-pro/templates/workflow-doc-tmpl.md +860 -0
- package/pro/squads/squad-creator-pro/templates/workflow-tmpl.yaml +394 -0
- package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +268 -0
- package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +13 -0
- package/pro/squads/squad-creator-pro/test-cases/_template.yaml +147 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +275 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +140 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +202 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +413 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +358 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +299 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +320 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +351 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +247 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +389 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +366 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +452 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +281 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +332 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +517 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +213 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +69 -0
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +213 -0
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +566 -0
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +82 -0
- package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +102 -0
- package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +105 -0
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +262 -0
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +266 -0
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +94 -0
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +282 -0
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +470 -0
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +106 -0
- package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +105 -0
- package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +104 -0
- package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +11 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +106 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +209 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +96 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +30 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +129 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +242 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +393 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +488 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +74 -0
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +292 -0
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +603 -0
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +97 -0
- package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +100 -0
- package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +106 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +223 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +36 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +193 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +303 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +149 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +529 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +132 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +104 -0
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +200 -0
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +183 -0
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +112 -0
- package/pro/squads/squad-creator-pro/utils/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/workflows/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +348 -0
- package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +16 -0
- package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +16 -0
- package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +15 -0
- package/pro/squads/squad-creator-pro/workflows/validate-squad.yaml +582 -0
- package/pro/squads/squad-creator-pro/workflows/wf-auto-acquire-sources.yaml +518 -0
- package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +46 -0
- package/pro/squads/squad-creator-pro/workflows/wf-clone-mind.yaml +521 -0
- package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +47 -0
- package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +1619 -0
- package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +711 -0
- package/pro/squads/squad-creator-pro/workflows/wf-discover-tools.yaml +1439 -0
- package/pro/squads/squad-creator-pro/workflows/wf-extraction-pipeline.yaml +486 -0
- package/pro/squads/squad-creator-pro/workflows/wf-mind-research-loop.yaml +668 -0
- package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +800 -0
- package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +684 -0
- package/pro/squads/squad-creator-pro/workflows/wf-research-then-create-agent.yaml +921 -0
- package/pro/squads/squad-creator-pro/workflows/wf-squad-fusion.yaml +1684 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# Task: Bundle Size Audit
|
|
2
|
+
|
|
3
|
+
> Command: `*bundle-audit [path]`
|
|
4
|
+
> Purpose: Analyze CSS/JS bundle size contribution per component
|
|
5
|
+
> **Execution Type:** `Worker`
|
|
6
|
+
> **Dependencies:** depends_on: `[]` · enables: `[]` · workflow: `metrics`
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This task performs detailed bundle analysis:
|
|
11
|
+
- CSS class usage and estimated size
|
|
12
|
+
- Component JS size estimation
|
|
13
|
+
- Tree-shaking opportunities
|
|
14
|
+
- Duplicate code detection
|
|
15
|
+
|
|
16
|
+
## Prerequisites
|
|
17
|
+
|
|
18
|
+
- Target path (default: `app/components/`)
|
|
19
|
+
- Build output available (optional, for accurate sizes)
|
|
20
|
+
|
|
21
|
+
## Execution Steps
|
|
22
|
+
|
|
23
|
+
### Step 1: CSS Class Analysis
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Extract all Tailwind classes used
|
|
27
|
+
grep -rohn --include="*.tsx" 'className="[^"]*"' {path}/ \
|
|
28
|
+
| tr '"' '\n' | tr ' ' '\n' \
|
|
29
|
+
| grep -v "^$\|className=" \
|
|
30
|
+
| sort | uniq -c | sort -rn > /tmp/class-usage.txt
|
|
31
|
+
|
|
32
|
+
# Count unique classes
|
|
33
|
+
unique=$(cat /tmp/class-usage.txt | wc -l)
|
|
34
|
+
|
|
35
|
+
# Most used classes (optimization candidates)
|
|
36
|
+
head -20 /tmp/class-usage.txt
|
|
37
|
+
|
|
38
|
+
# Rarely used classes (bundle bloat candidates)
|
|
39
|
+
tail -50 /tmp/class-usage.txt | head -20
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Output:**
|
|
43
|
+
```
|
|
44
|
+
CSS Class Analysis
|
|
45
|
+
==================
|
|
46
|
+
Total unique classes: 234
|
|
47
|
+
Estimated CSS footprint: ~12KB (234 * 50 bytes avg)
|
|
48
|
+
|
|
49
|
+
Most Used (top 10):
|
|
50
|
+
142 flex
|
|
51
|
+
128 items-center
|
|
52
|
+
98 p-4
|
|
53
|
+
87 text-sm
|
|
54
|
+
...
|
|
55
|
+
|
|
56
|
+
Rarely Used (potential bloat):
|
|
57
|
+
1 animate-accordion-down
|
|
58
|
+
1 scroll-smooth
|
|
59
|
+
...
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Step 2: Component Size Estimation
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Lines per component (proxy for JS size)
|
|
66
|
+
find {path}/ -name "*.tsx" -exec wc -l {} \; \
|
|
67
|
+
| sort -rn > /tmp/component-sizes.txt
|
|
68
|
+
|
|
69
|
+
# Top 10 largest
|
|
70
|
+
head -10 /tmp/component-sizes.txt
|
|
71
|
+
|
|
72
|
+
# Estimate JS size (rough: 1 line ≈ 50 bytes minified)
|
|
73
|
+
while read lines file; do
|
|
74
|
+
kb=$(echo "scale=1; $lines * 50 / 1024" | bc)
|
|
75
|
+
echo "$kb KB - $file"
|
|
76
|
+
done < /tmp/component-sizes.txt | head -10
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Output:**
|
|
80
|
+
```
|
|
81
|
+
Component Size Estimation
|
|
82
|
+
=========================
|
|
83
|
+
Largest Components:
|
|
84
|
+
18.2 KB - FeedbackSection.tsx (373 lines)
|
|
85
|
+
14.1 KB - ListGroupsView.tsx (289 lines)
|
|
86
|
+
...
|
|
87
|
+
|
|
88
|
+
Total estimated: ~150KB (before minification)
|
|
89
|
+
After minification: ~45KB (estimated 70% reduction)
|
|
90
|
+
After gzip: ~12KB (estimated 75% compression)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Step 3: Import Analysis (Tree-shaking)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Find unused imports (tree-shake candidates)
|
|
97
|
+
# Check imports vs actual usage in file
|
|
98
|
+
for file in $(find {path}/ -name "*.tsx"); do
|
|
99
|
+
imports=$(grep "^import" "$file" | grep -oP "{ [^}]+ }" | tr -d '{},' | tr ' ' '\n' | grep -v "^$")
|
|
100
|
+
for imp in $imports; do
|
|
101
|
+
count=$(grep -c "\b$imp\b" "$file")
|
|
102
|
+
if [ "$count" -eq 1 ]; then
|
|
103
|
+
echo "UNUSED: $imp in $file"
|
|
104
|
+
fi
|
|
105
|
+
done
|
|
106
|
+
done
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Step 4: Duplicate Code Detection
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Find similar code blocks (potential extraction candidates)
|
|
113
|
+
# Look for repeated JSX patterns
|
|
114
|
+
grep -rhn --include="*.tsx" "<div className=" {path}/ \
|
|
115
|
+
| cut -d: -f3- \
|
|
116
|
+
| sort | uniq -c | sort -rn \
|
|
117
|
+
| awk '$1 > 3 {print}' | head -20
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Output:**
|
|
121
|
+
```
|
|
122
|
+
Duplicate Patterns Detected
|
|
123
|
+
===========================
|
|
124
|
+
12 <div className="flex items-center gap-2">
|
|
125
|
+
8 <div className="p-4 rounded-lg border">
|
|
126
|
+
6 <div className="text-sm text-muted-foreground">
|
|
127
|
+
...
|
|
128
|
+
|
|
129
|
+
Recommendation: Extract to shared molecules
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Step 5: Bundle Report Generation
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
# Bundle Audit Report
|
|
136
|
+
Generated: {timestamp}
|
|
137
|
+
Path: {path}
|
|
138
|
+
|
|
139
|
+
## Summary
|
|
140
|
+
| Metric | Value | Target | Status |
|
|
141
|
+
|--------|-------|--------|--------|
|
|
142
|
+
| Unique CSS Classes | 234 | <500 | ✅ |
|
|
143
|
+
| Est. CSS Size | 12KB | <50KB | ✅ |
|
|
144
|
+
| Est. JS Size (min) | 45KB | <100KB | ✅ |
|
|
145
|
+
| Est. Total (gzip) | 15KB | <30KB | ✅ |
|
|
146
|
+
|
|
147
|
+
## CSS Analysis
|
|
148
|
+
|
|
149
|
+
### Class Usage Distribution
|
|
150
|
+
| Range | Count | % of Total |
|
|
151
|
+
|-------|-------|------------|
|
|
152
|
+
| Used >50x | 12 | 5% |
|
|
153
|
+
| Used 10-50x | 45 | 19% |
|
|
154
|
+
| Used 2-10x | 89 | 38% |
|
|
155
|
+
| Used 1x | 88 | 38% |
|
|
156
|
+
|
|
157
|
+
### Top 10 Classes
|
|
158
|
+
| Class | Usage | Estimated Size |
|
|
159
|
+
|-------|-------|----------------|
|
|
160
|
+
| flex | 142 | included |
|
|
161
|
+
| items-center | 128 | included |
|
|
162
|
+
| p-4 | 98 | included |
|
|
163
|
+
| ... | ... | ... |
|
|
164
|
+
|
|
165
|
+
### Rarely Used Classes (bloat candidates)
|
|
166
|
+
| Class | Usage | Recommendation |
|
|
167
|
+
|-------|-------|----------------|
|
|
168
|
+
| animate-accordion-down | 1 | Consider removal |
|
|
169
|
+
| scroll-smooth | 1 | Consider removal |
|
|
170
|
+
| ... | ... | ... |
|
|
171
|
+
|
|
172
|
+
## JS Analysis
|
|
173
|
+
|
|
174
|
+
### Largest Components
|
|
175
|
+
| Component | Lines | Est. Size | Status |
|
|
176
|
+
|-----------|-------|-----------|--------|
|
|
177
|
+
| FeedbackSection.tsx | 373 | 18KB | ⚠️ Refactor |
|
|
178
|
+
| ListGroupsView.tsx | 289 | 14KB | ⚠️ Refactor |
|
|
179
|
+
| ... | ... | ... | ... |
|
|
180
|
+
|
|
181
|
+
### Tree-shaking Opportunities
|
|
182
|
+
| File | Unused Imports | Savings |
|
|
183
|
+
|------|----------------|---------|
|
|
184
|
+
| Header.tsx | lodash, date-fns | ~5KB |
|
|
185
|
+
| ... | ... | ... |
|
|
186
|
+
|
|
187
|
+
## Duplicate Code
|
|
188
|
+
|
|
189
|
+
### Repeated Patterns (extract to molecules)
|
|
190
|
+
| Pattern | Occurrences | Files |
|
|
191
|
+
|---------|-------------|-------|
|
|
192
|
+
| `<div className="flex items-center gap-2">` | 12 | Card, List, ... |
|
|
193
|
+
| ... | ... | ... |
|
|
194
|
+
|
|
195
|
+
## Recommendations
|
|
196
|
+
|
|
197
|
+
1. **HIGH:** Refactor FeedbackSection (18KB → target 5KB)
|
|
198
|
+
2. **MEDIUM:** Extract 12 duplicate flex patterns to molecule
|
|
199
|
+
3. **LOW:** Remove 15 rarely-used CSS classes
|
|
200
|
+
4. **INFO:** Enable dynamic imports for Dialog, Modal
|
|
201
|
+
|
|
202
|
+
## Projected Savings
|
|
203
|
+
| Action | Current | After | Savings |
|
|
204
|
+
|--------|---------|-------|---------|
|
|
205
|
+
| Refactor large components | 150KB | 80KB | 47% |
|
|
206
|
+
| Extract duplicates | - | - | ~5KB |
|
|
207
|
+
| Remove unused classes | 12KB | 10KB | 17% |
|
|
208
|
+
| **Total** | **162KB** | **90KB** | **44%** |
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Failure Handling
|
|
212
|
+
|
|
213
|
+
- **No .tsx files found in path:** Exit with error "No component files in {path}. Verify target path."
|
|
214
|
+
- **Tailwind config not found:** Skip custom class analysis, note "Custom CSS analysis skipped — no tailwind.config found"
|
|
215
|
+
- **Build output not available:** Use line-count estimation instead of actual bundle sizes. Note "Estimates based on source lines, not build output"
|
|
216
|
+
- **Import analysis produces false positives:** Filter out type-only imports and re-exported barrel imports before reporting unused
|
|
217
|
+
|
|
218
|
+
## Output
|
|
219
|
+
|
|
220
|
+
- `outputs/design-system/{project}/metrics/bundle-audit-report.md`
|
|
221
|
+
- `outputs/design-system/{project}/metrics/class-usage.txt`
|
|
222
|
+
- `outputs/design-system/{project}/metrics/component-sizes.txt`
|
|
223
|
+
|
|
224
|
+
## Related Checklists
|
|
225
|
+
|
|
226
|
+
- `squads/design/checklists/ds-pattern-audit-checklist.md`
|
|
227
|
+
- `squads/design/checklists/ds-component-quality-checklist.md`
|
|
228
|
+
|
|
229
|
+
## Success Criteria
|
|
230
|
+
|
|
231
|
+
- [ ] All CSS classes catalogued
|
|
232
|
+
- [ ] Component sizes estimated
|
|
233
|
+
- [ ] Tree-shaking opportunities identified
|
|
234
|
+
- [ ] Duplicate patterns found
|
|
235
|
+
- [ ] Report with actionable recommendations
|
|
236
|
+
|
|
237
|
+
## Related Commands
|
|
238
|
+
|
|
239
|
+
- `*ds-health` - Overall health dashboard
|
|
240
|
+
- `*dead-code` - Unused code detection
|
|
241
|
+
- `*refactor-plan` - Plan component refactoring
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
## Process Guards
|
|
245
|
+
- **On Fail:** Stop execution, capture evidence, and return remediation steps before proceeding.
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# Task: contrast-matrix
|
|
2
|
+
|
|
3
|
+
> **Command:** `*contrast-matrix {path}`
|
|
4
|
+
> **Agent:** Brad Frost (Design System Architect)
|
|
5
|
+
> **Purpose:** Generate complete color contrast matrix with WCAG 2.2 + APCA validation
|
|
6
|
+
> **Execution Type:** `Worker`
|
|
7
|
+
> **Dependencies:** depends_on: `[]` · enables: `[]` · workflow: `accessibility`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Generates a comprehensive contrast matrix showing all foreground/background color combinations in the codebase with:
|
|
14
|
+
- WCAG 2.2 contrast ratios (AA and AAA)
|
|
15
|
+
- APCA (Advanced Perceptual Contrast Algorithm) Lc values
|
|
16
|
+
- Usage locations
|
|
17
|
+
- Pass/fail indicators
|
|
18
|
+
- Remediation suggestions
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Input
|
|
23
|
+
|
|
24
|
+
| Parameter | Required | Description |
|
|
25
|
+
|-----------|----------|-------------|
|
|
26
|
+
| `path` | Yes | Directory to scan (e.g., `./app/components`) |
|
|
27
|
+
| `--format` | No | Output: `table`, `html`, `json` (default: `table`) |
|
|
28
|
+
| `--include-tokens` | No | Include design token colors |
|
|
29
|
+
| `--theme` | No | Filter by theme: `light`, `dark`, `sepia`, `all` (default: `all`) |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Execution Steps
|
|
34
|
+
|
|
35
|
+
### Phase 1: Color Extraction
|
|
36
|
+
|
|
37
|
+
Extract all colors from:
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// Sources to scan
|
|
41
|
+
const colorSources = [
|
|
42
|
+
// CSS/SCSS
|
|
43
|
+
'color:', 'background-color:', 'border-color:', 'fill:', 'stroke:',
|
|
44
|
+
// Tailwind classes
|
|
45
|
+
'text-', 'bg-', 'border-', 'fill-', 'stroke-',
|
|
46
|
+
// CSS variables
|
|
47
|
+
'var(--color-', '--color-',
|
|
48
|
+
// Inline styles
|
|
49
|
+
'style={{ color:', 'style={{ backgroundColor:',
|
|
50
|
+
// Hex values
|
|
51
|
+
'#[0-9A-Fa-f]{3,8}',
|
|
52
|
+
// RGB/RGBA
|
|
53
|
+
'rgb(', 'rgba(',
|
|
54
|
+
// HSL/HSLA
|
|
55
|
+
'hsl(', 'hsla(',
|
|
56
|
+
// OKLCH
|
|
57
|
+
'oklch('
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
interface ExtractedColor {
|
|
61
|
+
value: string; // Normalized hex
|
|
62
|
+
original: string; // Original format found
|
|
63
|
+
source: 'css' | 'tailwind' | 'token' | 'inline';
|
|
64
|
+
usage: 'foreground' | 'background' | 'border' | 'unknown';
|
|
65
|
+
files: Array<{ path: string; line: number }>;
|
|
66
|
+
theme?: 'light' | 'dark' | 'sepia';
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Phase 2: Contrast Calculation
|
|
71
|
+
|
|
72
|
+
For each foreground/background pair:
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
interface ContrastResult {
|
|
76
|
+
foreground: string;
|
|
77
|
+
background: string;
|
|
78
|
+
|
|
79
|
+
// WCAG 2.x Contrast Ratio
|
|
80
|
+
wcagRatio: number; // e.g., 4.52:1
|
|
81
|
+
|
|
82
|
+
// WCAG 2.2 Compliance
|
|
83
|
+
wcag: {
|
|
84
|
+
AA_normal: boolean; // ≥4.5:1 for <18px
|
|
85
|
+
AA_large: boolean; // ≥3:1 for ≥18px/bold
|
|
86
|
+
AAA_normal: boolean; // ≥7:1
|
|
87
|
+
AAA_large: boolean; // ≥4.5:1
|
|
88
|
+
ui_components: boolean; // ≥3:1 (borders, icons)
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// APCA (Lc values)
|
|
92
|
+
apca: {
|
|
93
|
+
Lc: number; // Lightness contrast (-108 to +106)
|
|
94
|
+
recommended_size: string; // e.g., "14px+" or "18px bold+"
|
|
95
|
+
pass: boolean;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// Usage context
|
|
99
|
+
usage: Array<{
|
|
100
|
+
file: string;
|
|
101
|
+
line: number;
|
|
102
|
+
element: string; // e.g., "Button", "p", "span"
|
|
103
|
+
fontSize: string; // If detectable
|
|
104
|
+
fontWeight: string; // If detectable
|
|
105
|
+
}>;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Phase 3: WCAG 2.2 + APCA Calculations
|
|
110
|
+
|
|
111
|
+
**WCAG 2.x Contrast Ratio Formula:**
|
|
112
|
+
```typescript
|
|
113
|
+
function getWCAGContrastRatio(fg: string, bg: string): number {
|
|
114
|
+
const L1 = getRelativeLuminance(fg);
|
|
115
|
+
const L2 = getRelativeLuminance(bg);
|
|
116
|
+
const lighter = Math.max(L1, L2);
|
|
117
|
+
const darker = Math.min(L1, L2);
|
|
118
|
+
return (lighter + 0.05) / (darker + 0.05);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function getRelativeLuminance(hex: string): number {
|
|
122
|
+
const rgb = hexToRgb(hex);
|
|
123
|
+
const [r, g, b] = rgb.map(c => {
|
|
124
|
+
c = c / 255;
|
|
125
|
+
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
126
|
+
});
|
|
127
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**APCA Lc Calculation:**
|
|
132
|
+
```typescript
|
|
133
|
+
// APCA W3 reference algorithm
|
|
134
|
+
function getAPCAContrast(textColor: string, bgColor: string): number {
|
|
135
|
+
// Uses SAPC (Spatial Perception of Color) model
|
|
136
|
+
// Returns Lc (Lightness contrast) value
|
|
137
|
+
// Positive = light text on dark bg
|
|
138
|
+
// Negative = dark text on light bg
|
|
139
|
+
// |Lc| ≥ 60 is generally readable
|
|
140
|
+
// |Lc| ≥ 75 is comfortable for body text
|
|
141
|
+
// |Lc| ≥ 90 is excellent
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**APCA Minimum Lc Values by Font Size/Weight:**
|
|
146
|
+
|
|
147
|
+
| Font Size | Weight | Min |Lc| for Body | Min |Lc| for UI |
|
|
148
|
+
|-----------|--------|---------------------|-------------------|
|
|
149
|
+
| 12px | 400 | 90 | 75 |
|
|
150
|
+
| 14px | 400 | 75 | 60 |
|
|
151
|
+
| 16px | 400 | 60 | 50 |
|
|
152
|
+
| 18px | 400 | 55 | 45 |
|
|
153
|
+
| 24px | 400 | 45 | 40 |
|
|
154
|
+
| 14px | 700 | 60 | 50 |
|
|
155
|
+
| 18px | 700 | 50 | 40 |
|
|
156
|
+
|
|
157
|
+
### Phase 4: Matrix Generation
|
|
158
|
+
|
|
159
|
+
Group by theme and generate matrix:
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
interface ContrastMatrix {
|
|
163
|
+
theme: 'light' | 'dark' | 'sepia';
|
|
164
|
+
colors: {
|
|
165
|
+
foregrounds: ExtractedColor[];
|
|
166
|
+
backgrounds: ExtractedColor[];
|
|
167
|
+
};
|
|
168
|
+
pairs: ContrastResult[];
|
|
169
|
+
summary: {
|
|
170
|
+
total_pairs: number;
|
|
171
|
+
wcag_aa_pass: number;
|
|
172
|
+
wcag_aaa_pass: number;
|
|
173
|
+
apca_pass: number;
|
|
174
|
+
failures: number;
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Output
|
|
182
|
+
|
|
183
|
+
### 1. Matrix Table (Default)
|
|
184
|
+
|
|
185
|
+
```markdown
|
|
186
|
+
# Color Contrast Matrix
|
|
187
|
+
|
|
188
|
+
**Theme:** Light
|
|
189
|
+
**Scanned:** ./app/components (487 files)
|
|
190
|
+
**Date:** 2026-01-05
|
|
191
|
+
|
|
192
|
+
## Summary
|
|
193
|
+
|
|
194
|
+
| Metric | Count | Percentage |
|
|
195
|
+
|--------|-------|------------|
|
|
196
|
+
| Total pairs | 156 | 100% |
|
|
197
|
+
| WCAG AA Pass | 142 | 91.0% |
|
|
198
|
+
| WCAG AAA Pass | 98 | 62.8% |
|
|
199
|
+
| APCA Pass | 138 | 88.5% |
|
|
200
|
+
| **Failures** | **14** | **9.0%** |
|
|
201
|
+
|
|
202
|
+
## Complete Matrix
|
|
203
|
+
|
|
204
|
+
| Foreground | Background | Ratio | AA | AAA | APCA Lc | Status |
|
|
205
|
+
|------------|------------|-------|----|----|---------|--------|
|
|
206
|
+
| #212121 | #FAFAFA | 16.1:1 | ✓ | ✓ | -92.4 | ✅ Pass |
|
|
207
|
+
| #424242 | #FFFFFF | 10.5:1 | ✓ | ✓ | -85.2 | ✅ Pass |
|
|
208
|
+
| #757575 | #FFFFFF | 4.6:1 | ✓ | ✗ | -63.1 | ⚠️ AA only |
|
|
209
|
+
| #999999 | #FFFFFF | 2.8:1 | ✗ | ✗ | -48.7 | ❌ Fail |
|
|
210
|
+
| #D4AF37 | #1A1A1A | 8.2:1 | ✓ | ✓ | +78.3 | ✅ Pass |
|
|
211
|
+
|
|
212
|
+
## Failures Detail
|
|
213
|
+
|
|
214
|
+
### ❌ #999999 on #FFFFFF (2.8:1)
|
|
215
|
+
|
|
216
|
+
**Problem:** Fails WCAG AA (need 4.5:1)
|
|
217
|
+
**APCA Lc:** -48.7 (need ≥60 for body text)
|
|
218
|
+
**Used in:**
|
|
219
|
+
- `app/components/ui/Input.tsx:45` - placeholder text
|
|
220
|
+
- `app/components/ui/Label.tsx:12` - disabled state
|
|
221
|
+
|
|
222
|
+
**Recommendations:**
|
|
223
|
+
1. Darken to #767676 for 4.5:1 (minimum AA)
|
|
224
|
+
2. Darken to #595959 for 7:1 (AAA compliant)
|
|
225
|
+
3. Or change background to #F0F0F0 with #999999 = 3.3:1 (large text only)
|
|
226
|
+
|
|
227
|
+
### ⚠️ #757575 on #FFFFFF (4.6:1)
|
|
228
|
+
|
|
229
|
+
**Problem:** Passes AA but fails AAA
|
|
230
|
+
**Used in:**
|
|
231
|
+
- `app/components/shared/Caption.tsx:8` - 12px caption text
|
|
232
|
+
|
|
233
|
+
**Note:** For 12px text, APCA recommends Lc ≥ 75. Current Lc is -63.1.
|
|
234
|
+
**Recommendation:** Darken to #616161 for Lc -72 or increase font size to 14px+.
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### 2. HTML Report (with --format html)
|
|
238
|
+
|
|
239
|
+
Interactive HTML with:
|
|
240
|
+
- Color swatches
|
|
241
|
+
- Visual comparison
|
|
242
|
+
- Filter by pass/fail
|
|
243
|
+
- Sort by ratio
|
|
244
|
+
- Export to CSV
|
|
245
|
+
|
|
246
|
+
### 3. JSON Output (with --format json)
|
|
247
|
+
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"meta": {
|
|
251
|
+
"path": "./app/components",
|
|
252
|
+
"date": "2026-01-05T14:30:00Z",
|
|
253
|
+
"theme": "all"
|
|
254
|
+
},
|
|
255
|
+
"themes": [
|
|
256
|
+
{
|
|
257
|
+
"name": "light",
|
|
258
|
+
"pairs": [
|
|
259
|
+
{
|
|
260
|
+
"fg": "#212121",
|
|
261
|
+
"bg": "#FAFAFA",
|
|
262
|
+
"wcag_ratio": 16.1,
|
|
263
|
+
"wcag_aa": true,
|
|
264
|
+
"wcag_aaa": true,
|
|
265
|
+
"apca_lc": -92.4,
|
|
266
|
+
"apca_pass": true,
|
|
267
|
+
"usage": [...]
|
|
268
|
+
}
|
|
269
|
+
],
|
|
270
|
+
"summary": {
|
|
271
|
+
"total": 156,
|
|
272
|
+
"aa_pass": 142,
|
|
273
|
+
"aaa_pass": 98,
|
|
274
|
+
"failures": 14
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
]
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## WCAG 2.2 + Reading Guide Alignment
|
|
284
|
+
|
|
285
|
+
This task validates against the reading guide principles:
|
|
286
|
+
|
|
287
|
+
| Rule | Contrast Requirement | This Task |
|
|
288
|
+
|------|---------------------|-----------|
|
|
289
|
+
| Rule 8 | Minimum 4.5:1 (WCAG AA) | ✓ Validates |
|
|
290
|
+
| Rule 10 | Dark mode: avoid pure black/white | ✓ Detects 21:1 |
|
|
291
|
+
| Rule 13 | Links distinguishable ≥3:1 from text | ✓ Validates link colors |
|
|
292
|
+
| Accessibility | APCA for modern accuracy | ✓ Includes APCA Lc |
|
|
293
|
+
|
|
294
|
+
**Special Checks:**
|
|
295
|
+
- Dark mode halation detection (contrast > 18:1 flagged)
|
|
296
|
+
- Link vs text color contrast (≥3:1 required)
|
|
297
|
+
- Focus indicator contrast (≥3:1 vs background)
|
|
298
|
+
- Placeholder text contrast (often fails)
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Integration
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Full matrix
|
|
306
|
+
*contrast-matrix ./app/components
|
|
307
|
+
|
|
308
|
+
# Light theme only, HTML output
|
|
309
|
+
*contrast-matrix ./app/components --theme light --format html
|
|
310
|
+
|
|
311
|
+
# Include design tokens
|
|
312
|
+
*contrast-matrix ./app/components --include-tokens
|
|
313
|
+
|
|
314
|
+
# As part of full audit
|
|
315
|
+
*a11y-audit ./app/components --scope color
|
|
316
|
+
# → Calls *contrast-matrix internally
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## State Update
|
|
322
|
+
|
|
323
|
+
```yaml
|
|
324
|
+
contrast_matrix:
|
|
325
|
+
last_run: "2026-01-05T14:30:00Z"
|
|
326
|
+
path: "./app/components"
|
|
327
|
+
themes_scanned: ["light", "dark"]
|
|
328
|
+
results:
|
|
329
|
+
total_pairs: 156
|
|
330
|
+
wcag_aa_pass: 142
|
|
331
|
+
wcag_aaa_pass: 98
|
|
332
|
+
apca_pass: 138
|
|
333
|
+
failures: 14
|
|
334
|
+
failure_rate: "9.0%"
|
|
335
|
+
critical_failures:
|
|
336
|
+
- fg: "#999999"
|
|
337
|
+
bg: "#FFFFFF"
|
|
338
|
+
ratio: 2.8
|
|
339
|
+
files: ["Input.tsx:45", "Label.tsx:12"]
|
|
340
|
+
next_action: "Fix 14 contrast failures"
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Failure Handling
|
|
346
|
+
|
|
347
|
+
- **Color extraction returns >1000 unique pairs:** Filter to high-frequency combinations (used >=5 times), group similar colors within ΔE <3, generate subset matrix with coverage threshold, provide full matrix as JSON export
|
|
348
|
+
- **APCA calculation library unavailable or outdated:** Fallback to WCAG 2.2 ratios only, document APCA as recommended future enhancement, suggest apca-w3 npm package installation for next run
|
|
349
|
+
- **Dynamic theme switching prevents color extraction:** Run matrix per theme separately, capture CSS variables per theme context, manually test theme switcher to extract computed values from DevTools, aggregate results by theme
|
|
350
|
+
- **Contrast failures exceed remediation capacity (>100 failures):** Triage by component usage frequency and user-facing visibility, auto-generate fix suggestions for top 20 failures, provide batch color adjustment script for systematic fixes, schedule phased remediation
|
|
351
|
+
|
|
352
|
+
## Success Criteria
|
|
353
|
+
|
|
354
|
+
- [ ] All foreground/background color combinations extracted from codebase
|
|
355
|
+
- [ ] WCAG 2.2 contrast ratios calculated for every combination
|
|
356
|
+
- [ ] APCA Lc values calculated for every combination
|
|
357
|
+
- [ ] Pass/fail indicators for AA, AAA, and APCA thresholds
|
|
358
|
+
- [ ] Matrix output generated in requested format (table/html/json)
|
|
359
|
+
- [ ] Failing combinations include remediation suggestions with closest passing color
|
|
360
|
+
- [ ] Design token colors included when --include-tokens flag used
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
**Brad says:** "Contrast isn't subjective. Numbers don't lie. 4.5:1 or it fails."
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
## Related Checklists
|
|
368
|
+
|
|
369
|
+
- `squads/design/checklists/ds-accessibility-wcag-checklist.md`
|
|
370
|
+
- `squads/design/checklists/ds-a11y-release-gate-checklist.md`
|
|
371
|
+
|
|
372
|
+
## Process Guards
|
|
373
|
+
- **On Fail:** Stop execution, capture evidence, and return remediation steps before proceeding.
|