@event4u/agent-config 2.26.0 → 3.1.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 (870) 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/install-via-agent.md +129 -0
  66. package/.agent-src/commands/jira-ticket.md +12 -0
  67. package/.agent-src/commands/judge/on-diff.md +12 -0
  68. package/.agent-src/commands/judge/solo.md +12 -0
  69. package/.agent-src/commands/judge/steps.md +12 -0
  70. package/.agent-src/commands/judge.md +12 -0
  71. package/.agent-src/commands/memory/add.md +12 -0
  72. package/.agent-src/commands/memory/learn-low-impact.md +18 -6
  73. package/.agent-src/commands/memory/load.md +12 -0
  74. package/.agent-src/commands/memory/mine-session.md +12 -0
  75. package/.agent-src/commands/memory/promote.md +12 -0
  76. package/.agent-src/commands/memory/propose.md +12 -0
  77. package/.agent-src/commands/memory.md +12 -0
  78. package/.agent-src/commands/mode.md +12 -0
  79. package/.agent-src/commands/module/create.md +12 -0
  80. package/.agent-src/commands/module/explore.md +13 -1
  81. package/.agent-src/commands/module.md +12 -0
  82. package/.agent-src/commands/optimize/agents-dir.md +14 -2
  83. package/.agent-src/commands/optimize/augmentignore.md +12 -0
  84. package/.agent-src/commands/optimize/rtk.md +12 -0
  85. package/.agent-src/commands/optimize/skills.md +12 -0
  86. package/.agent-src/commands/optimize-prompt.md +12 -0
  87. package/.agent-src/commands/optimize.md +12 -0
  88. package/.agent-src/commands/orchestrate.md +13 -1
  89. package/.agent-src/commands/override/create.md +12 -0
  90. package/.agent-src/commands/override/manage.md +12 -0
  91. package/.agent-src/commands/override.md +12 -0
  92. package/.agent-src/commands/package-reset.md +12 -0
  93. package/.agent-src/commands/package-test.md +12 -0
  94. package/.agent-src/commands/post-as/ghostwriter.md +12 -0
  95. package/.agent-src/commands/post-as/me.md +13 -1
  96. package/.agent-src/commands/post-as.md +12 -0
  97. package/.agent-src/commands/prepare-for-review.md +12 -0
  98. package/.agent-src/commands/project-analyze.md +27 -15
  99. package/.agent-src/commands/project-health.md +13 -1
  100. package/.agent-src/commands/quality-fix.md +12 -0
  101. package/.agent-src/commands/refine-ticket.md +12 -0
  102. package/.agent-src/commands/research/deep.md +12 -0
  103. package/.agent-src/commands/research/report.md +12 -0
  104. package/.agent-src/commands/research.md +12 -0
  105. package/.agent-src/commands/review-changes.md +12 -0
  106. package/.agent-src/commands/review-routing.md +12 -0
  107. package/.agent-src/commands/roadmap/ai-council.md +15 -3
  108. package/.agent-src/commands/roadmap/create.md +13 -1
  109. package/.agent-src/commands/roadmap/process-full.md +12 -0
  110. package/.agent-src/commands/roadmap/process-phase.md +12 -0
  111. package/.agent-src/commands/roadmap/process-step.md +12 -0
  112. package/.agent-src/commands/roadmap.md +12 -0
  113. package/.agent-src/commands/rule-compliance-audit.md +12 -0
  114. package/.agent-src/commands/set-cost-profile.md +12 -0
  115. package/.agent-src/commands/sync-agent-settings.md +12 -0
  116. package/.agent-src/commands/sync-gitignore/fix.md +32 -13
  117. package/.agent-src/commands/sync-gitignore.md +13 -1
  118. package/.agent-src/commands/tests/create.md +12 -0
  119. package/.agent-src/commands/tests/execute.md +12 -0
  120. package/.agent-src/commands/tests.md +12 -0
  121. package/.agent-src/commands/threat-model.md +12 -0
  122. package/.agent-src/commands/update-form-request-messages.md +12 -0
  123. package/.agent-src/commands/upstream-contribute.md +12 -0
  124. package/.agent-src/commands/video/from-script.md +13 -1
  125. package/.agent-src/commands/video/scene.md +12 -0
  126. package/.agent-src/commands/video/stitch.md +13 -1
  127. package/.agent-src/commands/video/storyboard.md +12 -0
  128. package/.agent-src/commands/video.md +13 -1
  129. package/.agent-src/commands/work.md +12 -0
  130. package/.agent-src/contexts/augment-infrastructure.md +2 -2
  131. package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
  132. package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
  133. package/.agent-src/contexts/documentation-hierarchy.md +2 -2
  134. package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
  135. package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
  136. package/.agent-src/ghostwriter/README.md +2 -2
  137. package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
  138. package/.agent-src/personas/README.md +1 -1
  139. package/.agent-src/personas/advisors/contrarian.md +1 -1
  140. package/.agent-src/personas/advisors/executor.md +1 -1
  141. package/.agent-src/personas/advisors/expansionist.md +1 -1
  142. package/.agent-src/personas/advisors/first-principles.md +1 -1
  143. package/.agent-src/personas/advisors/outsider.md +1 -1
  144. package/.agent-src/rules/agent-authority.md +12 -0
  145. package/.agent-src/rules/analysis-skill-routing.md +12 -0
  146. package/.agent-src/rules/architecture.md +13 -1
  147. package/.agent-src/rules/artifact-drafting-protocol.md +13 -1
  148. package/.agent-src/rules/artifact-engagement-recording.md +13 -1
  149. package/.agent-src/rules/ask-when-uncertain.md +12 -0
  150. package/.agent-src/rules/augment-edit-discipline.md +13 -1
  151. package/.agent-src/rules/augment-source-of-truth.md +13 -1
  152. package/.agent-src/rules/autonomous-execution.md +13 -1
  153. package/.agent-src/rules/caveman-speak.md +15 -3
  154. package/.agent-src/rules/cli-output-handling.md +13 -1
  155. package/.agent-src/rules/command-suggestion-policy.md +13 -1
  156. package/.agent-src/rules/commit-conventions.md +13 -1
  157. package/.agent-src/rules/commit-policy.md +12 -0
  158. package/.agent-src/rules/context-hygiene.md +51 -3
  159. package/.agent-src/rules/copilot-routing.md +13 -1
  160. package/.agent-src/rules/devcontainer-routing.md +13 -1
  161. package/.agent-src/rules/direct-answers.md +12 -0
  162. package/.agent-src/rules/docker-commands.md +13 -1
  163. package/.agent-src/rules/domain-adoption-policy.md +17 -5
  164. package/.agent-src/rules/domain-safety-disclaimer.md +13 -1
  165. package/.agent-src/rules/domain-safety-pii.md +13 -1
  166. package/.agent-src/rules/domain-safety-retention.md +13 -1
  167. package/.agent-src/rules/downstream-changes.md +13 -1
  168. package/.agent-src/rules/engineering-safety-floor.md +102 -0
  169. package/.agent-src/rules/external-reference-deep-dive.md +13 -1
  170. package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
  171. package/.agent-src/rules/finance-safety-floor.md +114 -0
  172. package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
  173. package/.agent-src/rules/git-history-discipline.md +14 -2
  174. package/.agent-src/rules/guidelines.md +12 -0
  175. package/.agent-src/rules/improve-before-implement.md +13 -1
  176. package/.agent-src/rules/invite-challenge.md +13 -1
  177. package/.agent-src/rules/language-and-tone.md +12 -0
  178. package/.agent-src/rules/laravel-routing.md +13 -1
  179. package/.agent-src/rules/laravel-translations.md +13 -1
  180. package/.agent-src/rules/low-impact-corpus-privacy-floor.md +17 -5
  181. package/.agent-src/rules/markdown-safe-codeblocks.md +13 -1
  182. package/.agent-src/rules/media-governance-routing.md +27 -15
  183. package/.agent-src/rules/minimal-safe-diff.md +13 -1
  184. package/.agent-src/rules/missing-tool-handling.md +13 -1
  185. package/.agent-src/rules/model-recommendation.md +13 -1
  186. package/.agent-src/rules/no-attribution-footers.md +13 -1
  187. package/.agent-src/rules/no-cheap-questions.md +46 -32
  188. package/.agent-src/rules/no-roadmap-references.md +28 -16
  189. package/.agent-src/rules/non-destructive-by-default.md +12 -0
  190. package/.agent-src/rules/onboarding-gate.md +19 -6
  191. package/.agent-src/rules/package-ci-checks.md +12 -0
  192. package/.agent-src/rules/persona-governance.md +13 -1
  193. package/.agent-src/rules/php-coding.md +13 -1
  194. package/.agent-src/rules/preservation-guard.md +13 -1
  195. package/.agent-src/rules/provider-lifecycle-discipline.md +18 -6
  196. package/.agent-src/rules/reviewer-awareness.md +13 -1
  197. package/.agent-src/rules/roadmap-ci-steps-policy.md +13 -1
  198. package/.agent-src/rules/roadmap-progress-sync.md +18 -1
  199. package/.agent-src/rules/role-mode-adherence.md +13 -1
  200. package/.agent-src/rules/rule-type-governance.md +13 -1
  201. package/.agent-src/rules/runtime-safety.md +13 -1
  202. package/.agent-src/rules/scope-control.md +12 -0
  203. package/.agent-src/rules/security-sensitive-stop.md +13 -1
  204. package/.agent-src/rules/size-enforcement.md +12 -0
  205. package/.agent-src/rules/skill-improvement-trigger.md +13 -1
  206. package/.agent-src/rules/skill-quality.md +13 -1
  207. package/.agent-src/rules/slash-command-routing-policy.md +13 -1
  208. package/.agent-src/rules/strategy-safety-floor.md +114 -0
  209. package/.agent-src/rules/symfony-routing.md +13 -1
  210. package/.agent-src/rules/think-before-action.md +13 -1
  211. package/.agent-src/rules/token-efficiency.md +13 -1
  212. package/.agent-src/rules/token-optimizer-maintenance.md +12 -0
  213. package/.agent-src/rules/tool-safety.md +13 -1
  214. package/.agent-src/rules/ui-audit-gate.md +13 -1
  215. package/.agent-src/rules/upstream-proposal.md +13 -1
  216. package/.agent-src/rules/user-interaction.md +13 -1
  217. package/.agent-src/rules/user-interrupt-priority.md +12 -0
  218. package/.agent-src/rules/verify-before-complete.md +12 -0
  219. package/.agent-src/skills/accessibility-auditor/SKILL.md +12 -0
  220. package/.agent-src/skills/activation-design/SKILL.md +12 -0
  221. package/.agent-src/skills/adr-create/SKILL.md +12 -0
  222. package/.agent-src/skills/adversarial-review/SKILL.md +12 -0
  223. package/.agent-src/skills/agent-docs-writing/SKILL.md +16 -4
  224. package/.agent-src/skills/agents-md-thin-root/SKILL.md +28 -10
  225. package/.agent-src/skills/ai-council/SKILL.md +28 -15
  226. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +12 -0
  227. package/.agent-src/skills/analysis-skill-router/SKILL.md +12 -0
  228. package/.agent-src/skills/api-design/SKILL.md +13 -3
  229. package/.agent-src/skills/api-endpoint/SKILL.md +12 -0
  230. package/.agent-src/skills/api-testing/SKILL.md +12 -0
  231. package/.agent-src/skills/architecture-review-lens/SKILL.md +12 -0
  232. package/.agent-src/skills/artisan-commands/SKILL.md +12 -0
  233. package/.agent-src/skills/async-python-patterns/SKILL.md +13 -1
  234. package/.agent-src/skills/authz-review/SKILL.md +12 -2
  235. package/.agent-src/skills/aws-infrastructure/SKILL.md +12 -0
  236. package/.agent-src/skills/blade-ui/SKILL.md +12 -0
  237. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +12 -0
  238. package/.agent-src/skills/bug-analyzer/SKILL.md +14 -2
  239. package/.agent-src/skills/build-buy-partner/SKILL.md +12 -0
  240. package/.agent-src/skills/canvas-design/SKILL.md +12 -0
  241. package/.agent-src/skills/character-consistency/SKILL.md +23 -11
  242. package/.agent-src/skills/check-refs/SKILL.md +12 -0
  243. package/.agent-src/skills/churn-prevention/SKILL.md +12 -0
  244. package/.agent-src/skills/code-refactoring/SKILL.md +16 -4
  245. package/.agent-src/skills/code-review/SKILL.md +12 -0
  246. package/.agent-src/skills/command-routing/SKILL.md +12 -0
  247. package/.agent-src/skills/command-writing/SKILL.md +14 -2
  248. package/.agent-src/skills/comp-banding/SKILL.md +12 -0
  249. package/.agent-src/skills/competitive-moat-analysis/SKILL.md +12 -2
  250. package/.agent-src/skills/competitive-positioning/SKILL.md +12 -2
  251. package/.agent-src/skills/composer-packages/SKILL.md +12 -0
  252. package/.agent-src/skills/compress-memory/SKILL.md +12 -0
  253. package/.agent-src/skills/content-funnel-design/SKILL.md +12 -2
  254. package/.agent-src/skills/context-authoring/SKILL.md +18 -6
  255. package/.agent-src/skills/context-document/SKILL.md +17 -5
  256. package/.agent-src/skills/contracts-cognition/SKILL.md +12 -2
  257. package/.agent-src/skills/conventional-commits-writing/SKILL.md +12 -0
  258. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +13 -1
  259. package/.agent-src/skills/copilot-config/SKILL.md +12 -0
  260. package/.agent-src/skills/customer-research/SKILL.md +12 -0
  261. package/.agent-src/skills/dashboard-design/SKILL.md +12 -0
  262. package/.agent-src/skills/data-flow-mapper/SKILL.md +12 -0
  263. package/.agent-src/skills/data-handling-judgment/SKILL.md +12 -2
  264. package/.agent-src/skills/database/SKILL.md +14 -2
  265. package/.agent-src/skills/dcf-modeling/SKILL.md +12 -2
  266. package/.agent-src/skills/deal-qualification-meddic/SKILL.md +12 -2
  267. package/.agent-src/skills/decision-record/SKILL.md +12 -0
  268. package/.agent-src/skills/deep-reading-analyst/SKILL.md +12 -0
  269. package/.agent-src/skills/defense-in-depth/SKILL.md +13 -1
  270. package/.agent-src/skills/dependency-upgrade/SKILL.md +12 -0
  271. package/.agent-src/skills/description-assist/SKILL.md +12 -0
  272. package/.agent-src/skills/design-review/SKILL.md +12 -0
  273. package/.agent-src/skills/devcontainer/SKILL.md +12 -0
  274. package/.agent-src/skills/developer-like-execution/SKILL.md +12 -0
  275. package/.agent-src/skills/discovery-interview/SKILL.md +12 -2
  276. package/.agent-src/skills/doc-coauthoring/SKILL.md +12 -0
  277. package/.agent-src/skills/docker/SKILL.md +12 -0
  278. package/.agent-src/skills/editorial-calendar/SKILL.md +12 -2
  279. package/.agent-src/skills/eloquent/SKILL.md +12 -0
  280. package/.agent-src/skills/eloquent/evals/triggers.json +1 -1
  281. package/.agent-src/skills/error-handling-patterns/SKILL.md +13 -1
  282. package/.agent-src/skills/estimate-ticket/SKILL.md +12 -0
  283. package/.agent-src/skills/existing-ui-audit/SKILL.md +12 -0
  284. package/.agent-src/skills/expansion-playbook/SKILL.md +12 -0
  285. package/.agent-src/skills/fe-design/SKILL.md +12 -0
  286. package/.agent-src/skills/feature-planning/SKILL.md +12 -0
  287. package/.agent-src/skills/file-editor/SKILL.md +12 -0
  288. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +12 -0
  289. package/.agent-src/skills/flux/SKILL.md +12 -0
  290. package/.agent-src/skills/forecast-accuracy/SKILL.md +12 -2
  291. package/.agent-src/skills/forecasting/SKILL.md +12 -2
  292. package/.agent-src/skills/form-handler/SKILL.md +12 -0
  293. package/.agent-src/skills/fundraising-narrative/SKILL.md +12 -2
  294. package/.agent-src/skills/funnel-analysis/SKILL.md +12 -0
  295. package/.agent-src/skills/git-workflow/SKILL.md +12 -0
  296. package/.agent-src/skills/github-ci/SKILL.md +12 -0
  297. package/.agent-src/skills/grafana/SKILL.md +12 -0
  298. package/.agent-src/skills/gtm-launch/SKILL.md +12 -2
  299. package/.agent-src/skills/guideline-writing/SKILL.md +12 -0
  300. package/.agent-src/skills/hiring-loop-design/SKILL.md +12 -0
  301. package/.agent-src/skills/incident-commander/SKILL.md +12 -2
  302. package/.agent-src/skills/jira-integration/SKILL.md +12 -0
  303. package/.agent-src/skills/jobs-events/SKILL.md +12 -0
  304. package/.agent-src/skills/judge-bug-hunter/SKILL.md +12 -0
  305. package/.agent-src/skills/judge-code-quality/SKILL.md +12 -0
  306. package/.agent-src/skills/judge-security-auditor/SKILL.md +12 -0
  307. package/.agent-src/skills/judge-test-coverage/SKILL.md +12 -0
  308. package/.agent-src/skills/laravel/SKILL.md +12 -0
  309. package/.agent-src/skills/laravel-api-endpoint/SKILL.md +15 -3
  310. package/.agent-src/skills/laravel-dto/SKILL.md +14 -2
  311. package/.agent-src/skills/laravel-horizon/SKILL.md +12 -0
  312. package/.agent-src/skills/laravel-mail/SKILL.md +12 -0
  313. package/.agent-src/skills/laravel-middleware/SKILL.md +12 -0
  314. package/.agent-src/skills/laravel-migration/SKILL.md +12 -0
  315. package/.agent-src/skills/laravel-notifications/SKILL.md +12 -0
  316. package/.agent-src/skills/laravel-pennant/SKILL.md +12 -0
  317. package/.agent-src/skills/laravel-pulse/SKILL.md +12 -0
  318. package/.agent-src/skills/laravel-reverb/SKILL.md +12 -0
  319. package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
  320. package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
  321. package/.agent-src/skills/laravel-websocket/SKILL.md +12 -0
  322. package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
  323. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +15 -3
  324. package/.agent-src/skills/lint-skills/SKILL.md +12 -0
  325. package/.agent-src/skills/livewire/SKILL.md +12 -0
  326. package/.agent-src/skills/livewire-architect/SKILL.md +12 -0
  327. package/.agent-src/skills/logging-monitoring/SKILL.md +12 -0
  328. package/.agent-src/skills/market-entry-analysis/SKILL.md +12 -0
  329. package/.agent-src/skills/markitdown/SKILL.md +14 -2
  330. package/.agent-src/skills/mcp/SKILL.md +12 -0
  331. package/.agent-src/skills/mcp-builder/SKILL.md +14 -2
  332. package/.agent-src/skills/md-language-check/SKILL.md +13 -1
  333. package/.agent-src/skills/memory-consolidation/SKILL.md +12 -0
  334. package/.agent-src/skills/merge-conflicts/SKILL.md +12 -0
  335. package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
  336. package/.agent-src/skills/migration-architect/SKILL.md +12 -0
  337. package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
  338. package/.agent-src/skills/module-management/SKILL.md +12 -0
  339. package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
  340. package/.agent-src/skills/multi-tenancy/SKILL.md +14 -2
  341. package/.agent-src/skills/nextjs-patterns/SKILL.md +12 -0
  342. package/.agent-src/skills/okr-tree-modeling/SKILL.md +12 -2
  343. package/.agent-src/skills/onboarding-design/SKILL.md +12 -0
  344. package/.agent-src/skills/onboarding-program/SKILL.md +12 -0
  345. package/.agent-src/skills/one-on-one-cadence/SKILL.md +12 -0
  346. package/.agent-src/skills/openapi/SKILL.md +13 -1
  347. package/.agent-src/skills/org-design/SKILL.md +12 -0
  348. package/.agent-src/skills/override-management/SKILL.md +12 -0
  349. package/.agent-src/skills/perf-feedback-craft/SKILL.md +12 -0
  350. package/.agent-src/skills/performance/SKILL.md +12 -0
  351. package/.agent-src/skills/performance-analysis/SKILL.md +12 -0
  352. package/.agent-src/skills/persona-writing/SKILL.md +12 -0
  353. package/.agent-src/skills/pest-testing/SKILL.md +12 -0
  354. package/.agent-src/skills/php-coder/SKILL.md +12 -0
  355. package/.agent-src/skills/php-debugging/SKILL.md +12 -0
  356. package/.agent-src/skills/php-service/SKILL.md +12 -0
  357. package/.agent-src/skills/pipeline-strategy/SKILL.md +12 -2
  358. package/.agent-src/skills/pixar-storyteller/SKILL.md +17 -5
  359. package/.agent-src/skills/playwright-architect/SKILL.md +12 -2
  360. package/.agent-src/skills/playwright-testing/SKILL.md +12 -0
  361. package/.agent-src/skills/po-discovery/SKILL.md +12 -0
  362. package/.agent-src/skills/positioning-strategy/SKILL.md +12 -0
  363. package/.agent-src/skills/privacy-review/SKILL.md +12 -2
  364. package/.agent-src/skills/project-analysis-core/SKILL.md +12 -0
  365. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +12 -0
  366. package/.agent-src/skills/project-analysis-laravel/SKILL.md +12 -0
  367. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +12 -0
  368. package/.agent-src/skills/project-analysis-node-express/SKILL.md +12 -0
  369. package/.agent-src/skills/project-analysis-react/SKILL.md +12 -0
  370. package/.agent-src/skills/project-analysis-symfony/SKILL.md +12 -0
  371. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +12 -0
  372. package/.agent-src/skills/project-analyzer/SKILL.md +30 -18
  373. package/.agent-src/skills/project-docs/SKILL.md +25 -13
  374. package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +13 -1
  375. package/.agent-src/skills/prompt-optimizer/SKILL.md +13 -1
  376. package/.agent-src/skills/quality-tools/SKILL.md +12 -2
  377. package/.agent-src/skills/react-native-setup/SKILL.md +12 -0
  378. package/.agent-src/skills/react-shadcn-ui/SKILL.md +12 -0
  379. package/.agent-src/skills/readme-reviewer/SKILL.md +64 -3
  380. package/.agent-src/skills/readme-writing/SKILL.md +64 -4
  381. package/.agent-src/skills/readme-writing-package/SKILL.md +60 -5
  382. package/.agent-src/skills/receiving-code-review/SKILL.md +12 -0
  383. package/.agent-src/skills/refine-prompt/SKILL.md +13 -1
  384. package/.agent-src/skills/refine-ticket/SKILL.md +14 -2
  385. package/.agent-src/skills/refine-ticket/detection-map.yml +2 -2
  386. package/.agent-src/skills/release-comms/SKILL.md +12 -2
  387. package/.agent-src/skills/repomix-packer/SKILL.md +13 -1
  388. package/.agent-src/skills/requesting-code-review/SKILL.md +12 -0
  389. package/.agent-src/skills/retention-loops/SKILL.md +12 -0
  390. package/.agent-src/skills/review-routing/SKILL.md +12 -0
  391. package/.agent-src/skills/rice-prioritization/SKILL.md +12 -0
  392. package/.agent-src/skills/risk-officer/SKILL.md +12 -0
  393. package/.agent-src/skills/roadmap-management/SKILL.md +12 -0
  394. package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
  395. package/.agent-src/skills/rtk-output-filtering/SKILL.md +12 -0
  396. package/.agent-src/skills/rule-refactor/SKILL.md +15 -3
  397. package/.agent-src/skills/rule-writing/SKILL.md +13 -1
  398. package/.agent-src/skills/runway-cognition/SKILL.md +12 -2
  399. package/.agent-src/skills/scenario-modeling/SKILL.md +12 -2
  400. package/.agent-src/skills/scene-expander/SKILL.md +18 -6
  401. package/.agent-src/skills/script-writing/SKILL.md +13 -1
  402. package/.agent-src/skills/secrets-management/SKILL.md +13 -3
  403. package/.agent-src/skills/security/SKILL.md +12 -0
  404. package/.agent-src/skills/security-audit/SKILL.md +12 -0
  405. package/.agent-src/skills/sentry-integration/SKILL.md +12 -0
  406. package/.agent-src/skills/sequential-thinking/SKILL.md +12 -0
  407. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +12 -0
  408. package/.agent-src/skills/skill-management/SKILL.md +12 -0
  409. package/.agent-src/skills/skill-reviewer/SKILL.md +12 -0
  410. package/.agent-src/skills/skill-writing/SKILL.md +12 -0
  411. package/.agent-src/skills/sql-writing/SKILL.md +12 -0
  412. package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +12 -0
  413. package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -1
  414. package/.agent-src/skills/symfony-workflow/SKILL.md +12 -0
  415. package/.agent-src/skills/systematic-debugging/SKILL.md +53 -0
  416. package/.agent-src/skills/tailwind-engineer/SKILL.md +12 -0
  417. package/.agent-src/skills/tech-debt-tracker/SKILL.md +12 -2
  418. package/.agent-src/skills/technical-specification/SKILL.md +12 -0
  419. package/.agent-src/skills/terraform/SKILL.md +12 -0
  420. package/.agent-src/skills/terragrunt/SKILL.md +12 -0
  421. package/.agent-src/skills/test-driven-development/SKILL.md +12 -0
  422. package/.agent-src/skills/test-performance/SKILL.md +13 -1
  423. package/.agent-src/skills/testing-anti-patterns/SKILL.md +13 -1
  424. package/.agent-src/skills/threat-modeling/SKILL.md +12 -0
  425. package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +12 -0
  426. package/.agent-src/skills/token-optimizer/SKILL.md +12 -0
  427. package/.agent-src/skills/traefik/SKILL.md +12 -0
  428. package/.agent-src/skills/ui-component-architect/SKILL.md +12 -0
  429. package/.agent-src/skills/unit-economics-modeling/SKILL.md +12 -2
  430. package/.agent-src/skills/universal-project-analysis/SKILL.md +12 -0
  431. package/.agent-src/skills/upstream-contribute/SKILL.md +12 -0
  432. package/.agent-src/skills/using-git-worktrees/SKILL.md +12 -0
  433. package/.agent-src/skills/validate-feature-fit/SKILL.md +12 -0
  434. package/.agent-src/skills/verify-completion-evidence/SKILL.md +12 -0
  435. package/.agent-src/skills/video-director/SKILL.md +18 -6
  436. package/.agent-src/skills/vision-articulation/SKILL.md +12 -0
  437. package/.agent-src/skills/voc-extract/SKILL.md +12 -2
  438. package/.agent-src/skills/voice-and-tone-design/SKILL.md +12 -2
  439. package/.agent-src/templates/agent-settings.md +5 -5
  440. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  441. package/.agent-src/templates/agents/memory/ownership.example.yml +1 -1
  442. package/.agent-src/templates/agents/proposal.example.md +12 -0
  443. package/.agent-src/templates/command.md +1 -1
  444. package/.agent-src/templates/contexts/auth-model.md +2 -2
  445. package/.agent-src/templates/contexts/data-sensitivity.md +3 -3
  446. package/.agent-src/templates/contexts/deployment-order.md +2 -2
  447. package/.agent-src/templates/contexts/observability.md +3 -3
  448. package/.agent-src/templates/contexts/tenant-boundaries.md +3 -3
  449. package/.agent-src/templates/contexts.md +1 -1
  450. package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
  451. package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
  452. package/.agent-src/templates/rule.md +1 -1
  453. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +7 -4
  454. package/.agent-src/templates/scripts/work_engine/cli.py +6 -6
  455. package/.agent-src/templates/scripts/work_engine/emitters.py +29 -4
  456. package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.py +3 -3
  457. package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
  458. package/.agent-src/templates/scripts/work_engine/state.py +53 -0
  459. package/.agent-src/templates/skill-archive-note.md +4 -4
  460. package/.claude-plugin/marketplace.json +2 -2
  461. package/AGENTS.md +12 -9
  462. package/CHANGELOG.md +268 -90
  463. package/CONTRIBUTING.md +61 -0
  464. package/README.md +173 -558
  465. package/config/agent-settings.template.yml +11 -8
  466. package/config/discovery/packs.yml +162 -0
  467. package/config/discovery/unassigned-artefacts.yml +68 -0
  468. package/config/discovery/workspaces.yml +59 -0
  469. package/config/gitignore-block.txt +36 -23
  470. package/dist/cli/agent-config.js +199 -0
  471. package/dist/cli/agent-config.js.map +1 -0
  472. package/dist/cli/bash/runBash.js +40 -0
  473. package/dist/cli/bash/runBash.js.map +1 -0
  474. package/dist/cli/commands/doctorShell.js +91 -0
  475. package/dist/cli/commands/doctorShell.js.map +1 -0
  476. package/dist/cli/commands/packs.js +59 -0
  477. package/dist/cli/commands/packs.js.map +1 -0
  478. package/dist/cli/commands/settings.js +35 -0
  479. package/dist/cli/commands/settings.js.map +1 -0
  480. package/dist/cli/commands/uiServe.js +119 -0
  481. package/dist/cli/commands/uiServe.js.map +1 -0
  482. package/dist/cli/commands/versions.js +64 -0
  483. package/dist/cli/commands/versions.js.map +1 -0
  484. package/dist/cli/commands/workspaces.js +58 -0
  485. package/dist/cli/commands/workspaces.js.map +1 -0
  486. package/dist/cli/discovery/loadManifest.js +62 -0
  487. package/dist/cli/discovery/loadManifest.js.map +1 -0
  488. package/dist/cli/log/logger.js +41 -0
  489. package/dist/cli/log/logger.js.map +1 -0
  490. package/dist/cli/paths.js +60 -0
  491. package/dist/cli/paths.js.map +1 -0
  492. package/dist/cli/python/resolvePython.js +38 -0
  493. package/dist/cli/python/resolvePython.js.map +1 -0
  494. package/dist/cli/registry.js +77 -0
  495. package/dist/cli/registry.js.map +1 -0
  496. package/dist/discovery/deprecation-report.md +7 -0
  497. package/dist/discovery/discovery-manifest.json +9893 -0
  498. package/dist/discovery/discovery-manifest.json.sha256 +1 -0
  499. package/dist/discovery/discovery-manifest.summary.md +93 -0
  500. package/dist/discovery/orphan-report.md +10 -0
  501. package/dist/discovery/packs.json +1002 -0
  502. package/dist/discovery/trust-report.md +26 -0
  503. package/dist/discovery/workspaces.json +705 -0
  504. package/dist/mcp/awesome-mcp-servers.row.md +1 -0
  505. package/dist/mcp/mcp-cloudflare-catalogue.json +27 -0
  506. package/dist/mcp/registry-manifest.json +63 -0
  507. package/dist/router.json +1623 -0
  508. package/dist/server/app.js +125 -0
  509. package/dist/server/app.js.map +1 -0
  510. package/dist/server/io/atomicMultiWrite.js +204 -0
  511. package/dist/server/io/atomicMultiWrite.js.map +1 -0
  512. package/dist/server/io/atomicWrite.js +79 -0
  513. package/dist/server/io/atomicWrite.js.map +1 -0
  514. package/dist/server/io/substituteTemplate.js +87 -0
  515. package/dist/server/io/substituteTemplate.js.map +1 -0
  516. package/dist/server/io/yamlIO.js +162 -0
  517. package/dist/server/io/yamlIO.js.map +1 -0
  518. package/dist/server/port.js +97 -0
  519. package/dist/server/port.js.map +1 -0
  520. package/dist/server/routes/discovery.js +72 -0
  521. package/dist/server/routes/discovery.js.map +1 -0
  522. package/dist/server/routes/ping.js +57 -0
  523. package/dist/server/routes/ping.js.map +1 -0
  524. package/dist/server/routes/schema.js +41 -0
  525. package/dist/server/routes/schema.js.map +1 -0
  526. package/dist/server/routes/settings.js +236 -0
  527. package/dist/server/routes/settings.js.map +1 -0
  528. package/dist/server/routes/userMd.js +127 -0
  529. package/dist/server/routes/userMd.js.map +1 -0
  530. package/dist/server/routes/wizard.js +374 -0
  531. package/dist/server/routes/wizard.js.map +1 -0
  532. package/dist/server/schemas/settings.js +137 -0
  533. package/dist/server/schemas/settings.js.map +1 -0
  534. package/dist/server/token.js +75 -0
  535. package/dist/server/token.js.map +1 -0
  536. package/dist/server/writeRoot.js +84 -0
  537. package/dist/server/writeRoot.js.map +1 -0
  538. package/dist/server/writeRoot.test.js +91 -0
  539. package/dist/server/writeRoot.test.js.map +1 -0
  540. package/dist/shared/userMd/formAdapter.js +83 -0
  541. package/dist/shared/userMd/formAdapter.js.map +1 -0
  542. package/dist/shared/userMd/schema.js +46 -0
  543. package/dist/shared/userMd/schema.js.map +1 -0
  544. package/dist/shared/userMd/utils.js +88 -0
  545. package/dist/shared/userMd/utils.js.map +1 -0
  546. package/dist/ui/assets/index-D-DY1ywI.js +35 -0
  547. package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
  548. package/dist/ui/assets/index-Dqfhmg-d.css +1 -0
  549. package/dist/ui/index.html +14 -0
  550. package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
  551. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  552. package/docs/adrs/router/0001-three-tier-routing.md +5 -5
  553. package/docs/adrs/schema/0001-json-schema-frontmatter.md +4 -4
  554. package/docs/adrs/schema/README.md +1 -1
  555. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +3 -3
  556. package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
  557. package/docs/architecture.md +3 -2
  558. package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
  559. package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
  560. package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
  561. package/docs/catalog.md +92 -100
  562. package/docs/contracts/CHANGELOG-conventions.md +1 -1
  563. package/docs/contracts/STABILITY.md +1 -1
  564. package/docs/contracts/adr-architectural-consensus-mechanism.md +5 -5
  565. package/docs/contracts/adr-chat-history-split.md +1 -1
  566. package/docs/contracts/adr-implement-ticket-runtime.md +1 -1
  567. package/docs/contracts/adr-install-user-type-axis.md +1 -1
  568. package/docs/contracts/adr-mcp-runtime.md +2 -2
  569. package/docs/contracts/agent-user-schema.md +17 -11
  570. package/docs/contracts/ai-council-config.md +13 -13
  571. package/docs/contracts/audit-log-v1.md +2 -2
  572. package/docs/contracts/command-clusters.md +2 -2
  573. package/docs/contracts/compression-default-kill-criterion.md +3 -3
  574. package/docs/contracts/consumer-bridge.md +79 -0
  575. package/docs/contracts/decision-trace-v1.md +5 -5
  576. package/docs/contracts/discovery-manifest.md +209 -0
  577. package/docs/contracts/discovery-manifest.schema.json +219 -0
  578. package/docs/contracts/explain-trace.schema.json +144 -0
  579. package/docs/contracts/file-ownership-matrix.json +288 -328
  580. package/docs/contracts/file-ownership-matrix.md +1 -1
  581. package/docs/contracts/frontmatter-contract.md +140 -0
  582. package/docs/contracts/ghostwriter-schema.md +3 -3
  583. package/docs/contracts/gui-wizard.md +223 -0
  584. package/docs/contracts/hook-architecture-v1.md +10 -10
  585. package/docs/contracts/installer-agent-mode.md +137 -0
  586. package/docs/contracts/kernel-membership.md +5 -5
  587. package/docs/contracts/linter-structural-model.md +3 -3
  588. package/docs/contracts/load-context-schema.md +5 -5
  589. package/docs/contracts/local-server-api.md +134 -0
  590. package/docs/contracts/low-impact-corpus-format.md +1 -1
  591. package/docs/contracts/mcp-cloud-scope.md +2 -2
  592. package/docs/contracts/mcp-discovery-phase-notice.md +1 -1
  593. package/docs/contracts/mcp-phase-1-scope.md +5 -4
  594. package/docs/contracts/mcp-registry-manifest.schema.json +129 -0
  595. package/docs/contracts/mcp-tool-inventory.md +9 -9
  596. package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
  597. package/docs/contracts/memory-visibility-v1.md +2 -2
  598. package/docs/contracts/multi-tool-projection-fidelity.md +3 -3
  599. package/docs/contracts/namespace.md +7 -7
  600. package/docs/contracts/one-off-script-lifecycle.md +1 -1
  601. package/docs/contracts/package-self-orientation.md +1 -1
  602. package/docs/contracts/provider-lifecycle.md +7 -7
  603. package/docs/contracts/router-blending.md +1 -1
  604. package/docs/contracts/rule-classification.md +2 -2
  605. package/docs/contracts/rule-router.md +4 -4
  606. package/docs/contracts/settings-api.md +207 -0
  607. package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
  608. package/docs/contracts/smoke-contracts.md +3 -3
  609. package/docs/contracts/tier-3-contrib-plugin.md +1 -1
  610. package/docs/contracts/trust-and-safety.md +144 -0
  611. package/docs/contracts/universal-skills.md +1 -1
  612. package/docs/contracts/write-engine.md +1 -1
  613. package/docs/customization.md +139 -13
  614. package/docs/decisions/ADR-001-kernel-swap-deferred.md +1 -1
  615. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +1 -1
  616. package/docs/decisions/ADR-004-rule-governance-pruning.md +8 -8
  617. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +5 -5
  618. package/docs/decisions/ADR-007-agent-discovery-scopes.md +16 -4
  619. package/docs/decisions/ADR-008-installed-tools-manifest.md +2 -2
  620. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +2 -2
  621. package/docs/decisions/ADR-011-domain-pack-readiness.md +4 -4
  622. package/docs/decisions/ADR-012-typescript-cli-shell.md +162 -0
  623. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +234 -0
  624. package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
  625. package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
  626. package/docs/decisions/ADR-016-installer-architecture.md +189 -0
  627. package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
  628. package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
  629. package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
  630. package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
  631. package/docs/decisions/ADR-021-deployment-shape.md +153 -0
  632. package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
  633. package/docs/decisions/INDEX.md +10 -0
  634. package/docs/deploy/connector-setup.md +129 -0
  635. package/docs/deploy/env-vars.md +70 -0
  636. package/docs/deploy/policy-cookbook.md +130 -0
  637. package/docs/deploy/quickstart.md +112 -0
  638. package/docs/distribution/mcp-submission-checklist.md +95 -0
  639. package/docs/distribution/public-install-smoke.md +68 -0
  640. package/docs/distribution/registries.md +55 -0
  641. package/docs/distribution/telemetry-privacy.md +128 -0
  642. package/docs/distribution/telemetry-schema.md +174 -0
  643. package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
  644. package/docs/examples/agent-user.example.md +3 -1
  645. package/docs/featured-skills.md +95 -0
  646. package/docs/getting-started-by-role.md +19 -1
  647. package/docs/getting-started.md +5 -4
  648. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  649. package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
  650. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +10 -1
  651. package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
  652. package/docs/guidelines/agent-infra/tool-integration.md +1 -1
  653. package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
  654. package/docs/guidelines/php/api-design.md +1 -1
  655. package/docs/guidelines/prompt-templates.md +2 -2
  656. package/docs/hook-payload-capture.md +3 -3
  657. package/docs/installation.md +39 -18
  658. package/docs/maintainers/dev-mode.md +105 -0
  659. package/docs/migrations/commands-1.15.0.md +3 -3
  660. package/docs/parity/bench-ruflo.json +1 -1
  661. package/docs/parity/ruflo.md +3 -3
  662. package/docs/profiles.md +1 -1
  663. package/docs/quality.md +2 -2
  664. package/docs/recruits/_template.md +3 -3
  665. package/docs/setup/enterprise-and-offline.md +3 -3
  666. package/docs/setup/mcp-server-docker.md +5 -3
  667. package/docs/setup/per-ide/claude-desktop.md +3 -2
  668. package/docs/skills-catalog.md +62 -18
  669. package/docs/wizard.md +156 -0
  670. package/llms.txt +61 -17
  671. package/package.json +63 -3
  672. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  673. package/scripts/_archive/README.md +2 -2
  674. package/scripts/_archive/_p4_migrate.py +1 -1
  675. package/scripts/_cli/cmd_doctor.py +155 -7
  676. package/scripts/_cli/cmd_explain.py +108 -3
  677. package/scripts/_cli/cmd_migrate.py +2 -2
  678. package/scripts/_cli/cmd_migrate_to_global.py +415 -0
  679. package/scripts/_cli/cmd_settings_migrate.py +146 -0
  680. package/scripts/_cli/explain_last/__init__.py +122 -0
  681. package/scripts/_cli/explain_last/assumptions.py +59 -0
  682. package/scripts/_cli/explain_last/council.py +105 -0
  683. package/scripts/_cli/explain_last/halt.py +44 -0
  684. package/scripts/_cli/explain_last/inputs.py +125 -0
  685. package/scripts/_cli/explain_last/memory.py +94 -0
  686. package/scripts/_cli/explain_last/provider.py +52 -0
  687. package/scripts/_cli/explain_last/render.py +52 -0
  688. package/scripts/_cli/explain_last/route.py +59 -0
  689. package/scripts/_cli/explain_last/scrubber.py +105 -0
  690. package/scripts/_cli/explain_last/sections/__init__.py +35 -0
  691. package/scripts/_cli/explain_last/sections/assumptions.py +21 -0
  692. package/scripts/_cli/explain_last/sections/council.py +27 -0
  693. package/scripts/_cli/explain_last/sections/halt.py +31 -0
  694. package/scripts/_cli/explain_last/sections/header.py +24 -0
  695. package/scripts/_cli/explain_last/sections/inputs.py +27 -0
  696. package/scripts/_cli/explain_last/sections/memory.py +21 -0
  697. package/scripts/_cli/explain_last/sections/pack.py +16 -0
  698. package/scripts/_cli/explain_last/sections/provider.py +26 -0
  699. package/scripts/_cli/explain_last/sections/route.py +22 -0
  700. package/scripts/_cli/explain_last/state_loader.py +76 -0
  701. package/scripts/_dispatch.bash +987 -0
  702. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  703. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  704. package/scripts/_lib/agent_settings.py +7 -4
  705. package/scripts/_lib/agent_src.py +157 -0
  706. package/scripts/_lib/agents_overlay.py +3 -3
  707. package/scripts/_phase4_bucket.py +210 -0
  708. package/scripts/agent-config +50 -947
  709. package/scripts/ai-video/adapters/higgsfield.sh +1 -1
  710. package/scripts/ai-video/adapters/sora.sh +1 -1
  711. package/scripts/ai-video/test-pipeline.sh +2 -2
  712. package/scripts/ai_council/_default_prices.py +5 -5
  713. package/scripts/ai_council/advisors.py +1 -1
  714. package/scripts/ai_council/clients.py +2 -2
  715. package/scripts/ai_council/compile_corpus.py +9 -8
  716. package/scripts/ai_council/config.py +3 -3
  717. package/scripts/ai_council/events_log.py +8 -4
  718. package/scripts/ai_council/low_impact_corpus.py +1 -1
  719. package/scripts/ai_council/low_impact_intake.py +1 -1
  720. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +2 -2
  721. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +1 -1
  722. package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +3 -3
  723. package/scripts/ai_council/pricing.py +8 -7
  724. package/scripts/ai_council/probation_gate.py +1 -1
  725. package/scripts/ai_council/redact_low_impact_entry.py +1 -1
  726. package/scripts/ai_council/session.py +13 -13
  727. package/scripts/ai_council/shadow_dispatch.py +2 -2
  728. package/scripts/annotate_discovery.py +149 -0
  729. package/scripts/audit_adr_coverage.py +1 -1
  730. package/scripts/audit_auto_rules.py +2 -2
  731. package/scripts/audit_cloud_compatibility.py +1 -1
  732. package/scripts/audit_command_surface.py +2 -2
  733. package/scripts/audit_likelihood.py +4 -4
  734. package/scripts/audit_overlap.py +3 -3
  735. package/scripts/audit_skill_descriptions.py +18 -6
  736. package/scripts/audit_user_type_axis.py +1 -1
  737. package/scripts/build_discovery_manifest.py +658 -0
  738. package/scripts/build_mcp_registry_manifest.py +181 -0
  739. package/scripts/build_rule_trigger_matrix.py +2 -2
  740. package/scripts/capture_showcase_session.py +1 -1
  741. package/scripts/chat_history.py +5 -5
  742. package/scripts/check_always_budget.py +7 -2
  743. package/scripts/check_artefact_checksums.py +104 -0
  744. package/scripts/check_cluster_patterns.py +20 -4
  745. package/scripts/check_command_count_messaging.py +33 -14
  746. package/scripts/check_council_layout.py +26 -20
  747. package/scripts/check_council_references.py +53 -14
  748. package/scripts/check_discovery_determinism.py +70 -0
  749. package/scripts/check_kernel_rule_bundle.py +2 -2
  750. package/scripts/check_no_roadmap_refs.py +2 -2
  751. package/scripts/check_one_off_location.py +1 -1
  752. package/scripts/check_overlay_cascade_subdirs.py +7 -3
  753. package/scripts/check_public_links.py +2 -2
  754. package/scripts/check_references.py +19 -23
  755. package/scripts/check_release_includes_discovery.py +61 -0
  756. package/scripts/check_reply_consistency.py +32 -9
  757. package/scripts/check_template_pin_drift.py +24 -7
  758. package/scripts/check_token_optimizer_freshness.py +18 -3
  759. package/scripts/ci_summary.py +2 -2
  760. package/scripts/ci_time_ratio.py +1 -1
  761. package/scripts/command_suggester/__init__.py +1 -1
  762. package/scripts/compile_router.py +34 -2
  763. package/scripts/compress.py +162 -44
  764. package/scripts/config/presets.py +19 -1
  765. package/scripts/config/profiles.py +16 -1
  766. package/scripts/context_hygiene_hook.py +2 -2
  767. package/scripts/council_cli.py +22 -22
  768. package/scripts/council_prune.py +3 -3
  769. package/scripts/discovery_stats.py +70 -0
  770. package/scripts/expected_perms.json +47 -0
  771. package/scripts/extract_audit_patterns.py +2 -2
  772. package/scripts/gen_discovery_baseline.py +127 -0
  773. package/scripts/generate_index.py +78 -46
  774. package/scripts/generate_ownership_matrix.py +99 -44
  775. package/scripts/generate_pack_manifests.py +183 -0
  776. package/scripts/hook_manifest.yaml +5 -5
  777. package/scripts/hooks/cline-dispatcher.sh +1 -1
  778. package/scripts/hooks/cowork-dispatcher.sh +1 -1
  779. package/scripts/hooks/dispatch_hook.py +3 -3
  780. package/scripts/hooks/gemini-dispatcher.sh +1 -1
  781. package/scripts/hooks/replay_hook.py +1 -1
  782. package/scripts/hooks/state_io.py +5 -5
  783. package/scripts/hooks_doctor.py +4 -4
  784. package/scripts/install +18 -1
  785. package/scripts/install-hooks.sh +2 -2
  786. package/scripts/install.py +937 -62
  787. package/scripts/install.sh +147 -27
  788. package/scripts/inventory_frontmatter.py +1 -1
  789. package/scripts/lint_agents_layout.py +183 -0
  790. package/scripts/lint_agents_md.py +1 -1
  791. package/scripts/lint_archived_skills.py +35 -19
  792. package/scripts/lint_artefact_frontmatter.py +180 -0
  793. package/scripts/lint_bench_corpus.py +14 -2
  794. package/scripts/lint_command_tiers.py +15 -2
  795. package/scripts/lint_discovery_manifest.py +136 -0
  796. package/scripts/lint_discovery_vocabulary.py +148 -0
  797. package/scripts/lint_explain_trace.py +80 -0
  798. package/scripts/lint_featured_skills.py +139 -0
  799. package/scripts/lint_framework_leakage.py +33 -6
  800. package/scripts/lint_framework_leakage_allowlist.json +63 -62
  801. package/scripts/lint_ghostwriter_source.py +1 -1
  802. package/scripts/lint_global_paths.py +147 -0
  803. package/scripts/lint_load_context.py +3 -3
  804. package/scripts/lint_mcp_registry_manifest.py +69 -0
  805. package/scripts/lint_media_policy_linkage.py +6 -6
  806. package/scripts/lint_orchestration_dsl.py +6 -3
  807. package/scripts/lint_pack_boundaries.py +147 -0
  808. package/scripts/lint_pack_first_win.py +103 -0
  809. package/scripts/lint_positioning.py +143 -0
  810. package/scripts/lint_readme_jargon.py +131 -0
  811. package/scripts/lint_readme_size.py +33 -0
  812. package/scripts/lint_rule_interactions.py +23 -5
  813. package/scripts/lint_rule_tiers.py +14 -5
  814. package/scripts/lint_skill_tools.py +1 -1
  815. package/scripts/lint_topics_yaml.py +89 -0
  816. package/scripts/lint_trust_coherence.py +212 -0
  817. package/scripts/mcp_server/consumer_tool_catalog.json +3 -3
  818. package/scripts/mcp_server/telemetry.py +2 -2
  819. package/scripts/mcp_server/tools.py +27 -11
  820. package/scripts/mcp_telemetry_health.py +2 -2
  821. package/scripts/mcp_telemetry_store.py +1 -1
  822. package/scripts/measure_augment_budget.py +3 -3
  823. package/scripts/measure_density.py +2 -2
  824. package/scripts/measure_frugality_savings.py +3 -3
  825. package/scripts/measure_roadmap_trajectory.py +1 -1
  826. package/scripts/measure_rule_budget.py +25 -7
  827. package/scripts/memory_report.py +1 -1
  828. package/scripts/migrate_command_suggestions.py +3 -3
  829. package/scripts/minimal_safe_diff_hook.py +1 -1
  830. package/scripts/move_artefact.py +143 -0
  831. package/scripts/new_skill.py +148 -0
  832. package/scripts/onboarding_gate_hook.py +4 -4
  833. package/scripts/plan_physical_move.py +353 -0
  834. package/scripts/prepack-check.mjs +62 -0
  835. package/scripts/probe_projection_fidelity.py +2 -2
  836. package/scripts/refine_ticket_detect.py +31 -8
  837. package/scripts/schemas/command.schema.json +45 -1
  838. package/scripts/schemas/persona.schema.json +1 -1
  839. package/scripts/schemas/rule.schema.json +44 -4
  840. package/scripts/schemas/skill.schema.json +41 -1
  841. package/scripts/score_skill_selection.py +1 -1
  842. package/scripts/skill_collision_clusters.py +1 -1
  843. package/scripts/skill_linter.py +250 -120
  844. package/scripts/skill_overlap.py +1 -1
  845. package/scripts/skill_tools/run_block_d_eval.py +1 -1
  846. package/scripts/skill_trigger_eval.py +28 -8
  847. package/scripts/skill_usage_collect.py +3 -3
  848. package/scripts/skill_usage_report.py +3 -3
  849. package/scripts/smoke/kernel.sh +1 -1
  850. package/scripts/smoke/router.sh +24 -5
  851. package/scripts/smoke/skills.sh +15 -7
  852. package/scripts/smoke_quickstart.py +12 -3
  853. package/scripts/snapshot_agent_outputs.py +144 -0
  854. package/scripts/spotcheck_thin_root.py +1 -1
  855. package/scripts/sync_github_metadata.py +147 -0
  856. package/scripts/sync_gitignore.py +15 -5
  857. package/scripts/update_counts.py +45 -17
  858. package/scripts/update_prices.py +4 -3
  859. package/scripts/validate_decision_engine.py +9 -1
  860. package/scripts/validate_discovery_manifest.py +94 -0
  861. package/scripts/validate_frontmatter.py +39 -20
  862. package/scripts/verify_before_complete_hook.py +1 -1
  863. package/scripts/verify_physical_move.py +185 -0
  864. package/scripts/verify_roadmap_closure.py +1 -1
  865. package/templates/agent-user.md +34 -0
  866. package/templates/agent-user.yml +21 -0
  867. package/templates/minimal/agents-overrides-readme.md +46 -0
  868. package/templates/minimal/overrides-gitkeep +2 -0
  869. package/.agent-src/commands/onboard.md +0 -467
  870. package/templates/minimal/agents-gitkeep +0 -2
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """CI guard for the council clause of the `no-roadmap-references` rule.
3
3
 
4
- Council artefacts under `agents/council-{questions,responses,sessions}/`
4
+ Council artefacts under `agents/runtime/council/{questions,responses,sessions}/`
5
5
  are gitignored, local-only, and auto-pruned. A link to a specific
6
6
  council file rots three ways: gitignored (not in cloned repo),
7
7
  pruned after the retention window (gone even locally), and the
@@ -19,7 +19,7 @@ are exempt structurally — see STRUCTURAL_CARVEOUTS below — because
19
19
  they encode immutable decision provenance, not transient drafting
20
20
  state. Anything else needs an inline pragma at the end of the line:
21
21
 
22
- `agents/council-sessions/...json` <!-- council-ref-allowed: <reason> -->
22
+ `agents/runtime/council/sessions/...json` <!-- council-ref-allowed: <reason> -->
23
23
 
24
24
  Exit codes:
25
25
  0 — no forbidden references.
@@ -39,26 +39,48 @@ from typing import Iterable
39
39
  QUIET = "--quiet" in sys.argv
40
40
 
41
41
  ROOT = Path(".")
42
+ sys.path.insert(0, str(Path(__file__).resolve().parent))
43
+ from _lib.agent_src import artefact_roots, strip_source_prefix # noqa: E402
42
44
 
43
45
  # A specific file inside a council dir: must end with .md or .json,
44
46
  # must NOT contain `<` or `>` (placeholders), must NOT contain backticks
45
47
  # or quotes (those are line delimiters, not path content).
46
48
  PATTERN = re.compile(
47
- r"agents/council-(?:questions|responses|sessions)/"
49
+ r"agents/runtime/council/(?:questions|responses|sessions)/"
48
50
  r"([^\s\"'<>)\]`]+\.(?:md|json))"
49
51
  )
50
52
 
51
53
  # Only these durable surfaces are scanned. Archive, analysis, and the
52
54
  # council dirs themselves are excluded by design.
53
- SCAN_ROOTS = (
54
- ".agent-src.uncompressed",
55
+ #
56
+ # Source roots (legacy `.agent-src.uncompressed/` and every
57
+ # `packages/*/.agent-src.uncompressed/`) are discovered at runtime via
58
+ # `artefact_roots()` so the linter follows the monorepo physical layout.
59
+ FIXED_SCAN_ROOTS = (
55
60
  "agents/roadmaps",
56
- "agents/contexts",
57
- "agents/docs",
61
+ "agents/settings/contexts",
62
+ "agents/reference/docs",
58
63
  "docs/contracts",
59
64
  "docs/decisions",
60
65
  "docs/guidelines",
61
66
  )
67
+
68
+
69
+ def _scan_roots() -> tuple[str, ...]:
70
+ cwd = Path(".").resolve()
71
+ roots: list[str] = []
72
+ for r in artefact_roots():
73
+ try:
74
+ roots.append(r.relative_to(cwd).as_posix() if r.is_absolute() else r.as_posix())
75
+ except ValueError:
76
+ # Root lives outside the current working directory (e.g. tests
77
+ # chdir into a tmp tree). Skip — the test isolates its own
78
+ # source tree.
79
+ continue
80
+ roots.extend(FIXED_SCAN_ROOTS)
81
+ return tuple(roots)
82
+
83
+
62
84
  SCAN_EXTS = (".md", ".yml", ".yaml", ".json", ".py")
63
85
 
64
86
  # Files (or directory prefixes) that legitimately document the output
@@ -68,7 +90,7 @@ ALLOWLIST_PREFIXES: tuple[str, ...] = (
68
90
  "agents/roadmaps/archive/",
69
91
  # Working comparison docs — forward-refs to planned artefacts (mirrors
70
92
  # the SKIP_DIRS contract in scripts/check_references.py).
71
- "agents/analysis/",
93
+ "agents/evidence/analysis/",
72
94
  # The rule itself documents forbidden vs. allowed forms.
73
95
  ".agent-src.uncompressed/rules/no-roadmap-references.md",
74
96
  # ai-council skill documents the output-path schema.
@@ -87,7 +109,7 @@ INLINE_PRAGMA = re.compile(r"<!--\s*council-ref-allowed:[^>]*-->")
87
109
  # Structural carve-outs — (source_pattern, target_pattern) pairs where
88
110
  # the reference is immutable decision provenance rather than transient
89
111
  # drafting state. Driven by the 2026-05-14 P3.4 council round
90
- # (agents/council-sessions/2026-05-14-p3-4-references/synthesis.md).
112
+ # (agents/runtime/council/sessions/2026-05-14-p3-4-references/synthesis.md).
91
113
  #
92
114
  # Each entry: source file matches `source` regex AND the captured
93
115
  # reference path matches `target` regex → reference is allowed without
@@ -97,23 +119,40 @@ STRUCTURAL_CARVEOUTS: tuple[tuple[re.Pattern[str], re.Pattern[str]], ...] = (
97
119
  # the question file is a frozen function-parameter / spend-gate
98
120
  # input, not a documentation link.
99
121
  (
100
- re.compile(r"^agents/contexts/evaluation-[^/]+\.md$"),
101
- re.compile(r"^agents/council-questions/[^/]+\.md$"),
122
+ re.compile(r"^agents/settings/contexts/evaluation-[^/]+\.md$"),
123
+ re.compile(r"^agents/runtime/council/questions/[^/]+\.md$"),
102
124
  ),
103
125
  # (b) contract → council-session-synthesis:
104
126
  # the synthesis file is the audit-trail receipt the contract cites
105
127
  # as decision provenance; the contract inlines the decision body.
106
128
  (
107
129
  re.compile(r"^docs/contracts/[^/]+\.md$"),
108
- re.compile(r"^agents/council-sessions/[^/]+/synthesis\.md$"),
130
+ re.compile(r"^agents/runtime/council/sessions/[^/]+/synthesis\.md$"),
109
131
  ),
110
132
  )
111
133
 
112
134
 
113
135
  def _is_allowlisted(rel: str) -> bool:
136
+ """Match a repo-relative POSIX path against the allowlist.
137
+
138
+ Allowlist prefixes are written against the legacy
139
+ ``.agent-src.uncompressed/`` layout. A physical hit under
140
+ ``packages/*/.agent-src.uncompressed/`` is normalised to the same
141
+ logical path before matching so entries keep covering relocated files.
142
+ """
114
143
  if rel in ALLOWLIST_FILES:
115
144
  return True
116
- return any(rel.startswith(prefix) for prefix in ALLOWLIST_PREFIXES)
145
+ if any(rel.startswith(prefix) for prefix in ALLOWLIST_PREFIXES):
146
+ return True
147
+ logical = strip_source_prefix(rel)
148
+ if logical is not None:
149
+ canon = f"{_LEGACY_PREFIX_STR}{logical}"
150
+ if any(canon.startswith(prefix) for prefix in ALLOWLIST_PREFIXES):
151
+ return True
152
+ return False
153
+
154
+
155
+ _LEGACY_PREFIX_STR = ".agent-src.uncompressed/"
117
156
 
118
157
 
119
158
  def _is_structurally_allowed(source_rel: str, target_capture: str) -> bool:
@@ -156,7 +195,7 @@ def _iter_files(roots: Iterable[str]) -> Iterable[Path]:
156
195
 
157
196
  def main() -> int:
158
197
  violations: list[tuple[Path, int, str]] = []
159
- for path in _iter_files(SCAN_ROOTS):
198
+ for path in _iter_files(_scan_roots()):
160
199
  rel = path.as_posix()
161
200
  if _is_allowlisted(rel):
162
201
  continue
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env python3
2
+ """Determinism check — runs the discovery scanner twice and diffs the output.
3
+
4
+ The `generated_at` field is normalised because it intentionally captures
5
+ wall-clock time. Everything else (artefact order, unassigned order,
6
+ checksum) MUST be byte-identical between runs.
7
+
8
+ CLI:
9
+ python scripts/check_discovery_determinism.py
10
+
11
+ Exit codes:
12
+ 0 byte-identical (apart from generated_at)
13
+ 1 drift detected
14
+ """
15
+ from __future__ import annotations
16
+
17
+ import json
18
+ import subprocess
19
+ import sys
20
+ from pathlib import Path
21
+
22
+ ROOT = Path(__file__).resolve().parents[1]
23
+ SCANNER = ROOT / "scripts" / "build_discovery_manifest.py"
24
+
25
+
26
+ def _run() -> dict:
27
+ proc = subprocess.run(
28
+ [sys.executable, str(SCANNER)],
29
+ capture_output=True,
30
+ text=True,
31
+ check=False,
32
+ cwd=str(ROOT),
33
+ )
34
+ if proc.returncode != 0:
35
+ print(proc.stderr, file=sys.stderr)
36
+ raise SystemExit(f"scanner failed: exit {proc.returncode}")
37
+ return json.loads(proc.stdout)
38
+
39
+
40
+ def _normalise(manifest: dict) -> dict:
41
+ out = dict(manifest)
42
+ out["generated_at"] = "<normalised>"
43
+ return out
44
+
45
+
46
+ def main() -> int:
47
+ a = _normalise(_run())
48
+ b = _normalise(_run())
49
+ sa = json.dumps(a, indent=2, sort_keys=True, ensure_ascii=False)
50
+ sb = json.dumps(b, indent=2, sort_keys=True, ensure_ascii=False)
51
+ if sa != sb:
52
+ print("DRIFT: scanner produced different output across two runs", file=sys.stderr)
53
+ # show first divergence
54
+ for i, (la, lb) in enumerate(zip(sa.splitlines(), sb.splitlines()), 1):
55
+ if la != lb:
56
+ print(f" line {i}:", file=sys.stderr)
57
+ print(f" run1: {la}", file=sys.stderr)
58
+ print(f" run2: {lb}", file=sys.stderr)
59
+ break
60
+ return 1
61
+ # also assert the checksum survives the round-trip
62
+ if a["checksum"] != b["checksum"]:
63
+ print(f"DRIFT: checksum changed ({a['checksum']} vs {b['checksum']})", file=sys.stderr)
64
+ return 1
65
+ print(f"OK: deterministic across 2 runs, checksum {a['checksum'][:24]}...")
66
+ return 0
67
+
68
+
69
+ if __name__ == "__main__":
70
+ sys.exit(main())
@@ -20,7 +20,7 @@ Inputs:
20
20
  Exit codes: 0 = pass Ā· 1 = fail (> 1 kernel rule, no override) Ā·
21
21
  3 = internal error.
22
22
 
23
- Source: `agents/contexts/adr-always-budget-relief-strategy.md`.
23
+ Source: `agents/settings/contexts/adr-always-budget-relief-strategy.md`.
24
24
  """
25
25
  from __future__ import annotations
26
26
 
@@ -140,7 +140,7 @@ def main(argv: list[str] | None = None) -> int:
140
140
  file=sys.stderr,
141
141
  )
142
142
  print(
143
- " Source: agents/contexts/adr-always-budget-relief-strategy.md "
143
+ " Source: agents/settings/contexts/adr-always-budget-relief-strategy.md "
144
144
  "(Phase 4.2).",
145
145
  file=sys.stderr,
146
146
  )
@@ -34,7 +34,7 @@ STABLE_TREES = (
34
34
  ".agent-src.uncompressed/contexts",
35
35
  ".agent-src.uncompressed/templates",
36
36
  ".agent-src.uncompressed/personas",
37
- "agents/contexts",
37
+ "agents/settings/contexts",
38
38
  "docs/guidelines",
39
39
  "docs/contracts",
40
40
  )
@@ -128,7 +128,7 @@ def format_text(violations: list[Violation]) -> str:
128
128
  for v in violations:
129
129
  lines.append(f" šŸ”“ {v.file}:{v.line} → {v.match}")
130
130
  lines.append(
131
- "\nPromote the durable conclusion to agents/contexts/ and cite that "
131
+ "\nPromote the durable conclusion to agents/settings/contexts/ and cite that "
132
132
  "instead. See .agent-src.uncompressed/rules/no-roadmap-references.md."
133
133
  )
134
134
  return "\n".join(lines)
@@ -7,7 +7,7 @@ guard fails CI if a new probe lands anywhere else in the tree.
7
7
 
8
8
  Rationale: one-off council probes / phase-specific measurements are
9
9
  inherently single-purpose; their durable artefact is the council
10
- session under ``agents/council-sessions/``. Keeping them in the
10
+ session under ``agents/runtime/council/sessions/``. Keeping them in the
11
11
  archive prevents the ``scripts/`` root from accumulating noise and
12
12
  makes their lifecycle visible (folder == month archived).
13
13
 
@@ -30,10 +30,14 @@ from scripts._lib.agents_overlay import ( # noqa: E402
30
30
 
31
31
  DOCS_PATH = REPO_ROOT / "docs" / "customization.md"
32
32
 
33
- # Match `agents/<kind>/` in the first column of the overlay table, plus
34
- # the āœ…/āŒ markers in columns 2 and 3.
33
+ # Match `agents/<...>/<kind>/` in the first column of the overlay
34
+ # table, plus the āœ…/āŒ markers in columns 2 and 3. Captures only the
35
+ # **final** path segment as the kind, so both flat (`agents/overrides/`)
36
+ # and nested (`agents/settings/contexts/`) rows resolve to the bare
37
+ # kind name that ``CASCADE_ELIGIBLE_KINDS`` carries.
35
38
  ROW_RE = re.compile(
36
- r"^\|\s*`agents/([a-z][a-z0-9_-]*)/`\s*\|\s*(āœ…|āŒ)[^|]*\|\s*(āœ…|āŒ)[^|]*\|",
39
+ r"^\|\s*`agents/(?:[a-z][a-z0-9_-]*/)*([a-z][a-z0-9_-]*)/`\s*\|"
40
+ r"\s*(āœ…|āŒ)[^|]*\|\s*(āœ…|āŒ)[^|]*\|",
37
41
  )
38
42
 
39
43
 
@@ -14,7 +14,7 @@ Rules:
14
14
  - target stability=experimental → ERROR. Public surface MUST NOT link
15
15
  to experimental contracts.
16
16
  - target outside docs/contracts/ but referenced for contract-shaped
17
- intent (links into agents/contexts/*.md from public files) → ERROR.
17
+ intent (links into agents/settings/contexts/*.md from public files) → ERROR.
18
18
  - target file missing → ERROR.
19
19
  - target file under docs/contracts/ without `stability:` frontmatter
20
20
  (except STABILITY.md itself) → ERROR.
@@ -100,7 +100,7 @@ def scan_file(public_file: Path, contracts: dict[Path, str | None]) -> list[Viol
100
100
  continue
101
101
  if target.parts[:2] == ("agents", "contexts") and target.suffix == ".md":
102
102
  violations.append(Violation(str(public_file), lineno, href,
103
- "public surface MUST NOT link into agents/contexts/ — move target to docs/contracts/",
103
+ "public surface MUST NOT link into agents/settings/contexts/ — move target to docs/contracts/",
104
104
  "error"))
105
105
  continue
106
106
  if target.parts[:2] != ("docs", "contracts") or target.suffix != ".md":
@@ -34,10 +34,11 @@ class BrokenRef:
34
34
  SCAN_DIRS = [".agent-src", "agents"]
35
35
  SKIP_DIRS = [
36
36
  "agents/roadmaps/archive", # archived roadmaps have historical refs
37
- "agents/council-sessions", # per-user audit trail (gitignored), captured provider output
38
- "agents/council-responses", # paired council output (gitignored), captured provider output
39
- "agents/council-questions", # design Q&A trail — forward-refs to planned artifacts
40
- "agents/analysis", # plate-comparison working docs — forward-refs to planned artifacts
37
+ "agents/runtime/council/sessions", # per-user audit trail (gitignored), captured provider output
38
+ "agents/runtime/council/responses", # paired council output (gitignored), captured provider output
39
+ "agents/runtime/council/questions", # design Q&A trail — forward-refs to planned artifacts
40
+ "agents/evidence/analysis", # plate-comparison working docs — forward-refs to planned artifacts
41
+ "agents/runtime", # volatile / machine-generated artefacts (gitignored)
41
42
  ]
42
43
 
43
44
  # Per-file opt-out marker. When present in the first 10 lines of a .md
@@ -80,8 +81,10 @@ SKILL_REF_PATTERN = re.compile(r'`([\w-]+)`\s+skill')
80
81
  RULE_REF_PATTERN = re.compile(r'`([\w-]+)`\s+rule')
81
82
 
82
83
  # Unchecked TODO items (roadmap checkboxes) legitimately reference files
83
- # and artifacts that do not exist yet. Skip these lines.
84
- UNCHECKED_TODO_PATTERN = re.compile(r'^\s*[-*+]\s+\[ \]\s')
84
+ # and artifacts that do not exist yet. Skip these lines. `[~]` marks
85
+ # deferred work — same semantics as `[ ]` for reference resolution
86
+ # (forward-looking path, will materialize when the step ships).
87
+ UNCHECKED_TODO_PATTERN = re.compile(r'^\s*[-*+]\s+\[[ ~]\]\s')
85
88
  _SKIP_NAMES = {"the", "a", "an", "this", "that", "your", "my", "no", "any", "each", "one",
86
89
  "always", "auto", "fail", "vue", "guidelines", "naming",
87
90
  "orderBy", "no-commit", "skill-linter", "skill-validator",
@@ -90,14 +93,14 @@ _SKIP_NAMES = {"the", "a", "an", "this", "that", "your", "my", "no", "any", "eac
90
93
 
91
94
  # Paths that are clearly example/template placeholders (not real references)
92
95
  EXAMPLE_PATH_PATTERNS = [
93
- re.compile(r"agents/analysis/"), # project-analyze output template
96
+ re.compile(r"agents/evidence/analysis/"), # project-analyze output template
94
97
  re.compile(r"agents/roadmaps/template"), # template reference
95
98
  re.compile(r"agents/overrides/"), # override examples
96
99
  re.compile(r"commands/old-cmd"), # example placeholder
97
100
  re.compile(r"agents/README"), # README reference (may not exist in package)
98
101
  re.compile(r"agents/index[\w.-]*\.md"), # planned auto-generated artefact index (F5)
99
- re.compile(r"agents/docs/"), # project-specific docs (not in package)
100
- re.compile(r"agents/contexts/"), # project-specific contexts (not in package)
102
+ re.compile(r"agents/reference/docs/"), # project-specific docs (not in package)
103
+ re.compile(r"agents/settings/contexts/"), # project-specific contexts (not in package)
101
104
  re.compile(r"agents/gates"), # project-specific policy docs
102
105
  re.compile(r"agents/features/"), # project-specific feature docs
103
106
  re.compile(r"agents/authentication"), # project-specific auth docs
@@ -109,6 +112,7 @@ EXAMPLE_PATH_PATTERNS = [
109
112
  re.compile(r"agents/learnings/"), # consumer-project learning notes
110
113
  re.compile(r"agents/proposals/"), # consumer-project self-improvement proposals
111
114
  re.compile(r"agents/drafts/"), # consumer-project artefact drafts
115
+ re.compile(r"agents/\.event4u-bridge\.yml"), # consumer-project bridge marker (ADR-020)
112
116
  re.compile(r"guidelines/php-"), # flattened override naming convention
113
117
  re.compile(r"rules/no-commit"), # example rule in commands
114
118
  re.compile(r"skills/[\w-]+\.md"), # short skill refs in examples (not SKILL.md path)
@@ -324,20 +328,12 @@ def check_file(filepath: Path, artifacts: dict[str, set[str]], root: Path) -> Li
324
328
  if (prefix / rel).exists():
325
329
  resolved = True
326
330
  break
327
- # `agents/state/*.json` are runtime hook state files —
328
- # gitignored, written by hooks at session/turn time, never
329
- # committed. Prose references to them are descriptive, not
330
- # checkable file paths.
331
- if not resolved and raw_ref.startswith("agents/state/"):
332
- resolved = True
333
- # `agents/.agent-prices.md` is a runtime-bootstrapped pricing
334
- # cache — gitignored (.gitignore:/agents/.agent-prices.md),
335
- # auto-generated by scripts/ai_council/pricing.py from
336
- # _default_prices.py if missing. Same class as agents/state/*
337
- # but a single named file, not a directory pattern, so the
338
- # carve-out stays narrow.
339
- if not resolved and raw_ref == "agents/.agent-prices.md":
340
- resolved = True
331
+ # `agents/runtime/state/*.json` are runtime hook state files
332
+ # under the gitignored runtime tree. `agents/runtime/.agent-prices.md`
333
+ # is the runtime-bootstrapped pricing cache, auto-generated by
334
+ # scripts/ai_council/pricing.py from _default_prices.py if
335
+ # missing. The SKIP_DIRS check above already swallows refs
336
+ # into `agents/runtime/`, so no extra carve-out is needed.
341
337
  if not resolved:
342
338
  broken.append(BrokenRef(
343
339
  file=str(filepath), line=i, ref=m.group(1),
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env python3
2
+ """Assert dist/discovery/discovery-manifest.json ships with the package.
3
+
4
+ Phase 5.3 of R3 — wired as a `prepublishOnly` hook in package.json and
5
+ re-used by the publish workflow. Fails loudly when:
6
+ - dist/discovery/discovery-manifest.json is missing
7
+ - the file is empty or not valid JSON
8
+ - the artefacts array is empty
9
+ - the summary sibling is missing (release tarball ships both)
10
+
11
+ The intent is that `npm publish` (and `npm pack`) refuse to produce a
12
+ silently-broken artifact where the discovery contract surface
13
+ (ADR-013) is absent from the consumer install path.
14
+ """
15
+ from __future__ import annotations
16
+
17
+ import json
18
+ import sys
19
+ from pathlib import Path
20
+
21
+ ROOT = Path(__file__).resolve().parents[1]
22
+ MANIFEST = ROOT / "dist" / "discovery" / "discovery-manifest.json"
23
+ SUMMARY = ROOT / "dist" / "discovery" / "discovery-manifest.summary.md"
24
+
25
+
26
+ def _die(msg: str) -> int:
27
+ sys.stderr.write(f"check-release-discovery: {msg}\n")
28
+ sys.stderr.write(
29
+ " hint: run `python3 scripts/build_discovery_manifest.py --write --strict`"
30
+ " before `npm pack` / `npm publish`.\n"
31
+ )
32
+ return 1
33
+
34
+
35
+ def main() -> int:
36
+ if not MANIFEST.is_file():
37
+ return _die(f"{MANIFEST.relative_to(ROOT)} is missing.")
38
+ raw = MANIFEST.read_text(encoding="utf-8").strip()
39
+ if not raw:
40
+ return _die(f"{MANIFEST.relative_to(ROOT)} is empty.")
41
+ try:
42
+ data = json.loads(raw)
43
+ except json.JSONDecodeError as exc:
44
+ return _die(f"{MANIFEST.relative_to(ROOT)} is not valid JSON: {exc}.")
45
+ artefacts = data.get("artefacts")
46
+ if not isinstance(artefacts, list) or not artefacts:
47
+ return _die(
48
+ f"{MANIFEST.relative_to(ROOT)} carries no artefacts — discovery"
49
+ " scanner produced an empty manifest."
50
+ )
51
+ if not SUMMARY.is_file():
52
+ return _die(f"{SUMMARY.relative_to(ROOT)} is missing.")
53
+ sys.stdout.write(
54
+ f"check-release-discovery: OK ({len(artefacts)} artefacts in"
55
+ f" {MANIFEST.relative_to(ROOT)})\n"
56
+ )
57
+ return 0
58
+
59
+
60
+ if __name__ == "__main__":
61
+ raise SystemExit(main())
@@ -21,6 +21,10 @@ import re
21
21
  import sys
22
22
  from pathlib import Path
23
23
 
24
+ ROOT = Path(__file__).resolve().parent.parent
25
+ sys.path.insert(0, str(ROOT / "scripts"))
26
+ from _lib.agent_src import artefact_roots # noqa: E402
27
+
24
28
  QUIET = "--quiet" in sys.argv
25
29
 
26
30
  OPTION_LINE_RE = re.compile(r"^\s*>?\s*(\d+)\.\s+\S")
@@ -95,23 +99,42 @@ def validate(text: str, strict: bool = False) -> tuple[int, str]:
95
99
 
96
100
 
97
101
  def cmd_scan_dir(root: Path) -> int:
102
+ # If the requested root is the legacy ".agent-src.uncompressed" and it
103
+ # no longer exists (post-monorepo-move), fall back to artefact_roots()
104
+ # so every packages/*/.agent-src.uncompressed/ is scanned.
98
105
  if not root.is_dir():
