@event4u/agent-config 2.26.0 → 3.0.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 (771) hide show
  1. package/.agent-src/commands/agent-handoff.md +15 -3
  2. package/.agent-src/commands/agent-status.md +12 -0
  3. package/.agent-src/commands/agents/audit.md +12 -0
  4. package/.agent-src/commands/agents/init.md +12 -0
  5. package/.agent-src/commands/agents/optimize.md +12 -0
  6. package/.agent-src/commands/agents/user/accept.md +12 -0
  7. package/.agent-src/commands/agents/user/init.md +12 -0
  8. package/.agent-src/commands/agents/user/review.md +12 -0
  9. package/.agent-src/commands/agents/user/show.md +12 -0
  10. package/.agent-src/commands/agents/user/update.md +12 -0
  11. package/.agent-src/commands/agents/user.md +12 -0
  12. package/.agent-src/commands/agents.md +12 -0
  13. package/.agent-src/commands/analyze-reference-repo.md +15 -3
  14. package/.agent-src/commands/bug-fix.md +12 -0
  15. package/.agent-src/commands/bug-investigate.md +13 -1
  16. package/.agent-src/commands/challenge-me/vision.md +12 -0
  17. package/.agent-src/commands/challenge-me/with-docs.md +12 -0
  18. package/.agent-src/commands/challenge-me.md +12 -0
  19. package/.agent-src/commands/chat-history/import.md +16 -4
  20. package/.agent-src/commands/chat-history/learn.md +15 -3
  21. package/.agent-src/commands/chat-history/show.md +17 -5
  22. package/.agent-src/commands/chat-history.md +14 -2
  23. package/.agent-src/commands/check-current-md.md +12 -0
  24. package/.agent-src/commands/commit/in-chunks.md +12 -0
  25. package/.agent-src/commands/commit.md +12 -0
  26. package/.agent-src/commands/compress.md +12 -0
  27. package/.agent-src/commands/context/create.md +17 -5
  28. package/.agent-src/commands/context/refactor.md +15 -3
  29. package/.agent-src/commands/context.md +12 -0
  30. package/.agent-src/commands/cost-report.md +12 -0
  31. package/.agent-src/commands/council/analysis.md +15 -3
  32. package/.agent-src/commands/council/debate.md +17 -5
  33. package/.agent-src/commands/council/default.md +17 -5
  34. package/.agent-src/commands/council/design.md +12 -0
  35. package/.agent-src/commands/council/optimize.md +12 -0
  36. package/.agent-src/commands/council/pr.md +12 -0
  37. package/.agent-src/commands/council.md +13 -1
  38. package/.agent-src/commands/create-pr/description-only.md +12 -0
  39. package/.agent-src/commands/create-pr.md +39 -0
  40. package/.agent-src/commands/e2e-heal.md +12 -0
  41. package/.agent-src/commands/e2e-plan.md +12 -0
  42. package/.agent-src/commands/estimate-ticket.md +12 -0
  43. package/.agent-src/commands/feature/dev.md +13 -1
  44. package/.agent-src/commands/feature/explore.md +12 -0
  45. package/.agent-src/commands/feature/plan.md +14 -2
  46. package/.agent-src/commands/feature/refactor.md +12 -0
  47. package/.agent-src/commands/feature/roadmap.md +12 -0
  48. package/.agent-src/commands/feature.md +12 -0
  49. package/.agent-src/commands/fix/ci.md +12 -0
  50. package/.agent-src/commands/fix/portability.md +12 -0
  51. package/.agent-src/commands/fix/pr-bot-comments.md +12 -0
  52. package/.agent-src/commands/fix/pr-comments.md +12 -0
  53. package/.agent-src/commands/fix/pr-developer-comments.md +12 -0
  54. package/.agent-src/commands/fix/refs.md +12 -0
  55. package/.agent-src/commands/fix/seeder.md +12 -0
  56. package/.agent-src/commands/fix.md +12 -0
  57. package/.agent-src/commands/ghostwriter/delete.md +20 -8
  58. package/.agent-src/commands/ghostwriter/fetch.md +19 -7
  59. package/.agent-src/commands/ghostwriter/list.md +19 -7
  60. package/.agent-src/commands/ghostwriter/show.md +14 -2
  61. package/.agent-src/commands/ghostwriter/write.md +15 -3
  62. package/.agent-src/commands/ghostwriter.md +14 -2
  63. package/.agent-src/commands/grill-me.md +12 -0
  64. package/.agent-src/commands/implement-ticket.md +12 -0
  65. package/.agent-src/commands/jira-ticket.md +12 -0
  66. package/.agent-src/commands/judge/on-diff.md +12 -0
  67. package/.agent-src/commands/judge/solo.md +12 -0
  68. package/.agent-src/commands/judge/steps.md +12 -0
  69. package/.agent-src/commands/judge.md +12 -0
  70. package/.agent-src/commands/memory/add.md +12 -0
  71. package/.agent-src/commands/memory/learn-low-impact.md +18 -6
  72. package/.agent-src/commands/memory/load.md +12 -0
  73. package/.agent-src/commands/memory/mine-session.md +12 -0
  74. package/.agent-src/commands/memory/promote.md +12 -0
  75. package/.agent-src/commands/memory/propose.md +12 -0
  76. package/.agent-src/commands/memory.md +12 -0
  77. package/.agent-src/commands/mode.md +12 -0
  78. package/.agent-src/commands/module/create.md +12 -0
  79. package/.agent-src/commands/module/explore.md +13 -1
  80. package/.agent-src/commands/module.md +12 -0
  81. package/.agent-src/commands/optimize/agents-dir.md +14 -2
  82. package/.agent-src/commands/optimize/augmentignore.md +12 -0
  83. package/.agent-src/commands/optimize/rtk.md +12 -0
  84. package/.agent-src/commands/optimize/skills.md +12 -0
  85. package/.agent-src/commands/optimize-prompt.md +12 -0
  86. package/.agent-src/commands/optimize.md +12 -0
  87. package/.agent-src/commands/orchestrate.md +13 -1
  88. package/.agent-src/commands/override/create.md +12 -0
  89. package/.agent-src/commands/override/manage.md +12 -0
  90. package/.agent-src/commands/override.md +12 -0
  91. package/.agent-src/commands/package-reset.md +12 -0
  92. package/.agent-src/commands/package-test.md +12 -0
  93. package/.agent-src/commands/post-as/ghostwriter.md +12 -0
  94. package/.agent-src/commands/post-as/me.md +13 -1
  95. package/.agent-src/commands/post-as.md +12 -0
  96. package/.agent-src/commands/prepare-for-review.md +12 -0
  97. package/.agent-src/commands/project-analyze.md +27 -15
  98. package/.agent-src/commands/project-health.md +13 -1
  99. package/.agent-src/commands/quality-fix.md +12 -0
  100. package/.agent-src/commands/refine-ticket.md +12 -0
  101. package/.agent-src/commands/research/deep.md +12 -0
  102. package/.agent-src/commands/research/report.md +12 -0
  103. package/.agent-src/commands/research.md +12 -0
  104. package/.agent-src/commands/review-changes.md +12 -0
  105. package/.agent-src/commands/review-routing.md +12 -0
  106. package/.agent-src/commands/roadmap/ai-council.md +15 -3
  107. package/.agent-src/commands/roadmap/create.md +13 -1
  108. package/.agent-src/commands/roadmap/process-full.md +12 -0
  109. package/.agent-src/commands/roadmap/process-phase.md +12 -0
  110. package/.agent-src/commands/roadmap/process-step.md +12 -0
  111. package/.agent-src/commands/roadmap.md +12 -0
  112. package/.agent-src/commands/rule-compliance-audit.md +12 -0
  113. package/.agent-src/commands/set-cost-profile.md +12 -0
  114. package/.agent-src/commands/sync-agent-settings.md +12 -0
  115. package/.agent-src/commands/sync-gitignore/fix.md +32 -13
  116. package/.agent-src/commands/sync-gitignore.md +13 -1
  117. package/.agent-src/commands/tests/create.md +12 -0
  118. package/.agent-src/commands/tests/execute.md +12 -0
  119. package/.agent-src/commands/tests.md +12 -0
  120. package/.agent-src/commands/threat-model.md +12 -0
  121. package/.agent-src/commands/update-form-request-messages.md +12 -0
  122. package/.agent-src/commands/upstream-contribute.md +12 -0
  123. package/.agent-src/commands/video/from-script.md +12 -0
  124. package/.agent-src/commands/video/scene.md +12 -0
  125. package/.agent-src/commands/video/stitch.md +13 -1
  126. package/.agent-src/commands/video/storyboard.md +12 -0
  127. package/.agent-src/commands/video.md +12 -0
  128. package/.agent-src/commands/work.md +12 -0
  129. package/.agent-src/contexts/augment-infrastructure.md +2 -2
  130. package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
  131. package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
  132. package/.agent-src/contexts/documentation-hierarchy.md +2 -2
  133. package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
  134. package/.agent-src/ghostwriter/README.md +2 -2
  135. package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
  136. package/.agent-src/personas/README.md +1 -1
  137. package/.agent-src/personas/advisors/contrarian.md +1 -1
  138. package/.agent-src/personas/advisors/executor.md +1 -1
  139. package/.agent-src/personas/advisors/expansionist.md +1 -1
  140. package/.agent-src/personas/advisors/first-principles.md +1 -1
  141. package/.agent-src/personas/advisors/outsider.md +1 -1
  142. package/.agent-src/rules/agent-authority.md +12 -0
  143. package/.agent-src/rules/analysis-skill-routing.md +12 -0
  144. package/.agent-src/rules/architecture.md +13 -1
  145. package/.agent-src/rules/artifact-drafting-protocol.md +13 -1
  146. package/.agent-src/rules/artifact-engagement-recording.md +13 -1
  147. package/.agent-src/rules/ask-when-uncertain.md +12 -0
  148. package/.agent-src/rules/augment-edit-discipline.md +13 -1
  149. package/.agent-src/rules/augment-source-of-truth.md +13 -1
  150. package/.agent-src/rules/autonomous-execution.md +13 -1
  151. package/.agent-src/rules/caveman-speak.md +13 -1
  152. package/.agent-src/rules/cli-output-handling.md +13 -1
  153. package/.agent-src/rules/command-suggestion-policy.md +13 -1
  154. package/.agent-src/rules/commit-conventions.md +13 -1
  155. package/.agent-src/rules/commit-policy.md +12 -0
  156. package/.agent-src/rules/context-hygiene.md +15 -3
  157. package/.agent-src/rules/copilot-routing.md +13 -1
  158. package/.agent-src/rules/devcontainer-routing.md +13 -1
  159. package/.agent-src/rules/direct-answers.md +12 -0
  160. package/.agent-src/rules/docker-commands.md +13 -1
  161. package/.agent-src/rules/domain-adoption-policy.md +17 -5
  162. package/.agent-src/rules/domain-safety-disclaimer.md +13 -1
  163. package/.agent-src/rules/domain-safety-pii.md +13 -1
  164. package/.agent-src/rules/domain-safety-retention.md +13 -1
  165. package/.agent-src/rules/downstream-changes.md +13 -1
  166. package/.agent-src/rules/external-reference-deep-dive.md +13 -1
  167. package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
  168. package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
  169. package/.agent-src/rules/git-history-discipline.md +13 -1
  170. package/.agent-src/rules/guidelines.md +12 -0
  171. package/.agent-src/rules/improve-before-implement.md +13 -1
  172. package/.agent-src/rules/invite-challenge.md +13 -1
  173. package/.agent-src/rules/language-and-tone.md +12 -0
  174. package/.agent-src/rules/laravel-routing.md +13 -1
  175. package/.agent-src/rules/laravel-translations.md +13 -1
  176. package/.agent-src/rules/low-impact-corpus-privacy-floor.md +17 -5
  177. package/.agent-src/rules/markdown-safe-codeblocks.md +13 -1
  178. package/.agent-src/rules/media-governance-routing.md +27 -15
  179. package/.agent-src/rules/minimal-safe-diff.md +13 -1
  180. package/.agent-src/rules/missing-tool-handling.md +13 -1
  181. package/.agent-src/rules/model-recommendation.md +13 -1
  182. package/.agent-src/rules/no-attribution-footers.md +13 -1
  183. package/.agent-src/rules/no-cheap-questions.md +12 -0
  184. package/.agent-src/rules/no-roadmap-references.md +28 -16
  185. package/.agent-src/rules/non-destructive-by-default.md +12 -0
  186. package/.agent-src/rules/onboarding-gate.md +19 -6
  187. package/.agent-src/rules/package-ci-checks.md +12 -0
  188. package/.agent-src/rules/persona-governance.md +13 -1
  189. package/.agent-src/rules/php-coding.md +13 -1
  190. package/.agent-src/rules/preservation-guard.md +13 -1
  191. package/.agent-src/rules/provider-lifecycle-discipline.md +14 -2
  192. package/.agent-src/rules/reviewer-awareness.md +13 -1
  193. package/.agent-src/rules/roadmap-ci-steps-policy.md +13 -1
  194. package/.agent-src/rules/roadmap-progress-sync.md +18 -1
  195. package/.agent-src/rules/role-mode-adherence.md +13 -1
  196. package/.agent-src/rules/rule-type-governance.md +13 -1
  197. package/.agent-src/rules/runtime-safety.md +13 -1
  198. package/.agent-src/rules/scope-control.md +12 -0
  199. package/.agent-src/rules/security-sensitive-stop.md +13 -1
  200. package/.agent-src/rules/size-enforcement.md +12 -0
  201. package/.agent-src/rules/skill-improvement-trigger.md +13 -1
  202. package/.agent-src/rules/skill-quality.md +13 -1
  203. package/.agent-src/rules/slash-command-routing-policy.md +13 -1
  204. package/.agent-src/rules/symfony-routing.md +13 -1
  205. package/.agent-src/rules/think-before-action.md +13 -1
  206. package/.agent-src/rules/token-efficiency.md +13 -1
  207. package/.agent-src/rules/token-optimizer-maintenance.md +12 -0
  208. package/.agent-src/rules/tool-safety.md +13 -1
  209. package/.agent-src/rules/ui-audit-gate.md +13 -1
  210. package/.agent-src/rules/upstream-proposal.md +13 -1
  211. package/.agent-src/rules/user-interaction.md +13 -1
  212. package/.agent-src/rules/user-interrupt-priority.md +12 -0
  213. package/.agent-src/rules/verify-before-complete.md +12 -0
  214. package/.agent-src/skills/accessibility-auditor/SKILL.md +12 -0
  215. package/.agent-src/skills/activation-design/SKILL.md +12 -0
  216. package/.agent-src/skills/adr-create/SKILL.md +12 -0
  217. package/.agent-src/skills/adversarial-review/SKILL.md +12 -0
  218. package/.agent-src/skills/agent-docs-writing/SKILL.md +16 -4
  219. package/.agent-src/skills/agents-md-thin-root/SKILL.md +14 -2
  220. package/.agent-src/skills/ai-council/SKILL.md +28 -15
  221. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +12 -0
  222. package/.agent-src/skills/analysis-skill-router/SKILL.md +12 -0
  223. package/.agent-src/skills/api-design/SKILL.md +13 -3
  224. package/.agent-src/skills/api-endpoint/SKILL.md +12 -0
  225. package/.agent-src/skills/api-testing/SKILL.md +12 -0
  226. package/.agent-src/skills/architecture-review-lens/SKILL.md +12 -0
  227. package/.agent-src/skills/artisan-commands/SKILL.md +12 -0
  228. package/.agent-src/skills/async-python-patterns/SKILL.md +13 -1
  229. package/.agent-src/skills/authz-review/SKILL.md +12 -2
  230. package/.agent-src/skills/aws-infrastructure/SKILL.md +12 -0
  231. package/.agent-src/skills/blade-ui/SKILL.md +12 -0
  232. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +12 -0
  233. package/.agent-src/skills/bug-analyzer/SKILL.md +14 -2
  234. package/.agent-src/skills/build-buy-partner/SKILL.md +12 -0
  235. package/.agent-src/skills/canvas-design/SKILL.md +12 -0
  236. package/.agent-src/skills/character-consistency/SKILL.md +23 -11
  237. package/.agent-src/skills/check-refs/SKILL.md +12 -0
  238. package/.agent-src/skills/churn-prevention/SKILL.md +12 -0
  239. package/.agent-src/skills/code-refactoring/SKILL.md +16 -4
  240. package/.agent-src/skills/code-review/SKILL.md +12 -0
  241. package/.agent-src/skills/command-routing/SKILL.md +12 -0
  242. package/.agent-src/skills/command-writing/SKILL.md +14 -2
  243. package/.agent-src/skills/comp-banding/SKILL.md +12 -0
  244. package/.agent-src/skills/competitive-moat-analysis/SKILL.md +12 -2
  245. package/.agent-src/skills/competitive-positioning/SKILL.md +12 -2
  246. package/.agent-src/skills/composer-packages/SKILL.md +12 -0
  247. package/.agent-src/skills/compress-memory/SKILL.md +12 -0
  248. package/.agent-src/skills/content-funnel-design/SKILL.md +12 -2
  249. package/.agent-src/skills/context-authoring/SKILL.md +18 -6
  250. package/.agent-src/skills/context-document/SKILL.md +17 -5
  251. package/.agent-src/skills/contracts-cognition/SKILL.md +12 -2
  252. package/.agent-src/skills/conventional-commits-writing/SKILL.md +12 -0
  253. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +13 -1
  254. package/.agent-src/skills/copilot-config/SKILL.md +12 -0
  255. package/.agent-src/skills/customer-research/SKILL.md +12 -0
  256. package/.agent-src/skills/dashboard-design/SKILL.md +12 -0
  257. package/.agent-src/skills/data-flow-mapper/SKILL.md +12 -0
  258. package/.agent-src/skills/data-handling-judgment/SKILL.md +12 -2
  259. package/.agent-src/skills/database/SKILL.md +14 -2
  260. package/.agent-src/skills/dcf-modeling/SKILL.md +12 -2
  261. package/.agent-src/skills/deal-qualification-meddic/SKILL.md +12 -2
  262. package/.agent-src/skills/decision-record/SKILL.md +12 -0
  263. package/.agent-src/skills/deep-reading-analyst/SKILL.md +12 -0
  264. package/.agent-src/skills/defense-in-depth/SKILL.md +13 -1
  265. package/.agent-src/skills/dependency-upgrade/SKILL.md +12 -0
  266. package/.agent-src/skills/description-assist/SKILL.md +12 -0
  267. package/.agent-src/skills/design-review/SKILL.md +12 -0
  268. package/.agent-src/skills/devcontainer/SKILL.md +12 -0
  269. package/.agent-src/skills/developer-like-execution/SKILL.md +12 -0
  270. package/.agent-src/skills/discovery-interview/SKILL.md +12 -2
  271. package/.agent-src/skills/doc-coauthoring/SKILL.md +12 -0
  272. package/.agent-src/skills/docker/SKILL.md +12 -0
  273. package/.agent-src/skills/editorial-calendar/SKILL.md +12 -2
  274. package/.agent-src/skills/eloquent/SKILL.md +12 -0
  275. package/.agent-src/skills/eloquent/evals/triggers.json +1 -1
  276. package/.agent-src/skills/error-handling-patterns/SKILL.md +13 -1
  277. package/.agent-src/skills/estimate-ticket/SKILL.md +12 -0
  278. package/.agent-src/skills/existing-ui-audit/SKILL.md +12 -0
  279. package/.agent-src/skills/expansion-playbook/SKILL.md +12 -0
  280. package/.agent-src/skills/fe-design/SKILL.md +12 -0
  281. package/.agent-src/skills/feature-planning/SKILL.md +12 -0
  282. package/.agent-src/skills/file-editor/SKILL.md +12 -0
  283. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +12 -0
  284. package/.agent-src/skills/flux/SKILL.md +12 -0
  285. package/.agent-src/skills/forecast-accuracy/SKILL.md +12 -2
  286. package/.agent-src/skills/forecasting/SKILL.md +12 -2
  287. package/.agent-src/skills/form-handler/SKILL.md +12 -0
  288. package/.agent-src/skills/fundraising-narrative/SKILL.md +12 -2
  289. package/.agent-src/skills/funnel-analysis/SKILL.md +12 -0
  290. package/.agent-src/skills/git-workflow/SKILL.md +12 -0
  291. package/.agent-src/skills/github-ci/SKILL.md +12 -0
  292. package/.agent-src/skills/grafana/SKILL.md +12 -0
  293. package/.agent-src/skills/gtm-launch/SKILL.md +12 -2
  294. package/.agent-src/skills/guideline-writing/SKILL.md +12 -0
  295. package/.agent-src/skills/hiring-loop-design/SKILL.md +12 -0
  296. package/.agent-src/skills/incident-commander/SKILL.md +12 -2
  297. package/.agent-src/skills/jira-integration/SKILL.md +12 -0
  298. package/.agent-src/skills/jobs-events/SKILL.md +12 -0
  299. package/.agent-src/skills/judge-bug-hunter/SKILL.md +12 -0
  300. package/.agent-src/skills/judge-code-quality/SKILL.md +12 -0
  301. package/.agent-src/skills/judge-security-auditor/SKILL.md +12 -0
  302. package/.agent-src/skills/judge-test-coverage/SKILL.md +12 -0
  303. package/.agent-src/skills/laravel/SKILL.md +12 -0
  304. package/.agent-src/skills/laravel-api-endpoint/SKILL.md +15 -3
  305. package/.agent-src/skills/laravel-dto/SKILL.md +14 -2
  306. package/.agent-src/skills/laravel-horizon/SKILL.md +12 -0
  307. package/.agent-src/skills/laravel-mail/SKILL.md +12 -0
  308. package/.agent-src/skills/laravel-middleware/SKILL.md +12 -0
  309. package/.agent-src/skills/laravel-migration/SKILL.md +12 -0
  310. package/.agent-src/skills/laravel-notifications/SKILL.md +12 -0
  311. package/.agent-src/skills/laravel-pennant/SKILL.md +12 -0
  312. package/.agent-src/skills/laravel-pulse/SKILL.md +12 -0
  313. package/.agent-src/skills/laravel-reverb/SKILL.md +12 -0
  314. package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
  315. package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
  316. package/.agent-src/skills/laravel-websocket/SKILL.md +12 -0
  317. package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
  318. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +15 -3
  319. package/.agent-src/skills/lint-skills/SKILL.md +12 -0
  320. package/.agent-src/skills/livewire/SKILL.md +12 -0
  321. package/.agent-src/skills/livewire-architect/SKILL.md +12 -0
  322. package/.agent-src/skills/logging-monitoring/SKILL.md +12 -0
  323. package/.agent-src/skills/market-entry-analysis/SKILL.md +12 -0
  324. package/.agent-src/skills/markitdown/SKILL.md +14 -2
  325. package/.agent-src/skills/mcp/SKILL.md +12 -0
  326. package/.agent-src/skills/mcp-builder/SKILL.md +14 -2
  327. package/.agent-src/skills/md-language-check/SKILL.md +13 -1
  328. package/.agent-src/skills/memory-consolidation/SKILL.md +12 -0
  329. package/.agent-src/skills/merge-conflicts/SKILL.md +12 -0
  330. package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
  331. package/.agent-src/skills/migration-architect/SKILL.md +12 -0
  332. package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
  333. package/.agent-src/skills/module-management/SKILL.md +12 -0
  334. package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
  335. package/.agent-src/skills/multi-tenancy/SKILL.md +14 -2
  336. package/.agent-src/skills/nextjs-patterns/SKILL.md +12 -0
  337. package/.agent-src/skills/okr-tree-modeling/SKILL.md +12 -2
  338. package/.agent-src/skills/onboarding-design/SKILL.md +12 -0
  339. package/.agent-src/skills/onboarding-program/SKILL.md +12 -0
  340. package/.agent-src/skills/one-on-one-cadence/SKILL.md +12 -0
  341. package/.agent-src/skills/openapi/SKILL.md +13 -1
  342. package/.agent-src/skills/org-design/SKILL.md +12 -0
  343. package/.agent-src/skills/override-management/SKILL.md +12 -0
  344. package/.agent-src/skills/perf-feedback-craft/SKILL.md +12 -0
  345. package/.agent-src/skills/performance/SKILL.md +12 -0
  346. package/.agent-src/skills/performance-analysis/SKILL.md +12 -0
  347. package/.agent-src/skills/persona-writing/SKILL.md +12 -0
  348. package/.agent-src/skills/pest-testing/SKILL.md +12 -0
  349. package/.agent-src/skills/php-coder/SKILL.md +12 -0
  350. package/.agent-src/skills/php-debugging/SKILL.md +12 -0
  351. package/.agent-src/skills/php-service/SKILL.md +12 -0
  352. package/.agent-src/skills/pipeline-strategy/SKILL.md +12 -2
  353. package/.agent-src/skills/pixar-storyteller/SKILL.md +17 -5
  354. package/.agent-src/skills/playwright-architect/SKILL.md +12 -2
  355. package/.agent-src/skills/playwright-testing/SKILL.md +12 -0
  356. package/.agent-src/skills/po-discovery/SKILL.md +12 -0
  357. package/.agent-src/skills/positioning-strategy/SKILL.md +12 -0
  358. package/.agent-src/skills/privacy-review/SKILL.md +12 -2
  359. package/.agent-src/skills/project-analysis-core/SKILL.md +12 -0
  360. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +12 -0
  361. package/.agent-src/skills/project-analysis-laravel/SKILL.md +12 -0
  362. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +12 -0
  363. package/.agent-src/skills/project-analysis-node-express/SKILL.md +12 -0
  364. package/.agent-src/skills/project-analysis-react/SKILL.md +12 -0
  365. package/.agent-src/skills/project-analysis-symfony/SKILL.md +12 -0
  366. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +12 -0
  367. package/.agent-src/skills/project-analyzer/SKILL.md +30 -18
  368. package/.agent-src/skills/project-docs/SKILL.md +25 -13
  369. package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +13 -1
  370. package/.agent-src/skills/prompt-optimizer/SKILL.md +13 -1
  371. package/.agent-src/skills/quality-tools/SKILL.md +12 -2
  372. package/.agent-src/skills/react-native-setup/SKILL.md +12 -0
  373. package/.agent-src/skills/react-shadcn-ui/SKILL.md +12 -0
  374. package/.agent-src/skills/readme-reviewer/SKILL.md +12 -0
  375. package/.agent-src/skills/readme-writing/SKILL.md +12 -0
  376. package/.agent-src/skills/readme-writing-package/SKILL.md +12 -0
  377. package/.agent-src/skills/receiving-code-review/SKILL.md +12 -0
  378. package/.agent-src/skills/refine-prompt/SKILL.md +13 -1
  379. package/.agent-src/skills/refine-ticket/SKILL.md +14 -2
  380. package/.agent-src/skills/refine-ticket/detection-map.yml +2 -2
  381. package/.agent-src/skills/release-comms/SKILL.md +12 -2
  382. package/.agent-src/skills/repomix-packer/SKILL.md +13 -1
  383. package/.agent-src/skills/requesting-code-review/SKILL.md +12 -0
  384. package/.agent-src/skills/retention-loops/SKILL.md +12 -0
  385. package/.agent-src/skills/review-routing/SKILL.md +12 -0
  386. package/.agent-src/skills/rice-prioritization/SKILL.md +12 -0
  387. package/.agent-src/skills/risk-officer/SKILL.md +12 -0
  388. package/.agent-src/skills/roadmap-management/SKILL.md +12 -0
  389. package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
  390. package/.agent-src/skills/rtk-output-filtering/SKILL.md +12 -0
  391. package/.agent-src/skills/rule-refactor/SKILL.md +15 -3
  392. package/.agent-src/skills/rule-writing/SKILL.md +13 -1
  393. package/.agent-src/skills/runway-cognition/SKILL.md +12 -2
  394. package/.agent-src/skills/scenario-modeling/SKILL.md +12 -2
  395. package/.agent-src/skills/scene-expander/SKILL.md +18 -6
  396. package/.agent-src/skills/script-writing/SKILL.md +13 -1
  397. package/.agent-src/skills/secrets-management/SKILL.md +13 -3
  398. package/.agent-src/skills/security/SKILL.md +12 -0
  399. package/.agent-src/skills/security-audit/SKILL.md +12 -0
  400. package/.agent-src/skills/sentry-integration/SKILL.md +12 -0
  401. package/.agent-src/skills/sequential-thinking/SKILL.md +12 -0
  402. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +12 -0
  403. package/.agent-src/skills/skill-management/SKILL.md +12 -0
  404. package/.agent-src/skills/skill-reviewer/SKILL.md +12 -0
  405. package/.agent-src/skills/skill-writing/SKILL.md +12 -0
  406. package/.agent-src/skills/sql-writing/SKILL.md +12 -0
  407. package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +12 -0
  408. package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -1
  409. package/.agent-src/skills/symfony-workflow/SKILL.md +12 -0
  410. package/.agent-src/skills/systematic-debugging/SKILL.md +12 -0
  411. package/.agent-src/skills/tailwind-engineer/SKILL.md +12 -0
  412. package/.agent-src/skills/tech-debt-tracker/SKILL.md +12 -2
  413. package/.agent-src/skills/technical-specification/SKILL.md +12 -0
  414. package/.agent-src/skills/terraform/SKILL.md +12 -0
  415. package/.agent-src/skills/terragrunt/SKILL.md +12 -0
  416. package/.agent-src/skills/test-driven-development/SKILL.md +12 -0
  417. package/.agent-src/skills/test-performance/SKILL.md +13 -1
  418. package/.agent-src/skills/testing-anti-patterns/SKILL.md +13 -1
  419. package/.agent-src/skills/threat-modeling/SKILL.md +12 -0
  420. package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +12 -0
  421. package/.agent-src/skills/token-optimizer/SKILL.md +12 -0
  422. package/.agent-src/skills/traefik/SKILL.md +12 -0
  423. package/.agent-src/skills/ui-component-architect/SKILL.md +12 -0
  424. package/.agent-src/skills/unit-economics-modeling/SKILL.md +12 -2
  425. package/.agent-src/skills/universal-project-analysis/SKILL.md +12 -0
  426. package/.agent-src/skills/upstream-contribute/SKILL.md +12 -0
  427. package/.agent-src/skills/using-git-worktrees/SKILL.md +12 -0
  428. package/.agent-src/skills/validate-feature-fit/SKILL.md +12 -0
  429. package/.agent-src/skills/verify-completion-evidence/SKILL.md +12 -0
  430. package/.agent-src/skills/video-director/SKILL.md +18 -6
  431. package/.agent-src/skills/vision-articulation/SKILL.md +12 -0
  432. package/.agent-src/skills/voc-extract/SKILL.md +12 -2
  433. package/.agent-src/skills/voice-and-tone-design/SKILL.md +12 -2
  434. package/.agent-src/templates/agent-settings.md +5 -5
  435. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  436. package/.agent-src/templates/agents/memory/ownership.example.yml +1 -1
  437. package/.agent-src/templates/agents/proposal.example.md +12 -0
  438. package/.agent-src/templates/command.md +1 -1
  439. package/.agent-src/templates/contexts/auth-model.md +2 -2
  440. package/.agent-src/templates/contexts/data-sensitivity.md +3 -3
  441. package/.agent-src/templates/contexts/deployment-order.md +2 -2
  442. package/.agent-src/templates/contexts/observability.md +3 -3
  443. package/.agent-src/templates/contexts/tenant-boundaries.md +3 -3
  444. package/.agent-src/templates/contexts.md +1 -1
  445. package/.agent-src/templates/rule.md +1 -1
  446. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +3 -3
  447. package/.agent-src/templates/scripts/work_engine/cli.py +6 -6
  448. package/.agent-src/templates/scripts/work_engine/emitters.py +29 -4
  449. package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.py +3 -3
  450. package/.agent-src/templates/scripts/work_engine/state.py +53 -0
  451. package/.agent-src/templates/skill-archive-note.md +4 -4
  452. package/.claude-plugin/marketplace.json +1 -2
  453. package/AGENTS.md +5 -4
  454. package/CHANGELOG.md +170 -90
  455. package/CONTRIBUTING.md +61 -0
  456. package/README.md +23 -20
  457. package/config/agent-settings.template.yml +11 -1
  458. package/config/discovery/packs.yml +142 -0
  459. package/config/discovery/unassigned-artefacts.yml +66 -0
  460. package/config/discovery/workspaces.yml +59 -0
  461. package/config/gitignore-block.txt +17 -20
  462. package/dist/cli/agent-config.js +199 -0
  463. package/dist/cli/agent-config.js.map +1 -0
  464. package/dist/cli/bash/runBash.js +40 -0
  465. package/dist/cli/bash/runBash.js.map +1 -0
  466. package/dist/cli/commands/doctorShell.js +91 -0
  467. package/dist/cli/commands/doctorShell.js.map +1 -0
  468. package/dist/cli/commands/packs.js +59 -0
  469. package/dist/cli/commands/packs.js.map +1 -0
  470. package/dist/cli/commands/settings.js +35 -0
  471. package/dist/cli/commands/settings.js.map +1 -0
  472. package/dist/cli/commands/uiServe.js +110 -0
  473. package/dist/cli/commands/uiServe.js.map +1 -0
  474. package/dist/cli/commands/versions.js +64 -0
  475. package/dist/cli/commands/versions.js.map +1 -0
  476. package/dist/cli/commands/workspaces.js +58 -0
  477. package/dist/cli/commands/workspaces.js.map +1 -0
  478. package/dist/cli/discovery/loadManifest.js +62 -0
  479. package/dist/cli/discovery/loadManifest.js.map +1 -0
  480. package/dist/cli/log/logger.js +41 -0
  481. package/dist/cli/log/logger.js.map +1 -0
  482. package/dist/cli/paths.js +60 -0
  483. package/dist/cli/paths.js.map +1 -0
  484. package/dist/cli/python/resolvePython.js +38 -0
  485. package/dist/cli/python/resolvePython.js.map +1 -0
  486. package/dist/cli/registry.js +75 -0
  487. package/dist/cli/registry.js.map +1 -0
  488. package/dist/discovery/discovery-manifest.json +9195 -0
  489. package/dist/discovery/discovery-manifest.json.sha256 +1 -0
  490. package/dist/discovery/discovery-manifest.summary.md +93 -0
  491. package/dist/mcp/awesome-mcp-servers.row.md +1 -0
  492. package/dist/mcp/mcp-cloudflare-catalogue.json +27 -0
  493. package/dist/mcp/registry-manifest.json +63 -0
  494. package/dist/server/app.js +117 -0
  495. package/dist/server/app.js.map +1 -0
  496. package/dist/server/io/atomicMultiWrite.js +202 -0
  497. package/dist/server/io/atomicMultiWrite.js.map +1 -0
  498. package/dist/server/io/atomicWrite.js +79 -0
  499. package/dist/server/io/atomicWrite.js.map +1 -0
  500. package/dist/server/io/substituteTemplate.js +87 -0
  501. package/dist/server/io/substituteTemplate.js.map +1 -0
  502. package/dist/server/io/yamlIO.js +140 -0
  503. package/dist/server/io/yamlIO.js.map +1 -0
  504. package/dist/server/port.js +97 -0
  505. package/dist/server/port.js.map +1 -0
  506. package/dist/server/routes/discovery.js +72 -0
  507. package/dist/server/routes/discovery.js.map +1 -0
  508. package/dist/server/routes/ping.js +49 -0
  509. package/dist/server/routes/ping.js.map +1 -0
  510. package/dist/server/routes/schema.js +41 -0
  511. package/dist/server/routes/schema.js.map +1 -0
  512. package/dist/server/routes/settings.js +155 -0
  513. package/dist/server/routes/settings.js.map +1 -0
  514. package/dist/server/routes/userMd.js +117 -0
  515. package/dist/server/routes/userMd.js.map +1 -0
  516. package/dist/server/routes/wizard.js +138 -0
  517. package/dist/server/routes/wizard.js.map +1 -0
  518. package/dist/server/schemas/settings.js +138 -0
  519. package/dist/server/schemas/settings.js.map +1 -0
  520. package/dist/server/token.js +68 -0
  521. package/dist/server/token.js.map +1 -0
  522. package/dist/server/writeRoot.js +67 -0
  523. package/dist/server/writeRoot.js.map +1 -0
  524. package/dist/server/writeRoot.test.js +73 -0
  525. package/dist/server/writeRoot.test.js.map +1 -0
  526. package/dist/shared/userMd/formAdapter.js +105 -0
  527. package/dist/shared/userMd/formAdapter.js.map +1 -0
  528. package/dist/shared/userMd/schema.js +118 -0
  529. package/dist/shared/userMd/schema.js.map +1 -0
  530. package/dist/shared/userMd/utils.js +74 -0
  531. package/dist/shared/userMd/utils.js.map +1 -0
  532. package/dist/ui/assets/index-BTRcKDlB.js +39 -0
  533. package/dist/ui/assets/index-BTRcKDlB.js.map +1 -0
  534. package/dist/ui/assets/index-Dqfhmg-d.css +1 -0
  535. package/dist/ui/index.html +14 -0
  536. package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
  537. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  538. package/docs/adrs/schema/0001-json-schema-frontmatter.md +4 -4
  539. package/docs/adrs/schema/README.md +1 -1
  540. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +2 -2
  541. package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
  542. package/docs/architecture.md +2 -1
  543. package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
  544. package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
  545. package/docs/catalog.md +66 -78
  546. package/docs/contracts/STABILITY.md +1 -1
  547. package/docs/contracts/adr-architectural-consensus-mechanism.md +5 -5
  548. package/docs/contracts/adr-chat-history-split.md +1 -1
  549. package/docs/contracts/adr-implement-ticket-runtime.md +1 -1
  550. package/docs/contracts/adr-install-user-type-axis.md +1 -1
  551. package/docs/contracts/adr-mcp-runtime.md +2 -2
  552. package/docs/contracts/agent-user-schema.md +11 -2
  553. package/docs/contracts/ai-council-config.md +13 -13
  554. package/docs/contracts/audit-log-v1.md +2 -2
  555. package/docs/contracts/command-clusters.md +2 -2
  556. package/docs/contracts/compression-default-kill-criterion.md +3 -3
  557. package/docs/contracts/decision-trace-v1.md +5 -5
  558. package/docs/contracts/discovery-manifest.schema.json +146 -0
  559. package/docs/contracts/explain-trace.schema.json +144 -0
  560. package/docs/contracts/file-ownership-matrix.json +117 -341
  561. package/docs/contracts/file-ownership-matrix.md +1 -1
  562. package/docs/contracts/ghostwriter-schema.md +3 -3
  563. package/docs/contracts/hook-architecture-v1.md +10 -10
  564. package/docs/contracts/kernel-membership.md +4 -4
  565. package/docs/contracts/linter-structural-model.md +3 -3
  566. package/docs/contracts/load-context-schema.md +5 -5
  567. package/docs/contracts/local-server-api.md +134 -0
  568. package/docs/contracts/low-impact-corpus-format.md +1 -1
  569. package/docs/contracts/mcp-cloud-scope.md +2 -2
  570. package/docs/contracts/mcp-discovery-phase-notice.md +1 -1
  571. package/docs/contracts/mcp-phase-1-scope.md +5 -4
  572. package/docs/contracts/mcp-registry-manifest.schema.json +129 -0
  573. package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
  574. package/docs/contracts/memory-visibility-v1.md +2 -2
  575. package/docs/contracts/multi-tool-projection-fidelity.md +3 -3
  576. package/docs/contracts/namespace.md +1 -1
  577. package/docs/contracts/one-off-script-lifecycle.md +1 -1
  578. package/docs/contracts/package-self-orientation.md +1 -1
  579. package/docs/contracts/provider-lifecycle.md +2 -2
  580. package/docs/contracts/router-blending.md +1 -1
  581. package/docs/contracts/rule-classification.md +2 -2
  582. package/docs/contracts/settings-api.md +160 -0
  583. package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
  584. package/docs/contracts/tier-3-contrib-plugin.md +1 -1
  585. package/docs/contracts/universal-skills.md +1 -1
  586. package/docs/contracts/write-engine.md +1 -1
  587. package/docs/customization.md +137 -11
  588. package/docs/decisions/ADR-001-kernel-swap-deferred.md +1 -1
  589. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +1 -1
  590. package/docs/decisions/ADR-004-rule-governance-pruning.md +8 -8
  591. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +5 -5
  592. package/docs/decisions/ADR-007-agent-discovery-scopes.md +4 -4
  593. package/docs/decisions/ADR-008-installed-tools-manifest.md +2 -2
  594. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +2 -2
  595. package/docs/decisions/ADR-011-domain-pack-readiness.md +4 -4
  596. package/docs/decisions/ADR-012-typescript-cli-shell.md +162 -0
  597. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +210 -0
  598. package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
  599. package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
  600. package/docs/decisions/INDEX.md +3 -0
  601. package/docs/distribution/mcp-submission-checklist.md +95 -0
  602. package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
  603. package/docs/examples/agent-user.example.md +3 -1
  604. package/docs/getting-started.md +5 -4
  605. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  606. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +10 -1
  607. package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
  608. package/docs/guidelines/agent-infra/tool-integration.md +1 -1
  609. package/docs/guidelines/php/api-design.md +1 -1
  610. package/docs/guidelines/prompt-templates.md +2 -2
  611. package/docs/hook-payload-capture.md +3 -3
  612. package/docs/installation.md +12 -4
  613. package/docs/migrations/commands-1.15.0.md +3 -3
  614. package/docs/parity/bench-ruflo.json +1 -1
  615. package/docs/parity/ruflo.md +3 -3
  616. package/docs/profiles.md +1 -1
  617. package/docs/quality.md +2 -2
  618. package/docs/recruits/_template.md +3 -3
  619. package/docs/setup/enterprise-and-offline.md +3 -3
  620. package/docs/setup/mcp-server-docker.md +5 -3
  621. package/docs/skills-catalog.md +62 -18
  622. package/docs/wizard.md +121 -0
  623. package/llms.txt +61 -17
  624. package/package.json +46 -3
  625. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  626. package/scripts/_archive/README.md +2 -2
  627. package/scripts/_archive/_p4_migrate.py +1 -1
  628. package/scripts/_cli/cmd_doctor.py +5 -5
  629. package/scripts/_cli/cmd_explain.py +106 -2
  630. package/scripts/_cli/cmd_migrate.py +2 -2
  631. package/scripts/_cli/explain_last/__init__.py +122 -0
  632. package/scripts/_cli/explain_last/assumptions.py +59 -0
  633. package/scripts/_cli/explain_last/council.py +105 -0
  634. package/scripts/_cli/explain_last/halt.py +44 -0
  635. package/scripts/_cli/explain_last/inputs.py +125 -0
  636. package/scripts/_cli/explain_last/memory.py +94 -0
  637. package/scripts/_cli/explain_last/provider.py +52 -0
  638. package/scripts/_cli/explain_last/render.py +52 -0
  639. package/scripts/_cli/explain_last/route.py +58 -0
  640. package/scripts/_cli/explain_last/scrubber.py +105 -0
  641. package/scripts/_cli/explain_last/sections/__init__.py +35 -0
  642. package/scripts/_cli/explain_last/sections/assumptions.py +21 -0
  643. package/scripts/_cli/explain_last/sections/council.py +27 -0
  644. package/scripts/_cli/explain_last/sections/halt.py +31 -0
  645. package/scripts/_cli/explain_last/sections/header.py +24 -0
  646. package/scripts/_cli/explain_last/sections/inputs.py +27 -0
  647. package/scripts/_cli/explain_last/sections/memory.py +21 -0
  648. package/scripts/_cli/explain_last/sections/pack.py +16 -0
  649. package/scripts/_cli/explain_last/sections/provider.py +26 -0
  650. package/scripts/_cli/explain_last/sections/route.py +22 -0
  651. package/scripts/_cli/explain_last/state_loader.py +76 -0
  652. package/scripts/_dispatch.bash +954 -0
  653. package/scripts/_lib/agent_settings.py +3 -3
  654. package/scripts/_lib/agents_overlay.py +3 -3
  655. package/scripts/_phase4_bucket.py +210 -0
  656. package/scripts/agent-config +35 -943
  657. package/scripts/ai-video/adapters/higgsfield.sh +1 -1
  658. package/scripts/ai-video/adapters/sora.sh +1 -1
  659. package/scripts/ai-video/test-pipeline.sh +2 -2
  660. package/scripts/ai_council/_default_prices.py +5 -5
  661. package/scripts/ai_council/advisors.py +1 -1
  662. package/scripts/ai_council/clients.py +2 -2
  663. package/scripts/ai_council/compile_corpus.py +9 -8
  664. package/scripts/ai_council/config.py +3 -3
  665. package/scripts/ai_council/events_log.py +8 -4
  666. package/scripts/ai_council/low_impact_corpus.py +1 -1
  667. package/scripts/ai_council/low_impact_intake.py +1 -1
  668. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +2 -2
  669. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +1 -1
  670. package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +3 -3
  671. package/scripts/ai_council/pricing.py +8 -7
  672. package/scripts/ai_council/probation_gate.py +1 -1
  673. package/scripts/ai_council/redact_low_impact_entry.py +1 -1
  674. package/scripts/ai_council/session.py +13 -13
  675. package/scripts/ai_council/shadow_dispatch.py +2 -2
  676. package/scripts/annotate_discovery.py +149 -0
  677. package/scripts/audit_adr_coverage.py +1 -1
  678. package/scripts/audit_auto_rules.py +2 -2
  679. package/scripts/audit_cloud_compatibility.py +1 -1
  680. package/scripts/audit_command_surface.py +2 -2
  681. package/scripts/audit_likelihood.py +4 -4
  682. package/scripts/audit_overlap.py +3 -3
  683. package/scripts/audit_user_type_axis.py +1 -1
  684. package/scripts/build_discovery_manifest.py +302 -0
  685. package/scripts/build_mcp_registry_manifest.py +181 -0
  686. package/scripts/build_rule_trigger_matrix.py +2 -2
  687. package/scripts/capture_showcase_session.py +1 -1
  688. package/scripts/chat_history.py +5 -5
  689. package/scripts/check_always_budget.py +7 -2
  690. package/scripts/check_council_layout.py +26 -20
  691. package/scripts/check_council_references.py +10 -10
  692. package/scripts/check_discovery_determinism.py +70 -0
  693. package/scripts/check_kernel_rule_bundle.py +2 -2
  694. package/scripts/check_no_roadmap_refs.py +2 -2
  695. package/scripts/check_one_off_location.py +1 -1
  696. package/scripts/check_public_links.py +2 -2
  697. package/scripts/check_references.py +14 -21
  698. package/scripts/check_release_includes_discovery.py +61 -0
  699. package/scripts/ci_summary.py +2 -2
  700. package/scripts/ci_time_ratio.py +1 -1
  701. package/scripts/command_suggester/__init__.py +1 -1
  702. package/scripts/context_hygiene_hook.py +2 -2
  703. package/scripts/council_cli.py +22 -22
  704. package/scripts/council_prune.py +3 -3
  705. package/scripts/extract_audit_patterns.py +2 -2
  706. package/scripts/gen_discovery_baseline.py +127 -0
  707. package/scripts/generate_ownership_matrix.py +1 -1
  708. package/scripts/hook_manifest.yaml +5 -5
  709. package/scripts/hooks/cline-dispatcher.sh +1 -1
  710. package/scripts/hooks/cowork-dispatcher.sh +1 -1
  711. package/scripts/hooks/dispatch_hook.py +3 -3
  712. package/scripts/hooks/gemini-dispatcher.sh +1 -1
  713. package/scripts/hooks/replay_hook.py +1 -1
  714. package/scripts/hooks/state_io.py +5 -5
  715. package/scripts/hooks_doctor.py +4 -4
  716. package/scripts/install-hooks.sh +2 -2
  717. package/scripts/install.py +3 -3
  718. package/scripts/install.sh +120 -18
  719. package/scripts/inventory_frontmatter.py +1 -1
  720. package/scripts/lint_agents_layout.py +103 -0
  721. package/scripts/lint_archived_skills.py +3 -3
  722. package/scripts/lint_artefact_frontmatter.py +180 -0
  723. package/scripts/lint_discovery_manifest.py +136 -0
  724. package/scripts/lint_discovery_vocabulary.py +148 -0
  725. package/scripts/lint_explain_trace.py +80 -0
  726. package/scripts/lint_framework_leakage_allowlist.json +63 -62
  727. package/scripts/lint_ghostwriter_source.py +1 -1
  728. package/scripts/lint_load_context.py +3 -3
  729. package/scripts/lint_mcp_registry_manifest.py +69 -0
  730. package/scripts/lint_media_policy_linkage.py +6 -6
  731. package/scripts/lint_positioning.py +143 -0
  732. package/scripts/lint_rule_tiers.py +2 -2
  733. package/scripts/lint_skill_tools.py +1 -1
  734. package/scripts/lint_topics_yaml.py +89 -0
  735. package/scripts/mcp_server/consumer_tool_catalog.json +3 -3
  736. package/scripts/mcp_server/telemetry.py +2 -2
  737. package/scripts/mcp_server/tools.py +27 -11
  738. package/scripts/mcp_telemetry_health.py +2 -2
  739. package/scripts/mcp_telemetry_store.py +1 -1
  740. package/scripts/measure_augment_budget.py +3 -3
  741. package/scripts/measure_density.py +2 -2
  742. package/scripts/measure_frugality_savings.py +3 -3
  743. package/scripts/measure_roadmap_trajectory.py +1 -1
  744. package/scripts/measure_rule_budget.py +3 -3
  745. package/scripts/memory_report.py +1 -1
  746. package/scripts/migrate_command_suggestions.py +3 -3
  747. package/scripts/minimal_safe_diff_hook.py +1 -1
  748. package/scripts/onboarding_gate_hook.py +4 -4
  749. package/scripts/prepack-check.mjs +62 -0
  750. package/scripts/probe_projection_fidelity.py +2 -2
  751. package/scripts/refine_ticket_detect.py +1 -1
  752. package/scripts/schemas/command.schema.json +41 -1
  753. package/scripts/schemas/persona.schema.json +1 -1
  754. package/scripts/schemas/rule.schema.json +44 -4
  755. package/scripts/schemas/skill.schema.json +41 -1
  756. package/scripts/score_skill_selection.py +1 -1
  757. package/scripts/skill_collision_clusters.py +1 -1
  758. package/scripts/skill_linter.py +2 -2
  759. package/scripts/skill_overlap.py +1 -1
  760. package/scripts/skill_tools/run_block_d_eval.py +1 -1
  761. package/scripts/skill_usage_collect.py +3 -3
  762. package/scripts/skill_usage_report.py +3 -3
  763. package/scripts/smoke_quickstart.py +1 -1
  764. package/scripts/spotcheck_thin_root.py +1 -1
  765. package/scripts/sync_github_metadata.py +147 -0
  766. package/scripts/sync_gitignore.py +15 -5
  767. package/scripts/update_prices.py +4 -3
  768. package/scripts/verify_before_complete_hook.py +1 -1
  769. package/scripts/verify_roadmap_closure.py +1 -1
  770. package/templates/agent-user.md +35 -0
  771. package/.agent-src/commands/onboard.md +0 -467
