@event4u/agent-config 3.3.0 → 4.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 (585) hide show
  1. package/.agent-src/README.md +2 -2
  2. package/.agent-src/commands/agent-handoff.md +31 -2
  3. package/.agent-src/commands/agent-status.md +5 -5
  4. package/.agent-src/commands/agents/audit.md +8 -8
  5. package/.agent-src/commands/agents/init.md +25 -1
  6. package/.agent-src/commands/agents/optimize.md +3 -3
  7. package/.agent-src/commands/agents/user.md +1 -1
  8. package/.agent-src/commands/agents.md +1 -1
  9. package/.agent-src/commands/analyze-reference-repo.md +1 -1
  10. package/.agent-src/commands/check-current-md.md +8 -8
  11. package/.agent-src/commands/{compress.md → condense.md} +55 -55
  12. package/.agent-src/commands/context/create.md +7 -4
  13. package/.agent-src/commands/context/refactor.md +3 -1
  14. package/.agent-src/commands/feature/dev.md +1 -1
  15. package/.agent-src/commands/feature/explore.md +1 -1
  16. package/.agent-src/commands/feature/plan.md +10 -8
  17. package/.agent-src/commands/feature/refactor.md +3 -1
  18. package/.agent-src/commands/feature/roadmap.md +7 -4
  19. package/.agent-src/commands/fix/portability.md +3 -3
  20. package/.agent-src/commands/fix/refs.md +4 -4
  21. package/.agent-src/commands/ghostwriter.md +2 -2
  22. package/.agent-src/commands/memory/learn-low-impact.md +3 -3
  23. package/.agent-src/commands/module/explore.md +34 -8
  24. package/.agent-src/commands/optimize/agents-dir.md +9 -7
  25. package/.agent-src/commands/optimize/augmentignore.md +2 -2
  26. package/.agent-src/commands/optimize/skills.md +9 -9
  27. package/.agent-src/commands/post-as.md +1 -1
  28. package/.agent-src/commands/project-analyze.md +2 -2
  29. package/.agent-src/commands/project-health.md +3 -2
  30. package/.agent-src/commands/research/deep.md +1 -1
  31. package/.agent-src/commands/research/report.md +1 -1
  32. package/.agent-src/commands/research.md +1 -1
  33. package/.agent-src/commands/roadmap/ai-council.md +1 -1
  34. package/.agent-src/commands/roadmap/create.md +9 -4
  35. package/.agent-src/commands/rule-compliance-audit.md +1 -1
  36. package/.agent-src/commands/upstream-contribute.md +14 -14
  37. package/.agent-src/commands/video/from-script.md +1 -1
  38. package/.agent-src/commands/video/scene.md +1 -1
  39. package/.agent-src/commands/video/stitch.md +1 -1
  40. package/.agent-src/commands/video/storyboard.md +1 -1
  41. package/.agent-src/commands/video.md +1 -1
  42. package/.agent-src/contexts/augment-infrastructure.md +1 -1
  43. package/.agent-src/contexts/authority/commit-mechanics.md +15 -0
  44. package/.agent-src/contexts/authority/kernel-rule-edits.md +3 -3
  45. package/.agent-src/contexts/authority/scope-mechanics.md +1 -1
  46. package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +28 -28
  47. package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +4 -4
  48. package/.agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
  49. package/.agent-src/contexts/contracts/artifact-engagement-flow.md +6 -6
  50. package/.agent-src/contexts/contracts/command-suggestion-flow.md +3 -3
  51. package/.agent-src/contexts/contracts/emergency-triage-block.md +4 -4
  52. package/.agent-src/contexts/contracts/frugality-charter.md +3 -3
  53. package/.agent-src/contexts/documentation-hierarchy.md +14 -7
  54. package/.agent-src/contexts/execution/autonomy-examples.md +1 -1
  55. package/.agent-src/contexts/execution/cheap-question-mechanics.md +39 -2
  56. package/.agent-src/contexts/execution/roadmap-process-loop.md +28 -5
  57. package/.agent-src/contexts/override-system.md +5 -5
  58. package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
  59. package/.agent-src/personas/advisors/first-principles.md +1 -1
  60. package/.agent-src/personas/hollywood-director.md +1 -1
  61. package/.agent-src/rules/architecture.md +5 -1
  62. package/.agent-src/rules/augment-edit-discipline.md +5 -5
  63. package/.agent-src/rules/augment-source-of-truth.md +15 -15
  64. package/.agent-src/rules/commit-conventions.md +1 -1
  65. package/.agent-src/rules/commit-policy.md +10 -0
  66. package/.agent-src/rules/domain-adoption-policy.md +3 -3
  67. package/.agent-src/rules/fast-path-marker-visibility.md +3 -3
  68. package/.agent-src/rules/finance-safety-floor.md +1 -1
  69. package/.agent-src/rules/framework-neutrality-in-generic-skills.md +8 -8
  70. package/.agent-src/rules/git-history-discipline.md +1 -1
  71. package/.agent-src/rules/improve-before-implement.md +2 -2
  72. package/.agent-src/rules/language-and-tone.md +2 -2
  73. package/.agent-src/rules/media-governance-routing.md +5 -5
  74. package/.agent-src/rules/no-attribution-footers.md +1 -0
  75. package/.agent-src/rules/no-cheap-questions.md +3 -0
  76. package/.agent-src/rules/no-decorative-emojis-in-git-surfaces.md +111 -0
  77. package/.agent-src/rules/no-pr-progress-comments.md +118 -0
  78. package/.agent-src/rules/no-roadmap-references.md +3 -3
  79. package/.agent-src/rules/non-destructive-by-default.md +1 -1
  80. package/.agent-src/rules/persona-governance.md +3 -3
  81. package/.agent-src/rules/preservation-guard.md +15 -15
  82. package/.agent-src/rules/roadmap-ci-steps-policy.md +7 -3
  83. package/.agent-src/rules/rule-type-governance.md +1 -1
  84. package/.agent-src/rules/skill-quality.md +1 -1
  85. package/.agent-src/rules/{caveman-speak.md → telegraph-speak.md} +15 -15
  86. package/.agent-src/rules/token-optimizer-maintenance.md +6 -6
  87. package/.agent-src/skills/agent-docs-writing/SKILL.md +17 -11
  88. package/.agent-src/skills/agents-md-thin-root/SKILL.md +9 -9
  89. package/.agent-src/skills/check-refs/SKILL.md +2 -2
  90. package/.agent-src/skills/code-refactoring/SKILL.md +2 -2
  91. package/.agent-src/skills/command-writing/SKILL.md +19 -19
  92. package/.agent-src/skills/comp-banding/SKILL.md +1 -1
  93. package/.agent-src/skills/condense-memory/SKILL.md +131 -0
  94. package/.agent-src/skills/context-authoring/SKILL.md +2 -2
  95. package/.agent-src/skills/context-document/SKILL.md +5 -3
  96. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +3 -3
  97. package/.agent-src/skills/description-assist/SKILL.md +2 -2
  98. package/.agent-src/skills/git-workflow/SKILL.md +1 -1
  99. package/.agent-src/skills/guideline-writing/SKILL.md +5 -5
  100. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
  101. package/.agent-src/skills/lint-skills/SKILL.md +3 -3
  102. package/.agent-src/skills/md-language-check/SKILL.md +2 -2
  103. package/.agent-src/skills/module-detect-on-the-fly/SKILL.md +138 -0
  104. package/.agent-src/skills/module-management/SKILL.md +166 -94
  105. package/.agent-src/skills/override-management/SKILL.md +1 -1
  106. package/.agent-src/skills/persona-writing/SKILL.md +5 -5
  107. package/.agent-src/skills/positioning-strategy/SKILL.md +1 -1
  108. package/.agent-src/skills/project-docs/SKILL.md +6 -4
  109. package/.agent-src/skills/readme-reviewer/SKILL.md +2 -2
  110. package/.agent-src/skills/roadmap-management/SKILL.md +13 -1
  111. package/.agent-src/skills/roadmap-writing/SKILL.md +4 -2
  112. package/.agent-src/skills/rule-refactor/SKILL.md +5 -5
  113. package/.agent-src/skills/rule-writing/SKILL.md +18 -18
  114. package/.agent-src/skills/script-writing/SKILL.md +1 -1
  115. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +6 -6
  116. package/.agent-src/skills/skill-management/SKILL.md +21 -21
  117. package/.agent-src/skills/skill-reviewer/SKILL.md +2 -2
  118. package/.agent-src/skills/skill-writing/SKILL.md +8 -8
  119. package/.agent-src/skills/skill-writing/evals/triggers.json +1 -1
  120. package/.agent-src/skills/token-optimizer/SKILL.md +4 -4
  121. package/.agent-src/skills/unit-economics-modeling/SKILL.md +1 -1
  122. package/.agent-src/skills/upstream-contribute/SKILL.md +17 -17
  123. package/.agent-src/templates/AGENTS.md +1 -0
  124. package/.agent-src/templates/agent-settings.md +24 -13
  125. package/.agent-src/templates/agents/agent-project-settings.example.yml +61 -2
  126. package/.agent-src/templates/command.md +5 -5
  127. package/.agent-src/templates/contexts.md +1 -1
  128. package/.agent-src/templates/copilot-instructions.md +8 -8
  129. package/.agent-src/templates/features.md +1 -1
  130. package/.agent-src/templates/hooks/pre-commit-frontmatter +2 -2
  131. package/.agent-src/templates/hooks/pre-commit-roadmap-progress +3 -3
  132. package/.agent-src/templates/persona.md +2 -2
  133. package/.agent-src/templates/roadmaps.md +1 -1
  134. package/.agent-src/templates/rule.md +13 -13
  135. package/.agent-src/templates/scripts/memory_lookup.py +1 -1
  136. package/.agent-src/templates/scripts/memory_status.py +2 -2
  137. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +195 -1
  138. package/.agent-src/templates/scripts/work_engine/orchestration.py +1 -1
  139. package/.agent-src/templates/skill-archive-note.md +5 -5
  140. package/.agent-src/templates/skill.md +1 -1
  141. package/.claude-plugin/marketplace.json +4 -4
  142. package/AGENTS.md +16 -17
  143. package/CHANGELOG.md +181 -3
  144. package/CONTRIBUTING.md +31 -12
  145. package/README.md +18 -10
  146. package/config/agent-settings.template.yml +22 -2
  147. package/config/discovery/unassigned-artefacts.yml +24 -24
  148. package/config/profiles/full.ini +1 -1
  149. package/dist/cli/agent-config.js +52 -3
  150. package/dist/cli/agent-config.js.map +1 -1
  151. package/dist/cli/commands/uiServe.js +9 -0
  152. package/dist/cli/commands/uiServe.js.map +1 -1
  153. package/dist/cli/registry.js +2 -1
  154. package/dist/cli/registry.js.map +1 -1
  155. package/dist/discovery/deprecation-report.md +1 -1
  156. package/dist/discovery/discovery-manifest.json +649 -606
  157. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  158. package/dist/discovery/discovery-manifest.summary.md +4 -4
  159. package/dist/discovery/orphan-report.md +1 -1
  160. package/dist/discovery/packs.json +439 -437
  161. package/dist/discovery/trust-report.md +5 -5
  162. package/dist/discovery/workspaces.json +450 -448
  163. package/dist/install/apply.js +238 -0
  164. package/dist/install/apply.js.map +1 -0
  165. package/dist/install/atomic.js +92 -0
  166. package/dist/install/atomic.js.map +1 -0
  167. package/dist/install/bridges/augment.js +20 -0
  168. package/dist/install/bridges/augment.js.map +1 -0
  169. package/dist/install/bridges/claude.js +44 -0
  170. package/dist/install/bridges/claude.js.map +1 -0
  171. package/dist/install/bridges/cline.js +69 -0
  172. package/dist/install/bridges/cline.js.map +1 -0
  173. package/dist/install/bridges/copilot.js +28 -0
  174. package/dist/install/bridges/copilot.js.map +1 -0
  175. package/dist/install/bridges/cursor.js +34 -0
  176. package/dist/install/bridges/cursor.js.map +1 -0
  177. package/dist/install/bridges/gemini.js +39 -0
  178. package/dist/install/bridges/gemini.js.map +1 -0
  179. package/dist/install/bridges/index.js +88 -0
  180. package/dist/install/bridges/index.js.map +1 -0
  181. package/dist/install/bridges/marker-content.js +153 -0
  182. package/dist/install/bridges/marker-content.js.map +1 -0
  183. package/dist/install/bridges/markers.js +42 -0
  184. package/dist/install/bridges/markers.js.map +1 -0
  185. package/dist/install/bridges/types.js +31 -0
  186. package/dist/install/bridges/types.js.map +1 -0
  187. package/dist/install/bridges/vscode.js +26 -0
  188. package/dist/install/bridges/vscode.js.map +1 -0
  189. package/dist/install/bridges/windsurf.js +35 -0
  190. package/dist/install/bridges/windsurf.js.map +1 -0
  191. package/dist/install/conflict.js +196 -0
  192. package/dist/install/conflict.js.map +1 -0
  193. package/dist/install/detect.js +218 -0
  194. package/dist/install/detect.js.map +1 -0
  195. package/dist/install/paths.js +82 -0
  196. package/dist/install/paths.js.map +1 -0
  197. package/dist/install/plan.js +157 -0
  198. package/dist/install/plan.js.map +1 -0
  199. package/dist/install/txlog.js +140 -0
  200. package/dist/install/txlog.js.map +1 -0
  201. package/dist/install/types.js +19 -0
  202. package/dist/install/types.js.map +1 -0
  203. package/dist/install/wizard-plan.js +184 -0
  204. package/dist/install/wizard-plan.js.map +1 -0
  205. package/dist/mcp/registry-manifest.json +4 -4
  206. package/dist/router.json +67 -19
  207. package/dist/server/app.js +6 -0
  208. package/dist/server/app.js.map +1 -1
  209. package/dist/server/routes/install.js +547 -0
  210. package/dist/server/routes/install.js.map +1 -0
  211. package/dist/server/routes/wizard.js +301 -6
  212. package/dist/server/routes/wizard.js.map +1 -1
  213. package/dist/server/routes/workspace.js +396 -0
  214. package/dist/server/routes/workspace.js.map +1 -0
  215. package/dist/server/schemas/settings.js +4 -3
  216. package/dist/server/schemas/settings.js.map +1 -1
  217. package/dist/ui/assets/index-BXZILUxe.css +1 -0
  218. package/dist/ui/assets/index-DLEuEW1V.js +35 -0
  219. package/dist/ui/assets/index-DLEuEW1V.js.map +1 -0
  220. package/dist/ui/index.html +2 -2
  221. package/docs/MIGRATION.md +1 -1
  222. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  223. package/docs/adrs/router/0001-three-tier-routing.md +4 -4
  224. package/docs/adrs/schema/0001-json-schema-frontmatter.md +1 -1
  225. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +4 -4
  226. package/docs/adrs/{caveman → telegraph}/0001-default-off-until-bench.md +9 -9
  227. package/docs/adrs/telegraph/README.md +9 -0
  228. package/docs/architecture/augment-projection.md +4 -4
  229. package/docs/architecture/claude-bundle.md +1 -1
  230. package/docs/architecture/current-onboard-baseline.md +3 -3
  231. package/docs/architecture/multi-tool-projection.md +10 -10
  232. package/docs/architecture/source-projection.md +27 -27
  233. package/docs/architecture.md +19 -15
  234. package/docs/archive/CHANGELOG-pre-2.11.0.md +2 -2
  235. package/docs/archive/CHANGELOG-pre-2.15.0.md +3 -3
  236. package/docs/archive/CHANGELOG-pre-2.16.0.md +1 -1
  237. package/docs/archive/CHANGELOG-pre-2.2.0.md +70 -70
  238. package/docs/archive/CHANGELOG-pre-2.20.0.md +2 -2
  239. package/docs/archive/CHANGELOG-pre-2.25.0.md +15 -15
  240. package/docs/archive/CHANGELOG-pre-3.0.0.md +4 -4
  241. package/docs/archive/CHANGELOG-pre-3.1.0.md +2 -2
  242. package/docs/archive/CHANGELOG-pre-3.2.0.md +3 -3
  243. package/docs/benchmark.md +65 -0
  244. package/docs/benchmarks.md +16 -16
  245. package/docs/catalog.md +17 -15
  246. package/docs/contracts/CHANGELOG-conventions.md +1 -1
  247. package/docs/contracts/STABILITY.md +2 -2
  248. package/docs/contracts/adoption-signal-floor.md +110 -0
  249. package/docs/contracts/adr-chat-history-split.md +4 -4
  250. package/docs/contracts/adr-command-suggestion.md +4 -4
  251. package/docs/contracts/adr-gtm-context-spine.md +1 -1
  252. package/docs/contracts/adr-implement-ticket-runtime.md +4 -4
  253. package/docs/contracts/adr-install-user-type-axis.md +1 -1
  254. package/docs/contracts/adr-layout.md +2 -2
  255. package/docs/contracts/adr-product-ui-track.md +10 -10
  256. package/docs/contracts/adr-user-types-axis.md +3 -3
  257. package/docs/contracts/adr-wing4-context-spine.md +1 -1
  258. package/docs/contracts/agent-memory-contract.md +3 -3
  259. package/docs/contracts/agents-md-tech-stack.md +2 -2
  260. package/docs/contracts/ai-council-config.md +2 -2
  261. package/docs/contracts/at-rest-encryption.md +4 -0
  262. package/docs/contracts/audit-log-v1.md +1 -1
  263. package/docs/contracts/benchmark-ab-contract.md +101 -0
  264. package/docs/contracts/benchmark-corpus-spec.md +1 -1
  265. package/docs/contracts/branch-protection-policy.md +98 -0
  266. package/docs/contracts/ci-cost-budget.md +106 -0
  267. package/docs/contracts/ci-green-floor.md +141 -0
  268. package/docs/contracts/command-clusters.md +6 -6
  269. package/docs/contracts/command-surface-tiers.md +2 -2
  270. package/docs/contracts/command-taxonomy.md +2 -2
  271. package/docs/contracts/{compression-default-kill-criterion.md → condensation-default-kill-criterion.md} +29 -29
  272. package/docs/contracts/config-presets.md +1 -1
  273. package/docs/contracts/context-paths.md +3 -3
  274. package/docs/contracts/context-spine.md +1 -1
  275. package/docs/contracts/cost-summary-schema.md +12 -12
  276. package/docs/contracts/cross-wing-handoff.md +4 -4
  277. package/docs/contracts/daily-workspace.md +4 -0
  278. package/docs/contracts/decision-trace-v1.md +2 -2
  279. package/docs/contracts/discovery-manifest.md +4 -4
  280. package/docs/contracts/explain-modes.md +4 -0
  281. package/docs/contracts/file-ownership-matrix.json +3493 -3318
  282. package/docs/contracts/file-ownership-matrix.md +3 -3
  283. package/docs/contracts/frontmatter-contract.md +4 -4
  284. package/docs/contracts/ghostwriter-schema.md +3 -3
  285. package/docs/contracts/gui-wizard.md +1 -1
  286. package/docs/contracts/harness-expectations.md +123 -0
  287. package/docs/contracts/host-agent-protocol.md +4 -0
  288. package/docs/contracts/implement-ticket-flow.md +9 -9
  289. package/docs/contracts/install-scopes.md +77 -0
  290. package/docs/contracts/iron-law-overrides.txt +1 -1
  291. package/docs/contracts/kernel-membership.md +26 -26
  292. package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
  293. package/docs/contracts/linter-structural-model.md +2 -2
  294. package/docs/contracts/load-context-budget-model.md +4 -4
  295. package/docs/contracts/load-context-schema.md +13 -13
  296. package/docs/contracts/local-analytics.md +4 -0
  297. package/docs/contracts/local-knowledge-ingestion.md +1 -1
  298. package/docs/contracts/mcp-cloud-scope.md +2 -2
  299. package/docs/contracts/mcp-phase-1-scope.md +3 -3
  300. package/docs/contracts/measurement-baseline.md +5 -5
  301. package/docs/contracts/mental-models.md +30 -30
  302. package/docs/contracts/multi-tool-projection-fidelity.md +4 -4
  303. package/docs/contracts/namespace.md +4 -4
  304. package/docs/contracts/orchestration-dsl-v1.md +7 -7
  305. package/docs/contracts/package-self-orientation.md +12 -12
  306. package/docs/contracts/persona-schema.md +6 -6
  307. package/docs/contracts/pilot/language-and-tone.md +1 -1
  308. package/docs/contracts/plain-language-surface.md +117 -0
  309. package/docs/contracts/profile-system.md +3 -3
  310. package/docs/contracts/release-pr-gating.md +103 -0
  311. package/docs/contracts/role-experience.md +3 -3
  312. package/docs/contracts/rule-classification.md +13 -13
  313. package/docs/contracts/rule-interactions.md +4 -4
  314. package/docs/contracts/rule-interactions.yml +30 -30
  315. package/docs/contracts/rule-priority-hierarchy.md +13 -13
  316. package/docs/contracts/rule-router.md +2 -2
  317. package/docs/contracts/safety-model.md +1 -1
  318. package/docs/contracts/skill-distribution-channels.md +61 -0
  319. package/docs/contracts/skill-domains.md +2 -2
  320. package/docs/contracts/smoke-contracts.md +5 -5
  321. package/docs/contracts/telegraph-telemetry.md +83 -0
  322. package/docs/contracts/trust-and-safety.md +5 -5
  323. package/docs/contracts/ui-stack-extension.md +7 -7
  324. package/docs/contracts/ui-track-flow.md +9 -9
  325. package/docs/contracts/user-type-schema.md +4 -4
  326. package/docs/contracts/workflow-packs.md +4 -4
  327. package/docs/contracts/workspace-documents.md +4 -0
  328. package/docs/customization.md +28 -8
  329. package/docs/decisions/ADR-001-kernel-swap-deferred.md +6 -6
  330. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +11 -11
  331. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +2 -2
  332. package/docs/decisions/ADR-004-rule-governance-pruning.md +4 -4
  333. package/docs/decisions/ADR-005-subagent-worktrees.md +7 -7
  334. package/docs/decisions/ADR-011-domain-pack-readiness.md +6 -6
  335. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +3 -3
  336. package/docs/decisions/ADR-015-discovery-manifest-contract.md +3 -3
  337. package/docs/decisions/ADR-017-monorepo-physical-layout.md +10 -10
  338. package/docs/decisions/ADR-018-trust-and-safety-layer.md +6 -6
  339. package/docs/decisions/ADR-019-router-json-dist-location.md +2 -2
  340. package/docs/decisions/ADR-020-global-only-consumer-scope.md +2 -2
  341. package/docs/decisions/ADR-021-deployment-shape.md +1 -1
  342. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +1 -1
  343. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +2 -2
  344. package/docs/decisions/ADR-028-root-layout.md +7 -7
  345. package/docs/decisions/ADR-029-multi-workspace-deferred.md +2 -2
  346. package/docs/decisions/ADR-rule-kernel-and-router.md +5 -5
  347. package/docs/deploy/team-deployment-posture.md +20 -0
  348. package/docs/development.md +17 -17
  349. package/docs/distribution/registries.md +32 -0
  350. package/docs/distribution/registry-submissions.md +85 -0
  351. package/docs/distribution/telemetry-schema.md +1 -1
  352. package/docs/getting-started-by-role.md +45 -3
  353. package/docs/getting-started.md +2 -2
  354. package/docs/guidelines/agent-infra/5w2h-analysis.md +3 -3
  355. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  356. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +3 -3
  357. package/docs/guidelines/agent-infra/carve-out-predicates.md +3 -3
  358. package/docs/guidelines/agent-infra/critical-thinking.md +4 -4
  359. package/docs/guidelines/agent-infra/direct-answers-demos.md +1 -1
  360. package/docs/guidelines/agent-infra/first-principles.md +2 -2
  361. package/docs/guidelines/agent-infra/inversion-thinking.md +5 -5
  362. package/docs/guidelines/agent-infra/layered-settings.md +56 -2
  363. package/docs/guidelines/agent-infra/mental-models.md +3 -3
  364. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +2 -2
  365. package/docs/guidelines/agent-infra/rule-type-governance.md +1 -1
  366. package/docs/guidelines/agent-infra/scqa-framework.md +5 -5
  367. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +2 -2
  368. package/docs/guidelines/agent-infra/six-hats.md +3 -3
  369. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  370. package/docs/guidelines/agent-infra/systems-thinking.md +1 -1
  371. package/docs/guidelines/agent-infra/verify-before-complete-demos.md +1 -1
  372. package/docs/guidelines/augment-portability-patterns.md +4 -4
  373. package/docs/guidelines/cross-role-handoff.md +2 -2
  374. package/docs/guidelines/php/php-coding-patterns.md +1 -1
  375. package/docs/guidelines/prompt-templates.md +6 -6
  376. package/docs/maintainers/dev-mode.md +1 -1
  377. package/docs/mcp.md +1 -1
  378. package/docs/parity/bench.json +3 -3
  379. package/docs/parity/ruflo.md +2 -2
  380. package/docs/profiles.md +11 -11
  381. package/docs/quality.md +11 -11
  382. package/docs/safety.md +3 -3
  383. package/docs/setup/mcp-client-config.md +1 -1
  384. package/docs/setup/mcp-r2-bootstrap.md +1 -1
  385. package/docs/setup/mcp-server-docker.md +3 -3
  386. package/docs/setup/per-ide/windsurf.md +1 -1
  387. package/docs/skills-catalog.md +8 -7
  388. package/docs/troubleshooting.md +1 -1
  389. package/docs/walkthroughs/daily-workspace-a11y.md +87 -0
  390. package/llms.txt +7 -6
  391. package/package.json +1 -1
  392. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  393. package/scripts/_archive/README.md +2 -2
  394. package/scripts/_archive/_backfill_skill_domains.py +3 -3
  395. package/scripts/_archive/_bootstrap_tier_frontmatter.py +3 -3
  396. package/scripts/_archive/_p43_bodies.py +10 -10
  397. package/scripts/_archive/{_p43_compress.py → _p43_condense.py} +5 -5
  398. package/scripts/_archive/_p4_migrate.py +7 -7
  399. package/scripts/_archive/_phase2_shim_helper.py +1 -1
  400. package/scripts/_archive/_pilot_council_question.py +5 -5
  401. package/scripts/_cli/explain_last/inputs.py +1 -1
  402. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  403. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  404. package/scripts/_lib/agent_settings.py +195 -1
  405. package/scripts/_lib/agent_src.py +19 -19
  406. package/scripts/_lib/bench_ab_cache.py +162 -0
  407. package/scripts/_lib/bench_ab_scoring.py +209 -0
  408. package/scripts/_lib/{bench_caveman.py → bench_telegraph.py} +21 -21
  409. package/scripts/_lib/{bench_caveman_report.py → bench_telegraph_report.py} +21 -21
  410. package/scripts/_lib/claude_desktop_bundler.py +5 -5
  411. package/scripts/_lib/module_detection.py +223 -0
  412. package/scripts/_lib/scope_guard.sh +162 -0
  413. package/scripts/_phase4_bucket.py +3 -3
  414. package/scripts/_pilot_measure.py +4 -4
  415. package/scripts/_tmp_scan_framework_leakage.py +1 -1
  416. package/scripts/adoption_report.py +195 -0
  417. package/scripts/adoption_snapshot.py +219 -0
  418. package/scripts/adoption_status.py +166 -0
  419. package/scripts/ai-video/lib/parse-blueprint.sh +1 -1
  420. package/scripts/ai_council/advisors.py +5 -5
  421. package/scripts/ai_council/compile_corpus.py +1 -1
  422. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +3 -3
  423. package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_review.py +2 -2
  424. package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +1 -1
  425. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +1 -1
  426. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +1 -1
  427. package/scripts/ai_council/one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py +3 -3
  428. package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +1 -1
  429. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py +1 -1
  430. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py +6 -6
  431. package/scripts/ai_council/one_off_archive/2026-05/_one_off_rebalancing_audit.py +1 -1
  432. package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +6 -6
  433. package/scripts/annotate_discovery.py +13 -13
  434. package/scripts/apply_modules_config.py +290 -0
  435. package/scripts/audit_adr_coverage.py +2 -2
  436. package/scripts/audit_auto_rules.py +2 -2
  437. package/scripts/audit_cloud_compatibility.py +3 -3
  438. package/scripts/audit_command_surface.py +9 -9
  439. package/scripts/audit_likelihood.py +2 -2
  440. package/scripts/audit_user_type_axis.py +2 -2
  441. package/scripts/bench_ab_cache_dispatch.py +68 -0
  442. package/scripts/bench_ab_clone.py +170 -0
  443. package/scripts/bench_ab_diff.py +227 -0
  444. package/scripts/bench_ab_integrity.py +143 -0
  445. package/scripts/bench_ab_run.py +235 -0
  446. package/scripts/bench_ab_task_runner.py +369 -0
  447. package/scripts/bench_ab_tracka_run.py +202 -0
  448. package/scripts/{bench_compress_memory.py → bench_condense_memory.py} +16 -16
  449. package/scripts/bench_run.py +33 -33
  450. package/scripts/bench_runner.py +2 -2
  451. package/scripts/bootstrap.sh +99 -0
  452. package/scripts/build_cloud_bundle.py +6 -6
  453. package/scripts/build_discovery_manifest.py +7 -7
  454. package/scripts/build_linear_digest.py +3 -3
  455. package/scripts/build_rule_trigger_matrix.py +8 -8
  456. package/scripts/chat_history.py +5 -5
  457. package/scripts/check_always_budget.py +11 -5
  458. package/scripts/check_augment_description_cap.py +3 -3
  459. package/scripts/check_cluster_patterns.py +2 -2
  460. package/scripts/check_command_count_messaging.py +3 -3
  461. package/scripts/{check_compression.py → check_condensation.py} +34 -34
  462. package/scripts/{check_compressed_paths.py → check_condensed_paths.py} +8 -8
  463. package/scripts/check_context_paths.py +7 -7
  464. package/scripts/check_council_layout.py +2 -2
  465. package/scripts/check_council_references.py +9 -9
  466. package/scripts/check_iron_law_prominence.py +2 -2
  467. package/scripts/check_kernel_rule_bundle.py +2 -2
  468. package/scripts/check_module_management_neutral.py +149 -0
  469. package/scripts/check_no_roadmap_refs.py +9 -9
  470. package/scripts/check_portability.py +3 -3
  471. package/scripts/check_public_catalog_links.py +4 -4
  472. package/scripts/check_references.py +7 -6
  473. package/scripts/check_release_pr_shape.py +112 -0
  474. package/scripts/check_reply_consistency.py +3 -3
  475. package/scripts/check_safety_floor_untouched.py +1 -1
  476. package/scripts/check_template_pin_drift.py +5 -5
  477. package/scripts/check_token_optimizer_freshness.py +3 -3
  478. package/scripts/ci_status.py +301 -0
  479. package/scripts/ci_time_ratio.py +1 -1
  480. package/scripts/cleanup_other_scope.sh +146 -0
  481. package/scripts/compile_router.py +10 -10
  482. package/scripts/{compress.py → condense.py} +64 -64
  483. package/scripts/condense.sh +18 -0
  484. package/scripts/{compress_memory.py → condense_memory.py} +33 -33
  485. package/scripts/config/presets.py +2 -2
  486. package/scripts/config/profiles.py +1 -1
  487. package/scripts/cost_by_conversation.py +3 -3
  488. package/scripts/cost_summary.py +7 -7
  489. package/scripts/count_token_optimizer_usage.sh +1 -1
  490. package/scripts/gen_discovery_baseline.py +5 -5
  491. package/scripts/generate_index.py +6 -6
  492. package/scripts/generate_ownership_matrix.py +10 -10
  493. package/scripts/generate_pack_manifests.py +1 -1
  494. package/scripts/ghostwriter_fixture_allowlist.txt +1 -1
  495. package/scripts/install +3 -3
  496. package/scripts/install-hooks.sh +6 -6
  497. package/scripts/install.py +76 -11
  498. package/scripts/install.sh +187 -1
  499. package/scripts/inventory_frontmatter.py +2 -2
  500. package/scripts/iron_law_sha.py +3 -3
  501. package/scripts/lint_agents_layout.py +14 -7
  502. package/scripts/lint_agents_md.py +4 -4
  503. package/scripts/lint_archived_skills.py +3 -3
  504. package/scripts/lint_artefact_frontmatter.py +2 -2
  505. package/scripts/lint_bench_ab.py +172 -0
  506. package/scripts/lint_bench_corpus.py +1 -1
  507. package/scripts/lint_command_tiers.py +5 -5
  508. package/scripts/lint_context_spine_usage.py +1 -1
  509. package/scripts/lint_framework_leakage.py +7 -7
  510. package/scripts/lint_framework_leakage_allowlist.json +144 -84
  511. package/scripts/lint_ghostwriter_source.py +3 -3
  512. package/scripts/lint_handoffs.py +1 -1
  513. package/scripts/lint_load_context.py +11 -11
  514. package/scripts/lint_media_policy_linkage.py +5 -5
  515. package/scripts/lint_namespace.py +1 -1
  516. package/scripts/lint_no_new_atomic_commands.py +2 -2
  517. package/scripts/lint_orchestration_dsl.py +1 -1
  518. package/scripts/lint_pack_boundaries.py +2 -2
  519. package/scripts/lint_persona_governance.py +4 -4
  520. package/scripts/lint_role_experiences.py +237 -0
  521. package/scripts/lint_rule_interactions.py +2 -2
  522. package/scripts/lint_rule_tiers.py +1 -1
  523. package/scripts/lint_trust_coherence.py +2 -2
  524. package/scripts/mcp_registry_submit.sh +187 -0
  525. package/scripts/mcp_server/tools.py +1 -1
  526. package/scripts/measure_frugality_savings.py +10 -10
  527. package/scripts/measure_patterns.py +1 -1
  528. package/scripts/measure_projection_bytes.py +5 -5
  529. package/scripts/measure_rule_budget.py +3 -3
  530. package/scripts/measure_skill_reduction.py +1 -1
  531. package/scripts/memory_lookup.py +1 -1
  532. package/scripts/memory_status.py +2 -2
  533. package/scripts/migrate_command_suggestions.py +3 -3
  534. package/scripts/mine_session.py +1 -1
  535. package/scripts/move_artefact.py +3 -3
  536. package/scripts/new_skill.py +2 -2
  537. package/scripts/pack_mcp_content.py +9 -9
  538. package/scripts/plan_physical_move.py +6 -6
  539. package/scripts/print_required_checks.py +196 -0
  540. package/scripts/probe_skill_registration.py +413 -0
  541. package/scripts/propose_modules_config.py +145 -0
  542. package/scripts/prototype_lint_contradictions.py +1 -1
  543. package/scripts/recruit_preflight.sh +152 -0
  544. package/scripts/refine_ticket_detect.py +3 -3
  545. package/scripts/release.py +20 -0
  546. package/scripts/render_benchmark_md.py +308 -0
  547. package/scripts/roadmap_progress_hook.py +1 -1
  548. package/scripts/run_skill_evals.py +2 -2
  549. package/scripts/runtime_registry.py +4 -4
  550. package/scripts/schemas/command.schema.json +4 -4
  551. package/scripts/schemas/rule.schema.json +5 -5
  552. package/scripts/schemas/skill.schema.json +3 -3
  553. package/scripts/schemas/user-type.schema.json +1 -1
  554. package/scripts/score_skill_selection.py +1 -1
  555. package/scripts/skill_collision_clusters.py +2 -2
  556. package/scripts/skill_linter.py +81 -81
  557. package/scripts/skill_overlap.py +5 -5
  558. package/scripts/skill_tools/audit_persona_coverage.py +2 -2
  559. package/scripts/skill_tools/audit_user_type_coverage.py +2 -2
  560. package/scripts/skill_tools/run_block_d_eval.py +1 -1
  561. package/scripts/skill_tools/score_skill_relevance.py +1 -1
  562. package/scripts/skill_tools/suggest_skill_for_task.py +1 -1
  563. package/scripts/skill_trigger_eval.py +3 -3
  564. package/scripts/smoke/kernel.sh +7 -1
  565. package/scripts/smoke/router.sh +5 -5
  566. package/scripts/smoke/skills.sh +1 -1
  567. package/scripts/smoke_quickstart.py +1 -1
  568. package/scripts/snapshot_agent_outputs.py +3 -3
  569. package/scripts/spotcheck_thin_root.py +1 -1
  570. package/scripts/{caveman_stats.py → telegraph_stats.py} +18 -18
  571. package/scripts/update_counts.py +1 -1
  572. package/scripts/validate_decision_engine.py +1 -1
  573. package/scripts/validate_frontmatter.py +1 -1
  574. package/scripts/validate_safe_paths.py +3 -3
  575. package/scripts/{validate_caveman_carveouts.py → validate_telegraph_carveouts.py} +7 -7
  576. package/scripts/verify_roadmap_closure.py +6 -6
  577. package/templates/consumer-settings/ONBOARDING.md +41 -0
  578. package/.agent-src/commands/install-via-agent.md +0 -129
  579. package/.agent-src/skills/compress-memory/SKILL.md +0 -131
  580. package/dist/ui/assets/index-D-DY1ywI.js +0 -35
  581. package/dist/ui/assets/index-D-DY1ywI.js.map +0 -1
  582. package/dist/ui/assets/index-Dqfhmg-d.css +0 -1
  583. package/docs/adrs/caveman/README.md +0 -9
  584. package/docs/contracts/caveman-telemetry.md +0 -83
  585. package/scripts/compress.sh +0 -18