99
- print(f"error: not a directory: {root}", file=sys.stderr)
100
- return 9
106
+ legacy = ROOT / ".agent-src.uncompressed"
107
+ if root.resolve() == legacy.resolve():
108
+ roots = artefact_roots()
109
+ if not roots:
110
+ print("error: no artefact roots found (legacy or packages/*)", file=sys.stderr)
111
+ return 9
112
+ else:
113
+ print(f"error: not a directory: {root}", file=sys.stderr)
114
+ return 9
115
+ else:
116
+ roots = [root]
101
117
  violations: list[tuple[Path, int, str]] = []
102
- for md in sorted(root.rglob("*.md")):
103
- text = md.read_text(encoding="utf-8")
104
- for idx, raw in enumerate(text.splitlines(), start=1):
105
- stripped = _strip_codespans(raw)
106
- if OPTION_LINE_RE.match(stripped) and TAG_RE.search(stripped):
107
- violations.append((md, idx, raw.strip()))
118
+ for r in roots:
119
+ for md in sorted(r.rglob("*.md")):
120
+ text = md.read_text(encoding="utf-8")
121
+ for idx, raw in enumerate(text.splitlines(), start=1):
122
+ stripped = _strip_codespans(raw)
123
+ if OPTION_LINE_RE.match(stripped) and TAG_RE.search(stripped):
124
+ violations.append((md, idx, raw.strip()))
108
125
  if violations:
