@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,8 +2,8 @@
2
2
  """Emit `cost-summary/v1` JSON per `docs/contracts/cost-summary-schema.md`.
3
3
 
4
4
  Reads `agents/cost-tracking/sessions.jsonl` (or `--input`), aggregates by
5
- session, conversation, and model. Honors the caveman suspended-multiplier
6
- contract (delta = 0 while suspended; see `caveman-telemetry.md`).
5
+ session, conversation, and model. Honors the telegraph suspended-multiplier
6
+ contract (delta = 0 while suspended; see `telegraph-telemetry.md`).
7
7
  """
8
8
  from __future__ import annotations
9
9
  import argparse, json, sys
@@ -36,12 +36,12 @@ def _load(path: Path) -> list[dict]:
36
36
  def _delta(row: dict) -> int:
37
37
  if not MULTIPLIER_ACTIVE:
38
38
  return 0
39
- return int(row.get("caveman_delta_tokens") or 0)
39
+ return int(row.get("telegraph_delta_tokens") or 0)
40
40
 
41
41
 
42
42
  def _zero_kv() -> dict:
43
43
  return {"sessions": 0, "total_cost_usd": 0.0, "input_tokens": 0,
44
- "output_tokens": 0, "caveman_delta_tokens": 0}
44
+ "output_tokens": 0, "telegraph_delta_tokens": 0}
45
45
 
46
46
 
47
47
  def _zero_model() -> dict:
@@ -66,14 +66,14 @@ def aggregate(rows: list[dict]) -> dict:
66
66
  bucket["total_cost_usd"] += cost
67
67
  bucket["input_tokens"] += itok
68
68
  bucket["output_tokens"] += otok
69
- bucket["caveman_delta_tokens"] += delta
69
+ bucket["telegraph_delta_tokens"] += delta
70
70
  m = by_model[model]
71
71
  m["sessions"] += 1
72
72
  m["total_cost_usd"] += cost
73
73
  m["input_tokens"] += itok
74
74
  m["output_tokens"] += otok
