@event4u/agent-config 14.11.0 → 14.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +156 -538
  5. package/README.md +1 -1
  6. package/dist/agent-src/contexts/execution/evidence-discipline.md +26 -0
  7. package/dist/agent-src/skills/code-refactoring/SKILL.md +45 -1
  8. package/dist/agent-src/skills/code-review/SKILL.md +65 -6
  9. package/dist/agent-src/skills/command-writing/SKILL.md +35 -0
  10. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +8 -1
  11. package/dist/agent-src/skills/project-analysis-core/SKILL.md +23 -0
  12. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +29 -12
  13. package/dist/agent-src/skills/skill-writing/references/procedure.md +24 -2
  14. package/dist/agent-src/skills/storybook-workshop/SKILL.md +9 -0
  15. package/dist/agent-src/skills/ui-component-architect/SKILL.md +8 -0
  16. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  17. package/dist/cli-delegate/{chunk-L43NCYPB.js → chunk-JCW7ZLHK.js} +5 -0
  18. package/dist/cli-delegate/{chunk-236PNQZK.js → chunk-JJA2QEWA.js} +1 -1
  19. package/dist/cli-delegate/cmd_export.js +2 -2
  20. package/dist/cli-delegate/cmd_prune.js +2 -2
  21. package/dist/cli-delegate/cmd_settings_migrate.js +2 -2
  22. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  23. package/dist/cli-delegate/cmd_sync.js +2 -2
  24. package/dist/cli-delegate/cmd_uninstall.js +2 -2
  25. package/dist/cli-delegate/cmd_validate.js +2 -2
  26. package/dist/discovery/deprecation-report.md +1 -1
  27. package/dist/discovery/discovery-manifest.json +10 -10
  28. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  29. package/dist/discovery/discovery-manifest.summary.md +1 -1
  30. package/dist/discovery/dormancy-report.md +1 -1
  31. package/dist/discovery/orphan-report.md +1 -1
  32. package/dist/discovery/packs.json +2 -2
  33. package/dist/discovery/trust-report.md +1 -1
  34. package/dist/discovery/workspaces.json +2 -2
  35. package/dist/hooks/dispatch.js +1081 -879
  36. package/dist/install/install.mjs +5 -0
  37. package/dist/mcp/registry-manifest.json +2 -2
  38. package/dist/mcp/server.json +2 -2
  39. package/dist/server/schemas/settings.js +3 -0
  40. package/docs/contracts/settings-classes.md +24 -4
  41. package/docs/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
  42. package/docs/guidelines/code-clarity.md +21 -0
  43. package/docs/guidelines/redundancy-taxonomy.md +180 -0
  44. package/package.json +6 -2
  45. package/src/config/agent-settings.template.yml +16 -0
  46. package/src/config/budgets.yml +19 -0
  47. package/src/config/ci-local-parity.yml +15 -0
  48. package/src/config/discovery/prompt-patterns.yml +56 -0
  49. package/src/config/estate-count-budget.json +8 -3
  50. package/src/config/gate-coverage.yml +191 -6
  51. package/src/config/gate-violation-baselines.json +3 -3
  52. package/src/config/pack-size-budget.json +39 -12
  53. package/src/config/preamble-payload-budget.json +97 -71
  54. package/src/config/routing-coverage-seed.json +29 -0
  55. package/src/config/suggestion-capture.json +28 -0
  56. package/src/config/surface-matrix.yml +21 -2
  57. package/src/config/web-launch-readiness.json +188 -0
  58. package/src/scripts/_lib/gate_baseline.ts +150 -1
  59. package/src/scripts/_lib/skill_estate.ts +115 -0
  60. package/src/scripts/ai_council/argument_exhaustion.ts +130 -0
  61. package/src/scripts/check_bundle_path_leakage.ts +162 -7
  62. package/src/scripts/check_command_examples.ts +557 -0
  63. package/src/scripts/check_estate_count.ts +122 -3
  64. package/src/scripts/check_preamble_payload_budget.ts +30 -3
  65. package/src/scripts/check_routing_coverage.ts +352 -0
  66. package/src/scripts/check_score_contract.ts +505 -0
  67. package/src/scripts/check_skill_admissions.ts +514 -0
  68. package/src/scripts/check_web_launch_readiness.ts +705 -0
  69. package/src/scripts/description_route_check.ts +494 -0
  70. package/src/scripts/hook_manifest.json +1 -1
  71. package/src/scripts/hook_manifest.yaml +29 -2
  72. package/src/scripts/hooks/concern_registry.ts +2 -0
  73. package/src/scripts/hooks/suggestion_capture_hook.ts +368 -0
  74. package/src/scripts/lint_budget_ownership.ts +54 -4
  75. package/src/scripts/lint_skill_trigger_corpus.ts +349 -0
  76. package/src/scripts/pack_install_smoke.ts +363 -0
  77. package/src/scripts/pr_conflict_census.ts +187 -0
  78. package/src/scripts/report_pack_delta.ts +204 -0
  79. package/src/scripts/select_analysis_mode.ts +112 -0
  80. package/src/scripts/sync_pr_branch.ts +40 -1
  81. package/src/server/schemas/settings.ts +5 -0
  82. package/dist/agent-src/skills/accessibility-auditor/evals/evals.json +0 -15
  83. package/dist/agent-src/skills/agent-security-review/evals/triggers.json +0 -52
  84. package/dist/agent-src/skills/ai-code-blindspots/evals/triggers.json +0 -52
  85. package/dist/agent-src/skills/alerting-doctrine/evals/triggers.json +0 -17
  86. package/dist/agent-src/skills/analysis-skill-router/evals/evals.json +0 -13
  87. package/dist/agent-src/skills/brand/evals/triggers.json +0 -17
  88. package/dist/agent-src/skills/brand-asset-generation/evals/triggers.json +0 -17
  89. package/dist/agent-src/skills/brand-audit/evals/triggers.json +0 -17
  90. package/dist/agent-src/skills/brand-identity/evals/triggers.json +0 -17
  91. package/dist/agent-src/skills/brand-strategy/evals/triggers.json +0 -17
  92. package/dist/agent-src/skills/brand-to-tokens/evals/triggers.json +0 -17
  93. package/dist/agent-src/skills/bug-analyzer/evals/evals.json +0 -13
  94. package/dist/agent-src/skills/canvas-design/evals/triggers.json +0 -17
  95. package/dist/agent-src/skills/character-consistency/evals/evals.json +0 -16
  96. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +0 -52
  97. package/dist/agent-src/skills/code-review/evals/evals.json +0 -100
  98. package/dist/agent-src/skills/command-routing/evals/evals.json +0 -14
  99. package/dist/agent-src/skills/complexity-first-planning/evals/triggers.json +0 -17
  100. package/dist/agent-src/skills/contract-review/evals/triggers.json +0 -17
  101. package/dist/agent-src/skills/conventional-commits-writing/evals/evals.json +0 -15
  102. package/dist/agent-src/skills/corpus-grounding/evals/triggers.json +0 -17
  103. package/dist/agent-src/skills/dashboard-design/evals/evals.json +0 -16
  104. package/dist/agent-src/skills/dcf-modeling/evals/domain-truth.json +0 -29
  105. package/dist/agent-src/skills/dcf-modeling/evals/evals.json +0 -20
  106. package/dist/agent-src/skills/decision-record/evals/evals.json +0 -20
  107. package/dist/agent-src/skills/decision-record/evals/triggers.json +0 -87
  108. package/dist/agent-src/skills/design-intelligence/evals/evals.json +0 -14
  109. package/dist/agent-src/skills/design-intelligence/evals/triggers.json +0 -17
  110. package/dist/agent-src/skills/design-system-capture/evals/evals.json +0 -15
  111. package/dist/agent-src/skills/design-tokens/evals/triggers.json +0 -17
  112. package/dist/agent-src/skills/design-variations/evals/triggers.json +0 -17
  113. package/dist/agent-src/skills/developer-like-execution/evals/evals.json +0 -16
  114. package/dist/agent-src/skills/doc-coauthoring/evals/evals.json +0 -16
  115. package/dist/agent-src/skills/doc-coauthoring/evals/triggers.json +0 -17
  116. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +0 -52
  117. package/dist/agent-src/skills/dpa-review/evals/triggers.json +0 -17
  118. package/dist/agent-src/skills/editorial-calendar/evals/domain-truth.json +0 -16
  119. package/dist/agent-src/skills/editorial-calendar/evals/evals.json +0 -16
  120. package/dist/agent-src/skills/eloquent/evals/triggers.json +0 -17
  121. package/dist/agent-src/skills/estimate-ticket/evals/evals.json +0 -16
  122. package/dist/agent-src/skills/estimate-ticket/evals/output-schema.yml +0 -20
  123. package/dist/agent-src/skills/estimate-ticket/evals/triggers.json +0 -19
  124. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +0 -52
  125. package/dist/agent-src/skills/existing-ui-audit/evals/triggers.json +0 -47
  126. package/dist/agent-src/skills/experiment-loop/evals/output-schema.yml +0 -27
  127. package/dist/agent-src/skills/experiment-loop/evals/triggers.json +0 -17
  128. package/dist/agent-src/skills/fe-design/evals/triggers.json +0 -67
  129. package/dist/agent-src/skills/forecasting/evals/domain-truth.json +0 -29
  130. package/dist/agent-src/skills/forecasting/evals/evals.json +0 -20
  131. package/dist/agent-src/skills/forensics-report/evals/triggers.json +0 -17
  132. package/dist/agent-src/skills/frontend-render-security/evals/triggers.json +0 -52
  133. package/dist/agent-src/skills/fundraising-narrative/evals/domain-truth.json +0 -16
  134. package/dist/agent-src/skills/fundraising-narrative/evals/evals.json +0 -16
  135. package/dist/agent-src/skills/gated-reach/evals/triggers.json +0 -72
  136. package/dist/agent-src/skills/github-ci/evals/evals.json +0 -25
  137. package/dist/agent-src/skills/history-design/evals/triggers.json +0 -17
  138. package/dist/agent-src/skills/html-deck/evals/triggers.json +0 -17
  139. package/dist/agent-src/skills/humanizer/evals/strip_fixtures.json +0 -57
  140. package/dist/agent-src/skills/humanizer/evals/triggers.json +0 -17
  141. package/dist/agent-src/skills/iconography/evals/triggers.json +0 -17
  142. package/dist/agent-src/skills/image-analyser/evals/triggers.json +0 -17
  143. package/dist/agent-src/skills/image-creator/evals/triggers.json +0 -17
  144. package/dist/agent-src/skills/image-editing/evals/triggers.json +0 -17
  145. package/dist/agent-src/skills/image-generation/evals/triggers.json +0 -17
  146. package/dist/agent-src/skills/image-provider-routing/evals/triggers.json +0 -17
  147. package/dist/agent-src/skills/incident-commander/evals/domain-truth.json +0 -16
  148. package/dist/agent-src/skills/incident-commander/evals/evals.json +0 -20
  149. package/dist/agent-src/skills/js-library-packaging/evals/triggers.json +0 -17
  150. package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +0 -17
  151. package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +0 -17
  152. package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +0 -17
  153. package/dist/agent-src/skills/launch-readiness/evals/evals.json +0 -21
  154. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +0 -52
  155. package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +0 -17
  156. package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +0 -17
  157. package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +0 -52
  158. package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +0 -52
  159. package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +0 -52
  160. package/dist/agent-src/skills/llm-provider-knowledge/evals/triggers.json +0 -20
  161. package/dist/agent-src/skills/logging-monitoring/evals/evals.json +0 -16
  162. package/dist/agent-src/skills/logo-generation/evals/triggers.json +0 -17
  163. package/dist/agent-src/skills/messaging-architecture/evals/domain-truth.json +0 -16
  164. package/dist/agent-src/skills/messaging-architecture/evals/evals.json +0 -16
  165. package/dist/agent-src/skills/monorepo-workspace/evals/triggers.json +0 -17
  166. package/dist/agent-src/skills/nda-triage/evals/triggers.json +0 -17
  167. package/dist/agent-src/skills/operational-readiness/evals/triggers.json +0 -17
  168. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +0 -52
  169. package/dist/agent-src/skills/perf-feedback-craft/evals/evals.json +0 -16
  170. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +0 -52
  171. package/dist/agent-src/skills/php-coder/evals/triggers.json +0 -17
  172. package/dist/agent-src/skills/prediction-pool-optimizer/evals/triggers.json +0 -21
  173. package/dist/agent-src/skills/prompt-engineering-image/evals/triggers.json +0 -17
  174. package/dist/agent-src/skills/prompt-engineering-patterns/evals/evals.json +0 -16
  175. package/dist/agent-src/skills/prompt-validator/evals/triggers.json +0 -17
  176. package/dist/agent-src/skills/quality-tools/evals/evals.json +0 -15
  177. package/dist/agent-src/skills/reasoning-orchestrator/evals/triggers.json +0 -17
  178. package/dist/agent-src/skills/refine-prompt/evals/evals.json +0 -16
  179. package/dist/agent-src/skills/refine-ticket/evals/evals.json +0 -16
  180. package/dist/agent-src/skills/refine-ticket/evals/output-schema.yml +0 -16
  181. package/dist/agent-src/skills/refine-ticket/evals/triggers.json +0 -17
  182. package/dist/agent-src/skills/release-comms/evals/evals.json +0 -16
  183. package/dist/agent-src/skills/rice-prioritization/evals/evals.json +0 -20
  184. package/dist/agent-src/skills/runway-cognition/evals/domain-truth.json +0 -29
  185. package/dist/agent-src/skills/runway-cognition/evals/evals.json +0 -20
  186. package/dist/agent-src/skills/scenario-modeling/evals/domain-truth.json +0 -29
  187. package/dist/agent-src/skills/scenario-modeling/evals/evals.json +0 -20
  188. package/dist/agent-src/skills/schema-review/evals/triggers.json +0 -17
  189. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +0 -52
  190. package/dist/agent-src/skills/security-maturity-assessment/evals/triggers.json +0 -52
  191. package/dist/agent-src/skills/server-hardening/evals/triggers.json +0 -17
  192. package/dist/agent-src/skills/skill-writing/evals/triggers.json +0 -17
  193. package/dist/agent-src/skills/spreadsheet-authoring/evals/triggers.json +0 -47
  194. package/dist/agent-src/skills/storybook-workshop/evals/triggers.json +0 -17
  195. package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +0 -60
  196. package/dist/agent-src/skills/supply-chain-intake/evals/triggers.json +0 -52
  197. package/dist/agent-src/skills/systematic-debugging/evals/evals.json +0 -20
  198. package/dist/agent-src/skills/test-case-discovery/evals/triggers.json +0 -52
  199. package/dist/agent-src/skills/test-driven-development/evals/evals.json +0 -16
  200. package/dist/agent-src/skills/threat-modeling/evals/evals.json +0 -21
  201. package/dist/agent-src/skills/typography-system/evals/evals.json +0 -14
  202. package/dist/agent-src/skills/typography-system/evals/triggers.json +0 -17
  203. package/dist/agent-src/skills/unit-economics-modeling/evals/domain-truth.json +0 -40
  204. package/dist/agent-src/skills/unit-economics-modeling/evals/evals.json +0 -24
  205. package/dist/agent-src/skills/verify-completion-evidence/evals/evals.json +0 -16
  206. package/dist/agent-src/skills/verify-repair-loop/evals/output-schema.yml +0 -20
  207. package/dist/agent-src/skills/verify-repair-loop/evals/triggers.json +0 -17
  208. package/dist/agent-src/skills/vision-articulation/evals/evals.json +0 -16
  209. package/dist/agent-src/skills/voice-and-tone-design/evals/evals.json +0 -16
  210. package/dist/agent-src/skills/wireframe/evals/triggers.json +0 -17
  211. package/dist/agent-src/skills/workspace-link/evals/triggers.json +0 -17
  212. package/dist/agent-src/skills/worktree-lifecycle/evals/evals.json +0 -38
  213. package/dist/agent-src/skills/worktree-lifecycle/evals/triggers.json +0 -52
  214. package/dist/cli/agent-config.js.map +0 -1
  215. package/dist/cli/bash/runBash.js.map +0 -1
  216. package/dist/cli/commands/commands.js.map +0 -1
  217. package/dist/cli/commands/config.js.map +0 -1
  218. package/dist/cli/commands/doctorShell.js.map +0 -1
  219. package/dist/cli/commands/mcpServer.js.map +0 -1
  220. package/dist/cli/commands/packs.js.map +0 -1
  221. package/dist/cli/commands/profiles.js.map +0 -1
  222. package/dist/cli/commands/recordTriggerEval.js.map +0 -1
  223. package/dist/cli/commands/rtkDetect.js.map +0 -1
  224. package/dist/cli/commands/settings.js.map +0 -1
  225. package/dist/cli/commands/uiAudit.js.map +0 -1
  226. package/dist/cli/commands/uiRender.js.map +0 -1
  227. package/dist/cli/commands/uiServe.js.map +0 -1
  228. package/dist/cli/commands/versions.js.map +0 -1
  229. package/dist/cli/commands/workspaces.js.map +0 -1
  230. package/dist/cli/configRoot.js.map +0 -1
  231. package/dist/cli/discovery/loadManifest.js.map +0 -1
  232. package/dist/cli/firstRunNotice.js.map +0 -1
  233. package/dist/cli/help.js.map +0 -1
  234. package/dist/cli/initRouting.js.map +0 -1
  235. package/dist/cli/log/logger.js.map +0 -1
  236. package/dist/cli/main.js.map +0 -1
  237. package/dist/cli/mcp/content.js.map +0 -1
  238. package/dist/cli/mcp/dispatch.js.map +0 -1
  239. package/dist/cli/mcp/stdio.js.map +0 -1
  240. package/dist/cli/paths.js.map +0 -1
  241. package/dist/cli/python/knowledge_ingest.js.map +0 -1
  242. package/dist/cli/python/workspace_analytics.js.map +0 -1
  243. package/dist/cli/python/workspace_crypto.js.map +0 -1
  244. package/dist/cli/python/workspace_documents.js.map +0 -1
  245. package/dist/cli/python/workspace_drive.js.map +0 -1
  246. package/dist/cli/python/workspace_drive_health.js.map +0 -1
  247. package/dist/cli/python/workspace_explain.js.map +0 -1
  248. package/dist/cli/python/workspace_hosts.js.map +0 -1
  249. package/dist/cli/python/workspace_inbox.js.map +0 -1
  250. package/dist/cli/python/workspace_render.js.map +0 -1
  251. package/dist/cli/python/workspace_roles.js.map +0 -1
  252. package/dist/cli/python/workspace_secrets.js.map +0 -1
  253. package/dist/cli/python/workspace_sessions.js.map +0 -1
  254. package/dist/cli/python/workspace_skills.js.map +0 -1
  255. package/dist/cli/registry.js.map +0 -1
  256. package/dist/install/agentSwitchDetection.js.map +0 -1
  257. package/dist/install/agentSwitchProfile.js.map +0 -1
  258. package/dist/install/atomic.js.map +0 -1
  259. package/dist/install/claudePathsPlan.js.map +0 -1
  260. package/dist/install/conflict.js.map +0 -1
  261. package/dist/install/detect.js.map +0 -1
  262. package/dist/install/emit_host_rules_cli.js.map +0 -1
  263. package/dist/install/globalRuleLayers.js.map +0 -1
  264. package/dist/install/hostLayerFingerprint.js.map +0 -1
  265. package/dist/install/partitionEligibility.js.map +0 -1
  266. package/dist/install/paths.js.map +0 -1
  267. package/dist/install/plan.js.map +0 -1
  268. package/dist/install/preflight.js.map +0 -1
  269. package/dist/install/rtkDetection.js.map +0 -1
  270. package/dist/install/ruleInScope.js.map +0 -1
  271. package/dist/install/ruleLayerPartition.js.map +0 -1
  272. package/dist/install/rule_scope.js.map +0 -1
  273. package/dist/install/rule_scope_cli.js.map +0 -1
  274. package/dist/install/selectedTools.js.map +0 -1
  275. package/dist/install/toolDetection.js.map +0 -1
  276. package/dist/install/txlog.js.map +0 -1
  277. package/dist/install/types.js.map +0 -1
  278. package/dist/install/wizard-plan.js.map +0 -1
  279. package/dist/install/wizardDismissals.js.map +0 -1
  280. package/dist/scripts/_lib/agent_settings.js.map +0 -1
  281. package/dist/scripts/_lib/agent_src.js.map +0 -1
  282. package/dist/scripts/_lib/claude_builtin_names.js.map +0 -1
  283. package/dist/scripts/_lib/claude_plugin.js.map +0 -1
  284. package/dist/scripts/_lib/claude_settings_hooks.js.map +0 -1
  285. package/dist/scripts/_lib/compile_time_toggles.js.map +0 -1
  286. package/dist/scripts/_lib/environment_detector.js.map +0 -1
  287. package/dist/scripts/_lib/host_launch.js.map +0 -1
  288. package/dist/scripts/_lib/install_layout.js.map +0 -1
  289. package/dist/scripts/_lib/installed_lock.js.map +0 -1
  290. package/dist/scripts/_lib/lean_projection_mode.js.map +0 -1
  291. package/dist/scripts/_lib/model_tier.js.map +0 -1
  292. package/dist/scripts/_lib/prune_empty_dirs.js.map +0 -1
  293. package/dist/scripts/_lib/scoped_projection.js.map +0 -1
  294. package/dist/scripts/_lib/script_output.js.map +0 -1
  295. package/dist/scripts/_lib/spawn_env.js.map +0 -1
  296. package/dist/scripts/_lib/surface_tiers.js.map +0 -1
  297. package/dist/scripts/_lib/token_count.js.map +0 -1
  298. package/dist/scripts/_lib/trigger_eval_floors.js.map +0 -1
  299. package/dist/scripts/_lib/ui_surface.js.map +0 -1
  300. package/dist/scripts/_lib/user_global_paths.js.map +0 -1
  301. package/dist/scripts/ai_council/modes.js.map +0 -1
  302. package/dist/scripts/ai_council/transport_resolver.js.map +0 -1
  303. package/dist/scripts/condense.js.map +0 -1
  304. package/dist/scripts/project_thin_rules.js.map +0 -1
  305. package/dist/server/app.js.map +0 -1
  306. package/dist/server/io/atomicMultiWrite.js.map +0 -1
  307. package/dist/server/io/atomicWrite.js.map +0 -1
  308. package/dist/server/io/sharedWriteCheck.js.map +0 -1
  309. package/dist/server/io/substituteTemplate.js.map +0 -1
  310. package/dist/server/io/yamlIO.js.map +0 -1
  311. package/dist/server/nicknameResolver.js.map +0 -1
  312. package/dist/server/port.js.map +0 -1
  313. package/dist/server/routes/discovery.js.map +0 -1
  314. package/dist/server/routes/install.js.map +0 -1
  315. package/dist/server/routes/ping.js.map +0 -1
  316. package/dist/server/routes/schema.js.map +0 -1
  317. package/dist/server/routes/settings.js.map +0 -1
  318. package/dist/server/routes/settingsChanges.js.map +0 -1
  319. package/dist/server/routes/userMd.js.map +0 -1
  320. package/dist/server/routes/wizard.js.map +0 -1
  321. package/dist/server/routes/workspace.js.map +0 -1
  322. package/dist/server/schemas/settings.js.map +0 -1
  323. package/dist/server/serverInfo.js.map +0 -1
  324. package/dist/server/token.js.map +0 -1
  325. package/dist/server/writeRoot.js.map +0 -1
  326. package/dist/shared/capabilities.js.map +0 -1
  327. package/dist/shared/interactiveContext.js.map +0 -1
  328. package/dist/shared/nicknamePrefill.js.map +0 -1
  329. package/dist/shared/settingsAsks.js.map +0 -1
  330. package/dist/shared/settingsCarveOut.js.map +0 -1
  331. package/dist/shared/settingsClasses.js.map +0 -1
  332. package/dist/shared/settingsConsent.js.map +0 -1
  333. package/dist/shared/settingsSurface.js.map +0 -1
  334. package/dist/shared/skillRanking.js.map +0 -1
  335. package/dist/shared/userMd/formAdapter.js.map +0 -1
  336. package/dist/shared/userMd/schema.js.map +0 -1
  337. package/dist/shared/userMd/utils.js.map +0 -1
  338. package/dist/ui/assets/index-Cxgy63kz.js.map +0 -1
  339. package/src/scripts/_lib/adr_frontmatter.test.ts +0 -365
  340. package/src/scripts/_lib/adversarial_council_gate.test.ts +0 -112
  341. package/src/scripts/_lib/adversarial_reconcile.test.ts +0 -197
  342. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +0 -150
  343. package/src/scripts/_lib/secret_detector.test.ts +0 -108
  344. package/src/scripts/_lib/secret_detector_adversarial.test.ts +0 -116
  345. package/src/scripts/_lib/ui_authority.test.ts +0 -251
  346. package/src/scripts/_lib/untrusted_content.test.ts +0 -175
  347. package/src/scripts/check_secret_leak.test.ts +0 -90
  348. package/src/scripts/design_slop_rules.test.ts +0 -246
  349. package/src/scripts/self_review_gate.test.ts +0 -296
  350. package/src/shared/capabilities.test.ts +0 -43
