@event4u/agent-config 3.3.0 → 4.2.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 (561) 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 +216 -3
  144. package/CONTRIBUTING.md +31 -12
  145. package/README.md +21 -12
  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/atomic.js +92 -0
  164. package/dist/install/atomic.js.map +1 -0
  165. package/dist/install/conflict.js +196 -0
  166. package/dist/install/conflict.js.map +1 -0
  167. package/dist/install/detect.js +218 -0
  168. package/dist/install/detect.js.map +1 -0
  169. package/dist/install/paths.js +82 -0
  170. package/dist/install/paths.js.map +1 -0
  171. package/dist/install/plan.js +157 -0
  172. package/dist/install/plan.js.map +1 -0
  173. package/dist/install/txlog.js +140 -0
  174. package/dist/install/txlog.js.map +1 -0
  175. package/dist/install/types.js +19 -0
  176. package/dist/install/types.js.map +1 -0
  177. package/dist/install/wizard-plan.js +184 -0
  178. package/dist/install/wizard-plan.js.map +1 -0
  179. package/dist/mcp/registry-manifest.json +4 -4
  180. package/dist/router.json +67 -19
  181. package/dist/server/app.js +6 -0
  182. package/dist/server/app.js.map +1 -1
  183. package/dist/server/routes/install.js +358 -0
  184. package/dist/server/routes/install.js.map +1 -0
  185. package/dist/server/routes/wizard.js +468 -32
  186. package/dist/server/routes/wizard.js.map +1 -1
  187. package/dist/server/routes/workspace.js +396 -0
  188. package/dist/server/routes/workspace.js.map +1 -0
  189. package/dist/server/schemas/settings.js +5 -3
  190. package/dist/server/schemas/settings.js.map +1 -1
  191. package/dist/ui/assets/index-BDAhhpDV.js +40 -0
  192. package/dist/ui/assets/index-BDAhhpDV.js.map +1 -0
  193. package/dist/ui/assets/index-BXZILUxe.css +1 -0
  194. package/dist/ui/index.html +2 -2
  195. package/docs/MIGRATION.md +1 -1
  196. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  197. package/docs/adrs/router/0001-three-tier-routing.md +4 -4
  198. package/docs/adrs/schema/0001-json-schema-frontmatter.md +1 -1
  199. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +4 -4
  200. package/docs/adrs/{caveman → telegraph}/0001-default-off-until-bench.md +9 -9
  201. package/docs/adrs/telegraph/README.md +9 -0
  202. package/docs/architecture/augment-projection.md +4 -4
  203. package/docs/architecture/claude-bundle.md +1 -1
  204. package/docs/architecture/current-onboard-baseline.md +3 -3
  205. package/docs/architecture/multi-tool-projection.md +10 -10
  206. package/docs/architecture/source-projection.md +27 -27
  207. package/docs/architecture.md +19 -15
  208. package/docs/archive/CHANGELOG-pre-2.11.0.md +2 -2
  209. package/docs/archive/CHANGELOG-pre-2.15.0.md +3 -3
  210. package/docs/archive/CHANGELOG-pre-2.16.0.md +1 -1
  211. package/docs/archive/CHANGELOG-pre-2.2.0.md +70 -70
  212. package/docs/archive/CHANGELOG-pre-2.20.0.md +2 -2
  213. package/docs/archive/CHANGELOG-pre-2.25.0.md +15 -15
  214. package/docs/archive/CHANGELOG-pre-3.0.0.md +4 -4
  215. package/docs/archive/CHANGELOG-pre-3.1.0.md +2 -2
  216. package/docs/archive/CHANGELOG-pre-3.2.0.md +3 -3
  217. package/docs/benchmark.md +65 -0
  218. package/docs/benchmarks.md +16 -16
  219. package/docs/catalog.md +17 -15
  220. package/docs/contracts/CHANGELOG-conventions.md +1 -1
  221. package/docs/contracts/STABILITY.md +2 -2
  222. package/docs/contracts/adoption-signal-floor.md +110 -0
  223. package/docs/contracts/adr-chat-history-split.md +4 -4
  224. package/docs/contracts/adr-command-suggestion.md +4 -4
  225. package/docs/contracts/adr-gtm-context-spine.md +1 -1
  226. package/docs/contracts/adr-implement-ticket-runtime.md +4 -4
  227. package/docs/contracts/adr-install-user-type-axis.md +1 -1
  228. package/docs/contracts/adr-layout.md +2 -2
  229. package/docs/contracts/adr-product-ui-track.md +10 -10
  230. package/docs/contracts/adr-user-types-axis.md +3 -3
  231. package/docs/contracts/adr-wing4-context-spine.md +1 -1
  232. package/docs/contracts/agent-memory-contract.md +3 -3
  233. package/docs/contracts/agents-md-tech-stack.md +2 -2
  234. package/docs/contracts/ai-council-config.md +2 -2
  235. package/docs/contracts/at-rest-encryption.md +4 -0
  236. package/docs/contracts/audit-log-v1.md +1 -1
  237. package/docs/contracts/benchmark-ab-contract.md +101 -0
  238. package/docs/contracts/benchmark-corpus-spec.md +1 -1
  239. package/docs/contracts/branch-protection-policy.md +98 -0
  240. package/docs/contracts/ci-cost-budget.md +106 -0
  241. package/docs/contracts/ci-green-floor.md +141 -0
  242. package/docs/contracts/command-clusters.md +6 -6
  243. package/docs/contracts/command-surface-tiers.md +2 -2
  244. package/docs/contracts/command-taxonomy.md +2 -2
  245. package/docs/contracts/{compression-default-kill-criterion.md → condensation-default-kill-criterion.md} +29 -29
  246. package/docs/contracts/config-presets.md +1 -1
  247. package/docs/contracts/context-paths.md +3 -3
  248. package/docs/contracts/context-spine.md +1 -1
  249. package/docs/contracts/cost-summary-schema.md +12 -12
  250. package/docs/contracts/cross-wing-handoff.md +4 -4
  251. package/docs/contracts/daily-workspace.md +4 -0
  252. package/docs/contracts/decision-trace-v1.md +2 -2
  253. package/docs/contracts/discovery-manifest.md +4 -4
  254. package/docs/contracts/explain-modes.md +4 -0
  255. package/docs/contracts/file-ownership-matrix.json +3493 -3318
  256. package/docs/contracts/file-ownership-matrix.md +3 -3
  257. package/docs/contracts/frontmatter-contract.md +4 -4
  258. package/docs/contracts/ghostwriter-schema.md +3 -3
  259. package/docs/contracts/gui-wizard.md +110 -97
  260. package/docs/contracts/harness-expectations.md +123 -0
  261. package/docs/contracts/host-agent-protocol.md +4 -0
  262. package/docs/contracts/implement-ticket-flow.md +9 -9
  263. package/docs/contracts/install-scopes.md +77 -0
  264. package/docs/contracts/iron-law-overrides.txt +1 -1
  265. package/docs/contracts/kernel-membership.md +26 -26
  266. package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
  267. package/docs/contracts/linter-structural-model.md +2 -2
  268. package/docs/contracts/load-context-budget-model.md +4 -4
  269. package/docs/contracts/load-context-schema.md +13 -13
  270. package/docs/contracts/local-analytics.md +4 -0
  271. package/docs/contracts/local-knowledge-ingestion.md +1 -1
  272. package/docs/contracts/mcp-cloud-scope.md +2 -2
  273. package/docs/contracts/mcp-phase-1-scope.md +3 -3
  274. package/docs/contracts/measurement-baseline.md +5 -5
  275. package/docs/contracts/mental-models.md +30 -30
  276. package/docs/contracts/multi-tool-projection-fidelity.md +4 -4
  277. package/docs/contracts/namespace.md +4 -4
  278. package/docs/contracts/orchestration-dsl-v1.md +7 -7
  279. package/docs/contracts/package-self-orientation.md +12 -12
  280. package/docs/contracts/persona-schema.md +6 -6
  281. package/docs/contracts/pilot/language-and-tone.md +1 -1
  282. package/docs/contracts/plain-language-surface.md +117 -0
  283. package/docs/contracts/profile-system.md +3 -3
  284. package/docs/contracts/release-pr-gating.md +103 -0
  285. package/docs/contracts/role-experience.md +3 -3
  286. package/docs/contracts/rule-classification.md +13 -13
  287. package/docs/contracts/rule-interactions.md +4 -4
  288. package/docs/contracts/rule-interactions.yml +30 -30
  289. package/docs/contracts/rule-priority-hierarchy.md +13 -13
  290. package/docs/contracts/rule-router.md +2 -2
  291. package/docs/contracts/safety-model.md +1 -1
  292. package/docs/contracts/skill-distribution-channels.md +61 -0
  293. package/docs/contracts/skill-domains.md +2 -2
  294. package/docs/contracts/smoke-contracts.md +5 -5
  295. package/docs/contracts/telegraph-telemetry.md +83 -0
  296. package/docs/contracts/trust-and-safety.md +5 -5
  297. package/docs/contracts/ui-stack-extension.md +7 -7
  298. package/docs/contracts/ui-track-flow.md +9 -9
  299. package/docs/contracts/user-type-schema.md +4 -4
  300. package/docs/contracts/workflow-packs.md +4 -4
  301. package/docs/contracts/workspace-documents.md +4 -0
  302. package/docs/customization.md +28 -8
  303. package/docs/decisions/ADR-001-kernel-swap-deferred.md +6 -6
  304. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +11 -11
  305. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +2 -2
  306. package/docs/decisions/ADR-004-rule-governance-pruning.md +4 -4
  307. package/docs/decisions/ADR-005-subagent-worktrees.md +7 -7
  308. package/docs/decisions/ADR-011-domain-pack-readiness.md +6 -6
  309. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +3 -3
  310. package/docs/decisions/ADR-015-discovery-manifest-contract.md +3 -3
  311. package/docs/decisions/ADR-017-monorepo-physical-layout.md +10 -10
  312. package/docs/decisions/ADR-018-trust-and-safety-layer.md +6 -6
  313. package/docs/decisions/ADR-019-router-json-dist-location.md +2 -2
  314. package/docs/decisions/ADR-020-global-only-consumer-scope.md +2 -2
  315. package/docs/decisions/ADR-021-deployment-shape.md +3 -3
  316. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +1 -1
  317. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +2 -2
  318. package/docs/decisions/ADR-028-root-layout.md +7 -7
  319. package/docs/decisions/ADR-029-multi-workspace-deferred.md +2 -2
  320. package/docs/decisions/ADR-rule-kernel-and-router.md +5 -5
  321. package/docs/deploy/connector-setup.md +2 -2
  322. package/docs/deploy/policy-cookbook.md +2 -2
  323. package/docs/deploy/team-deployment-posture.md +20 -0
  324. package/docs/development.md +17 -17
  325. package/docs/distribution/registries.md +32 -0
  326. package/docs/distribution/registry-submissions.md +85 -0
  327. package/docs/distribution/telemetry-schema.md +1 -1
  328. package/docs/getting-started-by-role.md +45 -3
  329. package/docs/getting-started.md +2 -2
  330. package/docs/guidelines/agent-infra/5w2h-analysis.md +3 -3
  331. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  332. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +3 -3
  333. package/docs/guidelines/agent-infra/carve-out-predicates.md +3 -3
  334. package/docs/guidelines/agent-infra/critical-thinking.md +4 -4
  335. package/docs/guidelines/agent-infra/direct-answers-demos.md +1 -1
  336. package/docs/guidelines/agent-infra/first-principles.md +2 -2
  337. package/docs/guidelines/agent-infra/inversion-thinking.md +5 -5
  338. package/docs/guidelines/agent-infra/layered-settings.md +56 -2
  339. package/docs/guidelines/agent-infra/mental-models.md +3 -3
  340. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +2 -2
  341. package/docs/guidelines/agent-infra/rule-type-governance.md +1 -1
  342. package/docs/guidelines/agent-infra/scqa-framework.md +5 -5
  343. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +2 -2
  344. package/docs/guidelines/agent-infra/six-hats.md +3 -3
  345. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  346. package/docs/guidelines/agent-infra/systems-thinking.md +1 -1
  347. package/docs/guidelines/agent-infra/verify-before-complete-demos.md +1 -1
  348. package/docs/guidelines/augment-portability-patterns.md +4 -4
  349. package/docs/guidelines/cross-role-handoff.md +2 -2
  350. package/docs/guidelines/php/php-coding-patterns.md +1 -1
  351. package/docs/guidelines/prompt-templates.md +6 -6
  352. package/docs/maintainers/dev-mode.md +1 -1
  353. package/docs/mcp.md +1 -1
  354. package/docs/parity/bench.json +3 -3
  355. package/docs/parity/ruflo.md +2 -2
  356. package/docs/profiles.md +11 -11
  357. package/docs/quality.md +11 -11
  358. package/docs/safety.md +3 -3
  359. package/docs/setup/mcp-client-config.md +1 -1
  360. package/docs/setup/mcp-r2-bootstrap.md +1 -1
  361. package/docs/setup/mcp-server-docker.md +3 -3
  362. package/docs/setup/per-ide/windsurf.md +1 -1
  363. package/docs/skills-catalog.md +8 -7
  364. package/docs/troubleshooting.md +1 -1
  365. package/docs/walkthroughs/daily-workspace-a11y.md +87 -0
  366. package/llms.txt +7 -6
  367. package/package.json +1 -1
  368. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  369. package/scripts/_archive/README.md +2 -2
  370. package/scripts/_archive/_backfill_skill_domains.py +3 -3
  371. package/scripts/_archive/_bootstrap_tier_frontmatter.py +3 -3
  372. package/scripts/_archive/_p43_bodies.py +10 -10
  373. package/scripts/_archive/{_p43_compress.py → _p43_condense.py} +5 -5
  374. package/scripts/_archive/_p4_migrate.py +7 -7
  375. package/scripts/_archive/_phase2_shim_helper.py +1 -1
  376. package/scripts/_archive/_pilot_council_question.py +5 -5
  377. package/scripts/_cli/explain_last/inputs.py +1 -1
  378. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  379. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  380. package/scripts/_lib/agent_settings.py +195 -1
  381. package/scripts/_lib/agent_src.py +19 -19
  382. package/scripts/_lib/bench_ab_cache.py +162 -0
  383. package/scripts/_lib/bench_ab_scoring.py +209 -0
  384. package/scripts/_lib/{bench_caveman.py → bench_telegraph.py} +21 -21
  385. package/scripts/_lib/{bench_caveman_report.py → bench_telegraph_report.py} +21 -21
  386. package/scripts/_lib/claude_desktop_bundler.py +5 -5
  387. package/scripts/_lib/module_detection.py +223 -0
  388. package/scripts/_lib/scope_guard.sh +162 -0
  389. package/scripts/_phase4_bucket.py +3 -3
  390. package/scripts/_pilot_measure.py +4 -4
  391. package/scripts/_tmp_scan_framework_leakage.py +1 -1
  392. package/scripts/adoption_report.py +195 -0
  393. package/scripts/adoption_snapshot.py +219 -0
  394. package/scripts/adoption_status.py +166 -0
  395. package/scripts/ai-video/lib/parse-blueprint.sh +1 -1
  396. package/scripts/ai_council/advisors.py +5 -5
  397. package/scripts/ai_council/compile_corpus.py +1 -1
  398. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +3 -3
  399. package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_review.py +2 -2
  400. package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +1 -1
  401. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +1 -1
  402. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +1 -1
  403. package/scripts/ai_council/one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py +3 -3
  404. package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +1 -1
  405. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py +1 -1
  406. package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py +6 -6
  407. package/scripts/ai_council/one_off_archive/2026-05/_one_off_rebalancing_audit.py +1 -1
  408. package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +6 -6
  409. package/scripts/annotate_discovery.py +13 -13
  410. package/scripts/apply_modules_config.py +290 -0
  411. package/scripts/audit_adr_coverage.py +2 -2
  412. package/scripts/audit_auto_rules.py +2 -2
  413. package/scripts/audit_cloud_compatibility.py +3 -3
  414. package/scripts/audit_command_surface.py +9 -9
  415. package/scripts/audit_likelihood.py +2 -2
  416. package/scripts/audit_user_type_axis.py +2 -2
  417. package/scripts/bench_ab_cache_dispatch.py +68 -0
  418. package/scripts/bench_ab_clone.py +170 -0
  419. package/scripts/bench_ab_diff.py +227 -0
  420. package/scripts/bench_ab_integrity.py +143 -0
  421. package/scripts/bench_ab_run.py +235 -0
  422. package/scripts/bench_ab_task_runner.py +369 -0
  423. package/scripts/bench_ab_tracka_run.py +202 -0
  424. package/scripts/{bench_compress_memory.py → bench_condense_memory.py} +16 -16
  425. package/scripts/bench_run.py +33 -33
  426. package/scripts/bench_runner.py +2 -2
  427. package/scripts/bootstrap.sh +99 -0
  428. package/scripts/build_cloud_bundle.py +6 -6
  429. package/scripts/build_discovery_manifest.py +7 -7
  430. package/scripts/build_linear_digest.py +3 -3
  431. package/scripts/build_rule_trigger_matrix.py +8 -8
  432. package/scripts/chat_history.py +5 -5
  433. package/scripts/check_always_budget.py +11 -5
  434. package/scripts/check_augment_description_cap.py +3 -3
  435. package/scripts/check_cluster_patterns.py +2 -2
  436. package/scripts/check_command_count_messaging.py +3 -3
  437. package/scripts/{check_compression.py → check_condensation.py} +34 -34
  438. package/scripts/{check_compressed_paths.py → check_condensed_paths.py} +8 -8
  439. package/scripts/check_context_paths.py +7 -7
  440. package/scripts/check_council_layout.py +2 -2
  441. package/scripts/check_council_references.py +9 -9
  442. package/scripts/check_iron_law_prominence.py +2 -2
  443. package/scripts/check_kernel_rule_bundle.py +2 -2
  444. package/scripts/check_module_management_neutral.py +149 -0
  445. package/scripts/check_no_roadmap_refs.py +9 -9
  446. package/scripts/check_portability.py +3 -3
  447. package/scripts/check_public_catalog_links.py +4 -4
  448. package/scripts/check_references.py +7 -6
  449. package/scripts/check_release_pr_shape.py +112 -0
  450. package/scripts/check_reply_consistency.py +3 -3
  451. package/scripts/check_safety_floor_untouched.py +1 -1
  452. package/scripts/check_template_pin_drift.py +5 -5
  453. package/scripts/check_token_optimizer_freshness.py +3 -3
  454. package/scripts/ci_status.py +301 -0
  455. package/scripts/ci_time_ratio.py +1 -1
  456. package/scripts/cleanup_other_scope.sh +146 -0
  457. package/scripts/compile_router.py +10 -10
  458. package/scripts/{compress.py → condense.py} +64 -64
  459. package/scripts/condense.sh +18 -0
  460. package/scripts/{compress_memory.py → condense_memory.py} +33 -33
  461. package/scripts/config/presets.py +2 -2
  462. package/scripts/config/profiles.py +1 -1
  463. package/scripts/cost_by_conversation.py +3 -3
  464. package/scripts/cost_summary.py +7 -7
  465. package/scripts/count_token_optimizer_usage.sh +1 -1
  466. package/scripts/gen_discovery_baseline.py +5 -5
  467. package/scripts/generate_index.py +6 -6
  468. package/scripts/generate_ownership_matrix.py +10 -10
  469. package/scripts/generate_pack_manifests.py +1 -1
  470. package/scripts/ghostwriter_fixture_allowlist.txt +1 -1
  471. package/scripts/install +3 -3
  472. package/scripts/install-hooks.sh +6 -6
  473. package/scripts/install.py +273 -45
  474. package/scripts/install.sh +187 -1
  475. package/scripts/inventory_frontmatter.py +2 -2
  476. package/scripts/iron_law_sha.py +3 -3
  477. package/scripts/lint_agents_layout.py +14 -7
  478. package/scripts/lint_agents_md.py +4 -4
  479. package/scripts/lint_archived_skills.py +3 -3
  480. package/scripts/lint_artefact_frontmatter.py +2 -2
  481. package/scripts/lint_bench_ab.py +172 -0
  482. package/scripts/lint_bench_corpus.py +1 -1
  483. package/scripts/lint_command_tiers.py +5 -5
  484. package/scripts/lint_context_spine_usage.py +1 -1
  485. package/scripts/lint_framework_leakage.py +7 -7
  486. package/scripts/lint_framework_leakage_allowlist.json +152 -84
  487. package/scripts/lint_ghostwriter_source.py +3 -3
  488. package/scripts/lint_handoffs.py +1 -1
  489. package/scripts/lint_load_context.py +11 -11
  490. package/scripts/lint_media_policy_linkage.py +5 -5
  491. package/scripts/lint_namespace.py +1 -1
  492. package/scripts/lint_no_new_atomic_commands.py +2 -2
  493. package/scripts/lint_orchestration_dsl.py +1 -1
  494. package/scripts/lint_pack_boundaries.py +2 -2
  495. package/scripts/lint_persona_governance.py +4 -4
  496. package/scripts/lint_role_experiences.py +237 -0
  497. package/scripts/lint_rule_interactions.py +2 -2
  498. package/scripts/lint_rule_tiers.py +1 -1
  499. package/scripts/lint_trust_coherence.py +2 -2
  500. package/scripts/mcp_registry_submit.sh +187 -0
  501. package/scripts/mcp_server/tools.py +1 -1
  502. package/scripts/measure_frugality_savings.py +10 -10
  503. package/scripts/measure_patterns.py +1 -1
  504. package/scripts/measure_projection_bytes.py +5 -5
  505. package/scripts/measure_rule_budget.py +3 -3
  506. package/scripts/measure_skill_reduction.py +1 -1
  507. package/scripts/memory_lookup.py +1 -1
  508. package/scripts/memory_status.py +2 -2
  509. package/scripts/migrate_command_suggestions.py +3 -3
  510. package/scripts/mine_session.py +1 -1
  511. package/scripts/move_artefact.py +3 -3
  512. package/scripts/new_skill.py +2 -2
  513. package/scripts/pack_mcp_content.py +9 -9
  514. package/scripts/plan_physical_move.py +6 -6
  515. package/scripts/print_required_checks.py +196 -0
  516. package/scripts/probe_skill_registration.py +413 -0
  517. package/scripts/propose_modules_config.py +145 -0
  518. package/scripts/prototype_lint_contradictions.py +1 -1
  519. package/scripts/recruit_preflight.sh +152 -0
  520. package/scripts/refine_ticket_detect.py +3 -3
  521. package/scripts/release.py +20 -0
  522. package/scripts/render_benchmark_md.py +308 -0
  523. package/scripts/roadmap_progress_hook.py +1 -1
  524. package/scripts/run_skill_evals.py +2 -2
  525. package/scripts/runtime_registry.py +4 -4
  526. package/scripts/schemas/command.schema.json +4 -4
  527. package/scripts/schemas/rule.schema.json +5 -5
  528. package/scripts/schemas/skill.schema.json +3 -3
  529. package/scripts/schemas/user-type.schema.json +1 -1
  530. package/scripts/score_skill_selection.py +1 -1
  531. package/scripts/skill_collision_clusters.py +2 -2
  532. package/scripts/skill_linter.py +81 -81
  533. package/scripts/skill_overlap.py +5 -5
  534. package/scripts/skill_tools/audit_persona_coverage.py +2 -2
  535. package/scripts/skill_tools/audit_user_type_coverage.py +2 -2
  536. package/scripts/skill_tools/run_block_d_eval.py +1 -1
  537. package/scripts/skill_tools/score_skill_relevance.py +1 -1
  538. package/scripts/skill_tools/suggest_skill_for_task.py +1 -1
  539. package/scripts/skill_trigger_eval.py +3 -3
  540. package/scripts/smoke/kernel.sh +7 -1
  541. package/scripts/smoke/router.sh +5 -5
  542. package/scripts/smoke/skills.sh +1 -1
  543. package/scripts/smoke_quickstart.py +1 -1
  544. package/scripts/snapshot_agent_outputs.py +3 -3
  545. package/scripts/spotcheck_thin_root.py +1 -1
  546. package/scripts/{caveman_stats.py → telegraph_stats.py} +18 -18
  547. package/scripts/update_counts.py +1 -1
  548. package/scripts/validate_decision_engine.py +1 -1
  549. package/scripts/validate_frontmatter.py +1 -1
  550. package/scripts/validate_safe_paths.py +3 -3
  551. package/scripts/{validate_caveman_carveouts.py → validate_telegraph_carveouts.py} +7 -7
  552. package/scripts/verify_roadmap_closure.py +6 -6
  553. package/templates/consumer-settings/ONBOARDING.md +41 -0
  554. package/.agent-src/commands/install-via-agent.md +0 -129
  555. package/.agent-src/skills/compress-memory/SKILL.md +0 -131
  556. package/dist/ui/assets/index-D-DY1ywI.js +0 -35
  557. package/dist/ui/assets/index-D-DY1ywI.js.map +0 -1
  558. package/dist/ui/assets/index-Dqfhmg-d.css +0 -1
  559. package/docs/adrs/caveman/README.md +0 -9
  560. package/docs/contracts/caveman-telemetry.md +0 -83
  561. package/scripts/compress.sh +0 -18
