tribunal-kit 9.2.6 → 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.
Files changed (836) hide show
  1. package/.agent/ARCHITECTURE.md +4 -4
  2. package/.agent/data/skill_certification_ledger.jsonl +40 -0
  3. package/.agent/data/skill_ontology.json +138 -0
  4. package/.agent/history/architecture-intelligence.html +1487 -401
  5. package/.agent/history/architecture-model.json +16130 -5802
  6. package/.agent/history/architecture-verification.json +6 -6
  7. package/.agent/routing_index.json +656 -1566
  8. package/.agent/rules/GEMINI.md +1 -1
  9. package/.agent/scripts/adaptive_execution.js +704 -0
  10. package/.agent/scripts/architecture_diff.js +60 -17
  11. package/.agent/scripts/architecture_extractor.js +60 -21
  12. package/.agent/scripts/architecture_health.js +58 -21
  13. package/.agent/scripts/architecture_intelligence.js +3100 -0
  14. package/.agent/scripts/architecture_verifier.js +46 -13
  15. package/.agent/scripts/architecture_visualizer.js +1536 -421
  16. package/.agent/scripts/blast_radius_engine.js +64 -24
  17. package/.agent/scripts/capability_evolution.js +555 -0
  18. package/.agent/scripts/concept_extractor.js +240 -0
  19. package/.agent/scripts/consideration_engine.js +284 -0
  20. package/.agent/scripts/context_broker.js +397 -31
  21. package/.agent/scripts/corpus_certification_orchestrator.js +502 -0
  22. package/.agent/scripts/corpus_validation_engine.js +311 -0
  23. package/.agent/scripts/coverage_engine.js +102 -0
  24. package/.agent/scripts/cross_domain_engine.js +1883 -0
  25. package/.agent/scripts/engineering_memory.js +1442 -0
  26. package/.agent/scripts/final_corpus_validation_engine.js +405 -0
  27. package/.agent/scripts/integrity_manifest.js +1 -5
  28. package/.agent/scripts/intent_extractor.js +130 -0
  29. package/.agent/scripts/judgment_engine.js +790 -0
  30. package/.agent/scripts/materiality_engine.js +251 -0
  31. package/.agent/scripts/outcome_engine.js +639 -0
  32. package/.agent/scripts/outcome_optimization_engine.js +1632 -0
  33. package/.agent/scripts/routing_evaluation_engine.js +184 -0
  34. package/.agent/scripts/simulation_engine.js +1478 -0
  35. package/.agent/scripts/skill_behavior_classifier.js +90 -0
  36. package/.agent/scripts/skill_behavior_harness.js +105 -0
  37. package/.agent/scripts/skill_certification_engine.js +586 -0
  38. package/.agent/scripts/skill_contract_engine.js +424 -0
  39. package/.agent/scripts/skill_coverage_expansion_engine.js +505 -0
  40. package/.agent/scripts/skill_evidence_acquisition_engine.js +535 -0
  41. package/.agent/scripts/skill_evidence_engine.js +83 -0
  42. package/.agent/scripts/skill_expectation_engine.js +38 -0
  43. package/.agent/scripts/skill_fixture_engine.js +24 -0
  44. package/.agent/scripts/skill_human_validation.js +32 -0
  45. package/.agent/scripts/skill_intelligence.js +1300 -0
  46. package/.agent/scripts/skill_observation_engine.js +25 -0
  47. package/.agent/scripts/skill_ontology_engine.js +83 -0
  48. package/.agent/scripts/skill_quality_engine.js +343 -0
  49. package/.agent/scripts/skill_reconstruction_engine.js +164 -0
  50. package/.agent/scripts/skill_remediation_engine.js +326 -0
  51. package/.agent/scripts/skill_scenario_engine.js +108 -0
  52. package/.agent/scripts/skill_test_authoring_engine.js +1011 -0
  53. package/.agent/scripts/verification_auditor.js +346 -0
  54. package/.agent/skill-intelligence/taxonomy/engineering-concepts.json +555 -0
  55. package/.agent/skill_topic_map.json +15 -55
  56. package/.agent/skills/12-principles-of-animation/SKILL.md +9 -0
  57. package/.agent/skills/60fps-animation/SKILL.md +14 -0
  58. package/.agent/skills/accessible-animation/SKILL.md +9 -0
  59. package/.agent/skills/adapt/SKILL.md +8 -0
  60. package/.agent/skills/adr-generation/SKILL.md +9 -0
  61. package/.agent/skills/advanced-rag-pipelines/SKILL.md +9 -0
  62. package/.agent/skills/agent-organizer/SKILL.md +8 -0
  63. package/.agent/skills/agent-syscall-guidelines/SKILL.md +10 -0
  64. package/.agent/skills/agentic-patterns/SKILL.md +9 -0
  65. package/.agent/skills/agentic-workflows-2026/SKILL.md +8 -0
  66. package/.agent/skills/agentshield-security/SKILL.md +16 -0
  67. package/.agent/skills/ai-app-hardening/SKILL.md +7 -0
  68. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +9 -0
  69. package/.agent/skills/animation-on-scroll/SKILL.md +9 -0
  70. package/.agent/skills/animation-systems/SKILL.md +8 -0
  71. package/.agent/skills/antfu-conventions/SKILL.md +9 -0
  72. package/.agent/skills/anti-slop-enforcement/SKILL.md +11 -0
  73. package/.agent/skills/api-patterns/SKILL.md +9 -0
  74. package/.agent/skills/api-security-auditor/SKILL.md +10 -0
  75. package/.agent/skills/app-builder/SKILL.md +8 -0
  76. package/.agent/skills/appflow-wireframe/SKILL.md +9 -0
  77. package/.agent/skills/apple-design/SKILL.md +8 -0
  78. package/.agent/skills/architecture/SKILL.md +8 -0
  79. package/.agent/skills/architecture-drift/SKILL.md +9 -0
  80. package/.agent/skills/architecture-intelligence/SKILL.md +17 -0
  81. package/.agent/skills/audit-and-fix/SKILL.md +8 -0
  82. package/.agent/skills/authentication-best-practices/SKILL.md +10 -0
  83. package/.agent/skills/autonomous-execution/SKILL.md +9 -0
  84. package/.agent/skills/backend-alembic/SKILL.md +16 -0
  85. package/.agent/skills/backend-architecture-auditor/SKILL.md +16 -0
  86. package/.agent/skills/backend-mongodb/SKILL.md +10 -0
  87. package/.agent/skills/backend-mysql/SKILL.md +16 -0
  88. package/.agent/skills/backend-performance-auditor/SKILL.md +10 -0
  89. package/.agent/skills/backend-postgresql/SKILL.md +10 -0
  90. package/.agent/skills/backend-redis/SKILL.md +10 -0
  91. package/.agent/skills/backend-security-expert/SKILL.md +10 -0
  92. package/.agent/skills/backend-sqlalchemy/SKILL.md +10 -0
  93. package/.agent/skills/backend-sqlite/SKILL.md +10 -0
  94. package/.agent/skills/backend-testing-auditor/SKILL.md +15 -0
  95. package/.agent/skills/baseline-ui/SKILL.md +8 -0
  96. package/.agent/skills/bash-linux/SKILL.md +9 -0
  97. package/.agent/skills/behavioral-modes/SKILL.md +9 -0
  98. package/.agent/skills/better-colors/SKILL.md +9 -0
  99. package/.agent/skills/better-typography/SKILL.md +9 -0
  100. package/.agent/skills/better-ui/SKILL.md +8 -0
  101. package/.agent/skills/bolder/SKILL.md +8 -0
  102. package/.agent/skills/brainstorming/SKILL.md +8 -0
  103. package/.agent/skills/browser-audit/SKILL.md +9 -0
  104. package/.agent/skills/browser-native-ai/SKILL.md +8 -0
  105. package/.agent/skills/build-primitive/SKILL.md +8 -0
  106. package/.agent/skills/building-native-ui/SKILL.md +7 -0
  107. package/.agent/skills/cicd-pro/SKILL.md +9 -0
  108. package/.agent/skills/clarify/SKILL.md +8 -0
  109. package/.agent/skills/clean-code/SKILL.md +8 -0
  110. package/.agent/skills/cloud-architect/SKILL.md +8 -0
  111. package/.agent/skills/cobejs/SKILL.md +8 -0
  112. package/.agent/skills/code-review-checklist/SKILL.md +9 -0
  113. package/.agent/skills/codebase-design/SKILL.md +14 -0
  114. package/.agent/skills/colorize/SKILL.md +8 -0
  115. package/.agent/skills/compact-landing/SKILL.md +9 -0
  116. package/.agent/skills/company-logos/SKILL.md +9 -0
  117. package/.agent/skills/config-validator/SKILL.md +9 -0
  118. package/.agent/skills/containerization-pro/SKILL.md +9 -0
  119. package/.agent/skills/context-engineering-pro/SKILL.md +10 -0
  120. package/.agent/skills/create-design-md/SKILL.md +7 -0
  121. package/.agent/skills/critique/SKILL.md +8 -0
  122. package/.agent/skills/csharp-developer/SKILL.md +9 -0
  123. package/.agent/skills/data-validation-schemas/SKILL.md +8 -0
  124. package/.agent/skills/database-design/SKILL.md +8 -0
  125. package/.agent/skills/delight/SKILL.md +8 -0
  126. package/.agent/skills/deployment-procedures/SKILL.md +9 -0
  127. package/.agent/skills/design-lab/SKILL.md +8 -0
  128. package/.agent/skills/devops-engineer/SKILL.md +9 -0
  129. package/.agent/skills/devops-incident-responder/SKILL.md +16 -0
  130. package/.agent/skills/diagnosing-bugs/SKILL.md +9 -0
  131. package/.agent/skills/distill/SKILL.md +8 -0
  132. package/.agent/skills/documentation-templates/SKILL.md +9 -0
  133. package/.agent/skills/domain-modeling/SKILL.md +9 -0
  134. package/.agent/skills/duckdb-analytical-sql/SKILL.md +10 -0
  135. package/.agent/skills/edge-ai-mobile/SKILL.md +8 -0
  136. package/.agent/skills/edge-computing/SKILL.md +9 -0
  137. package/.agent/skills/emil-design-eng/SKILL.md +9 -0
  138. package/.agent/skills/error-resilience/SKILL.md +8 -0
  139. package/.agent/skills/expo-router-v4/SKILL.md +9 -0
  140. package/.agent/skills/extract-design-system/SKILL.md +9 -0
  141. package/.agent/skills/fabel-protocol/SKILL.md +9 -0
  142. package/.agent/skills/failure-mode-analysis/SKILL.md +10 -0
  143. package/.agent/skills/fastapi-pro/SKILL.md +9 -0
  144. package/.agent/skills/fixing-accessibility/SKILL.md +9 -0
  145. package/.agent/skills/fixing-metadata/SKILL.md +9 -0
  146. package/.agent/skills/fixing-motion-performance/SKILL.md +9 -0
  147. package/.agent/skills/framer-motion-expert/SKILL.md +9 -0
  148. package/.agent/skills/frontend-design/SKILL.md +7 -0
  149. package/.agent/skills/frontend-security-expert/SKILL.md +9 -0
  150. package/.agent/skills/game-design-expert/SKILL.md +9 -0
  151. package/.agent/skills/game-engineering-expert/SKILL.md +16 -0
  152. package/.agent/skills/generative-ui-expert/SKILL.md +9 -0
  153. package/.agent/skills/geo-fundamentals/SKILL.md +9 -0
  154. package/.agent/skills/git-pro/SKILL.md +9 -0
  155. package/.agent/skills/github-operations/SKILL.md +9 -0
  156. package/.agent/skills/gpt-taste/SKILL.md +9 -0
  157. package/.agent/skills/graph-engineering/SKILL.md +16 -0
  158. package/.agent/skills/gsap-core/SKILL.md +9 -0
  159. package/.agent/skills/gsap-frameworks/SKILL.md +9 -0
  160. package/.agent/skills/gsap-performance/SKILL.md +9 -0
  161. package/.agent/skills/gsap-plugins/SKILL.md +9 -0
  162. package/.agent/skills/gsap-react/SKILL.md +9 -0
  163. package/.agent/skills/gsap-scrolltrigger/SKILL.md +9 -0
  164. package/.agent/skills/gsap-timeline/SKILL.md +9 -0
  165. package/.agent/skills/gsap-utils/SKILL.md +9 -0
  166. package/.agent/skills/harden/SKILL.md +8 -0
  167. package/.agent/skills/harness-protocol/SKILL.md +9 -0
  168. package/.agent/skills/hf-cli/SKILL.md +11 -0
  169. package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
  170. package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
  171. package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
  172. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
  173. package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
  174. package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
  175. package/.agent/skills/hf-mem/SKILL.md +11 -0
  176. package/.agent/skills/huggingface-best/SKILL.md +9 -0
  177. package/.agent/skills/huggingface-community-evals/SKILL.md +11 -0
  178. package/.agent/skills/huggingface-datasets/SKILL.md +10 -0
  179. package/.agent/skills/huggingface-gradio/SKILL.md +10 -0
  180. package/.agent/skills/huggingface-llm-trainer/SKILL.md +10 -0
  181. package/.agent/skills/huggingface-local-models/SKILL.md +10 -0
  182. package/.agent/skills/huggingface-lora-space-builder/SKILL.md +11 -0
  183. package/.agent/skills/huggingface-paper-publisher/SKILL.md +11 -0
  184. package/.agent/skills/huggingface-papers/SKILL.md +11 -0
  185. package/.agent/skills/huggingface-spaces/SKILL.md +10 -0
  186. package/.agent/skills/huggingface-tool-builder/SKILL.md +11 -0
  187. package/.agent/skills/huggingface-trackio/SKILL.md +11 -0
  188. package/.agent/skills/huggingface-vision-trainer/SKILL.md +11 -0
  189. package/.agent/skills/huggingface-zerogpu/SKILL.md +11 -0
  190. package/.agent/skills/human-gate-negotiation/SKILL.md +11 -0
  191. package/.agent/skills/i18n-localization/SKILL.md +9 -0
  192. package/.agent/skills/impeccable/SKILL.md +8 -0
  193. package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -0
  194. package/.agent/skills/improve-ui/SKILL.md +8 -0
  195. package/.agent/skills/intelligent-routing/SKILL.md +9 -0
  196. package/.agent/skills/knowledge-graph/SKILL.md +9 -0
  197. package/.agent/skills/landing-page/SKILL.md +9 -0
  198. package/.agent/skills/lint-and-validate/SKILL.md +9 -0
  199. package/.agent/skills/llm-engineering/SKILL.md +9 -0
  200. package/.agent/skills/local-first/SKILL.md +10 -0
  201. package/.agent/skills/lottie-animation/SKILL.md +9 -0
  202. package/.agent/skills/marquee-loop/SKILL.md +9 -0
  203. package/.agent/skills/masked-reveal/SKILL.md +9 -0
  204. package/.agent/skills/mcp-builder/SKILL.md +9 -0
  205. package/.agent/skills/micro-interaction/SKILL.md +9 -0
  206. package/.agent/skills/mobile-design/SKILL.md +7 -0
  207. package/.agent/skills/monorepo-management/SKILL.md +9 -0
  208. package/.agent/skills/morphing-icons/SKILL.md +9 -0
  209. package/.agent/skills/motion-engineering/SKILL.md +8 -0
  210. package/.agent/skills/nextjs-react-expert/SKILL.md +10 -0
  211. package/.agent/skills/nodejs-best-practices/SKILL.md +16 -0
  212. package/.agent/skills/observability/SKILL.md +8 -0
  213. package/.agent/skills/opentelemetry-observability/SKILL.md +9 -0
  214. package/.agent/skills/page-transition-animation/SKILL.md +10 -0
  215. package/.agent/skills/parallel-agents/SKILL.md +15 -0
  216. package/.agent/skills/performance-profiling/SKILL.md +9 -0
  217. package/.agent/skills/plan-writing/SKILL.md +8 -0
  218. package/.agent/skills/platform-engineer/SKILL.md +9 -0
  219. package/.agent/skills/platform-engineering-opentofu/SKILL.md +10 -0
  220. package/.agent/skills/playwright-ai-e2e/SKILL.md +9 -0
  221. package/.agent/skills/playwright-best-practices/SKILL.md +16 -0
  222. package/.agent/skills/polish/SKILL.md +8 -0
  223. package/.agent/skills/powershell-windows/SKILL.md +9 -0
  224. package/.agent/skills/pricing-page/SKILL.md +9 -0
  225. package/.agent/skills/product-aware-heuristics/SKILL.md +10 -0
  226. package/.agent/skills/progressive-blur/SKILL.md +9 -0
  227. package/.agent/skills/project-idioms/SKILL.md +8 -0
  228. package/.agent/skills/property-based-testing/SKILL.md +9 -0
  229. package/.agent/skills/python-patterns/SKILL.md +9 -0
  230. package/.agent/skills/python-pro/SKILL.md +9 -0
  231. package/.agent/skills/quieter/SKILL.md +8 -0
  232. package/.agent/skills/react-doctor/SKILL.md +9 -0
  233. package/.agent/skills/react-specialist/SKILL.md +9 -0
  234. package/.agent/skills/readme-builder/SKILL.md +9 -0
  235. package/.agent/skills/realtime-patterns/SKILL.md +9 -0
  236. package/.agent/skills/red-team-tactics/SKILL.md +16 -0
  237. package/.agent/skills/redesign-skill/SKILL.md +9 -0
  238. package/.agent/skills/review-animations/SKILL.md +8 -0
  239. package/.agent/skills/rust-pro/SKILL.md +9 -0
  240. package/.agent/skills/semantic-filesystem-navigation/SKILL.md +11 -0
  241. package/.agent/skills/seo-fundamentals/SKILL.md +9 -0
  242. package/.agent/skills/server-management/SKILL.md +8 -0
  243. package/.agent/skills/session-log-interrogation/SKILL.md +11 -0
  244. package/.agent/skills/shadcn-ui-expert/SKILL.md +9 -0
  245. package/.agent/skills/shape/SKILL.md +8 -0
  246. package/.agent/skills/skill-creator/SKILL.md +9 -0
  247. package/.agent/skills/soft-skill/SKILL.md +9 -0
  248. package/.agent/skills/sounds-on-the-web/SKILL.md +9 -0
  249. package/.agent/skills/sql-pro/SKILL.md +9 -0
  250. package/.agent/skills/subagent-driven-development/SKILL.md +11 -0
  251. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +17 -0
  252. package/.agent/skills/svg-animation/SKILL.md +9 -0
  253. package/.agent/skills/swiftui-expert/SKILL.md +9 -0
  254. package/.agent/skills/swiss-design/SKILL.md +8 -0
  255. package/.agent/skills/system-design-pro/SKILL.md +9 -0
  256. package/.agent/skills/systematic-debugging/SKILL.md +14 -0
  257. package/.agent/skills/tailwind-patterns/SKILL.md +9 -0
  258. package/.agent/skills/taste-skill/SKILL.md +9 -0
  259. package/.agent/skills/tdd-workflow/SKILL.md +9 -0
  260. package/.agent/skills/test-result-analyzer/SKILL.md +9 -0
  261. package/.agent/skills/testing-patterns/SKILL.md +8 -0
  262. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
  263. package/.agent/skills/thinking-protocol/SKILL.md +10 -0
  264. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
  265. package/.agent/skills/train-sentence-transformers/SKILL.md +10 -0
  266. package/.agent/skills/transformers-js/SKILL.md +8 -0
  267. package/.agent/skills/transitions-dev/SKILL.md +8 -0
  268. package/.agent/skills/trend-researcher/SKILL.md +9 -0
  269. package/.agent/skills/tribunal-instincts-memory/SKILL.md +11 -0
  270. package/.agent/skills/trl-training/SKILL.md +9 -0
  271. package/.agent/skills/typescript-advanced/SKILL.md +9 -0
  272. package/.agent/skills/typeset/SKILL.md +8 -0
  273. package/.agent/skills/ui-reasoning-engine/SKILL.md +9 -0
  274. package/.agent/skills/ui-skill-packs/SKILL.md +9 -0
  275. package/.agent/skills/ui-skills-root/SKILL.md +9 -0
  276. package/.agent/skills/ui-ux-pro-max/SKILL.md +9 -0
  277. package/.agent/skills/ui-ux-researcher/SKILL.md +8 -0
  278. package/.agent/skills/vector-search-pgvector/SKILL.md +10 -0
  279. package/.agent/skills/verification-before-completion/SKILL.md +9 -0
  280. package/.agent/skills/vue-expert/SKILL.md +9 -0
  281. package/.agent/skills/vulnerability-scanner/SKILL.md +9 -0
  282. package/.agent/skills/web-accessibility-auditor/SKILL.md +16 -0
  283. package/.agent/skills/web-design-guidelines/SKILL.md +9 -0
  284. package/.agent/skills/web-quality-audit/SKILL.md +10 -0
  285. package/.agent/skills/webapp-testing/SKILL.md +8 -0
  286. package/.agent/skills/webgpu-performance/SKILL.md +9 -0
  287. package/.agent/skills/whimsy-injector/SKILL.md +9 -0
  288. package/.agent/skills/workflow-optimizer/SKILL.md +9 -0
  289. package/.agent/skills/zero-trust-passkeys/SKILL.md +10 -0
  290. package/.agent/skills_inventory.json +502 -3167
  291. package/.agent/workflows/arch.md +96 -80
  292. package/.agent/workflows/skill-intelligence.md +216 -0
  293. package/.agents/skills/12-principles-of-animation/SKILL.md +9 -0
  294. package/.agents/skills/60fps-animation/SKILL.md +14 -0
  295. package/.agents/skills/accessible-animation/SKILL.md +9 -0
  296. package/.agents/skills/adapt/SKILL.md +8 -0
  297. package/.agents/skills/adr-generation/SKILL.md +9 -0
  298. package/.agents/skills/advanced-rag-pipelines/SKILL.md +9 -0
  299. package/.agents/skills/agent-organizer/SKILL.md +8 -0
  300. package/.agents/skills/agent-syscall-guidelines/SKILL.md +10 -0
  301. package/.agents/skills/agentic-patterns/SKILL.md +9 -0
  302. package/.agents/skills/agentic-workflows-2026/SKILL.md +8 -0
  303. package/.agents/skills/agentshield-security/SKILL.md +16 -0
  304. package/.agents/skills/ai-app-hardening/SKILL.md +7 -0
  305. package/.agents/skills/ai-prompt-injection-defense/SKILL.md +9 -0
  306. package/.agents/skills/animation-on-scroll/SKILL.md +9 -0
  307. package/.agents/skills/animation-systems/SKILL.md +8 -0
  308. package/.agents/skills/antfu-conventions/SKILL.md +9 -0
  309. package/.agents/skills/anti-slop-enforcement/SKILL.md +11 -0
  310. package/.agents/skills/api-patterns/SKILL.md +9 -0
  311. package/.agents/skills/api-security-auditor/SKILL.md +10 -0
  312. package/.agents/skills/app-builder/SKILL.md +8 -0
  313. package/.agents/skills/appflow-wireframe/SKILL.md +9 -0
  314. package/.agents/skills/apple-design/SKILL.md +8 -0
  315. package/.agents/skills/architecture/SKILL.md +8 -0
  316. package/.agents/skills/architecture-drift/SKILL.md +9 -0
  317. package/.agents/skills/architecture-intelligence/SKILL.md +17 -0
  318. package/.agents/skills/audit-and-fix/SKILL.md +8 -0
  319. package/.agents/skills/authentication-best-practices/SKILL.md +10 -0
  320. package/.agents/skills/autonomous-execution/SKILL.md +9 -0
  321. package/.agents/skills/backend-alembic/SKILL.md +16 -0
  322. package/.agents/skills/backend-architecture-auditor/SKILL.md +16 -0
  323. package/.agents/skills/backend-mongodb/SKILL.md +10 -0
  324. package/.agents/skills/backend-mysql/SKILL.md +16 -0
  325. package/.agents/skills/backend-performance-auditor/SKILL.md +10 -0
  326. package/.agents/skills/backend-postgresql/SKILL.md +10 -0
  327. package/.agents/skills/backend-redis/SKILL.md +10 -0
  328. package/.agents/skills/backend-security-expert/SKILL.md +10 -0
  329. package/.agents/skills/backend-sqlalchemy/SKILL.md +10 -0
  330. package/.agents/skills/backend-sqlite/SKILL.md +10 -0
  331. package/.agents/skills/backend-testing-auditor/SKILL.md +15 -0
  332. package/.agents/skills/baseline-ui/SKILL.md +8 -0
  333. package/.agents/skills/bash-linux/SKILL.md +9 -0
  334. package/.agents/skills/behavioral-modes/SKILL.md +9 -0
  335. package/.agents/skills/better-colors/SKILL.md +9 -0
  336. package/.agents/skills/better-typography/SKILL.md +9 -0
  337. package/.agents/skills/better-ui/SKILL.md +8 -0
  338. package/.agents/skills/bolder/SKILL.md +8 -0
  339. package/.agents/skills/brainstorming/SKILL.md +8 -0
  340. package/.agents/skills/browser-audit/SKILL.md +9 -0
  341. package/.agents/skills/browser-native-ai/SKILL.md +8 -0
  342. package/.agents/skills/build-primitive/SKILL.md +8 -0
  343. package/.agents/skills/building-native-ui/SKILL.md +7 -0
  344. package/.agents/skills/cicd-pro/SKILL.md +9 -0
  345. package/.agents/skills/clarify/SKILL.md +8 -0
  346. package/.agents/skills/clean-code/SKILL.md +8 -0
  347. package/.agents/skills/cloud-architect/SKILL.md +8 -0
  348. package/.agents/skills/cobejs/SKILL.md +8 -0
  349. package/.agents/skills/code-review-checklist/SKILL.md +9 -0
  350. package/.agents/skills/codebase-design/SKILL.md +14 -0
  351. package/.agents/skills/colorize/SKILL.md +8 -0
  352. package/.agents/skills/compact-landing/SKILL.md +9 -0
  353. package/.agents/skills/company-logos/SKILL.md +9 -0
  354. package/.agents/skills/config-validator/SKILL.md +9 -0
  355. package/.agents/skills/containerization-pro/SKILL.md +9 -0
  356. package/.agents/skills/context-engineering-pro/SKILL.md +10 -0
  357. package/.agents/skills/create-design-md/SKILL.md +7 -0
  358. package/.agents/skills/critique/SKILL.md +8 -0
  359. package/.agents/skills/csharp-developer/SKILL.md +9 -0
  360. package/.agents/skills/data-validation-schemas/SKILL.md +8 -0
  361. package/.agents/skills/database-design/SKILL.md +8 -0
  362. package/.agents/skills/delight/SKILL.md +8 -0
  363. package/.agents/skills/deployment-procedures/SKILL.md +9 -0
  364. package/.agents/skills/design-lab/SKILL.md +8 -0
  365. package/.agents/skills/devops-engineer/SKILL.md +9 -0
  366. package/.agents/skills/devops-incident-responder/SKILL.md +16 -0
  367. package/.agents/skills/diagnosing-bugs/SKILL.md +9 -0
  368. package/.agents/skills/distill/SKILL.md +8 -0
  369. package/.agents/skills/documentation-templates/SKILL.md +9 -0
  370. package/.agents/skills/domain-modeling/SKILL.md +9 -0
  371. package/.agents/skills/duckdb-analytical-sql/SKILL.md +10 -0
  372. package/.agents/skills/edge-ai-mobile/SKILL.md +8 -0
  373. package/.agents/skills/edge-computing/SKILL.md +9 -0
  374. package/.agents/skills/emil-design-eng/SKILL.md +9 -0
  375. package/.agents/skills/error-resilience/SKILL.md +8 -0
  376. package/.agents/skills/expo-router-v4/SKILL.md +9 -0
  377. package/.agents/skills/extract-design-system/SKILL.md +9 -0
  378. package/.agents/skills/fabel-protocol/SKILL.md +9 -0
  379. package/.agents/skills/failure-mode-analysis/SKILL.md +10 -0
  380. package/.agents/skills/fastapi-pro/SKILL.md +9 -0
  381. package/.agents/skills/fixing-accessibility/SKILL.md +9 -0
  382. package/.agents/skills/fixing-metadata/SKILL.md +9 -0
  383. package/.agents/skills/fixing-motion-performance/SKILL.md +9 -0
  384. package/.agents/skills/framer-motion-expert/SKILL.md +9 -0
  385. package/.agents/skills/frontend-design/SKILL.md +7 -0
  386. package/.agents/skills/frontend-security-expert/SKILL.md +9 -0
  387. package/.agents/skills/game-design-expert/SKILL.md +9 -0
  388. package/.agents/skills/game-engineering-expert/SKILL.md +16 -0
  389. package/.agents/skills/generative-ui-expert/SKILL.md +9 -0
  390. package/.agents/skills/geo-fundamentals/SKILL.md +9 -0
  391. package/.agents/skills/git-pro/SKILL.md +9 -0
  392. package/.agents/skills/github-operations/SKILL.md +9 -0
  393. package/.agents/skills/gpt-taste/SKILL.md +9 -0
  394. package/.agents/skills/graph-engineering/SKILL.md +16 -0
  395. package/.agents/skills/gsap-core/SKILL.md +9 -0
  396. package/.agents/skills/gsap-frameworks/SKILL.md +9 -0
  397. package/.agents/skills/gsap-performance/SKILL.md +9 -0
  398. package/.agents/skills/gsap-plugins/SKILL.md +9 -0
  399. package/.agents/skills/gsap-react/SKILL.md +9 -0
  400. package/.agents/skills/gsap-scrolltrigger/SKILL.md +9 -0
  401. package/.agents/skills/gsap-timeline/SKILL.md +9 -0
  402. package/.agents/skills/gsap-utils/SKILL.md +9 -0
  403. package/.agents/skills/harden/SKILL.md +8 -0
  404. package/.agents/skills/harness-protocol/SKILL.md +9 -0
  405. package/.agents/skills/hf-cli/SKILL.md +11 -0
  406. package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
  407. package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
  408. package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
  409. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
  410. package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
  411. package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
  412. package/.agents/skills/hf-mem/SKILL.md +11 -0
  413. package/.agents/skills/huggingface-best/SKILL.md +9 -0
  414. package/.agents/skills/huggingface-community-evals/SKILL.md +11 -0
  415. package/.agents/skills/huggingface-datasets/SKILL.md +10 -0
  416. package/.agents/skills/huggingface-gradio/SKILL.md +10 -0
  417. package/.agents/skills/huggingface-llm-trainer/SKILL.md +10 -0
  418. package/.agents/skills/huggingface-local-models/SKILL.md +10 -0
  419. package/.agents/skills/huggingface-lora-space-builder/SKILL.md +11 -0
  420. package/.agents/skills/huggingface-paper-publisher/SKILL.md +11 -0
  421. package/.agents/skills/huggingface-papers/SKILL.md +11 -0
  422. package/.agents/skills/huggingface-spaces/SKILL.md +10 -0
  423. package/.agents/skills/huggingface-tool-builder/SKILL.md +11 -0
  424. package/.agents/skills/huggingface-trackio/SKILL.md +11 -0
  425. package/.agents/skills/huggingface-vision-trainer/SKILL.md +11 -0
  426. package/.agents/skills/huggingface-zerogpu/SKILL.md +11 -0
  427. package/.agents/skills/human-gate-negotiation/SKILL.md +11 -0
  428. package/.agents/skills/i18n-localization/SKILL.md +9 -0
  429. package/.agents/skills/impeccable/SKILL.md +8 -0
  430. package/.agents/skills/improve-codebase-architecture/SKILL.md +10 -0
  431. package/.agents/skills/improve-ui/SKILL.md +8 -0
  432. package/.agents/skills/intelligent-routing/SKILL.md +9 -0
  433. package/.agents/skills/knowledge-graph/SKILL.md +9 -0
  434. package/.agents/skills/landing-page/SKILL.md +9 -0
  435. package/.agents/skills/lint-and-validate/SKILL.md +9 -0
  436. package/.agents/skills/llm-engineering/SKILL.md +9 -0
  437. package/.agents/skills/local-first/SKILL.md +10 -0
  438. package/.agents/skills/lottie-animation/SKILL.md +9 -0
  439. package/.agents/skills/marquee-loop/SKILL.md +9 -0
  440. package/.agents/skills/masked-reveal/SKILL.md +9 -0
  441. package/.agents/skills/mcp-builder/SKILL.md +9 -0
  442. package/.agents/skills/micro-interaction/SKILL.md +9 -0
  443. package/.agents/skills/mobile-design/SKILL.md +7 -0
  444. package/.agents/skills/monorepo-management/SKILL.md +9 -0
  445. package/.agents/skills/morphing-icons/SKILL.md +9 -0
  446. package/.agents/skills/motion-engineering/SKILL.md +8 -0
  447. package/.agents/skills/nextjs-react-expert/SKILL.md +10 -0
  448. package/.agents/skills/nodejs-best-practices/SKILL.md +16 -0
  449. package/.agents/skills/observability/SKILL.md +8 -0
  450. package/.agents/skills/opentelemetry-observability/SKILL.md +9 -0
  451. package/.agents/skills/page-transition-animation/SKILL.md +10 -0
  452. package/.agents/skills/parallel-agents/SKILL.md +15 -0
  453. package/.agents/skills/performance-profiling/SKILL.md +9 -0
  454. package/.agents/skills/plan-writing/SKILL.md +8 -0
  455. package/.agents/skills/platform-engineer/SKILL.md +9 -0
  456. package/.agents/skills/platform-engineering-opentofu/SKILL.md +10 -0
  457. package/.agents/skills/playwright-ai-e2e/SKILL.md +9 -0
  458. package/.agents/skills/playwright-best-practices/SKILL.md +16 -0
  459. package/.agents/skills/polish/SKILL.md +8 -0
  460. package/.agents/skills/powershell-windows/SKILL.md +9 -0
  461. package/.agents/skills/pricing-page/SKILL.md +9 -0
  462. package/.agents/skills/product-aware-heuristics/SKILL.md +10 -0
  463. package/.agents/skills/progressive-blur/SKILL.md +9 -0
  464. package/.agents/skills/project-idioms/SKILL.md +8 -0
  465. package/.agents/skills/property-based-testing/SKILL.md +9 -0
  466. package/.agents/skills/python-patterns/SKILL.md +9 -0
  467. package/.agents/skills/python-pro/SKILL.md +9 -0
  468. package/.agents/skills/quieter/SKILL.md +8 -0
  469. package/.agents/skills/react-doctor/SKILL.md +9 -0
  470. package/.agents/skills/react-specialist/SKILL.md +9 -0
  471. package/.agents/skills/readme-builder/SKILL.md +9 -0
  472. package/.agents/skills/realtime-patterns/SKILL.md +9 -0
  473. package/.agents/skills/red-team-tactics/SKILL.md +16 -0
  474. package/.agents/skills/redesign-skill/SKILL.md +9 -0
  475. package/.agents/skills/review-animations/SKILL.md +8 -0
  476. package/.agents/skills/rust-pro/SKILL.md +9 -0
  477. package/.agents/skills/semantic-filesystem-navigation/SKILL.md +11 -0
  478. package/.agents/skills/seo-fundamentals/SKILL.md +9 -0
  479. package/.agents/skills/server-management/SKILL.md +8 -0
  480. package/.agents/skills/session-log-interrogation/SKILL.md +11 -0
  481. package/.agents/skills/shadcn-ui-expert/SKILL.md +9 -0
  482. package/.agents/skills/shape/SKILL.md +8 -0
  483. package/.agents/skills/skill-creator/SKILL.md +9 -0
  484. package/.agents/skills/soft-skill/SKILL.md +9 -0
  485. package/.agents/skills/sounds-on-the-web/SKILL.md +9 -0
  486. package/.agents/skills/sql-pro/SKILL.md +9 -0
  487. package/.agents/skills/subagent-driven-development/SKILL.md +11 -0
  488. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +17 -0
  489. package/.agents/skills/svg-animation/SKILL.md +9 -0
  490. package/.agents/skills/swiftui-expert/SKILL.md +9 -0
  491. package/.agents/skills/swiss-design/SKILL.md +8 -0
  492. package/.agents/skills/system-design-pro/SKILL.md +9 -0
  493. package/.agents/skills/systematic-debugging/SKILL.md +14 -0
  494. package/.agents/skills/tailwind-patterns/SKILL.md +9 -0
  495. package/.agents/skills/taste-skill/SKILL.md +9 -0
  496. package/.agents/skills/tdd-workflow/SKILL.md +9 -0
  497. package/.agents/skills/test-result-analyzer/SKILL.md +9 -0
  498. package/.agents/skills/testing-patterns/SKILL.md +8 -0
  499. package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
  500. package/.agents/skills/thinking-protocol/SKILL.md +10 -0
  501. package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
  502. package/.agents/skills/train-sentence-transformers/SKILL.md +10 -0
  503. package/.agents/skills/transformers-js/SKILL.md +8 -0
  504. package/.agents/skills/transitions-dev/SKILL.md +8 -0
  505. package/.agents/skills/trend-researcher/SKILL.md +9 -0
  506. package/.agents/skills/tribunal-instincts-memory/SKILL.md +11 -0
  507. package/.agents/skills/trl-training/SKILL.md +9 -0
  508. package/.agents/skills/typescript-advanced/SKILL.md +9 -0
  509. package/.agents/skills/typeset/SKILL.md +8 -0
  510. package/.agents/skills/ui-reasoning-engine/SKILL.md +9 -0
  511. package/.agents/skills/ui-skill-packs/SKILL.md +9 -0
  512. package/.agents/skills/ui-skills-root/SKILL.md +9 -0
  513. package/.agents/skills/ui-ux-pro-max/SKILL.md +9 -0
  514. package/.agents/skills/ui-ux-researcher/SKILL.md +8 -0
  515. package/.agents/skills/vector-search-pgvector/SKILL.md +10 -0
  516. package/.agents/skills/verification-before-completion/SKILL.md +9 -0
  517. package/.agents/skills/vue-expert/SKILL.md +9 -0
  518. package/.agents/skills/vulnerability-scanner/SKILL.md +9 -0
  519. package/.agents/skills/web-accessibility-auditor/SKILL.md +16 -0
  520. package/.agents/skills/web-design-guidelines/SKILL.md +9 -0
  521. package/.agents/skills/web-quality-audit/SKILL.md +10 -0
  522. package/.agents/skills/webapp-testing/SKILL.md +8 -0
  523. package/.agents/skills/webgpu-performance/SKILL.md +9 -0
  524. package/.agents/skills/whimsy-injector/SKILL.md +9 -0
  525. package/.agents/skills/workflow-optimizer/SKILL.md +9 -0
  526. package/.agents/skills/zero-trust-passkeys/SKILL.md +10 -0
  527. package/CONTRIBUTING.md +2 -2
  528. package/README.md +25 -25
  529. package/bin/adapter-install.js +1 -1
  530. package/bin/mcp-server.js +249 -0
  531. package/package.json +11 -8
  532. package/plugins/core-plugin.json +1 -1
  533. package/plugins/gemini/extension.json +1 -1
  534. package/skills/12-principles-of-animation/SKILL.md +9 -0
  535. package/skills/60fps-animation/SKILL.md +14 -0
  536. package/skills/accessible-animation/SKILL.md +9 -0
  537. package/skills/adapt/SKILL.md +8 -0
  538. package/skills/adr-generation/SKILL.md +9 -0
  539. package/skills/advanced-rag-pipelines/SKILL.md +9 -0
  540. package/skills/agent-organizer/SKILL.md +8 -0
  541. package/skills/agent-syscall-guidelines/SKILL.md +10 -0
  542. package/skills/agentic-patterns/SKILL.md +9 -0
  543. package/skills/agentic-workflows-2026/SKILL.md +8 -0
  544. package/skills/agentshield-security/SKILL.md +16 -0
  545. package/skills/ai-app-hardening/SKILL.md +7 -0
  546. package/skills/ai-prompt-injection-defense/SKILL.md +9 -0
  547. package/skills/animation-on-scroll/SKILL.md +9 -0
  548. package/skills/animation-systems/SKILL.md +8 -0
  549. package/skills/antfu-conventions/SKILL.md +9 -0
  550. package/skills/anti-slop-enforcement/SKILL.md +11 -0
  551. package/skills/api-patterns/SKILL.md +9 -0
  552. package/skills/api-security-auditor/SKILL.md +10 -0
  553. package/skills/app-builder/SKILL.md +8 -0
  554. package/skills/appflow-wireframe/SKILL.md +9 -0
  555. package/skills/apple-design/SKILL.md +8 -0
  556. package/skills/architecture/SKILL.md +8 -0
  557. package/skills/architecture-drift/SKILL.md +9 -0
  558. package/skills/architecture-intelligence/SKILL.md +17 -0
  559. package/skills/audit-and-fix/SKILL.md +8 -0
  560. package/skills/authentication-best-practices/SKILL.md +10 -0
  561. package/skills/autonomous-execution/SKILL.md +9 -0
  562. package/skills/backend-alembic/SKILL.md +16 -0
  563. package/skills/backend-architecture-auditor/SKILL.md +16 -0
  564. package/skills/backend-mongodb/SKILL.md +10 -0
  565. package/skills/backend-mysql/SKILL.md +16 -0
  566. package/skills/backend-performance-auditor/SKILL.md +10 -0
  567. package/skills/backend-postgresql/SKILL.md +10 -0
  568. package/skills/backend-redis/SKILL.md +10 -0
  569. package/skills/backend-security-expert/SKILL.md +10 -0
  570. package/skills/backend-sqlalchemy/SKILL.md +10 -0
  571. package/skills/backend-sqlite/SKILL.md +10 -0
  572. package/skills/backend-testing-auditor/SKILL.md +15 -0
  573. package/skills/baseline-ui/SKILL.md +8 -0
  574. package/skills/bash-linux/SKILL.md +9 -0
  575. package/skills/behavioral-modes/SKILL.md +9 -0
  576. package/skills/better-colors/SKILL.md +9 -0
  577. package/skills/better-typography/SKILL.md +9 -0
  578. package/skills/better-ui/SKILL.md +8 -0
  579. package/skills/bolder/SKILL.md +8 -0
  580. package/skills/brainstorming/SKILL.md +8 -0
  581. package/skills/browser-audit/SKILL.md +9 -0
  582. package/skills/browser-native-ai/SKILL.md +8 -0
  583. package/skills/build-primitive/SKILL.md +8 -0
  584. package/skills/building-native-ui/SKILL.md +7 -0
  585. package/skills/cicd-pro/SKILL.md +9 -0
  586. package/skills/clarify/SKILL.md +8 -0
  587. package/skills/clean-code/SKILL.md +8 -0
  588. package/skills/cloud-architect/SKILL.md +8 -0
  589. package/skills/cobejs/SKILL.md +8 -0
  590. package/skills/code-review-checklist/SKILL.md +9 -0
  591. package/skills/codebase-design/SKILL.md +14 -0
  592. package/skills/colorize/SKILL.md +8 -0
  593. package/skills/compact-landing/SKILL.md +9 -0
  594. package/skills/company-logos/SKILL.md +9 -0
  595. package/skills/config-validator/SKILL.md +9 -0
  596. package/skills/containerization-pro/SKILL.md +9 -0
  597. package/skills/context-engineering-pro/SKILL.md +10 -0
  598. package/skills/create-design-md/SKILL.md +7 -0
  599. package/skills/critique/SKILL.md +8 -0
  600. package/skills/csharp-developer/SKILL.md +9 -0
  601. package/skills/data-validation-schemas/SKILL.md +8 -0
  602. package/skills/database-design/SKILL.md +8 -0
  603. package/skills/delight/SKILL.md +8 -0
  604. package/skills/deployment-procedures/SKILL.md +9 -0
  605. package/skills/design-lab/SKILL.md +8 -0
  606. package/skills/devops-engineer/SKILL.md +9 -0
  607. package/skills/devops-incident-responder/SKILL.md +16 -0
  608. package/skills/diagnosing-bugs/SKILL.md +9 -0
  609. package/skills/distill/SKILL.md +8 -0
  610. package/skills/documentation-templates/SKILL.md +9 -0
  611. package/skills/domain-modeling/SKILL.md +9 -0
  612. package/skills/duckdb-analytical-sql/SKILL.md +10 -0
  613. package/skills/edge-ai-mobile/SKILL.md +8 -0
  614. package/skills/edge-computing/SKILL.md +9 -0
  615. package/skills/emil-design-eng/SKILL.md +9 -0
  616. package/skills/error-resilience/SKILL.md +8 -0
  617. package/skills/expo-router-v4/SKILL.md +9 -0
  618. package/skills/extract-design-system/SKILL.md +9 -0
  619. package/skills/fabel-protocol/SKILL.md +9 -0
  620. package/skills/failure-mode-analysis/SKILL.md +10 -0
  621. package/skills/fastapi-pro/SKILL.md +9 -0
  622. package/skills/fixing-accessibility/SKILL.md +9 -0
  623. package/skills/fixing-metadata/SKILL.md +9 -0
  624. package/skills/fixing-motion-performance/SKILL.md +9 -0
  625. package/skills/framer-motion-expert/SKILL.md +9 -0
  626. package/skills/frontend-design/SKILL.md +7 -0
  627. package/skills/frontend-security-expert/SKILL.md +9 -0
  628. package/skills/game-design-expert/SKILL.md +9 -0
  629. package/skills/game-engineering-expert/SKILL.md +16 -0
  630. package/skills/generative-ui-expert/SKILL.md +9 -0
  631. package/skills/geo-fundamentals/SKILL.md +9 -0
  632. package/skills/git-pro/SKILL.md +9 -0
  633. package/skills/github-operations/SKILL.md +9 -0
  634. package/skills/gpt-taste/SKILL.md +9 -0
  635. package/skills/graph-engineering/SKILL.md +16 -0
  636. package/skills/gsap-core/SKILL.md +9 -0
  637. package/skills/gsap-frameworks/SKILL.md +9 -0
  638. package/skills/gsap-performance/SKILL.md +9 -0
  639. package/skills/gsap-plugins/SKILL.md +9 -0
  640. package/skills/gsap-react/SKILL.md +9 -0
  641. package/skills/gsap-scrolltrigger/SKILL.md +9 -0
  642. package/skills/gsap-timeline/SKILL.md +9 -0
  643. package/skills/gsap-utils/SKILL.md +9 -0
  644. package/skills/harden/SKILL.md +8 -0
  645. package/skills/harness-protocol/SKILL.md +9 -0
  646. package/skills/hf-cli/SKILL.md +11 -0
  647. package/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
  648. package/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
  649. package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
  650. package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
  651. package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
  652. package/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
  653. package/skills/hf-mem/SKILL.md +11 -0
  654. package/skills/huggingface-best/SKILL.md +9 -0
  655. package/skills/huggingface-community-evals/SKILL.md +11 -0
  656. package/skills/huggingface-datasets/SKILL.md +10 -0
  657. package/skills/huggingface-gradio/SKILL.md +10 -0
  658. package/skills/huggingface-llm-trainer/SKILL.md +10 -0
  659. package/skills/huggingface-local-models/SKILL.md +10 -0
  660. package/skills/huggingface-lora-space-builder/SKILL.md +11 -0
  661. package/skills/huggingface-paper-publisher/SKILL.md +11 -0
  662. package/skills/huggingface-papers/SKILL.md +11 -0
  663. package/skills/huggingface-spaces/SKILL.md +10 -0
  664. package/skills/huggingface-tool-builder/SKILL.md +11 -0
  665. package/skills/huggingface-trackio/SKILL.md +11 -0
  666. package/skills/huggingface-vision-trainer/SKILL.md +11 -0
  667. package/skills/huggingface-zerogpu/SKILL.md +11 -0
  668. package/skills/human-gate-negotiation/SKILL.md +11 -0
  669. package/skills/i18n-localization/SKILL.md +9 -0
  670. package/skills/impeccable/SKILL.md +8 -0
  671. package/skills/improve-codebase-architecture/SKILL.md +10 -0
  672. package/skills/improve-ui/SKILL.md +8 -0
  673. package/skills/intelligent-routing/SKILL.md +9 -0
  674. package/skills/knowledge-graph/SKILL.md +9 -0
  675. package/skills/landing-page/SKILL.md +9 -0
  676. package/skills/lint-and-validate/SKILL.md +9 -0
  677. package/skills/llm-engineering/SKILL.md +9 -0
  678. package/skills/local-first/SKILL.md +10 -0
  679. package/skills/lottie-animation/SKILL.md +9 -0
  680. package/skills/marquee-loop/SKILL.md +9 -0
  681. package/skills/masked-reveal/SKILL.md +9 -0
  682. package/skills/mcp-builder/SKILL.md +9 -0
  683. package/skills/micro-interaction/SKILL.md +9 -0
  684. package/skills/mobile-design/SKILL.md +7 -0
  685. package/skills/monorepo-management/SKILL.md +9 -0
  686. package/skills/morphing-icons/SKILL.md +9 -0
  687. package/skills/motion-engineering/SKILL.md +8 -0
  688. package/skills/nextjs-react-expert/SKILL.md +10 -0
  689. package/skills/nodejs-best-practices/SKILL.md +16 -0
  690. package/skills/observability/SKILL.md +8 -0
  691. package/skills/opentelemetry-observability/SKILL.md +9 -0
  692. package/skills/page-transition-animation/SKILL.md +10 -0
  693. package/skills/parallel-agents/SKILL.md +15 -0
  694. package/skills/performance-profiling/SKILL.md +9 -0
  695. package/skills/plan-writing/SKILL.md +8 -0
  696. package/skills/platform-engineer/SKILL.md +9 -0
  697. package/skills/platform-engineering-opentofu/SKILL.md +10 -0
  698. package/skills/playwright-ai-e2e/SKILL.md +9 -0
  699. package/skills/playwright-best-practices/SKILL.md +16 -0
  700. package/skills/polish/SKILL.md +8 -0
  701. package/skills/powershell-windows/SKILL.md +9 -0
  702. package/skills/pricing-page/SKILL.md +9 -0
  703. package/skills/product-aware-heuristics/SKILL.md +10 -0
  704. package/skills/progressive-blur/SKILL.md +9 -0
  705. package/skills/project-idioms/SKILL.md +8 -0
  706. package/skills/property-based-testing/SKILL.md +9 -0
  707. package/skills/python-patterns/SKILL.md +9 -0
  708. package/skills/python-pro/SKILL.md +9 -0
  709. package/skills/quieter/SKILL.md +8 -0
  710. package/skills/react-doctor/SKILL.md +9 -0
  711. package/skills/react-specialist/SKILL.md +9 -0
  712. package/skills/readme-builder/SKILL.md +9 -0
  713. package/skills/realtime-patterns/SKILL.md +9 -0
  714. package/skills/red-team-tactics/SKILL.md +16 -0
  715. package/skills/redesign-skill/SKILL.md +9 -0
  716. package/skills/review-animations/SKILL.md +8 -0
  717. package/skills/rust-pro/SKILL.md +9 -0
  718. package/skills/semantic-filesystem-navigation/SKILL.md +11 -0
  719. package/skills/seo-fundamentals/SKILL.md +9 -0
  720. package/skills/server-management/SKILL.md +8 -0
  721. package/skills/session-log-interrogation/SKILL.md +11 -0
  722. package/skills/shadcn-ui-expert/SKILL.md +9 -0
  723. package/skills/shape/SKILL.md +8 -0
  724. package/skills/skill-creator/SKILL.md +9 -0
  725. package/skills/soft-skill/SKILL.md +9 -0
  726. package/skills/sounds-on-the-web/SKILL.md +9 -0
  727. package/skills/sql-pro/SKILL.md +9 -0
  728. package/skills/subagent-driven-development/SKILL.md +11 -0
  729. package/skills/supabase-postgres-best-practices/SKILL.md +17 -0
  730. package/skills/svg-animation/SKILL.md +9 -0
  731. package/skills/swiftui-expert/SKILL.md +9 -0
  732. package/skills/swiss-design/SKILL.md +8 -0
  733. package/skills/system-design-pro/SKILL.md +9 -0
  734. package/skills/systematic-debugging/SKILL.md +14 -0
  735. package/skills/tailwind-patterns/SKILL.md +9 -0
  736. package/skills/taste-skill/SKILL.md +9 -0
  737. package/skills/tdd-workflow/SKILL.md +9 -0
  738. package/skills/test-result-analyzer/SKILL.md +9 -0
  739. package/skills/testing-patterns/SKILL.md +8 -0
  740. package/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
  741. package/skills/thinking-protocol/SKILL.md +10 -0
  742. package/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
  743. package/skills/train-sentence-transformers/SKILL.md +10 -0
  744. package/skills/transformers-js/SKILL.md +8 -0
  745. package/skills/transitions-dev/SKILL.md +8 -0
  746. package/skills/trend-researcher/SKILL.md +9 -0
  747. package/skills/tribunal-instincts-memory/SKILL.md +11 -0
  748. package/skills/trl-training/SKILL.md +9 -0
  749. package/skills/typescript-advanced/SKILL.md +9 -0
  750. package/skills/typeset/SKILL.md +8 -0
  751. package/skills/ui-reasoning-engine/SKILL.md +9 -0
  752. package/skills/ui-skill-packs/SKILL.md +9 -0
  753. package/skills/ui-skills-root/SKILL.md +9 -0
  754. package/skills/ui-ux-pro-max/SKILL.md +9 -0
  755. package/skills/ui-ux-researcher/SKILL.md +8 -0
  756. package/skills/vector-search-pgvector/SKILL.md +10 -0
  757. package/skills/verification-before-completion/SKILL.md +9 -0
  758. package/skills/vue-expert/SKILL.md +9 -0
  759. package/skills/vulnerability-scanner/SKILL.md +9 -0
  760. package/skills/web-accessibility-auditor/SKILL.md +16 -0
  761. package/skills/web-design-guidelines/SKILL.md +9 -0
  762. package/skills/web-quality-audit/SKILL.md +10 -0
  763. package/skills/webapp-testing/SKILL.md +8 -0
  764. package/skills/webgpu-performance/SKILL.md +9 -0
  765. package/skills/whimsy-injector/SKILL.md +9 -0
  766. package/skills/workflow-optimizer/SKILL.md +9 -0
  767. package/skills/zero-trust-passkeys/SKILL.md +10 -0
  768. package/src/browser/index.js +2 -1
  769. package/src/browser/launcher.js +41 -1
  770. package/src/cli.js +21 -1
  771. package/src/commands/arch.js +261 -172
  772. package/src/commands/context.js +27 -8
  773. package/src/commands/init.js +538 -462
  774. package/src/commands/intelligence.js +86 -0
  775. package/src/commands/learn.js +21 -6
  776. package/src/commands/memory.js +10 -1
  777. package/src/commands/native.js +12 -3
  778. package/src/commands/review.js +235 -1
  779. package/src/commands/skill-intelligence.js +1165 -0
  780. package/src/commands/system1.js +562 -312
  781. package/src/context/ranker.js +337 -339
  782. package/src/evaluation/evaluation_runner.js +207 -0
  783. package/src/evaluation/scenario_registry.js +82 -0
  784. package/src/evolution/engine.js +296 -295
  785. package/src/execution/agent_correction_engine.js +76 -0
  786. package/src/execution/controlled_write_service.js +301 -0
  787. package/src/execution/correction_run_engine.js +234 -0
  788. package/src/execution/correction_verifier.js +85 -0
  789. package/src/execution/evidence_aggregator.js +54 -0
  790. package/src/execution/finding_diff_engine.js +59 -0
  791. package/src/execution/index.js +42 -0
  792. package/src/execution/prompt_isolator.js +145 -0
  793. package/src/execution/provider_adapter.js +495 -0
  794. package/src/execution/resolution_certificate.js +53 -0
  795. package/src/execution/resolution_policy.js +70 -0
  796. package/src/execution/review_executor.js +335 -0
  797. package/src/execution/reviewer_registry.js +137 -0
  798. package/src/execution/schemas.js +298 -0
  799. package/src/execution/transaction_manager.js +237 -0
  800. package/src/execution/validation_runner.js +174 -0
  801. package/src/execution/verdict_aggregator.js +181 -0
  802. package/src/execution/write_policy_engine.js +95 -0
  803. package/src/intelligence/adaptive_correction.js +72 -0
  804. package/src/intelligence/adaptive_reviewer_orchestrator.js +123 -0
  805. package/src/intelligence/case_indexer.js +166 -0
  806. package/src/intelligence/case_memory.js +149 -0
  807. package/src/intelligence/case_similarity.js +86 -0
  808. package/src/intelligence/cbr_engine.js +90 -0
  809. package/src/intelligence/evidence_optimization.js +106 -0
  810. package/src/intelligence/failure_intelligence.js +95 -0
  811. package/src/intelligence/governance_drift_detector.js +75 -0
  812. package/src/intelligence/governance_simulator.js +115 -0
  813. package/src/intelligence/human_intelligence.js +46 -0
  814. package/src/intelligence/mcp_tools.js +87 -0
  815. package/src/intelligence/reviewer_performance.js +94 -0
  816. package/src/intelligence/risk_prediction_engine.js +92 -0
  817. package/src/intelligence/token_intelligence.js +73 -0
  818. package/src/synthesis/claim_check_separator.js +294 -271
  819. package/src/system1/browser_intelligence.js +300 -0
  820. package/src/system1/constants.js +49 -0
  821. package/src/system1/decision_engine.js +498 -0
  822. package/src/system1/evidence_engine.js +602 -0
  823. package/src/system1/evolution_pipeline.js +581 -0
  824. package/src/system1/index.d.ts +114 -0
  825. package/src/system1/index.js +102 -0
  826. package/src/system1/reviewer_orchestrator.js +477 -0
  827. package/src/tui/banner.js +26 -47
  828. package/src/tui/index.js +4 -0
  829. package/src/tui/panel.js +55 -0
  830. package/src/tui/progress.js +42 -0
  831. package/src/tui/reviewer-grid.js +9 -10
  832. package/src/tui/theme.js +59 -16
  833. package/src/tui/tree.js +57 -29
  834. package/src/tui/wizard.js +22 -18
  835. package/src/utils/fs.js +27 -0
  836. package/.agent/skills/local-first-architecture/SKILL.md +0 -123