109
126
  for path, line, snippet in violations:
110
127
  print(f" šŸ”“ {path}:{line} — inline-tag — {snippet}", file=sys.stderr)
111
128
  print(f"\nāŒ {len(violations)} legacy-pattern violation(s)", file=sys.stderr)
112
129
  return 6
113
130
  if not QUIET:
114
- print(f"āœ… No legacy (recommended) tags found under {root}")
131
+ def _rel(p: Path) -> str:
132
+ try:
133
+ return p.relative_to(ROOT).as_posix()
134
+ except ValueError:
135
+ return p.as_posix()
136
+ scanned = ", ".join(_rel(r) for r in roots)
137
+ print(f"āœ… No legacy (recommended) tags found under {scanned}")
115
138
  return 0
116
139
 
117
140
 
@@ -24,12 +24,26 @@ import sys
24
24
  from pathlib import Path
25
25
 
26
26
  REPO_ROOT = Path(__file__).resolve().parents[1]
27
+ sys.path.insert(0, str(REPO_ROOT / "scripts"))
28
+ from _lib.agent_src import resolve_logical # noqa: E402
27
29
 
28
30
  PACKAGE_JSON = REPO_ROOT / "package.json"
29
- TEMPLATE_FILES = (
30
- REPO_ROOT / ".agent-src.uncompressed" / "templates" / "agents" / "agent-project-settings.example.yml",
31
- REPO_ROOT / ".agent-src" / "templates" / "agents" / "agent-project-settings.example.yml",
32
- )
31
+
32
+ # Source-of-truth template lives under whichever artefact root owns it
33
+ # (legacy .agent-src.uncompressed/ pre-move, packages/*/.agent-src.uncompressed/
34
+ # post-ADR-017). Compressed twin always lands at the flat .agent-src/ surface.
35
+ _TEMPLATE_LOGICAL = "templates/agents/agent-project-settings.example.yml"
36
+
37
+
38
+ def _template_files() -> tuple[Path, ...]:
39
+ src = resolve_logical(_TEMPLATE_LOGICAL)
40
+ files: list[Path] = []
41
+ if src is not None:
42
+ files.append(src)
43
+ else:
44
+ files.append(REPO_ROOT / ".agent-src.uncompressed" / _TEMPLATE_LOGICAL)
45
+ files.append(REPO_ROOT / ".agent-src" / _TEMPLATE_LOGICAL)
46
+ return tuple(files)
33
47
  PIN_LINE_RE = re.compile(r"^\s*agent_config_version\s*:\s*\"?([^\"\s#]*)\"?")