@@ -32,8 +32,8 @@ from pathlib import Path
32
32
  from typing import Dict, List, Set
33
33
 
34
34
  ROOT = Path(__file__).resolve().parents[2]
35
- DEFAULT_USER_TYPES = ROOT / ".agent-src.uncompressed" / "user-types"
36
- DEFAULT_SEARCH_ROOT = ROOT / ".agent-src.uncompressed"
35
+ DEFAULT_USER_TYPES = ROOT / ".agent-src.uncondensed" / "user-types"
36
+ DEFAULT_SEARCH_ROOT = ROOT / ".agent-src.uncondensed"
37
37
  REFERENCE_THRESHOLD = 1 # user-type with 0 references → flagged.
38
38
 
39
39
  # Matches `--user-type=<id>` in command markdown, skill prose, docs.
@@ -33,7 +33,7 @@ from skill_tools.suggest_skill_for_task import suggest # type: ignore
33
33
 
34
34
  ROOT = Path(__file__).resolve().parents[2]
35
35
  CORPUS_DIR = ROOT / "agents" / "eval-corpora" / "block-d"
36
- PERSONAS_DIR = ROOT / ".agent-src.uncompressed" / "personas"
36
+ PERSONAS_DIR = ROOT / ".agent-src.uncondensed" / "personas"
37
37
 
