tribunal-kit 9.2.7 → 9.2.8
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/data/skill_certification_ledger.jsonl +40 -0
- package/.agent/data/skill_ontology.json +138 -0
- package/.agent/history/architecture-model.json +11656 -4996
- package/.agent/history/architecture-verification.json +9 -37
- package/.agent/routing_index.json +2430 -2069
- package/.agent/scripts/adaptive_execution.js +221 -28
- package/.agent/scripts/architecture_diff.js +303 -303
- package/.agent/scripts/architecture_extractor.js +792 -792
- package/.agent/scripts/architecture_health.js +293 -293
- package/.agent/scripts/architecture_verifier.js +303 -303
- package/.agent/scripts/architecture_visualizer.js +1988 -880
- package/.agent/scripts/blast_radius_engine.js +274 -274
- package/.agent/scripts/capability_evolution.js +102 -0
- package/.agent/scripts/context_broker.js +397 -31
- package/.agent/scripts/corpus_certification_orchestrator.js +502 -0
- package/.agent/scripts/corpus_validation_engine.js +311 -0
- package/.agent/scripts/engineering_memory.js +129 -0
- package/.agent/scripts/final_corpus_validation_engine.js +405 -0
- package/.agent/scripts/intent_extractor.js +130 -0
- package/.agent/scripts/outcome_engine.js +15 -0
- package/.agent/scripts/routing_evaluation_engine.js +184 -0
- package/.agent/scripts/skill_behavior_classifier.js +90 -0
- package/.agent/scripts/skill_behavior_harness.js +105 -0
- package/.agent/scripts/skill_certification_engine.js +586 -0
- package/.agent/scripts/skill_contract_engine.js +424 -0
- package/.agent/scripts/skill_coverage_expansion_engine.js +505 -0
- package/.agent/scripts/skill_evidence_acquisition_engine.js +535 -0
- package/.agent/scripts/skill_evidence_engine.js +83 -0
- package/.agent/scripts/skill_expectation_engine.js +38 -0
- package/.agent/scripts/skill_fixture_engine.js +24 -0
- package/.agent/scripts/skill_human_validation.js +32 -0
- package/.agent/scripts/skill_intelligence.js +89 -160
- package/.agent/scripts/skill_observation_engine.js +25 -0
- package/.agent/scripts/skill_ontology_engine.js +83 -0
- package/.agent/scripts/skill_quality_engine.js +343 -0
- package/.agent/scripts/skill_reconstruction_engine.js +164 -0
- package/.agent/scripts/skill_remediation_engine.js +326 -0
- package/.agent/scripts/skill_scenario_engine.js +108 -0
- package/.agent/scripts/skill_test_authoring_engine.js +1011 -0
- package/.agent/scripts/validation_engine.js +236 -236
- package/.agent/scripts/verification_auditor.js +80 -0
- package/.agent/skill_topic_map.json +301 -301
- package/.agent/skills/12-principles-of-animation/SKILL.md +9 -0
- package/.agent/skills/60fps-animation/SKILL.md +14 -0
- package/.agent/skills/accessible-animation/SKILL.md +9 -0
- package/.agent/skills/adapt/SKILL.md +8 -0
- package/.agent/skills/adr-generation/SKILL.md +9 -0
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +9 -0
- package/.agent/skills/agent-organizer/SKILL.md +8 -0
- package/.agent/skills/agent-syscall-guidelines/SKILL.md +10 -0
- package/.agent/skills/agentic-patterns/SKILL.md +9 -0
- package/.agent/skills/agentic-workflows-2026/SKILL.md +8 -0
- package/.agent/skills/agentshield-security/SKILL.md +16 -0
- package/.agent/skills/ai-app-hardening/SKILL.md +7 -0
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +9 -0
- package/.agent/skills/animation-on-scroll/SKILL.md +9 -0
- package/.agent/skills/animation-systems/SKILL.md +8 -0
- package/.agent/skills/antfu-conventions/SKILL.md +9 -0
- package/.agent/skills/anti-slop-enforcement/SKILL.md +11 -0
- package/.agent/skills/api-patterns/SKILL.md +9 -0
- package/.agent/skills/api-security-auditor/SKILL.md +10 -0
- package/.agent/skills/app-builder/SKILL.md +8 -0
- package/.agent/skills/appflow-wireframe/SKILL.md +9 -0
- package/.agent/skills/apple-design/SKILL.md +8 -0
- package/.agent/skills/architecture/SKILL.md +8 -0
- package/.agent/skills/architecture-drift/SKILL.md +9 -0
- package/.agent/skills/architecture-intelligence/SKILL.md +17 -0
- package/.agent/skills/audit-and-fix/SKILL.md +8 -0
- package/.agent/skills/authentication-best-practices/SKILL.md +10 -0
- package/.agent/skills/autonomous-execution/SKILL.md +9 -0
- package/.agent/skills/backend-alembic/SKILL.md +16 -0
- package/.agent/skills/backend-architecture-auditor/SKILL.md +16 -0
- package/.agent/skills/backend-mongodb/SKILL.md +10 -0
- package/.agent/skills/backend-mysql/SKILL.md +16 -0
- package/.agent/skills/backend-performance-auditor/SKILL.md +10 -0
- package/.agent/skills/backend-postgresql/SKILL.md +10 -0
- package/.agent/skills/backend-redis/SKILL.md +10 -0
- package/.agent/skills/backend-security-expert/SKILL.md +10 -0
- package/.agent/skills/backend-sqlalchemy/SKILL.md +10 -0
- package/.agent/skills/backend-sqlite/SKILL.md +10 -0
- package/.agent/skills/backend-testing-auditor/SKILL.md +15 -0
- package/.agent/skills/baseline-ui/SKILL.md +8 -0
- package/.agent/skills/bash-linux/SKILL.md +9 -0
- package/.agent/skills/behavioral-modes/SKILL.md +9 -0
- package/.agent/skills/better-colors/SKILL.md +9 -0
- package/.agent/skills/better-typography/SKILL.md +9 -0
- package/.agent/skills/better-ui/SKILL.md +8 -0
- package/.agent/skills/bolder/SKILL.md +8 -0
- package/.agent/skills/brainstorming/SKILL.md +8 -0
- package/.agent/skills/browser-audit/SKILL.md +9 -0
- package/.agent/skills/browser-native-ai/SKILL.md +8 -0
- package/.agent/skills/build-primitive/SKILL.md +8 -0
- package/.agent/skills/building-native-ui/SKILL.md +7 -0
- package/.agent/skills/cicd-pro/SKILL.md +9 -0
- package/.agent/skills/clarify/SKILL.md +8 -0
- package/.agent/skills/clean-code/SKILL.md +8 -0
- package/.agent/skills/cloud-architect/SKILL.md +8 -0
- package/.agent/skills/cobejs/SKILL.md +8 -0
- package/.agent/skills/code-review-checklist/SKILL.md +9 -0
- package/.agent/skills/codebase-design/SKILL.md +14 -0
- package/.agent/skills/colorize/SKILL.md +8 -0
- package/.agent/skills/compact-landing/SKILL.md +9 -0
- package/.agent/skills/company-logos/SKILL.md +9 -0
- package/.agent/skills/config-validator/SKILL.md +9 -0
- package/.agent/skills/containerization-pro/SKILL.md +9 -0
- package/.agent/skills/context-engineering-pro/SKILL.md +10 -0
- package/.agent/skills/create-design-md/SKILL.md +7 -0
- package/.agent/skills/critique/SKILL.md +8 -0
- package/.agent/skills/csharp-developer/SKILL.md +9 -0
- package/.agent/skills/data-validation-schemas/SKILL.md +8 -0
- package/.agent/skills/database-design/SKILL.md +8 -0
- package/.agent/skills/delight/SKILL.md +8 -0
- package/.agent/skills/deployment-procedures/SKILL.md +9 -0
- package/.agent/skills/design-lab/SKILL.md +8 -0
- package/.agent/skills/devops-engineer/SKILL.md +9 -0
- package/.agent/skills/devops-incident-responder/SKILL.md +16 -0
- package/.agent/skills/diagnosing-bugs/SKILL.md +9 -0
- package/.agent/skills/distill/SKILL.md +8 -0
- package/.agent/skills/documentation-templates/SKILL.md +9 -0
- package/.agent/skills/domain-modeling/SKILL.md +9 -0
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +10 -0
- package/.agent/skills/edge-ai-mobile/SKILL.md +8 -0
- package/.agent/skills/edge-computing/SKILL.md +9 -0
- package/.agent/skills/emil-design-eng/SKILL.md +9 -0
- package/.agent/skills/error-resilience/SKILL.md +8 -0
- package/.agent/skills/expo-router-v4/SKILL.md +9 -0
- package/.agent/skills/extract-design-system/SKILL.md +9 -0
- package/.agent/skills/fabel-protocol/SKILL.md +9 -0
- package/.agent/skills/failure-mode-analysis/SKILL.md +10 -0
- package/.agent/skills/fastapi-pro/SKILL.md +9 -0
- package/.agent/skills/fixing-accessibility/SKILL.md +9 -0
- package/.agent/skills/fixing-metadata/SKILL.md +9 -0
- package/.agent/skills/fixing-motion-performance/SKILL.md +9 -0
- package/.agent/skills/framer-motion-expert/SKILL.md +9 -0
- package/.agent/skills/frontend-design/SKILL.md +7 -0
- package/.agent/skills/frontend-security-expert/SKILL.md +9 -0
- package/.agent/skills/game-design-expert/SKILL.md +9 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +16 -0
- package/.agent/skills/generative-ui-expert/SKILL.md +9 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +9 -0
- package/.agent/skills/git-pro/SKILL.md +9 -0
- package/.agent/skills/github-operations/SKILL.md +9 -0
- package/.agent/skills/gpt-taste/SKILL.md +9 -0
- package/.agent/skills/graph-engineering/SKILL.md +16 -0
- package/.agent/skills/gsap-core/SKILL.md +9 -0
- package/.agent/skills/gsap-frameworks/SKILL.md +9 -0
- package/.agent/skills/gsap-performance/SKILL.md +9 -0
- package/.agent/skills/gsap-plugins/SKILL.md +9 -0
- package/.agent/skills/gsap-react/SKILL.md +9 -0
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +9 -0
- package/.agent/skills/gsap-timeline/SKILL.md +9 -0
- package/.agent/skills/gsap-utils/SKILL.md +9 -0
- package/.agent/skills/harden/SKILL.md +8 -0
- package/.agent/skills/harness-protocol/SKILL.md +9 -0
- package/.agent/skills/hf-cli/SKILL.md +11 -0
- package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
- package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
- package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
- package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
- package/.agent/skills/hf-mem/SKILL.md +11 -0
- package/.agent/skills/huggingface-best/SKILL.md +9 -0
- package/.agent/skills/huggingface-community-evals/SKILL.md +11 -0
- package/.agent/skills/huggingface-datasets/SKILL.md +10 -0
- package/.agent/skills/huggingface-gradio/SKILL.md +10 -0
- package/.agent/skills/huggingface-llm-trainer/SKILL.md +10 -0
- package/.agent/skills/huggingface-local-models/SKILL.md +10 -0
- package/.agent/skills/huggingface-lora-space-builder/SKILL.md +11 -0
- package/.agent/skills/huggingface-paper-publisher/SKILL.md +11 -0
- package/.agent/skills/huggingface-papers/SKILL.md +11 -0
- package/.agent/skills/huggingface-spaces/SKILL.md +10 -0
- package/.agent/skills/huggingface-tool-builder/SKILL.md +11 -0
- package/.agent/skills/huggingface-trackio/SKILL.md +11 -0
- package/.agent/skills/huggingface-vision-trainer/SKILL.md +11 -0
- package/.agent/skills/huggingface-zerogpu/SKILL.md +11 -0
- package/.agent/skills/human-gate-negotiation/SKILL.md +11 -0
- package/.agent/skills/i18n-localization/SKILL.md +9 -0
- package/.agent/skills/impeccable/SKILL.md +8 -0
- package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -0
- package/.agent/skills/improve-ui/SKILL.md +8 -0
- package/.agent/skills/intelligent-routing/SKILL.md +9 -0
- package/.agent/skills/knowledge-graph/SKILL.md +9 -0
- package/.agent/skills/landing-page/SKILL.md +9 -0
- package/.agent/skills/lint-and-validate/SKILL.md +9 -0
- package/.agent/skills/llm-engineering/SKILL.md +9 -0
- package/.agent/skills/local-first/SKILL.md +10 -0
- package/.agent/skills/lottie-animation/SKILL.md +9 -0
- package/.agent/skills/marquee-loop/SKILL.md +9 -0
- package/.agent/skills/masked-reveal/SKILL.md +9 -0
- package/.agent/skills/mcp-builder/SKILL.md +9 -0
- package/.agent/skills/micro-interaction/SKILL.md +9 -0
- package/.agent/skills/mobile-design/SKILL.md +7 -0
- package/.agent/skills/monorepo-management/SKILL.md +9 -0
- package/.agent/skills/morphing-icons/SKILL.md +9 -0
- package/.agent/skills/motion-engineering/SKILL.md +8 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +10 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +16 -0
- package/.agent/skills/observability/SKILL.md +8 -0
- package/.agent/skills/opentelemetry-observability/SKILL.md +9 -0
- package/.agent/skills/page-transition-animation/SKILL.md +10 -0
- package/.agent/skills/parallel-agents/SKILL.md +15 -0
- package/.agent/skills/performance-profiling/SKILL.md +9 -0
- package/.agent/skills/plan-writing/SKILL.md +8 -0
- package/.agent/skills/platform-engineer/SKILL.md +9 -0
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +10 -0
- package/.agent/skills/playwright-ai-e2e/SKILL.md +9 -0
- package/.agent/skills/playwright-best-practices/SKILL.md +16 -0
- package/.agent/skills/polish/SKILL.md +8 -0
- package/.agent/skills/powershell-windows/SKILL.md +9 -0
- package/.agent/skills/pricing-page/SKILL.md +9 -0
- package/.agent/skills/product-aware-heuristics/SKILL.md +10 -0
- package/.agent/skills/progressive-blur/SKILL.md +9 -0
- package/.agent/skills/project-idioms/SKILL.md +8 -0
- package/.agent/skills/property-based-testing/SKILL.md +9 -0
- package/.agent/skills/python-patterns/SKILL.md +9 -0
- package/.agent/skills/python-pro/SKILL.md +9 -0
- package/.agent/skills/quieter/SKILL.md +8 -0
- package/.agent/skills/react-doctor/SKILL.md +9 -0
- package/.agent/skills/react-specialist/SKILL.md +9 -0
- package/.agent/skills/readme-builder/SKILL.md +9 -0
- package/.agent/skills/realtime-patterns/SKILL.md +9 -0
- package/.agent/skills/red-team-tactics/SKILL.md +16 -0
- package/.agent/skills/redesign-skill/SKILL.md +9 -0
- package/.agent/skills/review-animations/SKILL.md +8 -0
- package/.agent/skills/rust-pro/SKILL.md +9 -0
- package/.agent/skills/semantic-filesystem-navigation/SKILL.md +11 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +9 -0
- package/.agent/skills/server-management/SKILL.md +8 -0
- package/.agent/skills/session-log-interrogation/SKILL.md +11 -0
- package/.agent/skills/shadcn-ui-expert/SKILL.md +9 -0
- package/.agent/skills/shape/SKILL.md +8 -0
- package/.agent/skills/skill-creator/SKILL.md +9 -0
- package/.agent/skills/soft-skill/SKILL.md +9 -0
- package/.agent/skills/sounds-on-the-web/SKILL.md +9 -0
- package/.agent/skills/sql-pro/SKILL.md +9 -0
- package/.agent/skills/subagent-driven-development/SKILL.md +11 -0
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +17 -0
- package/.agent/skills/svg-animation/SKILL.md +9 -0
- package/.agent/skills/swiftui-expert/SKILL.md +9 -0
- package/.agent/skills/swiss-design/SKILL.md +8 -0
- package/.agent/skills/system-design-pro/SKILL.md +9 -0
- package/.agent/skills/systematic-debugging/SKILL.md +14 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +9 -0
- package/.agent/skills/taste-skill/SKILL.md +9 -0
- package/.agent/skills/tdd-workflow/SKILL.md +9 -0
- package/.agent/skills/test-result-analyzer/SKILL.md +9 -0
- package/.agent/skills/testing-patterns/SKILL.md +8 -0
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
- package/.agent/skills/thinking-protocol/SKILL.md +10 -0
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
- package/.agent/skills/train-sentence-transformers/SKILL.md +10 -0
- package/.agent/skills/transformers-js/SKILL.md +8 -0
- package/.agent/skills/transitions-dev/SKILL.md +8 -0
- package/.agent/skills/trend-researcher/SKILL.md +9 -0
- package/.agent/skills/tribunal-instincts-memory/SKILL.md +11 -0
- package/.agent/skills/trl-training/SKILL.md +9 -0
- package/.agent/skills/typescript-advanced/SKILL.md +9 -0
- package/.agent/skills/typeset/SKILL.md +8 -0
- package/.agent/skills/ui-reasoning-engine/SKILL.md +9 -0
- package/.agent/skills/ui-skill-packs/SKILL.md +9 -0
- package/.agent/skills/ui-skills-root/SKILL.md +9 -0
- package/.agent/skills/ui-ux-pro-max/SKILL.md +9 -0
- package/.agent/skills/ui-ux-researcher/SKILL.md +8 -0
- package/.agent/skills/vector-search-pgvector/SKILL.md +10 -0
- package/.agent/skills/verification-before-completion/SKILL.md +9 -0
- package/.agent/skills/vue-expert/SKILL.md +9 -0
- package/.agent/skills/vulnerability-scanner/SKILL.md +9 -0
- package/.agent/skills/web-accessibility-auditor/SKILL.md +16 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +9 -0
- package/.agent/skills/web-quality-audit/SKILL.md +10 -0
- package/.agent/skills/webapp-testing/SKILL.md +8 -0
- package/.agent/skills/webgpu-performance/SKILL.md +9 -0
- package/.agent/skills/whimsy-injector/SKILL.md +9 -0
- package/.agent/skills/workflow-optimizer/SKILL.md +9 -0
- package/.agent/skills/zero-trust-passkeys/SKILL.md +10 -0
- package/.agent/skills_inventory.json +4257 -4272
- package/.agents/skills/12-principles-of-animation/SKILL.md +9 -0
- package/.agents/skills/60fps-animation/SKILL.md +14 -0
- package/.agents/skills/accessible-animation/SKILL.md +9 -0
- package/.agents/skills/adapt/SKILL.md +8 -0
- package/.agents/skills/adr-generation/SKILL.md +9 -0
- package/.agents/skills/advanced-rag-pipelines/SKILL.md +9 -0
- package/.agents/skills/agent-organizer/SKILL.md +8 -0
- package/.agents/skills/agent-syscall-guidelines/SKILL.md +10 -0
- package/.agents/skills/agentic-patterns/SKILL.md +9 -0
- package/.agents/skills/agentic-workflows-2026/SKILL.md +8 -0
- package/.agents/skills/agentshield-security/SKILL.md +16 -0
- package/.agents/skills/ai-app-hardening/SKILL.md +7 -0
- package/.agents/skills/ai-prompt-injection-defense/SKILL.md +9 -0
- package/.agents/skills/animation-on-scroll/SKILL.md +9 -0
- package/.agents/skills/animation-systems/SKILL.md +8 -0
- package/.agents/skills/antfu-conventions/SKILL.md +9 -0
- package/.agents/skills/anti-slop-enforcement/SKILL.md +11 -0
- package/.agents/skills/api-patterns/SKILL.md +9 -0
- package/.agents/skills/api-security-auditor/SKILL.md +10 -0
- package/.agents/skills/app-builder/SKILL.md +8 -0
- package/.agents/skills/appflow-wireframe/SKILL.md +9 -0
- package/.agents/skills/apple-design/SKILL.md +8 -0
- package/.agents/skills/architecture/SKILL.md +8 -0
- package/.agents/skills/architecture-drift/SKILL.md +9 -0
- package/.agents/skills/architecture-intelligence/SKILL.md +17 -0
- package/.agents/skills/audit-and-fix/SKILL.md +8 -0
- package/.agents/skills/authentication-best-practices/SKILL.md +10 -0
- package/.agents/skills/autonomous-execution/SKILL.md +9 -0
- package/.agents/skills/backend-alembic/SKILL.md +16 -0
- package/.agents/skills/backend-architecture-auditor/SKILL.md +16 -0
- package/.agents/skills/backend-mongodb/SKILL.md +10 -0
- package/.agents/skills/backend-mysql/SKILL.md +16 -0
- package/.agents/skills/backend-performance-auditor/SKILL.md +10 -0
- package/.agents/skills/backend-postgresql/SKILL.md +10 -0
- package/.agents/skills/backend-redis/SKILL.md +10 -0
- package/.agents/skills/backend-security-expert/SKILL.md +10 -0
- package/.agents/skills/backend-sqlalchemy/SKILL.md +10 -0
- package/.agents/skills/backend-sqlite/SKILL.md +10 -0
- package/.agents/skills/backend-testing-auditor/SKILL.md +15 -0
- package/.agents/skills/baseline-ui/SKILL.md +8 -0
- package/.agents/skills/bash-linux/SKILL.md +9 -0
- package/.agents/skills/behavioral-modes/SKILL.md +9 -0
- package/.agents/skills/better-colors/SKILL.md +9 -0
- package/.agents/skills/better-typography/SKILL.md +9 -0
- package/.agents/skills/better-ui/SKILL.md +8 -0
- package/.agents/skills/bolder/SKILL.md +8 -0
- package/.agents/skills/brainstorming/SKILL.md +8 -0
- package/.agents/skills/browser-audit/SKILL.md +9 -0
- package/.agents/skills/browser-native-ai/SKILL.md +8 -0
- package/.agents/skills/build-primitive/SKILL.md +8 -0
- package/.agents/skills/building-native-ui/SKILL.md +7 -0
- package/.agents/skills/cicd-pro/SKILL.md +9 -0
- package/.agents/skills/clarify/SKILL.md +8 -0
- package/.agents/skills/clean-code/SKILL.md +8 -0
- package/.agents/skills/cloud-architect/SKILL.md +8 -0
- package/.agents/skills/cobejs/SKILL.md +8 -0
- package/.agents/skills/code-review-checklist/SKILL.md +9 -0
- package/.agents/skills/codebase-design/SKILL.md +14 -0
- package/.agents/skills/colorize/SKILL.md +8 -0
- package/.agents/skills/compact-landing/SKILL.md +9 -0
- package/.agents/skills/company-logos/SKILL.md +9 -0
- package/.agents/skills/config-validator/SKILL.md +9 -0
- package/.agents/skills/containerization-pro/SKILL.md +9 -0
- package/.agents/skills/context-engineering-pro/SKILL.md +10 -0
- package/.agents/skills/create-design-md/SKILL.md +7 -0
- package/.agents/skills/critique/SKILL.md +8 -0
- package/.agents/skills/csharp-developer/SKILL.md +9 -0
- package/.agents/skills/data-validation-schemas/SKILL.md +8 -0
- package/.agents/skills/database-design/SKILL.md +8 -0
- package/.agents/skills/delight/SKILL.md +8 -0
- package/.agents/skills/deployment-procedures/SKILL.md +9 -0
- package/.agents/skills/design-lab/SKILL.md +8 -0
- package/.agents/skills/devops-engineer/SKILL.md +9 -0
- package/.agents/skills/devops-incident-responder/SKILL.md +16 -0
- package/.agents/skills/diagnosing-bugs/SKILL.md +9 -0
- package/.agents/skills/distill/SKILL.md +8 -0
- package/.agents/skills/documentation-templates/SKILL.md +9 -0
- package/.agents/skills/domain-modeling/SKILL.md +9 -0
- package/.agents/skills/duckdb-analytical-sql/SKILL.md +10 -0
- package/.agents/skills/edge-ai-mobile/SKILL.md +8 -0
- package/.agents/skills/edge-computing/SKILL.md +9 -0
- package/.agents/skills/emil-design-eng/SKILL.md +9 -0
- package/.agents/skills/error-resilience/SKILL.md +8 -0
- package/.agents/skills/expo-router-v4/SKILL.md +9 -0
- package/.agents/skills/extract-design-system/SKILL.md +9 -0
- package/.agents/skills/fabel-protocol/SKILL.md +9 -0
- package/.agents/skills/failure-mode-analysis/SKILL.md +10 -0
- package/.agents/skills/fastapi-pro/SKILL.md +9 -0
- package/.agents/skills/fixing-accessibility/SKILL.md +9 -0
- package/.agents/skills/fixing-metadata/SKILL.md +9 -0
- package/.agents/skills/fixing-motion-performance/SKILL.md +9 -0
- package/.agents/skills/framer-motion-expert/SKILL.md +9 -0
- package/.agents/skills/frontend-design/SKILL.md +7 -0
- package/.agents/skills/frontend-security-expert/SKILL.md +9 -0
- package/.agents/skills/game-design-expert/SKILL.md +9 -0
- package/.agents/skills/game-engineering-expert/SKILL.md +16 -0
- package/.agents/skills/generative-ui-expert/SKILL.md +9 -0
- package/.agents/skills/geo-fundamentals/SKILL.md +9 -0
- package/.agents/skills/git-pro/SKILL.md +9 -0
- package/.agents/skills/github-operations/SKILL.md +9 -0
- package/.agents/skills/gpt-taste/SKILL.md +9 -0
- package/.agents/skills/graph-engineering/SKILL.md +16 -0
- package/.agents/skills/gsap-core/SKILL.md +9 -0
- package/.agents/skills/gsap-frameworks/SKILL.md +9 -0
- package/.agents/skills/gsap-performance/SKILL.md +9 -0
- package/.agents/skills/gsap-plugins/SKILL.md +9 -0
- package/.agents/skills/gsap-react/SKILL.md +9 -0
- package/.agents/skills/gsap-scrolltrigger/SKILL.md +9 -0
- package/.agents/skills/gsap-timeline/SKILL.md +9 -0
- package/.agents/skills/gsap-utils/SKILL.md +9 -0
- package/.agents/skills/harden/SKILL.md +8 -0
- package/.agents/skills/harness-protocol/SKILL.md +9 -0
- package/.agents/skills/hf-cli/SKILL.md +11 -0
- package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
- package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
- package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
- package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
- package/.agents/skills/hf-mem/SKILL.md +11 -0
- package/.agents/skills/huggingface-best/SKILL.md +9 -0
- package/.agents/skills/huggingface-community-evals/SKILL.md +11 -0
- package/.agents/skills/huggingface-datasets/SKILL.md +10 -0
- package/.agents/skills/huggingface-gradio/SKILL.md +10 -0
- package/.agents/skills/huggingface-llm-trainer/SKILL.md +10 -0
- package/.agents/skills/huggingface-local-models/SKILL.md +10 -0
- package/.agents/skills/huggingface-lora-space-builder/SKILL.md +11 -0
- package/.agents/skills/huggingface-paper-publisher/SKILL.md +11 -0
- package/.agents/skills/huggingface-papers/SKILL.md +11 -0
- package/.agents/skills/huggingface-spaces/SKILL.md +10 -0
- package/.agents/skills/huggingface-tool-builder/SKILL.md +11 -0
- package/.agents/skills/huggingface-trackio/SKILL.md +11 -0
- package/.agents/skills/huggingface-vision-trainer/SKILL.md +11 -0
- package/.agents/skills/huggingface-zerogpu/SKILL.md +11 -0
- package/.agents/skills/human-gate-negotiation/SKILL.md +11 -0
- package/.agents/skills/i18n-localization/SKILL.md +9 -0
- package/.agents/skills/impeccable/SKILL.md +8 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +10 -0
- package/.agents/skills/improve-ui/SKILL.md +8 -0
- package/.agents/skills/intelligent-routing/SKILL.md +9 -0
- package/.agents/skills/knowledge-graph/SKILL.md +9 -0
- package/.agents/skills/landing-page/SKILL.md +9 -0
- package/.agents/skills/lint-and-validate/SKILL.md +9 -0
- package/.agents/skills/llm-engineering/SKILL.md +9 -0
- package/.agents/skills/local-first/SKILL.md +10 -0
- package/.agents/skills/lottie-animation/SKILL.md +9 -0
- package/.agents/skills/marquee-loop/SKILL.md +9 -0
- package/.agents/skills/masked-reveal/SKILL.md +9 -0
- package/.agents/skills/mcp-builder/SKILL.md +9 -0
- package/.agents/skills/micro-interaction/SKILL.md +9 -0
- package/.agents/skills/mobile-design/SKILL.md +7 -0
- package/.agents/skills/monorepo-management/SKILL.md +9 -0
- package/.agents/skills/morphing-icons/SKILL.md +9 -0
- package/.agents/skills/motion-engineering/SKILL.md +8 -0
- package/.agents/skills/nextjs-react-expert/SKILL.md +10 -0
- package/.agents/skills/nodejs-best-practices/SKILL.md +16 -0
- package/.agents/skills/observability/SKILL.md +8 -0
- package/.agents/skills/opentelemetry-observability/SKILL.md +9 -0
- package/.agents/skills/page-transition-animation/SKILL.md +10 -0
- package/.agents/skills/parallel-agents/SKILL.md +15 -0
- package/.agents/skills/performance-profiling/SKILL.md +9 -0
- package/.agents/skills/plan-writing/SKILL.md +8 -0
- package/.agents/skills/platform-engineer/SKILL.md +9 -0
- package/.agents/skills/platform-engineering-opentofu/SKILL.md +10 -0
- package/.agents/skills/playwright-ai-e2e/SKILL.md +9 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +16 -0
- package/.agents/skills/polish/SKILL.md +8 -0
- package/.agents/skills/powershell-windows/SKILL.md +9 -0
- package/.agents/skills/pricing-page/SKILL.md +9 -0
- package/.agents/skills/product-aware-heuristics/SKILL.md +10 -0
- package/.agents/skills/progressive-blur/SKILL.md +9 -0
- package/.agents/skills/project-idioms/SKILL.md +8 -0
- package/.agents/skills/property-based-testing/SKILL.md +9 -0
- package/.agents/skills/python-patterns/SKILL.md +9 -0
- package/.agents/skills/python-pro/SKILL.md +9 -0
- package/.agents/skills/quieter/SKILL.md +8 -0
- package/.agents/skills/react-doctor/SKILL.md +9 -0
- package/.agents/skills/react-specialist/SKILL.md +9 -0
- package/.agents/skills/readme-builder/SKILL.md +9 -0
- package/.agents/skills/realtime-patterns/SKILL.md +9 -0
- package/.agents/skills/red-team-tactics/SKILL.md +16 -0
- package/.agents/skills/redesign-skill/SKILL.md +9 -0
- package/.agents/skills/review-animations/SKILL.md +8 -0
- package/.agents/skills/rust-pro/SKILL.md +9 -0
- package/.agents/skills/semantic-filesystem-navigation/SKILL.md +11 -0
- package/.agents/skills/seo-fundamentals/SKILL.md +9 -0
- package/.agents/skills/server-management/SKILL.md +8 -0
- package/.agents/skills/session-log-interrogation/SKILL.md +11 -0
- package/.agents/skills/shadcn-ui-expert/SKILL.md +9 -0
- package/.agents/skills/shape/SKILL.md +8 -0
- package/.agents/skills/skill-creator/SKILL.md +9 -0
- package/.agents/skills/soft-skill/SKILL.md +9 -0
- package/.agents/skills/sounds-on-the-web/SKILL.md +9 -0
- package/.agents/skills/sql-pro/SKILL.md +9 -0
- package/.agents/skills/subagent-driven-development/SKILL.md +11 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +17 -0
- package/.agents/skills/svg-animation/SKILL.md +9 -0
- package/.agents/skills/swiftui-expert/SKILL.md +9 -0
- package/.agents/skills/swiss-design/SKILL.md +8 -0
- package/.agents/skills/system-design-pro/SKILL.md +9 -0
- package/.agents/skills/systematic-debugging/SKILL.md +14 -0
- package/.agents/skills/tailwind-patterns/SKILL.md +9 -0
- package/.agents/skills/taste-skill/SKILL.md +9 -0
- package/.agents/skills/tdd-workflow/SKILL.md +9 -0
- package/.agents/skills/test-result-analyzer/SKILL.md +9 -0
- package/.agents/skills/testing-patterns/SKILL.md +8 -0
- package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
- package/.agents/skills/thinking-protocol/SKILL.md +10 -0
- package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
- package/.agents/skills/train-sentence-transformers/SKILL.md +10 -0
- package/.agents/skills/transformers-js/SKILL.md +8 -0
- package/.agents/skills/transitions-dev/SKILL.md +8 -0
- package/.agents/skills/trend-researcher/SKILL.md +9 -0
- package/.agents/skills/tribunal-instincts-memory/SKILL.md +11 -0
- package/.agents/skills/trl-training/SKILL.md +9 -0
- package/.agents/skills/typescript-advanced/SKILL.md +9 -0
- package/.agents/skills/typeset/SKILL.md +8 -0
- package/.agents/skills/ui-reasoning-engine/SKILL.md +9 -0
- package/.agents/skills/ui-skill-packs/SKILL.md +9 -0
- package/.agents/skills/ui-skills-root/SKILL.md +9 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +9 -0
- package/.agents/skills/ui-ux-researcher/SKILL.md +8 -0
- package/.agents/skills/vector-search-pgvector/SKILL.md +10 -0
- package/.agents/skills/verification-before-completion/SKILL.md +9 -0
- package/.agents/skills/vue-expert/SKILL.md +9 -0
- package/.agents/skills/vulnerability-scanner/SKILL.md +9 -0
- package/.agents/skills/web-accessibility-auditor/SKILL.md +16 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +9 -0
- package/.agents/skills/web-quality-audit/SKILL.md +10 -0
- package/.agents/skills/webapp-testing/SKILL.md +8 -0
- package/.agents/skills/webgpu-performance/SKILL.md +9 -0
- package/.agents/skills/whimsy-injector/SKILL.md +9 -0
- package/.agents/skills/workflow-optimizer/SKILL.md +9 -0
- package/.agents/skills/zero-trust-passkeys/SKILL.md +10 -0
- package/README.md +4 -4
- package/bin/adapter-install.js +1 -1
- package/bin/mcp-server.js +249 -0
- package/package.json +12 -8
- package/plugins/core-plugin.json +1 -1
- package/plugins/gemini/extension.json +1 -1
- package/skills/12-principles-of-animation/SKILL.md +9 -0
- package/skills/60fps-animation/SKILL.md +14 -0
- package/skills/accessible-animation/SKILL.md +9 -0
- package/skills/adapt/SKILL.md +8 -0
- package/skills/adr-generation/SKILL.md +9 -0
- package/skills/advanced-rag-pipelines/SKILL.md +9 -0
- package/skills/agent-organizer/SKILL.md +8 -0
- package/skills/agent-syscall-guidelines/SKILL.md +10 -0
- package/skills/agentic-patterns/SKILL.md +9 -0
- package/skills/agentic-workflows-2026/SKILL.md +8 -0
- package/skills/agentshield-security/SKILL.md +16 -0
- package/skills/ai-app-hardening/SKILL.md +7 -0
- package/skills/ai-prompt-injection-defense/SKILL.md +9 -0
- package/skills/animation-on-scroll/SKILL.md +9 -0
- package/skills/animation-systems/SKILL.md +8 -0
- package/skills/antfu-conventions/SKILL.md +9 -0
- package/skills/anti-slop-enforcement/SKILL.md +11 -0
- package/skills/api-patterns/SKILL.md +9 -0
- package/skills/api-security-auditor/SKILL.md +10 -0
- package/skills/app-builder/SKILL.md +8 -0
- package/skills/appflow-wireframe/SKILL.md +9 -0
- package/skills/apple-design/SKILL.md +8 -0
- package/skills/architecture/SKILL.md +8 -0
- package/skills/architecture-drift/SKILL.md +9 -0
- package/skills/architecture-intelligence/SKILL.md +17 -0
- package/skills/audit-and-fix/SKILL.md +8 -0
- package/skills/authentication-best-practices/SKILL.md +10 -0
- package/skills/autonomous-execution/SKILL.md +9 -0
- package/skills/backend-alembic/SKILL.md +16 -0
- package/skills/backend-architecture-auditor/SKILL.md +16 -0
- package/skills/backend-mongodb/SKILL.md +10 -0
- package/skills/backend-mysql/SKILL.md +16 -0
- package/skills/backend-performance-auditor/SKILL.md +10 -0
- package/skills/backend-postgresql/SKILL.md +10 -0
- package/skills/backend-redis/SKILL.md +10 -0
- package/skills/backend-security-expert/SKILL.md +10 -0
- package/skills/backend-sqlalchemy/SKILL.md +10 -0
- package/skills/backend-sqlite/SKILL.md +10 -0
- package/skills/backend-testing-auditor/SKILL.md +15 -0
- package/skills/baseline-ui/SKILL.md +8 -0
- package/skills/bash-linux/SKILL.md +9 -0
- package/skills/behavioral-modes/SKILL.md +9 -0
- package/skills/better-colors/SKILL.md +9 -0
- package/skills/better-typography/SKILL.md +9 -0
- package/skills/better-ui/SKILL.md +8 -0
- package/skills/bolder/SKILL.md +8 -0
- package/skills/brainstorming/SKILL.md +8 -0
- package/skills/browser-audit/SKILL.md +9 -0
- package/skills/browser-native-ai/SKILL.md +8 -0
- package/skills/build-primitive/SKILL.md +8 -0
- package/skills/building-native-ui/SKILL.md +7 -0
- package/skills/cicd-pro/SKILL.md +9 -0
- package/skills/clarify/SKILL.md +8 -0
- package/skills/clean-code/SKILL.md +8 -0
- package/skills/cloud-architect/SKILL.md +8 -0
- package/skills/cobejs/SKILL.md +8 -0
- package/skills/code-review-checklist/SKILL.md +9 -0
- package/skills/codebase-design/SKILL.md +14 -0
- package/skills/colorize/SKILL.md +8 -0
- package/skills/compact-landing/SKILL.md +9 -0
- package/skills/company-logos/SKILL.md +9 -0
- package/skills/config-validator/SKILL.md +9 -0
- package/skills/containerization-pro/SKILL.md +9 -0
- package/skills/context-engineering-pro/SKILL.md +10 -0
- package/skills/create-design-md/SKILL.md +7 -0
- package/skills/critique/SKILL.md +8 -0
- package/skills/csharp-developer/SKILL.md +9 -0
- package/skills/data-validation-schemas/SKILL.md +8 -0
- package/skills/database-design/SKILL.md +8 -0
- package/skills/delight/SKILL.md +8 -0
- package/skills/deployment-procedures/SKILL.md +9 -0
- package/skills/design-lab/SKILL.md +8 -0
- package/skills/devops-engineer/SKILL.md +9 -0
- package/skills/devops-incident-responder/SKILL.md +16 -0
- package/skills/diagnosing-bugs/SKILL.md +9 -0
- package/skills/distill/SKILL.md +8 -0
- package/skills/documentation-templates/SKILL.md +9 -0
- package/skills/domain-modeling/SKILL.md +9 -0
- package/skills/duckdb-analytical-sql/SKILL.md +10 -0
- package/skills/edge-ai-mobile/SKILL.md +8 -0
- package/skills/edge-computing/SKILL.md +9 -0
- package/skills/emil-design-eng/SKILL.md +9 -0
- package/skills/error-resilience/SKILL.md +8 -0
- package/skills/expo-router-v4/SKILL.md +9 -0
- package/skills/extract-design-system/SKILL.md +9 -0
- package/skills/fabel-protocol/SKILL.md +9 -0
- package/skills/failure-mode-analysis/SKILL.md +10 -0
- package/skills/fastapi-pro/SKILL.md +9 -0
- package/skills/fixing-accessibility/SKILL.md +9 -0
- package/skills/fixing-metadata/SKILL.md +9 -0
- package/skills/fixing-motion-performance/SKILL.md +9 -0
- package/skills/framer-motion-expert/SKILL.md +9 -0
- package/skills/frontend-design/SKILL.md +7 -0
- package/skills/frontend-security-expert/SKILL.md +9 -0
- package/skills/game-design-expert/SKILL.md +9 -0
- package/skills/game-engineering-expert/SKILL.md +16 -0
- package/skills/generative-ui-expert/SKILL.md +9 -0
- package/skills/geo-fundamentals/SKILL.md +9 -0
- package/skills/git-pro/SKILL.md +9 -0
- package/skills/github-operations/SKILL.md +9 -0
- package/skills/gpt-taste/SKILL.md +9 -0
- package/skills/graph-engineering/SKILL.md +16 -0
- package/skills/gsap-core/SKILL.md +9 -0
- package/skills/gsap-frameworks/SKILL.md +9 -0
- package/skills/gsap-performance/SKILL.md +9 -0
- package/skills/gsap-plugins/SKILL.md +9 -0
- package/skills/gsap-react/SKILL.md +9 -0
- package/skills/gsap-scrolltrigger/SKILL.md +9 -0
- package/skills/gsap-timeline/SKILL.md +9 -0
- package/skills/gsap-utils/SKILL.md +9 -0
- package/skills/harden/SKILL.md +8 -0
- package/skills/harness-protocol/SKILL.md +9 -0
- package/skills/hf-cli/SKILL.md +11 -0
- package/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
- package/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
- package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
- package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
- package/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
- package/skills/hf-mem/SKILL.md +11 -0
- package/skills/huggingface-best/SKILL.md +9 -0
- package/skills/huggingface-community-evals/SKILL.md +11 -0
- package/skills/huggingface-datasets/SKILL.md +10 -0
- package/skills/huggingface-gradio/SKILL.md +10 -0
- package/skills/huggingface-llm-trainer/SKILL.md +10 -0
- package/skills/huggingface-local-models/SKILL.md +10 -0
- package/skills/huggingface-lora-space-builder/SKILL.md +11 -0
- package/skills/huggingface-paper-publisher/SKILL.md +11 -0
- package/skills/huggingface-papers/SKILL.md +11 -0
- package/skills/huggingface-spaces/SKILL.md +10 -0
- package/skills/huggingface-tool-builder/SKILL.md +11 -0
- package/skills/huggingface-trackio/SKILL.md +11 -0
- package/skills/huggingface-vision-trainer/SKILL.md +11 -0
- package/skills/huggingface-zerogpu/SKILL.md +11 -0
- package/skills/human-gate-negotiation/SKILL.md +11 -0
- package/skills/i18n-localization/SKILL.md +9 -0
- package/skills/impeccable/SKILL.md +8 -0
- package/skills/improve-codebase-architecture/SKILL.md +10 -0
- package/skills/improve-ui/SKILL.md +8 -0
- package/skills/intelligent-routing/SKILL.md +9 -0
- package/skills/knowledge-graph/SKILL.md +9 -0
- package/skills/landing-page/SKILL.md +9 -0
- package/skills/lint-and-validate/SKILL.md +9 -0
- package/skills/llm-engineering/SKILL.md +9 -0
- package/skills/local-first/SKILL.md +10 -0
- package/skills/lottie-animation/SKILL.md +9 -0
- package/skills/marquee-loop/SKILL.md +9 -0
- package/skills/masked-reveal/SKILL.md +9 -0
- package/skills/mcp-builder/SKILL.md +9 -0
- package/skills/micro-interaction/SKILL.md +9 -0
- package/skills/mobile-design/SKILL.md +7 -0
- package/skills/monorepo-management/SKILL.md +9 -0
- package/skills/morphing-icons/SKILL.md +9 -0
- package/skills/motion-engineering/SKILL.md +8 -0
- package/skills/nextjs-react-expert/SKILL.md +10 -0
- package/skills/nodejs-best-practices/SKILL.md +16 -0
- package/skills/observability/SKILL.md +8 -0
- package/skills/opentelemetry-observability/SKILL.md +9 -0
- package/skills/page-transition-animation/SKILL.md +10 -0
- package/skills/parallel-agents/SKILL.md +15 -0
- package/skills/performance-profiling/SKILL.md +9 -0
- package/skills/plan-writing/SKILL.md +8 -0
- package/skills/platform-engineer/SKILL.md +9 -0
- package/skills/platform-engineering-opentofu/SKILL.md +10 -0
- package/skills/playwright-ai-e2e/SKILL.md +9 -0
- package/skills/playwright-best-practices/SKILL.md +16 -0
- package/skills/polish/SKILL.md +8 -0
- package/skills/powershell-windows/SKILL.md +9 -0
- package/skills/pricing-page/SKILL.md +9 -0
- package/skills/product-aware-heuristics/SKILL.md +10 -0
- package/skills/progressive-blur/SKILL.md +9 -0
- package/skills/project-idioms/SKILL.md +8 -0
- package/skills/property-based-testing/SKILL.md +9 -0
- package/skills/python-patterns/SKILL.md +9 -0
- package/skills/python-pro/SKILL.md +9 -0
- package/skills/quieter/SKILL.md +8 -0
- package/skills/react-doctor/SKILL.md +9 -0
- package/skills/react-specialist/SKILL.md +9 -0
- package/skills/readme-builder/SKILL.md +9 -0
- package/skills/realtime-patterns/SKILL.md +9 -0
- package/skills/red-team-tactics/SKILL.md +16 -0
- package/skills/redesign-skill/SKILL.md +9 -0
- package/skills/review-animations/SKILL.md +8 -0
- package/skills/rust-pro/SKILL.md +9 -0
- package/skills/semantic-filesystem-navigation/SKILL.md +11 -0
- package/skills/seo-fundamentals/SKILL.md +9 -0
- package/skills/server-management/SKILL.md +8 -0
- package/skills/session-log-interrogation/SKILL.md +11 -0
- package/skills/shadcn-ui-expert/SKILL.md +9 -0
- package/skills/shape/SKILL.md +8 -0
- package/skills/skill-creator/SKILL.md +9 -0
- package/skills/soft-skill/SKILL.md +9 -0
- package/skills/sounds-on-the-web/SKILL.md +9 -0
- package/skills/sql-pro/SKILL.md +9 -0
- package/skills/subagent-driven-development/SKILL.md +11 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +17 -0
- package/skills/svg-animation/SKILL.md +9 -0
- package/skills/swiftui-expert/SKILL.md +9 -0
- package/skills/swiss-design/SKILL.md +8 -0
- package/skills/system-design-pro/SKILL.md +9 -0
- package/skills/systematic-debugging/SKILL.md +14 -0
- package/skills/tailwind-patterns/SKILL.md +9 -0
- package/skills/taste-skill/SKILL.md +9 -0
- package/skills/tdd-workflow/SKILL.md +9 -0
- package/skills/test-result-analyzer/SKILL.md +9 -0
- package/skills/testing-patterns/SKILL.md +8 -0
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
- package/skills/thinking-protocol/SKILL.md +10 -0
- package/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
- package/skills/train-sentence-transformers/SKILL.md +10 -0
- package/skills/transformers-js/SKILL.md +8 -0
- package/skills/transitions-dev/SKILL.md +8 -0
- package/skills/trend-researcher/SKILL.md +9 -0
- package/skills/tribunal-instincts-memory/SKILL.md +11 -0
- package/skills/trl-training/SKILL.md +9 -0
- package/skills/typescript-advanced/SKILL.md +9 -0
- package/skills/typeset/SKILL.md +8 -0
- package/skills/ui-reasoning-engine/SKILL.md +9 -0
- package/skills/ui-skill-packs/SKILL.md +9 -0
- package/skills/ui-skills-root/SKILL.md +9 -0
- package/skills/ui-ux-pro-max/SKILL.md +9 -0
- package/skills/ui-ux-researcher/SKILL.md +8 -0
- package/skills/vector-search-pgvector/SKILL.md +10 -0
- package/skills/verification-before-completion/SKILL.md +9 -0
- package/skills/vue-expert/SKILL.md +9 -0
- package/skills/vulnerability-scanner/SKILL.md +9 -0
- package/skills/web-accessibility-auditor/SKILL.md +16 -0
- package/skills/web-design-guidelines/SKILL.md +9 -0
- package/skills/web-quality-audit/SKILL.md +10 -0
- package/skills/webapp-testing/SKILL.md +8 -0
- package/skills/webgpu-performance/SKILL.md +9 -0
- package/skills/whimsy-injector/SKILL.md +9 -0
- package/skills/workflow-optimizer/SKILL.md +9 -0
- package/skills/zero-trust-passkeys/SKILL.md +10 -0
- package/src/cli.js +18 -0
- package/src/commands/init.js +538 -462
- package/src/commands/intelligence.js +86 -0
- package/src/commands/review.js +235 -1
- package/src/commands/system1.js +562 -413
- package/src/evaluation/evaluation_runner.js +207 -0
- package/src/evaluation/scenario_registry.js +82 -0
- package/src/execution/agent_correction_engine.js +76 -0
- package/src/execution/controlled_write_service.js +301 -0
- package/src/execution/correction_run_engine.js +234 -0
- package/src/execution/correction_verifier.js +85 -0
- package/src/execution/evidence_aggregator.js +54 -0
- package/src/execution/finding_diff_engine.js +59 -0
- package/src/execution/index.js +42 -0
- package/src/execution/prompt_isolator.js +145 -0
- package/src/execution/provider_adapter.js +495 -0
- package/src/execution/resolution_certificate.js +53 -0
- package/src/execution/resolution_policy.js +70 -0
- package/src/execution/review_executor.js +335 -0
- package/src/execution/reviewer_registry.js +137 -0
- package/src/execution/schemas.js +298 -0
- package/src/execution/transaction_manager.js +237 -0
- package/src/execution/validation_runner.js +174 -0
- package/src/execution/verdict_aggregator.js +181 -0
- package/src/execution/write_policy_engine.js +95 -0
- package/src/intelligence/adaptive_correction.js +72 -0
- package/src/intelligence/adaptive_reviewer_orchestrator.js +123 -0
- package/src/intelligence/case_indexer.js +166 -0
- package/src/intelligence/case_memory.js +149 -0
- package/src/intelligence/case_similarity.js +86 -0
- package/src/intelligence/cbr_engine.js +90 -0
- package/src/intelligence/evidence_optimization.js +106 -0
- package/src/intelligence/failure_intelligence.js +95 -0
- package/src/intelligence/governance_drift_detector.js +75 -0
- package/src/intelligence/governance_simulator.js +115 -0
- package/src/intelligence/human_intelligence.js +46 -0
- package/src/intelligence/mcp_tools.js +87 -0
- package/src/intelligence/reviewer_performance.js +94 -0
- package/src/intelligence/risk_prediction_engine.js +92 -0
- package/src/intelligence/token_intelligence.js +73 -0
- package/src/tui/banner.js +26 -47
- package/src/tui/index.js +4 -0
- package/src/tui/panel.js +55 -0
- package/src/tui/progress.js +42 -0
- package/src/tui/reviewer-grid.js +9 -10
- package/src/tui/theme.js +59 -16
- package/src/tui/tree.js +57 -29
- package/src/tui/wizard.js +22 -18
- package/.agent/skills/local-first-architecture/SKILL.md +0 -123
|
@@ -1,236 +1,236 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* validation_engine.js — Tribunal Validation Engine (Trust Boundary Authority)
|
|
4
|
-
*
|
|
5
|
-
* THIS IS THE SOLE AUTHORITY for VERIFIED status.
|
|
6
|
-
*
|
|
7
|
-
* Trust Model:
|
|
8
|
-
* UNTRUSTED: Repository content, LLM observations, LLM claims
|
|
9
|
-
* STRUCTURALLY VALID: Findings that pass Zod schema
|
|
10
|
-
* SOURCE CONFIRMED: Evidence locations verified against repository
|
|
11
|
-
* VERIFIED: Independent proof exists (test execution or static tool)
|
|
12
|
-
*
|
|
13
|
-
* CRITICAL RULES:
|
|
14
|
-
* 1. LLM output is NEVER trusted for verification status.
|
|
15
|
-
* 2. Any finding arriving with status=VERIFIED is DEMOTED to DETECTED.
|
|
16
|
-
* 3. VERIFIED requires independent execution proof with provenance.
|
|
17
|
-
* 4. Evidence locations are verified against the actual repository.
|
|
18
|
-
* 5. Stale evidence (code changed) prevents VERIFIED.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
'use strict';
|
|
22
|
-
|
|
23
|
-
const fs = require('fs');
|
|
24
|
-
const { BOLD, RESET, BLUE, GREEN, RED, YELLOW, sectionHeader } = require('./_colors');
|
|
25
|
-
const { verifyFindingEvidence } = require('./evidence_verifier');
|
|
26
|
-
const { redactFinding } = require('./secret_redactor');
|
|
27
|
-
|
|
28
|
-
// Trusted statuses that only this engine can assign
|
|
29
|
-
const TRUSTED_STATUSES = new Set(['VERIFIED', 'FIXED', 'REGRESSION-PROTECTED']);
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Output Isolation (§9):
|
|
33
|
-
* Strip any trusted status that the LLM may have self-assigned.
|
|
34
|
-
* LLM may only produce DETECTED or UNVERIFIED.
|
|
35
|
-
*/
|
|
36
|
-
function enforceOutputIsolation(finding) {
|
|
37
|
-
if (TRUSTED_STATUSES.has(finding.status)) {
|
|
38
|
-
finding._original_status = finding.status;
|
|
39
|
-
finding.status = 'DETECTED';
|
|
40
|
-
finding._isolation_note = `Status "${finding._original_status}" was demoted to DETECTED. Only the validation engine can assign trusted statuses.`;
|
|
41
|
-
}
|
|
42
|
-
return finding;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Validation provenance record (§13).
|
|
47
|
-
* Every VERIFIED finding gets a provenance trail.
|
|
48
|
-
*/
|
|
49
|
-
function createProvenance(method, details) {
|
|
50
|
-
return {
|
|
51
|
-
method,
|
|
52
|
-
timestamp: new Date().toISOString(),
|
|
53
|
-
engine: 'validation_engine.js',
|
|
54
|
-
...details,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Determines the validation status for a finding.
|
|
60
|
-
*
|
|
61
|
-
* Decision tree:
|
|
62
|
-
* 1. Output isolation: demote any self-assigned VERIFIED
|
|
63
|
-
* 2. Evidence verification: check source locations exist
|
|
64
|
-
* 3. Architecture/design → UNVERIFIED (cannot be tested)
|
|
65
|
-
* 4. Has trusted test execution record → VERIFIED (with provenance)
|
|
66
|
-
* 5. Has trusted static proof record → VERIFIED (with provenance)
|
|
67
|
-
* 6. All others → DETECTED (evidence exists, no reproduction)
|
|
68
|
-
*/
|
|
69
|
-
function runSafeValidation(finding, repoRoot) {
|
|
70
|
-
// Step 1: Output isolation — demote self-assigned trusted statuses
|
|
71
|
-
enforceOutputIsolation(finding);
|
|
72
|
-
|
|
73
|
-
// Step 2: Evidence verification against repository (if repoRoot provided)
|
|
74
|
-
if (repoRoot) {
|
|
75
|
-
finding = verifyFindingEvidence(finding, repoRoot);
|
|
76
|
-
|
|
77
|
-
// If ALL evidence locations are fabricated, finding is UNVERIFIED
|
|
78
|
-
if (
|
|
79
|
-
finding.evidence_verification &&
|
|
80
|
-
finding.evidence_verification.status === 'ALL_FABRICATED'
|
|
81
|
-
) {
|
|
82
|
-
return {
|
|
83
|
-
status: 'UNVERIFIED',
|
|
84
|
-
message: 'All evidence locations are fabricated or do not exist in the repository.',
|
|
85
|
-
provenance: createProvenance('evidence_verification', {
|
|
86
|
-
result: 'ALL_FABRICATED',
|
|
87
|
-
details: finding.evidence_verification.details,
|
|
88
|
-
}),
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Step 3: Architecture and design findings cannot be reproduced
|
|
94
|
-
if (finding.category === 'architecture' || finding.category === 'design') {
|
|
95
|
-
return {
|
|
96
|
-
status: 'UNVERIFIED',
|
|
97
|
-
message: 'Architectural issues cannot be automatically verified safely.',
|
|
98
|
-
provenance: createProvenance('category_exclusion', { category: finding.category }),
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Step 4: Trusted test execution proof
|
|
103
|
-
// The verification object must contain a trusted execution record
|
|
104
|
-
// with command, exit_code, and output — not just "test_executed: true"
|
|
105
|
-
if (finding.verification) {
|
|
106
|
-
const v = finding.verification;
|
|
107
|
-
|
|
108
|
-
if (v.test_executed === true && v.command && typeof v.exit_code === 'number' && v.test_output) {
|
|
109
|
-
return {
|
|
110
|
-
status: 'VERIFIED',
|
|
111
|
-
message: `Verified by test execution: ${v.command} (exit ${v.exit_code})`,
|
|
112
|
-
provenance: createProvenance('test_execution', {
|
|
113
|
-
command: v.command,
|
|
114
|
-
exit_code: v.exit_code,
|
|
115
|
-
output_preview: (v.test_output || '').substring(0, 200),
|
|
116
|
-
}),
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Step 5: Trusted static analysis proof
|
|
121
|
-
// Must have tool name AND tool output — not just "static_proof: true"
|
|
122
|
-
if (v.static_proof === true && v.tool && v.tool_output) {
|
|
123
|
-
return {
|
|
124
|
-
status: 'VERIFIED',
|
|
125
|
-
message: `Verified by static analysis: ${v.tool}`,
|
|
126
|
-
provenance: createProvenance('static_analysis', {
|
|
127
|
-
tool: v.tool,
|
|
128
|
-
output_preview: (v.tool_output || '').substring(0, 200),
|
|
129
|
-
}),
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Incomplete verification claims — demote to DETECTED with explanation
|
|
134
|
-
if (v.test_executed === true && (!v.command || typeof v.exit_code !== 'number')) {
|
|
135
|
-
finding._verification_rejection =
|
|
136
|
-
'test_executed=true but missing required provenance (command, exit_code)';
|
|
137
|
-
}
|
|
138
|
-
if (v.static_proof === true && (!v.tool || !v.tool_output)) {
|
|
139
|
-
finding._verification_rejection =
|
|
140
|
-
'static_proof=true but missing required provenance (tool, tool_output)';
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Step 6: Default — evidence exists but no reproduction
|
|
145
|
-
return {
|
|
146
|
-
status: 'DETECTED',
|
|
147
|
-
message:
|
|
148
|
-
'Evidence exists but no automated reproduction was performed. Manual review recommended.',
|
|
149
|
-
provenance: createProvenance('default', { reason: 'no_independent_proof' }),
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
function runValidation(findings, repoRoot) {
|
|
154
|
-
const validated = [];
|
|
155
|
-
console.log(sectionHeader('Validation Engine Execution'));
|
|
156
|
-
|
|
157
|
-
for (const finding of findings) {
|
|
158
|
-
const titlePreview = (finding.title || '').substring(0, 50);
|
|
159
|
-
console.log(`${BOLD}Validating finding: ${finding.id} - ${titlePreview}...${RESET}`);
|
|
160
|
-
|
|
161
|
-
// Log output isolation events
|
|
162
|
-
if (finding._isolation_note) {
|
|
163
|
-
console.log(` ${RED}⚠ OUTPUT ISOLATION:${RESET} ${finding._isolation_note}`);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
if (finding.validation && finding.validation.required !== false) {
|
|
167
|
-
const result = runSafeValidation(finding, repoRoot);
|
|
168
|
-
|
|
169
|
-
if (result.status === 'VERIFIED') console.log(` ${GREEN}Result:${RESET} ${result.message}`);
|
|
170
|
-
else if (result.status === 'DETECTED')
|
|
171
|
-
console.log(` ${YELLOW}Result:${RESET} ${result.message}`);
|
|
172
|
-
else console.log(` ${BLUE}Result:${RESET} ${result.message}`);
|
|
173
|
-
|
|
174
|
-
if (finding._verification_rejection) {
|
|
175
|
-
console.log(` ${RED}⚠ REJECTED:${RESET} ${finding._verification_rejection}`);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
finding.status = result.status;
|
|
179
|
-
finding.validation = {
|
|
180
|
-
...finding.validation,
|
|
181
|
-
result: result.message,
|
|
182
|
-
provenance: result.provenance,
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
// Redact secrets before output
|
|
186
|
-
validated.push(redactFinding(finding));
|
|
187
|
-
} else {
|
|
188
|
-
console.log(` ${BLUE}Result:${RESET} Validation not required by finding.`);
|
|
189
|
-
finding.validation = {
|
|
190
|
-
...finding.validation,
|
|
191
|
-
result: 'Skipped — validation not required.',
|
|
192
|
-
};
|
|
193
|
-
validated.push(redactFinding(finding));
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return validated;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
function main() {
|
|
200
|
-
const args = process.argv.slice(2);
|
|
201
|
-
const inputPath =
|
|
202
|
-
args.find(a => a.startsWith('--in='))?.split('=')[1] || 'correlated_findings.json';
|
|
203
|
-
const outPath =
|
|
204
|
-
args.find(a => a.startsWith('--out='))?.split('=')[1] || 'validated_findings.json';
|
|
205
|
-
const repoRoot = args.find(a => a.startsWith('--repo='))?.split('=')[1] || null;
|
|
206
|
-
|
|
207
|
-
console.log(`${BOLD}Tribunal — Validation Engine${RESET}`);
|
|
208
|
-
if (!fs.existsSync(inputPath)) {
|
|
209
|
-
console.log(RED + `Input file not found: ${inputPath}` + RESET);
|
|
210
|
-
process.exit(1);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
let data;
|
|
214
|
-
try {
|
|
215
|
-
data = JSON.parse(fs.readFileSync(inputPath, 'utf8'));
|
|
216
|
-
} catch (e) {
|
|
217
|
-
console.error(RED + 'Failed to parse JSON:' + RESET, e.message);
|
|
218
|
-
process.exit(1);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
const findings = data.findings || [];
|
|
222
|
-
if (findings.length === 0) {
|
|
223
|
-
console.log(YELLOW + 'No findings to validate.' + RESET);
|
|
224
|
-
fs.writeFileSync(outPath, JSON.stringify({ findings: [] }, null, 2));
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
const validated = runValidation(findings, repoRoot);
|
|
229
|
-
fs.writeFileSync(outPath, JSON.stringify({ findings: validated }, null, 2));
|
|
230
|
-
|
|
231
|
-
console.log(`\nWritten validated findings to: ${outPath}`);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
if (require.main === module) {
|
|
235
|
-
main();
|
|
236
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* validation_engine.js — Tribunal Validation Engine (Trust Boundary Authority)
|
|
4
|
+
*
|
|
5
|
+
* THIS IS THE SOLE AUTHORITY for VERIFIED status.
|
|
6
|
+
*
|
|
7
|
+
* Trust Model:
|
|
8
|
+
* UNTRUSTED: Repository content, LLM observations, LLM claims
|
|
9
|
+
* STRUCTURALLY VALID: Findings that pass Zod schema
|
|
10
|
+
* SOURCE CONFIRMED: Evidence locations verified against repository
|
|
11
|
+
* VERIFIED: Independent proof exists (test execution or static tool)
|
|
12
|
+
*
|
|
13
|
+
* CRITICAL RULES:
|
|
14
|
+
* 1. LLM output is NEVER trusted for verification status.
|
|
15
|
+
* 2. Any finding arriving with status=VERIFIED is DEMOTED to DETECTED.
|
|
16
|
+
* 3. VERIFIED requires independent execution proof with provenance.
|
|
17
|
+
* 4. Evidence locations are verified against the actual repository.
|
|
18
|
+
* 5. Stale evidence (code changed) prevents VERIFIED.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
'use strict';
|
|
22
|
+
|
|
23
|
+
const fs = require('fs');
|
|
24
|
+
const { BOLD, RESET, BLUE, GREEN, RED, YELLOW, sectionHeader } = require('./_colors');
|
|
25
|
+
const { verifyFindingEvidence } = require('./evidence_verifier');
|
|
26
|
+
const { redactFinding } = require('./secret_redactor');
|
|
27
|
+
|
|
28
|
+
// Trusted statuses that only this engine can assign
|
|
29
|
+
const TRUSTED_STATUSES = new Set(['VERIFIED', 'FIXED', 'REGRESSION-PROTECTED']);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Output Isolation (§9):
|
|
33
|
+
* Strip any trusted status that the LLM may have self-assigned.
|
|
34
|
+
* LLM may only produce DETECTED or UNVERIFIED.
|
|
35
|
+
*/
|
|
36
|
+
function enforceOutputIsolation(finding) {
|
|
37
|
+
if (TRUSTED_STATUSES.has(finding.status)) {
|
|
38
|
+
finding._original_status = finding.status;
|
|
39
|
+
finding.status = 'DETECTED';
|
|
40
|
+
finding._isolation_note = `Status "${finding._original_status}" was demoted to DETECTED. Only the validation engine can assign trusted statuses.`;
|
|
41
|
+
}
|
|
42
|
+
return finding;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Validation provenance record (§13).
|
|
47
|
+
* Every VERIFIED finding gets a provenance trail.
|
|
48
|
+
*/
|
|
49
|
+
function createProvenance(method, details) {
|
|
50
|
+
return {
|
|
51
|
+
method,
|
|
52
|
+
timestamp: new Date().toISOString(),
|
|
53
|
+
engine: 'validation_engine.js',
|
|
54
|
+
...details,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Determines the validation status for a finding.
|
|
60
|
+
*
|
|
61
|
+
* Decision tree:
|
|
62
|
+
* 1. Output isolation: demote any self-assigned VERIFIED
|
|
63
|
+
* 2. Evidence verification: check source locations exist
|
|
64
|
+
* 3. Architecture/design → UNVERIFIED (cannot be tested)
|
|
65
|
+
* 4. Has trusted test execution record → VERIFIED (with provenance)
|
|
66
|
+
* 5. Has trusted static proof record → VERIFIED (with provenance)
|
|
67
|
+
* 6. All others → DETECTED (evidence exists, no reproduction)
|
|
68
|
+
*/
|
|
69
|
+
function runSafeValidation(finding, repoRoot) {
|
|
70
|
+
// Step 1: Output isolation — demote self-assigned trusted statuses
|
|
71
|
+
enforceOutputIsolation(finding);
|
|
72
|
+
|
|
73
|
+
// Step 2: Evidence verification against repository (if repoRoot provided)
|
|
74
|
+
if (repoRoot) {
|
|
75
|
+
finding = verifyFindingEvidence(finding, repoRoot);
|
|
76
|
+
|
|
77
|
+
// If ALL evidence locations are fabricated, finding is UNVERIFIED
|
|
78
|
+
if (
|
|
79
|
+
finding.evidence_verification &&
|
|
80
|
+
finding.evidence_verification.status === 'ALL_FABRICATED'
|
|
81
|
+
) {
|
|
82
|
+
return {
|
|
83
|
+
status: 'UNVERIFIED',
|
|
84
|
+
message: 'All evidence locations are fabricated or do not exist in the repository.',
|
|
85
|
+
provenance: createProvenance('evidence_verification', {
|
|
86
|
+
result: 'ALL_FABRICATED',
|
|
87
|
+
details: finding.evidence_verification.details,
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Step 3: Architecture and design findings cannot be reproduced
|
|
94
|
+
if (finding.category === 'architecture' || finding.category === 'design') {
|
|
95
|
+
return {
|
|
96
|
+
status: 'UNVERIFIED',
|
|
97
|
+
message: 'Architectural issues cannot be automatically verified safely.',
|
|
98
|
+
provenance: createProvenance('category_exclusion', { category: finding.category }),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Step 4: Trusted test execution proof
|
|
103
|
+
// The verification object must contain a trusted execution record
|
|
104
|
+
// with command, exit_code, and output — not just "test_executed: true"
|
|
105
|
+
if (finding.verification) {
|
|
106
|
+
const v = finding.verification;
|
|
107
|
+
|
|
108
|
+
if (v.test_executed === true && v.command && typeof v.exit_code === 'number' && v.test_output) {
|
|
109
|
+
return {
|
|
110
|
+
status: 'VERIFIED',
|
|
111
|
+
message: `Verified by test execution: ${v.command} (exit ${v.exit_code})`,
|
|
112
|
+
provenance: createProvenance('test_execution', {
|
|
113
|
+
command: v.command,
|
|
114
|
+
exit_code: v.exit_code,
|
|
115
|
+
output_preview: (v.test_output || '').substring(0, 200),
|
|
116
|
+
}),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Step 5: Trusted static analysis proof
|
|
121
|
+
// Must have tool name AND tool output — not just "static_proof: true"
|
|
122
|
+
if (v.static_proof === true && v.tool && v.tool_output) {
|
|
123
|
+
return {
|
|
124
|
+
status: 'VERIFIED',
|
|
125
|
+
message: `Verified by static analysis: ${v.tool}`,
|
|
126
|
+
provenance: createProvenance('static_analysis', {
|
|
127
|
+
tool: v.tool,
|
|
128
|
+
output_preview: (v.tool_output || '').substring(0, 200),
|
|
129
|
+
}),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Incomplete verification claims — demote to DETECTED with explanation
|
|
134
|
+
if (v.test_executed === true && (!v.command || typeof v.exit_code !== 'number')) {
|
|
135
|
+
finding._verification_rejection =
|
|
136
|
+
'test_executed=true but missing required provenance (command, exit_code)';
|
|
137
|
+
}
|
|
138
|
+
if (v.static_proof === true && (!v.tool || !v.tool_output)) {
|
|
139
|
+
finding._verification_rejection =
|
|
140
|
+
'static_proof=true but missing required provenance (tool, tool_output)';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Step 6: Default — evidence exists but no reproduction
|
|
145
|
+
return {
|
|
146
|
+
status: 'DETECTED',
|
|
147
|
+
message:
|
|
148
|
+
'Evidence exists but no automated reproduction was performed. Manual review recommended.',
|
|
149
|
+
provenance: createProvenance('default', { reason: 'no_independent_proof' }),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function runValidation(findings, repoRoot) {
|
|
154
|
+
const validated = [];
|
|
155
|
+
console.log(sectionHeader('Validation Engine Execution'));
|
|
156
|
+
|
|
157
|
+
for (const finding of findings) {
|
|
158
|
+
const titlePreview = (finding.title || '').substring(0, 50);
|
|
159
|
+
console.log(`${BOLD}Validating finding: ${finding.id} - ${titlePreview}...${RESET}`);
|
|
160
|
+
|
|
161
|
+
// Log output isolation events
|
|
162
|
+
if (finding._isolation_note) {
|
|
163
|
+
console.log(` ${RED}⚠ OUTPUT ISOLATION:${RESET} ${finding._isolation_note}`);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (finding.validation && finding.validation.required !== false) {
|
|
167
|
+
const result = runSafeValidation(finding, repoRoot);
|
|
168
|
+
|
|
169
|
+
if (result.status === 'VERIFIED') console.log(` ${GREEN}Result:${RESET} ${result.message}`);
|
|
170
|
+
else if (result.status === 'DETECTED')
|
|
171
|
+
console.log(` ${YELLOW}Result:${RESET} ${result.message}`);
|
|
172
|
+
else console.log(` ${BLUE}Result:${RESET} ${result.message}`);
|
|
173
|
+
|
|
174
|
+
if (finding._verification_rejection) {
|
|
175
|
+
console.log(` ${RED}⚠ REJECTED:${RESET} ${finding._verification_rejection}`);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
finding.status = result.status;
|
|
179
|
+
finding.validation = {
|
|
180
|
+
...finding.validation,
|
|
181
|
+
result: result.message,
|
|
182
|
+
provenance: result.provenance,
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
// Redact secrets before output
|
|
186
|
+
validated.push(redactFinding(finding));
|
|
187
|
+
} else {
|
|
188
|
+
console.log(` ${BLUE}Result:${RESET} Validation not required by finding.`);
|
|
189
|
+
finding.validation = {
|
|
190
|
+
...finding.validation,
|
|
191
|
+
result: 'Skipped — validation not required.',
|
|
192
|
+
};
|
|
193
|
+
validated.push(redactFinding(finding));
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return validated;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function main() {
|
|
200
|
+
const args = process.argv.slice(2);
|
|
201
|
+
const inputPath =
|
|
202
|
+
args.find(a => a.startsWith('--in='))?.split('=')[1] || 'correlated_findings.json';
|
|
203
|
+
const outPath =
|
|
204
|
+
args.find(a => a.startsWith('--out='))?.split('=')[1] || 'validated_findings.json';
|
|
205
|
+
const repoRoot = args.find(a => a.startsWith('--repo='))?.split('=')[1] || null;
|
|
206
|
+
|
|
207
|
+
console.log(`${BOLD}Tribunal — Validation Engine${RESET}`);
|
|
208
|
+
if (!fs.existsSync(inputPath)) {
|
|
209
|
+
console.log(RED + `Input file not found: ${inputPath}` + RESET);
|
|
210
|
+
process.exit(1);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
let data;
|
|
214
|
+
try {
|
|
215
|
+
data = JSON.parse(fs.readFileSync(inputPath, 'utf8'));
|
|
216
|
+
} catch (e) {
|
|
217
|
+
console.error(RED + 'Failed to parse JSON:' + RESET, e.message);
|
|
218
|
+
process.exit(1);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const findings = data.findings || [];
|
|
222
|
+
if (findings.length === 0) {
|
|
223
|
+
console.log(YELLOW + 'No findings to validate.' + RESET);
|
|
224
|
+
fs.writeFileSync(outPath, JSON.stringify({ findings: [] }, null, 2));
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const validated = runValidation(findings, repoRoot);
|
|
229
|
+
fs.writeFileSync(outPath, JSON.stringify({ findings: validated }, null, 2));
|
|
230
|
+
|
|
231
|
+
console.log(`\nWritten validated findings to: ${outPath}`);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
if (require.main === module) {
|
|
235
|
+
main();
|
|
236
|
+
}
|
|
@@ -260,7 +260,87 @@ function generateImprovementProposal(targetSkillOrGap, context = {}, agentDir) {
|
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
+
/**
|
|
264
|
+
* Formalized Schema Validation per Skill (Phase 5/6)
|
|
265
|
+
* Validates skill inputs/outputs against Canonical Contracts dynamically using Zod.
|
|
266
|
+
*
|
|
267
|
+
* @param {Object} skillContract - The loaded Canonical Skill Contract (YAML/JSON parsed)
|
|
268
|
+
* @param {Object} payload - The input or output payload to validate
|
|
269
|
+
* @param {string} payloadType - 'input' | 'output'
|
|
270
|
+
* @returns {{ valid: boolean, errors: Array<string> }}
|
|
271
|
+
*/
|
|
272
|
+
function validateSkillSchema(skillContract, payload, payloadType = 'input') {
|
|
273
|
+
if (!skillContract || typeof skillContract !== 'object') {
|
|
274
|
+
return { valid: false, errors: ['Invalid skill contract provided for validation.'] };
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
const contractDefinition = skillContract.contract || skillContract;
|
|
278
|
+
|
|
279
|
+
// If the skill doesn't formally define inputs/outputs, it is technically "valid" by lack of constraints,
|
|
280
|
+
// but we flag it as an unverified boundary.
|
|
281
|
+
if (!contractDefinition.inputs && payloadType === 'input') {
|
|
282
|
+
return { valid: true, errors: ['WARNING: Skill lacks formal input schema contract.'] };
|
|
283
|
+
}
|
|
284
|
+
if (!contractDefinition.outputs && payloadType === 'output') {
|
|
285
|
+
return { valid: true, errors: ['WARNING: Skill lacks formal output schema contract.'] };
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
const schemaDef =
|
|
289
|
+
payloadType === 'input' ? contractDefinition.inputs : contractDefinition.outputs;
|
|
290
|
+
if (!schemaDef) {
|
|
291
|
+
return { valid: true, errors: [] };
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
try {
|
|
295
|
+
const { z } = require('zod');
|
|
296
|
+
|
|
297
|
+
// Dynamically build a Zod object schema based on the skill contract definition
|
|
298
|
+
const shape = {};
|
|
299
|
+
for (const [key, fieldDef] of Object.entries(schemaDef)) {
|
|
300
|
+
let zType = z.any();
|
|
301
|
+
|
|
302
|
+
const typeStr = (fieldDef.type || 'string').toLowerCase();
|
|
303
|
+
if (typeStr === 'string') zType = z.string();
|
|
304
|
+
else if (typeStr === 'number') zType = z.number();
|
|
305
|
+
else if (typeStr === 'boolean') zType = z.boolean();
|
|
306
|
+
else if (typeStr === 'array') zType = z.array(z.any());
|
|
307
|
+
else if (typeStr === 'object') zType = z.record(z.any());
|
|
308
|
+
|
|
309
|
+
if (fieldDef.required !== false) {
|
|
310
|
+
// Assume required by default unless explicitly false
|
|
311
|
+
} else {
|
|
312
|
+
zType = zType.optional();
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (fieldDef.description) {
|
|
316
|
+
zType = zType.describe(fieldDef.description);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
shape[key] = zType;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const schema = z.object(shape).strict(); // Strict to prevent payload poisoning
|
|
323
|
+
|
|
324
|
+
try {
|
|
325
|
+
schema.parse(payload);
|
|
326
|
+
return { valid: true, errors: [] };
|
|
327
|
+
} catch (e) {
|
|
328
|
+
if (e && Array.isArray(e.errors)) {
|
|
329
|
+
return {
|
|
330
|
+
valid: false,
|
|
331
|
+
errors: e.errors.map(err => `${(err.path || []).join('.')}: ${err.message}`),
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
return { valid: false, errors: [e.message] };
|
|
335
|
+
}
|
|
336
|
+
} catch (err) {
|
|
337
|
+
// If Zod is unavailable, fallback gracefully
|
|
338
|
+
return { valid: false, errors: [`Schema validation engine error: ${err.message}`] };
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
263
342
|
module.exports = {
|
|
264
343
|
auditPostExecution,
|
|
265
344
|
generateImprovementProposal,
|
|
345
|
+
validateSkillSchema,
|
|
266
346
|
};
|