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
|
+
Step 4 of the Novahiz pipeline: understand the affected code before modifying it.
|
|
5
|
+
Five ordered phases (reconnaissance, architecture, quality, operations, synthesis),
|
|
6
|
+
backed by the code map when available. Each claim cites a real file path;
|
|
7
|
+
what could not be determined is stated explicitly.
|
|
8
|
+
Use before touching unfamiliar code, before a refactor or a migration, or to locate a bug.
|
|
9
|
+
Triggers on: "understand this code", "where is", "who calls", codebase map,
|
|
10
|
+
impact analysis, root cause, entry point.
|
|
11
|
+
license: MIT
|
|
12
|
+
compatibility: opencode
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# novahiz-analyse: understand before modifying
|
|
16
|
+
|
|
17
|
+
**Step 4 of 6** in the pipeline. Analysis covers what the task requires, never the entire repo. Depth over breadth.
|
|
18
|
+
|
|
19
|
+
Previous step: `novahiz-task`. Next step: `novahiz-implement`.
|
|
20
|
+
|
|
21
|
+
## Use the code map
|
|
22
|
+
|
|
23
|
+
Before reading at random: the `code-understand` skill builds a ranked, cited map, and the `narsil` server exposes call graphs, symbols, references, and imports. A "who calls this" question is resolved with the tool, not by guessing.
|
|
24
|
+
|
|
25
|
+
## Phase 1: reconnaissance
|
|
26
|
+
|
|
27
|
+
- Directory tree to two or three levels.
|
|
28
|
+
- Manifests first: package.json, Cargo.toml, go.mod, pyproject.toml, pom.xml, build.gradle, Gemfile, csproj, Podfile, Package.swift.
|
|
29
|
+
- Build and CI: Makefile, Dockerfile, docker-compose, workflows, turbo.json, nx.json.
|
|
30
|
+
- Configs: tsconfig, eslint, environment template, bundler, editorconfig.
|
|
31
|
+
- Docs: README, CONTRIBUTING, ARCHITECTURE, docs directory.
|
|
32
|
+
- Languages, frameworks, monorepo presence.
|
|
33
|
+
|
|
34
|
+
## Phase 2: architecture
|
|
35
|
+
|
|
36
|
+
- Entry points: main, index, server, routes, CLI, AppDelegate, activities.
|
|
37
|
+
- Trace up to five critical paths end-to-end: route to controller to service to data to response.
|
|
38
|
+
- Dependency graph between modules.
|
|
39
|
+
- Dominant pattern: monolith, microservices, event-driven, hexagonal, MVC, CQRS.
|
|
40
|
+
- Data layer: schemas, migrations, ORM, models, cache.
|
|
41
|
+
- API surface: REST, GraphQL, gRPC, WebSocket, IPC, contracts, authentication.
|
|
42
|
+
|
|
43
|
+
## Phase 3: quality
|
|
44
|
+
|
|
45
|
+
- Tests: structure, frameworks, unit, integration, end-to-end, fixtures, mocks.
|
|
46
|
+
- Error handling and logging.
|
|
47
|
+
- Typing and runtime validation.
|
|
48
|
+
- Security posture: authentication, authorization, secrets, sanitization, dependency vulnerabilities.
|
|
49
|
+
- Pattern consistency, naming, duplication.
|
|
50
|
+
|
|
51
|
+
## Phase 4: operations
|
|
52
|
+
|
|
53
|
+
Build, CI/CD, deployment model, observability, environment management.
|
|
54
|
+
|
|
55
|
+
## Phase 5: synthesis
|
|
56
|
+
|
|
57
|
+
Write the synthesis after the preceding phases, never before. Each claim cites a real file path. State what you could not determine. An ASCII diagram helps for architecture.
|
|
58
|
+
|
|
59
|
+
Destination: the project's documentation directory if one exists, otherwise the execution ledger. Do not invent `docs/analysis/` in a project with no such convention.
|
|
60
|
+
|
|
61
|
+
## Six categories require this step
|
|
62
|
+
|
|
63
|
+
`code`, `debug`, `review`, `database-supabase`, `devops`, and `data`.
|
|
64
|
+
|
|
65
|
+
## Rules
|
|
66
|
+
|
|
67
|
+
- Read before writing.
|
|
68
|
+
- Ignore generated, vendored, and boilerplate code.
|
|
69
|
+
- Do not re-document the entire repo for every task: target the useful scope.
|
|
70
|
+
- An observation without a file path is worthless.
|
|
71
|
+
|
|
72
|
+
## Exit
|
|
73
|
+
|
|
74
|
+
The files and symbols that carry the logic, data paths, extension points, and an explicit list of remaining unknowns. This output feeds `novahiz-implement`.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-audit
|
|
3
|
+
description: |
|
|
4
|
+
End-of-session audit for Novahiz. CATEGORY-AWARE: only checks rules for
|
|
5
|
+
categories actually encountered. Relies on verifiable state (execution ledger,
|
|
6
|
+
gate journal, loaded skills, session diff) and never on agent memory.
|
|
7
|
+
Use at the END of a session, or when the user says "audit" or "verify".
|
|
8
|
+
Triggers on: "audit", "verify", end of session, compliance check, what we forgot.
|
|
9
|
+
license: MIT
|
|
10
|
+
compatibility: opencode
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# novahiz-audit: end-of-session check
|
|
14
|
+
|
|
15
|
+
Audit from verifiable facts. A memory-check has no value.
|
|
16
|
+
|
|
17
|
+
## The 14 real categories
|
|
18
|
+
|
|
19
|
+
code, debug, review, audit, test, research, browser, design-ui, database-supabase, docs-writing, planning, devops, data, general.
|
|
20
|
+
|
|
21
|
+
`general` is the fallback category. There is no `trivial` category in the catalog.
|
|
22
|
+
|
|
23
|
+
## What is actually checked
|
|
24
|
+
|
|
25
|
+
| Check | Proof source | Applies to |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Plan and ledger open | `novahiz_task status` or `todoread` | all except research |
|
|
28
|
+
| Category steps traversed | `novahiz_roadmap --category X` then `novahiz_step` | all except research and general |
|
|
29
|
+
| Required skills loaded | gate journal, `enforcement_log` table | all |
|
|
30
|
+
| humanizer applied on prose | R1 rules triggered, or skill loaded | docs-writing, code, audit, planning, design-ui |
|
|
31
|
+
| impeccable applied to style | R2 rules triggered, or skill loaded | design-ui |
|
|
32
|
+
| Code review done | `review` step in roadmap, `code-reviewer` skill | code, review, debug |
|
|
33
|
+
| Security scan | `scan` step, `security-guidance` skill | audit |
|
|
34
|
+
| Proof on verification steps | `novahiz_task` rejects `done` without `proof` | all |
|
|
35
|
+
| Memory up to date | `MEMORY.md` plus vault page, via `novahiz-memory` | all except research |
|
|
36
|
+
| No simulation | claims cross-checked with real outputs | all |
|
|
37
|
+
|
|
38
|
+
## Method
|
|
39
|
+
|
|
40
|
+
1. Retrieve the primary category and encountered categories.
|
|
41
|
+
2. For each applicable check, look for proof. No proof, no pass.
|
|
42
|
+
3. Mark `compliant`, `missing`, or `not applicable`.
|
|
43
|
+
4. Score: compliant over applicable, as percentage. Below 70%, propose precise fixes. At 90% and above, conclude "session compliant".
|
|
44
|
+
|
|
45
|
+
## Exit
|
|
46
|
+
|
|
47
|
+
A short report in the conversation:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
## Session audit
|
|
51
|
+
Categories: code, test
|
|
52
|
+
| Check | Status | Proof |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Ledger | compliant | 6 steps, 1 blocked |
|
|
55
|
+
| humanizer | compliant | loaded before writing |
|
|
56
|
+
| Code review | missing | review step not executed |
|
|
57
|
+
Score: 67%
|
|
58
|
+
|
|
59
|
+
## To fix
|
|
60
|
+
- Run code-reviewer on modified files
|
|
61
|
+
|
|
62
|
+
## To remember
|
|
63
|
+
- ...
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Pitfalls
|
|
67
|
+
|
|
68
|
+
- Check a rule without proof.
|
|
69
|
+
- Invent a compliance log, session file, or validation script: they do not exist in this system.
|
|
70
|
+
- Audit categories that were not encountered.
|
|
71
|
+
- Confuse absence of proof with compliance.
|
|
72
|
+
|
|
73
|
+
## Next
|
|
74
|
+
|
|
75
|
+
What can be fixed is fixed now: reload humanizer, run the review, write the memory. The rest is logged for the next session.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-clarify
|
|
3
|
+
description: |
|
|
4
|
+
Step 2 of the Novahiz pipeline: remove ambiguities before locking the plan.
|
|
5
|
+
Two combined mechanisms: an ambiguity sweep across risk families, and batches of
|
|
6
|
+
questions ordered by dependencies (the frontier), each question numbered with a
|
|
7
|
+
recommended answer.
|
|
8
|
+
Use when the request is vague, underspecified, contradictory, or when several plausible
|
|
9
|
+
readings lead to different work.
|
|
10
|
+
Triggers on: "clarify", ambiguous, "not sure yet", fuzzy scope, missing requirements,
|
|
11
|
+
"two possible readings", open questions.
|
|
12
|
+
license: MIT
|
|
13
|
+
compatibility: opencode
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# novahiz-clarify: remove ambiguities
|
|
17
|
+
|
|
18
|
+
**Step 2 of 6** in the pipeline. You ask before the plan is locked.
|
|
19
|
+
|
|
20
|
+
Previous step: `novahiz-plan`. Next step: `novahiz-task`.
|
|
21
|
+
|
|
22
|
+
## Entry
|
|
23
|
+
|
|
24
|
+
Ambiguous, contradictory, or broad enough that two readings produce two different works.
|
|
25
|
+
|
|
26
|
+
## A. Sweep by families
|
|
27
|
+
|
|
28
|
+
Run the request through ten risk families. Mark each `clear`, `partial`, or `missing`.
|
|
29
|
+
|
|
30
|
+
1. Behavior and functional scope
|
|
31
|
+
2. Domain and data model
|
|
32
|
+
3. Flows and interactions
|
|
33
|
+
4. Non-functional qualities: performance, load, availability, security, accessibility, internationalization
|
|
34
|
+
5. External integrations and dependencies
|
|
35
|
+
6. Edge cases and failure handling
|
|
36
|
+
7. Constraints and tradeoffs
|
|
37
|
+
8. Terminology and consistency
|
|
38
|
+
9. Completion signals: what proves it is done
|
|
39
|
+
10. Fill zones and placeholder values
|
|
40
|
+
|
|
41
|
+
Any family left `missing` on scope, data, splitting, tests, UX, or operations becomes a question. The rest waits.
|
|
42
|
+
|
|
43
|
+
## B. Frontier batches, posed in the interface
|
|
44
|
+
|
|
45
|
+
Model decisions as a tree: each decision opens the ones that depend on it.
|
|
46
|
+
|
|
47
|
+
The **frontier** is the set of decisions whose prerequisites are already resolved, so they can be asked now without guessing. A batch is **one call** to the `question` tool, with one entry per frontier decision.
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
question({
|
|
51
|
+
questions: [
|
|
52
|
+
{
|
|
53
|
+
header: "<short title, 30 chars max>",
|
|
54
|
+
question: "<the decision, one sentence, with its stakes>",
|
|
55
|
+
options: [
|
|
56
|
+
{ label: "<recommended option> (Recommended)", description: "<concrete consequence>" },
|
|
57
|
+
{ label: "<option>", description: "<concrete consequence>" },
|
|
58
|
+
{ label: "<option>", description: "<concrete consequence>" }
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Batch rules:
|
|
66
|
+
|
|
67
|
+
- **No prose questions in chat.** The interactive table is the only channel. Chat carries context, never the question list.
|
|
68
|
+
- Five questions maximum, ranked by cross-impact with uncertainty.
|
|
69
|
+
- Two to five options per question, mutually exclusive, each described by what it implies.
|
|
70
|
+
- The recommended option goes first and carries the `(Recommended)` suffix. The interface adds a free-response option automatically: do not add "Other" or a catch-all.
|
|
71
|
+
- `multiple: true` only when multiple answers can coexist.
|
|
72
|
+
- A question that depends on another still-open question belongs to a later batch.
|
|
73
|
+
- Each answer moves the frontier: recalculate it, then issue another call.
|
|
74
|
+
- Wait for the call return before continuing.
|
|
75
|
+
|
|
76
|
+
If the current harness does not expose a `question` tool, ask **one** question per turn, recommended option first, and wait. Never dump a list of questions at once.
|
|
77
|
+
|
|
78
|
+
Answer everything yourself that two read files can settle.
|
|
79
|
+
|
|
80
|
+
## Duty of critique
|
|
81
|
+
|
|
82
|
+
If the request is inconsistent, ambiguous, risky, or suboptimal, say so and propose an alternative. Staying silent leaves an error in place.
|
|
83
|
+
|
|
84
|
+
## Exit
|
|
85
|
+
|
|
86
|
+
A short list: open families, questions asked, answers received, decisions locked. Move to `novahiz-task` when the remaining open items no longer change architecture, data, tasks, tests, UX, or operations.
|
|
87
|
+
|
|
88
|
+
## Pitfalls
|
|
89
|
+
|
|
90
|
+
- Ask a comfort question about what is already stated in the request.
|
|
91
|
+
- Ask six questions when the frontier allows five.
|
|
92
|
+
- Ask about style or execution detail.
|
|
93
|
+
- Chain batches without re-reading answers to recalculate the frontier.
|
|
94
|
+
- Write questions in prose instead of opening the interactive table.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: novahiz-converge
|
|
3
|
+
description: |
|
|
4
|
+
Step 6 of the Novahiz pipeline: close the gap between intent and code.
|
|
5
|
+
Build the intent inventory (request, plan, acceptance criteria, ledger steps,
|
|
6
|
+
project principles), evaluate the current code state, classify each element as
|
|
7
|
+
satisfied, partial, or unsatisfied, and add remainders as traced steps.
|
|
8
|
+
Add-only: rewrite nothing, delete no step, do not touch the code.
|
|
9
|
+
Use at the end of an implementation, before declaring work done.
|
|
10
|
+
Triggers on: "is it done?", verify the feature, convergence, gap analysis,
|
|
11
|
+
"what remains", closure.
|
|
12
|
+
license: MIT
|
|
13
|
+
compatibility: opencode
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# novahiz-converge: close the gap
|
|
17
|
+
|
|
18
|
+
**Step 6 of 6** in the pipeline. It runs after implementation, never during.
|
|
19
|
+
|
|
20
|
+
Previous step: `novahiz-implement`.
|
|
21
|
+
|
|
22
|
+
## Do not confuse with audit
|
|
23
|
+
|
|
24
|
+
`novahiz-converge` measures the gap between what was requested and what the code does. `novahiz-audit` measures session compliance with rules. The first is about work; the second is about method.
|
|
25
|
+
|
|
26
|
+
## Intent source
|
|
27
|
+
|
|
28
|
+
Intent comes from artifacts, not from your memory:
|
|
29
|
+
|
|
30
|
+
- the original request,
|
|
31
|
+
- the plan,
|
|
32
|
+
- task acceptance criteria,
|
|
33
|
+
- the execution ledger: `novahiz_task action="status"` and `action="signals"`,
|
|
34
|
+
- project principles, starting with `AGENTS.md`.
|
|
35
|
+
|
|
36
|
+
Build the inventory: every identified and traceable element.
|
|
37
|
+
|
|
38
|
+
## Evaluation
|
|
39
|
+
|
|
40
|
+
Look at the current state of the code. This is not a diff: no git, no branch, no history. You evaluate what the code does now.
|
|
41
|
+
|
|
42
|
+
Classify each element:
|
|
43
|
+
|
|
44
|
+
- **satisfied**: the code does what is requested, and the proof shows it.
|
|
45
|
+
- **partial**: part holds, the rest is missing or unproven.
|
|
46
|
+
- **unsatisfied**: nothing covers the element.
|
|
47
|
+
|
|
48
|
+
A closed step without proof does not count as satisfied, even if the ledger says `done`.
|
|
49
|
+
|
|
50
|
+
## Add-only writing
|
|
51
|
+
|
|
52
|
+
- The only permitted writing is adding remainders to the ledger, each becoming a traced step: `novahiz_task action="insert"`.
|
|
53
|
+
- You modify neither the plan, nor the criteria, nor existing steps.
|
|
54
|
+
- You rename, renumber, reorder, and delete no step.
|
|
55
|
+
- Acceptance of open remainders is asked through the `question` tool: accept the remainders, handle them now, or trace them for later. A remainder not explicitly accepted keeps the closure open.
|
|
56
|
+
- You do not touch application code.
|
|
57
|
+
|
|
58
|
+
If everything is satisfied, you touch nothing and report a clean result. An empty report is not a clean result.
|
|
59
|
+
|
|
60
|
+
## Severity
|
|
61
|
+
|
|
62
|
+
A violation of a MUST principle in `AGENTS.md` is the highest level and produces a remediation step. If principles are absent, state it and continue.
|
|
63
|
+
|
|
64
|
+
## Closure
|
|
65
|
+
|
|
66
|
+
Report three lists: what is satisfied and proven, what remains open, what could not be evaluated and why. Work is finished when the open list is empty, or when the user explicitly accepts the remainders.
|
|
67
|
+
|
|
68
|
+
## Categories involved
|
|
69
|
+
|
|
70
|
+
The convergence step appears in `code`, `debug`, `test`, `audit`, `browser`, `design-ui`, `database-supabase`, `docs-writing`, `planning`, `devops`, and `data`.
|
|
71
|
+
|
|
72
|
+
## Pitfalls
|
|
73
|
+
|
|
74
|
+
- Declare as satisfied what was never executed.
|
|
75
|
+
- Confuse "the step is checked" with "the behavior exists".
|
|
76
|
+
- Rewrite the plan to match the obtained result.
|
|
@@ -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
|
+
Step 5 of the Novahiz pipeline: write code in increments that leave the system usable.
|
|
5
|
+
Cycle: implement, test, verify, commit, next slice.
|
|
6
|
+
Rules of simplicity, scope discipline, safe defaults, and reversibility.
|
|
7
|
+
Use when writing or changing code for an approved task.
|
|
8
|
+
Triggers on: implement, code, write the code, add the endpoint, build the
|
|
9
|
+
component, apply the change, make the test pass.
|
|
10
|
+
license: MIT
|
|
11
|
+
compatibility: opencode
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# novahiz-implement: write in clean increments
|
|
15
|
+
|
|
16
|
+
**Step 5 of 6** in the pipeline. You write what the task asks, no more, no less.
|
|
17
|
+
|
|
18
|
+
Previous step: `novahiz-analyse`. Next step: `novahiz-converge`.
|
|
19
|
+
|
|
20
|
+
## Increment cycle
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
implement -> test -> verify -> commit -> next slice
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Do not start from scratch at each slice. Each slice leaves a system that compiles and whose tests pass.
|
|
27
|
+
|
|
28
|
+
## Open and close the step
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
novahiz_task action="start" id="<todo>"
|
|
32
|
+
... work ...
|
|
33
|
+
novahiz_task action="done" id="<todo>" proof="<command and result>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`done` on a step of kind `verify` requires proof. Without proof, the step stays open.
|
|
37
|
+
|
|
38
|
+
## Choose the first slice
|
|
39
|
+
|
|
40
|
+
- Vertical by default: it crosses layers to be observable end-to-end.
|
|
41
|
+
- Contract-first: freeze types and interfaces, then both sides advance in parallel.
|
|
42
|
+
- Risk-first: prove the least certain piece.
|
|
43
|
+
|
|
44
|
+
## The gate will trigger
|
|
45
|
+
|
|
46
|
+
Writing code fires rules: R1-code-prose requires `humanizer` when the content carries prose (comments, messages, labels); R2 requires `impeccable` when a style file is touched. Load them before writing, not after the refusal.
|
|
47
|
+
|
|
48
|
+
## Writing rules
|
|
49
|
+
|
|
50
|
+
**Simplicity.** What is the simplest thing that could work? Fewer lines. An abstraction must earn its complexity. Three similar lines are better than a premature abstraction. Write the naive and obviously correct version, then optimize after proof by tests.
|
|
51
|
+
|
|
52
|
+
**Scope.** Touch only what the task requires. No adjacent code cleanup, no import refactoring of other files, no deletion of an misunderstood comment, no out-of-scope feature. What you see without touching it is noted "seen but untouched" and becomes a proposal: `novahiz_task action="insert"`, never a surprise modification.
|
|
53
|
+
|
|
54
|
+
**One thing at a time.** No component refactor plus build config in the same step.
|
|
55
|
+
|
|
56
|
+
**Keep compilable.** The build and existing tests pass after each increment.
|
|
57
|
+
|
|
58
|
+
**Safe defaults.** New behavior is opt-in, conservative value. An absent option defaults to false.
|
|
59
|
+
|
|
60
|
+
**Reversible.** Additive changes, minimal modifications, rollback-capable migration, and never delete-then-replace in the same commit.
|
|
61
|
+
|
|
62
|
+
## Confirm before irreversible
|
|
63
|
+
|
|
64
|
+
An action that destroys data, breaks compatibility, or cannot be undone goes through the `question` tool before being launched. Options are concrete: proceed, back up first, abort. A no-rollback migration and a data deletion are in this category. The green light is asked, never assumed.
|
|
65
|
+
|
|
66
|
+
## Never invent
|
|
67
|
+
|
|
68
|
+
Do not write an API, function, or import whose existence you have not verified. Three real sources: the code itself, the installed version's documentation via `context7`, and the `zero-hallucination-coder` skill. A presumed symbol becomes immediate debt.
|
|
69
|
+
|
|
70
|
+
## When proof is red
|
|
71
|
+
|
|
72
|
+
Fix it, or block the step with `novahiz_task action="block"` and a reason. Do not mask a test by disabling it, and do not bypass a failure with a silent error block.
|
|
73
|
+
|
|
74
|
+
## Categories involved
|
|
75
|
+
|
|
76
|
+
The implementation step appears in `code`, `debug`, `test`, `design-ui`, `database-supabase`, `devops`, and `data`.
|
|
77
|
+
|
|
78
|
+
## Exit
|
|
79
|
+
|
|
80
|
+
Each increment produces the modified files, the executed proof, and its result. Move to `novahiz-converge` when the slices are complete.
|