34
48
 
35
49
 
@@ -70,12 +84,15 @@ def main(argv: list[str] | None = None) -> int:
70
84
  return 1
71
85
 
72
86
  failures: list[str] = []
73
- for template in TEMPLATE_FILES:
87
+ for template in _template_files():
88
+ try:
89
+ rel = template.relative_to(REPO_ROOT)
90
+ except ValueError:
91
+ rel = template
74
92
  if not template.is_file():
75
- failures.append(f"missing template file: {template.relative_to(REPO_ROOT)}")
93
+ failures.append(f"missing template file: {rel}")
76
94
  continue
77
95
  pin = _read_template_pin(template)
78
- rel = template.relative_to(REPO_ROOT)
79
96
  if pin is None:
80
97
  failures.append(f"{rel}: no `agent_config_version:` line found")
81
98
  continue
@@ -21,7 +21,16 @@ import sys
21
21
  from pathlib import Path
22
22
 
23
23
  REPO_ROOT = Path(__file__).resolve().parent.parent
24
- SKILL = REPO_ROOT / ".agent-src.uncompressed" / "skills" / "token-optimizer" / "SKILL.md"
24
+ sys.path.insert(0, str(REPO_ROOT / "scripts"))
25
+ from _lib.agent_src import resolve_logical # noqa: E402
26
+
27
+ # Post-ADR-017 the source-of-truth lives under whichever package owns
28
+ # the skill; resolve_logical() walks every artefact root.
29
+ SKILL = resolve_logical("skills/token-optimizer/SKILL.md") or (
30
+ REPO_ROOT / ".agent-src.uncompressed" / "skills" / "token-optimizer" / "SKILL.md"
31
+ )
32
+
33
+ from _lib.agent_src import strip_source_prefix # noqa: E402
25
34
 