@@ -2,19 +2,19 @@
2
2
  """Activation-likelihood heuristic for the Rule-Governance pass
3
3
  (Phase 5.3 of road-to-augment-limit-fit).
4
4
 
5
- For every auto-rule from `agents/reports/auto-rules-audit.json`:
5
+ For every auto-rule from `agents/runtime/reports/auto-rules-audit.json`:
6
6
 
7
7
  1. Build a token set from `description`, `triggers[].keyword`,
8
8
  `triggers[].intent`, and the rule name itself.
9
9
  2. Index a corpus of skills (`SKILL.md`), contexts
10
- (`agents/contexts/**/*.md`), guidelines, and command files.
10
+ (`agents/settings/contexts/**/*.md`), guidelines, and command files.
11
11
  3. Score `corpus_hits = sum(1 for token in tokens if token in corpus)`.
12
12
  4. Flag rules with `< 2` corpus hits as "low-likelihood" (their trigger
13
13
  surface is so generic that the host LLM is unlikely to find a
14
14
  project-local file the rule was written to bridge to).
15
15
 
16
16
  Result is a JSON dump + Markdown section appended to
17
- `agents/reports/auto-rules-audit.md`.
17
+ `agents/runtime/reports/auto-rules-audit.md`.
18
18
  """
19
19
 
