novahiz 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE.md +46 -0
- package/README.md +123 -0
- package/adapters/README.md +13 -0
- package/adapters/opencode/agent/novahiz-agent.md +31 -0
- package/adapters/opencode/commands/novahiz-clean.md +15 -0
- package/adapters/opencode/commands/novahiz-doctor.md +9 -0
- package/adapters/opencode/commands/novahiz-plan.md +24 -0
- package/adapters/opencode/commands/novahiz-status.md +11 -0
- package/adapters/opencode/instructions.md +69 -0
- package/adapters/opencode/novahiz.ts +266 -0
- package/bin/novahiz.cmd +2 -0
- package/bin/novahiz.mjs +7 -0
- package/bundled-skills/AGENTS.md +50 -0
- package/bundled-skills/LICENSE +21 -0
- package/bundled-skills/README.md +202 -0
- package/bundled-skills/SKILL.md +313 -0
- package/bundled-skills/a11y-audit/SKILL.md +211 -0
- package/bundled-skills/a11y-audit/assets/sample-component.tsx +51 -0
- package/bundled-skills/a11y-audit/expected_outputs/sample-contrast-output.txt +39 -0
- package/bundled-skills/a11y-audit/expected_outputs/sample-scan-output.json +34 -0
- package/bundled-skills/a11y-audit/expected_outputs/sample-scan-report.md +63 -0
- package/bundled-skills/a11y-audit/references/aria-patterns.md +223 -0
- package/bundled-skills/a11y-audit/references/audit-report-template.md +46 -0
- package/bundled-skills/a11y-audit/references/ci-cd-integration.md +127 -0
- package/bundled-skills/a11y-audit/references/color-contrast-guide.md +83 -0
- package/bundled-skills/a11y-audit/references/examples-by-framework.md +312 -0
- package/bundled-skills/a11y-audit/references/framework-a11y-patterns.md +661 -0
- package/bundled-skills/a11y-audit/references/testing-checklist.md +41 -0
- package/bundled-skills/a11y-audit/references/wcag-22-new-criteria.md +79 -0
- package/bundled-skills/a11y-audit/references/wcag-quick-ref.md +113 -0
- package/bundled-skills/a11y-audit/scripts/a11y_scanner.py +684 -0
- package/bundled-skills/a11y-audit/scripts/contrast_checker.py +504 -0
- package/bundled-skills/ab-testing/SKILL.md +353 -0
- package/bundled-skills/ab-testing/evals/evals.json +105 -0
- package/bundled-skills/ab-testing/references/sample-size-guide.md +263 -0
- package/bundled-skills/ab-testing/references/test-templates.md +277 -0
- package/bundled-skills/ad-creative/SKILL.md +425 -0
- package/bundled-skills/ad-creative/assets/creative-review-template.html +400 -0
- package/bundled-skills/ad-creative/evals/evals.json +217 -0
- package/bundled-skills/ad-creative/references/creative-review-page.md +106 -0
- package/bundled-skills/ad-creative/references/creative-roadmap.md +118 -0
- package/bundled-skills/ad-creative/references/generative-tools.md +637 -0
- package/bundled-skills/ad-creative/references/hook-system.md +115 -0
- package/bundled-skills/ad-creative/references/imessage-video-ads.md +201 -0
- package/bundled-skills/ad-creative/references/meta-creative-formats.md +114 -0
- package/bundled-skills/ad-creative/references/motion-video-ads.md +126 -0
- package/bundled-skills/ad-creative/references/platform-specs.md +213 -0
- package/bundled-skills/ad-creative/references/short-form-video-specs.md +213 -0
- package/bundled-skills/ad-creative/references/static-ad-templates.md +308 -0
- package/bundled-skills/ads/SKILL.md +499 -0
- package/bundled-skills/ads/evals/evals.json +157 -0
- package/bundled-skills/ads/references/abm-playbook.md +93 -0
- package/bundled-skills/ads/references/ad-copy-templates.md +207 -0
- package/bundled-skills/ads/references/audience-targeting.md +243 -0
- package/bundled-skills/ads/references/audit-guardrails.md +83 -0
- package/bundled-skills/ads/references/b2b-paid-playbook.md +115 -0
- package/bundled-skills/ads/references/conversion-tracking.md +361 -0
- package/bundled-skills/ads/references/creative-research-automation.md +103 -0
- package/bundled-skills/ads/references/google-ads-audit-checklist.md +84 -0
- package/bundled-skills/ads/references/google-search-playbook.md +120 -0
- package/bundled-skills/ads/references/linkedin-b2b-playbook.md +107 -0
- package/bundled-skills/ads/references/meta-decision-system.md +176 -0
- package/bundled-skills/ads/references/payback-period.md +69 -0
- package/bundled-skills/ads/references/platform-setup-checklists.md +277 -0
- package/bundled-skills/ads/references/rsa-output-spec.md +88 -0
- package/bundled-skills/adversarial-reviewer/SKILL.md +247 -0
- package/bundled-skills/agent-device/SKILL.md +20 -0
- package/bundled-skills/ai-seo/SKILL.md +488 -0
- package/bundled-skills/ai-seo/evals/evals.json +135 -0
- package/bundled-skills/ai-seo/references/agent-readiness.md +57 -0
- package/bundled-skills/ai-seo/references/citations-vs-recommendations.md +85 -0
- package/bundled-skills/ai-seo/references/content-patterns.md +287 -0
- package/bundled-skills/ai-seo/references/content-types.md +71 -0
- package/bundled-skills/ai-seo/references/format-volatility.md +98 -0
- package/bundled-skills/ai-seo/references/okf.md +104 -0
- package/bundled-skills/ai-seo/references/platform-ranking-factors.md +154 -0
- package/bundled-skills/ai-seo/references/youtube-ai-citations.md +60 -0
- package/bundled-skills/analytics/SKILL.md +310 -0
- package/bundled-skills/analytics/evals/evals.json +90 -0
- package/bundled-skills/analytics/references/event-library.md +260 -0
- package/bundled-skills/analytics/references/ga4-implementation.md +300 -0
- package/bundled-skills/analytics/references/gtm-implementation.md +390 -0
- package/bundled-skills/android-emulator/SKILL.md +32 -0
- package/bundled-skills/anti-AI-design/SKILL.md +189 -0
- package/bundled-skills/anti-pattern-detector/SKILL.md +185 -0
- package/bundled-skills/anti-pattern-detector/references/async-network-patterns.md +581 -0
- package/bundled-skills/anti-pattern-detector/references/build-deploy-patterns.md +554 -0
- package/bundled-skills/anti-pattern-detector/references/cache-patterns.md +446 -0
- package/bundled-skills/anti-pattern-detector/references/cloud-infra-patterns.md +538 -0
- package/bundled-skills/anti-pattern-detector/references/concurrency-patterns.md +558 -0
- package/bundled-skills/anti-pattern-detector/references/language-specific-patterns.md +740 -0
- package/bundled-skills/anti-pattern-detector/references/monitoring-patterns.md +456 -0
- package/bundled-skills/api-design-reviewer/SKILL.md +433 -0
- package/bundled-skills/api-design-reviewer/references/api_antipatterns.md +680 -0
- package/bundled-skills/api-design-reviewer/references/rest_design_rules.md +487 -0
- package/bundled-skills/api-design-reviewer/scripts/api_linter.py +956 -0
- package/bundled-skills/api-design-reviewer/scripts/api_scorecard.py +1661 -0
- package/bundled-skills/api-design-reviewer/scripts/breaking_change_detector.py +1102 -0
- package/bundled-skills/apple-hig-expert/SKILL.md +108 -0
- package/bundled-skills/apple-hig-expert/references/accessibility.md +55 -0
- package/bundled-skills/apple-hig-expert/references/platform-specifics.md +48 -0
- package/bundled-skills/apple-hig-expert/references/visual-design.md +69 -0
- package/bundled-skills/apple-hig-expert/scripts/hig_checker.py +97 -0
- package/bundled-skills/apple-hig-expert/templates/hig-audit-template.md +83 -0
- package/bundled-skills/build-graph/SKILL.md +38 -0
- package/bundled-skills/claude-history-ingest/SKILL.md +463 -0
- package/bundled-skills/claude-history-ingest/references/claude-data-format.md +118 -0
- package/bundled-skills/clean-code/SKILL.md +99 -0
- package/bundled-skills/code-reviewer/README.md +92 -0
- package/bundled-skills/code-reviewer/SKILL.md +183 -0
- package/bundled-skills/code-reviewer/assets/sample_c_clean.c +71 -0
- package/bundled-skills/code-reviewer/assets/sample_c_smells.c +66 -0
- package/bundled-skills/code-reviewer/assets/sample_csharp_clean.cs +100 -0
- package/bundled-skills/code-reviewer/assets/sample_csharp_smells.cs +78 -0
- package/bundled-skills/code-reviewer/assets/sample_java_clean.java +55 -0
- package/bundled-skills/code-reviewer/assets/sample_java_smells.java +56 -0
- package/bundled-skills/code-reviewer/expected_outputs/sample_c_clean_quality.json +65 -0
- package/bundled-skills/code-reviewer/expected_outputs/sample_c_smells_quality.json +155 -0
- package/bundled-skills/code-reviewer/expected_outputs/sample_csharp_clean_quality.json +135 -0
- package/bundled-skills/code-reviewer/expected_outputs/sample_csharp_smells_quality.json +143 -0
- package/bundled-skills/code-reviewer/expected_outputs/sample_java_clean_quality.json +53 -0
- package/bundled-skills/code-reviewer/expected_outputs/sample_java_smells_quality.json +83 -0
- package/bundled-skills/code-reviewer/languages/c.md +103 -0
- package/bundled-skills/code-reviewer/languages/cpp.md +103 -0
- package/bundled-skills/code-reviewer/languages/csharp.md +97 -0
- package/bundled-skills/code-reviewer/languages/dart.md +108 -0
- package/bundled-skills/code-reviewer/languages/go.md +92 -0
- package/bundled-skills/code-reviewer/languages/java.md +103 -0
- package/bundled-skills/code-reviewer/languages/kotlin.md +88 -0
- package/bundled-skills/code-reviewer/languages/php.md +109 -0
- package/bundled-skills/code-reviewer/languages/python.md +94 -0
- package/bundled-skills/code-reviewer/languages/ruby.md +105 -0
- package/bundled-skills/code-reviewer/languages/rust.md +99 -0
- package/bundled-skills/code-reviewer/languages/swift.md +88 -0
- package/bundled-skills/code-reviewer/languages/typescript.md +97 -0
- package/bundled-skills/code-reviewer/rules/universal.md +49 -0
- package/bundled-skills/code-reviewer/scripts/code_quality_checker.py +1020 -0
- package/bundled-skills/code-reviewer/scripts/pr_analyzer.py +535 -0
- package/bundled-skills/code-reviewer/scripts/review_report_generator.py +505 -0
- package/bundled-skills/code-understand/SKILL.md +90 -0
- package/bundled-skills/codex-history-ingest/SKILL.md +248 -0
- package/bundled-skills/codex-history-ingest/references/codex-data-format.md +82 -0
- package/bundled-skills/cold-email/SKILL.md +159 -0
- package/bundled-skills/cold-email/evals/evals.json +94 -0
- package/bundled-skills/cold-email/references/benchmarks.md +83 -0
- package/bundled-skills/cold-email/references/follow-up-sequences.md +81 -0
- package/bundled-skills/cold-email/references/frameworks.md +90 -0
- package/bundled-skills/cold-email/references/personalization.md +79 -0
- package/bundled-skills/cold-email/references/subject-lines.md +53 -0
- package/bundled-skills/competitor-profiling/SKILL.md +415 -0
- package/bundled-skills/competitor-profiling/evals/evals.json +85 -0
- package/bundled-skills/competitor-profiling/references/templates.md +167 -0
- package/bundled-skills/competitor-profiling/references/tool-reference.md +179 -0
- package/bundled-skills/computer-use/SKILL.md +41 -0
- package/bundled-skills/content-strategy/SKILL.md +439 -0
- package/bundled-skills/content-strategy/evals/evals.json +116 -0
- package/bundled-skills/content-strategy/references/content-distribution.md +83 -0
- package/bundled-skills/content-strategy/references/headless-cms.md +194 -0
- package/bundled-skills/copilot-history-ingest/SKILL.md +376 -0
- package/bundled-skills/copilot-history-ingest/references/copilot-data-format.md +321 -0
- package/bundled-skills/copy-editing/SKILL.md +457 -0
- package/bundled-skills/copy-editing/evals/evals.json +89 -0
- package/bundled-skills/copy-editing/references/checklist.md +66 -0
- package/bundled-skills/copy-editing/references/content-refresh.md +38 -0
- package/bundled-skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/bundled-skills/copywriting/SKILL.md +256 -0
- package/bundled-skills/copywriting/evals/evals.json +126 -0
- package/bundled-skills/copywriting/references/copy-frameworks.md +433 -0
- package/bundled-skills/copywriting/references/natural-transitions.md +272 -0
- package/bundled-skills/cro/SKILL.md +187 -0
- package/bundled-skills/cro/evals/evals.json +111 -0
- package/bundled-skills/cro/references/experiments.md +248 -0
- package/bundled-skills/cro/references/form.md +422 -0
- package/bundled-skills/cross-linker/SKILL.md +309 -0
- package/bundled-skills/customer-research/SKILL.md +305 -0
- package/bundled-skills/customer-research/evals/evals.json +176 -0
- package/bundled-skills/customer-research/references/interviews-and-surveys.md +155 -0
- package/bundled-skills/customer-research/references/source-guides.md +401 -0
- package/bundled-skills/daily-update/SKILL.md +223 -0
- package/bundled-skills/dart-add-unit-test/SKILL.md +122 -0
- package/bundled-skills/dart-build-cli-app/SKILL.md +185 -0
- package/bundled-skills/dart-collect-coverage/SKILL.md +141 -0
- package/bundled-skills/dart-fix-runtime-errors/SKILL.md +166 -0
- package/bundled-skills/dart-generate-test-mocks/SKILL.md +155 -0
- package/bundled-skills/dart-migrate-to-checks-package/SKILL.md +528 -0
- package/bundled-skills/dart-resolve-package-conflicts/SKILL.md +116 -0
- package/bundled-skills/dart-run-static-analysis/SKILL.md +104 -0
- package/bundled-skills/dart-setup-ffi-assets/SKILL.md +419 -0
- package/bundled-skills/dart-use-doc-examples/SKILL.md +96 -0
- package/bundled-skills/dart-use-ffigen/SKILL.md +218 -0
- package/bundled-skills/dart-use-pattern-matching/SKILL.md +146 -0
- package/bundled-skills/dart-use-primary-constructors/SKILL.md +262 -0
- package/bundled-skills/dart-write-documentation/SKILL.md +136 -0
- package/bundled-skills/database-designer/README.md +388 -0
- package/bundled-skills/database-designer/SKILL.md +314 -0
- package/bundled-skills/database-designer/assets/sample_query_patterns.json +375 -0
- package/bundled-skills/database-designer/assets/sample_schema.json +372 -0
- package/bundled-skills/database-designer/assets/sample_schema.sql +207 -0
- package/bundled-skills/database-designer/expected_outputs/index_optimization_sample.txt +60 -0
- package/bundled-skills/database-designer/expected_outputs/migration_sample.txt +124 -0
- package/bundled-skills/database-designer/expected_outputs/schema_analysis_sample.txt +222 -0
- package/bundled-skills/database-designer/index_optimizer.py +926 -0
- package/bundled-skills/database-designer/migration_generator.py +1199 -0
- package/bundled-skills/database-designer/references/database-design-reference.md +476 -0
- package/bundled-skills/database-designer/references/database_selection_decision_tree.md +373 -0
- package/bundled-skills/database-designer/references/index_strategy_patterns.md +424 -0
- package/bundled-skills/database-designer/references/normalization_guide.md +354 -0
- package/bundled-skills/database-designer/schema_analyzer.py +982 -0
- package/bundled-skills/debug-issue/SKILL.md +28 -0
- package/bundled-skills/defuddle/SKILL.md +41 -0
- package/bundled-skills/dependency-auditor/README.md +524 -0
- package/bundled-skills/dependency-auditor/SKILL.md +85 -0
- package/bundled-skills/dependency-auditor/assets/sample_go.mod +53 -0
- package/bundled-skills/dependency-auditor/assets/sample_package.json +72 -0
- package/bundled-skills/dependency-auditor/assets/sample_requirements.txt +71 -0
- package/bundled-skills/dependency-auditor/expected_outputs/sample_license_report.txt +37 -0
- package/bundled-skills/dependency-auditor/expected_outputs/sample_upgrade_plan.txt +59 -0
- package/bundled-skills/dependency-auditor/expected_outputs/sample_vulnerability_report.json +71 -0
- package/bundled-skills/dependency-auditor/references/dependency_management_best_practices.md +643 -0
- package/bundled-skills/dependency-auditor/references/license_compatibility_matrix.md +238 -0
- package/bundled-skills/dependency-auditor/references/vulnerability_assessment_guide.md +461 -0
- package/bundled-skills/dependency-auditor/scripts/dep_scanner.py +794 -0
- package/bundled-skills/dependency-auditor/scripts/license_checker.py +996 -0
- package/bundled-skills/dependency-auditor/scripts/upgrade_planner.py +1029 -0
- package/bundled-skills/dependency-auditor/test-inventory.json +421 -0
- package/bundled-skills/dependency-auditor/test-project/package.json +72 -0
- package/bundled-skills/design-taste-frontend/SKILL.md +247 -0
- package/bundled-skills/dogfood/SKILL.md +27 -0
- package/bundled-skills/eas-app-stores/SKILL.md +176 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +431 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +54 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +208 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +106 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +224 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +44 -0
- package/bundled-skills/eas-update/SKILL.md +146 -0
- package/bundled-skills/eas-update/agents/openai.yaml +4 -0
- package/bundled-skills/eas-update-insights/SKILL.md +238 -0
- package/bundled-skills/eas-update-insights/agents/openai.yaml +4 -0
- package/bundled-skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/bundled-skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/bundled-skills/eas-workflows/SKILL.md +99 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/eas-workflows/scripts/package.json +6 -0
- package/bundled-skills/emails/SKILL.md +311 -0
- package/bundled-skills/emails/evals/evals.json +93 -0
- package/bundled-skills/emails/references/copy-guidelines.md +113 -0
- package/bundled-skills/emails/references/email-types.md +515 -0
- package/bundled-skills/emails/references/sequence-templates.md +168 -0
- package/bundled-skills/engineering-standards/SKILL.md +736 -0
- package/bundled-skills/env-secrets-manager/SKILL.md +260 -0
- package/bundled-skills/env-secrets-manager/references/secret-patterns.md +41 -0
- package/bundled-skills/env-secrets-manager/references/validation-detection-rotation.md +358 -0
- package/bundled-skills/env-secrets-manager/scripts/env_auditor.py +145 -0
- package/bundled-skills/explore-codebase/SKILL.md +29 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +267 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/expo-app-clip/SKILL.md +290 -0
- package/bundled-skills/expo-app-clip/agents/openai.yaml +4 -0
- package/bundled-skills/expo-app-clip/references/native-module.md +96 -0
- package/bundled-skills/expo-brownfield/SKILL.md +62 -0
- package/bundled-skills/expo-brownfield/agents/openai.yaml +4 -0
- package/bundled-skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/bundled-skills/expo-brownfield/references/brownfield-isolated.md +451 -0
- package/bundled-skills/expo-brownfield/references/comparison.md +63 -0
- package/bundled-skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/bundled-skills/expo-data-fetching/SKILL.md +478 -0
- package/bundled-skills/expo-data-fetching/agents/openai.yaml +4 -0
- package/bundled-skills/expo-data-fetching/references/expo-router-loaders.md +341 -0
- package/bundled-skills/expo-data-fetching/references/offline-and-cancellation.md +68 -0
- package/bundled-skills/expo-design-system/SKILL.md +376 -0
- package/bundled-skills/expo-design-system/agents/openai.yaml +4 -0
- package/bundled-skills/expo-design-system/references/audit.md +190 -0
- package/bundled-skills/expo-design-system/references/native-slop.md +74 -0
- package/bundled-skills/expo-dev-client/SKILL.md +182 -0
- package/bundled-skills/expo-dev-client/agents/openai.yaml +4 -0
- package/bundled-skills/expo-dom/SKILL.md +425 -0
- package/bundled-skills/expo-dom/agents/openai.yaml +4 -0
- package/bundled-skills/expo-examples/SKILL.md +106 -0
- package/bundled-skills/expo-examples/agents/openai.yaml +4 -0
- package/bundled-skills/expo-examples/references/catalog.md +105 -0
- package/bundled-skills/expo-migrate-module/SKILL.md +113 -0
- package/bundled-skills/expo-migrate-module/agents/openai.yaml +4 -0
- package/bundled-skills/expo-migrate-module/references/compatibility.md +73 -0
- package/bundled-skills/expo-migrate-module/references/example.md +212 -0
- package/bundled-skills/expo-migrate-module/references/migration-map.md +306 -0
- package/bundled-skills/expo-module/SKILL.md +151 -0
- package/bundled-skills/expo-module/agents/openai.yaml +4 -0
- package/bundled-skills/expo-module/references/config-plugin.md +90 -0
- package/bundled-skills/expo-module/references/create-expo-module.md +206 -0
- package/bundled-skills/expo-module/references/lifecycle.md +127 -0
- package/bundled-skills/expo-module/references/module-config.md +48 -0
- package/bundled-skills/expo-module/references/native-module.md +286 -0
- package/bundled-skills/expo-module/references/native-view.md +171 -0
- package/bundled-skills/expo-native-ui/SKILL.md +201 -0
- package/bundled-skills/expo-native-ui/agents/openai.yaml +4 -0
- package/bundled-skills/expo-native-ui/references/controls.md +231 -0
- package/bundled-skills/expo-native-ui/references/gradients.md +106 -0
- package/bundled-skills/expo-native-ui/references/icons.md +232 -0
- package/bundled-skills/expo-native-ui/references/media.md +193 -0
- package/bundled-skills/expo-native-ui/references/storage.md +121 -0
- package/bundled-skills/expo-native-ui/references/visual-effects.md +198 -0
- package/bundled-skills/expo-native-ui/references/webgpu-three.md +605 -0
- package/bundled-skills/expo-overview/SKILL.md +115 -0
- package/bundled-skills/expo-overview/agents/openai.yaml +4 -0
- package/bundled-skills/expo-project-structure/SKILL.md +114 -0
- package/bundled-skills/expo-project-structure/agents/openai.yaml +4 -0
- package/bundled-skills/expo-router/SKILL.md +240 -0
- package/bundled-skills/expo-router/agents/openai.yaml +4 -0
- package/bundled-skills/expo-router/references/form-sheet.md +253 -0
- package/bundled-skills/expo-router/references/route-structure.md +229 -0
- package/bundled-skills/expo-router/references/search.md +248 -0
- package/bundled-skills/expo-router/references/tabs.md +433 -0
- package/bundled-skills/expo-router/references/toolbar-and-headers.md +284 -0
- package/bundled-skills/expo-router/references/zoom-transitions.md +158 -0
- package/bundled-skills/expo-skill-eval/SKILL.md +314 -0
- package/bundled-skills/expo-skill-eval/agents/visual-grader.md +52 -0
- package/bundled-skills/expo-skill-eval/references/design-rubric.md +45 -0
- package/bundled-skills/expo-skill-eval/references/runtime-matrix.md +34 -0
- package/bundled-skills/expo-skill-eval/scripts/check-static.sh +64 -0
- package/bundled-skills/expo-skill-eval/scripts/clean-fixture.sh +56 -0
- package/bundled-skills/expo-skill-eval/scripts/generate_viewer.py +450 -0
- package/bundled-skills/expo-skill-eval/scripts/latest-sdk.sh +46 -0
- package/bundled-skills/expo-skill-eval/scripts/make-fixture.sh +95 -0
- package/bundled-skills/expo-skill-eval/scripts/make-workspace.sh +31 -0
- package/bundled-skills/expo-skill-eval/scripts/snapshot-android.sh +284 -0
- package/bundled-skills/expo-skill-eval/scripts/snapshot-ios.sh +132 -0
- package/bundled-skills/expo-skill-eval/scripts/snapshot-web.sh +61 -0
- package/bundled-skills/expo-skill-feedback/SKILL.md +87 -0
- package/bundled-skills/expo-skill-feedback/agents/openai.yaml +4 -0
- package/bundled-skills/expo-skill-feedback/scripts/skill-event.cjs +180 -0
- package/bundled-skills/expo-skill-feedback/scripts/telemetry.cjs +65 -0
- package/bundled-skills/expo-skill-feedback/scripts/telemetry_common.cjs +171 -0
- package/bundled-skills/expo-ui/SKILL.md +101 -0
- package/bundled-skills/expo-ui/agents/openai.yaml +4 -0
- package/bundled-skills/expo-ui/references/drop-in-replacements.md +27 -0
- package/bundled-skills/expo-ui/references/jetpack-compose.md +73 -0
- package/bundled-skills/expo-ui/references/swift-ui.md +73 -0
- package/bundled-skills/expo-ui/references/universal.md +104 -0
- package/bundled-skills/expo-ui/scripts/list-components.js +193 -0
- package/bundled-skills/expo-upgrade/SKILL.md +150 -0
- package/bundled-skills/expo-upgrade/agents/openai.yaml +4 -0
- package/bundled-skills/expo-upgrade/references/expo-av-to-audio.md +132 -0
- package/bundled-skills/expo-upgrade/references/expo-av-to-video.md +160 -0
- package/bundled-skills/expo-upgrade/references/native-tabs.md +124 -0
- package/bundled-skills/expo-upgrade/references/new-architecture.md +79 -0
- package/bundled-skills/expo-upgrade/references/react-19.md +79 -0
- package/bundled-skills/expo-upgrade/references/react-compiler.md +59 -0
- package/bundled-skills/expo-upgrade/references/react-navigation-to-expo-router.md +61 -0
- package/bundled-skills/expo-web-to-native/SKILL.md +91 -0
- package/bundled-skills/expo-web-to-native/agents/openai.yaml +4 -0
- package/bundled-skills/expo-web-to-native/references/false-friends.md +119 -0
- package/bundled-skills/expo-web-to-native/references/native-patterns.md +39 -0
- package/bundled-skills/expo-web-to-native/references/run-as-goal.md +48 -0
- package/bundled-skills/expo-web-to-native/references/verify-on-device.md +45 -0
- package/bundled-skills/find-skills/SKILL.md +141 -0
- package/bundled-skills/fix/SKILL.md +113 -0
- package/bundled-skills/fix/flaky-taxonomy.md +134 -0
- package/bundled-skills/flutter-add-integration-test/SKILL.md +163 -0
- package/bundled-skills/flutter-add-widget-preview/SKILL.md +145 -0
- package/bundled-skills/flutter-add-widget-test/SKILL.md +154 -0
- package/bundled-skills/flutter-apply-architecture-best-practices/SKILL.md +162 -0
- package/bundled-skills/flutter-build-responsive-layout/SKILL.md +139 -0
- package/bundled-skills/flutter-fix-layout-issues/SKILL.md +130 -0
- package/bundled-skills/flutter-implement-json-serialization/SKILL.md +153 -0
- package/bundled-skills/flutter-setup-declarative-routing/SKILL.md +255 -0
- package/bundled-skills/flutter-setup-localization/SKILL.md +210 -0
- package/bundled-skills/flutter-use-http-package/SKILL.md +174 -0
- package/bundled-skills/gate/SKILL.md +13 -0
- package/bundled-skills/graph-colorize/SKILL.md +180 -0
- package/bundled-skills/hermes-history-ingest/SKILL.md +239 -0
- package/bundled-skills/hermes-history-ingest/references/hermes-data-format.md +131 -0
- package/bundled-skills/humanizer/SKILL.md +374 -0
- package/bundled-skills/impeccable/SKILL.md +89 -0
- package/bundled-skills/impeccable/reference/adapt.md +312 -0
- package/bundled-skills/impeccable/reference/adapt.native.md +58 -0
- package/bundled-skills/impeccable/reference/android.md +46 -0
- package/bundled-skills/impeccable/reference/animate.md +89 -0
- package/bundled-skills/impeccable/reference/audit.md +136 -0
- package/bundled-skills/impeccable/reference/audit.native.md +139 -0
- package/bundled-skills/impeccable/reference/bolder.md +33 -0
- package/bundled-skills/impeccable/reference/clarify.md +94 -0
- package/bundled-skills/impeccable/reference/colorize.md +86 -0
- package/bundled-skills/impeccable/reference/craft-floor.md +44 -0
- package/bundled-skills/impeccable/reference/craft.md +5 -0
- package/bundled-skills/impeccable/reference/critique.md +806 -0
- package/bundled-skills/impeccable/reference/degraded/asset-producer.md +37 -0
- package/bundled-skills/impeccable/reference/degraded/documenter.md +24 -0
- package/bundled-skills/impeccable/reference/degraded/finish-reviewer.md +38 -0
- package/bundled-skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/bundled-skills/impeccable/reference/delight.md +70 -0
- package/bundled-skills/impeccable/reference/distill.md +111 -0
- package/bundled-skills/impeccable/reference/doctor.md +54 -0
- package/bundled-skills/impeccable/reference/document.md +416 -0
- package/bundled-skills/impeccable/reference/extract.md +69 -0
- package/bundled-skills/impeccable/reference/harden.md +336 -0
- package/bundled-skills/impeccable/reference/hooks.md +111 -0
- package/bundled-skills/impeccable/reference/init.md +131 -0
- package/bundled-skills/impeccable/reference/ios.md +51 -0
- package/bundled-skills/impeccable/reference/layout.md +84 -0
- package/bundled-skills/impeccable/reference/live-setup.md +104 -0
- package/bundled-skills/impeccable/reference/live.md +325 -0
- package/bundled-skills/impeccable/reference/new-work.md +145 -0
- package/bundled-skills/impeccable/reference/onboard.md +234 -0
- package/bundled-skills/impeccable/reference/operate.md +61 -0
- package/bundled-skills/impeccable/reference/optimize.md +258 -0
- package/bundled-skills/impeccable/reference/overdrive.md +127 -0
- package/bundled-skills/impeccable/reference/polish.md +105 -0
- package/bundled-skills/impeccable/reference/quieter.md +99 -0
- package/bundled-skills/impeccable/reference/routing.md +24 -0
- package/bundled-skills/impeccable/reference/shape.md +59 -0
- package/bundled-skills/impeccable/reference/typeset.md +80 -0
- package/bundled-skills/impeccable/reference/visualize.md +46 -0
- package/bundled-skills/impeccable/scripts/VERSION +1 -0
- package/bundled-skills/impeccable/scripts/bin/windows-x64/impeccable.exe +0 -0
- package/bundled-skills/impeccable/scripts/command-metadata.json +94 -0
- package/bundled-skills/impeccable/scripts/data/font-index-failures.json +121 -0
- package/bundled-skills/impeccable/scripts/data/font-index.json +1 -0
- package/bundled-skills/impeccable/scripts/impeccable +206 -0
- package/bundled-skills/impeccable/scripts/impeccable.cmd +214 -0
- package/bundled-skills/impeccable/scripts/live-browser-dom.js +167 -0
- package/bundled-skills/impeccable/scripts/live-browser-ignores.js +242 -0
- package/bundled-skills/impeccable/scripts/live-browser-session.js +144 -0
- package/bundled-skills/impeccable/scripts/live-browser.js +12990 -0
- package/bundled-skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/bundled-skills/impl-validator/SKILL.md +118 -0
- package/bundled-skills/ios-simulator/SKILL.md +32 -0
- package/bundled-skills/json-canvas/SKILL.md +244 -0
- package/bundled-skills/json-canvas/references/EXAMPLES.md +329 -0
- package/bundled-skills/launch/SKILL.md +381 -0
- package/bundled-skills/launch/evals/evals.json +106 -0
- package/bundled-skills/llm-wiki/SKILL.md +661 -0
- package/bundled-skills/llm-wiki/references/WRITING.md +28 -0
- package/bundled-skills/llm-wiki/references/karpathy-pattern.md +45 -0
- package/bundled-skills/marketing-plan/SKILL.md +300 -0
- package/bundled-skills/marketing-plan/evals/evals.json +112 -0
- package/bundled-skills/marketing-plan/references/aarrr-framework.md +180 -0
- package/bundled-skills/marketing-plan/references/budget-planning.md +168 -0
- package/bundled-skills/marketing-plan/references/client-types.md +373 -0
- package/bundled-skills/marketing-plan/references/current-state-rubric.md +255 -0
- package/bundled-skills/marketing-plan/references/example-quietude.md +972 -0
- package/bundled-skills/marketing-plan/references/funding-stage-unlocks.md +230 -0
- package/bundled-skills/marketing-plan/references/growth-patterns.md +190 -0
- package/bundled-skills/marketing-plan/references/idea-cross-reference.md +265 -0
- package/bundled-skills/marketing-plan/references/measurement-framework.md +213 -0
- package/bundled-skills/marketing-plan/references/methodology.md +363 -0
- package/bundled-skills/marketing-plan/references/ops-stack-mapping.md +197 -0
- package/bundled-skills/marketing-plan/references/plan-template.md +494 -0
- package/bundled-skills/marketing-plan/references/team-and-agency-model.md +278 -0
- package/bundled-skills/marketing-psychology/SKILL.md +455 -0
- package/bundled-skills/marketing-psychology/evals/evals.json +88 -0
- package/bundled-skills/mcp-server-builder/README.md +50 -0
- package/bundled-skills/mcp-server-builder/SKILL.md +100 -0
- package/bundled-skills/mcp-server-builder/references/openapi-extraction-guide.md +34 -0
- package/bundled-skills/mcp-server-builder/references/production-hardening-guide.md +78 -0
- package/bundled-skills/mcp-server-builder/references/python-server-template.md +22 -0
- package/bundled-skills/mcp-server-builder/references/typescript-server-template.md +19 -0
- package/bundled-skills/mcp-server-builder/references/validation-checklist.md +30 -0
- package/bundled-skills/mcp-server-builder/scripts/mcp_validator.py +186 -0
- package/bundled-skills/mcp-server-builder/scripts/openapi_to_mcp.py +284 -0
- package/bundled-skills/memory/SKILL.md +10 -0
- package/bundled-skills/memory-bridge/SKILL.md +163 -0
- package/bundled-skills/memory-save/SKILL.md +88 -0
- package/bundled-skills/migrate/SKILL.md +135 -0
- package/bundled-skills/migrate/cypress-mapping.md +79 -0
- package/bundled-skills/migrate/selenium-mapping.md +94 -0
- package/bundled-skills/novahiz-analyse/SKILL.md +74 -0
- package/bundled-skills/novahiz-audit/SKILL.md +75 -0
- package/bundled-skills/novahiz-clarify/SKILL.md +94 -0
- package/bundled-skills/novahiz-converge/SKILL.md +76 -0
- package/bundled-skills/novahiz-gate/SKILL.md +82 -0
- package/bundled-skills/novahiz-implement/SKILL.md +80 -0
- package/bundled-skills/novahiz-memory/SKILL.md +58 -0
- package/bundled-skills/novahiz-plan/SKILL.md +100 -0
- package/bundled-skills/novahiz-planner/SKILL.md +104 -0
- package/bundled-skills/novahiz-task/SKILL.md +105 -0
- package/bundled-skills/obsidian-bases/SKILL.md +499 -0
- package/bundled-skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -0
- package/bundled-skills/obsidian-cli/SKILL.md +106 -0
- package/bundled-skills/obsidian-layout-adjustment/SKILL.md +226 -0
- package/bundled-skills/obsidian-layout-adjustment/evals/evals.json +53 -0
- package/bundled-skills/obsidian-layout-adjustment/references/workflow-reference.md +212 -0
- package/bundled-skills/obsidian-markdown/SKILL.md +196 -0
- package/bundled-skills/obsidian-markdown/references/CALLOUTS.md +58 -0
- package/bundled-skills/obsidian-markdown/references/EMBEDS.md +70 -0
- package/bundled-skills/obsidian-markdown/references/PROPERTIES.md +61 -0
- package/bundled-skills/offers/SKILL.md +155 -0
- package/bundled-skills/offers/evals/evals.json +21 -0
- package/bundled-skills/offers/references/bonus-stacking.md +150 -0
- package/bundled-skills/offers/references/examples.md +215 -0
- package/bundled-skills/offers/references/guarantee-design.md +172 -0
- package/bundled-skills/offers/references/offer-anatomy.md +203 -0
- package/bundled-skills/offers/references/offer-formats.md +240 -0
- package/bundled-skills/offers/references/saas-offers.md +116 -0
- package/bundled-skills/offers/references/scarcity-urgency.md +175 -0
- package/bundled-skills/offers/references/value-equation.md +134 -0
- package/bundled-skills/onboarding/SKILL.md +261 -0
- package/bundled-skills/onboarding/evals/evals.json +108 -0
- package/bundled-skills/onboarding/references/activation-models.md +57 -0
- package/bundled-skills/onboarding/references/experiments.md +258 -0
- package/bundled-skills/onboarding/references/minimum-path-to-value.md +49 -0
- package/bundled-skills/openclaw-history-ingest/SKILL.md +257 -0
- package/bundled-skills/openclaw-history-ingest/references/openclaw-data-format.md +154 -0
- package/bundled-skills/orchestration/SKILL.md +69 -0
- package/bundled-skills/pi-history-ingest/SKILL.md +312 -0
- package/bundled-skills/playwright-agent/SKILL.md +142 -0
- package/bundled-skills/postgresql-optimization/SKILL.md +179 -0
- package/bundled-skills/pricing/SKILL.md +295 -0
- package/bundled-skills/pricing/evals/evals.json +119 -0
- package/bundled-skills/pricing/references/pricing-models.md +66 -0
- package/bundled-skills/pricing/references/pricing-page-teardown.md +85 -0
- package/bundled-skills/pricing/references/research-methods.md +152 -0
- package/bundled-skills/pricing/references/tier-structure.md +232 -0
- package/bundled-skills/product-marketing/SKILL.md +255 -0
- package/bundled-skills/product-marketing/evals/evals.json +98 -0
- package/bundled-skills/prospecting/SKILL.md +262 -0
- package/bundled-skills/prospecting/evals/evals.json +122 -0
- package/bundled-skills/prospecting/references/b2b-prospecting.md +106 -0
- package/bundled-skills/prospecting/references/compliance.md +123 -0
- package/bundled-skills/prospecting/references/data-sources.md +287 -0
- package/bundled-skills/prospecting/references/demand-signals.md +129 -0
- package/bundled-skills/prospecting/references/local-prospecting.md +165 -0
- package/bundled-skills/prospecting/references/saas-prospecting.md +123 -0
- package/bundled-skills/refactor-safely/SKILL.md +29 -0
- package/bundled-skills/review-changes/SKILL.md +30 -0
- package/bundled-skills/review-delta/SKILL.md +46 -0
- package/bundled-skills/review-pr/SKILL.md +66 -0
- package/bundled-skills/sales-enablement/SKILL.md +359 -0
- package/bundled-skills/sales-enablement/evals/evals.json +91 -0
- package/bundled-skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/bundled-skills/sales-enablement/references/demo-scripts.md +355 -0
- package/bundled-skills/sales-enablement/references/objection-library.md +270 -0
- package/bundled-skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/bundled-skills/security-guidance/SKILL.md +161 -0
- package/bundled-skills/security-guidance/references/pretooluse_hook_canon.md +141 -0
- package/bundled-skills/senior-architect/SKILL.md +343 -0
- package/bundled-skills/senior-architect/references/architecture_patterns.md +470 -0
- package/bundled-skills/senior-architect/references/system_design_workflows.md +536 -0
- package/bundled-skills/senior-architect/references/tech_decision_guide.md +412 -0
- package/bundled-skills/senior-architect/scripts/architecture_diagram_generator.py +660 -0
- package/bundled-skills/senior-architect/scripts/dependency_analyzer.py +615 -0
- package/bundled-skills/senior-architect/scripts/project_architect.py +749 -0
- package/bundled-skills/senior-backend/SKILL.md +467 -0
- package/bundled-skills/senior-backend/profiles/django-monolith.json +57 -0
- package/bundled-skills/senior-backend/profiles/fastapi-python.json +58 -0
- package/bundled-skills/senior-backend/profiles/go-or-rust-microservice.json +62 -0
- package/bundled-skills/senior-backend/profiles/node-express.json +57 -0
- package/bundled-skills/senior-backend/references/api_design_patterns.md +530 -0
- package/bundled-skills/senior-backend/references/backend_security_practices.md +1075 -0
- package/bundled-skills/senior-backend/references/composition_map.md +58 -0
- package/bundled-skills/senior-backend/references/database_optimization_guide.md +593 -0
- package/bundled-skills/senior-backend/references/forcing_questions.md +100 -0
- package/bundled-skills/senior-backend/scripts/api_load_tester.py +607 -0
- package/bundled-skills/senior-backend/scripts/api_scaffolder.py +645 -0
- package/bundled-skills/senior-backend/scripts/backend_decision_engine.py +397 -0
- package/bundled-skills/senior-backend/scripts/database_migration_tool.py +858 -0
- package/bundled-skills/seo-audit/SKILL.md +499 -0
- package/bundled-skills/seo-audit/evals/evals.json +136 -0
- package/bundled-skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/bundled-skills/seo-audit/references/international-seo.md +230 -0
- package/bundled-skills/session-brain/SKILL.md +101 -0
- package/bundled-skills/session-search/SKILL.md +97 -0
- package/bundled-skills/skill-creator/LICENSE.txt +202 -0
- package/bundled-skills/skill-creator/SKILL.md +485 -0
- package/bundled-skills/skill-creator/agents/analyzer.md +274 -0
- package/bundled-skills/skill-creator/agents/comparator.md +202 -0
- package/bundled-skills/skill-creator/agents/grader.md +223 -0
- package/bundled-skills/skill-creator/assets/eval_review.html +146 -0
- package/bundled-skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/bundled-skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/bundled-skills/skill-creator/references/schemas.md +430 -0
- package/bundled-skills/skill-creator/scripts/__init__.py +0 -0
- package/bundled-skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/bundled-skills/skill-creator/scripts/generate_report.py +326 -0
- package/bundled-skills/skill-creator/scripts/improve_description.py +247 -0
- package/bundled-skills/skill-creator/scripts/package_skill.py +136 -0
- package/bundled-skills/skill-creator/scripts/quick_validate.py +103 -0
- package/bundled-skills/skill-creator/scripts/run_eval.py +310 -0
- package/bundled-skills/skill-creator/scripts/run_loop.py +328 -0
- package/bundled-skills/skill-creator/scripts/utils.py +47 -0
- package/bundled-skills/social/SKILL.md +413 -0
- package/bundled-skills/social/evals/evals.json +107 -0
- package/bundled-skills/social/references/carousel-frameworks.md +141 -0
- package/bundled-skills/social/references/listening-sources-template.md +123 -0
- package/bundled-skills/social/references/listening.md +283 -0
- package/bundled-skills/social/references/platform-limits.md +110 -0
- package/bundled-skills/social/references/platforms.md +170 -0
- package/bundled-skills/social/references/post-templates.md +179 -0
- package/bundled-skills/social/references/reverse-engineering.md +195 -0
- package/bundled-skills/social/references/short-form-video.md +237 -0
- package/bundled-skills/spec-driven-workflow/SKILL.md +333 -0
- package/bundled-skills/spec-driven-workflow/references/acceptance_criteria_patterns.md +497 -0
- package/bundled-skills/spec-driven-workflow/references/bounded_autonomy_rules.md +273 -0
- package/bundled-skills/spec-driven-workflow/references/spec_format_guide.md +531 -0
- package/bundled-skills/spec-driven-workflow/scripts/spec_generator.py +338 -0
- package/bundled-skills/spec-driven-workflow/scripts/spec_validator.py +461 -0
- package/bundled-skills/spec-driven-workflow/scripts/test_extractor.py +431 -0
- package/bundled-skills/supabase/CHANGELOG.md +78 -0
- package/bundled-skills/supabase/SKILL.md +149 -0
- package/bundled-skills/supabase/assets/feedback-issue-template.md +17 -0
- package/bundled-skills/supabase/references/skill-feedback.md +17 -0
- package/bundled-skills/supabase-postgres-best-practices/CHANGELOG.md +73 -0
- package/bundled-skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/bundled-skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/bundled-skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/bundled-skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/bundled-skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/bundled-skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/bundled-skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/bundled-skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/bundled-skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/bundled-skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/bundled-skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/bundled-skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/bundled-skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/bundled-skills/tag-taxonomy/SKILL.md +218 -0
- package/bundled-skills/typescript-expert/SKILL.md +431 -0
- package/bundled-skills/typescript-expert/references/tsconfig-strict.json +45 -0
- package/bundled-skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
- package/bundled-skills/typescript-expert/references/utility-types.ts +335 -0
- package/bundled-skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
- package/bundled-skills/ui-design-system/SKILL.md +379 -0
- package/bundled-skills/ui-design-system/assets/design_system_doc_template.md +180 -0
- package/bundled-skills/ui-design-system/references/component-architecture.md +396 -0
- package/bundled-skills/ui-design-system/references/developer-handoff.md +509 -0
- package/bundled-skills/ui-design-system/references/responsive-calculations.md +390 -0
- package/bundled-skills/ui-design-system/references/token-generation.md +324 -0
- package/bundled-skills/ui-design-system/scripts/design_token_generator.py +590 -0
- package/bundled-skills/vault-skill-factory/SKILL.md +143 -0
- package/bundled-skills/video/SKILL.md +346 -0
- package/bundled-skills/video/evals/evals.json +103 -0
- package/bundled-skills/video/references/ai-video-prompting.md +175 -0
- package/bundled-skills/video/references/edit-anatomy.md +84 -0
- package/bundled-skills/wiki-agent/SKILL.md +322 -0
- package/bundled-skills/wiki-capture/SKILL.md +337 -0
- package/bundled-skills/wiki-capture/references/RAW-FORMAT.md +115 -0
- package/bundled-skills/wiki-context-pack/SKILL.md +89 -0
- package/bundled-skills/wiki-dashboard/SKILL.md +472 -0
- package/bundled-skills/wiki-dedup/SKILL.md +320 -0
- package/bundled-skills/wiki-digest/SKILL.md +243 -0
- package/bundled-skills/wiki-export/SKILL.md +445 -0
- package/bundled-skills/wiki-history-ingest/SKILL.md +61 -0
- package/bundled-skills/wiki-import/SKILL.md +276 -0
- package/bundled-skills/wiki-ingest/SKILL.md +563 -0
- package/bundled-skills/wiki-ingest/references/ingest-prompts.md +54 -0
- package/bundled-skills/wiki-ingest/references/pageindex.md +72 -0
- package/bundled-skills/wiki-ingest/references/url-sources.md +295 -0
- package/bundled-skills/wiki-lint/SKILL.md +643 -0
- package/bundled-skills/wiki-narrate/SKILL.md +120 -0
- package/bundled-skills/wiki-narrate/references/voices.md +29 -0
- package/bundled-skills/wiki-query/SKILL.md +307 -0
- package/bundled-skills/wiki-rebuild/SKILL.md +212 -0
- package/bundled-skills/wiki-research/SKILL.md +319 -0
- package/bundled-skills/wiki-setup/SKILL.md +359 -0
- package/bundled-skills/wiki-stage-commit/SKILL.md +164 -0
- package/bundled-skills/wiki-status/SKILL.md +556 -0
- package/bundled-skills/wiki-switch/SKILL.md +115 -0
- package/bundled-skills/wiki-synthesize/SKILL.md +212 -0
- package/bundled-skills/wiki-update/SKILL.md +271 -0
- package/bundled-skills/write-a-skill/SKILL.md +141 -0
- package/bundled-skills/write-a-skill/references/companion_tooling.md +67 -0
- package/bundled-skills/write-a-skill/references/description_design_patterns.md +139 -0
- package/bundled-skills/write-a-skill/references/progressive_disclosure_principles.md +89 -0
- package/bundled-skills/write-a-skill/references/quality_gates_for_skills.md +158 -0
- package/bundled-skills/write-a-skill/scripts/skill_description_validator.py +255 -0
- package/bundled-skills/write-a-skill/scripts/skill_review_checklist_runner.py +268 -0
- package/bundled-skills/write-a-skill/scripts/skill_structure_validator.py +277 -0
- package/bundled-skills/zero-hallucination-coder/SKILL.md +271 -0
- package/catalog/categories.json +1030 -0
- package/catalog/overrides.json +525 -0
- package/catalog/providers.json +145 -0
- package/catalog/rules.json +112 -0
- package/docs/ARCHITECTURE.md +82 -0
- package/docs/CONSTITUTION.md +60 -0
- package/docs/EXECUTION.md +79 -0
- package/docs/HARNESSES.md +38 -0
- package/docs/INSTALL.md +123 -0
- package/docs/PROVIDERS.md +128 -0
- package/docs/ROADMAPS.md +74 -0
- package/docs/RULES.md +85 -0
- package/docs/TOKENS.md +48 -0
- package/install/bootstrap.mjs +273 -0
- package/install/install.mjs +466 -0
- package/install/install.ps1 +3 -0
- package/install/install.sh +4 -0
- package/install/lib.mjs +198 -0
- package/install/prompt.mjs +16 -0
- package/install/uninstall.mjs +109 -0
- package/mcp/novahiz-tools/README.md +26 -0
- package/mcp/novahiz-tools/index.mjs +452 -0
- package/novahiz.config.example.json +39 -0
- package/package.json +76 -0
- package/skills/a11y-audit/SKILL.md +211 -0
- package/skills/a11y-audit/assets/sample-component.tsx +51 -0
- package/skills/a11y-audit/expected_outputs/sample-contrast-output.txt +39 -0
- package/skills/a11y-audit/expected_outputs/sample-scan-output.json +34 -0
- package/skills/a11y-audit/expected_outputs/sample-scan-report.md +63 -0
- package/skills/a11y-audit/references/aria-patterns.md +223 -0
- package/skills/a11y-audit/references/audit-report-template.md +46 -0
- package/skills/a11y-audit/references/ci-cd-integration.md +127 -0
- package/skills/a11y-audit/references/color-contrast-guide.md +83 -0
- package/skills/a11y-audit/references/examples-by-framework.md +312 -0
- package/skills/a11y-audit/references/framework-a11y-patterns.md +661 -0
- package/skills/a11y-audit/references/testing-checklist.md +41 -0
- package/skills/a11y-audit/references/wcag-22-new-criteria.md +79 -0
- package/skills/a11y-audit/references/wcag-quick-ref.md +113 -0
- package/skills/a11y-audit/scripts/a11y_scanner.py +684 -0
- package/skills/a11y-audit/scripts/contrast_checker.py +504 -0
- package/skills/adversarial-reviewer/SKILL.md +247 -0
- package/skills/ai-security/SKILL.md +364 -0
- package/skills/ai-security/references/atlas-coverage.md +150 -0
- package/skills/ai-security/scripts/ai_threat_scanner.py +564 -0
- package/skills/anti-AI-design/SKILL.md +189 -0
- package/skills/anti-pattern-detector/SKILL.md +185 -0
- package/skills/anti-pattern-detector/references/async-network-patterns.md +581 -0
- package/skills/anti-pattern-detector/references/build-deploy-patterns.md +554 -0
- package/skills/anti-pattern-detector/references/cache-patterns.md +446 -0
- package/skills/anti-pattern-detector/references/cloud-infra-patterns.md +538 -0
- package/skills/anti-pattern-detector/references/concurrency-patterns.md +558 -0
- package/skills/anti-pattern-detector/references/language-specific-patterns.md +740 -0
- package/skills/anti-pattern-detector/references/monitoring-patterns.md +456 -0
- package/skills/api-design-reviewer/SKILL.md +433 -0
- package/skills/api-design-reviewer/references/api_antipatterns.md +680 -0
- package/skills/api-design-reviewer/references/rest_design_rules.md +487 -0
- package/skills/api-design-reviewer/scripts/api_linter.py +956 -0
- package/skills/api-design-reviewer/scripts/api_scorecard.py +1661 -0
- package/skills/api-design-reviewer/scripts/breaking_change_detector.py +1102 -0
- package/skills/apple-hig-expert/SKILL.md +108 -0
- package/skills/apple-hig-expert/references/accessibility.md +55 -0
- package/skills/apple-hig-expert/references/platform-specifics.md +48 -0
- package/skills/apple-hig-expert/references/visual-design.md +69 -0
- package/skills/apple-hig-expert/scripts/hig_checker.py +97 -0
- package/skills/apple-hig-expert/templates/hig-audit-template.md +83 -0
- package/skills/clean-code/SKILL.md +99 -0
- package/skills/code-reviewer/README.md +92 -0
- package/skills/code-reviewer/SKILL.md +183 -0
- package/skills/code-reviewer/assets/sample_c_clean.c +71 -0
- package/skills/code-reviewer/assets/sample_c_smells.c +66 -0
- package/skills/code-reviewer/assets/sample_csharp_clean.cs +100 -0
- package/skills/code-reviewer/assets/sample_csharp_smells.cs +78 -0
- package/skills/code-reviewer/assets/sample_java_clean.java +55 -0
- package/skills/code-reviewer/assets/sample_java_smells.java +56 -0
- package/skills/code-reviewer/expected_outputs/sample_c_clean_quality.json +65 -0
- package/skills/code-reviewer/expected_outputs/sample_c_smells_quality.json +155 -0
- package/skills/code-reviewer/expected_outputs/sample_csharp_clean_quality.json +135 -0
- package/skills/code-reviewer/expected_outputs/sample_csharp_smells_quality.json +143 -0
- package/skills/code-reviewer/expected_outputs/sample_java_clean_quality.json +53 -0
- package/skills/code-reviewer/expected_outputs/sample_java_smells_quality.json +83 -0
- package/skills/code-reviewer/languages/c.md +103 -0
- package/skills/code-reviewer/languages/cpp.md +103 -0
- package/skills/code-reviewer/languages/csharp.md +97 -0
- package/skills/code-reviewer/languages/dart.md +108 -0
- package/skills/code-reviewer/languages/go.md +92 -0
- package/skills/code-reviewer/languages/java.md +103 -0
- package/skills/code-reviewer/languages/kotlin.md +88 -0
- package/skills/code-reviewer/languages/php.md +109 -0
- package/skills/code-reviewer/languages/python.md +94 -0
- package/skills/code-reviewer/languages/ruby.md +105 -0
- package/skills/code-reviewer/languages/rust.md +99 -0
- package/skills/code-reviewer/languages/swift.md +88 -0
- package/skills/code-reviewer/languages/typescript.md +97 -0
- package/skills/code-reviewer/rules/universal.md +49 -0
- package/skills/code-reviewer/scripts/code_quality_checker.py +1020 -0
- package/skills/code-reviewer/scripts/pr_analyzer.py +535 -0
- package/skills/code-reviewer/scripts/review_report_generator.py +505 -0
- package/skills/code-understand/SKILL.md +90 -0
- package/skills/database-designer/README.md +388 -0
- package/skills/database-designer/SKILL.md +314 -0
- package/skills/database-designer/assets/sample_query_patterns.json +375 -0
- package/skills/database-designer/assets/sample_schema.json +372 -0
- package/skills/database-designer/assets/sample_schema.sql +207 -0
- package/skills/database-designer/expected_outputs/index_optimization_sample.txt +60 -0
- package/skills/database-designer/expected_outputs/migration_sample.txt +124 -0
- package/skills/database-designer/expected_outputs/schema_analysis_sample.txt +222 -0
- package/skills/database-designer/index_optimizer.py +926 -0
- package/skills/database-designer/migration_generator.py +1199 -0
- package/skills/database-designer/references/database-design-reference.md +476 -0
- package/skills/database-designer/references/database_selection_decision_tree.md +373 -0
- package/skills/database-designer/references/index_strategy_patterns.md +424 -0
- package/skills/database-designer/references/normalization_guide.md +354 -0
- package/skills/database-designer/schema_analyzer.py +982 -0
- package/skills/defuddle/SKILL.md +41 -0
- package/skills/dependency-auditor/README.md +524 -0
- package/skills/dependency-auditor/SKILL.md +85 -0
- package/skills/dependency-auditor/assets/sample_go.mod +53 -0
- package/skills/dependency-auditor/assets/sample_package.json +72 -0
- package/skills/dependency-auditor/assets/sample_requirements.txt +71 -0
- package/skills/dependency-auditor/expected_outputs/sample_license_report.txt +37 -0
- package/skills/dependency-auditor/expected_outputs/sample_upgrade_plan.txt +59 -0
- package/skills/dependency-auditor/expected_outputs/sample_vulnerability_report.json +71 -0
- package/skills/dependency-auditor/references/dependency_management_best_practices.md +643 -0
- package/skills/dependency-auditor/references/license_compatibility_matrix.md +238 -0
- package/skills/dependency-auditor/references/vulnerability_assessment_guide.md +461 -0
- package/skills/dependency-auditor/scripts/dep_scanner.py +794 -0
- package/skills/dependency-auditor/scripts/license_checker.py +996 -0
- package/skills/dependency-auditor/scripts/upgrade_planner.py +1029 -0
- package/skills/dependency-auditor/test-inventory.json +421 -0
- package/skills/dependency-auditor/test-project/package.json +72 -0
- package/skills/design-taste-frontend/SKILL.md +247 -0
- package/skills/engineering-standards/SKILL.md +736 -0
- package/skills/env-secrets-manager/SKILL.md +260 -0
- package/skills/env-secrets-manager/references/secret-patterns.md +41 -0
- package/skills/env-secrets-manager/references/validation-detection-rotation.md +358 -0
- package/skills/env-secrets-manager/scripts/env_auditor.py +145 -0
- package/skills/fix/SKILL.md +113 -0
- package/skills/fix/flaky-taxonomy.md +134 -0
- package/skills/gate/SKILL.md +13 -0
- package/skills/humanizer/SKILL.md +374 -0
- package/skills/mcp-server-builder/README.md +50 -0
- package/skills/mcp-server-builder/SKILL.md +100 -0
- package/skills/mcp-server-builder/references/openapi-extraction-guide.md +34 -0
- package/skills/mcp-server-builder/references/production-hardening-guide.md +78 -0
- package/skills/mcp-server-builder/references/python-server-template.md +22 -0
- package/skills/mcp-server-builder/references/typescript-server-template.md +19 -0
- package/skills/mcp-server-builder/references/validation-checklist.md +30 -0
- package/skills/mcp-server-builder/scripts/mcp_validator.py +186 -0
- package/skills/mcp-server-builder/scripts/openapi_to_mcp.py +284 -0
- package/skills/memory/SKILL.md +10 -0
- package/skills/migrate/SKILL.md +135 -0
- package/skills/migrate/cypress-mapping.md +79 -0
- package/skills/migrate/selenium-mapping.md +94 -0
- package/skills/novahiz-analyse/SKILL.md +74 -0
- package/skills/novahiz-audit/SKILL.md +75 -0
- package/skills/novahiz-clarify/SKILL.md +94 -0
- package/skills/novahiz-converge/SKILL.md +76 -0
- package/skills/novahiz-gate/SKILL.md +82 -0
- package/skills/novahiz-implement/SKILL.md +80 -0
- package/skills/novahiz-memory/SKILL.md +58 -0
- package/skills/novahiz-plan/SKILL.md +99 -0
- package/skills/novahiz-planner/SKILL.md +104 -0
- package/skills/novahiz-task/SKILL.md +105 -0
- package/skills/playwright-agent/SKILL.md +142 -0
- package/skills/postgresql-optimization/SKILL.md +179 -0
- package/skills/review-changes/SKILL.md +30 -0
- package/skills/security-guidance/SKILL.md +160 -0
- package/skills/security-guidance/references/pretooluse_hook_canon.md +141 -0
- package/skills/senior-architect/SKILL.md +343 -0
- package/skills/senior-architect/references/architecture_patterns.md +470 -0
- package/skills/senior-architect/references/system_design_workflows.md +536 -0
- package/skills/senior-architect/references/tech_decision_guide.md +412 -0
- package/skills/senior-architect/scripts/architecture_diagram_generator.py +660 -0
- package/skills/senior-architect/scripts/dependency_analyzer.py +615 -0
- package/skills/senior-architect/scripts/project_architect.py +749 -0
- package/skills/senior-backend/SKILL.md +467 -0
- package/skills/senior-backend/profiles/django-monolith.json +57 -0
- package/skills/senior-backend/profiles/fastapi-python.json +58 -0
- package/skills/senior-backend/profiles/go-or-rust-microservice.json +62 -0
- package/skills/senior-backend/profiles/node-express.json +57 -0
- package/skills/senior-backend/references/api_design_patterns.md +530 -0
- package/skills/senior-backend/references/backend_security_practices.md +1075 -0
- package/skills/senior-backend/references/composition_map.md +58 -0
- package/skills/senior-backend/references/database_optimization_guide.md +593 -0
- package/skills/senior-backend/references/forcing_questions.md +100 -0
- package/skills/senior-backend/scripts/api_load_tester.py +607 -0
- package/skills/senior-backend/scripts/api_scaffolder.py +645 -0
- package/skills/senior-backend/scripts/backend_decision_engine.py +397 -0
- package/skills/senior-backend/scripts/database_migration_tool.py +858 -0
- package/skills/senior-secops/SKILL.md +505 -0
- package/skills/senior-secops/references/compliance_requirements.md +792 -0
- package/skills/senior-secops/references/security_standards.md +718 -0
- package/skills/senior-secops/references/vulnerability_management_guide.md +487 -0
- package/skills/senior-secops/scripts/compliance_checker.py +1107 -0
- package/skills/senior-secops/scripts/security_scanner.py +471 -0
- package/skills/senior-secops/scripts/vulnerability_assessor.py +563 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/SKILL.md +485 -0
- package/skills/skill-creator/agents/analyzer.md +274 -0
- package/skills/skill-creator/agents/comparator.md +202 -0
- package/skills/skill-creator/agents/grader.md +223 -0
- package/skills/skill-creator/assets/eval_review.html +146 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator/references/schemas.md +430 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/skill-creator/scripts/generate_report.py +326 -0
- package/skills/skill-creator/scripts/improve_description.py +247 -0
- package/skills/skill-creator/scripts/package_skill.py +136 -0
- package/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/skill-creator/scripts/run_eval.py +310 -0
- package/skills/skill-creator/scripts/run_loop.py +328 -0
- package/skills/skill-creator/scripts/utils.py +47 -0
- package/skills/spec-driven-workflow/SKILL.md +333 -0
- package/skills/spec-driven-workflow/references/acceptance_criteria_patterns.md +497 -0
- package/skills/spec-driven-workflow/references/bounded_autonomy_rules.md +273 -0
- package/skills/spec-driven-workflow/references/spec_format_guide.md +531 -0
- package/skills/spec-driven-workflow/scripts/spec_generator.py +338 -0
- package/skills/spec-driven-workflow/scripts/spec_validator.py +461 -0
- package/skills/spec-driven-workflow/scripts/test_extractor.py +431 -0
- package/skills/supabase/CHANGELOG.md +78 -0
- package/skills/supabase/SKILL.md +149 -0
- package/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/skills/supabase/references/skill-feedback.md +17 -0
- package/skills/supabase-postgres-best-practices/CHANGELOG.md +73 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/skills/typescript-expert/SKILL.md +431 -0
- package/skills/typescript-expert/references/tsconfig-strict.json +45 -0
- package/skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
- package/skills/typescript-expert/references/utility-types.ts +335 -0
- package/skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
- package/skills/ui-design-system/SKILL.md +379 -0
- package/skills/ui-design-system/assets/design_system_doc_template.md +180 -0
- package/skills/ui-design-system/references/component-architecture.md +396 -0
- package/skills/ui-design-system/references/developer-handoff.md +509 -0
- package/skills/ui-design-system/references/responsive-calculations.md +390 -0
- package/skills/ui-design-system/references/token-generation.md +324 -0
- package/skills/ui-design-system/scripts/design_token_generator.py +590 -0
- package/skills/write-a-skill/SKILL.md +141 -0
- package/skills/write-a-skill/references/companion_tooling.md +67 -0
- package/skills/write-a-skill/references/description_design_patterns.md +139 -0
- package/skills/write-a-skill/references/progressive_disclosure_principles.md +89 -0
- package/skills/write-a-skill/references/quality_gates_for_skills.md +158 -0
- package/skills/write-a-skill/scripts/skill_description_validator.py +255 -0
- package/skills/write-a-skill/scripts/skill_review_checklist_runner.py +268 -0
- package/skills/write-a-skill/scripts/skill_structure_validator.py +277 -0
- package/skills/zero-hallucination-coder/SKILL.md +271 -0
- package/src/catalog.ts +266 -0
- package/src/classify.ts +201 -0
- package/src/cli.ts +115 -0
- package/src/commands/clean.ts +114 -0
- package/src/commands/context.ts +130 -0
- package/src/commands/doctor.ts +191 -0
- package/src/commands/gate.ts +192 -0
- package/src/commands/inspect.ts +296 -0
- package/src/commands/report.ts +85 -0
- package/src/commands/task.ts +310 -0
- package/src/commands/tokens.ts +85 -0
- package/src/content.ts +70 -0
- package/src/db.ts +143 -0
- package/src/deps.ts +36 -0
- package/src/exec.ts +85 -0
- package/src/gate.ts +261 -0
- package/src/ledger.ts +468 -0
- package/src/providers.ts +52 -0
- package/src/relevance.ts +73 -0
- package/src/render.ts +107 -0
- package/src/spec.ts +306 -0
- package/src/targets.ts +296 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,736 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: engineering-standards
|
|
3
|
+
description: |
|
|
4
|
+
Engineering standards reference for Novahiz code-producing tasks. Load ON DEMAND for
|
|
5
|
+
code, debugging, database, devops, and audit categories — never kept in context permanently.
|
|
6
|
+
Covers: architecture & design patterns (SOLID, DRY, KISS, YAGNI), OWASP security,
|
|
7
|
+
performance optimization, testing strategy, API design, database best practices,
|
|
8
|
+
React/Next.js frontend, mobile development, DevOps & deployment, WCAG accessibility,
|
|
9
|
+
SEO, git discipline, documentation, error handling & logging, state management,
|
|
10
|
+
internationalization, PWA, TypeScript strictness, UI/UX design standards,
|
|
11
|
+
real-time & WebSocket, observability & monitoring, incident response,
|
|
12
|
+
ethical development & privacy (GDPR), AI/LLM integration, payment integration (Stripe),
|
|
13
|
+
email & notifications, search implementation, file upload & storage, feature flags,
|
|
14
|
+
runtime data validation, chaos engineering, cost optimization, vendor lock-in prevention,
|
|
15
|
+
legacy code management, web components & design systems, microservices patterns,
|
|
16
|
+
edge computing, data pipeline & ETL, compliance & auditing (SOC 2, HIPAA).
|
|
17
|
+
Triggers on: writing code, fixing bugs, schema design, infrastructure work, code review.
|
|
18
|
+
license: MIT
|
|
19
|
+
compatibility: opencode
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# ENGINEERING STANDARDS
|
|
23
|
+
|
|
24
|
+
> On-demand reference extracted from the Novahiz agent rules. The agent loads this skill
|
|
25
|
+
> for `code`, `debugging`, `database`, `devops`, and `audit` tasks only.
|
|
26
|
+
> Apply ONLY the sections relevant to the current task. These are defaults: explicit user
|
|
27
|
+
> instructions and existing project conventions override them (see agent/novahiz-engine.md §4).
|
|
28
|
+
> Numbering is preserved from the legacy layout — standards 20 (memory), 41 (token economy),
|
|
29
|
+
> and 42 (Obsidian protocol) live in `agent/novahiz-engine.md`, not here.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# CATEGORY 1: ARCHITECTURE & DESIGN PATTERNS
|
|
34
|
+
|
|
35
|
+
You MUST follow these architectural principles in ALL code you write:
|
|
36
|
+
|
|
37
|
+
- **SOLID Principles**: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion — apply to every class, function, and module.
|
|
38
|
+
- **DRY (Don't Repeat Yourself)**: If you see duplication, extract it. One source of truth for every piece of logic.
|
|
39
|
+
- **KISS (Keep It Simple, Stupid)**: Prefer the simplest solution that works. Complexity is a cost, not a feature.
|
|
40
|
+
- **YAGNI (You Ain't Gonna Need It)**: Do NOT build for hypothetical future requirements. Build what is needed NOW.
|
|
41
|
+
- **Separation of Concerns**: Each module, class, and function has ONE responsibility. Business logic, data access, and presentation are ALWAYS separated.
|
|
42
|
+
- **Composition over Inheritance**: Prefer composing small, focused components/functions over deep inheritance hierarchies.
|
|
43
|
+
- **Dependency Injection**: Dependencies are passed in, not created internally. This enables testing and flexibility.
|
|
44
|
+
- **Strategy Pattern**: Use when behavior varies at runtime. Encapsulate algorithms behind interfaces.
|
|
45
|
+
- **Factory Pattern**: Use when object creation is complex. Centralize construction logic.
|
|
46
|
+
- **Observer Pattern**: Use for event-driven communication. Decouple publishers from subscribers.
|
|
47
|
+
- **Repository Pattern**: All data access goes through repositories. Never call ORM/database directly from business logic.
|
|
48
|
+
- **Service Layer Pattern**: Business logic lives in services. Controllers handle HTTP, services handle domain.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# CATEGORY 2: SECURITY (OWASP TOP 10)
|
|
53
|
+
|
|
54
|
+
Security is NON-NEGOTIABLE. Every line of code must be written with security in mind:
|
|
55
|
+
|
|
56
|
+
- **Input Validation**: Validate and sanitize ALL input on EVERY entry point (forms, API params, headers, cookies, file uploads). Use allowlists, not denylists.
|
|
57
|
+
- **Output Encoding**: Encode ALL output before rendering. Prevent XSS by encoding HTML, JavaScript, CSS, and URL contexts.
|
|
58
|
+
- **Parameterized Queries**: NEVER use string concatenation for SQL. ALWAYS use parameterized queries or ORM methods.
|
|
59
|
+
- **CSRF Protection**: Include CSRF tokens on ALL state-changing requests (POST, PUT, PATCH, DELETE).
|
|
60
|
+
- **Content Security Policy**: Implement strict CSP headers. No inline scripts, no eval(), no unsafe-inline.
|
|
61
|
+
- **Cookie Security**: ALL auth cookies MUST be HttpOnly, Secure, SameSite=Strict, with appropriate expiration.
|
|
62
|
+
- **Rate Limiting**: Apply rate limiting on authentication endpoints, password reset, and sensitive operations.
|
|
63
|
+
- **JWT Best Practices**: Short expiration (15min), refresh token rotation, secure storage (httpOnly cookie).
|
|
64
|
+
- **Secrets Management**: NEVER commit secrets to code. Use environment variables or secret managers (Vault, AWS SSM).
|
|
65
|
+
- **Dependency Scanning**: Check dependencies for known vulnerabilities. Use `npm audit`, `pip-audit`, or Snyk.
|
|
66
|
+
- **CORS Configuration**: NEVER use `*` origin. Whitelist specific trusted domains.
|
|
67
|
+
- **SQL Injection Prevention**: Use ORM query builders or parameterized queries. NEVER interpolate user input into queries.
|
|
68
|
+
- **Authentication**: Every protected route MUST verify authentication. No exceptions.
|
|
69
|
+
- **Authorization**: Implement RBAC or ABAC. Check permissions at service level, not just controller level.
|
|
70
|
+
- **Security Headers**: Always set: HSTS, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
# CATEGORY 3: PERFORMANCE OPTIMIZATION
|
|
75
|
+
|
|
76
|
+
Every application MUST meet these performance standards:
|
|
77
|
+
|
|
78
|
+
- **Lazy Loading**: Routes, heavy components, and images MUST be lazy loaded. Only load what is needed NOW.
|
|
79
|
+
- **Image Optimization**: Use WebP/AVIF formats, responsive srcset, and proper sizing. Never serve uncompressed images.
|
|
80
|
+
- **Bundle Analysis**: Regularly analyze bundle size. Remove unused dependencies. Split large bundles.
|
|
81
|
+
- **Tree Shaking**: Ensure tree shaking is enabled. Import only what you use (`import { specific } from 'lib'`).
|
|
82
|
+
- **Critical CSS**: Inline above-the-fold CSS. Defer non-critical CSS loading.
|
|
83
|
+
- **Core Web Vitals**: LCP < 2.5s, FID < 100ms, CLS < 0.1 — these are HARD targets.
|
|
84
|
+
- **Caching Strategy**: Implement Redis/memory caching for expensive operations. Cache with proper TTL and invalidation.
|
|
85
|
+
- **CDN**: Serve all static assets through a CDN. Set proper Cache-Control headers.
|
|
86
|
+
- **Database Optimization**: Prevent N+1 queries. Use eager loading. Analyze EXPLAIN plans for slow queries.
|
|
87
|
+
- **Pagination**: ALL list endpoints MUST be paginated. Use cursor-based pagination for large datasets.
|
|
88
|
+
- **Debounce/Throttle**: User inputs (search, resize, scroll) MUST be debounced or throttled.
|
|
89
|
+
- **Virtual Scrolling**: Lists with 100+ items MUST use virtual scrolling (react-window, react-virtuoso).
|
|
90
|
+
- **Prefetching**: Prefetch routes and data the user is likely to navigate to next.
|
|
91
|
+
- **Compression**: Enable gzip or brotli compression for all text-based responses.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# CATEGORY 4: TESTING STRATEGY
|
|
96
|
+
|
|
97
|
+
Testing is MANDATORY. Ship code with confidence:
|
|
98
|
+
|
|
99
|
+
- **Unit Tests**: ALL business logic functions MUST have unit tests. 80% minimum line coverage.
|
|
100
|
+
- **Integration Tests**: ALL API endpoints MUST have integration tests covering success and error paths.
|
|
101
|
+
- **E2E Tests**: Critical user flows (signup, checkout, core features) MUST have Playwright E2E tests.
|
|
102
|
+
- **Coverage Thresholds**: Minimum 80% line coverage, 75% branch coverage. Fail CI if below threshold.
|
|
103
|
+
- **TDD Approach**: For new features, write tests FIRST (red), implement (green), refactor.
|
|
104
|
+
- **Mock External Services**: NEVER call real external APIs in tests. Mock all external dependencies.
|
|
105
|
+
- **Test Data Factories**: Use factories for test data, not hardcoded fixtures. Each test creates its own data.
|
|
106
|
+
- **Snapshot Tests**: UI components MUST have snapshot tests to catch unintended visual changes.
|
|
107
|
+
- **Load Tests**: Performance-critical paths MUST have load tests (k6, Artillery).
|
|
108
|
+
- **Security Tests**: Authentication and authorization flows MUST have security-focused tests.
|
|
109
|
+
- **Regression Tests**: Every bug fix MUST include a test that reproduces the bug.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
# CATEGORY 5: API DESIGN STANDARDS
|
|
114
|
+
|
|
115
|
+
Every API you build MUST follow these standards:
|
|
116
|
+
|
|
117
|
+
- **RESTful Naming**: Use nouns for resources (`/users`, `/orders`), NOT verbs (`/getUsers`).
|
|
118
|
+
- **HTTP Methods**: GET (read), POST (create), PUT (full update), PATCH (partial update), DELETE (remove).
|
|
119
|
+
- **Error Responses**: Consistent format: `{ "error": { "code": "VALIDATION_ERROR", "message": "...", "details": [...] } }`.
|
|
120
|
+
- **Cursor-Based Pagination**: Use `?cursor=xxx&limit=20` instead of offset pagination for large datasets.
|
|
121
|
+
- **Filtering**: Use query parameters for filtering: `?status=active&created_after=2024-01-01`.
|
|
122
|
+
- **Sorting**: Use `?sort=created_at:desc` or `?sort=-created_at` (minus for descending).
|
|
123
|
+
- **Rate Limit Headers**: Include `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`.
|
|
124
|
+
- **API Versioning**: Version APIs via URL (`/v1/users`) or header (`Accept-Version: v1`).
|
|
125
|
+
- **HATEOAS Links**: Include related resource links in responses for discoverability.
|
|
126
|
+
- **Request Validation**: Validate ALL request bodies and parameters against a schema (Zod, Joi, Yup).
|
|
127
|
+
- **Idempotency Keys**: Mutation endpoints (POST, PUT) MUST accept idempotency keys for safe retries.
|
|
128
|
+
- **Health Check**: Every service MUST expose `GET /health` returning status, version, and dependencies.
|
|
129
|
+
- **OpenAPI Documentation**: Every API MUST have an OpenAPI/Swagger spec. Document all endpoints.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
# CATEGORY 6: DATABASE BEST PRACTICES
|
|
134
|
+
|
|
135
|
+
Database design determines application reliability:
|
|
136
|
+
|
|
137
|
+
- **Indexes**: ALL foreign keys and frequently queried columns MUST be indexed. Use composite indexes for multi-column queries.
|
|
138
|
+
- **Migrations First**: NEVER modify database schema manually. ALWAYS use migrations. Test migrations before deploying.
|
|
139
|
+
- **Normalization**: Normalize to 3NF minimum. Denormalize ONLY when profiling shows a performance bottleneck.
|
|
140
|
+
- **Soft Deletes**: Use `deleted_at` timestamp instead of hard deletes for audit trails and data recovery.
|
|
141
|
+
- **UUIDs**: Use UUIDs (v4 or ULID) for public-facing IDs. Never expose sequential integers.
|
|
142
|
+
- **Timestamps**: ALL tables MUST have `created_at` and `updated_at` columns. Automate with triggers or ORM.
|
|
143
|
+
- **Connection Pooling**: Use connection pooling in production. Never open/close connections per request.
|
|
144
|
+
- **Query Analysis**: Run EXPLAIN ANALYZE on slow queries. Optimize based on actual execution plans.
|
|
145
|
+
- **Backup Strategy**: Automated daily backups with tested restore procedure. Backups are USELESS if untested.
|
|
146
|
+
- **Data Integrity**: Use database-level constraints (NOT NULL, UNIQUE, CHECK, FOREIGN KEY) as the last line of defense.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
# CATEGORY 7: FRONTEND / REACT / NEXT.JS
|
|
151
|
+
|
|
152
|
+
React/Next.js applications MUST follow these rules:
|
|
153
|
+
|
|
154
|
+
- **Component Size**: Components MUST NOT exceed 200 lines. Split larger components into smaller ones.
|
|
155
|
+
- **Custom Hooks**: Extract reusable logic into custom hooks. Never duplicate stateful logic across components.
|
|
156
|
+
- **Server Components**: Next.js App Router — use Server Components by DEFAULT. Client Components ONLY when interactivity, browser APIs, or state is required.
|
|
157
|
+
- **Client Components**: Mark with `'use client'` ONLY at the top of the file that needs it. Minimize client component tree.
|
|
158
|
+
- **Proper Keys**: NEVER use array index as key. Use stable, unique identifiers.
|
|
159
|
+
- **Memoization**: Use `useMemo` for expensive computations. Use `useCallback` for stable callback references passed to children.
|
|
160
|
+
- **Suspense**: Wrap async components in Suspense boundaries with meaningful fallback UI.
|
|
161
|
+
- **Error Boundaries**: Wrap feature sections in Error Boundaries for graceful failure handling.
|
|
162
|
+
- **Form Validation**: Validate on BOTH client (instant feedback) and server (security). Never trust client validation alone.
|
|
163
|
+
- **Accessible Forms**: ALL form inputs MUST have associated `<label>` elements. Use `htmlFor` or wrap input in label.
|
|
164
|
+
- **Responsive Design**: Mobile-first approach. Use CSS Grid/Flexbox. Test on 320px to 2560px viewports.
|
|
165
|
+
- **Dark Mode**: Support via CSS custom properties or Tailwind dark mode. Respect `prefers-color-scheme`.
|
|
166
|
+
- **Skeleton Loading**: Show skeleton placeholders during data loading, NOT spinners (perceived performance).
|
|
167
|
+
- **Optimistic UI**: Update UI immediately on user action, then reconcile with server response.
|
|
168
|
+
- **Effect Cleanup**: ALL useEffect hooks with subscriptions/timers MUST return cleanup functions.
|
|
169
|
+
- **No Inline Styles**: Use Tailwind CSS classes, CSS Modules, or styled-components. NEVER use inline `style={{}}`.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
# CATEGORY 8: MOBILE DEVELOPMENT
|
|
174
|
+
|
|
175
|
+
Mobile applications MUST meet these standards:
|
|
176
|
+
|
|
177
|
+
- **Touch Targets**: ALL interactive elements MUST be at least 44x44px. No exceptions.
|
|
178
|
+
- **Safe Areas**: Handle safe area insets (notch, status bar, home indicator). Use `safe-area-inset-*`.
|
|
179
|
+
- **Offline First**: Design for offline. Cache critical data. Sync when connection is available.
|
|
180
|
+
- **Pull to Refresh**: Implement pull-to-refresh for all list views. Show loading indicator during refresh.
|
|
181
|
+
- **Haptic Feedback**: Use haptic feedback for confirmations, errors, and important interactions.
|
|
182
|
+
- **Platform Conventions**: Follow iOS HIG and Material Design guidelines. Respect platform-specific patterns.
|
|
183
|
+
- **Device Testing**: Test on real devices, not just simulators. Memory, performance, and gestures differ.
|
|
184
|
+
- **Memory Management**: Properly handle images and large data. Release resources when screen unmounts.
|
|
185
|
+
- **Background Sync**: Sync critical data in background. Handle app-to-background transitions gracefully.
|
|
186
|
+
- **Push Notifications**: Request permission at the RIGHT moment (after value demonstration). Handle notification actions.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
# CATEGORY 9: DEVOPS & DEPLOYMENT
|
|
191
|
+
|
|
192
|
+
Infrastructure must be reliable and reproducible:
|
|
193
|
+
|
|
194
|
+
- **Environment Variables**: ALL configuration via environment variables. NEVER hardcode URLs, keys, or settings.
|
|
195
|
+
- **Docker**: Use multi-stage builds for smaller images. Run as non-root user. Pin base image versions.
|
|
196
|
+
- **Health Checks**: Every service MUST expose health and readiness probes for orchestrators.
|
|
197
|
+
- **Graceful Shutdown**: Handle SIGTERM signals. Finish in-flight requests before shutting down.
|
|
198
|
+
- **Structured Logging**: Use JSON format for logs. Include request ID, timestamp, level, and context.
|
|
199
|
+
- **Log Levels**: ERROR (failures), WARN (degraded), INFO (significant events), DEBUG (development only).
|
|
200
|
+
- **APM Integration**: Integrate Application Performance Monitoring (Datadog, New Relic, or equivalent).
|
|
201
|
+
- **Deployment Strategy**: Use blue-green or canary deployments. NEVER deploy without rollback capability.
|
|
202
|
+
- **Database Migrations**: Run migrations as part of CI/CD pipeline. Test migrations in staging first.
|
|
203
|
+
- **Rollback Plan**: Every deployment MUST have a documented rollback procedure.
|
|
204
|
+
- **Secrets Management**: Use proper secret stores (Vault, AWS SSM, GCP Secret Manager). Rotate regularly.
|
|
205
|
+
- **Infrastructure as Code**: ALL infrastructure MUST be defined in code (Terraform, Pulumi). No manual cloud console changes.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
# CATEGORY 10: ACCESSIBILITY (WCAG 2.1 AA)
|
|
210
|
+
|
|
211
|
+
Accessibility is a LEGAL REQUIREMENT, not optional:
|
|
212
|
+
|
|
213
|
+
- **Semantic HTML**: Use correct elements: `<nav>`, `<main>`, `<article>`, `<section>`, `<header>`, `<footer>`, `<button>`.
|
|
214
|
+
- **ARIA Labels**: ALL interactive elements MUST have accessible names via `aria-label`, `aria-labelledby`, or visible text.
|
|
215
|
+
- **Keyboard Navigation**: EVERY feature MUST be operable with keyboard alone. Test with Tab, Enter, Escape, Arrow keys.
|
|
216
|
+
- **Focus Management**: Modal open → focus moves inside. Modal close → focus returns to trigger. Never trap focus.
|
|
217
|
+
- **Color Contrast**: Text MUST have minimum 4.5:1 contrast ratio against background. Large text: 3:1.
|
|
218
|
+
- **Alt Text**: ALL meaningful images MUST have descriptive alt text. Decorative images use `alt=""`.
|
|
219
|
+
- **Skip Navigation**: Include "Skip to main content" link as first focusable element.
|
|
220
|
+
- **Error Announcements**: Form errors MUST be announced to screen readers via `aria-live="polite"` or `aria-live="assertive"`.
|
|
221
|
+
- **Reduced Motion**: Respect `prefers-reduced-motion: reduce`. Disable or reduce animations for sensitive users.
|
|
222
|
+
- **Screen Reader Testing**: Test with NVDA (Windows) or VoiceOver (Mac). Verify all content is announced.
|
|
223
|
+
- **Video Captions**: ALL video content MUST have captions. Provide transcripts for audio-only content.
|
|
224
|
+
- **Touch Targets**: Mobile interactive elements MUST be at least 44x44px for accessibility.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
# CATEGORY 11: SEO & WEB STANDARD
|
|
229
|
+
|
|
230
|
+
Search visibility requires technical excellence:
|
|
231
|
+
|
|
232
|
+
- **Title Tags**: UNIQUE, descriptive title for EVERY page. 50-60 characters. Include primary keyword.
|
|
233
|
+
- **Meta Descriptions**: Compelling, unique meta description for EVERY page. 150-160 characters. Include CTA.
|
|
234
|
+
- **Open Graph**: Implement OG tags (og:title, og:description, og:image, og:url) for social sharing.
|
|
235
|
+
- **Twitter Cards**: Implement Twitter card meta tags (twitter:card, twitter:title, twitter:description, twitter:image).
|
|
236
|
+
- **Canonical URLs**: Set canonical URL on EVERY page to prevent duplicate content issues.
|
|
237
|
+
- **XML Sitemap**: Generate sitemap.xml automatically. Include all indexable pages. Submit to Search Console.
|
|
238
|
+
- **robots.txt**: Block non-public pages (admin, API, staging). Allow all public pages.
|
|
239
|
+
- **Structured Data**: Implement JSON-LD Schema.org markup for rich snippets (Product, Article, FAQ, Breadcrumb).
|
|
240
|
+
- **Heading Hierarchy**: NEVER skip heading levels. H1 → H2 → H3. Only ONE h1 per page.
|
|
241
|
+
- **Internal Linking**: Link related content. Use descriptive anchor text. Maintain shallow crawl depth.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
# CATEGORY 12: GIT & VERSION CONTROL
|
|
246
|
+
|
|
247
|
+
Version control discipline prevents disasters:
|
|
248
|
+
|
|
249
|
+
- **Conventional Commits**: ALL commits follow format: `type(scope): description` (feat, fix, chore, docs, refactor, test).
|
|
250
|
+
- **Branch Naming**: `feat/description`, `fix/description`, `chore/description`, `docs/description`.
|
|
251
|
+
- **PR Descriptions**: EVERY PR includes: what changed, why, how to test, screenshots if UI change.
|
|
252
|
+
- **Code Review**: ALL code MUST be reviewed before merge. No self-merges on main.
|
|
253
|
+
- **Squash Commits**: Squash feature branches before merge for clean history.
|
|
254
|
+
- **No Secrets**: NEVER commit .env files, API keys, passwords, or tokens. Use .gitignore.
|
|
255
|
+
- **Gitignore**: ALWAYS include: node_modules, .env, dist, build, .DS_Store, IDE config, OS files.
|
|
256
|
+
- **Signed Commits**: Use GPG or SSH signed commits when possible for verified authorship.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
# CATEGORY 13: DOCUMENTATION STANDARDS
|
|
261
|
+
|
|
262
|
+
Documentation prevents knowledge loss:
|
|
263
|
+
|
|
264
|
+
- **README.md**: EVERY project MUST have a README with: setup instructions, usage examples, contributing guide.
|
|
265
|
+
- **JSDoc/TSDoc**: ALL public functions/classes MUST have JSDoc/TSDoc comments with description, params, returns, examples.
|
|
266
|
+
- **API Documentation**: ALL APIs MUST have OpenAPI/Swagger documentation. Keep it in sync with code.
|
|
267
|
+
- **Changelog**: Maintain CHANGELOG.md following Keep a Changelog format. Document all notable changes.
|
|
268
|
+
- **Architecture Decision Records**: Record significant architectural decisions with context, options, and rationale.
|
|
269
|
+
- **WHY, Not WHAT**: Comments explain WHY decisions were made, not WHAT the code does (code is self-documenting).
|
|
270
|
+
- **Complex Algorithm Comments**: Add comments for non-obvious algorithms, mathematical formulas, or business rules.
|
|
271
|
+
- **Deprecation Notices**: Deprecated code MUST include: reason, migration path, removal timeline.
|
|
272
|
+
- **Contributing Guide**: Document coding standards, PR process, testing requirements, and review checklist.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
# CATEGORY 14: ERROR HANDLING & LOGGING
|
|
277
|
+
|
|
278
|
+
Errors are expected. How you handle them defines quality:
|
|
279
|
+
|
|
280
|
+
- **Custom Error Classes**: Create domain-specific error classes (ValidationError, NotFoundError, AuthError) with proper HTTP status codes.
|
|
281
|
+
- **Service Boundaries**: Wrap service calls in try-catch. Catch at boundaries, not everywhere.
|
|
282
|
+
- **NEVER Swallow Errors**: Every catch block MUST either handle the error, re-throw it, or log it. Empty catch blocks are FORBIDDEN.
|
|
283
|
+
- **User-Friendly Messages**: Show humans helpful messages. Log technical details for developers.
|
|
284
|
+
- **Structured Logging**: Log in JSON format with: timestamp, level, requestId, userId, action, metadata.
|
|
285
|
+
- **Request ID Correlation**: Generate unique request ID at entry. Pass through all services. Include in logs and responses.
|
|
286
|
+
- **Error Tracking**: Integrate Sentry, LogRocket, or equivalent. Alert on new error types.
|
|
287
|
+
- **Circuit Breaker**: Implement circuit breaker for external service calls. Prevent cascade failures.
|
|
288
|
+
- **Retry with Backoff**: Retry failed external calls with exponential backoff. Max 3 retries. Never retry non-idempotent operations without confirmation.
|
|
289
|
+
- **Graceful Degradation**: When a non-critical service fails, degrade gracefully. Show partial content, not error pages.
|
|
290
|
+
- **Alert Thresholds**: Define alert rules: ERROR = immediate, WARN = hourly digest, INFO = dashboard only.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
# CATEGORY 15: STATE MANAGEMENT
|
|
295
|
+
|
|
296
|
+
State must be predictable and maintainable:
|
|
297
|
+
|
|
298
|
+
- **Local State**: UI-only state (open/closed, hover, temporary input) stays local (useState/useReducer).
|
|
299
|
+
- **Global State**: Shared domain data (user, cart, settings) uses global store (Context, Zustand, Redux).
|
|
300
|
+
- **Immutable Updates**: NEVER mutate state directly. Always create new objects/arrays.
|
|
301
|
+
- **Normalized Shape**: Store entities in normalized format: `{ users: { byId: {}, allIds: [] } }`.
|
|
302
|
+
- **Persistence**: Persist user preferences and non-sensitive state to localStorage or cookies.
|
|
303
|
+
- **Time-Travel**: Structure state to support debugging (action history, state snapshots).
|
|
304
|
+
- **Derived State**: Compute derived values via selectors, useMemo, or computed properties. Never store redundant data.
|
|
305
|
+
- **State Machines**: For complex UI flows (multi-step forms, wizards), use state machines (XState) to prevent impossible states.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
# CATEGORY 16: INTERNATIONALIZATION (i18n)
|
|
310
|
+
|
|
311
|
+
Applications MUST support internationalization:
|
|
312
|
+
|
|
313
|
+
- **Externalized Strings**: ALL user-facing strings MUST be in translation files, NOT hardcoded in components.
|
|
314
|
+
- **ICU Message Format**: Use ICU format for plurals (`{count, plural, one {# item} other {# items}}`) and variables.
|
|
315
|
+
- **RTL Support**: Design layouts that work in both LTR and RTL. Use logical properties (margin-inline-start, not margin-left).
|
|
316
|
+
- **Date/Number Formatting**: Use `Intl.DateTimeFormat` and `Intl.NumberFormat` for locale-appropriate formatting.
|
|
317
|
+
- **Key Naming Convention**: Use consistent key structure: `section.element.property` (e.g., `auth.login.title`).
|
|
318
|
+
- **Fallback Language**: Define a default/fallback language. Missing translations fall back gracefully.
|
|
319
|
+
- **Pseudo-Localization**: Test with pseudo-locale to catch hardcoded strings and layout issues early.
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
# CATEGORY 17: PROGRESSIVE WEB APP (PWA)
|
|
324
|
+
|
|
325
|
+
PWAs MUST provide native-like experience:
|
|
326
|
+
|
|
327
|
+
- **Service Worker**: Implement service worker with stale-while-revalidate strategy for optimal caching.
|
|
328
|
+
- **App Manifest**: Complete manifest with name, icons (multiple sizes), theme color, background color, display mode.
|
|
329
|
+
- **Offline Fallback**: Custom offline page when no cached content is available. Never show browser offline error.
|
|
330
|
+
- **Background Sync**: Queue form submissions and actions when offline. Sync when connection returns.
|
|
331
|
+
- **Install Prompt**: Handle `beforeinstallprompt` event. Show custom install UI at appropriate moment.
|
|
332
|
+
- **Cache Versioning**: Version all caches. Clean old versions on service worker activation.
|
|
333
|
+
- **Push Notifications**: Implement push notifications with proper permission flow and subscription management.
|
|
334
|
+
- **Periodic Sync**: Use Background Sync API for periodic data updates when possible.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
# CATEGORY 18: TYPESCRIPT STRICTNESS
|
|
339
|
+
|
|
340
|
+
TypeScript is your safety net. Maximize its protection:
|
|
341
|
+
|
|
342
|
+
- **Strict Mode**: `tsconfig.json` MUST have `"strict": true`. No exceptions.
|
|
343
|
+
- **No `any`**: NEVER use `any` type. Use `unknown` and narrow with type guards. `any` is a type escape hatch — you don't need it.
|
|
344
|
+
- **Discriminated Unions**: Use discriminated unions for state: `type State = { status: 'loading' } | { status: 'error'; error: Error } | { status: 'success'; data: T }`.
|
|
345
|
+
- **Branded Types**: Use branded types for domain IDs: `type UserId = string & { __brand: 'UserId' }`. Prevents ID confusion.
|
|
346
|
+
- **Template Literal Types**: Use for route strings and event names: `type EventName = \`${string}:created\``.
|
|
347
|
+
- **Conditional Types**: Use for API response types based on input: `type Response<T> = T extends 'user' ? User : Post`.
|
|
348
|
+
- **Mapped Types**: Generate DTOs with mapped types: `type CreateUserDTO = Omit<User, 'id' | 'createdAt'>`.
|
|
349
|
+
- **Satisfies Operator**: Use `satisfies` to validate object shapes without widening: `const config = { ... } satisfies Config`.
|
|
350
|
+
- **Const Assertions**: Use `as const` for literal values: `const ROLES = ['admin', 'user'] as const`.
|
|
351
|
+
- **Exhaustive Switch**: Always handle ALL cases. Use `never` to ensure exhaustiveness: `case _never: throw new Error()`.
|
|
352
|
+
- **Module Augmentation**: Extend third-party types when needed. Never override, always augment.
|
|
353
|
+
- **Type-Level Tests**: Write type tests for complex types to catch regressions.
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
# CATEGORY 19: UI/UX DESIGN STANDARDS
|
|
358
|
+
|
|
359
|
+
Design consistency builds trust and usability:
|
|
360
|
+
|
|
361
|
+
- **Design Tokens**: Define ALL colors, spacing, typography, shadows as design tokens. Use consistently everywhere.
|
|
362
|
+
- **Border Radius Scale**: Use consistent radius: 4px (sm), 8px (md), 12px (lg), 16px (xl). NEVER use random values.
|
|
363
|
+
- **Typography Scale**: Define scale: 12, 14, 16, 20, 24, 32, 48. Use ONLY these sizes.
|
|
364
|
+
- **Spacing Scale**: Define scale: 4, 8, 12, 16, 24, 32, 48, 64. Use ONLY these values.
|
|
365
|
+
- **Animation Duration**: Standard durations: 150ms (micro), 300ms (normal), 500ms (complex). NEVER use arbitrary values.
|
|
366
|
+
- **Easing Curves**: Standard curves: ease (default), ease-in-out (transitions), cubic-bezier(0.34, 1.56, 0.64, 1) (spring).
|
|
367
|
+
- **Shadow System**: Define shadow tokens: sm, md, lg, xl. Use consistently. Never use box-shadow with arbitrary values.
|
|
368
|
+
- **Border Colors**: Define subtle (gray-200), medium (gray-400), strong (gray-600). Use contextually.
|
|
369
|
+
- **Interactive States**: ALL interactive elements MUST have: default, hover, active, focus, disabled states.
|
|
370
|
+
- **Loading States**: EVERY async operation MUST have a loading indicator. Never leave users wondering.
|
|
371
|
+
- **Empty States**: EVERY list/view MUST have an empty state with helpful guidance (not just "No data").
|
|
372
|
+
- **Toast Notifications**: Use toasts for success/error feedback. Auto-dismiss after 5s. Stack properly.
|
|
373
|
+
- **Modal/Dialog Patterns**: Modals MUST: trap focus, close on Escape, close on backdrop click, animate in/out.
|
|
374
|
+
- **Form Feedback**: Inline validation with clear error messages. Success states for completed fields.
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
# CATEGORY 21: REAL-TIME & WEBSOCKET
|
|
379
|
+
|
|
380
|
+
Real-time features require careful architecture:
|
|
381
|
+
|
|
382
|
+
- **WebSocket Protocol**: Use WebSocket (ws:// or wss://) for bidirectional communication. NEVER poll repeatedly for updates.
|
|
383
|
+
- **Server-Sent Events (SSE)**: Use SSE for server-to-client streaming (notifications, live feeds). Simpler than WebSocket for unidirectional.
|
|
384
|
+
- **Connection Management**: Implement heartbeat/ping to detect stale connections. Auto-reconnect with exponential backoff on client.
|
|
385
|
+
- **Message Format**: Use JSON with consistent structure: `{ type: string, payload: object, timestamp: string }`. Define message types as enums.
|
|
386
|
+
- **Pub/Sub Pattern**: Decouple message producers from consumers. Use Redis Pub/Sub, NATS, or message queues.
|
|
387
|
+
- **Room/Channel Support**: Implement rooms for targeted broadcasts (chat rooms, live collaboration, notifications).
|
|
388
|
+
- **Authentication**: Authenticate WebSocket connections on handshake. NEVER skip auth for real-time endpoints.
|
|
389
|
+
- **Rate Limiting**: Limit messages per user per second. Prevent spam and abuse.
|
|
390
|
+
- **Graceful Degradation**: Fallback to long-polling when WebSocket is unavailable. Provide value even without real-time.
|
|
391
|
+
- **State Synchronization**: Use CRDTs or operational transforms for collaborative editing. Resolve conflicts deterministically.
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
# CATEGORY 22: OBSERVABILITY & MONITORING
|
|
396
|
+
|
|
397
|
+
You can't fix what you can't see:
|
|
398
|
+
|
|
399
|
+
- **Distributed Tracing**: Implement OpenTelemetry for request tracing across services. Every request gets a trace ID.
|
|
400
|
+
- **Metrics Collection**: Track RED metrics (Rate, Errors, Duration) for all services. Use Prometheus or equivalent.
|
|
401
|
+
- **Dashboards**: Create operational dashboards for key metrics (request rate, error rate, latency percentiles, saturation).
|
|
402
|
+
- **Alerting Rules**: Define actionable alerts: P1 (immediate page), P2 (Slack notification), P3 (dashboard only).
|
|
403
|
+
- **Log Aggregation**: Centralize logs from all services. Use ELK, Datadog, or equivalent for searchable logs.
|
|
404
|
+
- **Custom Metrics**: Instrument business-specific metrics (signups/hour, revenue/minute, cart abandonment rate).
|
|
405
|
+
- **Profiling**: Use continuous profiling (Pyroscope, pprof) to identify CPU and memory hotspots.
|
|
406
|
+
- **Synthetic Monitoring**: Run synthetic tests (Pingcheck, Checkly) to detect outages before users report them.
|
|
407
|
+
- **Real User Monitoring (RUM)**: Track actual user experience (Core Web Vitals, errors, performance) in production.
|
|
408
|
+
- **Incident Detection**: Set up anomaly detection for error rates, latency spikes, and unusual traffic patterns.
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
# CATEGORY 23: INCIDENT RESPONSE
|
|
413
|
+
|
|
414
|
+
When things break, response quality matters:
|
|
415
|
+
|
|
416
|
+
- **Runbooks**: Create runbooks for every critical alert. Include: symptoms, impact, investigation steps, resolution, prevention.
|
|
417
|
+
- **On-Call Rotation**: Define on-call schedule. Ensure every team member carries pager duty.
|
|
418
|
+
- **SLA/SLO Definition**: Define Service Level Agreements (customer-facing) and Service Level Objectives (internal targets).
|
|
419
|
+
- **Error Budgets**: Track error budget consumption. If budget is exhausted, freeze features and focus on reliability.
|
|
420
|
+
- **Post-Mortem Process**: Every incident gets a blameless post-mortem. Focus on systemic improvements, not individual blame.
|
|
421
|
+
- **Incident Severity Levels**: Define P0-P4 severity levels with clear criteria (users affected, revenue impact, data loss risk).
|
|
422
|
+
- **Communication Templates**: Pre-written templates for: internal status page, customer notification, social media updates.
|
|
423
|
+
- **Escalation Paths**: Clear escalation from on-call → team lead → engineering manager → CTO.
|
|
424
|
+
- **Recovery Time Objectives**: Define RTO (Recovery Time Objective) and RPO (Recovery Point Objective) for critical systems.
|
|
425
|
+
- **Chaos Game Days**: Regularly scheduled chaos engineering exercises to test incident response readiness.
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
# CATEGORY 24: ETHICAL DEVELOPMENT & PRIVACY
|
|
430
|
+
|
|
431
|
+
Privacy is a human right, not a feature checkbox:
|
|
432
|
+
|
|
433
|
+
- **Privacy by Design**: Collect ONLY data you need. Default to privacy-friendly options. Anonymize by default.
|
|
434
|
+
- **GDPR Compliance**: Implement: consent management, right to access, right to erasure, data portability, breach notification.
|
|
435
|
+
- **Consent Management**: Explicit, informed consent for ALL data collection. Granular opt-in (not bundled consent).
|
|
436
|
+
- **Data Minimization**: Ask yourself: "Do I REALLY need this data?" If no, don't collect it.
|
|
437
|
+
- **Purpose Limitation**: Use collected data ONLY for the stated purpose. Never repurpose without new consent.
|
|
438
|
+
- **Data Retention**: Define retention periods for ALL data types. Auto-delete after retention period expires.
|
|
439
|
+
- **Right to Erasure**: Implement "delete my account" that removes ALL user data within 30 days.
|
|
440
|
+
- **Data Export**: Allow users to export all their data in machine-readable format (JSON, CSV).
|
|
441
|
+
- **Cookie Consent**: Implement cookie consent banner with granular controls (necessary, analytics, marketing).
|
|
442
|
+
- **Privacy Policy**: Clear, readable privacy policy. Explain what data, why, how long, who has access.
|
|
443
|
+
- **Children's Privacy**: If targeting minors, implement COPPA compliance. Verifiable parental consent required.
|
|
444
|
+
- **Ethical AI**: If using AI/ML, document training data sources. Check for bias. Provide explainability.
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
# CATEGORY 25: AI/LLM INTEGRATION
|
|
449
|
+
|
|
450
|
+
AI features require careful implementation:
|
|
451
|
+
|
|
452
|
+
- **Prompt Engineering**: Use structured prompts with clear instructions, examples, and constraints. Never send vague prompts.
|
|
453
|
+
- **RAG Architecture**: For knowledge-based AI, implement Retrieval-Augmented Generation. Vector search + LLM for accurate answers.
|
|
454
|
+
- **Vector Search**: Use embeddings for semantic search (Pinecone, Weaviate, pgvector). Chunk documents intelligently.
|
|
455
|
+
- **Context Window Management**: Respect LLM context limits. Summarize long documents. Use sliding window for conversations.
|
|
456
|
+
- **Output Validation**: ALWAYS validate LLM outputs before using them. LLMs hallucinate — verify facts independently.
|
|
457
|
+
- **Token Cost Management**: Track token usage. Cache common queries. Use smaller models for simple tasks.
|
|
458
|
+
- **Streaming Responses**: Stream LLM responses for better UX. Show tokens as they generate.
|
|
459
|
+
- **Rate Limiting**: Implement rate limiting on AI endpoints. Prevent abuse and cost overruns.
|
|
460
|
+
- **Fallback Strategy**: When AI fails, provide graceful fallback (search results, FAQ, human support).
|
|
461
|
+
- **Guardrails**: Implement content filters, toxicity detection, and output sanitization for user-facing AI.
|
|
462
|
+
- **Model Selection**: Choose the right model for the task. GPT-4 for complex reasoning, GPT-3.5 for simple tasks, local models for privacy.
|
|
463
|
+
- **Agent Patterns**: For autonomous agents, implement tool use, planning, memory, and guardrails.
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
# CATEGORY 26: PAYMENT INTEGRATION
|
|
468
|
+
|
|
469
|
+
Payment errors are the costliest bugs:
|
|
470
|
+
|
|
471
|
+
- **Stripe Integration**: Follow Stripe's best practices. Use Stripe SDKs, NOT raw HTTP calls.
|
|
472
|
+
- **Idempotency Keys**: ALL payment operations MUST use idempotency keys. Network failures must not cause double charges.
|
|
473
|
+
- **Webhook Verification**: ALWAYS verify webhook signatures. Never trust unverified webhook payloads.
|
|
474
|
+
- **Payment States**: Model payment states explicitly: pending → processing → succeeded/failed/refunded. Handle all transitions.
|
|
475
|
+
- **PCI Compliance**: NEVER store raw card numbers. Use Stripe Elements or hosted payment fields. Tokenize everything.
|
|
476
|
+
- **Error Handling**: Handle ALL payment errors: card declined, insufficient funds, expired card, network timeout. Show user-friendly messages.
|
|
477
|
+
- **Currency Handling**: Use integer amounts (cents) for ALL monetary values. NEVER use floating-point for money.
|
|
478
|
+
- **Subscription Management**: Handle subscription lifecycle: creation, upgrade, downgrade, cancellation, renewal, grace period.
|
|
479
|
+
- **Refund Flow**: Implement refund flow with proper accounting. Partial refunds supported.
|
|
480
|
+
- **Receipt Generation**: Generate receipts/invoices automatically. Include all required legal information.
|
|
481
|
+
- **Fraud Detection**: Implement basic fraud checks (velocity, amount limits, suspicious patterns). Use Stripe Radar or equivalent.
|
|
482
|
+
- **Test Mode**: ALWAYS test with Stripe test cards first. Never test with real cards in development.
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
# CATEGORY 27: EMAIL & NOTIFICATION SYSTEM
|
|
487
|
+
|
|
488
|
+
Communication infrastructure must be reliable:
|
|
489
|
+
|
|
490
|
+
- **Transactional Email**: Use dedicated transactional email service (SendGrid, Resend, Postmark). NEVER use Gmail/Outlook for transactional.
|
|
491
|
+
- **Email Templates**: Design responsive email templates. Test across email clients (Gmail, Outlook, Apple Mail).
|
|
492
|
+
- **Delivery Tracking**: Track email delivery, opens, clicks, bounces, and complaints. Monitor sender reputation.
|
|
493
|
+
- **Bounce Handling**: Handle hard bounces (invalid address) by removing from list. Handle soft bounces with retry logic.
|
|
494
|
+
- **SPF/DKIM/DMARC**: Configure email authentication properly. Prevent email spoofing and improve deliverability.
|
|
495
|
+
- **Unsubscribe**: Include one-click unsubscribe in ALL marketing emails. Process unsubscribes within 24 hours.
|
|
496
|
+
- **Notification Preferences**: Allow users to control notification channels (email, push, in-app) and frequency.
|
|
497
|
+
- **Push Notifications**: Implement web push (VAPID) and mobile push (FCM/APNs). Handle permission flow gracefully.
|
|
498
|
+
- **In-App Notifications**: Build notification center with read/unread states, priorities, and batch operations.
|
|
499
|
+
- **Rate Limiting**: Limit notification frequency per user. Prevent notification fatigue.
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
# CATEGORY 28: SEARCH IMPLEMENTATION
|
|
504
|
+
|
|
505
|
+
Search is a feature, not an afterthought:
|
|
506
|
+
|
|
507
|
+
- **Full-Text Search**: Implement full-text search with proper tokenization, stemming, and stop word removal.
|
|
508
|
+
- **Search Engine Selection**: Use Elasticsearch for complex needs, Meilisearch for simplicity, Algolia for SaaS.
|
|
509
|
+
- **Index Design**: Design search indexes for your query patterns. Denormalize data for search performance.
|
|
510
|
+
- **Relevance Tuning**: Configure scoring/boosting for relevant results. Title matches > content matches > tag matches.
|
|
511
|
+
- **Autocomplete**: Implement prefix matching for autocomplete. Limit suggestions to top 10. Debounce user input.
|
|
512
|
+
- **Fuzzy Matching**: Handle typos and misspellings. Use edit distance (Levenshtein) for fuzzy matching.
|
|
513
|
+
- **Faceted Search**: Implement filters (facets) for narrowing results. Show facet counts for discoverability.
|
|
514
|
+
- **Pagination**: Cursor-based pagination for search results. Never offset-based for large datasets.
|
|
515
|
+
- **Highlighting**: Highlight matching terms in search results. Show context snippets.
|
|
516
|
+
- **Analytics**: Track search queries, zero-result searches, click-through rates. Use data to improve relevance.
|
|
517
|
+
- **Synonyms**: Define synonym mappings (laptop ↔ notebook, phone ↔ smartphone). Expand queries with synonyms.
|
|
518
|
+
- **Multi-Language**: Support multiple languages in search. Use language-specific analyzers and stemmers.
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
# CATEGORY 29: FILE UPLOAD & STORAGE
|
|
523
|
+
|
|
524
|
+
File handling requires security and performance:
|
|
525
|
+
|
|
526
|
+
- **Cloud Storage**: Use S3-compatible storage (AWS S3, Cloudflare R2, MinIO). NEVER store files on application server.
|
|
527
|
+
- **Presigned URLs**: Generate presigned URLs for direct client-to-storage uploads. Don't proxy through your server.
|
|
528
|
+
- **File Validation**: Validate file type (magic bytes, not just extension), size, and content. Scan for malware.
|
|
529
|
+
- **Image Processing**: Generate thumbnails, resize, compress. Use Sharp (Node.js) or equivalent for server-side processing.
|
|
530
|
+
- **CDN Delivery**: Serve all user-uploaded files through CDN. Set proper Cache-Control headers.
|
|
531
|
+
- **Upload Limits**: Set maximum file size (10MB default). Limit total storage per user. Show clear error on limit exceeded.
|
|
532
|
+
- **Chunked Upload**: For large files (>5MB), implement chunked upload with progress tracking and resume capability.
|
|
533
|
+
- **Virus Scanning**: Scan ALL uploaded files for malware before making them available. Quarantine infected files.
|
|
534
|
+
- **Access Control**: Implement file-level access control. Private files require signed URLs with expiration.
|
|
535
|
+
- **Cleanup**: Implement automatic cleanup of orphaned files, temporary uploads, and expired presigned URLs.
|
|
536
|
+
- **Metadata**: Store file metadata (size, type, dimensions, upload date) in database. Reference by ID, not path.
|
|
537
|
+
- **Batch Operations**: Support bulk upload, bulk delete, and bulk download for power users.
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
# CATEGORY 30: FEATURE FLAGS & EXPERIMENTATION
|
|
542
|
+
|
|
543
|
+
Control releases, measure impact:
|
|
544
|
+
|
|
545
|
+
- **Feature Flags**: Use feature flags for gradual rollouts, kill switches, and A/B testing.
|
|
546
|
+
- **Flag Types**: Boolean (on/off), percentage (10% rollout), user segment (beta users), environment-based.
|
|
547
|
+
- **Flag Lifecycle**: Define stages: created → active → permanent → deprecated. Clean up old flags regularly.
|
|
548
|
+
- **Default Values**: ALWAYS specify a safe default value when flag is undefined. Never assume flag exists.
|
|
549
|
+
- **Client-Side Flags**: Evaluate flags client-side for UI changes. Use server-side for feature access control.
|
|
550
|
+
- **Flag Evaluation**: Evaluate flags at page load. Cache in memory. Re-evaluate on navigation or interval.
|
|
551
|
+
- **A/B Testing**: Use feature flags for A/B tests. Define success metrics BEFORE starting experiment.
|
|
552
|
+
- **Statistical Significance**: Run experiments until statistical significance (p < 0.05) or minimum sample size reached.
|
|
553
|
+
- **Gradual Rollout**: Roll out to 1% → 5% → 25% → 50% → 100%. Monitor error rates at each stage.
|
|
554
|
+
- **Kill Switch**: Every feature flag MUST have a kill switch. If feature causes issues, disable immediately.
|
|
555
|
+
- **Audit Trail**: Log ALL flag changes with who, when, why. Prevent accidental or unauthorized changes.
|
|
556
|
+
- **Flag Management UI**: Use LaunchDarkly, Flagsmith, or Unleash for flag management with audit trails.
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
# CATEGORY 31: DATA VALIDATION (RUNTIME)
|
|
561
|
+
|
|
562
|
+
Validate at every boundary:
|
|
563
|
+
|
|
564
|
+
- **Schema Validation**: Use Zod, Yup, or io-ts for runtime schema validation. NEVER trust unvalidated data.
|
|
565
|
+
- **API Input Validation**: Validate ALL API request bodies against a schema before processing. Reject invalid requests early.
|
|
566
|
+
- **Form Validation**: Validate on BOTH client (instant feedback) and server (security). Client validation is UX, server validation is security.
|
|
567
|
+
- **Type Narrowing**: Use TypeScript type guards to narrow `unknown` to specific types at runtime boundaries.
|
|
568
|
+
- **Error Messages**: Return specific, actionable error messages. Never expose internal implementation details.
|
|
569
|
+
- **Sanitization**: Sanitize user input to prevent injection attacks. Strip HTML, trim whitespace, normalize Unicode.
|
|
570
|
+
- **Date Validation**: Validate dates are valid, within expected range, and in correct timezone. Handle DST transitions.
|
|
571
|
+
- **Email Validation**: Use RFC-compliant email validation. Don't over-validate (allow international emails).
|
|
572
|
+
- **Phone Validation**: Use libphonenumber or equivalent for international phone number validation.
|
|
573
|
+
- **File Validation**: Validate file type (magic bytes), size, dimensions, and content. Don't trust file extensions.
|
|
574
|
+
- **Nested Validation**: Validate nested objects and arrays. Don't assume shape of nested data.
|
|
575
|
+
- **Partial Updates**: For PATCH requests, validate only provided fields. Allow partial updates safely.
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
# CATEGORY 32: CHAOS ENGINEERING
|
|
580
|
+
|
|
581
|
+
Break things before they break you:
|
|
582
|
+
|
|
583
|
+
- **Chaos Principles**: Start small, automate, build confidence. Never chaos without monitoring.
|
|
584
|
+
- **Fault Injection**: Inject failures: kill processes, add latency, corrupt data, exhaust resources.
|
|
585
|
+
- **Game Days**: Schedule regular chaos experiments. Test incident response and system resilience.
|
|
586
|
+
- **Blast Radius**: Contain chaos to small scope. Start with non-production, then expand to production.
|
|
587
|
+
- **Steady State Hypothesis**: Define what "healthy" looks like before chaos. Measure deviation from steady state.
|
|
588
|
+
- **Monitoring During Chaos**: Observe system behavior during chaos. Verify alerts fire correctly.
|
|
589
|
+
- **Automated Chaos**: Automate chaos experiments. Run them regularly without manual intervention.
|
|
590
|
+
- **AWS/Cloud Fault Injection**: Use AWS Fault Injection Simulator, Chaos Monkey, or Litmus for cloud-native chaos.
|
|
591
|
+
- **Network Chaos**: Simulate network partitions, DNS failures, and latency spikes.
|
|
592
|
+
- **Recovery Testing**: Verify system recovers gracefully after chaos stops. Measure recovery time.
|
|
593
|
+
|
|
594
|
+
---
|
|
595
|
+
|
|
596
|
+
# CATEGORY 33: COST OPTIMIZATION
|
|
597
|
+
|
|
598
|
+
Cloud costs are software costs:
|
|
599
|
+
|
|
600
|
+
- **Resource Right-Sizing**: Monitor resource utilization. Downsize over-provisioned instances. Use auto-scaling.
|
|
601
|
+
- **Spot/Preemptible Instances**: Use spot instances for fault-tolerant workloads. Save 60-90% vs on-demand.
|
|
602
|
+
- **Reserved Capacity**: Commit to 1-3 year reservations for predictable workloads. Save 30-50% vs on-demand.
|
|
603
|
+
- **Storage Tiers**: Move infrequently accessed data to cheaper storage tiers (S3 Glacier, Coldline).
|
|
604
|
+
- **Data Transfer Costs**: Minimize cross-region and cross-AZ data transfer. Cache at edge.
|
|
605
|
+
- **CDN Optimization**: Serve as much as possible through CDN. CDN bandwidth is cheaper than origin bandwidth.
|
|
606
|
+
- **Database Cost**: Choose right database type for workload. Don't use dedicated instances for small projects.
|
|
607
|
+
- **Monitoring**: Set up cost monitoring and alerts. Review AWS/GCP bill monthly.
|
|
608
|
+
- **FinOps Practices**: Tag ALL resources for cost allocation. Review unused resources quarterly.
|
|
609
|
+
- **Serverless Where Appropriate**: Use serverless for sporadic workloads. Pay only for actual usage.
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
# CATEGORY 34: VENDOR LOCK-IN PREVENTION
|
|
614
|
+
|
|
615
|
+
Maintain architectural flexibility:
|
|
616
|
+
|
|
617
|
+
- **Abstraction Layers**: Wrap vendor-specific APIs behind your own interfaces. Swapping vendors should be one-file change.
|
|
618
|
+
- **Standard Interfaces**: Use industry standards (S3 API, OpenTelemetry, OAuth 2.0) over proprietary APIs.
|
|
619
|
+
- **Multi-Cloud Ready**: Design for portability. Use Terraform/Pulumi for infrastructure abstraction.
|
|
620
|
+
- **Data Export**: Ensure you can export ALL your data in standard formats at any time.
|
|
621
|
+
- **Contract Testing**: Test against vendor API contracts. Detect breaking changes early.
|
|
622
|
+
- **Vendor Evaluation**: Before adopting a service, evaluate: data portability, API stability, pricing predictability, exit costs.
|
|
623
|
+
- **Avoid Proprietary Formats**: Use standard formats (JSON, CSV, Parquet) over vendor-proprietary formats.
|
|
624
|
+
- **Database Portability**: Use ORMs and standard SQL. Avoid vendor-specific SQL extensions.
|
|
625
|
+
- **Container Strategy**: Package applications as containers for easy migration between cloud providers.
|
|
626
|
+
- **Documentation**: Document all vendor dependencies and integration points for easy reference during migration.
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
# CATEGORY 35: LEGACY CODE MANAGEMENT
|
|
631
|
+
|
|
632
|
+
Maintain and modernize without breaking:
|
|
633
|
+
|
|
634
|
+
- **Strangler Fig Pattern**: Gradually replace legacy code by wrapping new code around old. Never big-bang rewrites.
|
|
635
|
+
- **Characterization Tests**: Write tests for existing behavior BEFORE refactoring. Capture current behavior as tests.
|
|
636
|
+
- **Boy Scout Rule**: Leave code cleaner than you found it. Small, incremental improvements every PR.
|
|
637
|
+
- **Dependency Upgrades**: Update dependencies regularly. Don't let versions drift too far behind.
|
|
638
|
+
- **API Compatibility**: When refactoring, maintain backward compatibility. Version your APIs.
|
|
639
|
+
- **Dead Code Removal**: Remove dead code aggressively. Dead code is confusing and increases attack surface.
|
|
640
|
+
- **Technical Debt Tracking**: Maintain a technical debt register. Prioritize by impact and effort.
|
|
641
|
+
- **Refactoring Patterns**: Use Martin Fowler's refactoring catalog. Apply proven patterns, not ad-hoc changes.
|
|
642
|
+
- **Migration Scripts**: Write automated migration scripts for database schema changes and data transformations.
|
|
643
|
+
- **Documentation**: Document legacy code WHYs. Future maintainers need context, not just code.
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
# CATEGORY 36: WEB COMPONENTS & DESIGN SYSTEMS
|
|
648
|
+
|
|
649
|
+
Build reusable, consistent interfaces:
|
|
650
|
+
|
|
651
|
+
- **Design System First**: Build design system BEFORE building features. Components are the foundation.
|
|
652
|
+
- **Storybook**: Document ALL components in Storybook. Include: variants, states, accessibility, examples.
|
|
653
|
+
- **Component API Design**: Consistent prop naming, composition patterns, and slot/fallback patterns.
|
|
654
|
+
- **Design Tokens**: Define tokens in code (CSS variables, JS constants). Single source of truth for visual design.
|
|
655
|
+
- **Component Testing**: Test components: rendering, interactions, accessibility, visual regression.
|
|
656
|
+
- **Documentation**: Every component MUST have: description, props table, usage examples, do's and don'ts.
|
|
657
|
+
- **Versioning**: Semantic versioning for design system packages. Breaking changes require major version bump.
|
|
658
|
+
- **Custom Elements**: Use Web Components (custom elements, shadow DOM) for framework-agnostic components.
|
|
659
|
+
- **Theming**: Support multiple themes via CSS custom properties or design tokens. Light/dark minimum.
|
|
660
|
+
- **Accessibility**: ALL components MUST be accessible. Test with screen readers. Follow WAI-ARIA patterns.
|
|
661
|
+
- **Performance**: Tree-shakeable components. Import only what you use. Lazy-load heavy components.
|
|
662
|
+
- **Mobile Components**: Design responsive components that work on all screen sizes. Touch-friendly interactions.
|
|
663
|
+
|
|
664
|
+
---
|
|
665
|
+
|
|
666
|
+
# CATEGORY 37: MICROSERVICES PATTERNS
|
|
667
|
+
|
|
668
|
+
Distributed systems require proven patterns:
|
|
669
|
+
|
|
670
|
+
- **Service Decomposition**: Split by business capability, NOT by technical layer. Each service owns its data.
|
|
671
|
+
- **API Gateway**: Single entry point for all clients. Handle routing, authentication, rate limiting, load balancing.
|
|
672
|
+
- **Saga Pattern**: For distributed transactions, use saga pattern (choreography or orchestration). Never distributed locks.
|
|
673
|
+
- **CQRS**: Separate read and write models when read/write patterns differ significantly. Use for high-read workloads.
|
|
674
|
+
- **Event Sourcing**: Store state as event log, not current state. Enables audit trail, replay, and time travel.
|
|
675
|
+
- **Circuit Breaker**: Implement circuit breaker for all inter-service calls. Prevent cascade failures.
|
|
676
|
+
- **Service Mesh**: Use service mesh (Istio, Linkerd) for: mTLS, traffic management, observability, resilience.
|
|
677
|
+
- **Message Queues**: Use queues (RabbitMQ, SQS, Kafka) for async communication. Decouple services temporally.
|
|
678
|
+
- **Idempotency**: ALL service operations MUST be idempotent. Network failures cause retries. Retries must be safe.
|
|
679
|
+
- **Observability**: Distributed tracing across all services. Correlation IDs for request tracking.
|
|
680
|
+
- **Deployment**: Independent deployment for each service. Feature flags for safe rollouts.
|
|
681
|
+
- **Data Consistency**: Eventual consistency is acceptable for most use cases. Design for it explicitly.
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
# CATEGORY 38: EDGE COMPUTING
|
|
686
|
+
|
|
687
|
+
Push logic closer to users:
|
|
688
|
+
|
|
689
|
+
- **Edge Functions**: Use Cloudflare Workers, Vercel Edge, or Deno Deploy for latency-sensitive logic.
|
|
690
|
+
- **Edge Middleware**: Run middleware at edge: authentication checks, A/B testing, geo-routing, bot detection.
|
|
691
|
+
- **ISR (Incremental Static Regeneration)**: Use ISR for pages that change frequently but benefit from CDN caching.
|
|
692
|
+
- **Edge Caching**: Cache API responses at edge. Use stale-while-revalidate for optimal freshness.
|
|
693
|
+
- **Geo Routing**: Route users to nearest region based on IP. Reduce latency for global users.
|
|
694
|
+
- **Edge-side Rendering**: SSR at edge for faster TTFB. Use React Server Components or equivalent.
|
|
695
|
+
- **Edge Database**: Use edge-compatible databases (Turso, PlanetScale, Neon) for low-latency reads.
|
|
696
|
+
- **Cold Start Optimization**: Minimize edge function size. Reduce dependencies. Use import maps.
|
|
697
|
+
- **Edge Security**: Run security checks at edge: rate limiting, bot detection, WAF rules.
|
|
698
|
+
- **Fallback Strategy**: Graceful fallback to origin when edge is unavailable. Never break the experience.
|
|
699
|
+
|
|
700
|
+
---
|
|
701
|
+
|
|
702
|
+
# CATEGORY 39: DATA PIPELINE & ETL
|
|
703
|
+
|
|
704
|
+
Data flows require reliability:
|
|
705
|
+
|
|
706
|
+
- **Schema Evolution**: Design schemas for backward compatibility. Use schema registries (Avro, Protobuf).
|
|
707
|
+
- **Stream Processing**: Use Apache Kafka, Pulsar, or Kinesis for real-time data streaming.
|
|
708
|
+
- **Batch Processing**: Use Apache Spark, dbt, or equivalent for scheduled batch transformations.
|
|
709
|
+
- **Data Quality**: Validate data at every stage. Schema validation, null checks, deduplication.
|
|
710
|
+
- **Idempotent Processing**: Design pipelines to be idempotent. Reprocessing must produce same results.
|
|
711
|
+
- **Dead Letter Queue**: Capture failed messages in DLQ. Monitor and alert on DLQ growth.
|
|
712
|
+
- **Data Lineage**: Track data flow from source to destination. Document transformations at each step.
|
|
713
|
+
- **Backfill Support**: Design pipelines to support backfilling historical data without breaking current processing.
|
|
714
|
+
- **Monitoring**: Track pipeline health: throughput, latency, error rates, lag. Alert on anomalies.
|
|
715
|
+
- **Data Catalog**: Maintain data catalog with: schema, owner, freshness, sensitivity level, usage patterns.
|
|
716
|
+
|
|
717
|
+
---
|
|
718
|
+
|
|
719
|
+
# CATEGORY 40: COMPLIANCE & AUDITING
|
|
720
|
+
|
|
721
|
+
Regulatory compliance is non-negotiable:
|
|
722
|
+
|
|
723
|
+
- **SOC 2 Compliance**: Implement controls for: security, availability, processing integrity, confidentiality, privacy.
|
|
724
|
+
- **HIPAA Compliance**: If handling health data: encryption at rest and in transit, access controls, audit logs, BAA with vendors.
|
|
725
|
+
- **Audit Trails**: Log ALL data access and modifications. Include: who, what, when, from where, result.
|
|
726
|
+
- **Data Classification**: Classify data: public, internal, confidential, restricted. Apply controls per classification.
|
|
727
|
+
- **Access Reviews**: Conduct quarterly access reviews. Remove access for departed employees immediately.
|
|
728
|
+
- **Encryption**: Encrypt data at rest (AES-256) and in transit (TLS 1.3). Use managed KMS for key management.
|
|
729
|
+
- **Key Rotation**: Rotate encryption keys regularly. Automate rotation. Support zero-downtime rotation.
|
|
730
|
+
- **Data Retention**: Define retention periods per data type. Implement automated deletion after retention.
|
|
731
|
+
- **Incident Response Plan**: Document incident response: detection, containment, eradication, recovery, lessons learned.
|
|
732
|
+
- **Third-Party Risk**: Assess vendor security. Review SOC 2 reports. Sign DPAs with data processors.
|
|
733
|
+
- **Penetration Testing**: Conduct annual penetration testing. Remediate findings within SLA.
|
|
734
|
+
- **Security Training**: All team members complete security training. Phishing awareness. Secure coding practices.
|
|
735
|
+
|
|
736
|
+
---
|