tribunal-kit 9.0.0 → 9.0.2
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/.agent/ARCHITECTURE.md +2 -2
- package/.agent/agents/backend-specialist.md +1 -1
- package/.agent/agents/code-archaeologist.md +1 -1
- package/.agent/agents/database-architect.md +1 -1
- package/.agent/agents/debugger.md +1 -1
- package/.agent/agents/devops-engineer.md +1 -1
- package/.agent/agents/documentation-writer.md +1 -1
- package/.agent/agents/explorer-agent.md +1 -1
- package/.agent/agents/game-developer.md +1 -1
- package/.agent/agents/minimalist-reviewer.md +1 -1
- package/.agent/agents/mobile-developer.md +1 -1
- package/.agent/agents/orchestrator.md +1 -1
- package/.agent/agents/penetration-tester.md +1 -1
- package/.agent/agents/performance-optimizer.md +1 -1
- package/.agent/agents/product-manager.md +1 -1
- package/.agent/agents/product-owner.md +1 -1
- package/.agent/agents/project-planner.md +1 -1
- package/.agent/agents/qa-automation-engineer.md +1 -1
- package/.agent/agents/seo-specialist.md +1 -1
- package/.agent/agents/test-engineer.md +1 -1
- package/.agent/config/slash-commands.json +13 -1
- package/.agent/config/system-prompt.md +21 -7
- package/.agent/routing_index.json +1546 -268
- package/.agent/scripts/browser_audit.js +94 -0
- package/.agent/scripts/context_compiler.js +9 -0
- package/.agent/scripts/prompt_compiler.js +105 -13
- package/.agent/skill_topic_map.json +2 -1
- package/.agent/skills/12-principles-of-animation/SKILL.md +63 -25
- package/.agent/skills/60fps-animation/SKILL.md +68 -24
- package/.agent/skills/accessible-animation/SKILL.md +208 -44
- package/.agent/skills/adapt/SKILL.md +63 -25
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +65 -25
- package/.agent/skills/agent-organizer/SKILL.md +60 -31
- package/.agent/skills/agentic-patterns/SKILL.md +60 -31
- package/.agent/skills/agentic-workflows-2026/SKILL.md +67 -27
- package/.agent/skills/ai-app-hardening/SKILL.md +67 -27
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +59 -31
- package/.agent/skills/animation-on-scroll/SKILL.md +187 -51
- package/.agent/skills/animation-systems/SKILL.md +230 -40
- package/.agent/skills/antfu-conventions/SKILL.md +64 -26
- package/.agent/skills/api-patterns/SKILL.md +61 -31
- package/.agent/skills/api-security-auditor/SKILL.md +59 -31
- package/.agent/skills/app-builder/SKILL.md +61 -31
- package/.agent/skills/appflow-wireframe/SKILL.md +62 -33
- package/.agent/skills/apple-design/SKILL.md +63 -25
- package/.agent/skills/architecture/SKILL.md +61 -31
- package/.agent/skills/audit-and-fix/SKILL.md +63 -25
- package/.agent/skills/authentication-best-practices/SKILL.md +59 -31
- package/.agent/skills/backend-security-expert/SKILL.md +61 -31
- package/.agent/skills/baseline-ui/SKILL.md +63 -25
- package/.agent/skills/bash-linux/SKILL.md +59 -31
- package/.agent/skills/behavioral-modes/SKILL.md +60 -31
- package/.agent/skills/better-colors/SKILL.md +63 -25
- package/.agent/skills/better-typography/SKILL.md +63 -36
- package/.agent/skills/better-ui/SKILL.md +64 -24
- package/.agent/skills/bolder/SKILL.md +63 -25
- package/.agent/skills/brainstorming/SKILL.md +61 -31
- package/.agent/skills/browser-audit/SKILL.md +170 -0
- package/.agent/skills/browser-native-ai/SKILL.md +64 -26
- package/.agent/skills/build-primitive/SKILL.md +63 -25
- package/.agent/skills/building-native-ui/SKILL.md +59 -31
- package/.agent/skills/cicd-pro/SKILL.md +65 -25
- package/.agent/skills/clarify/SKILL.md +63 -25
- package/.agent/skills/clean-code/SKILL.md +59 -31
- package/.agent/skills/cloud-architect/SKILL.md +65 -25
- package/.agent/skills/cobejs/SKILL.md +63 -25
- package/.agent/skills/code-review-checklist/SKILL.md +59 -31
- package/.agent/skills/codebase-design/SKILL.md +65 -25
- package/.agent/skills/colorize/SKILL.md +63 -25
- package/.agent/skills/compact-landing/SKILL.md +63 -25
- package/.agent/skills/company-logos/SKILL.md +63 -25
- package/.agent/skills/config-validator/SKILL.md +59 -31
- package/.agent/skills/containerization-pro/SKILL.md +65 -25
- package/.agent/skills/context-engineering-pro/SKILL.md +67 -27
- package/.agent/skills/create-design-md/SKILL.md +63 -25
- package/.agent/skills/critique/SKILL.md +64 -25
- package/.agent/skills/csharp-developer/SKILL.md +59 -31
- package/.agent/skills/data-validation-schemas/SKILL.md +59 -31
- package/.agent/skills/database-design/SKILL.md +61 -31
- package/.agent/skills/delight/SKILL.md +63 -25
- package/.agent/skills/deployment-procedures/SKILL.md +59 -31
- package/.agent/skills/design-lab/SKILL.md +65 -26
- package/.agent/skills/devops-engineer/SKILL.md +59 -31
- package/.agent/skills/devops-incident-responder/SKILL.md +59 -31
- package/.agent/skills/diagnosing-bugs/SKILL.md +64 -27
- package/.agent/skills/distill/SKILL.md +63 -25
- package/.agent/skills/documentation-templates/SKILL.md +59 -31
- package/.agent/skills/domain-modeling/SKILL.md +64 -26
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +66 -26
- package/.agent/skills/edge-ai-mobile/SKILL.md +66 -26
- package/.agent/skills/edge-computing/SKILL.md +59 -31
- package/.agent/skills/emil-design-eng/SKILL.md +64 -24
- package/.agent/skills/error-resilience/SKILL.md +59 -31
- package/.agent/skills/expo-router-v4/SKILL.md +65 -26
- package/.agent/skills/extract-design-system/SKILL.md +59 -31
- package/.agent/skills/fabel-protocol/SKILL.md +64 -25
- package/.agent/skills/fixing-accessibility/SKILL.md +63 -25
- package/.agent/skills/fixing-metadata/SKILL.md +63 -25
- package/.agent/skills/fixing-motion-performance/SKILL.md +63 -25
- package/.agent/skills/framer-motion-expert/SKILL.md +68 -30
- package/.agent/skills/frontend-design/SKILL.md +63 -25
- package/.agent/skills/frontend-security-expert/SKILL.md +61 -31
- package/.agent/skills/game-design-expert/SKILL.md +59 -31
- package/.agent/skills/game-engineering-expert/SKILL.md +59 -31
- package/.agent/skills/generative-ui-expert/SKILL.md +64 -26
- package/.agent/skills/geo-fundamentals/SKILL.md +59 -31
- package/.agent/skills/git-pro/SKILL.md +65 -25
- package/.agent/skills/github-operations/SKILL.md +59 -31
- package/.agent/skills/gpt-taste/SKILL.md +63 -25
- package/.agent/skills/gsap-core/SKILL.md +65 -25
- package/.agent/skills/gsap-frameworks/SKILL.md +65 -25
- package/.agent/skills/gsap-performance/SKILL.md +65 -25
- package/.agent/skills/gsap-plugins/SKILL.md +65 -25
- package/.agent/skills/gsap-react/SKILL.md +65 -25
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +65 -25
- package/.agent/skills/gsap-timeline/SKILL.md +65 -25
- package/.agent/skills/gsap-utils/SKILL.md +65 -25
- package/.agent/skills/harden/SKILL.md +63 -25
- package/.agent/skills/harness-protocol/SKILL.md +64 -25
- package/.agent/skills/i18n-localization/SKILL.md +59 -31
- package/.agent/skills/impeccable/SKILL.md +63 -25
- package/.agent/skills/improve-codebase-architecture/SKILL.md +64 -26
- package/.agent/skills/improve-ui/SKILL.md +63 -25
- package/.agent/skills/intelligent-routing/SKILL.md +63 -23
- package/.agent/skills/knowledge-graph/SKILL.md +64 -25
- package/.agent/skills/landing-page/SKILL.md +63 -25
- package/.agent/skills/lint-and-validate/SKILL.md +59 -31
- package/.agent/skills/llm-engineering/SKILL.md +59 -31
- package/.agent/skills/local-first/SKILL.md +59 -31
- package/.agent/skills/local-first-architecture/SKILL.md +64 -24
- package/.agent/skills/lottie-animation/SKILL.md +63 -25
- package/.agent/skills/marquee-loop/SKILL.md +63 -25
- package/.agent/skills/masked-reveal/SKILL.md +246 -55
- package/.agent/skills/mcp-builder/SKILL.md +59 -31
- package/.agent/skills/micro-interaction/SKILL.md +255 -61
- package/.agent/skills/mobile-design/SKILL.md +61 -31
- package/.agent/skills/monorepo-management/SKILL.md +59 -31
- package/.agent/skills/morphing-icons/SKILL.md +366 -51
- package/.agent/skills/motion-engineering/SKILL.md +64 -26
- package/.agent/skills/nextjs-react-expert/SKILL.md +61 -31
- package/.agent/skills/nodejs-best-practices/SKILL.md +59 -31
- package/.agent/skills/observability/SKILL.md +59 -31
- package/.agent/skills/opentelemetry-observability/SKILL.md +66 -26
- package/.agent/skills/page-transition-animation/SKILL.md +63 -25
- package/.agent/skills/parallel-agents/SKILL.md +60 -31
- package/.agent/skills/performance-profiling/SKILL.md +60 -31
- package/.agent/skills/plan-writing/SKILL.md +59 -31
- package/.agent/skills/platform-engineer/SKILL.md +59 -31
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +66 -27
- package/.agent/skills/playwright-ai-e2e/SKILL.md +67 -27
- package/.agent/skills/playwright-best-practices/SKILL.md +60 -31
- package/.agent/skills/polish/SKILL.md +63 -25
- package/.agent/skills/powershell-windows/SKILL.md +59 -31
- package/.agent/skills/pricing-page/SKILL.md +63 -25
- package/.agent/skills/product-aware-heuristics/SKILL.md +63 -25
- package/.agent/skills/progressive-blur/SKILL.md +63 -25
- package/.agent/skills/project-idioms/SKILL.md +60 -36
- package/.agent/skills/property-based-testing/SKILL.md +67 -27
- package/.agent/skills/python-patterns/SKILL.md +59 -31
- package/.agent/skills/python-pro/SKILL.md +61 -31
- package/.agent/skills/quieter/SKILL.md +63 -25
- package/.agent/skills/react-doctor/SKILL.md +63 -25
- package/.agent/skills/react-specialist/SKILL.md +61 -31
- package/.agent/skills/readme-builder/SKILL.md +59 -31
- package/.agent/skills/realtime-patterns/SKILL.md +59 -31
- package/.agent/skills/red-team-tactics/SKILL.md +59 -31
- package/.agent/skills/redesign-skill/SKILL.md +63 -25
- package/.agent/skills/review-animations/SKILL.md +64 -26
- package/.agent/skills/rust-pro/SKILL.md +61 -31
- package/.agent/skills/seo-fundamentals/SKILL.md +59 -31
- package/.agent/skills/server-management/SKILL.md +59 -31
- package/.agent/skills/shadcn-ui-expert/SKILL.md +59 -31
- package/.agent/skills/shape/SKILL.md +64 -25
- package/.agent/skills/skill-creator/SKILL.md +66 -24
- package/.agent/skills/soft-skill/SKILL.md +63 -25
- package/.agent/skills/sounds-on-the-web/SKILL.md +63 -25
- package/.agent/skills/sql-pro/SKILL.md +59 -31
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +59 -31
- package/.agent/skills/svg-animation/SKILL.md +369 -51
- package/.agent/skills/swiftui-expert/SKILL.md +59 -31
- package/.agent/skills/swiss-design/SKILL.md +63 -25
- package/.agent/skills/system-design-pro/SKILL.md +65 -25
- package/.agent/skills/systematic-debugging/SKILL.md +60 -31
- package/.agent/skills/tailwind-patterns/SKILL.md +59 -31
- package/.agent/skills/taste-skill/SKILL.md +63 -25
- package/.agent/skills/tdd-workflow/SKILL.md +66 -25
- package/.agent/skills/test-result-analyzer/SKILL.md +59 -32
- package/.agent/skills/testing-patterns/SKILL.md +60 -31
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +64 -26
- package/.agent/skills/thinking-protocol/SKILL.md +58 -34
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +63 -25
- package/.agent/skills/transitions-dev/SKILL.md +63 -25
- package/.agent/skills/trend-researcher/SKILL.md +58 -32
- package/.agent/skills/typescript-advanced/SKILL.md +59 -32
- package/.agent/skills/typeset/SKILL.md +63 -25
- package/.agent/skills/ui-reasoning-engine/SKILL.md +63 -25
- package/.agent/skills/ui-skill-packs/SKILL.md +64 -24
- package/.agent/skills/ui-skills-root/SKILL.md +63 -25
- package/.agent/skills/ui-ux-pro-max/SKILL.md +64 -24
- package/.agent/skills/ui-ux-researcher/SKILL.md +58 -32
- package/.agent/skills/vector-search-pgvector/SKILL.md +66 -26
- package/.agent/skills/verification-before-completion/SKILL.md +69 -16
- package/.agent/skills/vue-expert/SKILL.md +61 -31
- package/.agent/skills/vulnerability-scanner/SKILL.md +61 -31
- package/.agent/skills/web-accessibility-auditor/SKILL.md +59 -31
- package/.agent/skills/web-design-guidelines/SKILL.md +63 -25
- package/.agent/skills/web-quality-audit/SKILL.md +63 -25
- package/.agent/skills/webapp-testing/SKILL.md +60 -31
- package/.agent/skills/webgpu-performance/SKILL.md +64 -26
- package/.agent/skills/whimsy-injector/SKILL.md +58 -32
- package/.agent/skills/workflow-optimizer/SKILL.md +58 -31
- package/.agent/skills/zero-trust-passkeys/SKILL.md +66 -26
- package/.agent/templates/sdd/implementer-prompt.md +10 -1
- package/.agent/templates/sdd/re-review-prompt.md +9 -1
- package/.agent/templates/sdd/task-reviewer-prompt.md +20 -1
- package/.agent/workflows/audit-live.md +52 -0
- package/.agent/workflows/compare-web.md +35 -0
- package/.agent/workflows/context.md +100 -0
- package/.agent/workflows/plan.md +1 -1
- package/.agent/workflows/skill-enhancement-engine.md +88 -0
- package/.agent/workflows/super-prompt.md +101 -21
- package/.agents/skills/12-principles-of-animation/SKILL.md +126 -0
- package/.agents/skills/60fps-animation/SKILL.md +164 -0
- package/.agents/skills/accessible-animation/SKILL.md +266 -0
- package/.agents/skills/adapt/SKILL.md +131 -0
- package/.agents/skills/advanced-rag-pipelines/SKILL.md +169 -0
- package/.agents/skills/agent-organizer/SKILL.md +192 -0
- package/.agents/skills/agentic-patterns/SKILL.md +356 -0
- package/.agents/skills/agentic-workflows-2026/SKILL.md +157 -0
- package/.agents/skills/ai-app-hardening/SKILL.md +125 -0
- package/.agents/skills/ai-prompt-injection-defense/SKILL.md +237 -0
- package/.agents/skills/animation-on-scroll/SKILL.md +267 -0
- package/.agents/skills/animation-systems/SKILL.md +273 -0
- package/.agents/skills/antfu-conventions/SKILL.md +129 -0
- package/.agents/skills/api-patterns/SKILL.md +293 -0
- package/.agents/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agents/skills/api-security-auditor/SKILL.md +230 -0
- package/.agents/skills/app-builder/SKILL.md +610 -0
- package/.agents/skills/app-builder/templates/SKILL.md +108 -0
- package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
- package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
- package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
- package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
- package/.agents/skills/appflow-wireframe/SKILL.md +173 -0
- package/.agents/skills/apple-design/SKILL.md +164 -0
- package/.agents/skills/architecture/SKILL.md +263 -0
- package/.agents/skills/audit-and-fix/SKILL.md +136 -0
- package/.agents/skills/authentication-best-practices/SKILL.md +232 -0
- package/.agents/skills/backend-security-expert/SKILL.md +148 -0
- package/.agents/skills/baseline-ui/SKILL.md +130 -0
- package/.agents/skills/bash-linux/SKILL.md +214 -0
- package/.agents/skills/behavioral-modes/SKILL.md +275 -0
- package/.agents/skills/better-colors/SKILL.md +191 -0
- package/.agents/skills/better-typography/SKILL.md +164 -0
- package/.agents/skills/better-ui/SKILL.md +193 -0
- package/.agents/skills/bolder/SKILL.md +124 -0
- package/.agents/skills/brainstorming/SKILL.md +534 -0
- package/.agents/skills/browser-audit/SKILL.md +170 -0
- package/.agents/skills/browser-native-ai/SKILL.md +147 -0
- package/.agents/skills/build-primitive/SKILL.md +125 -0
- package/.agents/skills/building-native-ui/SKILL.md +237 -0
- package/.agents/skills/cicd-pro/SKILL.md +487 -0
- package/.agents/skills/clarify/SKILL.md +130 -0
- package/.agents/skills/clean-code/SKILL.md +442 -0
- package/.agents/skills/cloud-architect/SKILL.md +484 -0
- package/.agents/skills/cobejs/SKILL.md +145 -0
- package/.agents/skills/code-review-checklist/SKILL.md +238 -0
- package/.agents/skills/codebase-design/SKILL.md +151 -0
- package/.agents/skills/colorize/SKILL.md +132 -0
- package/.agents/skills/compact-landing/SKILL.md +125 -0
- package/.agents/skills/company-logos/SKILL.md +129 -0
- package/.agents/skills/config-validator/SKILL.md +200 -0
- package/.agents/skills/containerization-pro/SKILL.md +497 -0
- package/.agents/skills/context-engineering-pro/SKILL.md +136 -0
- package/.agents/skills/create-design-md/SKILL.md +167 -0
- package/.agents/skills/critique/SKILL.md +154 -0
- package/.agents/skills/csharp-developer/SKILL.md +553 -0
- package/.agents/skills/data-validation-schemas/SKILL.md +372 -0
- package/.agents/skills/database-design/SKILL.md +294 -0
- package/.agents/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agents/skills/delight/SKILL.md +121 -0
- package/.agents/skills/deployment-procedures/SKILL.md +207 -0
- package/.agents/skills/design-lab/SKILL.md +117 -0
- package/.agents/skills/devops-engineer/SKILL.md +380 -0
- package/.agents/skills/devops-incident-responder/SKILL.md +178 -0
- package/.agents/skills/diagnosing-bugs/SKILL.md +247 -0
- package/.agents/skills/distill/SKILL.md +120 -0
- package/.agents/skills/documentation-templates/SKILL.md +326 -0
- package/.agents/skills/domain-modeling/SKILL.md +136 -0
- package/.agents/skills/duckdb-analytical-sql/SKILL.md +125 -0
- package/.agents/skills/edge-ai-mobile/SKILL.md +116 -0
- package/.agents/skills/edge-computing/SKILL.md +218 -0
- package/.agents/skills/emil-design-eng/SKILL.md +209 -0
- package/.agents/skills/error-resilience/SKILL.md +478 -0
- package/.agents/skills/expo-router-v4/SKILL.md +146 -0
- package/.agents/skills/extract-design-system/SKILL.md +195 -0
- package/.agents/skills/fabel-protocol/SKILL.md +352 -0
- package/.agents/skills/fixing-accessibility/SKILL.md +162 -0
- package/.agents/skills/fixing-metadata/SKILL.md +158 -0
- package/.agents/skills/fixing-motion-performance/SKILL.md +153 -0
- package/.agents/skills/framer-motion-expert/SKILL.md +312 -0
- package/.agents/skills/frontend-design/SKILL.md +178 -0
- package/.agents/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agents/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agents/skills/frontend-security-expert/SKILL.md +131 -0
- package/.agents/skills/game-design-expert/SKILL.md +167 -0
- package/.agents/skills/game-engineering-expert/SKILL.md +183 -0
- package/.agents/skills/generative-ui-expert/SKILL.md +175 -0
- package/.agents/skills/geo-fundamentals/SKILL.md +183 -0
- package/.agents/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agents/skills/git-pro/SKILL.md +476 -0
- package/.agents/skills/github-operations/SKILL.md +370 -0
- package/.agents/skills/gpt-taste/SKILL.md +125 -0
- package/.agents/skills/gsap-core/SKILL.md +352 -0
- package/.agents/skills/gsap-frameworks/SKILL.md +243 -0
- package/.agents/skills/gsap-performance/SKILL.md +169 -0
- package/.agents/skills/gsap-plugins/SKILL.md +516 -0
- package/.agents/skills/gsap-react/SKILL.md +288 -0
- package/.agents/skills/gsap-scrolltrigger/SKILL.md +387 -0
- package/.agents/skills/gsap-timeline/SKILL.md +197 -0
- package/.agents/skills/gsap-utils/SKILL.md +374 -0
- package/.agents/skills/harden/SKILL.md +130 -0
- package/.agents/skills/harness-protocol/SKILL.md +115 -0
- package/.agents/skills/i18n-localization/SKILL.md +209 -0
- package/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agents/skills/impeccable/SKILL.md +127 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +123 -0
- package/.agents/skills/improve-ui/SKILL.md +145 -0
- package/.agents/skills/intelligent-routing/SKILL.md +283 -0
- package/.agents/skills/knowledge-graph/SKILL.md +146 -0
- package/.agents/skills/landing-page/SKILL.md +140 -0
- package/.agents/skills/lint-and-validate/SKILL.md +299 -0
- package/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agents/skills/llm-engineering/SKILL.md +435 -0
- package/.agents/skills/local-first/SKILL.md +213 -0
- package/.agents/skills/local-first-architecture/SKILL.md +137 -0
- package/.agents/skills/lottie-animation/SKILL.md +137 -0
- package/.agents/skills/marquee-loop/SKILL.md +147 -0
- package/.agents/skills/masked-reveal/SKILL.md +305 -0
- package/.agents/skills/mcp-builder/SKILL.md +180 -0
- package/.agents/skills/micro-interaction/SKILL.md +321 -0
- package/.agents/skills/mobile-design/SKILL.md +320 -0
- package/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agents/skills/monorepo-management/SKILL.md +370 -0
- package/.agents/skills/morphing-icons/SKILL.md +423 -0
- package/.agents/skills/motion-engineering/SKILL.md +272 -0
- package/.agents/skills/nextjs-react-expert/SKILL.md +293 -0
- package/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.agents/skills/nodejs-best-practices/SKILL.md +617 -0
- package/.agents/skills/observability/SKILL.md +378 -0
- package/.agents/skills/opentelemetry-observability/SKILL.md +125 -0
- package/.agents/skills/page-transition-animation/SKILL.md +161 -0
- package/.agents/skills/parallel-agents/SKILL.md +185 -0
- package/.agents/skills/performance-profiling/SKILL.md +305 -0
- package/.agents/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agents/skills/plan-writing/SKILL.md +202 -0
- package/.agents/skills/platform-engineer/SKILL.md +183 -0
- package/.agents/skills/platform-engineering-opentofu/SKILL.md +133 -0
- package/.agents/skills/playwright-ai-e2e/SKILL.md +126 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +224 -0
- package/.agents/skills/polish/SKILL.md +114 -0
- package/.agents/skills/powershell-windows/SKILL.md +197 -0
- package/.agents/skills/pricing-page/SKILL.md +123 -0
- package/.agents/skills/product-aware-heuristics/SKILL.md +465 -0
- package/.agents/skills/progressive-blur/SKILL.md +155 -0
- package/.agents/skills/project-idioms/SKILL.md +166 -0
- package/.agents/skills/property-based-testing/SKILL.md +124 -0
- package/.agents/skills/python-patterns/SKILL.md +295 -0
- package/.agents/skills/python-pro/SKILL.md +380 -0
- package/.agents/skills/quieter/SKILL.md +124 -0
- package/.agents/skills/react-doctor/SKILL.md +126 -0
- package/.agents/skills/react-specialist/SKILL.md +355 -0
- package/.agents/skills/readme-builder/SKILL.md +345 -0
- package/.agents/skills/realtime-patterns/SKILL.md +358 -0
- package/.agents/skills/red-team-tactics/SKILL.md +266 -0
- package/.agents/skills/redesign-skill/SKILL.md +121 -0
- package/.agents/skills/review-animations/SKILL.md +120 -0
- package/.agents/skills/review-animations/STANDARDS.md +87 -0
- package/.agents/skills/rust-pro/SKILL.md +727 -0
- package/.agents/skills/seo-fundamentals/SKILL.md +214 -0
- package/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/.agents/skills/server-management/SKILL.md +253 -0
- package/.agents/skills/shadcn-ui-expert/SKILL.md +271 -0
- package/.agents/skills/shape/SKILL.md +131 -0
- package/.agents/skills/skill-creator/SKILL.md +136 -0
- package/.agents/skills/soft-skill/SKILL.md +128 -0
- package/.agents/skills/sounds-on-the-web/SKILL.md +151 -0
- package/.agents/skills/sql-pro/SKILL.md +699 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +132 -0
- package/.agents/skills/svg-animation/SKILL.md +431 -0
- package/.agents/skills/swiftui-expert/SKILL.md +239 -0
- package/.agents/skills/swiss-design/SKILL.md +119 -0
- package/.agents/skills/system-design-pro/SKILL.md +393 -0
- package/.agents/skills/systematic-debugging/SKILL.md +198 -0
- package/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.agents/skills/tailwind-patterns/SKILL.md +658 -0
- package/.agents/skills/taste-skill/SKILL.md +127 -0
- package/.agents/skills/tdd-workflow/SKILL.md +179 -0
- package/.agents/skills/test-result-analyzer/SKILL.md +345 -0
- package/.agents/skills/testing-patterns/SKILL.md +609 -0
- package/.agents/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
- package/.agents/skills/thinking-protocol/SKILL.md +97 -0
- package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
- package/.agents/skills/transitions-dev/SKILL.md +165 -0
- package/.agents/skills/trend-researcher/SKILL.md +273 -0
- package/.agents/skills/typescript-advanced/SKILL.md +381 -0
- package/.agents/skills/typeset/SKILL.md +135 -0
- package/.agents/skills/ui-reasoning-engine/SKILL.md +230 -0
- package/.agents/skills/ui-skill-packs/SKILL.md +132 -0
- package/.agents/skills/ui-skills-root/SKILL.md +144 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +185 -0
- package/.agents/skills/ui-ux-researcher/SKILL.md +274 -0
- package/.agents/skills/vector-search-pgvector/SKILL.md +144 -0
- package/.agents/skills/verification-before-completion/SKILL.md +178 -0
- package/.agents/skills/vue-expert/SKILL.md +334 -0
- package/.agents/skills/vulnerability-scanner/SKILL.md +453 -0
- package/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/.agents/skills/web-accessibility-auditor/SKILL.md +254 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +124 -0
- package/.agents/skills/web-quality-audit/SKILL.md +122 -0
- package/.agents/skills/webapp-testing/SKILL.md +203 -0
- package/.agents/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agents/skills/webgpu-performance/SKILL.md +163 -0
- package/.agents/skills/whimsy-injector/SKILL.md +380 -0
- package/.agents/skills/workflow-optimizer/SKILL.md +263 -0
- package/.agents/skills/zero-trust-passkeys/SKILL.md +156 -0
- package/.claude-plugin/marketplace.json +1 -4
- package/.hermes-plugin/plugin.yaml +1 -1
- package/.kimi-plugin/plugin.json +6 -6
- package/.opencode/INSTALL.md +2 -2
- package/.opencode/rules.md +258 -0
- package/AGENTS.md +91 -0
- package/CLAUDE.md +442 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +66 -69
- package/bin/adapter-install.js +40 -16
- package/bin/mcp-server.js +426 -0
- package/bin/proxy-server.js +18 -9
- package/bin/spawn-agent.js +9 -3
- package/bin/wrapper.js +19 -4
- package/dist/browser/audit.js +229 -0
- package/dist/browser/case_bridge.js +189 -0
- package/dist/browser/cdp.js +513 -0
- package/dist/browser/compare.js +110 -0
- package/dist/browser/discovery.js +140 -0
- package/dist/browser/idpi.js +142 -0
- package/dist/browser/index.js +89 -0
- package/dist/browser/launcher.js +154 -0
- package/dist/browser/sentinel.js +202 -0
- package/dist/browser/synapse.js +251 -0
- package/dist/browser/trimmer.js +210 -0
- package/dist/cli.js +70 -48
- package/dist/commands/audit-web.js +112 -0
- package/dist/commands/browse.js +56 -0
- package/dist/commands/compare-web.js +61 -0
- package/dist/commands/deconstruct.js +58 -0
- package/dist/commands/heal.js +99 -0
- package/dist/commands/init.js +10 -1
- package/dist/commands/sdd.js +229 -0
- package/dist/commands/uninstall.js +12 -0
- package/dist/tui/banner.js +1 -1
- package/gemini-extension.json +1 -1
- package/hooks/hooks-cursor.json +2 -8
- package/hooks/hooks.json +2 -8
- package/marketplace.json +14 -0
- package/package.json +176 -165
- package/plugin.json +26 -0
- package/scripts/apply-version.js +57 -0
- package/scripts/clean-pycache.js +42 -0
- package/scripts/context_compiler.js +944 -0
- package/scripts/package-cores.js +113 -0
- package/scripts/skill_enhancement_engine.js +473 -0
- package/scripts/sync-skills.js +61 -0
- package/skills/12-principles-of-animation/SKILL.md +126 -0
- package/skills/60fps-animation/SKILL.md +164 -0
- package/skills/accessible-animation/SKILL.md +266 -0
- package/skills/adapt/SKILL.md +131 -0
- package/skills/advanced-rag-pipelines/SKILL.md +169 -0
- package/skills/agent-organizer/SKILL.md +192 -0
- package/skills/agentic-patterns/SKILL.md +356 -0
- package/skills/agentic-workflows-2026/SKILL.md +157 -0
- package/skills/ai-app-hardening/SKILL.md +125 -0
- package/skills/ai-prompt-injection-defense/SKILL.md +237 -0
- package/skills/animation-on-scroll/SKILL.md +267 -0
- package/skills/animation-systems/SKILL.md +273 -0
- package/skills/antfu-conventions/SKILL.md +129 -0
- package/skills/api-patterns/SKILL.md +293 -0
- package/skills/api-patterns/scripts/api_validator.py +211 -0
- package/skills/api-security-auditor/SKILL.md +230 -0
- package/skills/app-builder/SKILL.md +610 -0
- package/skills/app-builder/templates/SKILL.md +108 -0
- package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
- package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
- package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
- package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
- package/skills/appflow-wireframe/SKILL.md +173 -0
- package/skills/apple-design/SKILL.md +164 -0
- package/skills/architecture/SKILL.md +263 -0
- package/skills/audit-and-fix/SKILL.md +136 -0
- package/skills/authentication-best-practices/SKILL.md +232 -0
- package/skills/backend-security-expert/SKILL.md +148 -0
- package/skills/baseline-ui/SKILL.md +130 -0
- package/skills/bash-linux/SKILL.md +214 -0
- package/skills/behavioral-modes/SKILL.md +275 -0
- package/skills/better-colors/SKILL.md +191 -0
- package/skills/better-typography/SKILL.md +164 -0
- package/skills/better-ui/SKILL.md +193 -0
- package/skills/bolder/SKILL.md +124 -0
- package/skills/brainstorming/SKILL.md +534 -0
- package/skills/browser-audit/SKILL.md +170 -0
- package/skills/browser-native-ai/SKILL.md +147 -0
- package/skills/build-primitive/SKILL.md +125 -0
- package/skills/building-native-ui/SKILL.md +237 -0
- package/skills/cicd-pro/SKILL.md +487 -0
- package/skills/clarify/SKILL.md +130 -0
- package/skills/clean-code/SKILL.md +442 -0
- package/skills/cloud-architect/SKILL.md +484 -0
- package/skills/cobejs/SKILL.md +145 -0
- package/skills/code-review-checklist/SKILL.md +238 -0
- package/skills/codebase-design/SKILL.md +151 -0
- package/skills/colorize/SKILL.md +132 -0
- package/skills/compact-landing/SKILL.md +125 -0
- package/skills/company-logos/SKILL.md +129 -0
- package/skills/config-validator/SKILL.md +200 -0
- package/skills/containerization-pro/SKILL.md +497 -0
- package/skills/context-engineering-pro/SKILL.md +136 -0
- package/skills/create-design-md/SKILL.md +167 -0
- package/skills/critique/SKILL.md +154 -0
- package/skills/csharp-developer/SKILL.md +553 -0
- package/skills/data-validation-schemas/SKILL.md +372 -0
- package/skills/database-design/SKILL.md +294 -0
- package/skills/database-design/scripts/schema_validator.py +172 -0
- package/skills/delight/SKILL.md +121 -0
- package/skills/deployment-procedures/SKILL.md +207 -0
- package/skills/design-lab/SKILL.md +117 -0
- package/skills/devops-engineer/SKILL.md +380 -0
- package/skills/devops-incident-responder/SKILL.md +178 -0
- package/skills/diagnosing-bugs/SKILL.md +247 -0
- package/skills/distill/SKILL.md +120 -0
- package/skills/documentation-templates/SKILL.md +326 -0
- package/skills/domain-modeling/SKILL.md +136 -0
- package/skills/duckdb-analytical-sql/SKILL.md +125 -0
- package/skills/edge-ai-mobile/SKILL.md +116 -0
- package/skills/edge-computing/SKILL.md +218 -0
- package/skills/emil-design-eng/SKILL.md +209 -0
- package/skills/error-resilience/SKILL.md +478 -0
- package/skills/expo-router-v4/SKILL.md +146 -0
- package/skills/extract-design-system/SKILL.md +195 -0
- package/skills/fabel-protocol/SKILL.md +352 -0
- package/skills/fixing-accessibility/SKILL.md +162 -0
- package/skills/fixing-metadata/SKILL.md +158 -0
- package/skills/fixing-motion-performance/SKILL.md +153 -0
- package/skills/framer-motion-expert/SKILL.md +312 -0
- package/skills/frontend-design/SKILL.md +178 -0
- package/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/skills/frontend-security-expert/SKILL.md +131 -0
- package/skills/game-design-expert/SKILL.md +167 -0
- package/skills/game-engineering-expert/SKILL.md +183 -0
- package/skills/generative-ui-expert/SKILL.md +175 -0
- package/skills/geo-fundamentals/SKILL.md +183 -0
- package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/skills/git-pro/SKILL.md +476 -0
- package/skills/github-operations/SKILL.md +370 -0
- package/skills/gpt-taste/SKILL.md +125 -0
- package/skills/gsap-core/SKILL.md +352 -0
- package/skills/gsap-frameworks/SKILL.md +243 -0
- package/skills/gsap-performance/SKILL.md +169 -0
- package/skills/gsap-plugins/SKILL.md +516 -0
- package/skills/gsap-react/SKILL.md +288 -0
- package/skills/gsap-scrolltrigger/SKILL.md +387 -0
- package/skills/gsap-timeline/SKILL.md +197 -0
- package/skills/gsap-utils/SKILL.md +374 -0
- package/skills/harden/SKILL.md +130 -0
- package/skills/harness-protocol/SKILL.md +115 -0
- package/skills/i18n-localization/SKILL.md +209 -0
- package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/skills/impeccable/SKILL.md +127 -0
- package/skills/improve-codebase-architecture/SKILL.md +123 -0
- package/skills/improve-ui/SKILL.md +145 -0
- package/skills/intelligent-routing/SKILL.md +283 -0
- package/skills/knowledge-graph/SKILL.md +146 -0
- package/skills/landing-page/SKILL.md +140 -0
- package/skills/lint-and-validate/SKILL.md +299 -0
- package/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/skills/llm-engineering/SKILL.md +435 -0
- package/skills/local-first/SKILL.md +213 -0
- package/skills/local-first-architecture/SKILL.md +137 -0
- package/skills/lottie-animation/SKILL.md +137 -0
- package/skills/marquee-loop/SKILL.md +147 -0
- package/skills/masked-reveal/SKILL.md +305 -0
- package/skills/mcp-builder/SKILL.md +180 -0
- package/skills/micro-interaction/SKILL.md +321 -0
- package/skills/mobile-design/SKILL.md +320 -0
- package/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/skills/monorepo-management/SKILL.md +370 -0
- package/skills/morphing-icons/SKILL.md +423 -0
- package/skills/motion-engineering/SKILL.md +272 -0
- package/skills/nextjs-react-expert/SKILL.md +293 -0
- package/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/skills/nodejs-best-practices/SKILL.md +617 -0
- package/skills/observability/SKILL.md +378 -0
- package/skills/opentelemetry-observability/SKILL.md +125 -0
- package/skills/page-transition-animation/SKILL.md +161 -0
- package/skills/parallel-agents/SKILL.md +185 -0
- package/skills/performance-profiling/SKILL.md +305 -0
- package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/skills/plan-writing/SKILL.md +202 -0
- package/skills/platform-engineer/SKILL.md +183 -0
- package/skills/platform-engineering-opentofu/SKILL.md +133 -0
- package/skills/playwright-ai-e2e/SKILL.md +126 -0
- package/skills/playwright-best-practices/SKILL.md +224 -0
- package/skills/polish/SKILL.md +114 -0
- package/skills/powershell-windows/SKILL.md +197 -0
- package/skills/pricing-page/SKILL.md +123 -0
- package/skills/product-aware-heuristics/SKILL.md +465 -0
- package/skills/progressive-blur/SKILL.md +155 -0
- package/skills/project-idioms/SKILL.md +166 -0
- package/skills/property-based-testing/SKILL.md +124 -0
- package/skills/python-patterns/SKILL.md +295 -0
- package/skills/python-pro/SKILL.md +380 -0
- package/skills/quieter/SKILL.md +124 -0
- package/skills/react-doctor/SKILL.md +126 -0
- package/skills/react-specialist/SKILL.md +355 -0
- package/skills/readme-builder/SKILL.md +345 -0
- package/skills/realtime-patterns/SKILL.md +358 -0
- package/skills/red-team-tactics/SKILL.md +266 -0
- package/skills/redesign-skill/SKILL.md +121 -0
- package/skills/review-animations/SKILL.md +120 -0
- package/skills/review-animations/STANDARDS.md +87 -0
- package/skills/rust-pro/SKILL.md +727 -0
- package/skills/seo-fundamentals/SKILL.md +214 -0
- package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/skills/server-management/SKILL.md +253 -0
- package/skills/shadcn-ui-expert/SKILL.md +271 -0
- package/skills/shape/SKILL.md +131 -0
- package/skills/skill-creator/SKILL.md +136 -0
- package/skills/soft-skill/SKILL.md +128 -0
- package/skills/sounds-on-the-web/SKILL.md +151 -0
- package/skills/sql-pro/SKILL.md +699 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +132 -0
- package/skills/svg-animation/SKILL.md +431 -0
- package/skills/swiftui-expert/SKILL.md +239 -0
- package/skills/swiss-design/SKILL.md +119 -0
- package/skills/system-design-pro/SKILL.md +393 -0
- package/skills/systematic-debugging/SKILL.md +198 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/tailwind-patterns/SKILL.md +658 -0
- package/skills/taste-skill/SKILL.md +127 -0
- package/skills/tdd-workflow/SKILL.md +179 -0
- package/skills/test-result-analyzer/SKILL.md +345 -0
- package/skills/testing-patterns/SKILL.md +609 -0
- package/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
- package/skills/thinking-protocol/SKILL.md +97 -0
- package/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
- package/skills/transitions-dev/SKILL.md +165 -0
- package/skills/trend-researcher/SKILL.md +273 -0
- package/skills/typescript-advanced/SKILL.md +381 -0
- package/skills/typeset/SKILL.md +135 -0
- package/skills/ui-reasoning-engine/SKILL.md +230 -0
- package/skills/ui-skill-packs/SKILL.md +132 -0
- package/skills/ui-skills-root/SKILL.md +144 -0
- package/skills/ui-ux-pro-max/SKILL.md +185 -0
- package/skills/ui-ux-researcher/SKILL.md +274 -0
- package/skills/vector-search-pgvector/SKILL.md +144 -0
- package/skills/verification-before-completion/SKILL.md +178 -0
- package/skills/vue-expert/SKILL.md +334 -0
- package/skills/vulnerability-scanner/SKILL.md +453 -0
- package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/skills/web-accessibility-auditor/SKILL.md +254 -0
- package/skills/web-design-guidelines/SKILL.md +124 -0
- package/skills/web-quality-audit/SKILL.md +122 -0
- package/skills/webapp-testing/SKILL.md +203 -0
- package/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/skills/webgpu-performance/SKILL.md +163 -0
- package/skills/whimsy-injector/SKILL.md +380 -0
- package/skills/workflow-optimizer/SKILL.md +263 -0
- package/skills/zero-trust-passkeys/SKILL.md +156 -0
- package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
- package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
- package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
- package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
- package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
- package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* package-cores.js — Automates bundling of @tribunal-kit/core-* platform npm packages.
|
|
4
|
+
*
|
|
5
|
+
* Reads npm/core-template/package.json and generates platform-specific packages
|
|
6
|
+
* for Darwin, Linux, and Windows (x64 and arm64).
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* node scripts/package-cores.js # Generate package directories
|
|
10
|
+
* node scripts/package-cores.js --pack # Run npm pack in each generated package
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
|
+
const fs = require('fs');
|
|
16
|
+
const path = require('path');
|
|
17
|
+
const { execSync } = require('child_process');
|
|
18
|
+
|
|
19
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
20
|
+
const TEMPLATE_PKG = path.join(ROOT, 'npm', 'core-template', 'package.json');
|
|
21
|
+
const OUTPUT_DIR = path.join(ROOT, 'npm', 'packages');
|
|
22
|
+
const PKG = require(path.join(ROOT, 'package.json'));
|
|
23
|
+
const VERSION = PKG.version;
|
|
24
|
+
|
|
25
|
+
const PLATFORMS = [
|
|
26
|
+
{ platform: 'darwin', arch: 'arm64', ext: '', rustTarget: 'aarch64-apple-darwin' },
|
|
27
|
+
{ platform: 'darwin', arch: 'x64', ext: '', rustTarget: 'x86_64-apple-darwin' },
|
|
28
|
+
{ platform: 'linux', arch: 'arm64', ext: '', rustTarget: 'aarch64-unknown-linux-gnu' },
|
|
29
|
+
{ platform: 'linux', arch: 'x64', ext: '', rustTarget: 'x86_64-unknown-linux-gnu' },
|
|
30
|
+
{ platform: 'win32', arch: 'arm64', ext: '.exe', rustTarget: 'aarch64-pc-windows-msvc' },
|
|
31
|
+
{ platform: 'win32', arch: 'x64', ext: '.exe', rustTarget: 'x86_64-pc-windows-msvc' },
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
function ensureDir(dir) {
|
|
35
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function findBinary(platform, ext, rustTarget) {
|
|
39
|
+
const binaryName = `tribunal-core${ext}`;
|
|
40
|
+
const candidates = [
|
|
41
|
+
path.join(ROOT, 'target', rustTarget, 'release', binaryName),
|
|
42
|
+
path.join(ROOT, 'target', 'release', binaryName),
|
|
43
|
+
path.join(ROOT, `tribunal-core-${platform}-${rustTarget.includes('arm64') || rustTarget.includes('aarch64') ? 'arm64' : 'x64'}${ext}`),
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
for (const cand of candidates) {
|
|
47
|
+
if (fs.existsSync(cand)) return cand;
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function buildPackages(shouldPack = false) {
|
|
53
|
+
if (!fs.existsSync(TEMPLATE_PKG)) {
|
|
54
|
+
console.error(`Missing template: ${TEMPLATE_PKG}`);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const templateRaw = fs.readFileSync(TEMPLATE_PKG, 'utf8');
|
|
59
|
+
ensureDir(OUTPUT_DIR);
|
|
60
|
+
|
|
61
|
+
console.log(`\n 🔱 Packaging Tribunal Core Platform Packages (v${VERSION})\n`);
|
|
62
|
+
|
|
63
|
+
for (const target of PLATFORMS) {
|
|
64
|
+
const pkgName = `core-${target.platform}-${target.arch}`;
|
|
65
|
+
const pkgDir = path.join(OUTPUT_DIR, pkgName);
|
|
66
|
+
const binDir = path.join(pkgDir, 'bin');
|
|
67
|
+
ensureDir(binDir);
|
|
68
|
+
|
|
69
|
+
const pkgContent = templateRaw
|
|
70
|
+
.replace(/\$\{PLATFORM\}/g, target.platform)
|
|
71
|
+
.replace(/\$\{ARCH\}/g, target.arch)
|
|
72
|
+
.replace(/\$\{EXT\}/g, target.ext);
|
|
73
|
+
|
|
74
|
+
const pkgJson = JSON.parse(pkgContent);
|
|
75
|
+
pkgJson.version = VERSION;
|
|
76
|
+
|
|
77
|
+
fs.writeFileSync(path.join(pkgDir, 'package.json'), JSON.stringify(pkgJson, null, 2));
|
|
78
|
+
|
|
79
|
+
// Write README
|
|
80
|
+
fs.writeFileSync(
|
|
81
|
+
path.join(pkgDir, 'README.md'),
|
|
82
|
+
`# @tribunal-kit/${pkgName}\n\nPrecompiled native Rust binary of Tribunal Core for ${target.platform} (${target.arch}).\n`,
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
// Copy binary if available
|
|
86
|
+
const binarySource = findBinary(target.platform, target.ext, target.rustTarget);
|
|
87
|
+
const destBinary = path.join(binDir, `tribunal-core${target.ext}`);
|
|
88
|
+
|
|
89
|
+
if (binarySource && fs.existsSync(binarySource)) {
|
|
90
|
+
fs.copyFileSync(binarySource, destBinary);
|
|
91
|
+
if (target.platform !== 'win32') {
|
|
92
|
+
fs.chmodSync(destBinary, 0o755);
|
|
93
|
+
}
|
|
94
|
+
console.log(` ✓ Built ${pkgName} (with binary)`);
|
|
95
|
+
} else {
|
|
96
|
+
console.log(` ⚠ Built ${pkgName} (staged, binary not found in build tree)`);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (shouldPack) {
|
|
100
|
+
try {
|
|
101
|
+
execSync('npm pack', { cwd: pkgDir, stdio: 'ignore' });
|
|
102
|
+
console.log(` ↳ Packed .tgz`);
|
|
103
|
+
} catch (e) {
|
|
104
|
+
console.error(` ↳ Failed to pack: ${e.message}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
console.log(`\n ✓ Generated 6 platform packages in ${OUTPUT_DIR}\n`);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const isPack = process.argv.includes('--pack');
|
|
113
|
+
buildPackages(isPack);
|
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* skill_enhancement_engine.js — State-of-the-Art Skill Enhancement Engine
|
|
4
|
+
*
|
|
5
|
+
* Transforms SKILL.md definitions into autonomous, production-grade execution engines.
|
|
6
|
+
* Implements the 18-section architectural framework:
|
|
7
|
+
* 1. Objective Layer & High-Impact Mission
|
|
8
|
+
* 2. Input Intelligence Layer
|
|
9
|
+
* 3. Task Decomposition Layer
|
|
10
|
+
* 4. Multi-Pass Execution Protocol (Pass 1-7)
|
|
11
|
+
* 5. Domain Technical Reference Architecture
|
|
12
|
+
* 6. Edge-Case Engine Matrix
|
|
13
|
+
* 7. Self-Critique & Anti-Hallucination Traps
|
|
14
|
+
* 8. Tribunal Integration & Evidence-based VBC
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* node scripts/skill_enhancement_engine.js --validate
|
|
18
|
+
* node scripts/skill_enhancement_engine.js --skill <name> --fix
|
|
19
|
+
* node scripts/skill_enhancement_engine.js --domain <domain> --fix
|
|
20
|
+
* node scripts/skill_enhancement_engine.js --all --dry-run
|
|
21
|
+
* node scripts/skill_enhancement_engine.js --all --fix --sync-to-root
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
const fs = require('fs');
|
|
25
|
+
const path = require('path');
|
|
26
|
+
|
|
27
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
28
|
+
const SKILLS_DIR = path.join(ROOT, '.agent', 'skills');
|
|
29
|
+
const WORKSPACE_ROOT = path.resolve(ROOT, '..');
|
|
30
|
+
const ROOT_SKILLS_DIR = path.join(WORKSPACE_ROOT, '.agent', 'skills');
|
|
31
|
+
const TOPIC_MAP_PATH = path.join(ROOT, '.agent', 'skill_topic_map.json');
|
|
32
|
+
|
|
33
|
+
const ARGS = process.argv.slice(2);
|
|
34
|
+
const DRY_RUN = ARGS.includes('--dry-run');
|
|
35
|
+
const FIX = ARGS.includes('--fix');
|
|
36
|
+
const SYNC_TO_ROOT = ARGS.includes('--sync-to-root');
|
|
37
|
+
|
|
38
|
+
const skillArgIdx = ARGS.indexOf('--skill');
|
|
39
|
+
const TARGET_SKILL = skillArgIdx !== -1 && ARGS[skillArgIdx + 1] ? ARGS[skillArgIdx + 1] : null;
|
|
40
|
+
|
|
41
|
+
const domainArgIdx = ARGS.indexOf('--domain');
|
|
42
|
+
const TARGET_DOMAIN = domainArgIdx !== -1 && ARGS[domainArgIdx + 1] ? ARGS[domainArgIdx + 1] : null;
|
|
43
|
+
|
|
44
|
+
// Domain mapping & Active Reviewers
|
|
45
|
+
let domainRoutes = {};
|
|
46
|
+
if (fs.existsSync(TOPIC_MAP_PATH)) {
|
|
47
|
+
try {
|
|
48
|
+
const raw = JSON.parse(fs.readFileSync(TOPIC_MAP_PATH, 'utf8'));
|
|
49
|
+
domainRoutes = raw.domain_routes || {};
|
|
50
|
+
} catch (e) {
|
|
51
|
+
console.warn(`[WARN] Failed to load skill_topic_map.json: ${e.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function getSkillDomain(skillName) {
|
|
56
|
+
for (const [domain, list] of Object.entries(domainRoutes)) {
|
|
57
|
+
if (list.includes(skillName)) return domain;
|
|
58
|
+
}
|
|
59
|
+
if (skillName.includes('anim') || skillName.includes('motion') || skillName.includes('gsap')) return 'motion';
|
|
60
|
+
if (skillName.includes('react') || skillName.includes('ui') || skillName.includes('css') || skillName.includes('design')) return 'frontend';
|
|
61
|
+
if (skillName.includes('sql') || skillName.includes('db') || skillName.includes('data')) return 'database';
|
|
62
|
+
if (skillName.includes('security') || skillName.includes('audit') || skillName.includes('vulnerab')) return 'security';
|
|
63
|
+
if (skillName.includes('test') || skillName.includes('qa')) return 'testing';
|
|
64
|
+
if (skillName.includes('devops') || skillName.includes('ci') || skillName.includes('cloud') || skillName.includes('bash')) return 'devops';
|
|
65
|
+
if (skillName.includes('mobile') || skillName.includes('swift') || skillName.includes('expo')) return 'mobile';
|
|
66
|
+
if (skillName.includes('api') || skillName.includes('python') || skillName.includes('rust') || skillName.includes('backend')) return 'backend';
|
|
67
|
+
return 'meta';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const DOMAIN_REVIEWERS = {
|
|
71
|
+
frontend: ['frontend-reviewer', 'type-safety', 'ui-ux-auditor', 'complexity-reviewer'],
|
|
72
|
+
motion: ['frontend-reviewer', 'motion-reviewer', 'ui-ux-auditor'],
|
|
73
|
+
backend: ['logic-reviewer', 'security-auditor', 'api-architect', 'resilience-reviewer'],
|
|
74
|
+
database: ['database-architect', 'sql-pro', 'security-auditor', 'schema-validator'],
|
|
75
|
+
security: ['security-auditor', 'penetration-tester', 'backend-security-expert'],
|
|
76
|
+
devops: ['pipeline-reviewer', 'devops-engineer', 'resilience-reviewer'],
|
|
77
|
+
testing: ['test-engineer', 'qa-automation-engineer', 'logic-reviewer'],
|
|
78
|
+
mobile: ['mobile-reviewer', 'frontend-reviewer', 'type-safety'],
|
|
79
|
+
meta: ['orchestrator', 'agent-organizer', 'logic-reviewer'],
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const DOMAIN_PREFLIGHT = {
|
|
83
|
+
frontend: [
|
|
84
|
+
'✅ Are all component props strictly typed with zero implicit "any"?',
|
|
85
|
+
'✅ Are responsive breakpoints, fluid typography, and optical balance verified?',
|
|
86
|
+
'✅ Is accessibility (ARIA labels, keyboard focus, contrast) validated?',
|
|
87
|
+
'✅ Are re-renders minimized and state lifecycles cleanly separated?',
|
|
88
|
+
'✅ Did I verify all imported UI components and icon sets actually exist?',
|
|
89
|
+
],
|
|
90
|
+
motion: [
|
|
91
|
+
'✅ Does animation maintain 60fps/120fps using transform and opacity?',
|
|
92
|
+
'✅ Is optical mass conserved across state interpolations without volume collapse?',
|
|
93
|
+
'✅ Is duration capped within micro-interaction budgets (160ms–280ms)?',
|
|
94
|
+
'✅ Is prefers-reduced-motion respected with graceful instant fallbacks?',
|
|
95
|
+
'✅ Did I prevent layout thrashing and continuous geometry mutations?',
|
|
96
|
+
],
|
|
97
|
+
backend: [
|
|
98
|
+
'✅ Are all inputs and boundary payloads validated against schemas (Zod/Pydantic)?',
|
|
99
|
+
'✅ Are SQL and database queries parameterized with zero string concatenation?',
|
|
100
|
+
'✅ Are error boundaries and timeout/retry policies explicitly declared?',
|
|
101
|
+
'✅ Are authentication checks performed before business logic execution?',
|
|
102
|
+
'✅ Did I verify that imported dependencies exist in package.json/requirements.txt?',
|
|
103
|
+
],
|
|
104
|
+
database: [
|
|
105
|
+
'✅ Are all queries parameterized against SQL injection vulnerabilities?',
|
|
106
|
+
'✅ Are indexes defined for all foreign keys, joins, and filtered query clauses?',
|
|
107
|
+
'✅ Are transactions wrapped atomically with rollbacks on failure?',
|
|
108
|
+
'✅ Are migration scripts backwards-compatible (expand-and-contract pattern)?',
|
|
109
|
+
'✅ Did I verify column names against active schema definitions?',
|
|
110
|
+
],
|
|
111
|
+
security: [
|
|
112
|
+
'✅ Are user inputs sanitized and treated as untrusted at system boundaries?',
|
|
113
|
+
'✅ Are secrets loaded strictly via environment variables with zero hardcoding?',
|
|
114
|
+
'✅ Is least-privilege enforcement active on APIs, tokens, and storage buckets?',
|
|
115
|
+
'✅ Are prompt-injection delimiters and sanitizers wrapped around LLM inputs?',
|
|
116
|
+
'✅ Did I verify encryption in transit and at rest for sensitive customer data?',
|
|
117
|
+
],
|
|
118
|
+
devops: [
|
|
119
|
+
'✅ Are strict execution modes (set -euo pipefail) active on all scripts?',
|
|
120
|
+
'✅ Are container images pinned to digest/immutable tags instead of "latest"?',
|
|
121
|
+
'✅ Are deployment health checks and rollback baselines configured?',
|
|
122
|
+
'✅ Are CI secrets masked and unexposed to untrusted pull requests?',
|
|
123
|
+
'✅ Did I verify environment compatibility across target runtimes?',
|
|
124
|
+
],
|
|
125
|
+
testing: [
|
|
126
|
+
'✅ Do tests follow behavioral GIVEN/WHEN/THEN specifications?',
|
|
127
|
+
'✅ Are happy path, failure paths, and boundary conditions (0, null, max) covered?',
|
|
128
|
+
'✅ Are test mocks isolated and reset between successive suites?',
|
|
129
|
+
'✅ Do E2E locators rely on stable ARIA attributes instead of brittle CSS selectors?',
|
|
130
|
+
'✅ Did I verify test suite passes without flaky race conditions?',
|
|
131
|
+
],
|
|
132
|
+
mobile: [
|
|
133
|
+
'✅ Do touch targets satisfy the 44x44px minimum touch boundary standard?',
|
|
134
|
+
'✅ Are gesture handlers and native thread animations offloaded via Reanimated?',
|
|
135
|
+
'✅ Are keyboard avoiding views, safe areas, and notch offsets handled?',
|
|
136
|
+
'✅ Is offline storage and state hydration handled with optimistic sync?',
|
|
137
|
+
'✅ Did I verify compatibility across iOS, Android, and varying densities?',
|
|
138
|
+
],
|
|
139
|
+
meta: [
|
|
140
|
+
'✅ Did I deconstruct the root objective before proposing architecture?',
|
|
141
|
+
'✅ Did I identify dependencies, bottlenecks, and parallelizable sub-tasks?',
|
|
142
|
+
'✅ Did I avoid over-engineering and select the simplest effective pattern?',
|
|
143
|
+
'✅ Did I verify assumptions with concrete file reads instead of speculation?',
|
|
144
|
+
'✅ Did I establish measurable verification criteria before completion?',
|
|
145
|
+
],
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const DOMAIN_TRAPS = {
|
|
149
|
+
frontend: [
|
|
150
|
+
{ trope: 'Uncontrolled Re-render Loop', bad: 'Mutating state inside render bodies or omitting hook dependencies', good: 'Wrap effects with explicit deps and isolate reactive derivations in useMemo' },
|
|
151
|
+
{ trope: 'Accessibility Neglect', bad: 'Interactive <div> without role="button", tabIndex, or onKeyDown', good: 'Use semantic <button> or provide ARIA role, keyboard handlers, and focus ring' },
|
|
152
|
+
{ trope: 'Layout Shift Flash', bad: 'Images/dynamic content without aspect-ratio or explicit dimensions', good: 'Enforce aspect-ratio or skeleton placeholders to guarantee zero CLS' },
|
|
153
|
+
],
|
|
154
|
+
motion: [
|
|
155
|
+
{ trope: 'The Instant Pop Trap', bad: 'Conditionally unmounting elements without animated interpolation', good: 'Use AnimatePresence or coordinate morphs with continuous geometry' },
|
|
156
|
+
{ trope: 'Layout Thrashing', bad: 'Animating width, height, top, or left inside animation loops', good: 'Animate composite-only transform (translate3d, scale) and opacity' },
|
|
157
|
+
{ trope: 'Sluggish Duration', bad: 'Setting micro-interaction transitions to 600ms+ causing interface lag', good: 'Cap interactive feedback at 160ms–240ms with snappy ease-out curves' },
|
|
158
|
+
],
|
|
159
|
+
backend: [
|
|
160
|
+
{ trope: 'Unchecked Payload Cast', bad: 'Casting request bodies to TypeScript types without runtime schema validation', good: 'Parse request payloads through Zod/Pydantic schemas before business logic' },
|
|
161
|
+
{ trope: 'Silent Error Swallowing', bad: 'Catching errors with empty catch blocks or logging without rethrowing', good: 'Propagate structured errors with status codes and contextual stack traces' },
|
|
162
|
+
{ trope: 'Unparameterized Query', bad: 'Concatenating user inputs into SQL/Prisma query strings', good: 'Always use parameterized bindings or type-safe ORM query builders' },
|
|
163
|
+
],
|
|
164
|
+
database: [
|
|
165
|
+
{ trope: 'Full Table Scan Blindspot', bad: 'Querying high-cardinality tables without index coverage', good: 'Verify query plans with EXPLAIN ANALYZE and add composite B-Tree indexes' },
|
|
166
|
+
{ trope: 'Non-Atomic Batch Mutation', bad: 'Executing multiple related DB writes sequentially without transaction wrapper', good: 'Wrap multi-table updates in an atomic transaction with automatic rollback' },
|
|
167
|
+
{ trope: 'Destructive Schema Migration', bad: 'Dropping or renaming columns in production without multi-phase migration', good: 'Use expand-and-contract: add new column, sync data, migrate callers, drop old' },
|
|
168
|
+
],
|
|
169
|
+
security: [
|
|
170
|
+
{ trope: 'Hardcoded Secret Pattern', bad: 'Committing API keys, tokens, or private salts into source code', good: 'Load credentials strictly via runtime environment variables and secret stores' },
|
|
171
|
+
{ trope: 'Prompt Injection Surface', bad: 'Directly concatenating untrusted user input into LLM system prompts', good: 'Wrap user content in isolated delimiters and strip injection control sequences' },
|
|
172
|
+
{ trope: 'Missing Authorization Check', bad: 'Relying only on authentication token presence without checking tenant/object RBAC', good: 'Verify user permissions against the specific target record ID before mutation' },
|
|
173
|
+
],
|
|
174
|
+
devops: [
|
|
175
|
+
{ trope: 'Silent Pipeline Failure', bad: 'Executing shell steps without set -euo pipefail, ignoring errors', good: 'Always initialize shell scripts with set -euo pipefail and trap handlers' },
|
|
176
|
+
{ trope: 'Unpinned Dependency Shift', bad: 'Installing packages with npm install or using :latest docker tags', good: 'Lock dependencies with npm ci / lockfiles and use immutable SHA256 image digests' },
|
|
177
|
+
{ trope: 'Leaking Build Secrets', bad: 'Passing secrets as Docker build arguments baked into image layers', good: 'Use Docker BuildKit secret mounts (--mount=type=secret) or runtime injection' },
|
|
178
|
+
],
|
|
179
|
+
testing: [
|
|
180
|
+
{ trope: 'Testing Implementation Details', bad: 'Asserting on private component state or internal helper functions', good: 'Assert on observable user behaviors, DOM roles, and network outcomes' },
|
|
181
|
+
{ trope: 'Flaky Async Assertion', bad: 'Using arbitrary setTimeout delays before asserting on asynchronous state', good: 'Use waitFor or findBy queries that poll with timeout bounds' },
|
|
182
|
+
{ trope: 'Shared Mutable State', bad: 'Reusing database records across concurrent test runners', good: 'Isolate test databases per worker or execute in rolled-back transactions' },
|
|
183
|
+
],
|
|
184
|
+
mobile: [
|
|
185
|
+
{ trope: 'JS Thread Animation Lag', bad: 'Driving gestures and scrolling physics on the React Native JS thread', good: 'Use React Native Reanimated worklets running directly on the UI thread' },
|
|
186
|
+
{ trope: 'Missing Keyboard Offset', bad: 'Forms hidden behind native software keyboard on iOS/Android', good: 'Wrap form views in KeyboardAvoidingView with platform-calibrated behavior' },
|
|
187
|
+
{ trope: 'Uncached Image Flooding', bad: 'Rendering raw image URLs in list items without memory caching', good: 'Use FastImage or Expo Image with disk cache policies and thumbnail previews' },
|
|
188
|
+
],
|
|
189
|
+
meta: [
|
|
190
|
+
{ trope: 'Hallucinated Tool Capabilities', bad: 'Assuming an external library or CLI command exists without verification', good: 'Run a verification check or verify package.json before referencing tools' },
|
|
191
|
+
{ trope: 'Premature Completion Claim', bad: 'Declaring a task finished because code was generated without verification', good: 'Execute tests, linters, or terminal commands to provide concrete proof' },
|
|
192
|
+
{ trope: 'Context Bloat Dumping', bad: 'Pasting entire multi-thousand-line files into prompt context', good: 'Extract targeted excerpts, symbols, and signatures to preserve tokens' },
|
|
193
|
+
],
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
function parseFrontmatter(content) {
|
|
197
|
+
if (!content.startsWith('---')) return { frontmatter: null, body: content };
|
|
198
|
+
const endIdx = content.indexOf('\n---', 3);
|
|
199
|
+
if (endIdx === -1) return { frontmatter: null, body: content };
|
|
200
|
+
|
|
201
|
+
const rawYaml = content.slice(4, endIdx).trim();
|
|
202
|
+
const body = content.slice(endIdx + 4).trim();
|
|
203
|
+
const meta = {};
|
|
204
|
+
|
|
205
|
+
const lines = rawYaml.split('\n');
|
|
206
|
+
let currentKey = null;
|
|
207
|
+
let isList = false;
|
|
208
|
+
|
|
209
|
+
for (const line of lines) {
|
|
210
|
+
const trimmed = line.trim();
|
|
211
|
+
if (!trimmed || trimmed.startsWith('#')) continue;
|
|
212
|
+
|
|
213
|
+
const match = line.match(/^([a-zA-Z0-9_-]+):\s*(.*)$/);
|
|
214
|
+
if (match) {
|
|
215
|
+
currentKey = match[1];
|
|
216
|
+
const val = match[2].trim();
|
|
217
|
+
if (!val) {
|
|
218
|
+
meta[currentKey] = [];
|
|
219
|
+
isList = true;
|
|
220
|
+
} else {
|
|
221
|
+
meta[currentKey] = val;
|
|
222
|
+
isList = false;
|
|
223
|
+
}
|
|
224
|
+
} else if (isList && trimmed.startsWith('-')) {
|
|
225
|
+
const item = trimmed.slice(1).trim().replace(/^['"]|['"]$/g, '');
|
|
226
|
+
if (Array.isArray(meta[currentKey])) {
|
|
227
|
+
meta[currentKey].push(item);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return { frontmatter: rawYaml, meta, body };
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function buildEnhancedSkill(skillName, originalContent) {
|
|
236
|
+
const { frontmatter, meta, body } = parseFrontmatter(originalContent);
|
|
237
|
+
if (!frontmatter) return null;
|
|
238
|
+
|
|
239
|
+
const domain = getSkillDomain(skillName);
|
|
240
|
+
const reviewers = DOMAIN_REVIEWERS[domain] || DOMAIN_REVIEWERS.meta;
|
|
241
|
+
const preflights = DOMAIN_PREFLIGHT[domain] || DOMAIN_PREFLIGHT.meta;
|
|
242
|
+
const traps = DOMAIN_TRAPS[domain] || DOMAIN_TRAPS.meta;
|
|
243
|
+
|
|
244
|
+
// Extract clean title
|
|
245
|
+
const titleMatch = body.match(/^#\s+(.+)$/m);
|
|
246
|
+
const title = titleMatch ? titleMatch[1].trim() : `${skillName.replace(/-/g, ' ').replace(/\b\w/g, c => c.toUpperCase())} Engineering`;
|
|
247
|
+
|
|
248
|
+
// Extract existing core technical content (excluding legacy footers)
|
|
249
|
+
let coreBody = body;
|
|
250
|
+
// Strip old canonical footers or tribunal blocks
|
|
251
|
+
const footerMarkerRegex = /\n---\s*\n+(\*\*Slash command: `\/review`|## 🏛️ Tribunal Verification & Guardrails|## 🏛️ Tribunal Integration|### ❌ Forbidden AI Tropes|## 🤖 LLM-Specific Traps|AI coding assistants often fall into specific bad habits)[\s\S]*$/;
|
|
252
|
+
coreBody = coreBody.replace(footerMarkerRegex, '').trim();
|
|
253
|
+
|
|
254
|
+
// Strip duplicated titles
|
|
255
|
+
const titleRegex = new RegExp(`^#\\s+${escapeRegex(title)}(\\r?\\n)+`, 'm');
|
|
256
|
+
coreBody = coreBody.replace(titleRegex, '').trim();
|
|
257
|
+
|
|
258
|
+
// Strip duplicate Activation Boundaries if previously inserted
|
|
259
|
+
coreBody = coreBody.replace(/## Activation Boundaries[\s\S]*?(?=\n## |\n---|\n# |$)/g, '').trim();
|
|
260
|
+
coreBody = coreBody.replace(/## Mandatory Pre-Flight Context Inspection[\s\S]*?(?=\n## |\n---|\n# |$)/g, '').trim();
|
|
261
|
+
coreBody = coreBody.replace(/## 🔁 Multi-Pass Execution Protocol[\s\S]*?(?=\n## |\n---|\n# |$)/g, '').trim();
|
|
262
|
+
coreBody = coreBody.replace(/## 🚨 Edge-Case & Failure Mode Matrix[\s\S]*?(?=\n## |\n---|\n# |$)/g, '').trim();
|
|
263
|
+
coreBody = coreBody.replace(/## 🤖 LLM-Specific Traps Table[\s\S]*?(?=\n## |\n---|\n# |$)/g, '').trim();
|
|
264
|
+
coreBody = coreBody.replace(/## 🏛️ Tribunal Verification & Guardrails[\s\S]*$/g, '').trim();
|
|
265
|
+
coreBody = coreBody.replace(/(\n---\s*)+$/, '').trim();
|
|
266
|
+
|
|
267
|
+
// Format frontmatter with SDO trigger guarantee
|
|
268
|
+
let desc = meta.description || `${skillName} mastery.`;
|
|
269
|
+
if (!desc.toLowerCase().startsWith('use when') && !desc.toLowerCase().startsWith('activate when')) {
|
|
270
|
+
desc = `Use when ${desc.replace(/^["']|["']$/g, '')}`;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Ensure scripts-binding
|
|
274
|
+
const scripts = Array.isArray(meta['scripts-binding']) ? meta['scripts-binding'] : ['.agent/scripts/lint_runner.js', '.agent/scripts/verify_all.js'];
|
|
275
|
+
if (!scripts.includes('.agent/scripts/lint_runner.js')) scripts.push('.agent/scripts/lint_runner.js');
|
|
276
|
+
if (!scripts.includes('.agent/scripts/verify_all.js')) scripts.push('.agent/scripts/verify_all.js');
|
|
277
|
+
|
|
278
|
+
const formattedFrontmatter = [
|
|
279
|
+
'---',
|
|
280
|
+
`name: ${skillName}`,
|
|
281
|
+
`description: ${desc}`,
|
|
282
|
+
`version: 5.0.0`,
|
|
283
|
+
`last-updated: 2026-09-13`,
|
|
284
|
+
meta.skills && meta.skills.length ? `skills:\n${meta.skills.map(s => ` - ${s}`).join('\n')}` : null,
|
|
285
|
+
`tools: Read, Grep, Glob, Bash, Edit, Write`,
|
|
286
|
+
`scripts-binding:\n${scripts.map(s => ` - ${s}`).join('\n')}`,
|
|
287
|
+
'---'
|
|
288
|
+
].filter(Boolean).join('\n');
|
|
289
|
+
|
|
290
|
+
// Build the 18-Section Architecture
|
|
291
|
+
const section1_Preflight = `## Mandatory Pre-Flight Context Inspection
|
|
292
|
+
|
|
293
|
+
Before generating, refactoring, or reviewing code in the \`${skillName}\` domain, inspect these 5 critical parameters:
|
|
294
|
+
|
|
295
|
+
1. **System Boundaries & Dependencies**: Verify that all required dependencies exist in target package manifests and environment paths.
|
|
296
|
+
2. **Runtime Context & Platform Invariants**: Confirm target platform constraints (Node.js, Browser, Mobile OS, Edge runtime) before applying APIs.
|
|
297
|
+
3. **Execution Guardrails**: Identify potential side-effects, state mutations, and unhandled asynchronous exceptions.
|
|
298
|
+
4. **Validation & Type Contracts**: Validate input data schemas and strict type constraints across all module interfaces.
|
|
299
|
+
5. **Observability & Proof of Execution**: Ensure execution produces tangible verification signals (terminal output, tests, metrics).`;
|
|
300
|
+
|
|
301
|
+
const section2_Boundaries = `## Activation Boundaries
|
|
302
|
+
|
|
303
|
+
- **Activate when:** ${desc}
|
|
304
|
+
- **DO NOT activate when:** The task falls outside the \`${skillName}\` domain or is managed by a different dedicated specialist.`;
|
|
305
|
+
|
|
306
|
+
const section3_ExecutionProtocol = `## 🔁 Multi-Pass Execution Protocol
|
|
307
|
+
|
|
308
|
+
Execute all non-trivial tasks through this 7-pass cognitive loop:
|
|
309
|
+
|
|
310
|
+
| Pass | Phase | Core Action |
|
|
311
|
+
|:---|:---|:---|
|
|
312
|
+
| **Pass 1** | **Understand** | Deconstruct the user's explicit objective, implicit requirements, and platform constraints. |
|
|
313
|
+
| **Pass 2** | **Plan** | Decompose the task into smallest logical steps; map dependencies and required tool calls. |
|
|
314
|
+
| **Pass 3** | **Execute** | Implement the solution with production-grade craft, zero placeholders, and strict typing. |
|
|
315
|
+
| **Pass 4** | **Verify** | Run linters, unit tests, or compiler checks to validate structural correctness. |
|
|
316
|
+
| **Pass 5** | **Attack** | Perform an adversarial review searching for edge-case failures, race conditions, and traps. |
|
|
317
|
+
| **Pass 6** | **Improve** | Eliminate discovered friction, optimize performance, and harden error boundaries. |
|
|
318
|
+
| **Pass 7** | **Quality Gate** | Enforce Verification-Before-Completion (VBC) with concrete terminal proof before finalizing. |`;
|
|
319
|
+
|
|
320
|
+
const section4_EdgeCases = `## 🚨 Edge-Case & Failure Mode Matrix
|
|
321
|
+
|
|
322
|
+
| Scenario | Risk | Mitigation Strategy |
|
|
323
|
+
|:---|:---|:---|
|
|
324
|
+
| **Empty or Null Inputs** | Unhandled exception or unexpected rendering collapse | Enforce fallback guards, optional chaining, and explicit empty state handlers |
|
|
325
|
+
| **Network Timeout / Latency** | Hanging operations or duplicate side-effects | Implement bounded abort controllers, exponential backoff, and idempotency keys |
|
|
326
|
+
| **Concurrency / Race Conditions** | Stale state overwrite or inconsistent data mutations | Use atomic transactions, mutex locking, or cancel-on-resubmit controls |
|
|
327
|
+
| **Invalid Schema / Malformed Payload** | Downstream runtime errors or security injection | Validate boundary payloads with Zod/Pydantic schemas prior to execution |
|
|
328
|
+
| **Resource / Memory Saturation** | OOM errors, frame drops, or memory leaks | Clean up listeners, cancel active timers, and enforce pagination/virtualization |`;
|
|
329
|
+
|
|
330
|
+
const section5_Traps = `## 🤖 LLM-Specific Traps Table
|
|
331
|
+
|
|
332
|
+
| Anti-Pattern | What AI Commonly Does Wrong | What Is Actually Correct |
|
|
333
|
+
|:---|:---|:---|
|
|
334
|
+
${traps.map(t => `| **${t.trope}** | ${t.bad} | ${t.good} |`).join('\n')}`;
|
|
335
|
+
|
|
336
|
+
const section6_Tribunal = `## 🏛️ Tribunal Verification & Guardrails
|
|
337
|
+
|
|
338
|
+
**Active Reviewers:** ${reviewers.map(r => `\`${r}\``).join(' · ')}
|
|
339
|
+
**Slash Command:** \`/review\` or \`/tribunal-full\`
|
|
340
|
+
|
|
341
|
+
### ✅ Pre-Flight Self-Audit Checklist
|
|
342
|
+
|
|
343
|
+
\`\`\`
|
|
344
|
+
${preflights.join('\n')}
|
|
345
|
+
\`\`\`
|
|
346
|
+
|
|
347
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
348
|
+
|
|
349
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
350
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
351
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing test suites, compiler success, or equivalent operational proof) that your output works as intended.`;
|
|
352
|
+
|
|
353
|
+
// Assemble the complete enhanced document
|
|
354
|
+
const enhancedContent = `${formattedFrontmatter}
|
|
355
|
+
|
|
356
|
+
# ${title}
|
|
357
|
+
|
|
358
|
+
${section1_Preflight}
|
|
359
|
+
|
|
360
|
+
${section2_Boundaries}
|
|
361
|
+
|
|
362
|
+
${section3_ExecutionProtocol}
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
367
|
+
|
|
368
|
+
${coreBody}
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
${section4_EdgeCases}
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
${section5_Traps}
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
${section6_Tribunal}
|
|
381
|
+
`;
|
|
382
|
+
|
|
383
|
+
return enhancedContent.trim() + '\n';
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
function escapeRegex(string) {
|
|
387
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
function run() {
|
|
391
|
+
if (!fs.existsSync(SKILLS_DIR)) {
|
|
392
|
+
console.error(`✖ Skills directory not found: ${SKILLS_DIR}`);
|
|
393
|
+
process.exit(1);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
const entries = fs.readdirSync(SKILLS_DIR, { withFileTypes: true });
|
|
397
|
+
let skillDirs = entries.filter(e => e.isDirectory()).map(e => e.name);
|
|
398
|
+
|
|
399
|
+
if (TARGET_SKILL) {
|
|
400
|
+
skillDirs = skillDirs.filter(s => s.toLowerCase() === TARGET_SKILL.toLowerCase());
|
|
401
|
+
if (skillDirs.length === 0) {
|
|
402
|
+
console.error(`✖ Skill not found: ${TARGET_SKILL}`);
|
|
403
|
+
process.exit(1);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
if (TARGET_DOMAIN) {
|
|
408
|
+
const domainSkills = domainRoutes[TARGET_DOMAIN] || [];
|
|
409
|
+
skillDirs = skillDirs.filter(s => domainSkills.includes(s));
|
|
410
|
+
console.log(`Filtering for domain: ${TARGET_DOMAIN} (${skillDirs.length} skills found)`);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
console.log(`\n🚀 State-of-the-Art Skill Enhancement Engine`);
|
|
414
|
+
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
415
|
+
console.log(`Target Skills: ${skillDirs.length}`);
|
|
416
|
+
console.log(`Execution Mode: ${DRY_RUN ? 'DRY RUN (preview only)' : FIX ? 'FIX (writing changes)' : 'VALIDATE ONLY'}`);
|
|
417
|
+
console.log(`Sync to Root: ${SYNC_TO_ROOT ? 'YES' : 'NO'}\n`);
|
|
418
|
+
|
|
419
|
+
let enhancedCount = 0;
|
|
420
|
+
let skippedCount = 0;
|
|
421
|
+
let errorCount = 0;
|
|
422
|
+
|
|
423
|
+
for (const skillName of skillDirs) {
|
|
424
|
+
const skillPath = path.join(SKILLS_DIR, skillName, 'SKILL.md');
|
|
425
|
+
if (!fs.existsSync(skillPath)) {
|
|
426
|
+
skippedCount++;
|
|
427
|
+
continue;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
try {
|
|
431
|
+
const original = fs.readFileSync(skillPath, 'utf8');
|
|
432
|
+
const enhanced = buildEnhancedSkill(skillName, original);
|
|
433
|
+
|
|
434
|
+
if (!enhanced) {
|
|
435
|
+
console.warn(`⚠️ [SKIP] Could not parse frontmatter in: ${skillName}`);
|
|
436
|
+
skippedCount++;
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
const isModified = original !== enhanced;
|
|
441
|
+
|
|
442
|
+
if (isModified) {
|
|
443
|
+
enhancedCount++;
|
|
444
|
+
if (FIX) {
|
|
445
|
+
fs.writeFileSync(skillPath, enhanced, 'utf8');
|
|
446
|
+
if (SYNC_TO_ROOT && fs.existsSync(ROOT_SKILLS_DIR)) {
|
|
447
|
+
const rootSkillDir = path.join(ROOT_SKILLS_DIR, skillName);
|
|
448
|
+
if (!fs.existsSync(rootSkillDir)) fs.mkdirSync(rootSkillDir, { recursive: true });
|
|
449
|
+
fs.writeFileSync(path.join(rootSkillDir, 'SKILL.md'), enhanced, 'utf8');
|
|
450
|
+
}
|
|
451
|
+
console.log(`✅ [ENHANCED] ${skillName} (v5.0.0, domain: ${getSkillDomain(skillName)})`);
|
|
452
|
+
} else {
|
|
453
|
+
console.log(`🔍 [PENDING] ${skillName} (would enhance)`);
|
|
454
|
+
}
|
|
455
|
+
} else {
|
|
456
|
+
skippedCount++;
|
|
457
|
+
console.log(`⏭️ [IDENTICAL] ${skillName}`);
|
|
458
|
+
}
|
|
459
|
+
} catch (err) {
|
|
460
|
+
errorCount++;
|
|
461
|
+
console.error(`✖ [ERROR] Failed processing ${skillName}: ${err.message}`);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
console.log(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
466
|
+
console.log(`Total Examined: ${skillDirs.length}`);
|
|
467
|
+
console.log(`Enhanced: ${enhancedCount}`);
|
|
468
|
+
console.log(`Unchanged/Skip: ${skippedCount}`);
|
|
469
|
+
console.log(`Errors: ${errorCount}`);
|
|
470
|
+
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
run();
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* sync-skills.js — Multi-platform skill directory synchronizer.
|
|
4
|
+
*
|
|
5
|
+
* Ensures skills are mirrored into:
|
|
6
|
+
* - skills/ (for universal tools, Claude Code, Cursor, Windsurf, Roo Code)
|
|
7
|
+
* - .agents/skills/ (for OpenAI Codex CLI and multi-agent harnesses)
|
|
8
|
+
* from the canonical source:
|
|
9
|
+
* - .agent/skills/
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
const fs = require('fs');
|
|
15
|
+
const path = require('path');
|
|
16
|
+
|
|
17
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
18
|
+
const CANONICAL_SKILLS = path.join(ROOT, '.agent', 'skills');
|
|
19
|
+
const TARGET_SKILLS = path.join(ROOT, 'skills');
|
|
20
|
+
const TARGET_AGENTS_SKILLS = path.join(ROOT, '.agents', 'skills');
|
|
21
|
+
|
|
22
|
+
function copyDirRecursive(src, dest) {
|
|
23
|
+
if (!fs.existsSync(dest)) {
|
|
24
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
28
|
+
for (const entry of entries) {
|
|
29
|
+
const srcPath = path.join(src, entry.name);
|
|
30
|
+
const destPath = path.join(dest, entry.name);
|
|
31
|
+
|
|
32
|
+
if (entry.isDirectory()) {
|
|
33
|
+
copyDirRecursive(srcPath, destPath);
|
|
34
|
+
} else {
|
|
35
|
+
fs.copyFileSync(srcPath, destPath);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function syncSkills() {
|
|
41
|
+
console.log('\n 🔱 Syncing Tribunal Skills across platform conventions...');
|
|
42
|
+
|
|
43
|
+
if (!fs.existsSync(CANONICAL_SKILLS)) {
|
|
44
|
+
console.error(' ✖ Error: Canonical skills directory .agent/skills not found!');
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
copyDirRecursive(CANONICAL_SKILLS, TARGET_SKILLS);
|
|
49
|
+
console.log(` ✓ Mirrored to ${path.relative(ROOT, TARGET_SKILLS)}/`);
|
|
50
|
+
|
|
51
|
+
copyDirRecursive(CANONICAL_SKILLS, TARGET_AGENTS_SKILLS);
|
|
52
|
+
console.log(` ✓ Mirrored to ${path.relative(ROOT, TARGET_AGENTS_SKILLS)}/`);
|
|
53
|
+
|
|
54
|
+
console.log(' ✔ All skills synchronized.\n');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (require.main === module) {
|
|
58
|
+
syncSkills();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = { syncSkills };
|