@@ -1,296 +0,0 @@
1
- import { spawnSync } from 'node:child_process';
2
- import * as fs from 'node:fs';
3
- import * as os from 'node:os';
4
- import * as path from 'node:path';
5
-
6
- import { afterEach, describe, expect, it } from 'vitest';
7
-
8
- import {
9
- LARGE_DIFF_LINES,
10
- buildPlan,
11
- classifyBlocking,
12
- detectReleaseVersion,
13
- escalationReasons,
14
- gateVerdict,
15
- isReviewablePath,
16
- pickPreviousTag,
17
- renderReview,
18
- type Finding,
19
- } from './self_review_gate.js';
20
-
21
- const f = (severity: Finding['severity'], kind: Finding['kind']): Finding => ({
22
- severity,
23
- kind,
24
- title: `${severity} ${kind}`,
25
- detail: 'x',
26
- });
27
-
28
- describe('classifyBlocking', () => {
29
- it('blocks security + high and claim + critical', () => {
30
- expect(classifyBlocking(f('high', 'security'))).toBe(true);
31
- expect(classifyBlocking(f('critical', 'claim'))).toBe(true);
32
- });
33
- it('does not block low/medium security, or any style/correctness', () => {
34
- expect(classifyBlocking(f('medium', 'security'))).toBe(false);
35
- expect(classifyBlocking(f('low', 'claim'))).toBe(false);
36
- expect(classifyBlocking(f('critical', 'style'))).toBe(false);
37
- expect(classifyBlocking(f('high', 'correctness'))).toBe(false);
38
- });
39
- });
40
-
41
- describe('gateVerdict', () => {
42
- const blocking = [f('high', 'security')];
43
- it('advisory (default shipped mode) never blocks, even with a blocking finding', () => {
44
- expect(gateVerdict(blocking, { enforce: false })).toBe(0);
45
- });
46
- it('enforce blocks only on a merge-blocking finding', () => {
47
- expect(gateVerdict(blocking, { enforce: true })).toBe(2);
48
- expect(gateVerdict([f('critical', 'style')], { enforce: true })).toBe(0);
49
- expect(gateVerdict([], { enforce: true })).toBe(0);
50
- });
51
- });
52
-
53
- describe('isReviewablePath', () => {
54
- it('skips generated projections + lockfiles, keeps source', () => {
55
- expect(isReviewablePath('dist/agent-src/skills/x/SKILL.md')).toBe(false);
56
- expect(isReviewablePath('.augment/rules/x.md')).toBe(false);
57
- expect(isReviewablePath('.windsurfrules')).toBe(false);
58
- expect(isReviewablePath('package-lock.json')).toBe(false);
59
- expect(isReviewablePath('src/rules/x.md')).toBe(true);
60
- expect(isReviewablePath('src/scripts/y.ts')).toBe(true);
61
- });
62
- });
63
-
64
- describe('renderReview', () => {
65
- it('carries the HUMAN REVIEW REQUIRED banner + the floor-not-human-review caveat', () => {
66
- const out = renderReview([], false);
67
- expect(out).toContain('HUMAN REVIEW REQUIRED');
68
- expect(out).toContain('not** independent human review');
69
- });
70
- it('advisory phrasing says WOULD block, enforce phrasing says blocking', () => {
71
- const blocking = [f('high', 'security')];
72
- expect(renderReview(blocking, false)).toContain('WOULD block');
73
- expect(renderReview(blocking, true)).toContain('merge-blocking');
74
- });
75
- it('labels each row (Blocking)/(Advisory) so a critical-but-non-blocking row never reads as inconsistent with the count', () => {
76
- const findings = [f('critical', 'correctness'), f('critical', 'security')];
77
- const out = renderReview(findings, false);
78
- // critical × correctness is NOT blocking → labelled Advisory
79
- expect(out).toContain('| critical (Advisory) | correctness |');
80
- // critical × security IS blocking → labelled Blocking
81
- expect(out).toContain('| critical (Blocking) | security |');
82
- // verdict count matches the number of (Blocking) rows (exactly 1)
83
- expect(out).toContain('1 finding(s) WOULD block');
84
- expect((out.match(/\(Blocking\)/g) ?? []).length).toBe(1);
85
- });
86
- });
87
-
88
- describe('escalationReasons', () => {
89
- it('flags a large diff at or above the threshold', () => {
90
- expect(escalationReasons(['src/a.ts'], LARGE_DIFF_LINES)).toEqual([
91
- `large diff (${LARGE_DIFF_LINES} changed lines ≥ ${LARGE_DIFF_LINES})`,
92
- ]);
93
- });
94
- it('does not flag a small non-claim diff', () => {
95
- expect(escalationReasons(['src/a.ts'], LARGE_DIFF_LINES - 1)).toEqual([]);
96
- });
97
- it('flags a claim-ledger surface regardless of size', () => {
98
- expect(escalationReasons(['docs/CLAIMS.md'], 1)).toEqual([
99
- 'claim-affecting surface touched (docs/CLAIMS.md)',
100
- ]);
101
- expect(escalationReasons(['docs/proof.md'], 1)[0]).toContain('docs/proof.md');
102
- expect(escalationReasons(['docs/comparison.yaml'], 1)[0]).toContain('docs/comparison.yaml');
103
- expect(escalationReasons(['README.md'], 1)[0]).toContain('README.md');
104
- });
105
- it('reports both reasons when a large diff also touches a claim surface', () => {
106
- const r = escalationReasons(['docs/CLAIMS.md', 'src/big.ts'], LARGE_DIFF_LINES + 50);
107
- expect(r).toHaveLength(2);
108
- expect(r[0]).toContain('large diff');
109
- expect(r[1]).toContain('claim-affecting');
110
- });
111
- });
112
-
113
- describe('renderReview — escalation banner', () => {
114
- const f = (severity: Finding['severity'], kind: Finding['kind']): Finding => ({
115
- severity, kind, title: 't', detail: 'd',
116
- });
117
- it('appends the escalation recommendation when reasons are present', () => {
118
- const out = renderReview([], false, ['large diff (500 changed lines ≥ 400)']);
119
- expect(out).toContain('Escalation warranted');
120
- expect(out).toContain('/council:pr');
121
- expect(out).toContain('never');
122
- });
123
- it('omits the escalation block when there are no reasons (byte-identical to no-arg)', () => {
124
- const findings = [f('high', 'security')];
125
- expect(renderReview(findings, false, [])).toBe(renderReview(findings, false));
126
- });
127
- it('recommends escalation even on a clean (no-finding) large diff', () => {
128
- const out = renderReview([], false, ['large diff (500 changed lines ≥ 400)']);
129
- expect(out).toContain('no findings');
130
- expect(out).toContain('Escalation warranted');
131
- });
132
- });
133
-
134
- // ── Release-PR review mode (road-to-feedback-9.2.0-followups Phase 3) ──
135
- // See docs/design/release-pr-review-mode.md — anchored to the PR #957
136
- // false-advisory case (release features reading as "not in the diff").
137
-
138
- describe('detectReleaseVersion', () => {
139
- const changelogAdd = (v: string) =>
140
- `+## [${v}](https://github.com/event4u-app/agent-config/compare/9.1.0...${v}) (2026-07-14)`;
141
- const packageAdd = (v: string) => `+ "version": "${v}",`;
142
-
143
- it('detects a release PR when the changelog heading and the package.json bump agree', () => {
144
- const patch = [
145
- 'diff --git a/CHANGELOG.md b/CHANGELOG.md',
146
- '@@ -14,6 +14,8 @@',
147
- ' ## [Unreleased]',
148
- '+',
149
- changelogAdd('9.2.0'),
150
- 'diff --git a/package.json b/package.json',
151
- '@@ -1,6 +1,6 @@',
152
- '- "version": "9.1.0",',
153
- packageAdd('9.2.0'),
154
- ].join('\n');
155
- expect(detectReleaseVersion(patch)).toBe('9.2.0');
156
- });
157
-
158
- it('is NOT a release PR when only the changelog heading changed (no version bump)', () => {
159
- expect(detectReleaseVersion(changelogAdd('9.2.0'))).toBeNull();
160
- });
161
-
162
- it('is NOT a release PR when only package.json bumped (no changelog heading)', () => {
163
- expect(detectReleaseVersion(packageAdd('9.2.0'))).toBeNull();
164
- });
165
-
166
- it('is NOT a release PR on a normal feature-PR patch (neither signal present)', () => {
167
- const patch = ['+export function foo() {}', '-export function bar() {}'].join('\n');
168
- expect(detectReleaseVersion(patch)).toBeNull();
169
- });
170
-
171
- it('refuses to guess when the changelog and package.json versions disagree', () => {
172
- const patch = [changelogAdd('9.2.0'), packageAdd('9.3.0')].join('\n');
173
- expect(detectReleaseVersion(patch)).toBeNull();
174
- });
175
-
176
- it('ignores removed lines (the old version) and reads only the added one', () => {
177
- const patch = ['- "version": "9.1.0",', packageAdd('9.2.0'), changelogAdd('9.2.0')].join('\n');
178
- expect(detectReleaseVersion(patch)).toBe('9.2.0');
179
- });
180
- });
181
-
182
- describe('pickPreviousTag', () => {
183
- it('picks the highest tag strictly below the release version', () => {
184
- expect(pickPreviousTag('9.2.0', ['9.0.0', '9.1.0', '9.2.0'])).toBe('9.1.0');
185
- });
186
- it('handles a v-prefixed tag naming convention', () => {
187
- expect(pickPreviousTag('9.2.0', ['v9.0.0', 'v9.1.0'])).toBe('v9.1.0');
188
- });
189
- it('returns null when no tag is strictly below the version', () => {
190
- expect(pickPreviousTag('9.2.0', ['9.2.0', '9.3.0'])).toBeNull();
191
- expect(pickPreviousTag('9.2.0', [])).toBeNull();
192
- });
193
- it('ignores non-semver tags (branch-backup names etc.) instead of crashing', () => {
194
- expect(
195
- pickPreviousTag('9.2.0', [
196
- 'backup/pre-rebase-augment-limit-fit',
197
- '9.1.0',
198
- 'local-squashed-tip-2026-05-18',
199
- ]),
200
- ).toBe('9.1.0');
201
- });
202
- });
203
-
204
- describe('buildPlan — release-PR shape (PR #957 reproduction)', () => {
205
- function git(root: string, ...args: string[]) {
206
- return spawnSync('git', args, {
207
- cwd: root,
208
- encoding: 'utf8',
209
- env: {
210
- ...process.env,
211
- GIT_AUTHOR_NAME: 'T',
212
- GIT_AUTHOR_EMAIL: 't@e.test',
213
- GIT_COMMITTER_NAME: 'T',
214
- GIT_COMMITTER_EMAIL: 't@e.test',
215
- },
216
- });
217
- }
218
- function write(root: string, rel: string, content: string): void {
219
- const full = path.join(root, rel);
220
- fs.mkdirSync(path.dirname(full), { recursive: true });
221
- fs.writeFileSync(full, content, 'utf-8');
222
- }
223
- function mkTmp(): string {
224
- return fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), 'srg-')));
225
- }
226
-
227
- let root: string | undefined;
228
- afterEach(() => {
229
- if (root) fs.rmSync(root, { recursive: true, force: true });
230
- root = undefined;
231
- });
232
-
233
- it('release mode sees the pre-cut feature file; the packaging diff alone does not (PR #957 shape)', () => {
234
- root = mkTmp();
235
- git(root, 'init', '-q', '-b', 'main');
236
- write(root, 'package.json', '{\n "name": "x",\n "version": "9.0.0"\n}\n');
237
- write(root, 'CHANGELOG.md', '# Changelog\n\n## [Unreleased]\n');
238
- git(root, 'add', '-A');
239
- git(root, 'commit', '-q', '-m', 'baseline');
240
- git(root, 'tag', '9.1.0'); // the previous release tag
241
-
242
- // The feature merges into main BEFORE the release cut — the PR #957 shape.
243
- write(root, 'feature.txt', 'new cross-source-consistency rule content\n');
244
- git(root, 'add', '-A');
245
- git(root, 'commit', '-q', '-m', 'feat: cross-source-consistency');
246
-
247
- // Release branch cut from main's current tip — no divergence yet, so
248
- // main...release-branch only shows the release-cut commit below.
249
- git(root, 'checkout', '-q', '-b', 'release-branch');
250
- write(
251
- root,
252
- 'CHANGELOG.md',
253
- '# Changelog\n\n## [Unreleased]\n\n' +
254
- '## [9.2.0](https://github.com/event4u-app/agent-config/compare/9.1.0...9.2.0) (2026-07-14)\n',
255
- );
256
- write(root, 'package.json', '{\n "name": "x",\n "version": "9.2.0"\n}\n');
257
- git(root, 'add', '-A');
258
- git(root, 'commit', '-q', '-m', 'chore(release): 9.2.0');
259
-
260
- const plan = buildPlan('main', root);
261
-
262
- expect(plan.release?.version).toBe('9.2.0');
263
- expect(plan.release?.previousTag).toBe('9.1.0');
264
- // The packaging diff (main...HEAD) alone does NOT show the pre-cut
265
- // feature — the exact false-advisory shape PR #957 hit.
266
- expect(plan.release?.packagingFiles).not.toContain('feature.txt');
267
- expect(plan.release?.packagingFiles).toEqual(
268
- expect.arrayContaining(['CHANGELOG.md', 'package.json']),
269
- );
270
- // Release mode's actual analysis range (previousTag...HEAD) DOES
271
- // include it — this is what stops "feature not in diff" recurring.
272
- expect(plan.files).toContain('feature.txt');
273
- expect(plan.analysisBase).toBe('9.1.0');
274
- });
275
-
276
- it('a normal feature PR (no changelog/version bump) uses the unchanged base', () => {
277
- root = mkTmp();
278
- git(root, 'init', '-q', '-b', 'main');
279
- write(root, 'package.json', '{\n "name": "x",\n "version": "9.1.0"\n}\n');
280
- write(root, 'CHANGELOG.md', '# Changelog\n\n## [Unreleased]\n');
281
- git(root, 'add', '-A');
282
- git(root, 'commit', '-q', '-m', 'baseline');
283
- git(root, 'tag', '9.1.0');
284
-
285
- git(root, 'checkout', '-q', '-b', 'feature-branch');
286
- write(root, 'feature.txt', 'some feature\n');
287
- git(root, 'add', '-A');
288
- git(root, 'commit', '-q', '-m', 'feat: add feature');
289
-
290
- const plan = buildPlan('main', root);
291
-
292
- expect(plan.release).toBeUndefined();
293
- expect(plan.analysisBase).toBe('main');
294
- expect(plan.files).toContain('feature.txt');
295
- });
296
- });
@@ -1,43 +0,0 @@
1
- /**
2
- * Unit tests for the host-facing capability advertisement.
3
- *
4
- * The `configRoot` and `embed` capabilities must appear in the
5
- * `--version --json` readout (and, via the same module, `GET /api/v1/ping`)
6
- * so a spawner can feature-detect support before relying on either.
7
- */
8
- import { describe, expect, it } from 'vitest';
9
- import { CAPABILITIES, buildVersionReadout } from './capabilities.js';
10
-
11
- describe('capabilities', () => {
12
- it('advertises configRoot support', () => {
13
- expect(CAPABILITIES.configRoot).toBe(true);
14
- });
15
-
16
- it('advertises the embed contract (reciprocal-ecosystem Phase 3)', () => {
17
- expect(CAPABILITIES.embed).toEqual({
18
- supported: true,
19
- version: 1,
20
- features: ['theme', 'deepLink'],
21
- });
22
- });
23
-
24
- it('does NOT advertise the accent feature (v2, not v1)', () => {
25
- expect(CAPABILITIES.embed.features).not.toContain('accent');
26
- });
27
-
28
- it('buildVersionReadout carries the version and the full capability block', () => {
29
- const readout = buildVersionReadout('9.7.0');
30
- expect(readout).toEqual({
31
- version: '9.7.0',
32
- capabilities: {
33
- configRoot: true,
34
- embed: { supported: true, version: 1, features: ['theme', 'deepLink'] },
35
- },
36
- });
37
- });
38
-
39
- it('buildVersionReadout copies capabilities (no shared mutable reference)', () => {
40
- const readout = buildVersionReadout('1.2.3');
41
- expect(readout.capabilities).not.toBe(CAPABILITIES);
42
- });
43
- });