@@ -0,0 +1,298 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * schemas.js — Strict Schemas and Parsers for Review Execution
5
+ * =============================================================
6
+ * Phase 1C: Strict Result Schema
7
+ *
8
+ * Guarantees:
9
+ * 1. Valid verdicts: APPROVED, WARNING, REJECTED, ERROR
10
+ * 2. Valid severities: INFO, LOW, MEDIUM, HIGH, CRITICAL
11
+ * 3. Reject malformed model output — never silently parse prose as approval.
12
+ * 4. Malformed output becomes ERROR.
13
+ */
14
+
15
+ const VALID_VERDICTS = Object.freeze(new Set(['APPROVED', 'WARNING', 'REJECTED', 'ERROR']));
16
+ const VALID_SEVERITIES = Object.freeze(new Set(['INFO', 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL']));
17
+
18
+ /**
19
+ * Normalizes severity string to valid uppercase enum.
20
+ * @param {string} sev
21
+ * @returns {'INFO'|'LOW'|'MEDIUM'|'HIGH'|'CRITICAL'}
22
+ */
23
+ function normalizeSeverity(sev) {
24
+ if (typeof sev !== 'string') return 'MEDIUM';
25
+ const upper = sev.trim().toUpperCase();
26
+ if (VALID_SEVERITIES.has(upper)) return upper;
27
+ if (upper === 'MINOR') return 'LOW';
28
+ if (upper === 'IMPORTANT') return 'HIGH';
29
+ if (upper === 'WARN' || upper === 'WARNING') return 'MEDIUM';
30
+ return 'MEDIUM';
31
+ }
32
+
33
+ /**
34
+ * Validates a single review finding against strict schema.
35
+ * @param {any} item
36
+ * @param {number} index
37
+ * @returns {{ valid: boolean, finding?: Object, error?: string }}
38
+ */
39
+ function validateFinding(item, index) {
40
+ if (!item || typeof item !== 'object' || Array.isArray(item)) {
41
+ return { valid: false, error: `Finding at index ${index} must be an object.` };
42
+ }
43
+
44
+ const id = typeof item.id === 'string' && item.id.trim() ? item.id.trim() : `F-${index + 1}`;
45
+ const severity = normalizeSeverity(item.severity);
46
+ const title =
47
+ typeof item.title === 'string' && item.title.trim()
48
+ ? item.title.trim()
49
+ : typeof item.issue === 'string' && item.issue.trim()
50
+ ? item.issue.trim()
51
+ : typeof item.description === 'string' && item.description.trim()
52
+ ? item.description.trim().slice(0, 80)
53
+ : `Issue ${index + 1}`;
54
+
55
+ const description =
56
+ typeof item.description === 'string' && item.description.trim()
57
+ ? item.description.trim()
58
+ : typeof item.issue === 'string' && item.issue.trim()
59
+ ? item.issue.trim()
60
+ : title;
61
+
62
+ const evidence = typeof item.evidence === 'string' ? item.evidence.trim() : '';
63
+ const location =
64
+ typeof item.location === 'string'
65
+ ? item.location.trim()
66
+ : typeof item.file === 'string'
67
+ ? `${item.file}${item.line ? ':' + item.line : ''}`
68
+ : 'unspecified';
69
+
70
+ const recommendation =
71
+ typeof item.recommendation === 'string' && item.recommendation.trim()
72
+ ? item.recommendation.trim()
73
+ : typeof item.fix === 'string' && item.fix.trim()
74
+ ? item.fix.trim()
75
+ : 'Review and address identified issue';
76
+
77
+ return {
78
+ valid: true,
79
+ finding: {
80
+ id,
81
+ severity,
82
+ title,
83
+ description,
84
+ evidence,
85
+ location,
86
+ recommendation,
87
+ },
88
+ };
89
+ }
90
+
91
+ /**
92
+ * Strips markdown code fences from raw LLM output before parsing.
93
+ * @param {string} raw
94
+ * @returns {string}
95
+ */
96
+ function extractJsonPayload(raw) {
97
+ if (typeof raw !== 'string') return '';
98
+ let cleaned = raw.trim();
99
+
100
+ // If wrapped in ```json ... ``` or ``` ... ```
101
+ const codeBlockMatch = cleaned.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);
102
+ if (codeBlockMatch && codeBlockMatch[1]) {
103
+ cleaned = codeBlockMatch[1].trim();
104
+ } else {
105
+ // If output has extra leading text, attempt to find first '{' and last '}'
106
+ const firstBrace = cleaned.indexOf('{');
107
+ const lastBrace = cleaned.lastIndexOf('}');
108
+ if (firstBrace !== -1 && lastBrace > firstBrace) {
109
+ cleaned = cleaned.substring(firstBrace, lastBrace + 1).trim();
110
+ }
111
+ }
112
+
113
+ return cleaned;
114
+ }
115
+
116
+ /**
117
+ * Parses and strictly validates raw model output against the ReviewerResult schema.
118
+ * If output is malformed, returns a fail-closed ERROR result.
119
+ *
120
+ * @param {string|Object} rawOutput
121
+ * @param {string} [reviewerId='reviewer']
122
+ * @returns {{
123
+ * isValid: boolean,
124
+ * verdict: 'APPROVED'|'WARNING'|'REJECTED'|'ERROR',
125
+ * confidence: number,
126
+ * findings: Array<Object>,
127
+ * recommendations: Array<string>,
128
+ * error?: string,
129
+ * rawParsed?: Object
130
+ * }}
131
+ */
132
+ function parseAndValidateReviewerOutput(rawOutput, reviewerId = 'reviewer') {
133
+ if (rawOutput === null || rawOutput === undefined) {
134
+ return {
135
+ isValid: false,
136
+ verdict: 'ERROR',
137
+ confidence: 0.0,
138
+ findings: [],
139
+ recommendations: [],
140
+ error: 'EMPTY_OUTPUT: Model returned null or undefined.',
141
+ };
142
+ }
143
+
144
+ let parsed = null;
145
+ if (typeof rawOutput === 'object' && !Array.isArray(rawOutput)) {
146
+ parsed = rawOutput;
147
+ } else if (typeof rawOutput === 'string') {
148
+ const jsonStr = extractJsonPayload(rawOutput);
149
+ if (!jsonStr) {
150
+ return {
151
+ isValid: false,
152
+ verdict: 'ERROR',
153
+ confidence: 0.0,
154
+ findings: [],
155
+ recommendations: [],
156
+ error: 'EMPTY_PAYLOAD: No valid JSON block detected in model response.',
157
+ };
158
+ }
159
+ try {
160
+ parsed = JSON.parse(jsonStr);
161
+ } catch (parseErr) {
162
+ return {
163
+ isValid: false,
164
+ verdict: 'ERROR',
165
+ confidence: 0.0,
166
+ findings: [],
167
+ recommendations: [],
168
+ error: `JSON_PARSE_ERROR: Failed to parse model output as JSON (${parseErr.message}).`,
169
+ };
170
+ }
171
+ } else {
172
+ return {
173
+ isValid: false,
174
+ verdict: 'ERROR',
175
+ confidence: 0.0,
176
+ findings: [],
177
+ recommendations: [],
178
+ error: `INVALID_TYPE: Expected string or object, got ${typeof rawOutput}.`,
179
+ };
180
+ }
181
+
182
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
183
+ return {
184
+ isValid: false,
185
+ verdict: 'ERROR',
186
+ confidence: 0.0,
187
+ findings: [],
188
+ recommendations: [],
189
+ error: 'INVALID_ROOT: Root of model output must be a JSON object.',
190
+ };
191
+ }
192
+
193
+ // 1. Validate verdict
194
+ const rawVerdict =
195
+ typeof parsed.verdict === 'string' ? parsed.verdict.trim().toUpperCase() : null;
196
+ if (!rawVerdict || !VALID_VERDICTS.has(rawVerdict)) {
197
+ return {
198
+ isValid: false,
199
+ verdict: 'ERROR',
200
+ confidence: 0.0,
201
+ findings: [],
202
+ recommendations: [],
203
+ error: `INVALID_VERDICT: Verdict must be one of [APPROVED, WARNING, REJECTED, ERROR], got "${parsed.verdict}".`,
204
+ rawParsed: parsed,
205
+ };
206
+ }
207
+
208
+ // 2. Validate confidence
209
+ let confidence = 0.0;
210
+ if (typeof parsed.confidence === 'number' && !isNaN(parsed.confidence)) {
211
+ confidence = Math.max(0.0, Math.min(1.0, parseFloat(parsed.confidence.toFixed(2))));
212
+ } else if (typeof parsed.confidence === 'string') {
213
+ const num = parseFloat(parsed.confidence);
214
+ if (!isNaN(num)) {
215
+ confidence = Math.max(0.0, Math.min(1.0, parseFloat(num.toFixed(2))));
216
+ }
217
+ }
218
+
219
+ // 3. Validate findings
220
+ const findings = [];
221
+ if (parsed.findings !== undefined && parsed.findings !== null) {
222
+ if (!Array.isArray(parsed.findings)) {
223
+ return {
224
+ isValid: false,
225
+ verdict: 'ERROR',
226
+ confidence: 0.0,
227
+ findings: [],
228
+ recommendations: [],
229
+ error: 'INVALID_FINDINGS: "findings" must be an array.',
230
+ rawParsed: parsed,
231
+ };
232
+ }
233
+ for (let i = 0; i < parsed.findings.length; i++) {
234
+ const res = validateFinding(parsed.findings[i], i);
235
+ if (!res.valid) {
236
+ return {
237
+ isValid: false,
238
+ verdict: 'ERROR',
239
+ confidence: 0.0,
240
+ findings: [],
241
+ recommendations: [],
242
+ error: `INVALID_FINDING: ${res.error}`,
243
+ rawParsed: parsed,
244
+ };
245
+ }
246
+ findings.push(res.finding);
247
+ }
248
+ }
249
+
250
+ // 4. Validate recommendations
251
+ const recommendations = [];
252
+ if (parsed.recommendations !== undefined && parsed.recommendations !== null) {
253
+ if (!Array.isArray(parsed.recommendations)) {
254
+ return {
255
+ isValid: false,
256
+ verdict: 'ERROR',
257
+ confidence: 0.0,
258
+ findings: [],
259
+ recommendations: [],
260
+ error: 'INVALID_RECOMMENDATIONS: "recommendations" must be an array.',
261
+ rawParsed: parsed,
262
+ };
263
+ }
264
+ for (const rec of parsed.recommendations) {
265
+ if (typeof rec === 'string' && rec.trim()) {
266
+ recommendations.push(rec.trim());
267
+ }
268
+ }
269
+ }
270
+
271
+ // 5. Invariant check: If reviewer claims APPROVED but includes CRITICAL or HIGH findings,
272
+ // that is a contradictory malformed response. Coerce to REJECTED.
273
+ const hasCritical = findings.some(f => f.severity === 'CRITICAL');
274
+ const hasHigh = findings.some(f => f.severity === 'HIGH');
275
+ let finalVerdict = rawVerdict;
276
+
277
+ if (rawVerdict === 'APPROVED' && (hasCritical || hasHigh)) {
278
+ finalVerdict = 'REJECTED';
279
+ }
280
+
281
+ return {
282
+ isValid: true,
283
+ verdict: finalVerdict,
284
+ confidence,
285
+ findings,
286
+ recommendations,
287
+ rawParsed: parsed,
288
+ };
289
+ }
290
+
291
+ module.exports = {
292
+ VALID_VERDICTS,
293
+ VALID_SEVERITIES,
294
+ normalizeSeverity,
295
+ validateFinding,
296
+ extractJsonPayload,
297
+ parseAndValidateReviewerOutput,
298
+ };
@@ -0,0 +1,237 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const crypto = require('crypto');
6
+
7
+ /**
8
+ * Phase 2B: Transaction Manager
9
+ * Implements a production-grade multi-file transaction engine (WAL) for Tribunal Kit.
10
+ * Lifecycle: PREPARE -> VALIDATE -> COMMIT / ROLLBACK
11
+ */
12
+ class TransactionManager {
13
+ constructor(options = {}) {
14
+ this.workspace = options.workspace || process.cwd();
15
+ this.agentDir = options.agentDir || path.join(this.workspace, '.agent');
16
+ this.txDir = path.join(this.agentDir, 'transactions');
17
+ this.lockPath = path.join(this.txDir, 'tx.lock');
18
+ this.walPath = path.join(this.txDir, 'wal.json');
19
+ this.undoDir = path.join(this.txDir, 'undo');
20
+
21
+ this.activeTxId = null;
22
+ this.operations = []; // Array of { action: 'WRITE'|'DELETE', path, data, encoding }
23
+ this.state = 'IDLE';
24
+ }
25
+
26
+ _isLocked() {
27
+ return fs.existsSync(this.lockPath);
28
+ }
29
+
30
+ _isStaleLock() {
31
+ try {
32
+ const stats = fs.statSync(this.lockPath);
33
+ return Date.now() - stats.mtimeMs > 15000; // 15 seconds stale
34
+ } catch (e) {
35
+ return false;
36
+ }
37
+ }
38
+
39
+ _applyUndoLog() {
40
+ if (fs.existsSync(this.undoDir)) {
41
+ const mapPath = path.join(this.undoDir, 'mapping.json');
42
+ if (fs.existsSync(mapPath)) {
43
+ const mapping = JSON.parse(fs.readFileSync(mapPath, 'utf8'));
44
+ for (const [realPath, backupName] of Object.entries(mapping)) {
45
+ const backupPath = path.join(this.undoDir, backupName);
46
+ if (backupName === '__DELETED__') {
47
+ if (fs.existsSync(realPath)) fs.unlinkSync(realPath);
48
+ } else if (fs.existsSync(backupPath)) {
49
+ fs.copyFileSync(backupPath, realPath);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ // Clean up
55
+ fs.rmSync(this.undoDir, { recursive: true, force: true });
56
+ if (fs.existsSync(this.walPath)) fs.unlinkSync(this.walPath);
57
+ }
58
+
59
+ recover() {
60
+ if (this._isLocked()) {
61
+ if (this._isStaleLock()) {
62
+ // Stale lock detected, try recovering
63
+ if (fs.existsSync(this.walPath)) {
64
+ let wal;
65
+ try {
66
+ wal = JSON.parse(fs.readFileSync(this.walPath, 'utf8'));
67
+ } catch (e) {
68
+ wal = null;
69
+ }
70
+ if (wal && wal.state !== 'COMMITTED') {
71
+ this._applyUndoLog();
72
+ }
73
+ }
74
+ this._releaseLock();
75
+ } else {
76
+ throw new Error(
77
+ 'Active transaction lock found. Cannot safely recover while another process holds the lock.',
78
+ );
79
+ }
80
+ }
81
+ }
82
+
83
+ begin() {
84
+ if (this.state !== 'IDLE' && this.state !== 'ROLLED_BACK') {
85
+ throw new Error('Transaction already active in memory.');
86
+ }
87
+ this.recover();
88
+
89
+ if (!fs.existsSync(this.txDir)) fs.mkdirSync(this.txDir, { recursive: true });
90
+
91
+ const maxRetries = 30;
92
+ let acquired = false;
93
+ for (let i = 0; i < maxRetries; i++) {
94
+ try {
95
+ const fd = fs.openSync(this.lockPath, 'wx');
96
+ fs.closeSync(fd);
97
+ acquired = true;
98
+ break;
99
+ } catch (err) {
100
+ if (err.code !== 'EEXIST') throw err;
101
+ try {
102
+ const waitBuf = new Int32Array(new SharedArrayBuffer(4));
103
+ Atomics.wait(waitBuf, 0, 0, 30);
104
+ } catch (e) {} // fallback if Atomics unavailable or blocked
105
+ }
106
+ }
107
+
108
+ if (!acquired) {
109
+ if (this._isStaleLock()) {
110
+ this.recover();
111
+ const fd = fs.openSync(this.lockPath, 'wx');
112
+ fs.closeSync(fd);
113
+ } else {
114
+ throw new Error('Could not acquire concurrency lock for transaction.');
115
+ }
116
+ }
117
+
118
+ this.activeTxId = `TX-${Date.now()}-${crypto.randomBytes(4).toString('hex')}`;
119
+ this.operations = [];
120
+ this.state = 'PREPARING';
121
+ }
122
+
123
+ prepareWrite(targetPath, data, encoding = 'utf8') {
124
+ if (this.state !== 'PREPARING')
125
+ throw new Error('Can only prepare operations in PREPARING state.');
126
+ const resolvedPath = path.resolve(this.workspace, targetPath);
127
+ if (!resolvedPath.startsWith(path.resolve(this.workspace))) {
128
+ throw new Error('Path security violation: Cannot modify files outside workspace.');
129
+ }
130
+ this.operations.push({ action: 'WRITE', path: resolvedPath, data, encoding });
131
+ }
132
+
133
+ prepareDelete(targetPath) {
134
+ if (this.state !== 'PREPARING')
135
+ throw new Error('Can only prepare operations in PREPARING state.');
136
+ const resolvedPath = path.resolve(this.workspace, targetPath);
137
+ if (!resolvedPath.startsWith(path.resolve(this.workspace))) {
138
+ throw new Error('Path security violation: Cannot modify files outside workspace.');
139
+ }
140
+ this.operations.push({ action: 'DELETE', path: resolvedPath });
141
+ }
142
+
143
+ validate() {
144
+ if (this.state !== 'PREPARING') throw new Error('Can only validate from PREPARING state.');
145
+ this.state = 'VALIDATING';
146
+
147
+ if (fs.existsSync(this.undoDir)) fs.rmSync(this.undoDir, { recursive: true, force: true });
148
+ fs.mkdirSync(this.undoDir, { recursive: true });
149
+
150
+ const mapping = {};
151
+ for (let i = 0; i < this.operations.length; i++) {
152
+ const op = this.operations[i];
153
+ if (fs.existsSync(op.path)) {
154
+ const backupName = `backup_${i}_${path.basename(op.path)}`;
155
+ const backupPath = path.join(this.undoDir, backupName);
156
+ fs.copyFileSync(op.path, backupPath);
157
+ mapping[op.path] = backupName;
158
+ } else {
159
+ mapping[op.path] = '__DELETED__';
160
+ }
161
+ }
162
+
163
+ fs.writeFileSync(
164
+ path.join(this.undoDir, 'mapping.json'),
165
+ JSON.stringify(mapping, null, 2),
166
+ 'utf8',
167
+ );
168
+
169
+ const wal = {
170
+ id: this.activeTxId,
171
+ state: 'VALIDATED',
172
+ timestamp: new Date().toISOString(),
173
+ operations: this.operations.map(op => ({ action: op.action, path: op.path })),
174
+ };
175
+ fs.writeFileSync(this.walPath, JSON.stringify(wal, null, 2), 'utf8');
176
+ }
177
+
178
+ commit() {
179
+ if (this.state !== 'VALIDATING') throw new Error('Must validate before committing.');
180
+ this.state = 'COMMITTING';
181
+
182
+ try {
183
+ for (const op of this.operations) {
184
+ if (op.action === 'WRITE') {
185
+ const dir = path.dirname(op.path);
186
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
187
+ fs.writeFileSync(op.path, op.data, op.encoding);
188
+ } else if (op.action === 'DELETE') {
189
+ if (fs.existsSync(op.path)) {
190
+ fs.unlinkSync(op.path);
191
+ }
192
+ }
193
+ }
194
+
195
+ const wal = JSON.parse(fs.readFileSync(this.walPath, 'utf8'));
196
+ wal.state = 'COMMITTED';
197
+ fs.writeFileSync(this.walPath, JSON.stringify(wal, null, 2), 'utf8');
198
+
199
+ fs.rmSync(this.undoDir, { recursive: true, force: true });
200
+ fs.unlinkSync(this.walPath);
201
+
202
+ this.state = 'IDLE';
203
+ this.activeTxId = null;
204
+ this.operations = [];
205
+ this._releaseLock();
206
+ } catch (err) {
207
+ this.rollback();
208
+ throw new Error(`Transaction failed during commit and was rolled back: ${err.message}`);
209
+ }
210
+ }
211
+
212
+ rollback() {
213
+ if (this.state === 'IDLE' || this.state === 'ROLLED_BACK') return;
214
+ this.state = 'ROLLING_BACK';
215
+
216
+ try {
217
+ this._applyUndoLog();
218
+ } catch (e) {
219
+ console.error(`CRITICAL: Rollback failed for TX ${this.activeTxId}`, e);
220
+ }
221
+
222
+ this.state = 'ROLLED_BACK';
223
+ this.activeTxId = null;
224
+ this.operations = [];
225
+ this._releaseLock();
226
+ }
227
+
228
+ _releaseLock() {
229
+ try {
230
+ if (fs.existsSync(this.lockPath)) {
231
+ fs.unlinkSync(this.lockPath);
232
+ }
233
+ } catch (_) {}
234
+ }
235
+ }
236
+
237
+ module.exports = TransactionManager;
@@ -0,0 +1,174 @@
1
+ 'use strict';
2
+
3
+ const { spawn } = require('child_process');
4
+ const crypto = require('crypto');
5
+ const path = require('path');
6
+
7
+ const VALIDATION_REGISTRY = {
8
+ unit_tests: {
9
+ command: 'npm',
10
+ args: ['run', 'test'],
11
+ timeout: 120000,
12
+ riskLevel: 'LOW',
13
+ parser: 'jest',
14
+ },
15
+ lint: {
16
+ command: 'npm',
17
+ args: ['run', 'lint'],
18
+ timeout: 60000,
19
+ riskLevel: 'LOW',
20
+ parser: 'eslint',
21
+ },
22
+ };
23
+
24
+ class TestResultParser {
25
+ static parse(output, parserType) {
26
+ const result = {
27
+ testsPassed: 0,
28
+ testsFailed: 0,
29
+ testsSkipped: 0,
30
+ failedTestNames: [],
31
+ suiteCount: 0,
32
+ };
33
+
34
+ if (parserType === 'jest') {
35
+ // Basic heuristic parsing for standard Jest output
36
+ // Note: A real implementation might use jest --json, but we parse text here as fallback
37
+ const matchPass = output.match(/Tests:\s+(\d+)\s+passed/);
38
+ if (matchPass) result.testsPassed = parseInt(matchPass[1], 10);
39
+
40
+ const matchFail = output.match(/Tests:\s+(\d+)\s+failed/);
41
+ if (matchFail) result.testsFailed = parseInt(matchFail[1], 10);
42
+
43
+ const matchTotal = output.match(/Tests:\s+(.*?)(?:,|$)/);
44
+ if (matchTotal && !matchPass && !matchFail) {
45
+ // Fallback logic
46
+ }
47
+
48
+ const suiteMatch = output.match(/Test Suites:\s+(\d+)\s+passed/);
49
+ if (suiteMatch) result.suiteCount = parseInt(suiteMatch[1], 10);
50
+
51
+ // Attempt to extract failed test names
52
+ const fails = [...output.matchAll(/FAIL\s+(.*)/g)];
53
+ result.failedTestNames = fails.map(f => f[1].trim());
54
+ }
55
+
56
+ return result;
57
+ }
58
+ }
59
+
60
+ class ValidationRunner {
61
+ constructor(options = {}) {
62
+ this.workspaceRoot = options.workspaceRoot || process.cwd();
63
+ // Security: Only allow specific benign environment variables
64
+ this.allowedEnv = {
65
+ PATH: process.env.PATH,
66
+ NODE_ENV: 'test',
67
+ CI: 'true',
68
+ };
69
+ }
70
+
71
+ async run(validationId, customArgs = []) {
72
+ const config = VALIDATION_REGISTRY[validationId];
73
+ if (!config) {
74
+ return this._failClosed(`Unknown validation ID: ${validationId}`);
75
+ }
76
+
77
+ const start = Date.now();
78
+ const commandFingerprint = crypto
79
+ .createHash('sha256')
80
+ .update(`${config.command} ${config.args.join(' ')}`)
81
+ .digest('hex');
82
+
83
+ return new Promise(resolve => {
84
+ let stdout = '';
85
+ let stderr = '';
86
+ const MAX_BUFFER = 1024 * 1024 * 5; // 5MB
87
+
88
+ // Enforce Workspace Boundary
89
+ const runDir = path.resolve(this.workspaceRoot);
90
+ const systemRoot = path.resolve(process.cwd());
91
+ if (!runDir.startsWith(systemRoot)) {
92
+ return resolve(this._failClosed('Path traversal detected in workspace root.'));
93
+ }
94
+
95
+ const args = [...config.args, ...customArgs];
96
+
97
+ // We explicitly avoid shell: true to prevent injection
98
+ const proc = spawn(config.command, args, {
99
+ cwd: runDir,
100
+ env: this.allowedEnv,
101
+ shell: false,
102
+ detached: false,
103
+ });
104
+
105
+ let timedOut = false;
106
+ const timer = setTimeout(() => {
107
+ timedOut = true;
108
+ proc.kill('SIGKILL');
109
+ }, config.timeout);
110
+
111
+ proc.stdout.on('data', data => {
112
+ if (stdout.length < MAX_BUFFER) stdout += data.toString();
113
+ });
114
+
115
+ proc.stderr.on('data', data => {
116
+ if (stderr.length < MAX_BUFFER) stderr += data.toString();
117
+ });
118
+
119
+ proc.on('close', code => {
120
+ clearTimeout(timer);
121
+ const duration = Date.now() - start;
122
+
123
+ let status = 'PASSED';
124
+ if (timedOut) status = 'TIMEOUT';
125
+ else if (code !== 0) status = 'FAILED';
126
+
127
+ const parsed = TestResultParser.parse(stdout + '\n' + stderr, config.parser);
128
+
129
+ resolve({
130
+ validationId,
131
+ status,
132
+ exitCode: code,
133
+ duration,
134
+ stdout: stdout.substring(0, 10000), // Trim for payload size
135
+ stderr: stderr.substring(0, 10000),
136
+ testsPassed: parsed.testsPassed,
137
+ testsFailed: parsed.testsFailed,
138
+ testsSkipped: parsed.testsSkipped,
139
+ startedAt: new Date(start).toISOString(),
140
+ completedAt: new Date().toISOString(),
141
+ commandFingerprint,
142
+ repositoryFingerprint: 'repo-hash-placeholder',
143
+ });
144
+ });
145
+
146
+ proc.on('error', err => {
147
+ clearTimeout(timer);
148
+ resolve(
149
+ this._failClosed(`Process crash: ${err.message}`, validationId, commandFingerprint),
150
+ );
151
+ });
152
+ });
153
+ }
154
+
155
+ _failClosed(reason, validationId = 'UNKNOWN', fingerprint = 'UNKNOWN') {
156
+ return {
157
+ validationId,
158
+ status: 'CRASHED',
159
+ exitCode: -1,
160
+ duration: 0,
161
+ stdout: '',
162
+ stderr: reason,
163
+ testsPassed: 0,
164
+ testsFailed: 1, // Treat structural failure as a failed test
165
+ testsSkipped: 0,
166
+ startedAt: new Date().toISOString(),
167
+ completedAt: new Date().toISOString(),
168
+ commandFingerprint: fingerprint,
169
+ repositoryFingerprint: 'UNKNOWN',
170
+ };
171
+ }
172
+ }
173
+
174
+ module.exports = { ValidationRunner, TestResultParser, VALIDATION_REGISTRY };