20
20
  from __future__ import annotations
@@ -34,7 +34,7 @@ LIKELIHOOD_JSON = REPORT_DIR / "auto-rules-likelihood.json"
34
34
  CORPUS_GLOBS = [
35
35
  ".agent-src.uncompressed/skills/**/SKILL.md",
36
36
  ".agent-src.uncompressed/commands/**/*.md",
37
- "agents/contexts/**/*.md",
37
+ "agents/settings/contexts/**/*.md",
38
38
  "docs/guidelines/**/*.md",
39
39
  ]
40
40
 
@@ -2,7 +2,7 @@
2
2
  """Trigger-overlap analysis for the Rule-Governance pass (Phase 5.2 of
3
3
  road-to-augment-limit-fit).
4
4
 
5
- Reads `agents/reports/auto-rules-audit.json` (produced by
5
+ Reads `agents/runtime/reports/auto-rules-audit.json` (produced by
6
6
  `audit_auto_rules.py`) and computes:
7
7
 
8
8
  - path-prefix Jaccard similarity (per pair of rules);
@@ -10,8 +10,8 @@ Reads `agents/reports/auto-rules-audit.json` (produced by
10
10
 
11
11
  Pairs scoring `path_jaccard >= 0.5` OR `keyword_overlap >= 0.4` are
12
12
  flagged as merge candidates. Output is appended to
13
- `agents/reports/auto-rules-audit.md` and a structured JSON list is
14
- written to `agents/reports/auto-rules-overlap.json` for downstream
13
+ `agents/runtime/reports/auto-rules-audit.md` and a structured JSON list is
14
+ written to `agents/runtime/reports/auto-rules-overlap.json` for downstream
15
15
  consumers (Phase 5.3 likelihood, 5.4 council walk).
16
16
  """
