agileflow 4.0.0-alpha.2 → 4.0.0-alpha.21
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/CHANGELOG.md +51 -0
- package/content/plugins/accessibility/plugin.yaml +14 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/SKILL.md +392 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/aria-patterns.md +528 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/testing-checklist.md +457 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/wcag-guide.md +683 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/audit-page.md +310 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/implement-accessible-component.md +479 -0
- package/content/plugins/ads/agents/ads-audit-budget.md +185 -0
- package/content/plugins/ads/agents/ads-audit-compliance.md +171 -0
- package/content/plugins/ads/agents/ads-audit-creative.md +168 -0
- package/content/plugins/ads/agents/ads-audit-google.md +227 -0
- package/content/plugins/ads/agents/ads-audit-meta.md +184 -0
- package/content/plugins/ads/agents/ads-audit-tracking.md +205 -0
- package/content/plugins/ads/agents/ads-consensus.md +410 -0
- package/content/plugins/ads/agents/ads-generate.md +152 -0
- package/content/plugins/ads/agents/ads-performance-tracker.md +212 -0
- package/content/plugins/ads/plugin.yaml +23 -4
- package/content/plugins/ads/skills/agileflow-ads/SKILL.md +218 -0
- package/content/plugins/ads/skills/agileflow-ads/references/ad-copy-formula-guide.md +131 -0
- package/content/plugins/ads/skills/agileflow-ads/references/audience-targeting-guide.md +137 -0
- package/content/plugins/ads/skills/agileflow-ads/references/bid-strategy-guide.md +115 -0
- package/content/plugins/ads/skills/agileflow-ads/references/platform-benchmarks.md +100 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/audit.md +118 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/generate.md +84 -0
- package/content/plugins/audit/agents/a11y-analyzer-aria.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-forms.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-keyboard.md +183 -0
- package/content/plugins/audit/agents/a11y-analyzer-semantic.md +169 -0
- package/content/plugins/audit/agents/a11y-analyzer-visual.md +172 -0
- package/content/plugins/audit/agents/a11y-consensus.md +249 -0
- package/content/plugins/audit/agents/accessibility.md +558 -0
- package/content/plugins/audit/agents/api-quality-analyzer-conventions.md +156 -0
- package/content/plugins/audit/agents/api-quality-analyzer-docs.md +184 -0
- package/content/plugins/audit/agents/api-quality-analyzer-errors.md +191 -0
- package/content/plugins/audit/agents/api-quality-analyzer-pagination.md +179 -0
- package/content/plugins/audit/agents/api-quality-analyzer-versioning.md +150 -0
- package/content/plugins/audit/agents/api-quality-consensus.md +217 -0
- package/content/plugins/audit/agents/api-validator.md +191 -0
- package/content/plugins/audit/agents/arch-analyzer-circular.md +156 -0
- package/content/plugins/audit/agents/arch-analyzer-complexity.md +193 -0
- package/content/plugins/audit/agents/arch-analyzer-coupling.md +152 -0
- package/content/plugins/audit/agents/arch-analyzer-layering.md +160 -0
- package/content/plugins/audit/agents/arch-analyzer-patterns.md +210 -0
- package/content/plugins/audit/agents/arch-consensus.md +228 -0
- package/content/plugins/audit/agents/browser-qa.md +342 -0
- package/content/plugins/audit/agents/code-reviewer.md +298 -0
- package/content/plugins/audit/agents/completeness-analyzer-api.md +199 -0
- package/content/plugins/audit/agents/completeness-analyzer-conditional.md +211 -0
- package/content/plugins/audit/agents/completeness-analyzer-handlers.md +166 -0
- package/content/plugins/audit/agents/completeness-analyzer-imports.md +165 -0
- package/content/plugins/audit/agents/completeness-analyzer-routes.md +190 -0
- package/content/plugins/audit/agents/completeness-analyzer-state.md +196 -0
- package/content/plugins/audit/agents/completeness-analyzer-stubs.md +206 -0
- package/content/plugins/audit/agents/completeness-consensus.md +295 -0
- package/content/plugins/audit/agents/error-analyzer.md +213 -0
- package/content/plugins/audit/agents/flow-analyzer-authorization.md +182 -0
- package/content/plugins/audit/agents/flow-analyzer-discovery.md +174 -0
- package/content/plugins/audit/agents/flow-analyzer-errors.md +186 -0
- package/content/plugins/audit/agents/flow-analyzer-feedback.md +185 -0
- package/content/plugins/audit/agents/flow-analyzer-navigation.md +177 -0
- package/content/plugins/audit/agents/flow-analyzer-persistence.md +193 -0
- package/content/plugins/audit/agents/flow-analyzer-wiring.md +169 -0
- package/content/plugins/audit/agents/flow-consensus.md +237 -0
- package/content/plugins/audit/agents/legal-analyzer-a11y.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-ai.md +121 -0
- package/content/plugins/audit/agents/legal-analyzer-consumer.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-content.md +117 -0
- package/content/plugins/audit/agents/legal-analyzer-international.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-licensing.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-privacy.md +112 -0
- package/content/plugins/audit/agents/legal-analyzer-security.md +116 -0
- package/content/plugins/audit/agents/legal-analyzer-terms.md +115 -0
- package/content/plugins/audit/agents/legal-consensus.md +250 -0
- package/content/plugins/audit/agents/logic-analyzer-edge.md +179 -0
- package/content/plugins/audit/agents/logic-analyzer-flow.md +264 -0
- package/content/plugins/audit/agents/logic-analyzer-invariant.md +215 -0
- package/content/plugins/audit/agents/logic-analyzer-race.md +280 -0
- package/content/plugins/audit/agents/logic-analyzer-type.md +227 -0
- package/content/plugins/audit/agents/logic-consensus.md +259 -0
- package/content/plugins/audit/agents/perf-analyzer-assets.md +182 -0
- package/content/plugins/audit/agents/perf-analyzer-bundle.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-caching.md +170 -0
- package/content/plugins/audit/agents/perf-analyzer-compute.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-memory.md +193 -0
- package/content/plugins/audit/agents/perf-analyzer-network.md +165 -0
- package/content/plugins/audit/agents/perf-analyzer-queries.md +162 -0
- package/content/plugins/audit/agents/perf-analyzer-rendering.md +168 -0
- package/content/plugins/audit/agents/perf-consensus.md +287 -0
- package/content/plugins/audit/agents/qa.md +820 -0
- package/content/plugins/audit/agents/quality-analyzer-comments.md +159 -0
- package/content/plugins/audit/agents/quality-analyzer-duplication.md +184 -0
- package/content/plugins/audit/agents/quality-analyzer-naming.md +160 -0
- package/content/plugins/audit/agents/quality-consensus.md +241 -0
- package/content/plugins/audit/agents/schema-validator.md +473 -0
- package/content/plugins/audit/agents/security-analyzer-api.md +210 -0
- package/content/plugins/audit/agents/security-analyzer-auth.md +169 -0
- package/content/plugins/audit/agents/security-analyzer-authz.md +180 -0
- package/content/plugins/audit/agents/security-analyzer-deps.md +153 -0
- package/content/plugins/audit/agents/security-analyzer-infra.md +184 -0
- package/content/plugins/audit/agents/security-analyzer-injection.md +155 -0
- package/content/plugins/audit/agents/security-analyzer-input.md +201 -0
- package/content/plugins/audit/agents/security-analyzer-secrets.md +183 -0
- package/content/plugins/audit/agents/security-consensus.md +283 -0
- package/content/plugins/audit/agents/test-analyzer-assertions.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-coverage.md +189 -0
- package/content/plugins/audit/agents/test-analyzer-fragility.md +193 -0
- package/content/plugins/audit/agents/test-analyzer-integration.md +161 -0
- package/content/plugins/audit/agents/test-analyzer-maintenance.md +180 -0
- package/content/plugins/audit/agents/test-analyzer-mocking.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-patterns.md +196 -0
- package/content/plugins/audit/agents/test-analyzer-structure.md +184 -0
- package/content/plugins/audit/agents/test-consensus.md +301 -0
- package/content/plugins/audit/agents/testing.md +561 -0
- package/content/plugins/audit/agents/ui-validator.md +344 -0
- package/content/plugins/audit/plugin.yaml +186 -5
- package/content/plugins/audit/skills/agileflow-audit/SKILL.md +113 -0
- package/content/plugins/audit/skills/agileflow-audit/references/audit-depth-guide.md +151 -0
- package/content/plugins/audit/skills/agileflow-audit/references/dependency-risk-guide.md +139 -0
- package/content/plugins/audit/skills/agileflow-audit/references/owasp-top10.md +120 -0
- package/content/plugins/audit/skills/agileflow-audit/references/performance-budget-guide.md +143 -0
- package/content/plugins/audit/skills/agileflow-audit/references/wcag-criteria.md +117 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/run-audit.md +52 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/tdd.md +66 -0
- package/content/plugins/core/agents/adr-writer.md +521 -0
- package/content/plugins/core/agents/epic-planner.md +520 -0
- package/content/plugins/core/agents/mentor.md +709 -0
- package/content/plugins/core/agents/orchestrator.md +776 -0
- package/content/plugins/core/agents/team-coordinator.md +334 -0
- package/content/plugins/core/agents/team-lead.md +181 -0
- package/content/plugins/core/agents/workspace-orchestrator.md +146 -0
- package/content/plugins/core/hooks/context-loader.js +31 -4
- package/content/plugins/core/hooks/damage-control-bash.js +10 -2
- package/content/plugins/core/hooks/damage-control-edit.js +4 -1
- package/content/plugins/core/hooks/damage-control-patterns.yaml +1 -1
- package/content/plugins/core/hooks/damage-control-write.js +4 -1
- package/content/plugins/core/hooks/{pre-compact-state.js → post-compact-state.js} +25 -8
- package/content/plugins/core/hooks/preferences-injector.js +352 -0
- package/content/plugins/core/plugin.yaml +24 -28
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +34 -8
- package/content/plugins/core/skills/agileflow-adr/references/madr-format-guide.md +86 -0
- package/content/plugins/core/skills/agileflow-adr/workflows/write-adr.md +57 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +94 -27
- package/content/plugins/core/skills/agileflow-babysit-mentor/references/mentor-decision-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/workflows/mentor-session.md +79 -0
- package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +37 -7
- package/content/plugins/core/skills/agileflow-epic-planner/references/epic-sizing-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-epic-planner/workflows/plan-epic.md +55 -0
- package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +36 -20
- package/content/plugins/core/skills/agileflow-status-updater/references/status-transitions.md +89 -0
- package/content/plugins/core/skills/agileflow-status-updater/workflows/update-status.md +56 -0
- package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +39 -114
- package/content/plugins/core/skills/agileflow-story-writer/references/estimation-reference.md +36 -0
- package/content/plugins/core/skills/agileflow-story-writer/references/story-template.md +92 -0
- package/content/plugins/core/skills/agileflow-story-writer/workflows/write-story.md +138 -0
- package/content/plugins/council/agents/council-advocate.md +223 -0
- package/content/plugins/council/agents/council-analyst.md +278 -0
- package/content/plugins/council/agents/council-compounder.md +204 -0
- package/content/plugins/council/agents/council-contrarian.md +217 -0
- package/content/plugins/council/agents/council-moonshot.md +217 -0
- package/content/plugins/council/agents/council-optimist.md +185 -0
- package/content/plugins/council/agents/council-revenue.md +200 -0
- package/content/plugins/council/agents/council-technical.md +218 -0
- package/content/plugins/council/agents/multi-expert.md +334 -0
- package/content/plugins/council/plugin.yaml +23 -4
- package/content/plugins/council/skills/agileflow-council/SKILL.md +102 -0
- package/content/plugins/council/skills/agileflow-council/references/decision-log-template.md +109 -0
- package/content/plugins/council/skills/agileflow-council/references/perspective-guide.md +104 -0
- package/content/plugins/council/skills/agileflow-council/references/when-to-convene-guide.md +112 -0
- package/content/plugins/council/skills/agileflow-council/workflows/convene.md +73 -0
- package/content/plugins/council/skills/agileflow-council/workflows/multi-expert.md +75 -0
- package/content/plugins/database/plugin.yaml +14 -0
- package/content/plugins/database/skills/agileflow-database/SKILL.md +284 -0
- package/content/plugins/database/skills/agileflow-database/references/indexing-guide.md +313 -0
- package/content/plugins/database/skills/agileflow-database/references/migration-guide.md +328 -0
- package/content/plugins/database/skills/agileflow-database/references/schema-design-guide.md +467 -0
- package/content/plugins/database/skills/agileflow-database/workflows/design-schema.md +213 -0
- package/content/plugins/database/skills/agileflow-database/workflows/optimize-query.md +253 -0
- package/content/plugins/debugging/plugin.yaml +14 -0
- package/content/plugins/debugging/skills/agileflow-debug/SKILL.md +236 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/common-patterns.md +350 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/debugging-strategies.md +328 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/debug-issue.md +187 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/reproduce-bug.md +194 -0
- package/content/plugins/delivery/agents/ci.md +547 -0
- package/content/plugins/delivery/agents/devops.md +789 -0
- package/content/plugins/delivery/plugin.yaml +19 -0
- package/content/plugins/delivery/skills/agileflow-delivery/SKILL.md +111 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/changelog-format-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/ci-pipeline-guide.md +158 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/pr-checklist-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/release-checklist.md +142 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/changelog.md +72 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/deploy.md +74 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/pr.md +75 -0
- package/content/plugins/docs/agents/documentation.md +544 -0
- package/content/plugins/docs/agents/readme-updater.md +640 -0
- package/content/plugins/docs/plugin.yaml +19 -0
- package/content/plugins/docs/skills/agileflow-docs/SKILL.md +106 -0
- package/content/plugins/docs/skills/agileflow-docs/references/api-doc-template.md +167 -0
- package/content/plugins/docs/skills/agileflow-docs/references/doc-types-guide.md +141 -0
- package/content/plugins/docs/skills/agileflow-docs/references/readme-template.md +156 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/readme-sync.md +57 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/sync.md +64 -0
- package/content/plugins/engineering/agents/api.md +718 -0
- package/content/plugins/engineering/agents/codebase-query.md +285 -0
- package/content/plugins/engineering/agents/compliance.md +559 -0
- package/content/plugins/engineering/agents/database.md +644 -0
- package/content/plugins/engineering/agents/integrations.md +644 -0
- package/content/plugins/engineering/agents/mobile.md +552 -0
- package/content/plugins/engineering/agents/monitoring.md +585 -0
- package/content/plugins/engineering/agents/performance.md +529 -0
- package/content/plugins/engineering/agents/refactor.md +592 -0
- package/content/plugins/engineering/agents/security.md +524 -0
- package/content/plugins/engineering/agents/ui.md +1336 -0
- package/content/plugins/engineering/plugin.yaml +37 -0
- package/content/plugins/engineering/skills/agileflow-engineering/SKILL.md +127 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/code-review-guide.md +126 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/domain-routing-guide.md +89 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/refactoring-guide.md +136 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/diagnose.md +63 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/impact.md +60 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-features.md +179 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-growth.md +169 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-integration.md +181 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-market.md +150 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-ux.md +180 -0
- package/content/plugins/ideation/agents/brainstorm-consensus.md +245 -0
- package/content/plugins/ideation/agents/design.md +568 -0
- package/content/plugins/ideation/agents/product.md +582 -0
- package/content/plugins/ideation/plugin.yaml +31 -0
- package/content/plugins/ideation/skills/agileflow-ideation/SKILL.md +109 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/brainstorm-techniques.md +138 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/competitive-analysis-template.md +148 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/feature-prioritization-guide.md +147 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/user-story-patterns.md +152 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/features.md +65 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/ideate.md +54 -0
- package/content/plugins/migration/agents/datamigration.md +757 -0
- package/content/plugins/migration/plugin.yaml +17 -0
- package/content/plugins/migration/skills/agileflow-migration/SKILL.md +106 -0
- package/content/plugins/migration/skills/agileflow-migration/references/data-validation-checklist.md +154 -0
- package/content/plugins/migration/skills/agileflow-migration/references/migration-patterns.md +209 -0
- package/content/plugins/migration/skills/agileflow-migration/references/rollback-playbook.md +171 -0
- package/content/plugins/migration/skills/agileflow-migration/references/version-compatibility-matrix.md +155 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/plan.md +73 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/validate.md +71 -0
- package/content/plugins/performance/plugin.yaml +14 -0
- package/content/plugins/performance/skills/agileflow-performance/SKILL.md +224 -0
- package/content/plugins/performance/skills/agileflow-performance/references/optimization-patterns.md +554 -0
- package/content/plugins/performance/skills/agileflow-performance/references/profiling-guide.md +383 -0
- package/content/plugins/performance/skills/agileflow-performance/references/web-vitals-guide.md +360 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/improve-web-vitals.md +344 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/profile-and-fix.md +254 -0
- package/content/plugins/planning/agents/analytics.md +670 -0
- package/content/plugins/planning/agents/rlm-subcore.md +215 -0
- package/content/plugins/planning/plugin.yaml +19 -0
- package/content/plugins/planning/skills/agileflow-planning/SKILL.md +111 -0
- package/content/plugins/planning/skills/agileflow-planning/references/estimation-guide.md +114 -0
- package/content/plugins/planning/skills/agileflow-planning/references/rpi-workflow.md +119 -0
- package/content/plugins/planning/skills/agileflow-planning/references/sprint-planning-guide.md +145 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/impact.md +63 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/rpi.md +104 -0
- package/content/plugins/psychology/plugin.yaml +14 -0
- package/content/plugins/psychology/skills/agileflow-retention/SKILL.md +252 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/competitor-analysis.md +240 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/psychology-models.md +349 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/retention-patterns.md +279 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/design-retention-feature.md +287 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/retention-audit.md +259 -0
- package/content/plugins/refactoring/plugin.yaml +14 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/SKILL.md +235 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/refactoring-patterns.md +405 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/safety-checks.md +177 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/extract-module.md +226 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/safe-refactor.md +169 -0
- package/content/plugins/research/agents/research.md +503 -0
- package/content/plugins/research/plugin.yaml +17 -0
- package/content/plugins/research/skills/agileflow-research/SKILL.md +110 -0
- package/content/plugins/research/skills/agileflow-research/references/knowledge-decay-guide.md +121 -0
- package/content/plugins/research/skills/agileflow-research/references/research-prompt-guide.md +141 -0
- package/content/plugins/research/skills/agileflow-research/references/synthesis-template.md +154 -0
- package/content/plugins/research/skills/agileflow-research/workflows/analyze.md +60 -0
- package/content/plugins/research/skills/agileflow-research/workflows/ask.md +64 -0
- package/content/plugins/research/skills/agileflow-research/workflows/import.md +66 -0
- package/content/plugins/research/skills/agileflow-research/workflows/synthesize.md +66 -0
- package/content/plugins/reviews/plugin.yaml +14 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/SKILL.md +241 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/review-checklist.md +200 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/security-patterns.md +328 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/review-pr.md +153 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/security-review.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-content.md +169 -0
- package/content/plugins/seo/agents/seo-analyzer-images.md +198 -0
- package/content/plugins/seo/agents/seo-analyzer-performance.md +217 -0
- package/content/plugins/seo/agents/seo-analyzer-schema.md +184 -0
- package/content/plugins/seo/agents/seo-analyzer-sitemap.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-technical.md +151 -0
- package/content/plugins/seo/agents/seo-consensus.md +304 -0
- package/content/plugins/seo/plugin.yaml +19 -4
- package/content/plugins/seo/skills/agileflow-seo/SKILL.md +188 -0
- package/content/plugins/seo/skills/agileflow-seo/references/cwv-thresholds.md +110 -0
- package/content/plugins/seo/skills/agileflow-seo/references/eeat-framework.md +144 -0
- package/content/plugins/seo/skills/agileflow-seo/references/keyword-research-guide.md +125 -0
- package/content/plugins/seo/skills/agileflow-seo/references/schema-types.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/references/technical-seo-checklist.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/audit.md +98 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/page.md +118 -0
- package/content/plugins/testing/plugin.yaml +16 -0
- package/content/plugins/testing/skills/agileflow-test-writer/SKILL.md +260 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/coverage-targets.md +239 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/test-patterns.md +420 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/add-coverage.md +154 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/write-tests-from-ac.md +225 -0
- package/package.json +2 -2
- package/src/cli/commands/doctor.js +818 -30
- package/src/cli/commands/hook.js +17 -14
- package/src/cli/commands/launch.js +1454 -0
- package/src/cli/commands/learn.js +149 -0
- package/src/cli/commands/plugins.js +113 -0
- package/src/cli/commands/setup.js +455 -110
- package/src/cli/commands/skills.js +324 -0
- package/src/cli/commands/status.js +8 -10
- package/src/cli/commands/update.js +76 -15
- package/src/cli/index.js +90 -26
- package/src/cli/wizard/babysit-mode-picker.js +192 -0
- package/src/cli/wizard/behaviors-picker.js +208 -54
- package/src/cli/wizard/ide-picker.js +40 -28
- package/src/cli/wizard/install-scope-picker.js +57 -0
- package/src/cli/wizard/launch-alias-picker.js +50 -0
- package/src/cli/wizard/launch-cli-picker.js +129 -0
- package/src/cli/wizard/launch-tmux-picker.js +133 -0
- package/src/cli/wizard/learnings-picker.js +40 -0
- package/src/cli/wizard/plugin-picker.js +47 -16
- package/src/lib/brand.js +116 -0
- package/src/lib/errors.js +120 -0
- package/src/lib/path-check.js +39 -0
- package/src/runtime/config/defaults.js +22 -17
- package/src/runtime/config/loader.js +77 -8
- package/src/runtime/config/schema.json +43 -16
- package/src/runtime/config/writer.js +3 -1
- package/src/runtime/ide/babysit-skill.js +202 -0
- package/src/runtime/ide/capabilities.js +84 -29
- package/src/runtime/ide/claude-code-content.js +177 -0
- package/src/runtime/ide/claude-code-settings.js +67 -29
- package/src/runtime/ide/claude-code-skills.js +47 -32
- package/src/runtime/ide/codex-config.js +295 -0
- package/src/runtime/installer/install.js +252 -24
- package/src/runtime/launch/alias-installer.js +191 -0
- package/src/runtime/launch/cli-resume.js +244 -0
- package/src/runtime/launch/closed-windows.js +338 -0
- package/src/runtime/launch/defaults.js +66 -0
- package/src/runtime/launch/detect-clis.js +69 -0
- package/src/runtime/launch/doctor.js +464 -0
- package/src/runtime/launch/exec-wrapper.js +114 -0
- package/src/runtime/launch/parallel-session.js +247 -0
- package/src/runtime/launch/prefs.js +211 -0
- package/src/runtime/launch/project-prefs.js +234 -0
- package/src/runtime/launch/resolve-cli.js +56 -0
- package/src/runtime/launch/restore.js +152 -0
- package/src/runtime/launch/schema.json +75 -0
- package/src/runtime/launch/session-lifecycle.js +313 -0
- package/src/runtime/launch/session-registry.js +401 -0
- package/src/runtime/launch/spawn.js +103 -0
- package/src/runtime/launch/tabs.js +350 -0
- package/src/runtime/launch/tmux.js +764 -0
- package/src/runtime/launch/worktree.js +260 -0
- package/src/runtime/plugins/registry.js +16 -11
- package/src/runtime/plugins/validator.js +57 -43
- package/src/runtime/skills/learnings.js +308 -0
- package/content/plugins/core/hooks/babysit-mentor-injector.js +0 -55
- package/src/cli/wizard/personalization.js +0 -64
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Audit Depth & Routing Guide
|
|
2
|
+
|
|
3
|
+
**Load this when:** deciding which audit to run, at what depth, and in what order.
|
|
4
|
+
|
|
5
|
+
## Which audit for which situation
|
|
6
|
+
|
|
7
|
+
| Situation | Start here |
|
|
8
|
+
| -------------------------------- | ----------------------------------------- |
|
|
9
|
+
| Just shipped a feature | logic + flow (catch bugs before users do) |
|
|
10
|
+
| Pre-PR / pre-merge | security + logic + test |
|
|
11
|
+
| User-facing forms added | accessibility + flow |
|
|
12
|
+
| New API endpoints | security + api-quality |
|
|
13
|
+
| Database query changes | performance (query analyzer) |
|
|
14
|
+
| Auth/payment code touched | security (always) |
|
|
15
|
+
| Lots of new files | architecture + completeness |
|
|
16
|
+
| Tests feel thin | test quality |
|
|
17
|
+
| Full release / audit request | `/agileflow:audit` (all) |
|
|
18
|
+
| Something feels wrong but unsure | logic (broadest coverage) |
|
|
19
|
+
|
|
20
|
+
## Depth levels
|
|
21
|
+
|
|
22
|
+
| Depth | What it means | When to use |
|
|
23
|
+
| ---------------- | ------------------------------------------------ | -------------------------------- |
|
|
24
|
+
| `DEPTH=quick` | Top-level scan, highest-confidence findings only | After implementation, pre-commit |
|
|
25
|
+
| `DEPTH=standard` | Default — balanced coverage | Normal development |
|
|
26
|
+
| `DEPTH=deep` | Exhaustive, includes low-confidence signals | Pre-release, security reviews |
|
|
27
|
+
|
|
28
|
+
## Audit panel structure
|
|
29
|
+
|
|
30
|
+
Each audit type runs multiple specialized analyzers then a consensus agent:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/agileflow:code:security
|
|
34
|
+
├── security-analyzer-auth
|
|
35
|
+
├── security-analyzer-authz
|
|
36
|
+
├── security-analyzer-injection
|
|
37
|
+
├── security-analyzer-input
|
|
38
|
+
├── security-analyzer-api
|
|
39
|
+
├── security-analyzer-secrets
|
|
40
|
+
├── security-analyzer-infra
|
|
41
|
+
├── security-analyzer-deps
|
|
42
|
+
└── security-consensus ← deduplicates + prioritizes + maps to OWASP/CWE
|
|
43
|
+
|
|
44
|
+
/agileflow:code:logic
|
|
45
|
+
├── logic-analyzer-edge
|
|
46
|
+
├── logic-analyzer-flow
|
|
47
|
+
├── logic-analyzer-invariant
|
|
48
|
+
├── logic-analyzer-race
|
|
49
|
+
├── logic-analyzer-type
|
|
50
|
+
└── logic-consensus
|
|
51
|
+
|
|
52
|
+
/agileflow:code:performance
|
|
53
|
+
├── perf-analyzer-queries
|
|
54
|
+
├── perf-analyzer-rendering
|
|
55
|
+
├── perf-analyzer-memory
|
|
56
|
+
├── perf-analyzer-network
|
|
57
|
+
├── perf-analyzer-caching
|
|
58
|
+
├── perf-analyzer-bundle
|
|
59
|
+
├── perf-analyzer-assets
|
|
60
|
+
├── perf-analyzer-compute
|
|
61
|
+
└── perf-consensus
|
|
62
|
+
|
|
63
|
+
/agileflow:code:accessibility
|
|
64
|
+
├── a11y-analyzer-aria
|
|
65
|
+
├── a11y-analyzer-forms
|
|
66
|
+
├── a11y-analyzer-keyboard
|
|
67
|
+
├── a11y-analyzer-semantic
|
|
68
|
+
├── a11y-analyzer-visual
|
|
69
|
+
└── a11y-consensus ← maps to WCAG 2.2 success criteria
|
|
70
|
+
|
|
71
|
+
/agileflow:code:legal
|
|
72
|
+
├── legal-analyzer-privacy (GDPR, CCPA)
|
|
73
|
+
├── legal-analyzer-security (breach notification, PCI)
|
|
74
|
+
├── legal-analyzer-terms
|
|
75
|
+
├── legal-analyzer-consumer (dark patterns, FTC)
|
|
76
|
+
├── legal-analyzer-a11y (ADA, Section 508)
|
|
77
|
+
├── legal-analyzer-licensing (OSS)
|
|
78
|
+
├── legal-analyzer-international (LGPD, PIPL)
|
|
79
|
+
├── legal-analyzer-ai (EU AI Act)
|
|
80
|
+
├── legal-analyzer-content (DMCA, DSA)
|
|
81
|
+
└── legal-consensus
|
|
82
|
+
|
|
83
|
+
/agileflow:code:flows
|
|
84
|
+
├── flow-analyzer-discovery ← maps all user journeys first
|
|
85
|
+
├── flow-analyzer-wiring ← UI → API → DB → response chain
|
|
86
|
+
├── flow-analyzer-navigation ← routing and redirects
|
|
87
|
+
├── flow-analyzer-persistence ← data actually saved?
|
|
88
|
+
├── flow-analyzer-feedback ← loading/success/error states
|
|
89
|
+
├── flow-analyzer-errors ← graceful failure paths
|
|
90
|
+
├── flow-analyzer-authorization ← auth gates on each step
|
|
91
|
+
└── flow-consensus
|
|
92
|
+
|
|
93
|
+
/agileflow:code:architecture
|
|
94
|
+
├── arch-analyzer-circular
|
|
95
|
+
├── arch-analyzer-complexity
|
|
96
|
+
├── arch-analyzer-coupling
|
|
97
|
+
├── arch-analyzer-layering
|
|
98
|
+
├── arch-analyzer-patterns
|
|
99
|
+
└── arch-consensus
|
|
100
|
+
|
|
101
|
+
/agileflow:code:completeness
|
|
102
|
+
├── completeness-analyzer-stubs
|
|
103
|
+
├── completeness-analyzer-handlers
|
|
104
|
+
├── completeness-analyzer-routes
|
|
105
|
+
├── completeness-analyzer-api
|
|
106
|
+
├── completeness-analyzer-state
|
|
107
|
+
├── completeness-analyzer-imports
|
|
108
|
+
├── completeness-analyzer-conditional
|
|
109
|
+
└── completeness-consensus
|
|
110
|
+
|
|
111
|
+
/agileflow:code:quality
|
|
112
|
+
├── quality-analyzer-naming
|
|
113
|
+
├── quality-analyzer-duplication
|
|
114
|
+
├── quality-analyzer-comments
|
|
115
|
+
└── quality-consensus
|
|
116
|
+
|
|
117
|
+
/agileflow:code:test
|
|
118
|
+
├── test-analyzer-coverage
|
|
119
|
+
├── test-analyzer-assertions
|
|
120
|
+
├── test-analyzer-fragility
|
|
121
|
+
├── test-analyzer-mocking
|
|
122
|
+
├── test-analyzer-patterns
|
|
123
|
+
├── test-analyzer-structure
|
|
124
|
+
├── test-analyzer-maintenance
|
|
125
|
+
├── test-analyzer-integration
|
|
126
|
+
└── test-consensus
|
|
127
|
+
|
|
128
|
+
/agileflow:code:api
|
|
129
|
+
├── api-quality-analyzer-conventions
|
|
130
|
+
├── api-quality-analyzer-docs
|
|
131
|
+
├── api-quality-analyzer-errors
|
|
132
|
+
├── api-quality-analyzer-pagination
|
|
133
|
+
├── api-quality-analyzer-versioning
|
|
134
|
+
└── api-quality-consensus
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Priority system
|
|
138
|
+
|
|
139
|
+
| Priority | Action |
|
|
140
|
+
| ------------- | --------------------------------- |
|
|
141
|
+
| P0 / Critical | Fix immediately — do not commit |
|
|
142
|
+
| P1 / High | Fix this session before merging |
|
|
143
|
+
| P2 / Medium | Fix this sprint |
|
|
144
|
+
| P3 / Low | Track, fix when touching the area |
|
|
145
|
+
|
|
146
|
+
## After audit findings
|
|
147
|
+
|
|
148
|
+
1. Present P0/P1 findings with specific fix recommendations
|
|
149
|
+
2. Ask if user wants to fix P0s now (always recommend yes)
|
|
150
|
+
3. After fixes: re-run the specific analyzer (not the full audit) to confirm
|
|
151
|
+
4. P2/P3: create stories or add to tech debt backlog
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Dependency Risk Guide
|
|
2
|
+
|
|
3
|
+
**Load this when:** Evaluating dependency health, triaging CVEs, or deciding when to upgrade packages.
|
|
4
|
+
|
|
5
|
+
## CVE Severity Triage
|
|
6
|
+
|
|
7
|
+
| CVSS Score | Severity | Default action | Timeline |
|
|
8
|
+
| ---------- | -------- | ----------------------------- | ------------ |
|
|
9
|
+
| 9.0–10.0 | Critical | Upgrade or remove immediately | Same day |
|
|
10
|
+
| 7.0–8.9 | High | Upgrade within sprint | 1 week |
|
|
11
|
+
| 4.0–6.9 | Medium | Schedule in backlog | 1 month |
|
|
12
|
+
| 0.1–3.9 | Low | Batch with routine updates | Next release |
|
|
13
|
+
|
|
14
|
+
**Exploitability modifiers** — escalate severity if:
|
|
15
|
+
|
|
16
|
+
- Vulnerable code path is reachable from public input
|
|
17
|
+
- No authentication required to trigger
|
|
18
|
+
- Exploit is publicly available (check exploit-db, CISA KEV list)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Upgrade Decision Framework
|
|
23
|
+
|
|
24
|
+
### When to upgrade (do it)
|
|
25
|
+
|
|
26
|
+
- [ ] CVE with CVSS ≥7.0 in reachable code path
|
|
27
|
+
- [ ] Package is >2 major versions behind
|
|
28
|
+
- [ ] Maintainer has flagged deprecation
|
|
29
|
+
- [ ] Security policy (SOC 2, ISO 27001) mandates current versions
|
|
30
|
+
- [ ] Dependent package requires newer version
|
|
31
|
+
|
|
32
|
+
### When to defer (acceptable risk)
|
|
33
|
+
|
|
34
|
+
- [ ] CVE only in dev dependency, not shipped to users
|
|
35
|
+
- [ ] Vulnerable function is not called in your codebase (verify with code search)
|
|
36
|
+
- [ ] No patch available yet — add to watch list
|
|
37
|
+
- [ ] Breaking change cost exceeds risk (document as accepted risk)
|
|
38
|
+
|
|
39
|
+
### When to remove (replace or delete)
|
|
40
|
+
|
|
41
|
+
- [ ] Package unmaintained >2 years with open CVEs
|
|
42
|
+
- [ ] Alternative with better security track record exists
|
|
43
|
+
- [ ] Package does something you can implement in <50 lines
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Dependency Health Scorecard
|
|
48
|
+
|
|
49
|
+
Rate each critical dependency:
|
|
50
|
+
|
|
51
|
+
| Dimension | Green | Yellow | Red |
|
|
52
|
+
| ---------------- | -------------- | -------------- | -------------------- |
|
|
53
|
+
| Last release | <6 months | 6–18 months | >18 months |
|
|
54
|
+
| Open issues | <100 | 100–500 | >500 stale |
|
|
55
|
+
| CVEs (unpatched) | 0 | 1–2 low | Any high/critical |
|
|
56
|
+
| Downloads/week | >100k | 10k–100k | <10k |
|
|
57
|
+
| TypeScript types | Built-in | @types/ exists | Missing |
|
|
58
|
+
| License | MIT/Apache/BSD | LGPL | GPL/AGPL/proprietary |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## License Risk Matrix
|
|
63
|
+
|
|
64
|
+
| License | Use in proprietary app | Distribute | Notes |
|
|
65
|
+
| --------------------- | ---------------------- | ----------- | ------------------------------ |
|
|
66
|
+
| MIT | Yes | Yes | No restrictions |
|
|
67
|
+
| Apache 2.0 | Yes | Yes | Attribution required |
|
|
68
|
+
| BSD 2/3-clause | Yes | Yes | Attribution required |
|
|
69
|
+
| ISC | Yes | Yes | Like MIT |
|
|
70
|
+
| LGPL | Yes (dynamic link) | Conditional | Static linking = copyleft |
|
|
71
|
+
| GPL v2/v3 | No | No | Copyleft infects product |
|
|
72
|
+
| AGPL | No | No | Network use = distribution |
|
|
73
|
+
| CC-BY | Content only | Yes | Not for code |
|
|
74
|
+
| Unlicensed/no license | No | No | All rights reserved by default |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## npm audit Interpretation
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm audit --json | jq '.vulnerabilities | to_entries[] | {name: .key, severity: .value.severity, fixAvailable: .value.fixAvailable}'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
| npm audit result | Meaning |
|
|
85
|
+
| --------------------------------------- | -------------------------------------------- |
|
|
86
|
+
| `fixAvailable: true` | `npm audit fix` will resolve it |
|
|
87
|
+
| `fixAvailable: { isSemVerMajor: true }` | Major bump required — check breaking changes |
|
|
88
|
+
| `fixAvailable: false` | No patch exists yet; manual action needed |
|
|
89
|
+
| `isDirect: false` | Transitive dep — check if reachable |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Transitive Dependency Overrides
|
|
94
|
+
|
|
95
|
+
When a transitive dep has a CVE but the direct dep hasn't released a fix:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
// package.json — npm overrides
|
|
99
|
+
{
|
|
100
|
+
"overrides": {
|
|
101
|
+
"vulnerable-package": ">=patched-version"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// package.json — yarn resolutions
|
|
106
|
+
{
|
|
107
|
+
"resolutions": {
|
|
108
|
+
"vulnerable-package": "patched-version"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Risk:** Overrides may break the parent package. Test thoroughly.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Routine Maintenance Schedule
|
|
118
|
+
|
|
119
|
+
| Cadence | Action |
|
|
120
|
+
| --------- | ------------------------------------------------------------------------- |
|
|
121
|
+
| Every PR | `npm audit` in CI — block on high/critical |
|
|
122
|
+
| Weekly | Dependabot / Renovate PR review |
|
|
123
|
+
| Monthly | Review deferred medium CVEs; check for unmaintained deps |
|
|
124
|
+
| Quarterly | Full dependency audit: health scorecard, license scan, bundle size impact |
|
|
125
|
+
| Annually | Evaluate major framework/runtime version upgrades |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Tools Reference
|
|
130
|
+
|
|
131
|
+
| Tool | Purpose |
|
|
132
|
+
| ---------------------------- | ----------------------------- |
|
|
133
|
+
| `npm audit` | CVE scan for npm packages |
|
|
134
|
+
| `snyk` | Deep CVE + license scanning |
|
|
135
|
+
| `socket.dev` | Supply chain attack detection |
|
|
136
|
+
| `license-checker` | License compliance scan |
|
|
137
|
+
| `depcheck` | Find unused dependencies |
|
|
138
|
+
| `bundlephobia` | Size impact before installing |
|
|
139
|
+
| `renovatebot` / `dependabot` | Automated update PRs |
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# OWASP Top 10 Reference
|
|
2
|
+
|
|
3
|
+
**Load this when:** running a security audit, reviewing auth/authz code, or
|
|
4
|
+
assessing injection risks. Maps each category to what to look for in code.
|
|
5
|
+
|
|
6
|
+
## A01 — Broken Access Control
|
|
7
|
+
|
|
8
|
+
Most common. Look for:
|
|
9
|
+
|
|
10
|
+
- Missing authorization checks before data access
|
|
11
|
+
- IDOR: `GET /api/orders/:id` without verifying ownership
|
|
12
|
+
- Privilege escalation: user can call admin endpoints
|
|
13
|
+
- CORS misconfiguration allowing untrusted origins
|
|
14
|
+
- Path traversal: `../` in file paths
|
|
15
|
+
|
|
16
|
+
**Code signals:** `req.params.id` used directly in DB query without ownership check,
|
|
17
|
+
`role === 'admin'` checked client-side only, wildcard CORS `*` on authenticated routes.
|
|
18
|
+
|
|
19
|
+
## A02 — Cryptographic Failures
|
|
20
|
+
|
|
21
|
+
Look for:
|
|
22
|
+
|
|
23
|
+
- Passwords hashed with MD5, SHA-1, or unsalted SHA-256
|
|
24
|
+
- Sensitive data in URLs, logs, or error messages
|
|
25
|
+
- HTTP instead of HTTPS for sensitive data
|
|
26
|
+
- Weak or hardcoded encryption keys
|
|
27
|
+
- JWT with `alg: none` or weak secrets
|
|
28
|
+
|
|
29
|
+
**Code signals:** `crypto.createHash('md5')`, `console.log(user)`, `Math.random()` for tokens.
|
|
30
|
+
|
|
31
|
+
## A03 — Injection
|
|
32
|
+
|
|
33
|
+
Look for:
|
|
34
|
+
|
|
35
|
+
- SQL: string concatenation in queries instead of parameterized statements
|
|
36
|
+
- NoSQL: `$where`, `$regex` with user input
|
|
37
|
+
- Command injection: `exec()`, `spawn()` with user-controlled strings
|
|
38
|
+
- Template injection: user input rendered in template engines
|
|
39
|
+
- LDAP/XPath injection in directory queries
|
|
40
|
+
|
|
41
|
+
**Code signals:** `db.query("SELECT * FROM users WHERE id = " + req.params.id)`,
|
|
42
|
+
`exec(userInput)`, `res.render(userInput)`.
|
|
43
|
+
|
|
44
|
+
## A04 — Insecure Design
|
|
45
|
+
|
|
46
|
+
Look for:
|
|
47
|
+
|
|
48
|
+
- Missing rate limiting on auth endpoints
|
|
49
|
+
- No account lockout after failed logins
|
|
50
|
+
- Password reset tokens that don't expire
|
|
51
|
+
- Business logic that can be abused (negative quantities, free upgrades)
|
|
52
|
+
- Lack of fraud detection on financial operations
|
|
53
|
+
|
|
54
|
+
## A05 — Security Misconfiguration
|
|
55
|
+
|
|
56
|
+
Look for:
|
|
57
|
+
|
|
58
|
+
- Default credentials not changed
|
|
59
|
+
- Stack traces exposed in production errors
|
|
60
|
+
- Directory listing enabled
|
|
61
|
+
- Unnecessary features/ports/services enabled
|
|
62
|
+
- Missing security headers (CSP, HSTS, X-Frame-Options)
|
|
63
|
+
- Debug mode in production (`DEBUG=true`, `NODE_ENV=development`)
|
|
64
|
+
|
|
65
|
+
## A06 — Vulnerable Components
|
|
66
|
+
|
|
67
|
+
Look for:
|
|
68
|
+
|
|
69
|
+
- Dependencies with known CVEs (`npm audit`, `snyk`)
|
|
70
|
+
- Outdated packages (especially auth libraries, crypto, XML parsers)
|
|
71
|
+
- Unpinned versions (`^`, `~` prefixes hide breaking security patches)
|
|
72
|
+
- Unused dependencies (larger attack surface)
|
|
73
|
+
|
|
74
|
+
## A07 — Auth & Session Failures
|
|
75
|
+
|
|
76
|
+
Look for:
|
|
77
|
+
|
|
78
|
+
- Session tokens in URLs
|
|
79
|
+
- Sessions not invalidated on logout
|
|
80
|
+
- Weak session token generation (`Math.random()`)
|
|
81
|
+
- Missing MFA on sensitive operations
|
|
82
|
+
- JWT tokens without expiration
|
|
83
|
+
- Refresh tokens with no rotation
|
|
84
|
+
|
|
85
|
+
## A08 — Software & Data Integrity Failures
|
|
86
|
+
|
|
87
|
+
Look for:
|
|
88
|
+
|
|
89
|
+
- Dependencies loaded from untrusted CDNs without SRI hashes
|
|
90
|
+
- Auto-update mechanisms without signature verification
|
|
91
|
+
- Deserializing untrusted data (pickle, Java serialization, JSON with `__proto__`)
|
|
92
|
+
- CI/CD pipelines that can be hijacked via dependency confusion
|
|
93
|
+
|
|
94
|
+
## A09 — Logging & Monitoring Failures
|
|
95
|
+
|
|
96
|
+
Look for:
|
|
97
|
+
|
|
98
|
+
- No logging of auth failures, access control violations
|
|
99
|
+
- Logs that contain passwords, tokens, or PII
|
|
100
|
+
- No alerting on suspicious patterns
|
|
101
|
+
- Logs that can be tampered with
|
|
102
|
+
- No audit trail for sensitive operations
|
|
103
|
+
|
|
104
|
+
## A10 — Server-Side Request Forgery (SSRF)
|
|
105
|
+
|
|
106
|
+
Look for:
|
|
107
|
+
|
|
108
|
+
- User-controlled URLs fetched server-side (`axios.get(req.body.url)`)
|
|
109
|
+
- No allowlist for outbound requests
|
|
110
|
+
- Cloud metadata endpoints reachable (`169.254.169.254`)
|
|
111
|
+
- Webhooks that accept arbitrary URLs without validation
|
|
112
|
+
|
|
113
|
+
## Severity mapping
|
|
114
|
+
|
|
115
|
+
| CVSS Score | Severity | Action |
|
|
116
|
+
| ---------- | -------- | ------------------------------------ |
|
|
117
|
+
| 9.0–10.0 | Critical | Fix before any commit |
|
|
118
|
+
| 7.0–8.9 | High | Fix this sprint |
|
|
119
|
+
| 4.0–6.9 | Medium | Fix next sprint |
|
|
120
|
+
| 0.1–3.9 | Low | Track and fix when touching the area |
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Performance Budget Guide
|
|
2
|
+
|
|
3
|
+
**Load this when:** Auditing web performance, setting performance targets, or evaluating Lighthouse scores.
|
|
4
|
+
|
|
5
|
+
## Lighthouse Score Thresholds
|
|
6
|
+
|
|
7
|
+
| Score | Label | Action |
|
|
8
|
+
| ------ | ----------------- | ---------------------------------- |
|
|
9
|
+
| 90–100 | Good | Monitor; optimize incrementally |
|
|
10
|
+
| 50–89 | Needs improvement | Prioritize fixes; target 90+ |
|
|
11
|
+
| 0–49 | Poor | Immediate attention; block deploys |
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Core Web Vitals Thresholds (field data)
|
|
16
|
+
|
|
17
|
+
| Metric | Good | Needs Work | Poor | What it measures |
|
|
18
|
+
| ------ | ------ | ---------- | ------ | ---------------------------- |
|
|
19
|
+
| LCP | ≤2.5s | 2.5–4s | >4s | Largest visible content load |
|
|
20
|
+
| INP | ≤200ms | 200–500ms | >500ms | Interaction to Next Paint |
|
|
21
|
+
| CLS | ≤0.1 | 0.1–0.25 | >0.25 | Layout shift score |
|
|
22
|
+
| FCP | ≤1.8s | 1.8–3s | >3s | First visible content |
|
|
23
|
+
| TTFB | ≤800ms | 800ms–1.8s | >1.8s | Server response time |
|
|
24
|
+
|
|
25
|
+
**Note:** INP replaced FID as a Core Web Vital in March 2024.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Resource Budget Targets (per page, gzipped)
|
|
30
|
+
|
|
31
|
+
| Resource | Recommended budget | Maximum |
|
|
32
|
+
| ------------------- | ------------------ | ------- |
|
|
33
|
+
| Total page weight | <500 KB | 1 MB |
|
|
34
|
+
| JavaScript (total) | <200 KB | 350 KB |
|
|
35
|
+
| CSS (total) | <50 KB | 100 KB |
|
|
36
|
+
| Images (total) | <200 KB | — |
|
|
37
|
+
| Fonts | <50 KB | 100 KB |
|
|
38
|
+
| Third-party scripts | <50 KB | 100 KB |
|
|
39
|
+
| HTTP requests | <50 | <100 |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Lighthouse Audit Categories and Key Checks
|
|
44
|
+
|
|
45
|
+
### Performance
|
|
46
|
+
|
|
47
|
+
- [ ] LCP element identified and optimized
|
|
48
|
+
- [ ] Unused JavaScript removed (tree-shaking, code splitting)
|
|
49
|
+
- [ ] Images: WebP/AVIF, lazy-loaded, explicit dimensions
|
|
50
|
+
- [ ] Render-blocking resources eliminated
|
|
51
|
+
- [ ] Server response time (TTFB) <200ms
|
|
52
|
+
- [ ] Efficient cache policy on static assets (max-age ≥1 year)
|
|
53
|
+
- [ ] No layout shifts from late-loading ads/embeds/fonts
|
|
54
|
+
|
|
55
|
+
### Accessibility (score target: 100)
|
|
56
|
+
|
|
57
|
+
- [ ] All images have alt text
|
|
58
|
+
- [ ] Buttons and links have accessible names
|
|
59
|
+
- [ ] Sufficient color contrast (4.5:1 normal, 3:1 large text)
|
|
60
|
+
- [ ] Form inputs have associated labels
|
|
61
|
+
- [ ] Logical heading hierarchy
|
|
62
|
+
|
|
63
|
+
### Best Practices (score target: 100)
|
|
64
|
+
|
|
65
|
+
- [ ] HTTPS enforced
|
|
66
|
+
- [ ] No deprecated APIs
|
|
67
|
+
- [ ] No browser errors in console
|
|
68
|
+
- [ ] No vulnerable libraries (npm audit)
|
|
69
|
+
|
|
70
|
+
### SEO (score target: 100)
|
|
71
|
+
|
|
72
|
+
- [ ] Title and meta description present
|
|
73
|
+
- [ ] Viewport meta tag set
|
|
74
|
+
- [ ] Links crawlable
|
|
75
|
+
- [ ] robots.txt valid
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## JavaScript Budget Breakdown
|
|
80
|
+
|
|
81
|
+
| Category | Max size (gzipped) |
|
|
82
|
+
| ---------------------------- | ------------------ |
|
|
83
|
+
| Framework (React/Vue/Svelte) | 45 KB |
|
|
84
|
+
| App code (first chunk) | 50 KB |
|
|
85
|
+
| Routing library | 10 KB |
|
|
86
|
+
| State management | 10 KB |
|
|
87
|
+
| UI component library | 30 KB |
|
|
88
|
+
| Analytics/tracking | 15 KB |
|
|
89
|
+
| Remaining third-party | 40 KB |
|
|
90
|
+
|
|
91
|
+
**Tooling:** `bundlephobia.com`, `webpack-bundle-analyzer`, `vite-bundle-visualizer`
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Image Optimization Checklist
|
|
96
|
+
|
|
97
|
+
- [ ] Format: WebP for photos, AVIF where supported, SVG for icons/logos
|
|
98
|
+
- [ ] Responsive images: `srcset` with 1x, 2x breakpoints
|
|
99
|
+
- [ ] Lazy loading: `loading="lazy"` on all below-fold images
|
|
100
|
+
- [ ] Explicit `width` and `height` to prevent CLS
|
|
101
|
+
- [ ] LCP image: preloaded with `<link rel="preload">`
|
|
102
|
+
- [ ] Max dimensions match display size (no oversized images)
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Font Loading Strategy
|
|
107
|
+
|
|
108
|
+
```html
|
|
109
|
+
<!-- Step 1: Preconnect to font origin -->
|
|
110
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
111
|
+
|
|
112
|
+
<!-- Step 2: Preload critical font files -->
|
|
113
|
+
<link rel="preload" as="font" href="/fonts/brand.woff2" crossorigin />
|
|
114
|
+
|
|
115
|
+
<!-- Step 3: font-display: swap or optional -->
|
|
116
|
+
@font-face { font-display: swap; }
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**font-display values:**
|
|
120
|
+
| Value | Behavior | Use when |
|
|
121
|
+
|-------|----------|----------|
|
|
122
|
+
| `swap` | FOUT; text always visible | Body text |
|
|
123
|
+
| `optional` | Skips if slow | Non-critical decorative |
|
|
124
|
+
| `block` | FOIT; invisible until loaded | Icons (avoid for text) |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Performance Budget Enforcement
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
// lighthouserc.json
|
|
132
|
+
{
|
|
133
|
+
"assert": {
|
|
134
|
+
"assertions": {
|
|
135
|
+
"categories:performance": ["error", { "minScore": 0.9 }],
|
|
136
|
+
"resource-summary:script:size": ["error", { "maxNumericValue": 350000 }],
|
|
137
|
+
"resource-summary:total:size": ["error", { "maxNumericValue": 1000000 }]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
CI tools: `@lhci/cli` (Lighthouse CI), `bundlesize`, `size-limit`
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# WCAG 2.2 Key Criteria Reference
|
|
2
|
+
|
|
3
|
+
**Load this when:** running an accessibility audit or reviewing UI components.
|
|
4
|
+
Focuses on the criteria most commonly violated in web apps.
|
|
5
|
+
|
|
6
|
+
## Conformance levels
|
|
7
|
+
|
|
8
|
+
| Level | Meaning | Requirement |
|
|
9
|
+
| ----- | -------- | ----------------------------------------------------------- |
|
|
10
|
+
| A | Minimum | Must meet — basic accessibility |
|
|
11
|
+
| AA | Standard | Target for most apps — legal baseline in most jurisdictions |
|
|
12
|
+
| AAA | Enhanced | Aspirational — not required for full sites |
|
|
13
|
+
|
|
14
|
+
## Most commonly violated (AA)
|
|
15
|
+
|
|
16
|
+
### 1.1.1 Non-text Content (A)
|
|
17
|
+
|
|
18
|
+
Every `<img>`, `<input type="image">`, icon, and chart needs descriptive alt text.
|
|
19
|
+
Decorative images: `alt=""`. Complex charts: long description in addition to alt.
|
|
20
|
+
|
|
21
|
+
### 1.3.1 Info and Relationships (A)
|
|
22
|
+
|
|
23
|
+
Structure conveyed visually must be conveyed in markup: headings via `<h1>`–`<h6>`,
|
|
24
|
+
lists via `<ul>`/`<ol>`, tables with `<th>` and `scope`. Don't fake structure with CSS alone.
|
|
25
|
+
|
|
26
|
+
### 1.4.3 Contrast Minimum (AA)
|
|
27
|
+
|
|
28
|
+
- Normal text: 4.5:1 contrast ratio minimum
|
|
29
|
+
- Large text (18pt / 14pt bold): 3:1 minimum
|
|
30
|
+
- UI components and focus indicators: 3:1 against adjacent colors
|
|
31
|
+
|
|
32
|
+
### 1.4.4 Resize Text (AA)
|
|
33
|
+
|
|
34
|
+
Text must be readable at 200% zoom without loss of content or functionality.
|
|
35
|
+
Avoid `px` for font sizes — use `rem`/`em`.
|
|
36
|
+
|
|
37
|
+
### 1.4.11 Non-text Contrast (AA)
|
|
38
|
+
|
|
39
|
+
Form inputs, buttons, focus indicators, icons: 3:1 against background.
|
|
40
|
+
Default browser focus ring often fails — must be explicitly styled.
|
|
41
|
+
|
|
42
|
+
### 2.1.1 Keyboard (A)
|
|
43
|
+
|
|
44
|
+
Every interactive element must be operable via keyboard alone.
|
|
45
|
+
No keyboard traps. Custom widgets (dropdowns, modals, datepickers) need full keyboard support.
|
|
46
|
+
|
|
47
|
+
### 2.1.2 No Keyboard Trap (A)
|
|
48
|
+
|
|
49
|
+
Keyboard focus must not get stuck in a component. Modals need focus trap
|
|
50
|
+
_within_ the modal, but must release on close/Escape.
|
|
51
|
+
|
|
52
|
+
### 2.4.3 Focus Order (A)
|
|
53
|
+
|
|
54
|
+
Tab order must follow logical reading order. `tabindex` > 0 almost always breaks this.
|
|
55
|
+
Use `tabindex="0"` or `-1` only.
|
|
56
|
+
|
|
57
|
+
### 2.4.7 Focus Visible (AA)
|
|
58
|
+
|
|
59
|
+
Focus indicator must be visible. Never `outline: none` without a replacement.
|
|
60
|
+
WCAG 2.2 added 2.4.11 (Enhanced Focus Appearance) at AA — 2px minimum, 3:1 contrast.
|
|
61
|
+
|
|
62
|
+
### 3.2.2 On Input (A)
|
|
63
|
+
|
|
64
|
+
Changing a form field must not automatically submit the form or navigate away
|
|
65
|
+
without warning.
|
|
66
|
+
|
|
67
|
+
### 3.3.1 Error Identification (A)
|
|
68
|
+
|
|
69
|
+
Errors must be described in text, not color alone. `aria-describedby` linking
|
|
70
|
+
the field to the error message.
|
|
71
|
+
|
|
72
|
+
### 3.3.2 Labels or Instructions (A)
|
|
73
|
+
|
|
74
|
+
Form inputs need visible labels. `placeholder` is not a label — it disappears on input.
|
|
75
|
+
`aria-label` acceptable when visible label isn't possible.
|
|
76
|
+
|
|
77
|
+
### 4.1.2 Name, Role, Value (A)
|
|
78
|
+
|
|
79
|
+
Custom interactive components need ARIA roles, states, and properties:
|
|
80
|
+
|
|
81
|
+
- Buttons: `role="button"` with `aria-pressed` if toggle
|
|
82
|
+
- Modals: `role="dialog"`, `aria-modal="true"`, `aria-labelledby`
|
|
83
|
+
- Tabs: `role="tablist"`, `role="tab"`, `aria-selected`, `role="tabpanel"`
|
|
84
|
+
- Checkboxes: `role="checkbox"`, `aria-checked`
|
|
85
|
+
|
|
86
|
+
### 4.1.3 Status Messages (AA)
|
|
87
|
+
|
|
88
|
+
Success/error messages injected into the DOM must use live regions:
|
|
89
|
+
`aria-live="polite"` for non-urgent, `aria-live="assertive"` for critical errors.
|
|
90
|
+
|
|
91
|
+
## New in WCAG 2.2
|
|
92
|
+
|
|
93
|
+
| Criterion | Level | What it adds |
|
|
94
|
+
| ---------------------------------- | ----- | -------------------------------------------------- |
|
|
95
|
+
| 2.4.11 Focus Appearance | AA | Minimum focus indicator size and contrast |
|
|
96
|
+
| 2.4.12 Focus Appearance (Enhanced) | AAA | Stricter focus indicator |
|
|
97
|
+
| 2.5.7 Dragging Movements | AA | Drag operations need a pointer alternative |
|
|
98
|
+
| 2.5.8 Target Size Minimum | AA | Interactive targets ≥ 24×24px |
|
|
99
|
+
| 3.2.6 Consistent Help | A | Help mechanisms in consistent location |
|
|
100
|
+
| 3.3.7 Redundant Entry | A | Don't make users re-enter info in same session |
|
|
101
|
+
| 3.3.8 Accessible Authentication | AA | No cognitive tests (CAPTCHAs without alternatives) |
|
|
102
|
+
|
|
103
|
+
## Quick audit checklist
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
⬜ All images have meaningful alt text
|
|
107
|
+
⬜ Color is not the only way info is conveyed
|
|
108
|
+
⬜ 4.5:1 contrast for body text, 3:1 for large text and UI
|
|
109
|
+
⬜ All interactive elements keyboard accessible
|
|
110
|
+
⬜ Visible focus indicator on all focusable elements
|
|
111
|
+
⬜ Form fields have visible labels (not just placeholder)
|
|
112
|
+
⬜ Errors described in text, linked to field via aria-describedby
|
|
113
|
+
⬜ Custom widgets have correct ARIA roles/states
|
|
114
|
+
⬜ Status messages use aria-live regions
|
|
115
|
+
⬜ Page has logical heading hierarchy (h1 → h2 → h3)
|
|
116
|
+
⬜ Landmarks present: main, nav, header, footer
|
|
117
|
+
```
|