26
35
  # Catalog row pattern: | name | path | keywords | description |
27
36
  ROW_RE = re.compile(
@@ -74,8 +83,14 @@ def resolve(path: str) -> Path | None:
74
83
  return None
75
84
  cleaned = path.strip().lstrip("`").rstrip("`")
76
85
  cleaned = cleaned.split(")")[0].lstrip("[(")
77
- candidate = (REPO_ROOT / cleaned).resolve()
78
- return candidate
86
+ # Catalog rows still cite the legacy .agent-src.uncompressed/ prefix
87
+ # for compactness; resolve those across every packages/* root.
88
+ logical = strip_source_prefix(cleaned)
89
+ if logical is not None:
90
+ hit = resolve_logical(logical)
91
+ if hit is not None:
92
+ return hit
93
+ return (REPO_ROOT / cleaned).resolve()
79
94
 
80
95
 
81
96
  def check_row(row: dict[str, str]) -> list[str]:
@@ -6,7 +6,7 @@ Consumes JSON files produced by `scripts/runtime_dispatcher.py run
6
6
  --output FILE`. Each file is an ExecutionResult dump (see runtime_handler).
7
7
 
8
8
  Usage:
9
- python3 scripts/ci_summary.py --runs agents/reports/runs [--title TITLE]
9
+ python3 scripts/ci_summary.py --runs agents/runtime/reports/runs [--title TITLE]
10
10
 
11
11
  Writes to $GITHUB_STEP_SUMMARY if the environment variable is set,
12
12
  otherwise prints the markdown to stdout. Missing or empty run
@@ -110,7 +110,7 @@ def write_output(summary: str) -> bool:
110
110
  def main() -> int:
111
111
  parser = argparse.ArgumentParser(description="Render CI summary from dispatcher runs")
112
112
  parser.add_argument(
113
- "--runs", type=Path, default=Path("agents/reports/runs"),
113
+ "--runs", type=Path, default=Path("agents/runtime/reports/runs"),
114
114
  help="Directory containing ExecutionResult JSON files",
115
115
  )
116
116
  parser.add_argument(
@@ -17,7 +17,7 @@ Threshold rule (Round-3 Sonnet protocol):
17
17
  - Median ratio < 3Ɨ across all classes → structural overhead acceptable
18
18
 
19
19
  Output: human-readable table on stdout + JSON to
20
- `agents/reports/ci-time-ratio.json`.
20
+ `agents/runtime/reports/ci-time-ratio.json`.
21
21
 
22
22
  Usage:
23
23
  python3 scripts/ci_time_ratio.py --limit 30
@@ -7,7 +7,7 @@ ranking, suppresses cooled-down suggestions, and renders a numbered
7
7
  options block. It never executes a command — the user pick is what
8
8
  triggers the standard slash flow.
9
9
 
10
- See `agents/contexts/command-suggestion-eligibility.md` for the
10
+ See `agents/settings/contexts/command-suggestion-eligibility.md` for the
11
11
  locked eligibility table and `road-to-context-aware-command-suggestion`
12
12
  for the full design.
13
13
  """