@@ -2,7 +2,7 @@
2
2
  # Pre-commit hook: artefact frontmatter lint (event4u/agent-config, ADR-013)
3
3
  #
4
4
  # Aborts the commit when any staged .md file under
5
- # `.agent-src.uncompressed/` violates the per-artefact frontmatter
5
+ # `.agent-src.uncondensed/` violates the per-artefact frontmatter
6
6
  # contract (workspaces / packs / lifecycle / trust / install). Exits
7
7
  # silently when no such files are staged — zero overhead on unrelated
8
8
  # commits.
@@ -19,7 +19,7 @@ set -e
19
19
  # (or the linter / vocabulary that govern it).
20
20
  staged="$(git diff --cached --name-only --diff-filter=ACMR 2>/dev/null || true)"
21
21
  case "$staged" in
22
- *.agent-src.uncompressed/*.md*|*config/discovery/*.yml*|*scripts/lint_artefact_frontmatter.py*)
22
+ *.agent-src.uncondensed/*.md*|*config/discovery/*.yml*|*scripts/lint_artefact_frontmatter.py*)
23
23
  : ;;
24
24
  *)
25
25
  exit 0 ;;
@@ -5,7 +5,7 @@
5
5
  # Two opt-in checks run on relevant staged paths and short-circuit
6
6
  # otherwise:
7
7
  # 1. agents/roadmaps-progress.md sync (against agents/roadmaps/*.md)
8
- # 2. ADR-013 per-artefact frontmatter contract (.agent-src.uncompressed/*.md)
8
+ # 2. ADR-013 per-artefact frontmatter contract (.agent-src.uncondensed/*.md)
9
9
  #
10
10
  # To run manually:
11
11
  # ./agent-config roadmap:progress-check
@@ -24,7 +24,7 @@ case "$staged" in
24
24
  roadmap_relevant=true ;;
25
25
  esac
26
26
  case "$staged" in
27
- *.agent-src.uncompressed/*.md*|*config/discovery/*.yml*|*scripts/lint_artefact_frontmatter.py*)
27
+ *.agent-src.uncondensed/*.md*|*config/discovery/*.yml*|*scripts/lint_artefact_frontmatter.py*)
28
28
  frontmatter_relevant=true ;;
29
29
  esac
30
30
 
@@ -48,7 +48,7 @@ if $roadmap_relevant; then
48
48
  rp_script="$(resolve \
49
49
  ".augment/scripts/update_roadmap_progress.py" \
50
50
  ".agent-src/scripts/update_roadmap_progress.py" \
51
- ".agent-src.uncompressed/scripts/update_roadmap_progress.py" || true)"
51
+ ".agent-src.uncondensed/scripts/update_roadmap_progress.py" || true)"
52
52
 
53
53
  if [ -z "$rp_script" ]; then
54
54
  echo "⚠️ pre-commit: update_roadmap_progress.py not found — skipping roadmap check." >&2
@@ -1,14 +1,14 @@
1
1
  # Persona Template
2
2
 
3
3
  > Template for creating a new persona in
4
- > `.agent-src.uncompressed/personas/{persona-id}.md`. Personas declare
4
+ > `.agent-src.uncondensed/personas/{persona-id}.md`. Personas declare
5
5
  > a *voice* — focus, mindset, unique questions, output expectations.
6
6
  > Skills cite personas in a `personas:` frontmatter key. Users invoke
7
7
  > them via `--personas=<id>`.
8
8
 
9
9
  ## Instructions
10
10
 
11
- 1. Create the file: `.agent-src.uncompressed/personas/{persona-id}.md`.
11
+ 1. Create the file: `.agent-src.uncondensed/personas/{persona-id}.md`.
12
12
  2. Copy the template below.
13
13
  3. Replace all `{placeholders}` with real content.
14
14
  4. Pass the Unique-Questions heuristic — ≥ 3 questions that no other
@@ -1,6 +1,6 @@
1
1
  # Roadmap Template
2
2
 
3
- Templates for roadmap files stored in `agents/roadmaps/` or `app/Modules/{Module}/agents/roadmaps/`.
3
+ Templates for roadmap files stored in `agents/roadmaps/` or `{module_root}/{Module}/{agent_folder}/roadmaps/` (resolved via `modules.root_paths` + `modules.agent_folder` in `.agent-project-settings.yml`; Laravel example: `app/Modules/{Module}/agents/roadmaps/`).
4
4
 
5
5
  ---
6
6
 
@@ -1,16 +1,16 @@
1
1
  # Rule Template
2
2
 
3
- > Template for creating new rules in `.agent-src.uncompressed/rules/{rule-name}.md`.
4
- > Rules ship to `.agent-src/rules/` (compressed) and `.augment/rules/` (projected).
3
+ > Template for creating new rules in `.agent-src.uncondensed/rules/{rule-name}.md`.
4
+ > Rules ship to `.agent-src/rules/` (condensed) and `.augment/rules/` (projected).
5
5
  > Schema: `scripts/schemas/rule.schema.json`.
6
6
 
7
7
  ## Instructions
8
8
 
9
9
  1. Pick a kebab-case `{rule-name}` matching the file stem.
10
- 2. Copy the template below into `.agent-src.uncompressed/rules/{rule-name}.md`.
10
+ 2. Copy the template below into `.agent-src.uncondensed/rules/{rule-name}.md`.
11
11
  3. Replace placeholders, drop sections that don't apply.
12
12
  4. Run `task lint-skills` and `python3 scripts/lint_load_context.py`.
13
- 5. Compress: `bash scripts/compress.sh --changed` then follow the agent flow.
13
+ 5. Condense: `bash scripts/condense.sh --changed` then follow the agent flow.
14
14
 
15
15
  ## Path conventions — load-bearing
16
16
 
@@ -21,31 +21,31 @@ consumer's `.augment/`.
21
21
  ### `load_context:` / `load_context_eager:` — logical names
22
22
 
23
23
  Use **logical names** rooted at the source — never the
24
- `.agent-src.uncompressed/` prefix. The compress-time rewriter
25
- (`scripts/compress.py::_rewrite_paths`) resolves logical names to
24
+ `.agent-src.uncondensed/` prefix. The condense-time rewriter
25
+ (`scripts/condense.py::_rewrite_paths`) resolves logical names to
26
26
  deployment-correct relative paths; the schema regex
27
27
  (`scripts/schemas/rule.schema.json`) and `scripts/lint_load_context.py`
28
28
  both reject the legacy prefix.
29
29
 
30
30
  | Write this (logical) | Forbidden (legacy) |
31
31
  |---|---|
32
- | `contexts/execution/verification-mechanics.md` | `.agent-src.uncompressed/contexts/execution/verification-mechanics.md` |
33
- | `contexts/authority/commit-mechanics.md` | `.agent-src.uncompressed/contexts/authority/commit-mechanics.md` |
34
- | `agents/settings/contexts/local.md` (project-local) | `.agent-src.uncompressed/contexts/...` for project-only material |
32
+ | `contexts/execution/verification-mechanics.md` | `.agent-src.uncondensed/contexts/execution/verification-mechanics.md` |
33
+ | `contexts/authority/commit-mechanics.md` | `.agent-src.uncondensed/contexts/authority/commit-mechanics.md` |
34
+ | `agents/settings/contexts/local.md` (project-local) | `.agent-src.uncondensed/contexts/...` for project-only material |
35
35
 
36
36
  ### `triggers[].path_prefix:` — literal match pattern, not a file path
37
37
 
38
38
  `path_prefix:` is a **literal match pattern** the host evaluates against
39
39
  the file the agent is editing — it is **not** a file reference and is
40
40
  **not rewritten**. Rules that fire when the agent edits source-of-truth
41
- files legitimately keep the `.agent-src.uncompressed/` prefix (see
41
+ files legitimately keep the `.agent-src.uncondensed/` prefix (see
42
42
  `skill-quality`, `rule-type-governance`,
43
43
  `augment-edit-discipline`). Rules that fire on consumer-project paths use
44
44
  `agents/`, `lang/`, `.augment/`, etc.
45
45
 
46
46
  | Use case | Example `path_prefix:` |
47
47
  |---|---|
48
- | Fires when editing source-of-truth artifacts | `.agent-src.uncompressed/skills/` |
48
+ | Fires when editing source-of-truth artifacts | `.agent-src.uncondensed/skills/` |
49
49
  | Fires when editing consumer project files | `agents/`, `lang/`, `app/`, `src/` |
50
50
  | Fires when editing the projected layer | `.augment/` |
51
51
 
@@ -53,13 +53,13 @@ files legitimately keep the `.agent-src.uncompressed/` prefix (see
53
53
 
54
54
  Source files keep verbatim `../../docs/guidelines/...` and
55
55
  `../../docs/contracts/...` links so they work in any markdown viewer.
56
- The rewriter rewrites them to depth-aware single-up form at compress
56
+ The rewriter rewrites them to depth-aware single-up form at condense
57
57
  time and is idempotent. Do not pre-rewrite in source.
58
58
 
59
59
  ### Why "logical, depth-aware, idempotent"
60
60
 
61
61
  A rule at `rules/{name}.md` resolves `contexts/{area}/{file}.md` to
62
- `../contexts/{area}/{file}.md` in the compressed output; a nested
62
+ `../contexts/{area}/{file}.md` in the condensed output; a nested
63
63
  file at `commands/{cluster}/{sub}.md` resolves to
64
64
  `../../contexts/{area}/{file}.md`. Re-running the rewriter does not
65
65
  double-prefix. The full decision history lives in the archived
@@ -439,7 +439,7 @@ def retrieve_v1(
439
439
 
440
440
  Wraps :func:`retrieve` and projects the internal ``Hit`` shape into
441
441
  the shape defined by
442
- ``schemas/retrieval-v1.schema.json``. Unknown types are reported as
442
+ ``internal/schemas/retrieval-v1.schema.json``. Unknown types are reported as
443
443
  ``status: unknown_type`` for that slice only, rather than failing
444
444
  the whole call.
445
445
  """
@@ -41,7 +41,7 @@ _CACHE_ENV = "AGENT_MEMORY_STATUS"
41
41
  _CACHE_FILE = Path(".agent-memory") / "status.cache"
42
42
 
43
43
  # Retrieval contract version served by the file-backed fallback.
44
- # Source of truth: schemas/retrieval-v1.schema.json.
44
+ # Source of truth: internal/schemas/retrieval-v1.schema.json.
45
45
  CONTRACT_VERSION = 1
46
46
  _FILE_BACKEND_VERSION = "0.0.0-file"
47
47
  _FILE_BACKEND_FEATURES = ("file-fallback",)
@@ -200,7 +200,7 @@ def status(refresh: bool = False) -> Result:
200
200
  def health(refresh: bool = False) -> dict:
201
201
  """Return a v1 retrieval-contract health envelope.
202
202
 
203
- Schema: ``schemas/retrieval-v1.schema.json`` (HealthResponse).
203
+ Schema: ``internal/schemas/retrieval-v1.schema.json`` (HealthResponse).
204
204
  Maps the three-state :func:`status` result onto the contract's
205
205
  ``ok | degraded | error`` so consumers can read
206
206
  ``contract_version`` without caring about the file-vs-package split.
@@ -50,6 +50,7 @@ Contract — pure, read-only, tolerant:
50
50
  """
51
51
  from __future__ import annotations
52
52
 
53
+ import copy
53
54
  import logging
54
55
  import os
55
56
  from pathlib import Path
@@ -60,6 +61,7 @@ from . import user_global_paths
60
61
  logger = logging.getLogger(__name__)
61
62
 
62
63
  DEFAULT_PROJECT_FILE = ".agent-settings.yml"
64
+ DEFAULT_TEAM_FILE = ".agent-project-settings.yml"
63
65
  USER_GLOBAL_FILENAME = "agent-settings.yml"
64
66
 
65
67
  #: Canonical write target under the new ``~/.event4u/agent-config/``
@@ -86,11 +88,25 @@ MERGEABLE_KEYS: tuple[str, ...] = (
86
88
  "cost_profile",
87
89
  "personal.bot_icon",
88
90
  "personal.autonomy",
89
- "caveman.speak_scope",
91
+ "telegraph.speak_scope",
90
92
  )
91
93
 
92
94
  _DEFAULTS: dict[str, Any] = {}
93
95
 
96
+ #: Defaults applied by :func:`get_modules_config` when a key is absent
97
+ #: from both the team file and the developer cascade. The values mirror
98
+ #: the ``modules:`` block shipped in
99
+ #: ``templates/agents/agent-project-settings.example.yml``. Lists are
100
+ #: returned as fresh copies — callers may mutate the result safely.
101
+ MODULES_DEFAULTS: dict[str, Any] = {
102
+ "enabled": False,
103
+ "root_paths": [],
104
+ "namespace_template": "",
105
+ "agent_folder": "agents",
106
+ "skip_dirs": [".module-template", ".example"],
107
+ "detection_acknowledged": False,
108
+ }
109
+
94
110
 
95
111
  #: Anchor identifier returned by :func:`find_project_root_with_anchor`.
96
112
  ANCHOR_AGENT_SETTINGS = "agent-settings"
@@ -470,6 +486,184 @@ def load_agent_settings(
470
486
  return merged
471
487
 
472
488
 
489
+ def get_modules_config(
490
+ project_root: Path | str | None = None,
491
+ team_path: Path | str | None = None,
492
+ project_path: Path | str | None = None,
493
+ cwd: Path | None = None,
494
+ ) -> dict[str, Any]:
495
+ """Return the merged ``modules:`` configuration with defaults applied.
496
+
497
+ Three-tier precedence (deepest wins) per the layered-settings model
498
+ documented in ``docs/guidelines/agent-infra/layered-settings.md``:
499
+
500
+ 1. :data:`MODULES_DEFAULTS` — package-shipped defaults.
501
+ 2. Team file — ``<project_root>/.agent-project-settings.yml``
502
+ (committed, all developers see the same values).
503
+ 3. Developer cascade — every ``.agent-settings.yml`` walked by
504
+ :func:`_resolve_cascade_paths` (git-ignored local overrides).
505
+
506
+ The team layer may pin keys via a top-level ``locked_keys`` list of
507
+ dotted paths (e.g. ``[modules.root_paths]``). Locked keys discard any
508
+ matching override from the developer cascade and emit a ``logging``
509
+ INFO record. Locks are advisory — the team file always wins anyway —
510
+ but the explicit list makes the intent reviewable and gives the loader
511
+ a hook for the warning.
512
+
513
+ ``project_root`` defaults to ``find_project_root(cwd or Path.cwd())``.
514
+ ``team_path`` overrides the resolved team-file location for tests.
515
+ ``project_path`` + ``cwd`` flow through to :func:`load_agent_settings`
516
+ unchanged.
517
+
518
+ Pure, read-only — no file is ever written. Missing files / malformed
519
+ YAML / absent ``modules:`` block all return the defaults.
520
+ """
521
+ cwd_resolved = cwd if cwd is not None else Path.cwd()
522
+
523
+ if team_path is not None:
524
+ team_file = Path(team_path)
525
+ else:
526
+ if project_root is not None:
527
+ root = Path(project_root)
528
+ else:
529
+ root = find_project_root(cwd_resolved) or cwd_resolved
530
+ team_file = root / DEFAULT_TEAM_FILE
531
+
532
+ team_raw = _read_yaml(team_file) or {}
533
+ team_modules = team_raw.get("modules") if isinstance(team_raw.get("modules"), dict) else {}
534
+ locked_keys_raw = team_raw.get("locked_keys")
535
+ locked_keys: tuple[str, ...] = tuple(
536
+ k for k in (locked_keys_raw or []) if isinstance(k, str)
537
+ )
538
+
539
+ dev_merged = load_agent_settings(
540
+ project_path=project_path,
541
+ cwd=cwd,
542
+ )
543
+ dev_modules = dev_merged.get("modules") if isinstance(dev_merged.get("modules"), dict) else {}
544
+
545
+ merged: dict[str, Any] = copy.deepcopy(MODULES_DEFAULTS)
546
+ if team_modules:
547
+ _deep_merge(merged, team_modules)
548
+
549
+ if dev_modules:
550
+ for key, value in dev_modules.items():
551
+ dotted = f"modules.{key}"
552
+ if dotted in locked_keys and key in (team_modules or {}):
553
+ logger.info(
554
+ "agent_settings: ignoring developer override of locked key %s",
555
+ dotted,
556
+ )
557
+ continue
558
+ if isinstance(value, dict) and isinstance(merged.get(key), dict):
559
+ _deep_merge(merged[key], value)
560
+ else:
561
+ merged[key] = value
562
+
563
+ return merged
564
+
565
+
566
+ def enumerate_modules(
567
+ project_root: Path | str | None = None,
568
+ cwd: Path | None = None,
569
+ modules_config: dict[str, Any] | None = None,
570
+ ) -> list[dict[str, Any]]:
571
+ """Enumerate every module under ``modules.root_paths``.
572
+
573
+ Phase D Step 1 of road-to-configurable-modules. For each path in
574
+ ``modules.root_paths`` (resolved relative to ``project_root``), lists
575
+ immediate subdirectories that survive the ``modules.skip_dirs`` filter
576
+ and reports whether each module ships a per-module agent folder
577
+ (``modules.agent_folder``, default ``agents``).
578
+
579
+ Returns a list of dicts \u2014 one per discovered module \u2014 sorted by
580
+ ``(root_path, name)`` for deterministic output:
581
+
582
+ * ``name`` \u2014 directory name of the module
583
+ * ``root_path`` \u2014 repo-relative root containing the module
584
+ * ``module_path`` \u2014 repo-relative path to the module itself
585
+ * ``has_agent_folder`` \u2014 ``True`` iff a directory matching
586
+ ``modules.agent_folder`` lives directly under the module
587
+ * ``agent_folder_path`` \u2014 repo-relative path to that folder
588
+ (``None`` when ``has_agent_folder`` is ``False``)
589
+
590
+ Contract:
591
+
592
+ * ``modules.enabled`` is **not** consulted \u2014 callers decide whether
593
+ to skip the call. Disabled projects normally yield ``[]`` because
594
+ ``root_paths`` is empty by default.
595
+ * Missing roots are skipped silently (logged at INFO).
596
+ * Hidden directories (leading ``.``) and entries in
597
+ ``modules.skip_dirs`` are filtered out.
598
+ * Symlinks are followed only when they resolve inside the project
599
+ root \u2014 same boundary as ``find_project_root``.
600
+ * Pure, read-only \u2014 no file or directory is ever written.
601
+
602
+ ``modules_config`` lets tests inject a pre-built dict; when ``None``
603
+ the function calls :func:`get_modules_config` with the same
604
+ ``project_root`` / ``cwd`` so the precedence chain matches.
605
+ """
606
+ cwd_resolved = cwd if cwd is not None else Path.cwd()
607
+ if project_root is not None:
608
+ root = Path(project_root)
609
+ else:
610
+ root = find_project_root(cwd_resolved) or cwd_resolved
611
+ root = root.resolve()
612
+
613
+ if modules_config is None:
614
+ modules_config = get_modules_config(project_root=root, cwd=cwd)
615
+
616
+ root_paths_raw = modules_config.get("root_paths") or []
617
+ skip_dirs_raw = modules_config.get("skip_dirs") or MODULES_DEFAULTS["skip_dirs"]
618
+ agent_folder = str(modules_config.get("agent_folder") or MODULES_DEFAULTS["agent_folder"])
619
+
620
+ skip_dirs: set[str] = {str(s) for s in skip_dirs_raw if isinstance(s, str)}
621
+
622
+ discovered: list[dict[str, Any]] = []
623
+ for raw in root_paths_raw:
624
+ if not isinstance(raw, str) or not raw.strip():
625
+ continue
626
+ root_rel = raw.strip().strip("/")
627
+ root_abs = (root / root_rel).resolve()
628
+ try:
629
+ if not root_abs.is_dir() or not str(root_abs).startswith(str(root)):
630
+ logger.info("enumerate_modules: skipping missing/out-of-tree root %s", root_rel)
631
+ continue
632
+ except OSError:
633
+ logger.info("enumerate_modules: unreadable root %s", root_rel)
634
+ continue
635
+
636
+ try:
637
+ children = sorted(root_abs.iterdir(), key=lambda p: p.name)
638
+ except OSError:
639
+ logger.info("enumerate_modules: cannot list %s", root_rel)
640
+ continue
641
+
642
+ for child in children:
643
+ name = child.name
644
+ if name.startswith(".") or name in skip_dirs:
645
+ continue
646
+ if not child.is_dir():
647
+ continue
648
+ agent_dir = child / agent_folder
649
+ has_agent = agent_dir.is_dir()
650
+ try:
651
+ module_rel = child.resolve().relative_to(root)
652
+ except ValueError:
653
+ continue
654
+ entry: dict[str, Any] = {
655
+ "name": name,
656
+ "root_path": root_rel,
657
+ "module_path": str(module_rel),
658
+ "has_agent_folder": has_agent,
659
+ "agent_folder_path": str(module_rel / agent_folder) if has_agent else None,
660
+ }
661
+ discovered.append(entry)
662
+
663
+ discovered.sort(key=lambda m: (m["root_path"], m["name"]))
664
+ return discovered
665
+
666
+
473
667
  def iter_setting_overrides(
474
668
  project_path: Path | str | None = None,
475
669
  user_global_path: Path | str | None = None,
@@ -61,7 +61,7 @@ def _load_pipeline(path: Path) -> dict[str, Any]:
61
61
  loader is reachable both when this module runs from the consumer
62
62
  projection (``.agent-src/templates/scripts/work_engine/``) and
63
63
  from the source-of-truth tree
64
- (``packages/<pack>/.agent-src.uncompressed/templates/scripts/work_engine/``).
64
+ (``packages/<pack>/.agent-src.uncondensed/templates/scripts/work_engine/``).
65
65
  Loaded via ``importlib.util`` by file path to avoid namespace
66
66
  collisions with test packages named ``hooks``.
67
67
  """
@@ -3,7 +3,7 @@
3
3
  > Template for `agents/evidence/archived-skills/<slug>.md`. Created during
4
4
  > `step-2-skill-inventory-rationalization.md`
5
5
  > Phase 4 execution. Every skill removed from
6
- > `.agent-src.uncompressed/skills/` MUST have a matching archive note
6
+ > `.agent-src.uncondensed/skills/` MUST have a matching archive note
7
7
  > here — enforced by `scripts/lint_archived_skills.py`.
8
8
 
9
9
  ## Instructions
@@ -78,7 +78,7 @@ references the removed slug without pointing at this note.}
78
78
  relationship documented in the successor's frontmatter).
79
79
  - `deprecated` — capability retired; no successor needed.
80
80
  - **`replacement`** — successor slug (must exist under
81
- `.agent-src.uncompressed/skills/`) or literal `none`. The linter
81
+ `.agent-src.uncondensed/skills/`) or literal `none`. The linter
82
82
  validates the successor's existence.
83
83
  - **`last_known_callers`** — references found by
84
84
  `scripts/check_references.py` at archival time. Empty list is valid
@@ -92,10 +92,10 @@ references the removed slug without pointing at this note.}
92
92
  has a frontmatter block with the six required fields.
93
93
  2. `reason` is one of the four allowed values.
94
94
  3. When `reason ∈ {merged, superseded}`, the `replacement` slug exists
95
- under `.agent-src.uncompressed/skills/`.
95
+ under `.agent-src.uncondensed/skills/`.
96
96
  4. Every slug under `agents/evidence/archived-skills/` is *absent* from
97
- `.agent-src.uncompressed/skills/` (no zombies).
98
- 5. No SKILL.md present under `.agent-src.uncompressed/skills/`
97
+ `.agent-src.uncondensed/skills/` (no zombies).
98
+ 5. No SKILL.md present under `.agent-src.uncondensed/skills/`
99
99
  references an archived slug as a router target.
100
100
 
101
101
  Run via `task lint-archived-skills`. Included in `task ci`.
@@ -170,7 +170,7 @@ Do NOT use when:
170
170
 
171
171
  <!-- SENIOR-TIER STUB BLOCKS (delete entire section if not `tier: senior`):
172
172
  Senior-tier skills (frontmatter `tier: senior`) require four extra
173
- blocks per `.agent-src.uncompressed/rules/skill-quality.md` §
173
+ blocks per `.agent-src.uncondensed/rules/skill-quality.md` §
174
174
  Senior-Tier Required Structure. Mid-tier and untiered skills MUST
175
175
  remove this section entirely. The four blocks are enforced by
176
176
  `scripts/skill_linter.py` for `tier: senior` skills only.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
9
- "version": "3.3.0",
9
+ "version": "4.1.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
@@ -102,8 +102,8 @@
102
102
  "./.claude/skills/competitive-moat-analysis",
103
103
  "./.claude/skills/competitive-positioning",
104
104
  "./.claude/skills/composer-packages",
105
- "./.claude/skills/compress",
106
- "./.claude/skills/compress-memory",
105
+ "./.claude/skills/condense",
106
+ "./.claude/skills/condense-memory",
107
107
  "./.claude/skills/content-funnel-design",
108
108
  "./.claude/skills/context",
109
109
  "./.claude/skills/context-authoring",
@@ -189,7 +189,6 @@
189
189
  "./.claude/skills/hiring-loop-design",
190
190
  "./.claude/skills/implement-ticket",
191
191
  "./.claude/skills/incident-commander",
192
- "./.claude/skills/install-via-agent",
193
192
  "./.claude/skills/jira-integration",
194
193
  "./.claude/skills/jira-ticket",
195
194
  "./.claude/skills/jobs-events",
@@ -245,6 +244,7 @@
245
244
  "./.claude/skills/mode",
246
245
  "./.claude/skills/module",
247
246
  "./.claude/skills/module-create",
247
+ "./.claude/skills/module-detect-on-the-fly",
248
248
  "./.claude/skills/module-explore",
249
249
  "./.claude/skills/module-management",
250
250
  "./.claude/skills/motion-choreographer",
package/AGENTS.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # event4u/agent-config
2
2
 
3
- > Shared skill / rule / command suite for AI coding tools. No application runtime. AGENTS.md of the **package itself**.
3
+ > Shared skill / rule / command suite for AI coding tools. No app runtime. AGENTS.md of the **package itself**.
4
4
 
5
5
  ## Source of truth
6
6
 
7
- Edit `packages/<pack>/.agent-src.uncompressed/` only. Generated trees regenerate from `task sync` + `task generate-tools`; never hand-edit.
7
+ Edit `packages/<pack>/.agent-src.uncondensed/` only. Generated trees regenerate from `task sync` + `task generate-tools`; never hand-edit.
8
8
 
9
9
  ## Working on this repo
10
10
 
@@ -17,22 +17,21 @@ task ci # full pipeline — green before PR
17
17
 
18
18
  ## Pointers
19
19
 
20
- - **Package self-orientation** — identity, cognition map, layout, stack, key rules, telemetry: [`package-self-orientation`](docs/contracts/package-self-orientation.md).
21
- - **Kernel + Router** — 9 Iron-Law rules, tier-1/2 routing, cost profiles, per-rule caps: [`kernel-membership`](docs/contracts/kernel-membership.md) + [`rule-router`](docs/contracts/rule-router.md).
22
- - **Trust & Safety** — trust-level enum, HRR banner, safety floors, installer confirm: [`trust-and-safety`](docs/contracts/trust-and-safety.md) + [`ADR-018`](docs/decisions/ADR-018-trust-and-safety-layer.md).
23
- - **Content pipelines** — A→D source / Augment / multi-tool / Claude.ai-bundle projections indexed at [`docs/architecture.md`](docs/architecture.md).
24
- - **Editing this repo** — Iron-Law rules + Thin-Root contract govern every edit: [`augment-source-of-truth`](.agent-src/rules/augment-source-of-truth.md) + [`agents-md-thin-root`](.agent-src/skills/agents-md-thin-root/SKILL.md).
25
- - **Consumer story** — `npx` + `scripts/install.sh` opt-in flags, sandbox / offline install paths, verified-offline manifest: [`README.md`](README.md).
26
- - **Personas** — 11 review-lens cast (6 core · 5 specialist), `personas:` vs `/mode`: [`docs/personas.md`](docs/personas.md).
27
- - **Discovery** — workspaces / packs / dist manifest: [`ADR-013`](docs/decisions/ADR-013-discovery-frontmatter-contract.md) + [`customization`](docs/customization.md#workspaces--packs-discovery).
28
- - **Root layout** — maintainer-only dirs (`bench`, `evals`, `workers`) live under [`internal/`](internal/README.md) per [`ADR-028`](docs/decisions/ADR-028-root-layout.md).
20
+ - **Self-orientation** — identity / map / stack: [`package-self-orientation`](docs/contracts/package-self-orientation.md).
21
+ - **Kernel + Router** — 9 Iron-Law rules + tier-1/2 routing: [`kernel-membership`](docs/contracts/kernel-membership.md) + [`rule-router`](docs/contracts/rule-router.md).
22
+ - **Trust & Safety** — trust-level enum, HRR banner, safety floors: [`trust-and-safety`](docs/contracts/trust-and-safety.md) + [`ADR-018`](docs/decisions/ADR-018-trust-and-safety-layer.md).
23
+ - **Content pipelines** — A→D source / Augment / multi-tool / Claude.ai-bundle: [`docs/architecture.md`](docs/architecture.md).
24
+ - **Editing this repo** — Iron-Law rules + Thin-Root contract: [`augment-source-of-truth`](.agent-src/rules/augment-source-of-truth.md) + [`agents-md-thin-root`](.agent-src/skills/agents-md-thin-root/SKILL.md).
25
+ - **Consumer story** — `npx` + `scripts/install.sh`, sandbox / offline paths: [`README.md`](README.md).
26
+ - **Personas** — 11 review lenses (6 + 5): [`docs/personas.md`](docs/personas.md).
27
+ - **Discovery** — workspaces / packs manifest: [`ADR-013`](docs/decisions/ADR-013-discovery-frontmatter-contract.md) + [`customization`](docs/customization.md#workspaces--packs-discovery).
28
+ - **Root layout** — maintainer items in [`internal/`](internal/README.md) per [`ADR-028`](docs/decisions/ADR-028-root-layout.md); per-tool toggle: `agents/.agent-tools.yml`.
29
29
 
30
30
  ## Emergency triage — read this when nothing else is reachable
31
31
 
32
- 1. **What is this repo?** — `event4u/agent-config`, a governed skill / rule / command suite for AI coding tools (no application runtime).
33
- 2. **What language?** — All `.md` content is English; agents mirror the user's language at runtime.
34
- 3. **Where do I edit?** — `packages/<pack>/.agent-src.uncompressed/` only. Never the generated trees.
32
+ 1. **What is this repo?** — `event4u/agent-config`, a governed skill / rule / command suite for AI coding tools (no app runtime).
33
+ 2. **What language?** — All `.md` is English; agents mirror the user's language at runtime.
34
+ 3. **Where do I edit?** — `packages/<pack>/.agent-src.uncondensed/` only. Never the generated trees.
35
35
  4. **Lint / test / sync entry point?** — `task ci` (full pipeline). Subsets: `task sync`, `task generate-tools`, `task lint-skills`, `task test`.
36
- 5. **Where do the always-active rules live?** — `.agent-src/rules/` (kernel = 9 Iron-Law rules; tier-1 / tier-2 routed via `dist/router.json`).
37
-
38
-
36
+ 5. **Where do the always-active rules live?** — `.agent-src/rules/` (kernel = 9 Iron-Law rules; tier-1 / 2 via `dist/router.json`).
37
+ 6. **CI checks?** — `task ci:required-checks` previews per [`branch-protection-policy.md`](docs/contracts/branch-protection-policy.md); merge floor [`ci-green-floor.md`](docs/contracts/ci-green-floor.md); release [`release-pr-gating.md`](docs/contracts/release-pr-gating.md).