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,79 @@
|
|
|
1
|
+
# Cypress → Playwright Mapping
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
|
|
5
|
+
| Cypress | Playwright | Notes |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `cy.visit('/page')` | `await page.goto('/page')` | Use `baseURL` in config |
|
|
8
|
+
| `cy.get('.selector')` | `page.locator('.selector')` | Prefer `getByRole()` |
|
|
9
|
+
| `cy.get('[data-cy=x]')` | `page.getByTestId('x')` | |
|
|
10
|
+
| `cy.contains('text')` | `page.getByText('text')` | |
|
|
11
|
+
| `cy.find('.child')` | `parent.locator('.child')` | Chain from parent locator |
|
|
12
|
+
| `cy.first()` | `locator.first()` | |
|
|
13
|
+
| `cy.last()` | `locator.last()` | |
|
|
14
|
+
| `cy.eq(n)` | `locator.nth(n)` | |
|
|
15
|
+
| `cy.parent()` | `locator.locator('..')` | Or restructure with better locators |
|
|
16
|
+
| `cy.children()` | `locator.locator('> *')` | |
|
|
17
|
+
| `cy.siblings()` | Not direct — restructure test | Use parent + filter |
|
|
18
|
+
|
|
19
|
+
## Actions
|
|
20
|
+
|
|
21
|
+
| Cypress | Playwright | Notes |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `.click()` | `await locator.click()` | Always `await` |
|
|
24
|
+
| `.dblclick()` | `await locator.dblclick()` | |
|
|
25
|
+
| `.rightclick()` | `await locator.click({ button: 'right' })` | |
|
|
26
|
+
| `.type('text')` | `await locator.fill('text')` | `fill()` clears first |
|
|
27
|
+
| `.type('text', { delay: 50 })` | `await locator.pressSequentially('text', { delay: 50 })` | Simulates typing |
|
|
28
|
+
| `.clear()` | `await locator.clear()` | |
|
|
29
|
+
| `.check()` | `await locator.check()` | |
|
|
30
|
+
| `.uncheck()` | `await locator.uncheck()` | |
|
|
31
|
+
| `.select('value')` | `await locator.selectOption('value')` | |
|
|
32
|
+
| `.scrollTo()` | `await locator.scrollIntoViewIfNeeded()` | |
|
|
33
|
+
| `.trigger('event')` | `await locator.dispatchEvent('event')` | |
|
|
34
|
+
| `.focus()` | `await locator.focus()` | |
|
|
35
|
+
| `.blur()` | `await locator.blur()` | |
|
|
36
|
+
|
|
37
|
+
## Assertions
|
|
38
|
+
|
|
39
|
+
| Cypress | Playwright | Notes |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| `.should('be.visible')` | `await expect(locator).toBeVisible()` | Web-first, auto-retry |
|
|
42
|
+
| `.should('not.exist')` | `await expect(locator).not.toBeVisible()` | Or `.toHaveCount(0)` |
|
|
43
|
+
| `.should('have.text', 'x')` | `await expect(locator).toHaveText('x')` | |
|
|
44
|
+
| `.should('contain', 'x')` | `await expect(locator).toContainText('x')` | |
|
|
45
|
+
| `.should('have.value', 'x')` | `await expect(locator).toHaveValue('x')` | |
|
|
46
|
+
| `.should('have.attr', 'x', 'y')` | `await expect(locator).toHaveAttribute('x', 'y')` | |
|
|
47
|
+
| `.should('have.class', 'x')` | `await expect(locator).toHaveClass(/x/)` | |
|
|
48
|
+
| `.should('be.disabled')` | `await expect(locator).toBeDisabled()` | |
|
|
49
|
+
| `.should('be.checked')` | `await expect(locator).toBeChecked()` | |
|
|
50
|
+
| `.should('have.length', n)` | `await expect(locator).toHaveCount(n)` | |
|
|
51
|
+
| `cy.url().should('include', '/x')` | `await expect(page).toHaveURL(/\/x/)` | |
|
|
52
|
+
| `cy.title().should('eq', 'x')` | `await expect(page).toHaveTitle('x')` | |
|
|
53
|
+
|
|
54
|
+
## Network
|
|
55
|
+
|
|
56
|
+
| Cypress | Playwright |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `cy.intercept('GET', '/api/*', { body: data })` | `await page.route('**/api/*', route => route.fulfill({ body: JSON.stringify(data) }))` |
|
|
59
|
+
| `cy.intercept('POST', '/api/*').as('save')` | `const savePromise = page.waitForResponse('**/api/*')` |
|
|
60
|
+
| `cy.wait('@save')` | `await savePromise` |
|
|
61
|
+
|
|
62
|
+
## Fixtures & Custom Commands
|
|
63
|
+
|
|
64
|
+
| Cypress | Playwright |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `cy.fixture('data.json')` | `import data from './test-data/data.json'` |
|
|
67
|
+
| `Cypress.Commands.add('login', ...)` | `test.extend({ authenticatedPage: ... })` |
|
|
68
|
+
| `beforeEach(() => { ... })` | `test.beforeEach(async ({ page }) => { ... })` |
|
|
69
|
+
| `before(() => { ... })` | `test.beforeAll(async () => { ... })` |
|
|
70
|
+
|
|
71
|
+
## Config
|
|
72
|
+
|
|
73
|
+
| Cypress | Playwright |
|
|
74
|
+
|---|---|
|
|
75
|
+
| `baseUrl` in `cypress.config.ts` | `use.baseURL` in `playwright.config.ts` |
|
|
76
|
+
| `defaultCommandTimeout` | `expect.timeout` or `use.actionTimeout` |
|
|
77
|
+
| `video: true` | `use.video: 'on'` |
|
|
78
|
+
| `screenshotOnRunFailure` | `use.screenshot: 'only-on-failure'` |
|
|
79
|
+
| `retries: { runMode: 2 }` | `retries: 2` |
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Selenium → Playwright Mapping
|
|
2
|
+
|
|
3
|
+
## Driver Setup
|
|
4
|
+
|
|
5
|
+
| Selenium (JS) | Playwright |
|
|
6
|
+
|---|---|
|
|
7
|
+
| `new Builder().forBrowser('chrome').build()` | Handled by config — no driver setup |
|
|
8
|
+
| `driver.quit()` | Automatic — Playwright manages browser lifecycle |
|
|
9
|
+
| `driver.manage().setTimeouts(...)` | Config: `timeout`, `expect.timeout` |
|
|
10
|
+
|
|
11
|
+
## Navigation
|
|
12
|
+
|
|
13
|
+
| Selenium | Playwright | Notes |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `driver.get(url)` | `await page.goto(url)` | Use `baseURL` |
|
|
16
|
+
| `driver.navigate().back()` | `await page.goBack()` | |
|
|
17
|
+
| `driver.navigate().forward()` | `await page.goForward()` | |
|
|
18
|
+
| `driver.navigate().refresh()` | `await page.reload()` | |
|
|
19
|
+
| `driver.getCurrentUrl()` | `page.url()` | |
|
|
20
|
+
| `driver.getTitle()` | `await page.title()` | |
|
|
21
|
+
|
|
22
|
+
## Element Location
|
|
23
|
+
|
|
24
|
+
| Selenium | Playwright | Preferred |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `By.id('x')` | `page.locator('#x')` | `page.getByTestId('x')` |
|
|
27
|
+
| `By.css('.x')` | `page.locator('.x')` | `page.getByRole(...)` |
|
|
28
|
+
| `By.xpath('//div')` | `page.locator('xpath=//div')` | Avoid — use role-based |
|
|
29
|
+
| `By.name('x')` | `page.locator('[name=x]')` | `page.getByLabel(...)` |
|
|
30
|
+
| `By.linkText('x')` | `page.getByRole('link', { name: 'x' })` | ✅ Best practice |
|
|
31
|
+
| `By.partialLinkText('x')` | `page.getByRole('link', { name: /x/ })` | ✅ Best practice |
|
|
32
|
+
| `By.tagName('button')` | `page.getByRole('button')` | ✅ Best practice |
|
|
33
|
+
| `By.className('x')` | `page.locator('.x')` | `page.getByRole(...)` |
|
|
34
|
+
| `findElement()` | Returns first match | `locator.first()` |
|
|
35
|
+
| `findElements()` | `page.locator(selector)` | Use `.count()` or `.all()` |
|
|
36
|
+
|
|
37
|
+
## Actions
|
|
38
|
+
|
|
39
|
+
| Selenium | Playwright |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `element.click()` | `await locator.click()` |
|
|
42
|
+
| `element.sendKeys('text')` | `await locator.fill('text')` |
|
|
43
|
+
| `element.sendKeys(Key.ENTER)` | `await locator.press('Enter')` |
|
|
44
|
+
| `element.clear()` | `await locator.clear()` |
|
|
45
|
+
| `element.submit()` | `await locator.press('Enter')` or click submit button |
|
|
46
|
+
| `element.getText()` | `await locator.textContent()` |
|
|
47
|
+
| `element.getAttribute('x')` | `await locator.getAttribute('x')` |
|
|
48
|
+
| `element.isDisplayed()` | `await locator.isVisible()` |
|
|
49
|
+
| `element.isEnabled()` | `await locator.isEnabled()` |
|
|
50
|
+
| `element.isSelected()` | `await locator.isChecked()` |
|
|
51
|
+
|
|
52
|
+
## Waits
|
|
53
|
+
|
|
54
|
+
| Selenium | Playwright | Notes |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `WebDriverWait(driver, 10).until(EC.visibilityOf(el))` | `await expect(locator).toBeVisible()` | Auto-retries |
|
|
57
|
+
| `WebDriverWait(driver, 10).until(EC.elementToBeClickable(el))` | `await locator.click()` | Auto-waits for clickable |
|
|
58
|
+
| `WebDriverWait(driver, 10).until(EC.presenceOf(el))` | `await expect(locator).toBeAttached()` | |
|
|
59
|
+
| `WebDriverWait(driver, 10).until(EC.textToBe(el, 'x'))` | `await expect(locator).toHaveText('x')` | |
|
|
60
|
+
| `Thread.sleep(3000)` | ❌ Never use | Use assertions instead |
|
|
61
|
+
| `driver.manage().setTimeouts({ implicit: 10000 })` | Not needed | Playwright auto-waits |
|
|
62
|
+
|
|
63
|
+
## Advanced
|
|
64
|
+
|
|
65
|
+
| Selenium | Playwright |
|
|
66
|
+
|---|---|
|
|
67
|
+
| `Actions(driver).moveToElement(el).perform()` | `await locator.hover()` |
|
|
68
|
+
| `Actions(driver).dragAndDrop(src, tgt).perform()` | `await src.dragTo(tgt)` |
|
|
69
|
+
| `Actions(driver).doubleClick(el).perform()` | `await locator.dblclick()` |
|
|
70
|
+
| `Actions(driver).contextClick(el).perform()` | `await locator.click({ button: 'right' })` |
|
|
71
|
+
| `driver.switchTo().frame(el)` | `page.frameLocator('#frame')` |
|
|
72
|
+
| `driver.switchTo().defaultContent()` | Not needed — use `page` directly |
|
|
73
|
+
| `driver.switchTo().alert()` | `page.on('dialog', d => d.accept())` |
|
|
74
|
+
| `driver.switchTo().window(handle)` | `const popup = await page.waitForEvent('popup')` |
|
|
75
|
+
| `driver.executeScript(js)` | `await page.evaluate(js)` |
|
|
76
|
+
| `driver.takeScreenshot()` | `await page.screenshot({ path: 'x.png' })` |
|
|
77
|
+
|
|
78
|
+
## Test Structure
|
|
79
|
+
|
|
80
|
+
| Selenium (Jest/Mocha) | Playwright |
|
|
81
|
+
|---|---|
|
|
82
|
+
| `describe('Suite', () => { ... })` | `test.describe('Suite', () => { ... })` |
|
|
83
|
+
| `it('should...', () => { ... })` | `test('should...', async ({ page }) => { ... })` |
|
|
84
|
+
| `beforeAll(() => { ... })` | `test.beforeAll(async () => { ... })` |
|
|
85
|
+
| `beforeEach(() => { ... })` | `test.beforeEach(async ({ page }) => { ... })` |
|
|
86
|
+
| `afterEach(() => { ... })` | `test.afterEach(async ({ page }) => { ... })` |
|
|
87
|
+
|
|
88
|
+
## Key Differences
|
|
89
|
+
|
|
90
|
+
1. **No implicit waits** — Playwright auto-waits for actionability
|
|
91
|
+
2. **No driver management** — Playwright handles browser lifecycle
|
|
92
|
+
3. **Built-in assertions** — `expect(locator)` with auto-retry
|
|
93
|
+
4. **Parallel by default** — tests run in parallel, must be isolated
|
|
94
|
+
5. **Traces instead of screenshots** — richer debugging artifacts
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-analyse
|
|
3
|
+
description: |
|
|
4
|
+
Étape 4 du pipeline Novahiz : comprendre le code concerné avant de le modifier.
|
|
5
|
+
Cinq phases ordonnées (reconnaissance, architecture, qualité, exploitation, synthèse),
|
|
6
|
+
appuyées sur la carte du code quand elle est disponible. Chaque affirmation cite un
|
|
7
|
+
chemin de fichier réel ; ce qui n'a pas pu être déterminé est dit explicitement.
|
|
8
|
+
Use before touching unfamiliar code, before a refactor or a migration, or to locate a bug.
|
|
9
|
+
Triggers on: "comprendre ce code", "où est", "qui appelle", carte du codebase,
|
|
10
|
+
analyse d'impact, cause racine, point d'entrée.
|
|
11
|
+
license: MIT
|
|
12
|
+
compatibility: opencode
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# novahiz-analyse : comprendre avant de modifier
|
|
16
|
+
|
|
17
|
+
**Étape 4 sur 6** du pipeline. L'analyse porte sur ce que la tâche exige, jamais sur tout le dépôt. Profondeur plutôt qu'exhaustivité.
|
|
18
|
+
|
|
19
|
+
Étape précédente : `novahiz-task`. Étape suivante : `novahiz-implement`.
|
|
20
|
+
|
|
21
|
+
## Appuie-toi sur la carte du code
|
|
22
|
+
|
|
23
|
+
Avant de lire au hasard : la skill `code-understand` construit une carte classée et citée, et le serveur `narsil` expose le graphe d'appels, les symboles, les références et les imports. Une question « qui appelle ça » se règle avec l'outil, pas en devinant.
|
|
24
|
+
|
|
25
|
+
## Phase 1 : reconnaissance
|
|
26
|
+
|
|
27
|
+
- Arborescence sur deux ou trois niveaux.
|
|
28
|
+
- Manifestes d'abord : package.json, Cargo.toml, go.mod, pyproject.toml, pom.xml, build.gradle, Gemfile, csproj, Podfile, Package.swift.
|
|
29
|
+
- Build et CI : Makefile, Dockerfile, docker-compose, workflows, turbo.json, nx.json.
|
|
30
|
+
- Configs : tsconfig, eslint, modèle d'environnement, bundler, editorconfig.
|
|
31
|
+
- Docs : README, CONTRIBUTING, ARCHITECTURE, dossier docs.
|
|
32
|
+
- Langages, frameworks, présence d'un monorepo.
|
|
33
|
+
|
|
34
|
+
## Phase 2 : architecture
|
|
35
|
+
|
|
36
|
+
- Points d'entrée : main, index, server, routes, CLI, AppDelegate, activities.
|
|
37
|
+
- Suis jusqu'à cinq chemins critiques de bout en bout : route vers contrôleur vers service vers données vers réponse.
|
|
38
|
+
- Graphe de dépendances entre modules.
|
|
39
|
+
- Pattern dominant : monolithe, microservices, événementiel, hexagonale, MVC, CQRS.
|
|
40
|
+
- Couche données : schémas, migrations, ORM, modèles, cache.
|
|
41
|
+
- Surface d'API : REST, GraphQL, gRPC, WebSocket, IPC, contrats, authentification.
|
|
42
|
+
|
|
43
|
+
## Phase 3 : qualité
|
|
44
|
+
|
|
45
|
+
- Tests : structure, frameworks, unités, intégration, bout en bout, fixtures, mocks.
|
|
46
|
+
- Gestion d'erreurs et journalisation.
|
|
47
|
+
- Typage et validation à l'exécution.
|
|
48
|
+
- Posture de sécurité : authentification, autorisation, secrets, assainissement, vulnérabilités de dépendances.
|
|
49
|
+
- Cohérence des motifs, nommage, duplication.
|
|
50
|
+
|
|
51
|
+
## Phase 4 : exploitation
|
|
52
|
+
|
|
53
|
+
Build, CI/CD, modèle de déploiement, observabilité, gestion des environnements.
|
|
54
|
+
|
|
55
|
+
## Phase 5 : synthèse
|
|
56
|
+
|
|
57
|
+
Écris la synthèse après les phases précédentes, jamais avant. Chaque affirmation cite un chemin de fichier réel. Dis ce que tu n'as pas pu déterminer. Un schéma ASCII aide pour l'architecture.
|
|
58
|
+
|
|
59
|
+
Destination : le dossier de documentation du projet s'il en a un, sinon le registre d'exécution. Tu n'inventes pas `docs/analysis/` dans un projet qui n'a aucune convention de ce genre.
|
|
60
|
+
|
|
61
|
+
## Six catégories réclament cette étape
|
|
62
|
+
|
|
63
|
+
`code`, `debug`, `review`, `database-supabase`, `devops` et `data`.
|
|
64
|
+
|
|
65
|
+
## Règles
|
|
66
|
+
|
|
67
|
+
- Lire avant d'écrire.
|
|
68
|
+
- Ignorer le code généré, vendoré et le boilerplate.
|
|
69
|
+
- Ne pas redocumenter tout le dépôt à chaque tâche : cible le périmètre utile.
|
|
70
|
+
- Une observation sans chemin de fichier ne vaut rien.
|
|
71
|
+
|
|
72
|
+
## Sortie
|
|
73
|
+
|
|
74
|
+
Les fichiers et symboles qui portent la logique, les chemins de données, les points d'extension, et la liste explicite des inconnues restantes. Cette sortie alimente `novahiz-implement`.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-audit
|
|
3
|
+
description: |
|
|
4
|
+
Audit de fin de session pour Novahiz. CATEGORY-AWARE : ne contrôle que les règles des
|
|
5
|
+
catégories réellement rencontrées. S'appuie sur l'état vérifiable (registre d'exécution,
|
|
6
|
+
journal du gate, skills chargées, diff de la session) et jamais sur la mémoire de l'agent.
|
|
7
|
+
Use at the END of a session, or when the user says "audit" or "vérifie".
|
|
8
|
+
Triggers on: "audit", "vérifie", fin de session, compliance check, ce qu'on a oublié.
|
|
9
|
+
license: MIT
|
|
10
|
+
compatibility: opencode
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# novahiz-audit : contrôle de fin de session
|
|
14
|
+
|
|
15
|
+
Tu audites à partir de faits vérifiables. Une case cochée de mémoire ne vaut rien.
|
|
16
|
+
|
|
17
|
+
## Les 14 catégories réelles
|
|
18
|
+
|
|
19
|
+
code, debug, review, audit, test, research, browser, design-ui, database-supabase, docs-writing, planning, devops, data, general.
|
|
20
|
+
|
|
21
|
+
`general` est la catégorie de repli. Il n'y a pas de catégorie `trivial` dans le catalogue.
|
|
22
|
+
|
|
23
|
+
## Ce qui se vérifie vraiment
|
|
24
|
+
|
|
25
|
+
| Contrôle | Source de preuve | S'applique à |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Plan et registre ouverts | `novahiz_task status` ou `todoread` | tout sauf research |
|
|
28
|
+
| Étapes de la catégorie parcourues | `novahiz_roadmap --category X` puis `novahiz_step` | tout sauf research et general |
|
|
29
|
+
| Skills requises chargées | journal du gate, table `enforcement_log` | tout |
|
|
30
|
+
| humanizer appliqué sur la prose | règles R1 déclenchées, ou skill chargée | docs-writing, code, audit, planning, design-ui |
|
|
31
|
+
| impeccable appliqué au style | règles R2 déclenchées, ou skill chargée | design-ui |
|
|
32
|
+
| Revue de code faite | étape `review` du roadmap, skill `code-reviewer` | code, review, debug |
|
|
33
|
+
| Scan de sécurité | étape `scan`, skill `security-guidance` | audit |
|
|
34
|
+
| Preuve sur les étapes de vérification | `novahiz_task` refuse `done` sans `proof` | tout |
|
|
35
|
+
| Mémoire à jour | `MEMORY.md` plus page vault, via `novahiz-memory` | tout sauf research |
|
|
36
|
+
| Aucune simulation | affirmations recoupées avec des sorties réelles | tout |
|
|
37
|
+
|
|
38
|
+
## Méthode
|
|
39
|
+
|
|
40
|
+
1. Récupère la catégorie primaire et les catégories rencontrées.
|
|
41
|
+
2. Pour chaque contrôle applicable, cherche la preuve. Pas de preuve, pas de validation.
|
|
42
|
+
3. Note `conforme`, `manquant` ou `non applicable`.
|
|
43
|
+
4. Score : conformes sur applicables, en pourcentage. Sous 70 %, propose des correctifs précis. À 90 % et plus, conclus « session conforme ».
|
|
44
|
+
|
|
45
|
+
## Sortie
|
|
46
|
+
|
|
47
|
+
Un rapport court dans la conversation :
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
## Audit de session
|
|
51
|
+
Catégories : code, test
|
|
52
|
+
| Contrôle | Statut | Preuve |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Registre | conforme | 6 étapes, 1 bloquée |
|
|
55
|
+
| humanizer | conforme | chargée avant rédaction |
|
|
56
|
+
| Revue de code | manquant | étape review non exécutée |
|
|
57
|
+
Score : 67 %
|
|
58
|
+
|
|
59
|
+
## À corriger
|
|
60
|
+
- Lancer code-reviewer sur les fichiers modifiés
|
|
61
|
+
|
|
62
|
+
## À retenir
|
|
63
|
+
- ...
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Pièges
|
|
67
|
+
|
|
68
|
+
- Cocher une règle sans preuve.
|
|
69
|
+
- Inventer un journal de conformité, un fichier de session ou un script de validation : ils n'existent pas dans ce système.
|
|
70
|
+
- Auditer des catégories qui n'ont pas été rencontrées.
|
|
71
|
+
- Confondre absence de preuve et conformité.
|
|
72
|
+
|
|
73
|
+
## Suite
|
|
74
|
+
|
|
75
|
+
Ce qui se répare se répare tout de suite : relancer humanizer, lancer la revue, écrire la mémoire. Le reste est consigné pour la session suivante.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-clarify
|
|
3
|
+
description: |
|
|
4
|
+
Étape 2 du pipeline Novahiz : lever les ambiguïtés avant de figer le plan.
|
|
5
|
+
Deux mécanismes combinés : un balayage d'ambiguïté par familles de risque, et des salves
|
|
6
|
+
de questions ordonnées par dépendances (la frontière), chaque question numérotée avec une
|
|
7
|
+
réponse recommandée.
|
|
8
|
+
Use when the request is vague, underspecified, contradictory, or when several plausible
|
|
9
|
+
readings lead to different work.
|
|
10
|
+
Triggers on: "clarifier", ambigu, "je ne sais pas encore", périmètre flou, exigences
|
|
11
|
+
manquantes, "deux lectures possibles", questions ouvertes.
|
|
12
|
+
license: MIT
|
|
13
|
+
compatibility: opencode
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# novahiz-clarify : lever les ambiguïtés
|
|
17
|
+
|
|
18
|
+
**Étape 2 sur 6** du pipeline. Tu interroges avant que le plan ne soit figé.
|
|
19
|
+
|
|
20
|
+
Étape précédente : `novahiz-plan`. Étape suivante : `novahiz-task`.
|
|
21
|
+
|
|
22
|
+
## Entrée
|
|
23
|
+
|
|
24
|
+
Demande ambiguë, contradictoire, ou assez large pour que deux lectures produisent deux travaux différents.
|
|
25
|
+
|
|
26
|
+
## A. Balayage par familles
|
|
27
|
+
|
|
28
|
+
Passe la demande au crible de dix familles de risque. Note chacune `claire`, `partielle` ou `manquante`.
|
|
29
|
+
|
|
30
|
+
1. Comportement et portée fonctionnelle
|
|
31
|
+
2. Domaine et modèle de données
|
|
32
|
+
3. Parcours et interactions
|
|
33
|
+
4. Qualités non fonctionnelles : performance, charge, disponibilité, sécurité, accessibilité, internationalisation
|
|
34
|
+
5. Intégrations et dépendances externes
|
|
35
|
+
6. Cas limites et gestion des échecs
|
|
36
|
+
7. Contraintes et compromis
|
|
37
|
+
8. Terminologie et cohérence
|
|
38
|
+
9. Signaux de complétion : ce qui prouve que c'est fini
|
|
39
|
+
10. Zones de remplissage et valeurs provisoires
|
|
40
|
+
|
|
41
|
+
Une famille laissée `manquante` sur la portée, les données, le découpage, les tests, l'UX ou l'exploitation devient une question. Le reste attend.
|
|
42
|
+
|
|
43
|
+
## B. Salves par frontière, posées dans l'interface
|
|
44
|
+
|
|
45
|
+
Modélise les décisions comme un arbre : chaque décision ouvre celles qui en dépendent.
|
|
46
|
+
|
|
47
|
+
La **frontière** est l'ensemble des décisions dont les prérequis sont déjà tranchés, donc posables maintenant sans deviner. Une salve est **un seul appel** à l'outil `question` du harness, avec une entrée par décision de la frontière.
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
question({
|
|
51
|
+
questions: [
|
|
52
|
+
{
|
|
53
|
+
header: "<titre court, 30 caracteres au plus>",
|
|
54
|
+
question: "<la decision, une phrase, avec son enjeu>",
|
|
55
|
+
options: [
|
|
56
|
+
{ label: "<option recommandee> (Recommandé)", description: "<consequence concrete>" },
|
|
57
|
+
{ label: "<option>", description: "<consequence concrete>" },
|
|
58
|
+
{ label: "<option>", description: "<consequence concrete>" }
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Règles de salve :
|
|
66
|
+
|
|
67
|
+
- **Aucune question en prose dans le chat.** Le tableau interactif est le seul canal. Le chat porte le contexte, jamais la liste des questions.
|
|
68
|
+
- Cinq questions au maximum, classées par impact croisé avec incertitude.
|
|
69
|
+
- Deux à cinq options par question, exclusives entre elles, chacune décrite par ce qu'elle implique.
|
|
70
|
+
- L'option que tu recommandes passe en premier et porte le suffixe `(Recommandé)`. L'interface ajoute une réponse libre toute seule : n'ajoute ni « Autre » ni option fourre-tout.
|
|
71
|
+
- `multiple: true` seulement quand plusieurs réponses peuvent coexister.
|
|
72
|
+
- Une question qui dépend d'une autre question encore ouverte appartient à une salve ultérieure.
|
|
73
|
+
- Chaque réponse déplace la frontière : recalcule-la, relance un appel.
|
|
74
|
+
- Tu attends le retour de l'appel avant de continuer.
|
|
75
|
+
|
|
76
|
+
Si le harness courant n'expose pas d'outil `question`, tu poses **une** question par tour, la recommandation en tête, et tu attends. Tu ne déverses jamais une liste de questions d'un coup.
|
|
77
|
+
|
|
78
|
+
Tu réponds toi-même à tout ce que deux fichiers lus suffisent à trancher.
|
|
79
|
+
|
|
80
|
+
## Devoir de critique
|
|
81
|
+
|
|
82
|
+
Si la demande est incohérente, ambiguë, risquée ou sous-optimale, dis-le et propose une alternative. Garder le silence laisse une erreur en place.
|
|
83
|
+
|
|
84
|
+
## Sortie
|
|
85
|
+
|
|
86
|
+
Une courte liste : familles ouvertes, questions posées, réponses obtenues, décisions figées. Tu passes à `novahiz-task` quand les éléments encore ouverts ne changent plus ni l'architecture, ni les données, ni les tâches, ni les tests, ni l'UX, ni l'exploitation.
|
|
87
|
+
|
|
88
|
+
## Pièges
|
|
89
|
+
|
|
90
|
+
- Poser une question de confort sur ce qui est déjà écrit dans la demande.
|
|
91
|
+
- Poser six questions là où la frontière en autorise cinq.
|
|
92
|
+
- Interroger sur le style ou sur le détail d'exécution.
|
|
93
|
+
- Enchaîner les salves sans relire les réponses pour recalculer la frontière.
|
|
94
|
+
- Écrire les questions en prose au lieu d'ouvrir le tableau interactif.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-converge
|
|
3
|
+
description: |
|
|
4
|
+
Étape 6 du pipeline Novahiz : fermer l'écart entre l'intention et le code.
|
|
5
|
+
Construit l'inventaire d'intention (demande, plan, critères d'acceptation, étapes du
|
|
6
|
+
registre, principes du projet), évalue l'état présent du code, classe chaque élément
|
|
7
|
+
satisfait, partiel ou non satisfait, et ajoute les restes comme étapes tracées.
|
|
8
|
+
En ajout seul : ne réécrit rien, ne supprime aucune étape, ne touche pas au code.
|
|
9
|
+
Use at the end of an implementation, before declaring work done.
|
|
10
|
+
Triggers on: "c'est fini ?", vérifier la feature, convergence, analyse d'écart,
|
|
11
|
+
"qu'est-ce qui reste", clôture.
|
|
12
|
+
license: MIT
|
|
13
|
+
compatibility: opencode
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# novahiz-converge : fermer l'écart
|
|
17
|
+
|
|
18
|
+
**Étape 6 sur 6** du pipeline. Elle tourne après l'implémentation, jamais pendant.
|
|
19
|
+
|
|
20
|
+
Étape précédente : `novahiz-implement`.
|
|
21
|
+
|
|
22
|
+
## Ne pas confondre avec l'audit
|
|
23
|
+
|
|
24
|
+
`novahiz-converge` mesure l'écart entre ce qui était demandé et ce que le code fait. `novahiz-audit` mesure la conformité de la session aux règles. Le premier porte sur le travail, le second sur la méthode.
|
|
25
|
+
|
|
26
|
+
## Source d'intention
|
|
27
|
+
|
|
28
|
+
L'intention vient des artefacts, pas de ta mémoire :
|
|
29
|
+
|
|
30
|
+
- la demande initiale,
|
|
31
|
+
- le plan,
|
|
32
|
+
- les critères d'acceptation des tâches,
|
|
33
|
+
- le registre d'exécution : `novahiz_task action="status"` et `action="signals"`,
|
|
34
|
+
- les principes du projet, à commencer par `AGENTS.md`.
|
|
35
|
+
|
|
36
|
+
Constitue l'inventaire : chaque élément identifié et traçable.
|
|
37
|
+
|
|
38
|
+
## Évaluation
|
|
39
|
+
|
|
40
|
+
Regarde l'état présent du code. Ce n'est pas un diff : ni git, ni branche, ni historique. Tu évalues ce que le code fait maintenant.
|
|
41
|
+
|
|
42
|
+
Classe chaque élément :
|
|
43
|
+
|
|
44
|
+
- **satisfait** : le code fait ce qui est demandé, et la preuve le montre.
|
|
45
|
+
- **partiel** : une partie tient, le reste manque ou ne se prouve pas.
|
|
46
|
+
- **non satisfait** : rien ne couvre l'élément.
|
|
47
|
+
|
|
48
|
+
Une étape fermée sans preuve ne compte pas comme satisfaite, même si le registre la dit `done`.
|
|
49
|
+
|
|
50
|
+
## Écriture en ajout seul
|
|
51
|
+
|
|
52
|
+
- La seule écriture autorisée est l'ajout des restes au registre, chacun devenant une étape traçable : `novahiz_task action="insert"`.
|
|
53
|
+
- Tu ne modifies ni le plan, ni les critères, ni les étapes existantes.
|
|
54
|
+
- Tu ne renommes, ne renumérotes, ne réordonnes et ne supprimes aucune étape.
|
|
55
|
+
- L'acceptation du reste ouvert se demande par l'outil `question` du harness : accepter le reste, le traiter maintenant, ou le tracer pour plus tard. Un reste non explicitement accepté garde la clôture ouverte.
|
|
56
|
+
- Tu ne touches pas au code applicatif.
|
|
57
|
+
|
|
58
|
+
Si tout est satisfait, tu ne touches à rien et tu rapportes un résultat propre. Un rapport vide n'est pas un résultat propre.
|
|
59
|
+
|
|
60
|
+
## Sévérité
|
|
61
|
+
|
|
62
|
+
La violation d'un principe MUST d'`AGENTS.md` est le niveau le plus haut et produit une étape de remédiation. Si les principes sont absents, tu le dis et tu continues.
|
|
63
|
+
|
|
64
|
+
## Clôture
|
|
65
|
+
|
|
66
|
+
Rapporte trois listes : ce qui est satisfait et prouvé, ce qui reste ouvert, ce qui n'a pas pu être évalué et pourquoi. Le travail est terminé quand la liste ouverte est vide, ou quand l'utilisateur accepte explicitement le reste.
|
|
67
|
+
|
|
68
|
+
## Catégories concernées
|
|
69
|
+
|
|
70
|
+
L'étape de convergence apparaît dans `code`, `debug`, `test`, `audit`, `browser`, `design-ui`, `database-supabase`, `docs-writing`, `planning`, `devops` et `data`.
|
|
71
|
+
|
|
72
|
+
## Pièges
|
|
73
|
+
|
|
74
|
+
- Déclarer satisfait ce qui n'a jamais été exécuté.
|
|
75
|
+
- Confondre « l'étape est cochée » et « le comportement existe ».
|
|
76
|
+
- Réécrire le plan pour qu'il colle au résultat obtenu.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-gate
|
|
3
|
+
description: |
|
|
4
|
+
Le gate d'application de Novahiz, vu du côté agent. Explique pourquoi une édition est
|
|
5
|
+
refusée, quelles skills la débloquent, et comment lire le message de blocage.
|
|
6
|
+
Le gate est implémenté dans src/gate.ts et combine deux sources : les règles
|
|
7
|
+
(catalog/rules.json) et les étapes de roadmap de type skill non optionnelles
|
|
8
|
+
(catalog/categories.json).
|
|
9
|
+
Use when an edit is refused, before a significant action, or to know which skill to load.
|
|
10
|
+
Triggers on: "le gate bloque", "missing skill", requiredSkills, enforcement, NOVAHIZ_GATE,
|
|
11
|
+
"pourquoi mon edition est refusee".
|
|
12
|
+
license: MIT
|
|
13
|
+
compatibility: opencode
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# novahiz-gate : lire et satisfaire le gate
|
|
17
|
+
|
|
18
|
+
Le gate vérifie une seule chose : les skills requises par le contexte sont-elles chargées ? Si non, il refuse l'édition.
|
|
19
|
+
|
|
20
|
+
## Les deux sources d'exigence
|
|
21
|
+
|
|
22
|
+
**Les règles** (`catalog/rules.json`), évaluées sur le chemin, la classe de fichier, la catégorie active et le contenu :
|
|
23
|
+
|
|
24
|
+
| Règle | Se déclenche sur | Exige |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| R1-docs | texte, data, config | `humanizer` |
|
|
27
|
+
| R1-code-prose | code ou design dont le contenu porte de la prose | `humanizer` |
|
|
28
|
+
| R2-style | css, scss, sass, less, styl, html, vue, svelte, astro | `impeccable` |
|
|
29
|
+
| R2-styled-component | jsx, tsx dont le contenu touche au style | `impeccable` |
|
|
30
|
+
| R2-design-target | catégorie `design-ui` sur un fichier de design | `impeccable` |
|
|
31
|
+
| R3-supabase | chemin `**/supabase/**` ou `**/migrations/**`, catégorie `database-supabase` | `supabase`, `supabase-postgres-best-practices` |
|
|
32
|
+
|
|
33
|
+
**Les étapes de roadmap** : seules celles `kind: "skill"` et non `optional` bloquent. Les étapes `edit`, `verify` et `advisory` apparaissent dans `requiredSkills` mais ne refusent rien.
|
|
34
|
+
|
|
35
|
+
## Sémantique exacte (gate.ts:229-236)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
si l'index est disponible ET que la skill n'y figure pas
|
|
39
|
+
-> unmatchedRequired : non appliquée, et signalée nulle part
|
|
40
|
+
sinon
|
|
41
|
+
-> effective : appliquée
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Trois conséquences à connaître :
|
|
45
|
+
|
|
46
|
+
1. **Skill absente de l'index** (`build/installed-skills.json`, écrit au dernier `sync`) : elle cesse d'être exigée, en silence. Aucun message ne le dit.
|
|
47
|
+
2. **Skill présente dans l'index mais absente du disque** : elle reste exigée et rien ne peut la charger. Blocage définitif jusqu'au prochain `sync`.
|
|
48
|
+
3. **Index illisible** : tout est exigé. Le gate devient plus strict, jamais plus laxiste.
|
|
49
|
+
|
|
50
|
+
## Lire un blocage
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
{
|
|
54
|
+
"allow": false,
|
|
55
|
+
"missingSkills": ["humanizer"],
|
|
56
|
+
"indexMissing": false,
|
|
57
|
+
"targets": [{
|
|
58
|
+
"path": "...", "fileClass": "text", "roadmap": "feature",
|
|
59
|
+
"matchedRules": ["R1-docs"], "reasons": ["missing skill: humanizer"]
|
|
60
|
+
}]
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`missingSkills` est la liste à charger. `matchedRules` dit pourquoi. `roadmap` dit quelle catégorie a imposé le reste.
|
|
65
|
+
|
|
66
|
+
## Débloquer
|
|
67
|
+
|
|
68
|
+
Charge chaque skill manquante avec `skill({name})`. Le chargement est enregistré dans la session, le gate repasse.
|
|
69
|
+
|
|
70
|
+
Une skill requise devenue introuvable n'est pas un obstacle à contourner : c'est le signal que l'index et le disque ont divergé. Un `sync` les remet d'accord.
|
|
71
|
+
|
|
72
|
+
## Contournement
|
|
73
|
+
|
|
74
|
+
Le seul prévu par le code : `NOVAHIZ_GATE=off` (ou `0`, `false`, `no`, `disabled`) dans l'environnement, lu via `gate.envEscape`. L'utilisateur peut aussi demander explicitement de passer outre. Dans les deux cas, la dérogation se dit à voix haute et se rattrape après coup. Le jugement de l'agent n'est pas un contournement valide.
|
|
75
|
+
|
|
76
|
+
## Anti-patterns
|
|
77
|
+
|
|
78
|
+
- Charger une skill sans rapport pour faire taire le message.
|
|
79
|
+
- Éditer en contournant, puis régulariser plus tard.
|
|
80
|
+
- Supposer que l'édition est passée sans regarder `allow`.
|
|
81
|
+
- Oublier `sync` après avoir ajouté ou renommé une skill.
|
|
82
|
+
- Croire qu'une étape `edit` ou `verify` bloque : seul `kind: "skill"` bloque.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-implement
|
|
3
|
+
description: |
|
|
4
|
+
Étape 5 du pipeline Novahiz : écrire le code par incréments qui laissent le système
|
|
5
|
+
utilisable. Cycle implémenter, tester, vérifier, commit, tranche suivante.
|
|
6
|
+
Règles de simplicité, de discipline de périmètre, de défauts sûrs et de réversibilité.
|
|
7
|
+
Use when writing or changing code for an approved task.
|
|
8
|
+
Triggers on: implémenter, coder, écrire le code, ajouter l'endpoint, construire le
|
|
9
|
+
composant, appliquer le changement, faire passer le test.
|
|
10
|
+
license: MIT
|
|
11
|
+
compatibility: opencode
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# novahiz-implement : écrire par incréments propres
|
|
15
|
+
|
|
16
|
+
**Étape 5 sur 6** du pipeline. Tu écris ce que la tâche demande, ni plus ni moins.
|
|
17
|
+
|
|
18
|
+
Étape précédente : `novahiz-analyse`. Étape suivante : `novahiz-converge`.
|
|
19
|
+
|
|
20
|
+
## Cycle d'incrément
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
implémenter -> tester -> vérifier -> commit -> tranche suivante
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Tu ne repars pas de zéro à chaque tranche. Chaque tranche laisse un système qui compile et dont les tests passent.
|
|
27
|
+
|
|
28
|
+
## Ouvre et ferme l'étape
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
novahiz_task action="start" id="<todo>"
|
|
32
|
+
... travail ...
|
|
33
|
+
novahiz_task action="done" id="<todo>" proof="<commande et résultat>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`done` sur une étape de nature `verify` exige la preuve. Sans preuve, l'étape reste ouverte.
|
|
37
|
+
|
|
38
|
+
## Choisir la première tranche
|
|
39
|
+
|
|
40
|
+
- Verticale par défaut : elle traverse les couches pour être observable de bout en bout.
|
|
41
|
+
- Contrat d'abord : fige types et interfaces, puis les deux côtés avancent en parallèle.
|
|
42
|
+
- Risque d'abord : prouve le morceau dont la réussite est la moins certaine.
|
|
43
|
+
|
|
44
|
+
## Le gate va se déclencher
|
|
45
|
+
|
|
46
|
+
Écrire du code fait tomber les règles : R1-code-prose exige `humanizer` dès que le contenu porte de la prose (commentaires, messages, libellés), R2 exige `impeccable` dès qu'un fichier de style est touché. Charge-les avant d'écrire, pas après le refus.
|
|
47
|
+
|
|
48
|
+
## Règles d'écriture
|
|
49
|
+
|
|
50
|
+
**Simplicité.** Quelle est la chose la plus simple qui puisse marcher ? Moins de lignes. Une abstraction doit gagner sa complexité. Trois lignes similaires valent mieux qu'une abstraction prématurée. Écris la version naïve et évidemment correcte, puis optimise après preuve par les tests.
|
|
51
|
+
|
|
52
|
+
**Périmètre.** Ne touche que ce que la tâche exige. Pas de nettoyage du code adjacent, pas de refactor d'imports d'autres fichiers, pas de suppression d'un commentaire non compris, pas de fonctionnalité hors périmètre. Ce que tu vois sans y toucher se note « vu mais non touché » et devient une proposition : `novahiz_task action="insert"`, jamais une modification surprise.
|
|
53
|
+
|
|
54
|
+
**Une chose à la fois.** Pas de composant plus refactor plus configuration de build dans le même pas.
|
|
55
|
+
|
|
56
|
+
**Garder compilable.** Le build et les tests existants passent après chaque incrément.
|
|
57
|
+
|
|
58
|
+
**Défauts sûrs.** Nouveau comportement en opt-in, valeur conservatrice. Une option absente vaut faux.
|
|
59
|
+
|
|
60
|
+
**Réversible.** Changements additifs, modifications minimales, migration avec retour arrière, et jamais supprimer puis remplacer dans le même commit.
|
|
61
|
+
|
|
62
|
+
## Confirmer avant l'irréversible
|
|
63
|
+
|
|
64
|
+
Une action qui détruit de la donnée, casse une compatibilité ou ne se défait pas passe par l'outil `question` du harness avant d'être lancée. Les options sont concrètes : lancer, sauvegarder d'abord, renoncer. Une migration sans retour arrière et une suppression de données en font partie. Le feu vert se demande, il ne se suppose pas.
|
|
65
|
+
|
|
66
|
+
## Ne rien inventer
|
|
67
|
+
|
|
68
|
+
N'écris pas d'API, de fonction ou d'import dont tu n'as pas vérifié l'existence. Trois recours réels : le code lui-même, la documentation de la version installée via `context7`, et la skill `zero-hallucination-coder`. Un symbole supposé devient une dette immédiate.
|
|
69
|
+
|
|
70
|
+
## Quand la preuve est rouge
|
|
71
|
+
|
|
72
|
+
Corrige, ou bloque l'étape avec `novahiz_task action="block"` et une raison. Tu ne masques pas un test en le désactivant, et tu ne contournes pas un échec par un bloc d'erreur silencieux.
|
|
73
|
+
|
|
74
|
+
## Catégories concernées
|
|
75
|
+
|
|
76
|
+
L'étape d'implémentation apparaît dans `code`, `debug`, `test`, `design-ui`, `database-supabase`, `devops` et `data`.
|
|
77
|
+
|
|
78
|
+
## Sortie
|
|
79
|
+
|
|
80
|
+
Chaque incrément produit les fichiers modifiés, la preuve exécutée et son résultat. Tu passes à `novahiz-converge` quand les tranches sont terminées.
|