38
38
 
39
39
  def _eval_d2(corpus: Path, skills_dir: Path) -> Dict[str, object]:
@@ -33,7 +33,7 @@ from pathlib import Path
33
33
  from typing import Dict, Iterable, List, Tuple
34
34
 
35
35
  ROOT = Path(__file__).resolve().parents[2]
36
- DEFAULT_SKILLS_DIR = ROOT / ".agent-src.uncompressed" / "skills"
36
+ DEFAULT_SKILLS_DIR = ROOT / ".agent-src.uncondensed" / "skills"
37
37
  TOKEN_RE = re.compile(r"[a-z][a-z0-9]+")
38
38
  STOPWORDS = frozenset({
39
39
  "the", "a", "an", "and", "or", "but", "of", "for", "with", "to", "in",
@@ -31,7 +31,7 @@ from skill_tools.score_skill_relevance import ( # type: ignore
31
31
  )
32
32
 
33
33
  ROOT = Path(__file__).resolve().parents[2]
34
- DEFAULT_PERSONAS = ROOT / ".agent-src.uncompressed" / "personas"
34
+ DEFAULT_PERSONAS = ROOT / ".agent-src.uncondensed" / "personas"
35
35
 
36
36
 
37
37
  def _persona_status(rows: List[Dict[str, object]]) -> Dict[str, str]:
@@ -34,7 +34,7 @@ from pathlib import Path
34
34
  from typing import Callable, IO, Protocol
35
35
 
36
36
  PROJECT_ROOT = Path(__file__).resolve().parent.parent
37
- SKILLS_SOURCE = PROJECT_ROOT / ".agent-src.uncompressed" / "skills"
37
+ SKILLS_SOURCE = PROJECT_ROOT / ".agent-src.uncondensed" / "skills"
38
38
  RESULTS_DIR = PROJECT_ROOT / "internal" / "evals" / "results"
39
39
  DEFAULT_MODEL = "claude-sonnet-4-5"
40
40
 
@@ -153,7 +153,7 @@ def load_skill_metas(root: Path | None = None) -> list[SkillMeta]:
153
153
  """Parse name + description from every SKILL.md frontmatter under root.
154
154
 
155
155
  If ``root`` is None, the package's ``artefact_roots()`` are scanned so
156
- discovery works across the monorepo's per-pack ``.agent-src.uncompressed/``
156
+ discovery works across the monorepo's per-pack ``.agent-src.uncondensed/``
157
157
  trees. A single explicit ``root`` keeps tests that mock a sub-tree working
158
158
  unchanged.
159
159
  """
@@ -570,7 +570,7 @@ def build_arg_parser() -> argparse.ArgumentParser:
570
570
  "--triggers",
571
571
  type=Path,
572
572
  default=None,
573
- help="Path to evals/triggers.json. Default: .agent-src.uncompressed/skills/<skill>/evals/triggers.json",
573
+ help="Path to evals/triggers.json. Default: .agent-src.uncondensed/skills/<skill>/evals/triggers.json",
574
574
  )
575
575
  parser.add_argument(
576
576
  "--output",
@@ -18,7 +18,13 @@ set -euo pipefail
18
18
 
19
19
  EXPECTED_KERNEL_COUNT=10
20
20
  EXPECTED_FENCE_CARRIERS=9
21
- EXPECTED_BREACHES=2
21
+ # Bumped 2 → 3 in v4.0.0: the `fix(authority): block execution offers
22
+ # after roadmap/vision artifact save` commit (d30d441e) pushed
23
+ # scope-control and commit-policy past their per-rule caps; kernel-bucket
24
+ # now sits at 26 538 chars (cap 26 000). The shrinkage belongs in its
25
+ # own kernel-rule-edit PR per `scope-control § Kernel-rule edits` —
26
+ # this PR ships v4 without re-doing the kernel.
27
+ EXPECTED_BREACHES=3
22
28
  EXEMPT_FROM_FENCE="agent-authority"
23
29
 
24
30
  quiet="${SMOKE_QUIET:-0}"
@@ -49,17 +49,17 @@ def resolve(ref):
49
49
  # Legacy projected path first (fast path), then multi-root source.
50
50
  for p in (
51
51
  f".agent-src/skills/{rest}/SKILL.md",
52
- f".agent-src.uncompressed/skills/{rest}/SKILL.md",
52
+ f".agent-src.uncondensed/skills/{rest}/SKILL.md",
53
53
  ):
54
54
  if os.path.exists(p):
55
55
  return p, "skill"
56
56
  hit = resolve_logical(f"skills/{rest}/SKILL.md")
57
- return (str(hit) if hit else f".agent-src.uncompressed/skills/{rest}/SKILL.md"), "skill"
57
+ return (str(hit) if hit else f".agent-src.uncondensed/skills/{rest}/SKILL.md"), "skill"
58
58
  if kind == "command":
59
59
  for p in (
60
60
  f".agent-src/commands/{rest}.md",
61
- f".agent-src.uncompressed/commands/{rest}.md",
62
- f".agent-src.uncompressed/commands/{rest}/INDEX.md",
61
+ f".agent-src.uncondensed/commands/{rest}.md",
62
+ f".agent-src.uncondensed/commands/{rest}/INDEX.md",
63
63
  ):
64
64
  if os.path.exists(p):
65
65
  return p, "command"
@@ -67,7 +67,7 @@ def resolve(ref):
67
67
  hit = resolve_logical(logical)
68
68
  if hit:
69
69
  return str(hit), "command"
70
- return f".agent-src.uncompressed/commands/{rest}.md", "command"
70
+ return f".agent-src.uncondensed/commands/{rest}.md", "command"
71
71
  if kind == "guideline":
72
72
  return f"docs/guidelines/{rest}.md", "guideline"
73
73
  if kind == "contract":
@@ -2,7 +2,7 @@
2
2
  # scripts/smoke/skills.sh — skills-tier smoke (step-11 Phase 3 Step 5).
3
3
  #
4
4
  # Picks 5 random skills (deterministic seed = epoch day) from
5
- # .agent-src.uncompressed/skills/*/SKILL.md and asserts:
5
+ # .agent-src.uncondensed/skills/*/SKILL.md and asserts:
6
6
  # 1. SKILL.md exists.
7
7
  # 2. Frontmatter parses + validates against scripts/schemas/skill.schema.json.
8
8
  # 3. `name:` field matches the parent directory name.
@@ -89,7 +89,7 @@ def _check_decision_engine_block(settings: Path) -> int:
89
89
  from _lib.agent_src import resolve_logical # noqa: E402
90
90
 
91
91
  template_scripts = resolve_logical("templates/scripts") or (
92
- ROOT / ".agent-src.uncompressed" / "templates" / "scripts"
92
+ ROOT / ".agent-src.uncondensed" / "templates" / "scripts"
93
93
  )
94
94
  sys.path.insert(0, str(template_scripts))
95
95
  try:
@@ -70,10 +70,10 @@ def _logical_path(rel: str) -> str:
70
70
  Non-source paths are returned unchanged.
71
71
  """
72
72
  posix = rel.replace("\\", "/")
73
- if posix.startswith(".agent-src.uncompressed/"):
74
- return posix[len(".agent-src.uncompressed/"):]
73
+ if posix.startswith(".agent-src.uncondensed/"):
74
+ return posix[len(".agent-src.uncondensed/"):]
75
75
  if posix.startswith("packages/"):
76
- marker = "/.agent-src.uncompressed/"
76
+ marker = "/.agent-src.uncondensed/"
77
77
  idx = posix.find(marker)
78
78
  if idx != -1:
79
79
  return posix[idx + len(marker):]
@@ -56,7 +56,7 @@ file alone, set `"pointer_used": null` and lower confidence.
56
56
  def main() -> int:
57
57
  package_root = (ROOT / "AGENTS.md").read_text(encoding="utf-8")
58
58
  consumer_template = (
59
- ROOT / ".agent-src.uncompressed" / "templates" / "AGENTS.md"
59
+ ROOT / ".agent-src.uncondensed" / "templates" / "AGENTS.md"
60
60
  ).read_text(encoding="utf-8")
61
61
 
62
62
  artefact = (
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env python3
2
- """Caveman per-session / per-conversation / lifetime token-delta lens.
2
+ """Telegraph per-session / per-conversation / lifetime token-delta lens.
3
3
 
4
4
  Reads sessions.jsonl, groups by sessionId + conversation_id, emits per-row
5
- caveman delta tokens. Honors the suspended-multiplier contract in
6
- `docs/contracts/caveman-telemetry.md` (delta = 0 while suspended).
5
+ telegraph delta tokens. Honors the suspended-multiplier contract in
6
+ `docs/contracts/telegraph-telemetry.md` (delta = 0 while suspended).
7
7
  """
8
8
  from __future__ import annotations
9
9
  import argparse, json, sys
@@ -12,9 +12,9 @@ from pathlib import Path
12
12
 
13
13
  REPO_ROOT = Path(__file__).resolve().parent.parent
14
14
  DEFAULT_JSONL = REPO_ROOT / "agents" / "cost-tracking" / "sessions.jsonl"
15
- TELEMETRY_DOC = REPO_ROOT / "docs" / "contracts" / "caveman-telemetry.md"
15
+ TELEMETRY_DOC = REPO_ROOT / "docs" / "contracts" / "telegraph-telemetry.md"
16
16
 
17
- # Mirrors `docs/contracts/caveman-telemetry.md` `v1` constants.
17
+ # Mirrors `docs/contracts/telegraph-telemetry.md` `v1` constants.
18
18
  MULTIPLIER_VERSION = "v1"
19
19
  MULTIPLIER_VALUE = 0.9155
20
20
  MULTIPLIER_ACTIVE = False # suspended pending v2
@@ -39,17 +39,17 @@ def _delta(row: dict) -> int:
39
39
  """Per-row delta with suspended-multiplier guard."""
40
40
  if not MULTIPLIER_ACTIVE:
41
41
  return 0
42
- explicit = row.get("caveman_delta_tokens")
42
+ explicit = row.get("telegraph_delta_tokens")
43
43
  if isinstance(explicit, (int, float)):
44
44
  return int(explicit)
45
- compressed = row.get("caveman_compressed_tokens")
46
- if isinstance(compressed, (int, float)) and compressed > 0:
47
- return int(compressed * MULTIPLIER_VALUE - compressed)
45
+ condensed = row.get("telegraph_condensed_tokens")
46
+ if isinstance(condensed, (int, float)) and condensed > 0:
47
+ return int(condensed * MULTIPLIER_VALUE - condensed)
48
48
  return 0
49
49
 
50
50
 
51
51
  def aggregate(rows: list[dict]) -> dict:
52
- _zero = lambda: {"sessions": 0, "delta_tokens": 0, "compressed_tokens": 0}
52
+ _zero = lambda: {"sessions": 0, "delta_tokens": 0, "condensed_tokens": 0}
53
53
  by_session: dict[str, dict] = defaultdict(_zero)
54
54
  by_conv: dict[str, dict] = defaultdict(_zero)
55
55
  lifetime = _zero()
@@ -57,13 +57,13 @@ def aggregate(rows: list[dict]) -> dict:
57
57
  sid = str(row.get("sessionId") or row.get("session_id") or "unknown")
58
58
  cid = str(row.get("conversation_id") or "unknown")
59
59
  delta = _delta(row)
60
- comp = int(row.get("caveman_compressed_tokens") or 0)
60
+ comp = int(row.get("telegraph_condensed_tokens") or 0)
61
61
  for bucket in (by_session[sid], by_conv[cid], lifetime):
62
62
  bucket["sessions"] += 1
63
63
  bucket["delta_tokens"] += delta
64
- bucket["compressed_tokens"] += comp
64
+ bucket["condensed_tokens"] += comp
65
65
  return {
66
- "schema_version": "caveman-stats/v1",
66
+ "schema_version": "telegraph-stats/v1",
67
67
  "multiplier_version": MULTIPLIER_VERSION,
68
68
  "multiplier_value": MULTIPLIER_VALUE,
69
69
  "multiplier_active": MULTIPLIER_ACTIVE,
@@ -75,26 +75,26 @@ def aggregate(rows: list[dict]) -> dict:
75
75
 
76
76
  def render_text(report: dict) -> str:
77
77
  lines = [
78
- f"caveman-stats {report['schema_version']} · multiplier {report['multiplier_version']}"
78
+ f"telegraph-stats {report['schema_version']} · multiplier {report['multiplier_version']}"
79
79
  f" ({'ACTIVE' if report['multiplier_active'] else 'SUSPENDED'}) · "
80
80
  f"value {report['multiplier_value']:.4f}",
81
81
  "",
82
82
  f" lifetime: {report['lifetime']['sessions']} sessions · "
83
83
  f"delta_tokens = {report['lifetime']['delta_tokens']:+,} · "
84
- f"compressed_tokens = {report['lifetime']['compressed_tokens']:,}",
84
+ f"condensed_tokens = {report['lifetime']['condensed_tokens']:,}",
85
85
  "",
86
86
  " by conversation:",
87
87
  ]
88
88
  for cid, b in sorted(report["by_conversation"].items()):
89
89
  lines.append(
90
90
  f" {cid}: {b['sessions']} sessions · "
91
- f"delta = {b['delta_tokens']:+,} · compressed = {b['compressed_tokens']:,}"
91
+ f"delta = {b['delta_tokens']:+,} · condensed = {b['condensed_tokens']:,}"
92
92
  )
93
93
  if not report["multiplier_active"]:
94
94
  lines += [
95
95
  "",
96
- " Note: multiplier suspended — see docs/contracts/caveman-telemetry.md",
97
- " (delta_tokens = 0 until kill-criterion satisfied in caveman-v2).",
96
+ " Note: multiplier suspended — see docs/contracts/telegraph-telemetry.md",
97
+ " (delta_tokens = 0 until kill-criterion satisfied in telegraph-v2).",
98
98
  ]
99
99
  return "\n".join(lines) + "\n"
100
100
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Sync package-content counts (skills/rules/commands/guidelines) across docs.
3
3
 
4
- Source of truth: `.agent-src.uncompressed/`.
4
+ Source of truth: `.agent-src.uncondensed/`.
5
5
 
6
6
  Target files have explicit regex patterns for each count mention — no
7
7
  fuzzy matching, no risk of touching unrelated numbers.
@@ -34,7 +34,7 @@ from _lib.agent_src import resolve_logical # noqa: E402
34
34
  # to the legacy root for pre-move checkouts.
35
35
  _template_scripts = resolve_logical("templates/scripts")
36
36
  TEMPLATE_SCRIPTS = _template_scripts or (
37
- REPO_ROOT / ".agent-src.uncompressed" / "templates" / "scripts"
37
+ REPO_ROOT / ".agent-src.uncondensed" / "templates" / "scripts"
38
38
  )
39
39
  if str(TEMPLATE_SCRIPTS) not in sys.path:
40
40
  sys.path.insert(0, str(TEMPLATE_SCRIPTS))
@@ -451,7 +451,7 @@ def _main() -> int:
451
451
  if not roots:
452
452
  print(
453
453
  "error: no artefact roots found "
454
- "(checked .agent-src.uncompressed/ and packages/*/.agent-src.uncompressed/)",
454
+ "(checked .agent-src.uncondensed/ and packages/*/.agent-src.uncondensed/)",
455
455
  file=sys.stderr,
456
456
  )
457
457
  return 2
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env python3
2
2
  """Sensitive-path denylist — refuses files that almost certainly hold secrets or PII.
3
3
 
4
- Phase 0 of step-16-caveman-substance. Gates Phase 2 (`scripts/compress_memory.py`):
4
+ Phase 0 of step-16-telegraph-substance. Gates Phase 2 (`scripts/condense_memory.py`):
5
5
  any consumer-supplied path must pass `assert_safe()` before bytes are read or
6
6
  shipped to a third-party API.
7
7
 
8
- Ported from Caveman `plugins/caveman/skills/caveman-compress/scripts/compress.py`
8
+ Ported from Telegraph `plugins/telegraph/skills/telegraph-condense/scripts/condense.py`
9
9
  (upstream `63a91ec`). Adapted to repo conventions: explicit `SensitivePathError`,
10
10
  CLI entry point, no `anthropic` import.
11
11
 
@@ -30,7 +30,7 @@ class SensitivePathError(ValueError):
30
30
 
31
31
 
32
32
  # Filenames that almost certainly hold secrets or PII. Matched against the
33
- # basename only (case-insensitive). Compressing or shipping these to an LLM API
33
+ # basename only (case-insensitive). Condenseing or shipping these to an LLM API
34
34
  # is a third-party data boundary developers on sensitive codebases cannot cross.
35
35
  SENSITIVE_BASENAME_REGEX = re.compile(
36
36
  r"(?ix)^("
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env python3
2
- """Mechanical carve-out validator for caveman-compressed replies.
2
+ """Mechanical carve-out validator for telegraph-condensed replies.
3
3
 
4
- Given a pre-compression reply and a post-compression reply, assert that
5
- every carve-out region from `.agent-src.uncompressed/rules/caveman-speak.md`
4
+ Given a pre-condensation reply and a post-condensation reply, assert that
5
+ every carve-out region from `.agent-src.uncondensed/rules/telegraph-speak.md`
6
6
  § Carve-outs survived byte-for-byte:
7
7
 
8
8
  1. Triple-backtick code blocks (any language).
@@ -96,7 +96,7 @@ def validate(pre: str, post: str) -> list[tuple[str, list[str]]]:
96
96
 
97
97
 
98
98
  def _render(failures: list[tuple[str, list[str]]]) -> str:
99
- out = ["caveman carve-out validator: DRIFT DETECTED", ""]
99
+ out = ["telegraph carve-out validator: DRIFT DETECTED", ""]
100
100
  for name, diff in failures:
101
101
  out.append(f"❌ carve-out `{name}` drifted:")
102
102
  out.extend(diff)
@@ -106,8 +106,8 @@ def _render(failures: list[tuple[str, list[str]]]) -> str:
106
106
 
107
107
  def main(argv: list[str] | None = None) -> int:
108
108
  p = argparse.ArgumentParser(description=__doc__.splitlines()[0])
109
- p.add_argument("pre", type=Path, help="Pre-compression reply file.")
110
- p.add_argument("post", type=Path, help="Post-compression reply file.")
109
+ p.add_argument("pre", type=Path, help="Pre-condensation reply file.")
110
+ p.add_argument("post", type=Path, help="Post-condensation reply file.")
111
111
  args = p.parse_args(argv)
112
112
  if not args.pre.is_file():
113
113
  print(f"pre file not found: {args.pre}", file=sys.stderr)
@@ -121,7 +121,7 @@ def main(argv: list[str] | None = None) -> int:
121
121
  if failures:
122
122
  print(_render(failures))
123
123
  return 1
124
- print("caveman carve-out validator: all carve-outs preserved ✅")
124
+ print("telegraph carve-out validator: all carve-outs preserved ✅")
125
125
  return 0
126
126
 
127
127
 
@@ -42,7 +42,7 @@ HEADING_PAT = re.compile(r"^##+\s+(.+)$")
42
42
 
43
43
  PATH_HINT = re.compile(
44
44
  r"^(scripts/|docs/|agents/|templates/|"
45
- r"\.agent-src\.uncompressed/|\.agent-src/|\.augment/|\.claude/|\.cursor/|"
45
+ r"\.agent-src\.uncondensed/|\.agent-src/|\.augment/|\.claude/|\.cursor/|"
46
46
  r"taskfiles/|Taskfile)"
47
47
  )
48
48
  PATH_SHAPED = re.compile(r"^[\w.-]+/.+|\.[a-z]{1,5}$")
@@ -191,9 +191,9 @@ def verify_task(target: str) -> bool:
191
191
  def verify_slash_cmd(name: str) -> bool:
192
192
  base = name.split(":")[0]
193
193
  candidates = [
194
- REPO / ".agent-src.uncompressed" / "commands" / f"{base}.md",
195
- REPO / ".agent-src.uncompressed" / "commands" / base,
196
- REPO / ".agent-src.uncompressed" / "skills" / base,
194
+ REPO / ".agent-src.uncondensed" / "commands" / f"{base}.md",
195
+ REPO / ".agent-src.uncondensed" / "commands" / base,
196
+ REPO / ".agent-src.uncondensed" / "skills" / base,
197
197
  REPO / ".claude" / "skills" / base,
198
198
  ]
199
199
  return any(c.exists() for c in candidates)
@@ -202,7 +202,7 @@ def verify_slash_cmd(name: str) -> bool:
202
202
  def verify_heading(heading: str) -> bool:
203
203
  # Look for the heading text in skills/rules/contexts as evidence of pattern adoption
204
204
  pattern = re.compile(rf"^##+\s+{re.escape(heading)}\b", re.MULTILINE)
205
- for root in (REPO / ".agent-src.uncompressed", REPO / "agents", REPO / "docs"):
205
+ for root in (REPO / ".agent-src.uncondensed", REPO / "agents", REPO / "docs"):
206
206
  if not root.exists():
207
207
  continue
208
208
  for f in root.rglob("*.md"):
@@ -219,7 +219,7 @@ def verify_concept(name: str) -> bool:
219
219
  try:
220
220
  r = subprocess.run(
221
221
  ["git", "grep", "-l", "-w", name, "--",
222
- ".agent-src.uncompressed/", "docs/", "scripts/", "agents/settings/contexts/"],
222
+ ".agent-src.uncondensed/", "docs/", "scripts/", "agents/settings/contexts/"],
223
223
  cwd=REPO, capture_output=True, text=True, timeout=15,
224
224
  )
225
225
  return bool(r.stdout.strip())
@@ -0,0 +1,41 @@
1
+ # Onboarding — using `event4u/agent-config` in this project
2
+
3
+ A short tour for new developers joining a project that ships with `event4u/agent-config`.
4
+
5
+ ## What you just installed
6
+
7
+ A shared agent-configuration package — skills, rules, commands, and guidelines that make AI coding assistants (Claude Code, Augment, Cursor, Cline, Windsurf, Copilot, Gemini CLI) behave consistently across this project. Detail: [`agents/reference/docs/onboarding.md`](../../agents/reference/docs/onboarding.md) in the package source.
8
+
9
+ ## How the AI tools see it
10
+
11
+ Each AI tool reads its own subtree under the project root — `.claude/skills/`, `.augment/`, `.cursor/rules/`, `.clinerules/`, `.windsurf/rules/`, `.github/copilot-instructions.md`. The installer projects the same content into each subtree from the canonical source so the agent behaves the same in every tool.
12
+
13
+ ## When something looks wrong — read this first
14
+
15
+ The package has well-known **harness behaviours** that look like bugs but are not. Before opening an issue or rolling back, check the [`harness-expectations`](../../docs/contracts/harness-expectations.md) contract:
16
+
17
+ 1. **Sibling-plugin namespaces** — skills like `codex:*` or `cc-gemini-plugin:*` are from other AI plugins, not from this package.
18
+ 2. **Deferred tools** — the harness exposes some tools (TaskCreate, WebFetch, MCP tools) only after `ToolSearch` for context-budget reasons. Not a package bug.
19
+ 3. **Duplicate skill registration** — same skill showing twice usually means a stale install at the **other scope** (user-global vs project-local). Run `task probe:skills` to confirm, then `bash scripts/cleanup_other_scope.sh --confirm` to clean.
20
+
21
+ The first step on every "this looks broken" report is:
22
+
23
+ ```bash
24
+ task probe:skills
25
+ ```
26
+
27
+ This surfaces every registration across all six tools and flags `DUPLICATE` / `DRIFT` findings before you go further. Background: [`docs/contracts/install-scopes.md`](../../docs/contracts/install-scopes.md) + [`docs/contracts/skill-distribution-channels.md`](../../docs/contracts/skill-distribution-channels.md).
28
+
29
+ ## Next steps
30
+
31
+ - Run `agent-config setup` to open the GUI wizard if you haven't.
32
+ - Read [`AGENTS.md`](../../AGENTS.md) — the universal cross-tool contract.
33
+ - Pick a starter command: `/work` to plan, `/implement-ticket` to execute, `/commit` to ship.
34
+ - If you maintain the package itself: [`AGENTS.md` § Emergency triage](../../AGENTS.md) and [`docs/customization.md`](../../docs/customization.md) point at the rest.
35
+
36
+ ## See also
37
+
38
+ - [`docs/contracts/harness-expectations.md`](../../docs/contracts/harness-expectations.md) — "looks like a bug, isn't" diagnostics.
39
+ - [`docs/contracts/install-scopes.md`](../../docs/contracts/install-scopes.md) — when to use project-local vs user-global.
40
+ - [`docs/customization.md` § Troubleshooting](../../docs/customization.md#troubleshooting) — the troubleshooting front door.
41
+ - [`agents/reference/docs/onboarding.md`](../../agents/reference/docs/onboarding.md) — the longer, package-side onboarding doc.
@@ -1,129 +0,0 @@
1
- ---
2
- name: install-via-agent
3
- tier: 2
4
- skills: []
5
- description: Drive `@event4u/agent-config` installer through its JSON agent-mode protocol — turn-by-turn workspace + pack selection without TTY.
6
- disable-model-invocation: true
7
- suggestion:
8
- eligible: true
9
- trigger_description: "install @event4u/agent-config in this project via agent mode, headless install, no TTY"
10
- trigger_context: "user wants to install or re-install @event4u/agent-config and the agent should drive the picker (not a human at a terminal)"
11
- workspaces:
12
- - agent-config-maintainer
13
- - engineering
14
- packs:
15
- - meta
16
- lifecycle: active
17
- trust:
18
- level: core
19
- confidence: high
20
- human_review_required: false
21
- install:
22
- default: false
23
- removable: true
24
- ---
25
-
26
- # /install-via-agent
27
-
28
- Drive the `@event4u/agent-config` installer through its **agent-mode**
29
- protocol — a JSON-over-stdio state machine that lets an LLM agent
30
- pick workspaces + packs turn-by-turn without a TTY.
31
-
32
- Contract: [`docs/contracts/installer-agent-mode.md`](../docs/contracts/installer-agent-mode.md).
33
- Architecture: [ADR-016](../../docs/decisions/ADR-016-installer-architecture.md) § 4, § 6.
34
-
35
- ## When to use
36
-
37
- - Headless / CI install where no human is at a keyboard.
38
- - Re-install with a different workspace + pack mix.
39
- - Demonstrating the protocol for documentation or smoke tests.
40
-
41
- For interactive install with a human, run `npx @event4u/agent-config init`
42
- in a real terminal — the installer auto-detects the TTY and renders
43
- the `@inquirer/prompts` picker.
44
-
45
- ## Steps
46
-
47
- ### 1. Locate the installer
48
-
49
- ```bash
50
- which agent-config-installer # global install
51
- ls node_modules/.bin/agent-config-installer # local install
52
- # OR run from monorepo dev:
53
- node packages/core/installer/dist/cli.js --version
54
- ```
55
-
56
- ### 2. Turn 1 — request the first question
57
-
58
- ```bash
59
- agent-config-installer init --agent --dry-run
60
- ```
61
-
62
- The CLI emits a single JSON line:
63
-
64
- ```json
65
- {"status":"question","protocol_version":1,"id":"q1.workspaces", … "next_call":"init --agent --answer q1.workspaces=<value>"}
66
- ```
67
-
68
- Parse `choices[]` and pick the workspaces the project needs (multi:
69
- comma-separated values, e.g. `engineering,product`).
70
-
71
- ### 3. Turn 2 — answer workspaces, request pack list
72
-
73
- Execute the `next_call` substituting `<value>`:
74
-
75
- ```bash
76
- agent-config-installer init --agent --dry-run --answer q1.workspaces=engineering
77
- ```
78
-
79
- Response:
80
-
81
- ```json
82
- {"status":"question","id":"q2.packs", … "next_call":"… --answer q1.workspaces=engineering --answer q2.packs=<value>"}
83
- ```
84
-
85
- Pick from `choices[]`. The list is already scoped to the workspaces
86
- chosen in turn 1.
87
-
88
- ### 4. Turn 3 — answer packs, possibly confirm auto-added
89
-
90
- ```bash
91
- agent-config-installer init --agent --dry-run --answer q1.workspaces=engineering --answer q2.packs=engineering-base,php
92
- ```
93
-
94
- Two terminal cases:
95
-
96
- - **`done`** — selection complete, no auto-added packs:
97
-
98
- ```json
99
- {"status":"done","summary":{"files_written":83,"lockfile_sha256":"…"}}
100
- ```
101
-
102
- - **`question` (`q3.confirm`)** — `requires_hint` pulled extra packs
103
- in. Re-issue with `--answer q3.confirm=yes` to proceed, or
104
- `--answer q3.confirm=no` to abort with `aborted_by_agent`.
105
-
106
- ### 5. Drop `--dry-run` for the real install
107
-
108
- Once the agent has confirmed the plan, repeat the final turn
109
- without `--dry-run`. Files materialize atomically; the lockfile
110
- lands at `agents/agent-config.lock.yml`. <!-- ref-ignore -->
111
-
112
- ## Failure modes
113
-
114
- - **Exit 2 + `status:"error"`** — `answer_malformed`,
115
- `out_of_order`, `unknown_workspace`, `unknown_pack`, or
116
- `aborted_by_agent`. Read `reason` and `expected_question_id`,
117
- fix the next call, re-issue.
118
- - **Manifest not found** — pass `--manifest <path>` pointing at
119
- `dist/discovery/discovery-manifest.json`.
120
- - **`protocol_version` mismatch** — abort; do not attempt
121
- recovery. Upgrade the agent or pin an older installer.
122
-
123
- ## Rules
124
-
125
- - **One JSON envelope per turn** — never batch.
126
- - **Re-issue from scratch on doubt** — the installer is stateless;
127
- carrying all prior answers in `--answer` flags is the contract.
128
- - **Do NOT commit `agent-config.lock.yml` blind** — review the
129
- lockfile diff before committing per `commit-policy`.