75
- totals["caveman_multiplier_version"] = MULTIPLIER_VERSION
76
- totals["caveman_multiplier_active"] = MULTIPLIER_ACTIVE
75
+ totals["telegraph_multiplier_version"] = MULTIPLIER_VERSION
76
+ totals["telegraph_multiplier_active"] = MULTIPLIER_ACTIVE
77
77
  return {
78
78
  "schema_version": SCHEMA,
79
79
  "generated_at": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
@@ -10,7 +10,7 @@
10
10
  set -euo pipefail
11
11
 
12
12
  REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
13
- SKILL="$REPO_ROOT/.agent-src.uncompressed/skills/token-optimizer/SKILL.md"
13
+ SKILL="$REPO_ROOT/.agent-src.uncondensed/skills/token-optimizer/SKILL.md"
14
14
 
15
15
  if [[ ! -f "$SKILL" ]]; then
16
16
  echo "ERROR: $SKILL not found" >&2
@@ -9,7 +9,7 @@ import sys
9
9
  from collections import Counter
10
10
 
11
11
  ROOT = pathlib.Path(__file__).resolve().parents[1]
12
- SRC = ROOT / ".agent-src.uncompressed"
12
+ SRC = ROOT / ".agent-src.uncondensed"
13
13
 
14
14
 
15
15
  def _frontmatter(path: pathlib.Path) -> dict[str, str]:
@@ -56,10 +56,10 @@ def main() -> int:
56
56
  out.append("## Counts by category\n")
57
57
  out.append("| Category | Path | Count |")
58
58
  out.append("|---|---|---|")
59
- out.append(f"| Skills | `.agent-src.uncompressed/skills/*/SKILL.md` | {len(skills)} |")
60
- out.append(f"| Rules | `.agent-src.uncompressed/rules/**/*.md` | {len(rules)} |")
61
- out.append(f"| Commands | `.agent-src.uncompressed/commands/**/*.md` | {len(commands)} |")
62
- out.append(f"| Templates | `.agent-src.uncompressed/templates/**/*` | {len(templates)} |")
59
+ out.append(f"| Skills | `.agent-src.uncondensed/skills/*/SKILL.md` | {len(skills)} |")
60
+ out.append(f"| Rules | `.agent-src.uncondensed/rules/**/*.md` | {len(rules)} |")
61
+ out.append(f"| Commands | `.agent-src.uncondensed/commands/**/*.md` | {len(commands)} |")
62
+ out.append(f"| Templates | `.agent-src.uncondensed/templates/**/*` | {len(templates)} |")
63
63
  out.append("")
64
64
 
65
65
  out.append("## Distinct `domain:` values (skills)\n")
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Generate `agents/index.md` (internal) and `docs/catalog.md` (public).
3
3
 
4
- Scans `.agent-src.uncompressed/{skills,rules,commands}/` plus `docs/guidelines/`
4
+ Scans `.agent-src.uncondensed/{skills,rules,commands}/` plus `docs/guidelines/`
5
5
  and renders two artefact tables — one for maintainers, one for consumers.
6
6
 
7
7
  Both files are sync-checked in CI via `--check`; drift = build break.
@@ -22,10 +22,10 @@ ROOT = Path(__file__).resolve().parent.parent
22
22
  sys.path.insert(0, str(ROOT / "scripts"))
23
23
  from _lib.agent_src import artefact_roots # noqa: E402
24
24
 
25
- # Legacy single-root anchor — kept as fallback for pure-compressed
25
+ # Legacy single-root anchor — kept as fallback for pure-condensed
26
26
  # consumer projections. Multi-root discovery uses artefact_roots() so
27
27
  # generate_index works across packages/* per ADR-017.
28
- SRC = ROOT / ".agent-src.uncompressed"
28
+ SRC = ROOT / ".agent-src.uncondensed"
29
29
  GUIDELINES = ROOT / "docs" / "guidelines"
30
30
  INDEX_PATH = ROOT / "agents" / "index.md"
31
31
  CATALOG_PATH = ROOT / "docs" / "catalog.md"
@@ -161,9 +161,9 @@ def _collect_guidelines() -> list[Entry]:
161
161
 
162
162
 
163
163
  # Path rewriter for the public catalog: link to the shipped surface
164
- # (`.agent-src/`) instead of the source-of-truth (`.agent-src.uncompressed/`),
164
+ # (`.agent-src/`) instead of the source-of-truth (`.agent-src.uncondensed/`),
165
165
  # which is excluded from `package.json#files` and `composer.json` archives.
166
- # Post-ADR-017 the source-of-truth lives at packages/*/.agent-src.uncompressed/,
166
+ # Post-ADR-017 the source-of-truth lives at packages/*/.agent-src.uncondensed/,
167
167
  # so we strip whichever prefix matches and pin to the flat .agent-src/ output.
168
168
  def _to_shipped_path(path: str) -> str:
169
169
  from _lib.agent_src import strip_source_prefix
@@ -195,7 +195,7 @@ def _render_index(skills, rules, commands, guidelines) -> str:
195
195
  "# Agent-Config Internal Index",
196
196
  "",
197
197
  f"Maintainer-facing index of all **{total} artefacts** in this package.",
198
- "Auto-generated from `.agent-src.uncompressed/` and `docs/guidelines/`.",
198
+ "Auto-generated from `.agent-src.uncondensed/` and `docs/guidelines/`.",
199
199
  "",
200
200
  "> **Regenerate:** `python3 scripts/generate_index.py`",
201
201
  "> **Drift check:** `python3 scripts/generate_index.py --check` (runs in `task ci`)",
@@ -6,7 +6,7 @@ Produces:
6
6
  * docs/contracts/file-ownership-matrix.json (machine, internal-locked)
7
7
  * agents/settings/contexts/structural/file-ownership-matrix.md (human-readable)
8
8
 
9
- Walks `.agent-src.uncompressed/{rules,skills,commands,contexts,personas}/`,
9
+ Walks `.agent-src.uncondensed/{rules,skills,commands,contexts,personas}/`,
10
10
  parses frontmatter for `load_context:` / `load_context_eager:`, scans
11
11
  markdown bodies for inline links to `.md` files inside the scanned roots,
12
12
  and emits READ_ONLY edges plus depth-2 transitive closure of load_context
@@ -39,10 +39,10 @@ sys.path.insert(0, str(ROOT / "scripts"))
39
39
  from _lib.agent_src import artefact_roots, resolve_logical, strip_source_prefix # noqa: E402
40
40
 
41
41
  # Canonical anchor used in the committed matrix. Paths are always
42
- # emitted as ".agent-src.uncompressed/<sub>/<...>" regardless of which
42
+ # emitted as ".agent-src.uncondensed/<sub>/<...>" regardless of which
43
43
  # physical root (legacy or packages/*) contains the file, so the matrix
44
44
  # stays stable across the monorepo migration.
45
- CANONICAL_SRC_PREFIX = ".agent-src.uncompressed"
45
+ CANONICAL_SRC_PREFIX = ".agent-src.uncondensed"
46
46
 
47
47
  SCAN_DIRS = ("rules", "skills", "commands", "contexts", "personas")
48
48
 
@@ -76,7 +76,7 @@ def _rel(p: Path) -> str:
76
76
 
77
77
  def _kind_for(rel: str) -> str:
78
78
  parts = rel.split("/")
79
- if len(parts) >= 3 and parts[0] == ".agent-src.uncompressed":
79
+ if len(parts) >= 3 and parts[0] == ".agent-src.uncondensed":
80
80
  return parts[1].rstrip("s") if parts[1] != "personas" else "persona"
81
81
  return "unknown"
82
82
 
@@ -98,7 +98,7 @@ def _parse_frontmatter(p: Path) -> dict:
98
98
  def _collect_files(root: Path | None = None) -> list[tuple[Path, str]]:
99
99
  """Walk every artefact root and yield ``(physical_path, canonical_rel)``.
100
100
 
101
- ``canonical_rel`` is always anchored at ``.agent-src.uncompressed/`` so
101
+ ``canonical_rel`` is always anchored at ``.agent-src.uncondensed/`` so
102
102
  the matrix is byte-identical pre- and post-monorepo-move. Duplicates
103
103
  across roots resolve to the first hit (legacy first, then packages
104
104
  alphabetically) — matches the priority in ``artefact_roots()``.
@@ -212,17 +212,17 @@ def build_matrix(root: Path | None = None) -> tuple[dict[str, FileEntry], list[E
212
212
  def _resolve_link(source_rel: str, source_phys: Path, href: str) -> str | None:
213
213
  """Resolve a markdown link href to a canonical scanned-root path, or None.
214
214
 
215
- ``source_rel`` is the canonical (``.agent-src.uncompressed/...``)
215
+ ``source_rel`` is the canonical (``.agent-src.uncondensed/...``)
216
216
  identity of the source file. Relative hrefs are resolved against
217
217
  the source's *logical* directory, then looked up across every
218
218
  artefact root via :func:`resolve_logical`. This keeps the matrix
219
219
  stable when source and target live in different physical packages.
220
220
 
221
221
  Repo-rooted hrefs (``agents/...``, ``packages/...``, or those
222
- starting with ``.agent-src.uncompressed/``) are resolved against
222
+ starting with ``.agent-src.uncondensed/``) are resolved against
223
223
  the repo root and normalised through :func:`strip_source_prefix`.