17
17
 
@@ -11,7 +11,7 @@ Two checks across `.agent-src.uncompressed/skills/`:
11
11
  at least one skill. Unused configs are WARN-only (exit 0): seeding
12
12
  future identities ahead of consumption is allowed.
13
13
 
14
- Writes a markdown report to `agents/reports/user-type-axis-audit.md` and
14
+ Writes a markdown report to `agents/runtime/reports/user-type-axis-audit.md` and
15
15
  emits a one-line summary to stdout. Stdlib-only — no PyYAML dependency.
16
16
 
17
17
  Usage:
@@ -0,0 +1,302 @@
1
+ #!/usr/bin/env python3
2
+ """Release-time discovery scanner — produces discovery-manifest.json.
3
+
4
+ Walks the trusted-root tree (`.agent-src.uncompressed/`), extracts the
5
+ five Phase-4 frontmatter keys (`workspaces`, `packs`, `lifecycle`,
6
+ `trust`, `install`), validates each value against the closed vocabulary
7
+ in `config/discovery/*.yml`, and emits a deterministic JSON manifest
8
+ plus a human-readable Markdown summary.
9
+
10
+ CLI: see `--help`. Stdlib + pyyaml only at runtime.
11
+ Schema: docs/contracts/discovery-manifest.schema.json
12
+ Roadmap: agents/roadmaps/archive/automated-pack-workspace-and-skill-discovery.md §2 (archived, status: completed)
13
+ """
14
+ from __future__ import annotations
15
+
16
+ import argparse
17
+ import datetime as _dt
18
+ import hashlib
19
+ import json
20
+ import os
21
+ import sys
22
+ from pathlib import Path
23
+ from typing import Any, Iterable
24
+
25
+ import yaml
26
+
27
+ sys.path.insert(0, str(Path(__file__).resolve().parent))
28
+ from validate_frontmatter import parse_frontmatter # noqa: E402
29
+
30
+ ROOT = Path(__file__).resolve().parents[1]
31
+ SRC = ROOT / ".agent-src.uncompressed"
32
+ VOCAB_DIR = ROOT / "config" / "discovery"
33
+ DEFAULT_OUT = ROOT / "dist" / "discovery" / "discovery-manifest.json"
34
+ DEFAULT_SUMMARY = ROOT / "dist" / "discovery" / "discovery-manifest.summary.md"
35
+ TRUST_ROOTS = (".agent-src.uncompressed", ".augment", ".claude", ".agent-src")
36
+
37
+ _FM_KEYS = ("workspaces", "packs", "lifecycle", "trust", "install")
38
+ _TRUST_REQ = ("level", "confidence", "human_review_required")
39
+ _INSTALL_REQ = ("default", "removable")
40
+
41
+
42
+ def _load_yaml(path: Path) -> Any:
43
+ return yaml.safe_load(path.read_text(encoding="utf-8"))
44
+
45
+
46
+ def _vocab() -> tuple[list[dict[str, Any]], list[dict[str, Any]], dict[str, str]]:
47
+ workspaces = _load_yaml(VOCAB_DIR / "workspaces.yml") or []
48
+ packs = _load_yaml(VOCAB_DIR / "packs.yml") or []
49
+ raw_un = _load_yaml(VOCAB_DIR / "unassigned-artefacts.yml") or []
50
+ overrides = {e["path"]: e["reason"] for e in raw_un} if raw_un else {}
51
+ return workspaces, packs, overrides
52
+
53
+
54
+ def _scanner_version() -> str:
55
+ h = hashlib.sha256(Path(__file__).read_bytes()).hexdigest()
56
+ return h[:12]
57
+
58
+
59
+ def _iter_artefacts() -> Iterable[tuple[Path, str]]:
60
+ """Deterministic order: skills → rules → commands → templates."""
61
+ for p in sorted((SRC / "skills").rglob("SKILL.md")):
62
+ yield p, "skill"
63
+ for p in sorted((SRC / "rules").rglob("*.md")):
64
+ yield p, "rule"
65
+ for p in sorted((SRC / "commands").rglob("*.md")):
66
+ yield p, "command"
67
+ if (SRC / "templates").exists():
68
+ for p in sorted((SRC / "templates").rglob("*.md")):
69
+ yield p, "template"
70
+
71
+
72
+ def _trusted(path: Path) -> bool:
73
+ rel = path.relative_to(ROOT).as_posix()
74
+ return any(rel.startswith(r + "/") for r in TRUST_ROOTS)
75
+
76
+
77
+ def _parse(path: Path) -> dict[str, Any] | None:
78
+ text = path.read_text(encoding="utf-8", errors="replace")
79
+ fm, _ = parse_frontmatter(text)
80
+ if not isinstance(fm, dict):
81
+ return None
82
+ return fm
83
+
84
+
85
+ def _classify(
86
+ fm: dict[str, Any] | None,
87
+ ws_ids: set[str],
88
+ pack_ids: set[str],
89
+ ) -> tuple[dict[str, Any] | None, str | None]:
90
+ """Return (artefact_payload, unassigned_reason). Exactly one is None."""
91
+ if fm is None:
92
+ return None, "missing or unparseable frontmatter"
93
+ missing = [k for k in _FM_KEYS if k not in fm]
94
+ if missing:
95
+ return None, f"missing required key(s): {', '.join(missing)}"
96
+
97
+ ws = fm["workspaces"]
98
+ if not isinstance(ws, list) or not ws:
99
+ return None, "workspaces: must be a non-empty list"
100
+ bad = [w for w in ws if w not in ws_ids]
101
+ if bad:
102
+ return None, f"unknown workspace(s): {', '.join(bad)} (not in vocabulary)"
103
+
104
+ pk = fm["packs"]
105
+ if not isinstance(pk, list) or not pk:
106
+ return None, "packs: must be a non-empty list"
107
+ bad = [p for p in pk if p not in pack_ids]
108
+ if bad:
109
+ return None, f"unknown pack(s): {', '.join(bad)} (not in vocabulary)"
110
+
111
+ lc = fm["lifecycle"]
112
+ if lc not in ("active", "deprecated", "experimental", "archived"):
113
+ return None, f"lifecycle: invalid value '{lc}'"
114
+
115
+ trust = fm["trust"]
116
+ if not isinstance(trust, dict) or any(k not in trust for k in _TRUST_REQ):
117
+ return None, f"trust: missing required key(s) {_TRUST_REQ}"
118
+ if trust["level"] not in ("core", "professional", "experimental", "advisory", "restricted"):
119
+ return None, f"trust.level: invalid '{trust['level']}'"
120
+ if trust["confidence"] not in ("high", "medium", "low"):
121
+ return None, f"trust.confidence: invalid '{trust['confidence']}'"
122
+ if not isinstance(trust["human_review_required"], bool):
123
+ return None, "trust.human_review_required: must be boolean"
124
+
125
+ install = fm["install"]
126
+ if not isinstance(install, dict) or any(k not in install for k in _INSTALL_REQ):
127
+ return None, f"install: missing required key(s) {_INSTALL_REQ}"
128
+ if not isinstance(install["default"], bool) or not isinstance(install["removable"], bool):
129
+ return None, "install.default and install.removable must be boolean"
130
+
131
+ return {
132
+ "workspaces": list(ws),
133
+ "packs": list(pk),
134
+ "lifecycle": lc,
135
+ "trust": {
136
+ "level": trust["level"],
137
+ "confidence": trust["confidence"],
138
+ "human_review_required": trust["human_review_required"],
139
+ },
140
+ "install": {"default": install["default"], "removable": install["removable"]},
141
+ }, None
142
+
143
+
144
+
145
+ def _build(strict: bool) -> tuple[dict[str, Any], list[dict[str, Any]]]:
146
+ workspaces, packs, overrides = _vocab()
147
+ ws_ids = {w["id"] for w in workspaces}
148
+ pack_ids = {p["id"] for p in packs}
149
+
150
+ artefacts: list[dict[str, Any]] = []
151
+ unassigned: list[dict[str, Any]] = []
152
+ pack_counts: dict[str, int] = {pid: 0 for pid in pack_ids}
153
+
154
+ documented_unassigned: list[dict[str, Any]] = []
155
+
156
+ for path, category in _iter_artefacts():
157
+ rel = path.relative_to(ROOT).as_posix()
158
+ if not _trusted(path):
159
+ unassigned.append({"path": rel, "category": category, "reason": "outside trusted-root allow-list"})
160
+ continue
161
+ if rel in overrides:
162
+ documented_unassigned.append({"path": rel, "category": category, "reason": overrides[rel]})
163
+ continue
164
+ fm = _parse(path)
165
+ payload, reason = _classify(fm, ws_ids, pack_ids)
166
+ if reason is not None:
167
+ unassigned.append({"path": rel, "category": category, "reason": reason})
168
+ continue
169
+ name = (fm or {}).get("name") if isinstance(fm, dict) else None
170
+ entry = {"path": rel, "category": category}
171
+ if isinstance(name, str) and name:
172
+ entry["name"] = name
173
+ entry.update(payload or {})
174
+ artefacts.append(entry)
175
+ for pid in payload["packs"] if payload else []:
176
+ pack_counts[pid] = pack_counts.get(pid, 0) + 1
177
+
178
+ artefacts.sort(key=lambda e: e["path"])
179
+ unassigned.sort(key=lambda e: e["path"])
180
+ documented_unassigned.sort(key=lambda e: e["path"])
181
+
182
+ ws_out = [
183
+ {
184
+ "id": w["id"],
185
+ "label": w["label"],
186
+ "description": w["description"],
187
+ "default_packs": list(w.get("default_packs") or []),
188
+ **({"optional_packs": list(w["optional_packs"])} if w.get("optional_packs") else {}),
189
+ }
190
+ for w in workspaces
191
+ ]
192
+ pk_out = []
193
+ for p in packs:
194
+ item = {
195
+ "id": p["id"],
196
+ "label": p["label"],
197
+ "description": p["description"],
198
+ "workspaces": list(p.get("workspaces") or []),
199
+ "trust_level_default": p["trust_level_default"],
200
+ "artefact_count": pack_counts.get(p["id"], 0),
201
+ }
202
+ if p.get("requires_hint"):
203
+ item["requires_hint"] = list(p["requires_hint"])
204
+ pk_out.append(item)
205
+
206
+ if strict and unassigned:
207
+ raise SystemExit(
208
+ f"strict mode: {len(unassigned)} unassigned artefact(s); "
209
+ f"first: {unassigned[0]['path']} — {unassigned[0]['reason']}"
210
+ )
211
+
212
+ manifest = {
213
+ "version": 1,
214
+ "generated_at": _dt.datetime.now(_dt.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
215
+ "scanner_version": _scanner_version(),
216
+ "checksum": "sha256:" + "0" * 64,
217
+ "workspaces": ws_out,
218
+ "packs": pk_out,
219
+ "artefacts": artefacts,
220
+ "unassigned": unassigned,
221
+ "documented_unassigned": documented_unassigned,
222
+ }
223
+ return manifest, unassigned
224
+
225
+
226
+ def _serialize(manifest: dict[str, Any]) -> str:
227
+ """Deterministic JSON: sorted keys, 2-space indent, trailing newline."""
228
+ return json.dumps(manifest, indent=2, sort_keys=True, ensure_ascii=False) + "\n"
229
+
230
+
231
+ def _finalise_checksum(manifest: dict[str, Any]) -> None:
232
+ # Checksum covers structural content only — `generated_at` is wall-clock
233
+ # and intentionally excluded so the hash stays byte-stable across runs.
234
+ generated_at = manifest.get("generated_at")
235
+ manifest["checksum"] = "sha256:" + "0" * 64
236
+ manifest["generated_at"] = "<normalised>"
237
+ raw = _serialize(manifest).encode("utf-8")
238
+ digest = hashlib.sha256(raw).hexdigest()
239
+ manifest["generated_at"] = generated_at
240
+ manifest["checksum"] = f"sha256:{digest}"
241
+
242
+
243
+ def _summary(manifest: dict[str, Any]) -> str:
244
+ lines = ["# Discovery Manifest — Summary", ""]
245
+ lines.append(f"- Generated: `{manifest['generated_at']}`")
246
+ lines.append(f"- Scanner: `{manifest['scanner_version']}`")
247
+ lines.append(f"- Artefacts: **{len(manifest['artefacts'])}**")
248
+ lines.append(f"- Unassigned: **{len(manifest['unassigned'])}**")
249
+ lines.append("")
250
+ pack_by_id = {p["id"]: p for p in manifest["packs"]}
251
+ for w in manifest["workspaces"]:
252
+ lines.append(f"## `{w['id']}` — {w['label']}")
253
+ lines.append("")
254
+ lines.append(f"> {w['description']}")
255
+ lines.append("")
256
+ lines.append("| Pack | Artefacts |")
257
+ lines.append("|---|---|")
258
+ for pid in list(w.get("default_packs", [])) + list(w.get("optional_packs", [])):
259
+ p = pack_by_id.get(pid)
260
+ if p:
261
+ lines.append(f"| `{pid}` — {p['label']} | {p['artefact_count']} |")
262
+ lines.append("")
263
+ return "\n".join(lines) + "\n"
264
+
265
+
266
+ def main(argv: list[str] | None = None) -> int:
267
+ parser = argparse.ArgumentParser(description=__doc__.splitlines()[0])
268
+ parser.add_argument("--write", action="store_true")
269
+ parser.add_argument("--out", type=Path, default=DEFAULT_OUT)
270
+ parser.add_argument("--summary", type=Path, default=DEFAULT_SUMMARY)
271
+ parser.add_argument("--strict", action="store_true")
272
+ parser.add_argument("--quiet", action="store_true")
273
+ args = parser.parse_args(argv)
274
+
275
+ # Phase 4.4 gate: in CI, behave as if --strict were passed. Local
276
+ # invocations stay permissive unless --strict is explicit.
277
+ strict = args.strict or os.environ.get("CI", "").lower() in ("true", "1")
278
+ manifest, unassigned = _build(strict=strict)
279
+ _finalise_checksum(manifest)
280
+ body = _serialize(manifest)
281
+
282
+ if args.write:
283
+ args.out.parent.mkdir(parents=True, exist_ok=True)
284
+ args.out.write_text(body, encoding="utf-8")
285
+ args.summary.write_text(_summary(manifest), encoding="utf-8")
286
+ # Sidecar SHA-256 of the on-disk manifest bytes for tamper detection
287
+ # by downstream consumers (security-engineer council fold-in, R3 Phase 7).
288
+ sidecar = args.out.with_suffix(args.out.suffix + ".sha256")
289
+ file_digest = hashlib.sha256(body.encode("utf-8")).hexdigest()
290
+ sidecar.write_text(f"{file_digest} {args.out.name}\n", encoding="utf-8")
291
+ if not args.quiet:
292
+ print(
293
+ f"wrote {args.out.relative_to(ROOT)} "
294
+ f"({len(manifest['artefacts'])} artefacts, {len(unassigned)} unassigned)"
295
+ )
296
+ else:
297
+ sys.stdout.write(body)
298
+ return 0
299
+
300
+
301
+ if __name__ == "__main__":
302
+ sys.exit(main())
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env python3
2
+ """Build `dist/mcp/registry-manifest.json` + the two rendered payloads.
3
+
4
+ Reads three on-disk sources:
5
+ * `package.json` — name, version, description, homepage, repository
6
+ * `.github/topics.yml` — topics list (for registries that accept tags)
7
+ * `workers/mcp/content.json` — `tool_catalog` (tools_count, install_hint_stdio)
8
+ * `dist/discovery/discovery-manifest.json` — artefact_count + scanner_version (HARD prereq per AI-Council R5)
9
+
10
+ Emits:
11
+ * `dist/mcp/registry-manifest.json` — source-of-truth manifest
12
+ * `dist/mcp/awesome-mcp-servers.row.md` — single Markdown row
13
+ * `dist/mcp/mcp-cloudflare-catalogue.json` — single JSON catalogue entry
14
+
15
+ Lifecycle state (`status`, `submitted_at`, `pr_url`, `last_verified`) is
16
+ **preserved** from the previous manifest. First-time generation seeds
17
+ `status=pending` and nulls the rest. Status transitions are hand-edits
18
+ under maintainer review — see `docs/distribution/mcp-submission-checklist.md`.
19
+
20
+ CLI: `--write` / `--strict` / `--quiet` — matches the discovery scanner shape.
21
+
22
+ Schema: `docs/contracts/mcp-registry-manifest.schema.json`
23
+ Roadmap: agents/roadmaps/strategic-visibility-mcp-topics-positioning.md Phase 2.
24
+ """
25
+ from __future__ import annotations
26
+
27
+ import argparse
28
+ import datetime as _dt
29
+ import json
30
+ import re
31
+ import sys
32
+ from pathlib import Path
33
+ from typing import Any
34
+
35
+ import yaml
36
+
37
+ ROOT = Path(__file__).resolve().parents[1]
38
+ PKG_FILE = ROOT / "package.json"
39
+ TOPICS_FILE = ROOT / ".github" / "topics.yml"
40
+ CONTENT_FILE = ROOT / "workers" / "mcp" / "content.json"
41
+ DISCOVERY_FILE = ROOT / "dist" / "discovery" / "discovery-manifest.json"
42
+ OUT_DIR = ROOT / "dist" / "mcp"
43
+ OUT_MANIFEST = OUT_DIR / "registry-manifest.json"
44
+ OUT_ROW_MD = OUT_DIR / "awesome-mcp-servers.row.md"
45
+ OUT_CF_JSON = OUT_DIR / "mcp-cloudflare-catalogue.json"
46
+
47
+ REGISTRIES_SEED = [
48
+ {
49
+ "id": "awesome-mcp-servers",
50
+ "label": "punkpeye/awesome-mcp-servers",
51
+ "listing_format": "markdown-row",
52
+ "submission_url": "https://github.com/punkpeye/awesome-mcp-servers",
53
+ "rendered_payload": "dist/mcp/awesome-mcp-servers.row.md",
54
+ },
55
+ {
56
+ "id": "mcp-cloudflare-catalogue",
57
+ "label": "Cloudflare MCP catalogue",
58
+ "listing_format": "json-entry",
59
+ "submission_url": "https://github.com/cloudflare/mcp-server-cloudflare",
60
+ "rendered_payload": "dist/mcp/mcp-cloudflare-catalogue.json",
61
+ },
62
+ ]
63
+
64
+
65
+ def _repo_url(pkg: dict[str, Any]) -> str:
66
+ raw = (pkg.get("repository") or {}).get("url") or ""
67
+ return re.sub(r"^git\+|\.git$", "", raw)
68
+
69
+
70
+ def _build(now_utc: _dt.datetime) -> dict[str, Any]:
71
+ pkg = json.loads(PKG_FILE.read_text(encoding="utf-8"))
72
+ topics_doc = yaml.safe_load(TOPICS_FILE.read_text(encoding="utf-8")) or {}
73
+ content = json.loads(CONTENT_FILE.read_text(encoding="utf-8"))
74
+ if not DISCOVERY_FILE.exists():
75
+ sys.exit(
76
+ "ERROR: dist/discovery/discovery-manifest.json missing. R3 (discovery) "
77
+ "is a hard prerequisite per the AI-Council external review. "
78
+ "Run `npm run build:discovery` first."
79
+ )
80
+ discovery = json.loads(DISCOVERY_FILE.read_text(encoding="utf-8"))
81
+
82
+ tc = content["tool_catalog"]
83
+ prior = json.loads(OUT_MANIFEST.read_text(encoding="utf-8")) if OUT_MANIFEST.exists() else {}
84
+ prior_reg = {r["id"]: r for r in (prior.get("registries") or [])}
85
+
86
+ registries: list[dict[str, Any]] = []
87
+ for seed in REGISTRIES_SEED:
88
+ prev = prior_reg.get(seed["id"], {})
89
+ registries.append({
90
+ **seed,
91
+ "status": prev.get("status", "pending"),
92
+ "submitted_at": prev.get("submitted_at"),
93
+ "pr_url": prev.get("pr_url"),
94
+ "last_verified": prev.get("last_verified"),
95
+ })
96
+
97
+ return {
98
+ "version": 1,
99
+ "generated_at": now_utc.strftime("%Y-%m-%d"),
100
+ "package": {
101
+ "name": pkg["name"],
102
+ "version": pkg["version"],
103
+ "description": pkg["description"],
104
+ "homepage": pkg["homepage"],
105
+ "repository": _repo_url(pkg),
106
+ },
107
+ "server": {
108
+ "name": "agent-config-mcp",
109
+ "transports": ["stdio", "worker"],
110
+ "tools_count": len(tc["tools"]),
111
+ "install_hint_stdio": tc["install_hint_stdio"],
112
+ },
113
+ "topics": sorted(topics_doc.get("topics") or []),
114
+ "discovery": {
115
+ "artefact_count": len(discovery["artefacts"]),
116
+ "scanner_version": discovery["scanner_version"],
117
+ },
118
+ "registries": registries,
119
+ }
120
+
121
+
122
+ def _render_row_md(m: dict[str, Any]) -> str:
123
+ pkg = m["package"]
124
+ srv = m["server"]
125
+ transports = ", ".join(srv["transports"])
126
+ return (
127
+ f"| [{pkg['name']}]({pkg['homepage']}) "
128
+ f"| {pkg['description']} "
129
+ f"| {srv['tools_count']} tools ({transports}) "
130
+ f"| `{srv['install_hint_stdio']}` |\n"
131
+ )
132
+
133
+
134
+ def _render_cf_json(m: dict[str, Any]) -> str:
135
+ pkg = m["package"]
136
+ srv = m["server"]
137
+ payload = {
138
+ "name": srv["name"],
139
+ "description": pkg["description"],
140
+ "homepage": pkg["homepage"],
141
+ "repository": pkg["repository"],
142
+ "transports": srv["transports"],
143
+ "tools_count": srv["tools_count"],
144
+ "install_hint_stdio": srv["install_hint_stdio"],
145
+ "topics": m["topics"],
146
+ }
147
+ return json.dumps(payload, indent=2, sort_keys=True) + "\n"
148
+
149
+
150
+ def main() -> int:
151
+ ap = argparse.ArgumentParser(description=__doc__.splitlines()[0])
152
+ ap.add_argument("--write", action="store_true", help="write outputs to disk (default: print to stdout)")
153
+ ap.add_argument("--strict", action="store_true", help="exit 2 if on-disk outputs would change")
154
+ ap.add_argument("--quiet", action="store_true")
155
+ args = ap.parse_args()
156
+
157
+ now_utc = _dt.datetime.now(_dt.timezone.utc)
158
+ manifest = _build(now_utc)
159
+ manifest_text = json.dumps(manifest, indent=2, sort_keys=True) + "\n"
160
+ row_md = _render_row_md(manifest)
161
+ cf_json = _render_cf_json(manifest)
162
+
163
+ outputs = [(OUT_MANIFEST, manifest_text), (OUT_ROW_MD, row_md), (OUT_CF_JSON, cf_json)]
164
+ changed = [p for p, t in outputs if not p.exists() or p.read_text(encoding="utf-8") != t]
165
+
166
+ if args.write:
167
+ OUT_DIR.mkdir(parents=True, exist_ok=True)
168
+ for p, t in outputs:
169
+ p.write_text(t, encoding="utf-8")
170
+ if not args.quiet:
171
+ verb = "wrote" if changed else "unchanged"
172
+ print(f"\u2705 {verb} {len(outputs)} file(s) under dist/mcp/")
173
+ else:
174
+ if not args.quiet:
175
+ print(manifest_text, end="")
176
+
177
+ return 2 if (args.strict and changed and not args.write) else 0
178
+
179
+
180
+ if __name__ == "__main__":
181
+ raise SystemExit(main())
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- """Build agents/contexts/rule-trigger-matrix.md.
2
+ """Build agents/settings/contexts/rule-trigger-matrix.md.
3
3
 
4
4
  Emits a single matrix mapping every rule in `.agent-src.uncompressed/rules/`
5
5
  to its trigger event, observability, enforcement surface, hook-cost
@@ -113,7 +113,7 @@ add("commit-conventions.md", "commit message draft", "hook", "output",
113
113
  add("docs-sync.md", "file-edit on .augment/{skills,rules,commands}/**", "hook",
114
114
  "tool-call", "medium", "2a",
115
115
  notes="Detect add/rename/delete; remind to update count + cross-refs")
116
- add("agent-docs.md", "file-edit on agents/docs/, AGENTS.md", "hook",
116
+ add("agent-docs.md", "file-edit on agents/reference/docs/, AGENTS.md", "hook",
117
117
  "tool-call", "medium", "2a", notes="Path-pattern based marker")
118
118
  add("upstream-proposal.md", "skill/rule create event", "hook", "output",
119
119
  "medium", "2a", notes="Marker after new artifact lands")
@@ -11,7 +11,7 @@ Two subcommands:
11
11
  task_class, metrics).
12
12
 
13
13
  metrics Compute one or all of the four outcome metrics defined in
14
- `agents/contexts/outcome-baseline.md` from a captured session
14
+ `agents/settings/contexts/outcome-baseline.md` from a captured session
15
15
  file. Output as text table or JSON.
16
16
 
17
17
  The four metrics:
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Persistent chat-history log for crash recovery.
3
3
 
4
- Maintains `agents/.agent-chat-history` — a JSONL file whose
4
+ Maintains `agents/runtime/.agent-chat-history` — a JSONL file whose
5
5
  first line is a header (schema version, started timestamp, cadence
6
6
  frequency) and whose remaining lines are append-only entries (user
7
7
  messages, phases, tool calls, questions, answers, decisions, commits).
@@ -12,7 +12,7 @@ sessions coexist in one file; each entry self-identifies. No ownership
12
12
  layer, no sidecar, no auto-adopt — every hook invocation simply appends
13
13
  with its own session tag.
14
14
 
15
- File path defaults to `agents/.agent-chat-history` (relative to CWD) and
15
+ File path defaults to `agents/runtime/.agent-chat-history` (relative to CWD) and
16
16
  can be overridden via `$AGENT_CHAT_HISTORY_FILE` (used by tests).
17
17
 
18
18
  Usage:
@@ -42,7 +42,7 @@ from collections import Counter, deque
42
42
  from pathlib import Path
43
43
  from typing import Any
44
44
 
45
- DEFAULT_FILE = "agents/.agent-chat-history"
45
+ DEFAULT_FILE = "agents/runtime/.agent-chat-history"
46
46
  DEFAULT_SETTINGS_FILE = ".agent-settings.yml"
47
47
  SCHEMA_VERSION = 4
48
48
  DEFAULT_MAX_SESSIONS = 5
@@ -691,7 +691,7 @@ CADENCE_EVENTS = {
691
691
  # internal VALID_HOOK_EVENTS. Used by hook_dispatch() to translate
692
692
  # stdin JSON payloads coming from Claude Code, Augment Code, Cursor,
693
693
  # Cline, Windsurf, and Gemini CLI into a unified entry-point. Sourced
694
- # from agents/contexts/chat-history-platform-hooks.md.
694
+ # from agents/settings/contexts/chat-history-platform-hooks.md.
695
695
  PLATFORM_EVENT_MAP: dict[str, dict[str, str]] = {
696
696
  "claude": {
697
697
  "SessionStart": "session_start",
@@ -716,7 +716,7 @@ PLATFORM_EVENT_MAP: dict[str, dict[str, str]] = {
716
716
  # with `--setting-sources user`. Until those are resolved, the
717
717
  # mapping below is dispatcher-ready but the lifecycle events do
718
718
  # not actually fire from Cowork. See
719
- # `agents/contexts/chat-history-platform-hooks.md` § Cowork.
719
+ # `agents/settings/contexts/chat-history-platform-hooks.md` § Cowork.
720
720
  "cowork": {
721
721
  "SessionStart": "session_start",
722
722
  "UserPromptSubmit": "user_prompt",
@@ -56,9 +56,14 @@ CONCENTRATION_TOP3_PCT = 0.30
56
56
  # the measured extended-size ceiling at the day road-to-path-fixes was
57
57
  # closed; growth above the ceiling regresses CI. Future kernel-aware
58
58
  # trimming work retires entries here.
59
+ # R3 Phase 4 mass-annotation added 12 lines of ADR-013 discovery
60
+ # frontmatter (workspaces / packs / lifecycle / trust / install — 189
61
+ # chars) to every always-rule. Both ceilings below were re-baselined
62
+ # +189 to absorb that frontmatter-only growth, mirroring the Phase 2
63
+ # feedback-consolidation `tier: "safety-floor"` precedent (+21).
59
64
  KNOWN_CONCENTRATION_BREACHES: dict[str, int] = {
60
- "language-and-tone.md": 3_985,
61
- "no-cheap-questions.md": 3_530,
65
+ "language-and-tone.md": 4_174,
66
+ "no-cheap-questions.md": 3_719,
62
67
  }
63
68
  # Top-3 non-floor concentration ceiling — same rationale as the
64
69
  # per-rule allowlist above. The current top-3 sum (language-and-tone +