224
224
  """
225
- if href.startswith(".agent-src.uncompressed/") or href.startswith("agents/") \
225
+ if href.startswith(".agent-src.uncondensed/") or href.startswith("agents/") \
226
226
  or href.startswith("packages/"):
227
227
  cand = (ROOT / href).resolve()
228
228
  if not cand.exists():
@@ -267,7 +267,7 @@ def _to_json(files: dict[str, FileEntry], edges: list[Edge]) -> dict:
267
267
  return {
268
268
  "version": 1,
269
269
  "generated_by": "scripts/generate_ownership_matrix.py",
270
- "source_of_truth": ".agent-src.uncompressed/",
270
+ "source_of_truth": ".agent-src.uncondensed/",
271
271
  "files": {
272
272
  rel: {
273
273
  "kind": e.kind,
@@ -342,7 +342,7 @@ def main(argv: Iterable[str] | None = None) -> int:
342
342
  args = ap.parse_args(list(argv) if argv is not None else None)
343
343
 
344
344
  if not artefact_roots():
345
- print("❌ no artefact roots found (legacy or packages/*/.agent-src.uncompressed/)",
345
+ print("❌ no artefact roots found (legacy or packages/*/.agent-src.uncondensed/)",
346
346
  file=sys.stderr)
347
347
  return 3
348
348
 
@@ -70,7 +70,7 @@ def _package_version() -> str:
70
70
 
71
71
 
72
72
  def _collect_artefacts(pkg_dir: Path) -> list[dict[str, Any]]:
73
- src_root = pkg_dir / ".agent-src.uncompressed"
73
+ src_root = pkg_dir / ".agent-src.uncondensed"
74
74
  if not src_root.is_dir():
75
75
  return []
76
76
  items: list[dict[str, Any]] = []
@@ -1,7 +1,7 @@
1
1
  # Ghostwriter fixture allowlist
2
2
  #
3
3
  # One file stem per line (without the .md extension).
4
- # Every file under .agent-src.uncompressed/ghostwriter/ whose stem is
4
+ # Every file under .agent-src.uncondensed/ghostwriter/ whose stem is
5
5
  # NOT on this list will fail `task lint-ghostwriter-source`.
6
6
  #
7
7
  # Adding a new fixture requires:
package/scripts/install CHANGED
@@ -274,8 +274,8 @@ fi
274
274
  # AGENT_CONFIG_ALLOW_SELF_INSTALL=1.
275
275
  if ! $GLOBAL && [[ "${AGENT_CONFIG_ALLOW_SELF_INSTALL:-0}" != "1" ]]; then
276
276
  self_marker=""
277
- if [[ -d "$TARGET_DIR/.agent-src.uncompressed" ]]; then
278
- self_marker=".agent-src.uncompressed/"
277
+ if [[ -d "$TARGET_DIR/.agent-src.uncondensed" ]]; then
278
+ self_marker=".agent-src.uncondensed/"
279
279
  elif [[ -f "$TARGET_DIR/package.json" ]] && \
280
280
  grep -qE '"name"[[:space:]]*:[[:space:]]*"@event4u/agent-config"' "$TARGET_DIR/package.json" 2>/dev/null; then
281
281
  self_marker='package.json::name === "@event4u/agent-config"'
@@ -285,7 +285,7 @@ if ! $GLOBAL && [[ "${AGENT_CONFIG_ALLOW_SELF_INSTALL:-0}" != "1" ]]; then
285
285
  echo " Target: $TARGET_DIR" >&2
286
286
  echo " Detected: $self_marker" >&2
287
287
  echo " Run \`task sync\` to regenerate .agent-src/ + .augment/ from" >&2
288
- echo " .agent-src.uncompressed/ instead. To force this anyway, set" >&2
288
+ echo " .agent-src.uncondensed/ instead. To force this anyway, set" >&2
289
289
  echo " AGENT_CONFIG_ALLOW_SELF_INSTALL=1." >&2
290
290
  exit 2
291
291
  fi
@@ -12,7 +12,7 @@ mkdir -p "$HOOKS_DIR"
12
12
 
13
13
  cat > "$HOOKS_DIR/pre-push" << 'EOF'
14
14
  #!/usr/bin/env bash
15
- # Pre-push hook: verify .agent-src/ is in sync with .agent-src.uncompressed/
15
+ # Pre-push hook: verify .agent-src/ is in sync with .agent-src.uncondensed/
16
16
  # and that the canonical command count matches README + getting-started docs.
17
17
  #
18
18
  # The command-count gate exists because three consecutive PRs landed
@@ -23,8 +23,8 @@ cat > "$HOOKS_DIR/pre-push" << 'EOF'
23
23
  fail=0
24
24
 
25
25
  echo "🔍 Checking .agent-src/ sync..."
26
- if ! python3 scripts/compress.py --check; then
27
- echo "❌ .agent-src/ is out of sync. Run 'task sync' and compress changed .md files, then commit."
26
+ if ! python3 scripts/condense.py --check; then
27
+ echo "❌ .agent-src/ is out of sync. Run 'task sync' and condense changed .md files, then commit."
28
28
  fail=1
29
29
  fi
30
30
 
@@ -134,8 +134,8 @@ write_chat_history_hook "post-rewrite" "git:post-rewrite"
134
134
 
135
135
  # Auto-sync agent-tool projections after pull / branch-switch ---------------
136
136
  #
137
- # When `.agent-src.uncompressed/`, `.agent-src/`, `scripts/compress.py`,
138
- # `.agent-tools.yml`, or `Taskfile.yml` change between the previous and
137
+ # When `.agent-src.uncondensed/`, `.agent-src/`, `scripts/condense.py`,
138
+ # `agents/.agent-tools.yml`, or `Taskfile.yml` change between the previous and
139
139
  # new HEAD, the developer's working tree has stale `.claude/`,
140
140
  # `.augment/`, etc. projections until they remember to run `task sync`.
141
141
  # These hooks bridge that gap: fast idempotent re-projection.
@@ -169,7 +169,7 @@ fi
169
169
 
170
170
  if [ -n "\$prev" ] && [ -n "\$new" ] && [ "\$prev" != "\$new" ]; then
171
171
  if git diff --name-only "\$prev" "\$new" 2>/dev/null | \\
172
- grep -qE '^(\\.agent-src(\\.uncompressed)?/|scripts/compress\\.py|\\.agent-tools\\.yml|Taskfile\\.yml)'; then
172
+ grep -qE '^(\\.agent-src(\\.uncondensed)?/|scripts/condense\\.py|\\.agent-tools\\.yml|Taskfile\\.yml)'; then
173
173
  if command -v task >/dev/null 2>&1; then
174
174
  task sync >/dev/null 2>&1 || true
175
175
  task generate-tools >/dev/null 2>&1 || true
@@ -2921,12 +2921,12 @@ def _detect_legacy_for_migration(project_root: Path) -> list[str]:
2921
2921
 
2922
2922
  - ``AGENT_CONFIG_DEV_MODE=1`` is set (maintainer dogfood loop),
2923
2923
  - the project root IS the agent-config source repo
2924
- (``.agent-src.uncompressed/`` present),
2924
+ (``.agent-src.uncondensed/`` present),
2925
2925
  - the bridge marker already exists (project is already global-only).
2926
2926
  """
2927
2927
  if os.environ.get("AGENT_CONFIG_DEV_MODE") == "1":
2928
2928
  return []
2929
- if (project_root / ".agent-src.uncompressed").is_dir():
2929
+ if (project_root / ".agent-src.uncondensed").is_dir():
2930
2930
  return []
2931
2931
  if (project_root / CONSUMER_BRIDGE_MARKER_RELPATH).is_file():
2932
2932
  return []
@@ -3031,7 +3031,7 @@ def _write_consumer_bridge_marker(
3031
3031
  - ``AGENT_CONFIG_DEV_MODE=1`` (maintainer dev installs never lay the
3032
3032
  bridge into the source repo).
3033
3033
  - The project root is the agent-config source repo itself
3034
- (``.agent-src.uncompressed/`` present) — same rationale.
3034
+ (``.agent-src.uncondensed/`` present) — same rationale.
3035
3035
 
3036
3036
  Atomic write: ``tempfile`` in the same dir + ``os.replace``. Same
3037
3037
  pattern the lockfile uses (see ``scripts/_lib/installed_lock.py``).
@@ -3042,7 +3042,7 @@ def _write_consumer_bridge_marker(
3042
3042
  env_map = env if env is not None else os.environ
3043
3043
  if env_map.get("AGENT_CONFIG_DEV_MODE") == "1":
3044
3044
  return None
3045
- if (project_root / ".agent-src.uncompressed").is_dir():
3045
+ if (project_root / ".agent-src.uncondensed").is_dir():
3046
3046
  return None
3047
3047
 
3048
3048
  paths_mod = _load_user_global_paths_module()
@@ -3112,7 +3112,7 @@ def _write_per_tool_project_anchors(
3112
3112
 
3113
3113
  - Skipped under ``AGENT_CONFIG_DEV_MODE=1``.
3114
3114
  - Skipped inside the agent-config source repo
3115
- (``.agent-src.uncompressed/`` present).
3115
+ (``.agent-src.uncondensed/`` present).
3116
3116
  - Skipped when the tool is not in ``tools``.
3117
3117
 
3118
3118
  Atomic write per file (temp file + ``os.replace``); ``0o644``
@@ -3124,7 +3124,7 @@ def _write_per_tool_project_anchors(
3124
3124
  env_map = env if env is not None else os.environ
3125
3125
  if env_map.get("AGENT_CONFIG_DEV_MODE") == "1":
3126
3126
  return []
3127
- if (project_root / ".agent-src.uncompressed").is_dir():
3127
+ if (project_root / ".agent-src.uncondensed").is_dir():
3128
3128
  return []
3129
3129
 
3130
3130
  paths_mod = _load_user_global_paths_module()
@@ -3548,12 +3548,12 @@ def install_global(
3548
3548
  # (ADR-008 Phase 3.2). Outside a project (e.g. plain `~/`) there is no
3549
3549
  # manifest to write and the global lockfile alone is the source of truth.
3550
3550
  # Skipped inside the agent-config source repo (detected by
3551
- # `.agent-src.uncompressed/`) — maintainers dogfood with their own
3551
+ # `.agent-src.uncondensed/`) — maintainers dogfood with their own
3552
3552
  # `.agent-settings.yml` and the manifest would be untracked noise.
3553
3553
  if (
3554
3554
  project_root is not None
3555
3555
  and (project_root / SETTINGS_FILE).exists()
3556
- and not (project_root / ".agent-src.uncompressed").is_dir()
3556
+ and not (project_root / ".agent-src.uncondensed").is_dir()
3557
3557
  ):
3558
3558
  # Collect deployed/marker paths per tool so the manifest records
3559
3559
  # the v2 ``files[]`` inventory (P1.4).
@@ -3571,7 +3571,7 @@ def install_global(
3571
3571
  # ``agents/.event4u-bridge.yml`` lets per-tool adapters locate
3572
3572
  # the global root from inside the repo. Skipped in maintainer
3573
3573
  # dev mode and in the source repo (see contract § Writer
3574
- # contract; the surrounding ``.agent-src.uncompressed`` guard
3574
+ # contract; the surrounding ``.agent-src.uncondensed`` guard
3575
3575
  # already covers the source-repo case, the dev-mode skip is
3576
3576
  # enforced inside the writer).
3577
3577
  marker_path = _write_consumer_bridge_marker(project_root, installed_version)
@@ -3794,7 +3794,7 @@ def parse_options(argv: list[str]) -> argparse.Namespace:
3794
3794
  dest="apply_payload",
3795
3795
  default=None,
3796
3796
  help=(
3797
- "path to a WizardApplyPayload JSON file (schemas/"
3797
+ "path to a WizardApplyPayload JSON file (internal/schemas/"
3798
3798
  "wizard-apply-payload.schema.json). When supplied, install.py "
3799
3799
  "reads the payload, validates schema_version, translates "
3800
3800
  "tools/packs/settings into CLI equivalents, and dispatches "
@@ -4072,7 +4072,7 @@ _INTERACTIVE_STACKS: tuple[tuple[str, str], ...] = (
4072
4072
  )
4073
4073
 
4074
4074
  _INTERACTIVE_VERBOSITIES: tuple[tuple[str, str], ...] = (
4075
- ("quiet", "Caveman / minimal output"),
4075
+ ("quiet", "Telegraph / minimal output"),
4076
4076
  ("normal", "Default verbosity"),
4077
4077
  ("verbose", "Full intent announcements + play-by-play"),
4078
4078
  )
@@ -4579,6 +4579,65 @@ def main(argv: list[str]) -> int:
4579
4579
  _set_conflict_policy(None)
4580
4580
 
4581
4581
 
4582
+ def _propose_modules_config(project_root: Path, is_first_run: bool) -> None:
4583
+ """Surface module-root candidates as numbered options on first install.
4584
+
4585
+ Phase B Step 2 of road-to-configurable-modules. Hooks into the
4586
+ project-install path: when the install is first-run, the terminal
4587
+ is a TTY, ``.agent-project-settings.yml`` exists without a populated
4588
+ ``modules:`` block, and the detection helper finds at least one
4589
+ candidate, the installer prints the proposed block and asks the
4590
+ user to paste it into the team file. No automatic write — the
4591
+ layered-settings contract treats ``.agent-project-settings.yml``
4592
+ as user-curated.
4593
+
4594
+ Gates (any miss → silent no-op):
4595
+
4596
+ * ``is_first_run`` must be True — re-runs never re-prompt.
4597
+ * stdin + stdout must be TTYs — non-interactive installs (CI,
4598
+ wizard apply-payload, ``--quiet``) skip silently.
4599
+ * ``QUIET`` must be False.
4600
+ * The detection helper must surface at least one candidate.
4601
+ """
4602
+ if not is_first_run or QUIET or not sys.stdin.isatty() or not sys.stdout.isatty():
4603
+ return
4604
+ try:
4605
+ from scripts._lib.module_detection import detect_module_roots
4606
+ except ImportError:
4607
+ return
4608
+ try:
4609
+ candidates = detect_module_roots(project_root)
4610
+ except OSError:
4611
+ return
4612
+ if not candidates:
4613
+ return
4614
+ print()
4615
+ info("Module-root candidates detected — propose `modules:` block")
4616
+ info(
4617
+ "Paste into .agent-project-settings.yml to enable module-aware "
4618
+ "skills (or skip; the block stays opt-in)."
4619
+ )
4620
+ print()
4621
+ print(" modules:")
4622
+ print(" enabled: true")
4623
+ print(
4624
+ " root_paths: [" + ", ".join(c.path for c in candidates) + "]"
4625
+ )
4626
+ primary_ns = next(
4627
+ (c.namespace_template_guess for c in candidates if c.namespace_template_guess),
4628
+ "",
4629
+ )
4630
+ if primary_ns:
4631
+ print(f" namespace_template: '{primary_ns}'")
4632
+ print(" agent_folder: agents")
4633
+ print(" skip_dirs: [.module-template, .example]")
4634
+ print()
4635
+ info(
4636
+ "Re-run anytime via `python3 scripts/propose_modules_config.py` "
4637
+ "(installed under <package>/scripts/)."
4638
+ )
4639
+
4640
+
4582
4641
  def _main_project_install(
4583
4642
  opts: argparse.Namespace,
4584
4643
  project_root: Path,
@@ -4728,6 +4787,12 @@ def _main_project_install(
4728
4787
  print(" Re-run complete. Walkthrough: https://github.com/event4u-app/agent-config/blob/main/docs/getting-started.md")
4729
4788
  print()
4730
4789
 
4790
+ # Module-root proposal (road-to-configurable-modules Phase B Step 2).
4791
+ # First-run TTY installs surface detected `modules:` candidates so
4792
+ # the user can paste an opt-in block into .agent-project-settings.yml.
4793
+ # Silent no-op on re-runs, CI, --quiet, and wizard apply-payload runs.
4794
+ _propose_modules_config(project_root, is_first_run)
4795
+
4731
4796
  # Wizard auto-launch (Phase 6 follow-up). Runs after the success
4732
4797
  # banner so the user sees install completion even if the wizard
4733
4798
  # boot times out. Gate was already evaluated at the top of main()