@mnstry/atelier 0.2.0-alpha.12 → 0.2.0-alpha.13

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 (516) hide show
  1. package/CHANGELOG.md +661 -0
  2. package/README.md +142 -6
  3. package/contracts/atelier-adoption-policy.v2.schema.json +55 -0
  4. package/contracts/atelier-architecture.v1.schema.json +258 -0
  5. package/contracts/atelier-boundary-delegations.v1.schema.json +161 -0
  6. package/contracts/atelier-boundary-owner-keys.v1.schema.json +98 -0
  7. package/contracts/atelier-build.v1.schema.json +1076 -0
  8. package/contracts/atelier-capability.v1.schema.json +1252 -0
  9. package/contracts/atelier-coordination.v1.schema.json +1050 -0
  10. package/contracts/atelier-evidence-navigation.v1.schema.json +603 -0
  11. package/contracts/atelier-harness.v1.schema.json +234 -0
  12. package/contracts/atelier-ingestion.v1.schema.json +806 -0
  13. package/contracts/atelier-inquiry.v1.schema.json +1772 -0
  14. package/contracts/atelier-instruction-adoption.v1.schema.json +490 -0
  15. package/contracts/atelier-interaction.v1.schema.json +553 -0
  16. package/contracts/atelier-judgment.v1.schema.json +690 -0
  17. package/contracts/atelier-knowledge.v1.schema.json +1512 -0
  18. package/contracts/atelier-learning.v1.schema.json +1095 -0
  19. package/contracts/atelier-migration.v3.schema.json +64 -0
  20. package/contracts/atelier-personal-workspace-manifest.v1.schema.json +87 -0
  21. package/contracts/atelier-personal-workspace-overlay.v1.schema.json +299 -0
  22. package/contracts/atelier-template-adoption.v1.schema.json +223 -0
  23. package/contracts/atelier-template-profile.v1.schema.json +1168 -0
  24. package/contracts/atelier-trackable.v1.schema.json +781 -0
  25. package/contracts/atelier-upgrade-plan.v3.schema.json +532 -0
  26. package/docs/architecture.md +89 -0
  27. package/docs/assurance-controls.md +2 -2
  28. package/docs/blocks/capability-stewardship.md +17 -0
  29. package/docs/blocks/claims.md +16 -3
  30. package/docs/blocks/inquiry-harnesses.md +19 -0
  31. package/docs/blocks/learning-harnesses.md +17 -0
  32. package/docs/capability-stewardship.md +269 -0
  33. package/docs/coordination.md +51 -0
  34. package/docs/decision-practices.md +111 -0
  35. package/docs/decisions.md +29 -0
  36. package/docs/evidence-navigation.md +237 -0
  37. package/docs/exact-upgrades.md +3 -2
  38. package/docs/ingestion.md +181 -0
  39. package/docs/inquiry-harnesses.md +211 -0
  40. package/docs/install.md +80 -3
  41. package/docs/intake-and-guides.md +5 -0
  42. package/docs/integration-contract-decisions.md +24 -2
  43. package/docs/interaction-and-reflection.md +72 -0
  44. package/docs/knowledge-graph.md +20 -0
  45. package/docs/knowledge-health/api.md +30 -0
  46. package/docs/knowledge-health/assessment/api.md +96 -0
  47. package/docs/knowledge-health/assessment/capabilities.md +40 -0
  48. package/docs/knowledge-health/assessment/evaluation.md +27 -0
  49. package/docs/knowledge-health/assessment/facilitator.md +30 -0
  50. package/docs/knowledge-health/assessment/quickstart.md +61 -0
  51. package/docs/knowledge-health/assessment/troubleshooting.md +23 -0
  52. package/docs/knowledge-health/devday/facilitator.md +16 -0
  53. package/docs/knowledge-health/devday/participant-response.md +22 -0
  54. package/docs/knowledge-health/devday/public-default.md +107 -0
  55. package/docs/knowledge-health/devday/quickstart.md +18 -0
  56. package/docs/knowledge-health/devday/support.md +22 -0
  57. package/docs/knowledge-health/exercise.md +17 -0
  58. package/docs/knowledge-health/facilitator.md +20 -0
  59. package/docs/knowledge-health/quickstart.md +94 -0
  60. package/docs/knowledge-health/readme.md +15 -0
  61. package/docs/knowledge-health/support.md +34 -0
  62. package/docs/knowledge-setup.md +248 -0
  63. package/docs/knowledge-workspace.md +264 -0
  64. package/docs/learning-harnesses.md +238 -0
  65. package/docs/learning.md +215 -0
  66. package/docs/local-services.md +181 -16
  67. package/docs/obsidian-contract.md +223 -15
  68. package/docs/obsidian-plugin.md +38 -4
  69. package/docs/obsidian.md +613 -51
  70. package/docs/optional-ingestion.md +83 -0
  71. package/docs/personal-workspace.md +257 -0
  72. package/docs/practical-judgment.md +92 -0
  73. package/docs/progressive-ingestion-acceptance.md +89 -0
  74. package/docs/progressive-ingestion.md +235 -0
  75. package/docs/project-command-inventory.md +1 -0
  76. package/docs/release-engineering.md +49 -0
  77. package/docs/repo-boundary-guard.md +94 -0
  78. package/docs/research-starter-quickstart.md +66 -0
  79. package/docs/research-starter.md +114 -0
  80. package/docs/semantic-ingestion.md +198 -0
  81. package/docs/semantic-operation.md +317 -0
  82. package/docs/skill-steward.md +6 -0
  83. package/docs/template-profile.md +164 -0
  84. package/docs/template-upgrades.md +114 -0
  85. package/docs/trackables.md +111 -0
  86. package/docs/upgrade.md +47 -2
  87. package/fixtures/atelier-architecture/binding/invalid/document.json +19 -0
  88. package/fixtures/atelier-architecture/binding/valid/document.json +19 -0
  89. package/fixtures/atelier-architecture/catalog/invalid/document.json +290 -0
  90. package/fixtures/atelier-architecture/catalog/valid/document.json +343 -0
  91. package/fixtures/atelier-build-contract/attempt/invalid/document.json +20 -0
  92. package/fixtures/atelier-build-contract/attempt/valid/document.json +19 -0
  93. package/fixtures/atelier-build-contract/candidate/invalid/document.json +24 -0
  94. package/fixtures/atelier-build-contract/candidate/valid/document.json +23 -0
  95. package/fixtures/atelier-build-contract/decision/invalid/document.json +31 -0
  96. package/fixtures/atelier-build-contract/decision/valid/document.json +30 -0
  97. package/fixtures/atelier-build-contract/delivery/invalid/document.json +18 -0
  98. package/fixtures/atelier-build-contract/delivery/valid/document.json +17 -0
  99. package/fixtures/atelier-build-contract/gate/invalid/document.json +22 -0
  100. package/fixtures/atelier-build-contract/gate/valid/document.json +21 -0
  101. package/fixtures/atelier-build-contract/ledger/invalid/document.json +270 -0
  102. package/fixtures/atelier-build-contract/ledger/valid/document.json +269 -0
  103. package/fixtures/atelier-build-contract/objective/invalid/document.json +73 -0
  104. package/fixtures/atelier-build-contract/objective/valid/document.json +72 -0
  105. package/fixtures/atelier-build-contract/progress/invalid/document.json +18 -0
  106. package/fixtures/atelier-build-contract/progress/valid/document.json +17 -0
  107. package/fixtures/atelier-capability-contract/adoption/invalid/document.json +71 -0
  108. package/fixtures/atelier-capability-contract/adoption/valid/document.json +70 -0
  109. package/fixtures/atelier-capability-contract/event/invalid/document.json +18 -0
  110. package/fixtures/atelier-capability-contract/event/valid/document.json +17 -0
  111. package/fixtures/atelier-capability-contract/journal/invalid/document.json +382 -0
  112. package/fixtures/atelier-capability-contract/journal/valid/document.json +381 -0
  113. package/fixtures/atelier-capability-contract/notice/invalid/document.json +8 -0
  114. package/fixtures/atelier-capability-contract/notice/valid/document.json +7 -0
  115. package/fixtures/atelier-capability-contract/package/invalid/document.json +59 -0
  116. package/fixtures/atelier-capability-contract/package/valid/document.json +58 -0
  117. package/fixtures/atelier-capability-contract/plan/invalid/document.json +107 -0
  118. package/fixtures/atelier-capability-contract/plan/valid/document.json +106 -0
  119. package/fixtures/atelier-capability-contract/release/invalid/document.json +85 -0
  120. package/fixtures/atelier-capability-contract/release/valid/document.json +84 -0
  121. package/fixtures/atelier-capability-contract/state/invalid/document.json +316 -0
  122. package/fixtures/atelier-capability-contract/state/valid/document.json +315 -0
  123. package/fixtures/atelier-coordination/dependency/invalid/document.json +37 -0
  124. package/fixtures/atelier-coordination/dependency/valid/document.json +36 -0
  125. package/fixtures/atelier-coordination/directive/invalid/document.json +25 -0
  126. package/fixtures/atelier-coordination/directive/valid/document.json +24 -0
  127. package/fixtures/atelier-coordination/disposition/invalid/document.json +34 -0
  128. package/fixtures/atelier-coordination/disposition/valid/document.json +33 -0
  129. package/fixtures/atelier-coordination/outcome/invalid/document.json +39 -0
  130. package/fixtures/atelier-coordination/outcome/valid/document.json +38 -0
  131. package/fixtures/atelier-coordination/recovery/invalid/document.json +34 -0
  132. package/fixtures/atelier-coordination/recovery/valid/document.json +33 -0
  133. package/fixtures/atelier-harness-contract/handoff/invalid/document.json +25 -0
  134. package/fixtures/atelier-harness-contract/handoff/valid/document.json +24 -0
  135. package/fixtures/atelier-ingestion/invalid/authority.json +19 -0
  136. package/fixtures/atelier-ingestion/semantic-baseline.json +26 -0
  137. package/fixtures/atelier-ingestion/semantic-operation.json +75 -0
  138. package/fixtures/atelier-ingestion/valid/plan-input.json +18 -0
  139. package/fixtures/atelier-inquiry-contract/assessment/invalid/document.json +41 -0
  140. package/fixtures/atelier-inquiry-contract/assessment/valid/document.json +40 -0
  141. package/fixtures/atelier-inquiry-contract/bundle/invalid/document.json +51 -0
  142. package/fixtures/atelier-inquiry-contract/bundle/valid/document.json +50 -0
  143. package/fixtures/atelier-inquiry-contract/campaign/invalid/document.json +17 -0
  144. package/fixtures/atelier-inquiry-contract/campaign/valid/document.json +16 -0
  145. package/fixtures/atelier-inquiry-contract/decision/invalid/document.json +22 -0
  146. package/fixtures/atelier-inquiry-contract/decision/valid/document.json +21 -0
  147. package/fixtures/atelier-inquiry-contract/feedback/invalid/document.json +19 -0
  148. package/fixtures/atelier-inquiry-contract/feedback/valid/document.json +18 -0
  149. package/fixtures/atelier-inquiry-contract/handoff/invalid/document.json +92 -0
  150. package/fixtures/atelier-inquiry-contract/handoff/valid/document.json +91 -0
  151. package/fixtures/atelier-inquiry-contract/hypothesis/invalid/document.json +20 -0
  152. package/fixtures/atelier-inquiry-contract/hypothesis/valid/document.json +19 -0
  153. package/fixtures/atelier-inquiry-contract/ledger/invalid/document.json +680 -0
  154. package/fixtures/atelier-inquiry-contract/ledger/valid/document.json +679 -0
  155. package/fixtures/atelier-inquiry-contract/legacy-assessment/invalid/document.json +19 -0
  156. package/fixtures/atelier-inquiry-contract/legacy-assessment/valid/document.json +18 -0
  157. package/fixtures/atelier-inquiry-contract/request/invalid/document.json +50 -0
  158. package/fixtures/atelier-inquiry-contract/request/valid/document.json +49 -0
  159. package/fixtures/atelier-inquiry-contract/source/invalid/document.json +18 -0
  160. package/fixtures/atelier-inquiry-contract/source/valid/document.json +17 -0
  161. package/fixtures/atelier-inquiry-contract/withdrawal/invalid/document.json +16 -0
  162. package/fixtures/atelier-inquiry-contract/withdrawal/valid/document.json +15 -0
  163. package/fixtures/atelier-instruction-adoption/context-receipt/invalid/document.json +18 -0
  164. package/fixtures/atelier-instruction-adoption/context-receipt/valid/document.json +17 -0
  165. package/fixtures/atelier-instruction-adoption/plan/invalid/document.json +63 -0
  166. package/fixtures/atelier-instruction-adoption/plan/valid/document.json +62 -0
  167. package/fixtures/atelier-instruction-adoption/receipt/invalid/document.json +22 -0
  168. package/fixtures/atelier-instruction-adoption/receipt/valid/document.json +21 -0
  169. package/fixtures/atelier-instruction-adoption/state/invalid/document.json +30 -0
  170. package/fixtures/atelier-instruction-adoption/state/valid/document.json +29 -0
  171. package/fixtures/atelier-interaction/act/invalid/document.json +25 -0
  172. package/fixtures/atelier-interaction/act/valid/document.json +24 -0
  173. package/fixtures/atelier-interaction/assessment/invalid/document.json +32 -0
  174. package/fixtures/atelier-interaction/assessment/valid/document.json +31 -0
  175. package/fixtures/atelier-interaction/observation/invalid/document.json +22 -0
  176. package/fixtures/atelier-interaction/observation/valid/document.json +21 -0
  177. package/fixtures/atelier-interaction/policy/invalid/document.json +20 -0
  178. package/fixtures/atelier-interaction/policy/valid/document.json +19 -0
  179. package/fixtures/atelier-judgment/case/invalid/document.json +76 -0
  180. package/fixtures/atelier-judgment/case/valid/document.json +75 -0
  181. package/fixtures/atelier-judgment/decision/invalid/document.json +38 -0
  182. package/fixtures/atelier-judgment/decision/valid/document.json +37 -0
  183. package/fixtures/atelier-judgment/native-decision.md +3 -0
  184. package/fixtures/atelier-judgment/practice-reconsideration/definition.json +92 -0
  185. package/fixtures/atelier-judgment/practice-reconsideration/scenario.json +435 -0
  186. package/fixtures/atelier-knowledge-contract/activation/invalid/document.json +26 -0
  187. package/fixtures/atelier-knowledge-contract/activation/valid/document.json +25 -0
  188. package/fixtures/atelier-knowledge-contract/contribution/invalid/document.json +34 -0
  189. package/fixtures/atelier-knowledge-contract/contribution/valid/document.json +33 -0
  190. package/fixtures/atelier-knowledge-contract/domain/invalid/document.json +41 -0
  191. package/fixtures/atelier-knowledge-contract/domain/valid/document.json +40 -0
  192. package/fixtures/atelier-knowledge-contract/domain-revision/invalid/document.json +46 -0
  193. package/fixtures/atelier-knowledge-contract/domain-revision/valid/document.json +45 -0
  194. package/fixtures/atelier-knowledge-contract/evaluation/invalid/document.json +21 -0
  195. package/fixtures/atelier-knowledge-contract/evaluation/valid/document.json +20 -0
  196. package/fixtures/atelier-knowledge-contract/ledger/invalid/document.json +318 -0
  197. package/fixtures/atelier-knowledge-contract/ledger/valid/document.json +317 -0
  198. package/fixtures/atelier-knowledge-contract/relation/invalid/document.json +25 -0
  199. package/fixtures/atelier-knowledge-contract/relation/valid/document.json +24 -0
  200. package/fixtures/atelier-knowledge-contract/review/invalid/document.json +18 -0
  201. package/fixtures/atelier-knowledge-contract/review/valid/document.json +17 -0
  202. package/fixtures/atelier-knowledge-contract/withdrawal/invalid/document.json +16 -0
  203. package/fixtures/atelier-knowledge-contract/withdrawal/valid/document.json +15 -0
  204. package/fixtures/atelier-learning/invalid/authority.json +14 -0
  205. package/fixtures/atelier-learning/valid/capture.json +13 -0
  206. package/fixtures/atelier-personal-workspace-contract/manifest/invalid/authority-key.json +17 -0
  207. package/fixtures/atelier-personal-workspace-contract/manifest/invalid/nonempty-ext.json +25 -0
  208. package/fixtures/atelier-personal-workspace-contract/manifest/invalid/wrong-schema.json +22 -0
  209. package/fixtures/atelier-personal-workspace-contract/manifest/valid/manifest.json +22 -0
  210. package/fixtures/atelier-personal-workspace-contract/overlay/invalid/authority-key.json +25 -0
  211. package/fixtures/atelier-personal-workspace-contract/overlay/invalid/unknown-top-level-field.json +27 -0
  212. package/fixtures/atelier-personal-workspace-contract/overlay/invalid/wrong-schema.json +24 -0
  213. package/fixtures/atelier-trackable/definition/invalid/document.json +15 -0
  214. package/fixtures/atelier-trackable/definition/valid/document.json +14 -0
  215. package/fixtures/atelier-trackable/request/invalid/document.json +23 -0
  216. package/fixtures/atelier-trackable/request/valid/document.json +22 -0
  217. package/fixtures/boundary-delegations/invalid/authority-key.v1.json +30 -0
  218. package/fixtures/boundary-delegations/invalid/push-operation.v1.json +28 -0
  219. package/fixtures/boundary-delegations/invalid/unsigned.v1.json +25 -0
  220. package/fixtures/boundary-delegations/valid/empty.v1.json +4 -0
  221. package/fixtures/boundary-delegations/valid/signed-operator.v1.json +30 -0
  222. package/fixtures/boundary-owner-keys/invalid/wrong-algorithm.v1.json +15 -0
  223. package/fixtures/boundary-owner-keys/invalid/wrong-curve.v1.json +15 -0
  224. package/fixtures/boundary-owner-keys/valid/one-owner.v1.json +17 -0
  225. package/fixtures/capability-packages/adoption.example.json +70 -0
  226. package/fixtures/capability-packages/evidence-review/capability-package.json +58 -0
  227. package/fixtures/capability-packages/evidence-review/capability-release.json +84 -0
  228. package/fixtures/capability-packages/evidence-review/evaluation.md +15 -0
  229. package/fixtures/capability-packages/evidence-review/skills/evidence-review/SKILL.md +22 -0
  230. package/fixtures/capability-packages/evidence-review/skills/evidence-review/references/ledger.md +7 -0
  231. package/fixtures/capability-packages/research/capability-package.json +88 -0
  232. package/fixtures/capability-packages/research/capability-release.json +134 -0
  233. package/fixtures/capability-packages/research/evaluation.md +15 -0
  234. package/fixtures/capability-packages/research/skills/research-integrate/SKILL.md +29 -0
  235. package/fixtures/capability-packages/research/skills/research-integrate/references/integration.md +10 -0
  236. package/fixtures/capability-packages/research/skills/research-plan/SKILL.md +27 -0
  237. package/fixtures/capability-packages/research/skills/research-plan/references/inquiries.md +26 -0
  238. package/fixtures/capability-packages/research/skills/research-synthesize/SKILL.md +23 -0
  239. package/fixtures/capability-packages/research/skills/research-synthesize/references/synthesis.md +12 -0
  240. package/fixtures/evidence-navigation/invalid/duplicate-operation.json +16 -0
  241. package/fixtures/evidence-navigation/invalid/instruction-kind.json +36 -0
  242. package/fixtures/evidence-navigation/invalid/invalid-digest.json +36 -0
  243. package/fixtures/evidence-navigation/invalid/invalid-time.json +36 -0
  244. package/fixtures/evidence-navigation/invalid/missing-attribution.json +35 -0
  245. package/fixtures/evidence-navigation/invalid/reserved-extension.json +19 -0
  246. package/fixtures/evidence-navigation/invalid/unattributed-acceptance.json +36 -0
  247. package/fixtures/evidence-navigation/invalid/uncoerced-version.json +16 -0
  248. package/fixtures/evidence-navigation/invalid/unknown-currency.json +17 -0
  249. package/fixtures/evidence-navigation/invalid/unknown-selector-field.json +37 -0
  250. package/fixtures/evidence-navigation/invalid/unsupported-operation.json +15 -0
  251. package/fixtures/evidence-navigation/valid/claim.json +36 -0
  252. package/fixtures/evidence-navigation/valid/host.json +16 -0
  253. package/fixtures/evidence-navigation/valid/profile.json +16 -0
  254. package/fixtures/evidence-navigation/valid/snapshot.json +17 -0
  255. package/fixtures/harness-packages/build-harness/capability-package.json +61 -0
  256. package/fixtures/harness-packages/build-harness/capability-release.json +82 -0
  257. package/fixtures/harness-packages/build-harness/evaluation.md +3 -0
  258. package/fixtures/harness-packages/build-harness/skills/atelier-build-harness/SKILL.md +59 -0
  259. package/fixtures/harness-packages/knowledge-harness/capability-package.json +61 -0
  260. package/fixtures/harness-packages/knowledge-harness/capability-release.json +82 -0
  261. package/fixtures/harness-packages/knowledge-harness/evaluation.md +3 -0
  262. package/fixtures/harness-packages/knowledge-harness/skills/atelier-knowledge-harness/SKILL.md +60 -0
  263. package/fixtures/harnesses/learning-cycle.json +780 -0
  264. package/fixtures/inquiry/workshop.json +675 -0
  265. package/fixtures/inquiry-packages/discovery-harness/capability-package.json +61 -0
  266. package/fixtures/inquiry-packages/discovery-harness/capability-release.json +82 -0
  267. package/fixtures/inquiry-packages/discovery-harness/evaluation.md +3 -0
  268. package/fixtures/inquiry-packages/discovery-harness/skills/atelier-discovery-harness/SKILL.md +48 -0
  269. package/fixtures/inquiry-packages/research-harness/capability-package.json +61 -0
  270. package/fixtures/inquiry-packages/research-harness/capability-release.json +82 -0
  271. package/fixtures/inquiry-packages/research-harness/evaluation.md +3 -0
  272. package/fixtures/inquiry-packages/research-harness/skills/atelier-research-harness/SKILL.md +43 -0
  273. package/fixtures/knowledge-health/calibration-suite.json +26 -0
  274. package/fixtures/knowledge-health/calibration-trial.json +37 -0
  275. package/fixtures/knowledge-health/corrected/checklist.md +18 -0
  276. package/fixtures/knowledge-health/devday/participant-record.json +19 -0
  277. package/fixtures/knowledge-health/expected-summary.json +27 -0
  278. package/fixtures/knowledge-health/workshop/README.md +20 -0
  279. package/fixtures/knowledge-health/workshop/atelier.project.json +7 -0
  280. package/fixtures/knowledge-health/workshop/knowledge-plan.json +65 -0
  281. package/fixtures/knowledge-health/workshop/records/checklist.md +18 -0
  282. package/fixtures/knowledge-health/workshop/records/workshop.md +18 -0
  283. package/fixtures/knowledge-health/workshop/repo-access.v1.json +5 -0
  284. package/fixtures/knowledge-health/workspace/atelier.project.json +18 -0
  285. package/fixtures/knowledge-health/workspace/knowledge-plan.json +74 -0
  286. package/fixtures/knowledge-health/workspace/records/checklist.md +18 -0
  287. package/fixtures/knowledge-health/workspace/records/pilot.md +16 -0
  288. package/fixtures/knowledge-health/workspace/repo-access.v1.json +9 -0
  289. package/fixtures/personal-workspace/overlay.json +24 -0
  290. package/fixtures/templates/local-library.v1.json +75 -0
  291. package/fixtures/templates/upgrade-contracts/adoption-policy.v2/invalid.json +16 -0
  292. package/fixtures/templates/upgrade-contracts/adoption-policy.v2/valid.json +13 -0
  293. package/fixtures/templates/upgrade-contracts/migration.v3/invalid.json +24 -0
  294. package/fixtures/templates/upgrade-contracts/migration.v3/valid.json +21 -0
  295. package/fixtures/templates/upgrade-contracts/template-adoption.v1/invalid.json +60 -0
  296. package/fixtures/templates/upgrade-contracts/template-adoption.v1/valid.json +57 -0
  297. package/fixtures/templates/upgrade-contracts/upgrade-plan.v3/invalid.json +85 -0
  298. package/fixtures/templates/upgrade-contracts/upgrade-plan.v3/valid.json +82 -0
  299. package/package.json +59 -5
  300. package/skills/claude/atelier-build-harness/SKILL.md +59 -0
  301. package/skills/claude/atelier-coordination/SKILL.md +32 -0
  302. package/skills/claude/atelier-discovery-harness/SKILL.md +48 -0
  303. package/skills/claude/atelier-guided-upgrade/SKILL.md +29 -0
  304. package/skills/claude/atelier-interaction/SKILL.md +34 -0
  305. package/skills/claude/atelier-knowledge-harness/SKILL.md +60 -0
  306. package/skills/claude/atelier-knowledge-setup/SKILL.md +72 -0
  307. package/skills/claude/atelier-practical-judgment/SKILL.md +64 -0
  308. package/skills/claude/atelier-research-harness/SKILL.md +43 -0
  309. package/skills/claude/atelier-skill-steward/SKILL.md +53 -0
  310. package/skills/claude/atelier-trackables/SKILL.md +40 -0
  311. package/skills/codex/atelier-build-harness/SKILL.md +59 -0
  312. package/skills/codex/atelier-coordination/SKILL.md +32 -0
  313. package/skills/codex/atelier-discovery-harness/SKILL.md +48 -0
  314. package/skills/codex/atelier-guided-upgrade/SKILL.md +29 -0
  315. package/skills/codex/atelier-interaction/SKILL.md +34 -0
  316. package/skills/codex/atelier-knowledge-harness/SKILL.md +60 -0
  317. package/skills/codex/atelier-knowledge-setup/SKILL.md +72 -0
  318. package/skills/codex/atelier-practical-judgment/SKILL.md +64 -0
  319. package/skills/codex/atelier-research-harness/SKILL.md +43 -0
  320. package/skills/codex/atelier-skill-steward/SKILL.md +53 -0
  321. package/skills/codex/atelier-trackables/SKILL.md +40 -0
  322. package/src/architecture/catalog.mjs +355 -0
  323. package/src/architecture/index.mjs +93 -0
  324. package/src/boundary/content-rules.mjs +4 -2
  325. package/src/boundary/delegation-command.mjs +158 -0
  326. package/src/boundary/delegation.mjs +396 -0
  327. package/src/boundary/policy.mjs +52 -10
  328. package/src/build/git.mjs +18 -0
  329. package/src/build/index.mjs +3 -0
  330. package/src/build/ledger.mjs +88 -0
  331. package/src/capabilities/adoption.mjs +381 -0
  332. package/src/capabilities/evidence.mjs +140 -0
  333. package/src/capabilities/files.mjs +124 -0
  334. package/src/capabilities/index.mjs +4 -0
  335. package/src/capabilities/instructions.mjs +250 -0
  336. package/src/capabilities/package.mjs +136 -0
  337. package/src/cli/command-failure.mjs +36 -0
  338. package/src/cli/execute-command.mjs +16 -2
  339. package/src/cli/run.mjs +65 -9
  340. package/src/coauthor/store.mjs +43 -2
  341. package/src/collaboration/proposals.mjs +189 -0
  342. package/src/commands/architecture.mjs +27 -0
  343. package/src/commands/boundary.mjs +3 -0
  344. package/src/commands/capability.mjs +73 -0
  345. package/src/commands/enroll.mjs +3 -0
  346. package/src/commands/harness.mjs +79 -0
  347. package/src/commands/ingest.mjs +39 -0
  348. package/src/commands/init.mjs +4 -1
  349. package/src/commands/inquiry.mjs +66 -0
  350. package/src/commands/knowledge-semantic.mjs +128 -0
  351. package/src/commands/knowledge.mjs +119 -0
  352. package/src/commands/learn.mjs +61 -0
  353. package/src/commands/obsidian.mjs +754 -63
  354. package/src/commands/practice.mjs +24 -0
  355. package/src/commands/setup.mjs +22 -2
  356. package/src/commands/trackable.mjs +19 -0
  357. package/src/contracts/corpus.mjs +30 -0
  358. package/src/coordination/index.mjs +110 -0
  359. package/src/evidence-navigation/contracts.mjs +60 -0
  360. package/src/evidence-navigation/evaluate.mjs +69 -0
  361. package/src/evidence-navigation/generation.mjs +22 -0
  362. package/src/evidence-navigation/index.mjs +2 -0
  363. package/src/evidence-navigation/local.mjs +167 -0
  364. package/src/evidence-navigation/schema.generated.mjs +604 -0
  365. package/src/evidence-navigation/types.mjs +12 -0
  366. package/src/export/atelier-export-contract.mjs +35 -8
  367. package/src/graph/enroll.mjs +248 -0
  368. package/src/graph/graph.mjs +17 -1
  369. package/src/graph/knowledge-graph.mjs +58 -8
  370. package/src/harnesses/contracts.mjs +41 -0
  371. package/src/harnesses/exchange.mjs +154 -0
  372. package/src/harnesses/feedback.mjs +16 -0
  373. package/src/harnesses/history.mjs +37 -0
  374. package/src/harnesses/index.mjs +4 -0
  375. package/src/harnesses/store.mjs +29 -0
  376. package/src/ingestion/contracts.mjs +41 -0
  377. package/src/ingestion/evaluation.mjs +119 -0
  378. package/src/ingestion/optional/composition/index.mjs +171 -0
  379. package/src/ingestion/optional/evaluation/index.mjs +219 -0
  380. package/src/ingestion/optional/graphify/composition-binding.mjs +60 -0
  381. package/src/ingestion/optional/graphify/composition_receiving.py +185 -0
  382. package/src/ingestion/optional/graphify/graphify_supplier.py +933 -0
  383. package/src/ingestion/optional/graphify/json_bridge.py +163 -0
  384. package/src/ingestion/optional/graphify/query_receiving.py +209 -0
  385. package/src/ingestion/optional/index.mjs +9 -0
  386. package/src/ingestion/optional/jev/bridge.mjs +166 -0
  387. package/src/ingestion/optional/jev/composition-binding.mjs +116 -0
  388. package/src/ingestion/optional/jev/judgments.mjs +174 -0
  389. package/src/ingestion/optional/jev/native-translation.mjs +32 -0
  390. package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/__init__.py +7 -0
  391. package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/adapter.py +966 -0
  392. package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/artifacts.py +101 -0
  393. package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/projection.py +146 -0
  394. package/src/ingestion/optional/lightrag/composition-binding.mjs +67 -0
  395. package/src/ingestion/optional/vanilla/composition-binding.mjs +102 -0
  396. package/src/ingestion/optional/vanilla/index.mjs +218 -0
  397. package/src/ingestion/optional/vanilla/native-normalization.mjs +187 -0
  398. package/src/ingestion/processors.mjs +218 -0
  399. package/src/ingestion/semantic.mjs +203 -0
  400. package/src/ingestion/store.mjs +372 -0
  401. package/src/inquiry/beliefs.mjs +32 -0
  402. package/src/inquiry/contracts.mjs +23 -0
  403. package/src/inquiry/index.mjs +5 -0
  404. package/src/inquiry/ledger.mjs +135 -0
  405. package/src/inquiry/lenses.mjs +15 -0
  406. package/src/inquiry/projection.mjs +77 -0
  407. package/src/inquiry/store.mjs +35 -0
  408. package/src/intake/read-scope.mjs +12 -0
  409. package/src/intake/store.mjs +69 -6
  410. package/src/interaction/index.mjs +91 -0
  411. package/src/judgment/index.mjs +82 -0
  412. package/src/judgment/practice-evaluation.mjs +70 -0
  413. package/src/judgment/practice.mjs +144 -0
  414. package/src/knowledge/context.mjs +217 -0
  415. package/src/knowledge/index.mjs +5 -0
  416. package/src/knowledge/ingestion.mjs +79 -0
  417. package/src/knowledge/intake.mjs +33 -0
  418. package/src/knowledge/ledger.mjs +110 -0
  419. package/src/knowledge/participatory/guidance.mjs +36 -0
  420. package/src/knowledge/participatory/guided-contribution.mjs +44 -0
  421. package/src/knowledge/participatory/index.mjs +2 -0
  422. package/src/knowledge/participatory/installed-workshop.mjs +108 -0
  423. package/src/knowledge/plan.mjs +67 -0
  424. package/src/knowledge/projection.mjs +43 -0
  425. package/src/knowledge/semantic-operation.mjs +567 -0
  426. package/src/knowledge/sessions.mjs +467 -0
  427. package/src/knowledge/workspace.mjs +295 -0
  428. package/src/knowledge-health/assessment.mjs +165 -0
  429. package/src/knowledge-health/capabilities.mjs +350 -0
  430. package/src/knowledge-health/context.mjs +62 -0
  431. package/src/knowledge-health/example.mjs +47 -0
  432. package/src/knowledge-health/index.mjs +10 -0
  433. package/src/knowledge-health/owner-join.mjs +88 -0
  434. package/src/knowledge-health/proof/common.mjs +24 -0
  435. package/src/knowledge-health/proof/installed-check.mjs +100 -0
  436. package/src/knowledge-health/proof/native-readback.mjs +37 -0
  437. package/src/knowledge-health/proof/rehearse.mjs +68 -0
  438. package/src/knowledge-health/proof/validate-participant.mjs +17 -0
  439. package/src/knowledge-health/proof/verify-native-capture.mjs +14 -0
  440. package/src/knowledge-health/proof/workshop-check.mjs +36 -0
  441. package/src/knowledge-health/rule-identity.mjs +44 -0
  442. package/src/knowledge-health/workshop-composition.mjs +19 -0
  443. package/src/knowledge-health/workshop-profile.mjs +176 -0
  444. package/src/knowledge-health/workshop.mjs +99 -0
  445. package/src/learning/adapters.mjs +68 -0
  446. package/src/learning/assistance.mjs +127 -0
  447. package/src/learning/contracts.mjs +65 -0
  448. package/src/learning/store.mjs +272 -0
  449. package/src/personal-workspace/index.mjs +391 -0
  450. package/src/personal-workspace/selection.mjs +385 -0
  451. package/src/project/config.mjs +8 -0
  452. package/src/project/durable-state.mjs +3 -1
  453. package/src/project/file-class.mjs +1 -1
  454. package/src/projection/obsidian/edits/apply.mjs +55 -16
  455. package/src/projection/obsidian/personal-workspace.mjs +436 -0
  456. package/src/projection/obsidian/proposals/adapter.mjs +47 -8
  457. package/src/projection/obsidian/proposals/observation.mjs +10 -2
  458. package/src/projection/obsidian/publication/publisher.mjs +142 -13
  459. package/src/projection/obsidian/publication/vault-list.mjs +4 -3
  460. package/src/projection/obsidian/recovery/index.mjs +4 -1
  461. package/src/projection/obsidian/recovery/store.mjs +160 -7
  462. package/src/projection/obsidian/selection-ui/contribution.mjs +6 -5
  463. package/src/readiness/readiness.mjs +10 -3
  464. package/src/reflection/index.mjs +56 -0
  465. package/src/runtime/obsidian/app-production-seams.mjs +48 -16
  466. package/src/runtime/obsidian/app-registration.mjs +175 -28
  467. package/src/runtime/obsidian/app-restart.mjs +154 -0
  468. package/src/runtime/obsidian/engine.mjs +163 -20
  469. package/src/runtime/obsidian/extension-points.mjs +1 -1
  470. package/src/runtime/obsidian/index.mjs +10 -7
  471. package/src/runtime/obsidian/launch-plan.mjs +7 -4
  472. package/src/runtime/obsidian/lifecycle.mjs +92 -12
  473. package/src/runtime/obsidian/login-item.mjs +332 -0
  474. package/src/runtime/obsidian/machine-settings.mjs +119 -12
  475. package/src/runtime/obsidian/opening.mjs +171 -37
  476. package/src/runtime/obsidian/pipeline.mjs +71 -3
  477. package/src/runtime/obsidian/plugin-channel.mjs +11 -3
  478. package/src/runtime/obsidian/plugin-choice.mjs +16 -4
  479. package/src/runtime/obsidian/plugin-drift.mjs +59 -11
  480. package/src/runtime/obsidian/plugin-presence.mjs +14 -1
  481. package/src/runtime/obsidian/process-identity.mjs +20 -10
  482. package/src/runtime/obsidian/project-views.mjs +282 -0
  483. package/src/runtime/obsidian/questions.mjs +48 -0
  484. package/src/runtime/obsidian/release-watch.mjs +56 -0
  485. package/src/runtime/obsidian/service-main.mjs +99 -16
  486. package/src/runtime/obsidian/service-manager-production.mjs +61 -0
  487. package/src/runtime/obsidian/service-managers.mjs +275 -0
  488. package/src/runtime/obsidian/service-record.mjs +87 -23
  489. package/src/runtime/obsidian/service.mjs +36 -3
  490. package/src/runtime/obsidian/startup-adapters.mjs +59 -21
  491. package/src/runtime/obsidian/unheld-evidence.mjs +84 -0
  492. package/src/runtime/obsidian/vault-location.mjs +300 -0
  493. package/src/runtime/obsidian/view-counts.mjs +34 -0
  494. package/src/server/local-sidecar.mjs +169 -2
  495. package/src/server/server.mjs +28 -2
  496. package/src/template-bindings/project.mjs +92 -0
  497. package/src/templates/profile.mjs +225 -0
  498. package/src/trackables/domain.mjs +175 -0
  499. package/src/trackables/store.mjs +114 -0
  500. package/src/ui/knowledge-page.mjs +1388 -0
  501. package/src/upgrade/explanation.mjs +1 -1
  502. package/src/upgrade/template-participant.mjs +171 -0
  503. package/src/upgrade/transaction.mjs +72 -25
  504. package/src/upgrade/upgrade.mjs +1 -0
  505. package/templates/external-project-workspace/pack-lifecycle.json +6 -1
  506. package/templates/knowledge-workspace/.gitattributes +2 -0
  507. package/templates/knowledge-workspace/AGENTS.md +27 -0
  508. package/templates/knowledge-workspace/README.md +44 -0
  509. package/templates/knowledge-workspace/atelier.project.json +22 -0
  510. package/templates/knowledge-workspace/gitignore +6 -0
  511. package/templates/knowledge-workspace/knowledge-plan.json +111 -0
  512. package/templates/knowledge-workspace/knowledge-plan.schema.json +281 -0
  513. package/templates/knowledge-workspace/records/forecast.md +22 -0
  514. package/templates/knowledge-workspace/records/inspection.md +25 -0
  515. package/templates/knowledge-workspace/records/telescope.md +24 -0
  516. package/templates/knowledge-workspace/repo-access.v1.json +9 -0
@@ -0,0 +1,264 @@
1
+ # Knowledge workspaces and guided coauthoring
2
+
3
+ The experimental knowledge workspace connects five reusable dashboards to the
4
+ same source-bound private drafts used by people and agents. Human planning sets
5
+ the task, assisted drafting works from evidence, and human review determines
6
+ what may enter the canonical plan or become an action.
7
+
8
+ Start with one consequential question, a permitted source, and a reviewer.
9
+ Expand when a demonstrated task needs more knowledge. Graph size is not the
10
+ success measure.
11
+
12
+ ## Open a workspace
13
+
14
+ ```sh
15
+ atelier init --template knowledge-workspace --target my-workspace
16
+ cd my-workspace
17
+ git init
18
+ atelier knowledge check
19
+ atelier graph
20
+ atelier build
21
+ atelier dev --knowledge
22
+ ```
23
+
24
+ Open `/knowledge` at the printed loopback address. This uses the existing
25
+ foreground sidecar and its manifest, host, origin, and nonce controls. Stop it
26
+ with Ctrl-C; restart the same command to resume saved sessions. `--port=0`
27
+ chooses a free port. It installs no background or operating-system service.
28
+ The template is an invented equipment library. Replace its purpose, roles,
29
+ sources, concepts, relations, and questions before operational use.
30
+
31
+ An existing enrolled project needs a valid `knowledge-plan.json` beside its
32
+ project configuration. Use the schema and guide in
33
+ [knowledge setup](knowledge-setup.md). Rebuild the projection when its source
34
+ changes. The knowledge panels read the current enrolled graph on request; the
35
+ ordinary projection remains the last explicitly built projection.
36
+
37
+ The sidecar enables these routes only with `--knowledge`. Its new reads are
38
+ `/api/knowledge/dashboard`, `context`, `sessions`, and `read`; mutations are
39
+ `start`, `event`, and `recover`. The empty same-origin `session` POST obtains
40
+ its nonce. There is no remote collaboration, account, canonical apply, model
41
+ provider, or outbound network path. All people who use this local process have
42
+ the local operator's source access. It is not a multi-user access-control layer.
43
+
44
+ ## Supported interfaces
45
+
46
+ The workspace is experimental. Two of its outputs are versioned contracts that
47
+ hosts, desktop adapters and agents can bind to:
48
+
49
+ - the context packet from `atelier knowledge context`
50
+ (`schema: atelier-knowledge-context@v1`);
51
+ - the evaluation report from `atelier knowledge evaluate`
52
+ (`schema: atelier-knowledge-evaluation@v1`).
53
+
54
+ Everything else is experimental and may change without a version bump:
55
+
56
+ - `atelier knowledge check` and `session list` print unversioned JSON;
57
+ - the dashboard and session records carry `experimental-v1` schemas;
58
+ - the browser surfaces and their `/api/knowledge/*` routes, served by
59
+ `atelier dev --knowledge` and `atelier server --knowledge`, are experimental;
60
+ - the `knowledgeProject` option of `createAtelierSidecarServer` in
61
+ `@mnstry/atelier/server` is experimental too, not a supported binding.
62
+
63
+ This release has no library API for the workspace. The workspace modules
64
+ `src/knowledge/plan.mjs`, `context.mjs`, `workspace.mjs` and `sessions.mjs` are
65
+ not exported, and importing them directly is unsupported.
66
+ `@mnstry/atelier/knowledge` exports these functions, which are separate from the
67
+ workspace:
68
+
69
+ - `inspectKnowledge`
70
+ - `prepareIntakeContribution` and `prepareKnowledgeImport`
71
+ - `knowledgeGraphProposal`
72
+ - `reconcileKnowledge`
73
+ - `prepareIngestionContribution`, `localKnowledgeContext` and
74
+ `localKnowledgeGraphProposal`
75
+
76
+ A workspace library export will be added when a host needs one, reviewed together
77
+ with that host's use of it.
78
+
79
+ Maintainers check a packed candidate with `npm run knowledge:consumer-proof`, with
80
+ `ATELIER_CANDIDATE_TARBALL` set to the tarball.
81
+
82
+ - **Install.** The script reads the tarball once, installs exactly those
83
+ hashed bytes into a clean temporary consumer, and runs the installed CLI with
84
+ the current Node and an empty temporary home. The proof's own Git steps read no
85
+ global or system Git configuration. The CLI's Git calls get an empty global
86
+ configuration but may still read the host's system configuration. The install runs offline, from the locked dependency closure
87
+ already in the npm cache. With a cold cache it refuses before installing
88
+ anything. Set `ATELIER_KNOWLEDGE_CONSUMER_BOOTSTRAP=1` to allow one declared
89
+ registry fetch of that closure first; the receipt records whether it ran. The
90
+ receipt lists the installed dependency tree (`name@version`) and any problems
91
+ `npm ls` reports. Every entry must lie within the locked closure.
92
+ - **What it checks:**
93
+ - context for an answerable question selects its caveat source (no answer is
94
+ generated or judged);
95
+ - an unsupported question abstains with no sources, candidates or omissions;
96
+ - evaluation;
97
+ - a recorded answer stays an unsaved draft until it is saved; the saved
98
+ private draft and its receipt read back from a new process;
99
+ - a retried start returns the same session;
100
+ - an owner correction: the edited source is reported stale, and earlier
101
+ sessions report changed sources.
102
+ - **The receipt** is bound to the tarball's SHA-256. Any earlier receipt is
103
+ removed before the inputs are checked. Refusals before the temporary consumer
104
+ exists (missing tarball, digest mismatch, cold cache, bootstrap or lockfile
105
+ failure) exit non-zero and leave no receipt. After that, a step failure or an
106
+ unexpected stop writes `passed: false`. Known local roots in failure text
107
+ (the temporary folders, the tarball's folder, this repository and the home
108
+ folder) are replaced with placeholders; other paths may remain.
109
+
110
+ A passing receipt shows that these documented CLI paths work for that tarball.
111
+ It does not measure answer quality or cost.
112
+
113
+ ## Five connected views
114
+
115
+ | Workspace | What is visible | Coauthored result | Next proof |
116
+ | --- | --- | --- | --- |
117
+ | Onboard | Purpose, steward, reviewer, source-use policies, and context budget | Useful work, roles, source boundaries, and success criteria | One permitted source can support a consequential question |
118
+ | Model | Definitions, identity rules, directed relationships, and question coverage | A minimal concept or relationship proposal with examples and counterexamples | Source-backed questions distinguish the intended meanings |
119
+ | Deepen | Unused concepts, unknown tags, missing edges, missing evidence, and changed pins | A source-cited correction, contradiction, or unmodeled finding | A reviewer checks exact passages, qualifications, and proposed changes |
120
+ | Apply | Complete bounded sources, provenance, qualifications, and declared relationships | An answer or abstention, uncertainties, proposed action, and validation needs | The owner reviews the answer and decides the next real action |
121
+ | Learn | Equal-budget retrieval comparison and explicitly unmeasured outcomes | Observed outcome, quality, assistance, correction effort, time, and usage notes | Useful work on unseen questions compared with direct source search |
122
+
123
+ The dashboard recommends a next step from current structural diagnostics. It
124
+ never automatically completes an onboarding stage, promotes an assertion, or
125
+ calls an ontology useful because its checks pass. Both task-specific judgment
126
+ and actual adopter acceptance remain visible work.
127
+
128
+ The direct-search comparison uses metadata lexical matching. Graph context adds
129
+ one hop of declared relationships. It is not a semantic answer evaluator or a
130
+ full-text-search benchmark. The graph may spend *more* context on necessary
131
+ qualifications; improvement means better work at appropriate total cost.
132
+
133
+ ## Coauthoring and recovery
134
+
135
+ Select a question and a flow, enter your locally asserted name or role, and
136
+ start. Each session retains its prompts, selected evidence, plan digest, and
137
+ workspace snapshot. The prompts cover generic knowledge-work practices; the
138
+ consumer owns its domain vocabulary and source decisions.
139
+
140
+ 1. Write an answer. **Record my answer** retains its exact wording in session
141
+ history. It is still a draft.
142
+ 2. **Save private draft** persists the field and reads back the matching receipt.
143
+ **Continue** then advances. A machine `propose` event opens a confirmation
144
+ step: confirm the revised wording or keep the original before saving.
145
+ 3. Pause or close after a confirmed save. The session list resumes history from
146
+ the local ledger. A `saving` state offers reconciliation; a failed write
147
+ exposes the existing store's one explicit retry. Exhausted retries need
148
+ operator inspection; the UI does not remove another writer's lock.
149
+ 4. A failed request retains the exact request ID for retry and keeps the text
150
+ in the tab. Editing pauses so the retry cannot silently change its wording.
151
+ Restore `atelier dev --knowledge`, retry, or reload the session to inspect
152
+ what was actually recorded. Retry controls survive reload and export.
153
+ **End retry and inspect history** stops the tab's retry attempt and preserves
154
+ its request in exported snapshots; it does not cancel or delete server
155
+ history. If recorded wording differs from the text in your tab, the current
156
+ recorded wording and retained answers appear beside it before another intent.
157
+ A failed history inspection remains visible. Reload does not silently erase
158
+ unsaved text. Discarding tab text is explicit.
159
+ 5. Export a private snapshot for owner review. It includes saved wording,
160
+ receipts, bound source evidence, unsaved text, and a pending request when
161
+ present. Review its audience before sharing. Browser download behavior is
162
+ browser-owned; export does not transmit it to a collaborator.
163
+
164
+ Unsaved tab text is not durable across tab closure or browser failure. The UI
165
+ warns on navigation while dirty; recording an answer or exporting a snapshot is
166
+ the recovery path. No browser local storage accumulates source material.
167
+
168
+ The source plan and records are never edited by this surface. A source owner
169
+ uses the exported proposal in its own ordinary edit/review workflow, reviews
170
+ an exact diff, applies the admitted change, reruns `knowledge check` and
171
+ `knowledge evaluate`, and starts a session bound to the resulting sources.
172
+ Never update evidence pins merely to make a failing case pass. A changed
173
+ source or project makes old sessions historical; the original prompts,
174
+ evidence, and wording remain readable, including when the current plan fails
175
+ validation. Correction creates a new session; saved-answer undo is not offered.
176
+
177
+ Descriptors are immutable, digest-checked files under ignored
178
+ `.atelier-local/knowledge/sessions/`. Accepted intents and draft receipts use the
179
+ existing coauthor ledger under `.atelier-local/coauthor/`. These are private
180
+ proposal artifacts, not a second canonical ontology database. Sessions require
181
+ a Git workspace with ignored, untracked local state. Descriptor and draft files
182
+ use owner-only modes on POSIX hosts. On Windows, access follows the host's
183
+ filesystem permissions; this surface does not install an access-control list.
184
+ Same-account filesystem control is not an authentication boundary.
185
+ An interrupted start is resumable only when its bound sources still match and
186
+ the retained start protocol, ledger, completion marker, and value files support
187
+ that interpretation. A completed start publishes an immutable marker before any
188
+ guided answer. Missing history with a completion marker or retained values is
189
+ never recreated as an empty session. A missing ledger or an incomplete legacy
190
+ descriptor requires inspection. A damaged descriptor does not hide other
191
+ sessions. Preserve damaged files for inspection; the surface never deletes them
192
+ to make history pass.
193
+
194
+ Each operation checks the current workspace and reports whether its bound
195
+ sources still match. External source editors do not share an atomic transaction
196
+ with the draft ledger: a change during an operation may leave a retained draft
197
+ whose response reports changed sources. These drafts never authorize canonical
198
+ writes or effects. Review and rebind before using them after source changes.
199
+
200
+ ## People and agents share the same flow
201
+
202
+ `atelier knowledge dashboard` prints the five views as JSON. Obtain its current
203
+ `snapshot` and an actual question ID. Session commands read one JSON object
204
+ from stdin, at most 1 MiB; `list` needs no input:
205
+
206
+ ```sh
207
+ atelier knowledge session list
208
+ atelier knowledge session start < start-request.json
209
+ atelier knowledge session read < session-request.json
210
+ atelier knowledge session event < event-request.json
211
+ atelier knowledge session recover < session-request.json
212
+ ```
213
+
214
+ Start takes `requestId` (a fresh UUID, retained for exact retry), `flow`
215
+ (`onboard`, `model`, `deepen`, `apply`, or `learn`), `questionId`, `snapshot`,
216
+ and `author`. Read/recover take only `sessionId`. Event takes `sessionId` and
217
+ an `event` with a unique `id`, current `expectedRevision`, and reducer `type`.
218
+ An `answer` or `propose` also carries `text`. All other event behavior follows
219
+ [coauthor sessions](coauthor-session.md). Clients cannot submit receipts or
220
+ failure events. Stale versions never silently overwrite an intervening answer.
221
+
222
+ Ask one useful question at a time. Record the person's exact answer. For
223
+ agent-written revisions, send `propose`, show original and proposed wording,
224
+ and wait for explicit confirmation before `confirm`. The API records intents;
225
+ it cannot authenticate that a human supplied one. Do not infer confirmation,
226
+ source-owner acceptance, or action authority from a saved draft.
227
+ UUID letters, including exact session IDs, are normalized to lowercase. Reusing
228
+ a start request ID with a different author, flow, question, or snapshot is refused. UTF-8 BOM plans are
229
+ supported: the workspace binds raw plan bytes, while the coauthor receipt binds
230
+ decoded text using the same definition as its source reader.
231
+
232
+ Keep requests in ignored local files rather than interpolating authored text
233
+ into shell commands. The CLI supports `--project` and `--plan` for an explicit
234
+ consumer location; browser sessions use that project's `knowledge-plan.json`.
235
+ A coauthor plan must be a visible, unredirected file inside its workspace.
236
+ The workspace directory itself may be reached through an alias or symbolic link;
237
+ plan segments inside it must not be symbolic links.
238
+ Resumed sessions check their own recorded plan, including sessions started with
239
+ `--plan`. Unavailable source checks are reported separately from changed sources.
240
+
241
+ ## Evaluation and scale
242
+
243
+ Context contains complete source text, not silently shortened qualifications.
244
+ The exact byte budget covers the context JSON, while estimated tokens are only
245
+ `ceil(bytes / 4)`. Source selection and dashboard retrieval make zero provider
246
+ calls. Workspace scans and evaluation across every planned question still have
247
+ local computation cost; context limits are not a whole-corpus scan deadline.
248
+
249
+ Descriptors are bounded to 1 MiB, session listings to the 200 newest local
250
+ descriptor files, and coauthor history to its existing ledger ceilings. Listings
251
+ include a total and truncation flag; invalid or unfinished entries are individual
252
+ unavailable rows. Use **Open an exact session ID** or the CLI to inspect an older
253
+ session beyond the listing limit; use CLI `recover` for an older incomplete start.
254
+ Each listing verifies one shared ledger snapshot and replays the selected session
255
+ chains. It does not cache state across requests. No history is silently deleted
256
+ or compacted. This first reference is for bounded local workspaces, with
257
+ text-based observations. It provides no numeric outcome aggregation, automatic source ingestion, semantic
258
+ inference, collaborative presence, or canonical editing UI.
259
+
260
+ Qualification should include an unfamiliar person and agent completing an
261
+ unseen useful question: time to first supported answer, correct abstention,
262
+ source support, confusion or assistance, corrections, actual token usage,
263
+ provider cost, and the observed outcome. Automated browser proof demonstrates
264
+ software behavior, not those human results.
@@ -0,0 +1,238 @@
1
+ # Knowledge development and the learning cycle
2
+
3
+ Status: implemented locally for the next release. Published alpha.7 does not
4
+ contain these commands. Use `node bin/atelier.mjs harness help` in this source
5
+ checkout, or `atelier harness help` from a package built from this candidate.
6
+
7
+ Knowledge Harness helps people establish, develop, use and revise what they know.
8
+ Ingestion is one capability within that larger purpose. Sources can also originate
9
+ in authorship, conversation, observation, research or implementation experience.
10
+ The graph is one maintained representation; documents, source collections,
11
+ datasets and decisions remain important in their own right.
12
+
13
+ People define purpose and acceptance criteria. Agents prepare admitted work.
14
+ Designated owners validate consequential interpretations and delivery. The local
15
+ records cannot authenticate those people or grant permissions on their behalf.
16
+
17
+ ## The capability family
18
+
19
+ | Capability | Responsibility |
20
+ | --- | --- |
21
+ | Discovery Harness | Frame questions, alternatives and uncertainties |
22
+ | Research Harness | Investigate and return traceable evidence |
23
+ | Knowledge Harness | Develop, evaluate, curate and activate knowledge |
24
+ | Build Harness | Turn an objective into a verified deliverable |
25
+ | Fabric or another coordinator | Coordinate owners, outcomes, dependencies and delivery gates |
26
+ | Skill Steward | Govern capability versions, adoption and improvement |
27
+
28
+ The shared API is `@mnstry/atelier/harnesses`; domain APIs are
29
+ `@mnstry/atelier/knowledge` and `@mnstry/atelier/build`. The existing
30
+ `@mnstry/atelier/harness` context API and `atelier build` projection alias are
31
+ unchanged. Build workflow commands begin `atelier harness build`.
32
+
33
+ The shared layer provides immutable references, bounded history storage,
34
+ explicit handoffs, current-input reconciliation and version-bound feedback.
35
+ Knowledge and build retain separate closed schemas and state semantics. Existing
36
+ inquiry records are read through a bridge, never rewritten into a universal record.
37
+
38
+ ## Establish a useful knowledge domain
39
+
40
+ An establishment record names its repository identity, owner, purpose, scope,
41
+ audience, source policy, acceptance policy, identity rules, vocabulary and the
42
+ questions it must support. Each question has a concrete acceptance criterion.
43
+ Types and relations have definitions; each relation maps explicitly to an
44
+ existing graph predicate. Start with a small representative collection and
45
+ check the question-to-evidence trace before scaling acquisition.
46
+
47
+ Contribution categories are source, observation, concept, claim, model,
48
+ interpretation and decision rationale. Their domain-specific term comes from the
49
+ declared vocabulary. These categories describe a contribution's role; they are
50
+ not grades of truth. Ontology changes use a new `domain-revision` with migration
51
+ rationale and flag old dependants for reconsideration. This conservative first
52
+ implementation requires reevaluation under the new domain; it does not silently
53
+ remap old types or merge identities.
54
+
55
+ ## Acquire, create, interpret and evaluate
56
+
57
+ `atelier harness example` prints an invented complete learning cycle. It includes
58
+ simulated owner decisions, CI and delivery reports; none is real execution proof.
59
+ The per-profile ledger examples show every supported record shape.
60
+
61
+ Preserve existing files with `@mnstry/atelier/intake`. Its `ingest`, `beginAttempt`,
62
+ `completeAttempt` and `readCompletion` operations keep source bytes, extractor
63
+ identity/configuration and output receipts separate. The new
64
+ `prepareIntakeContribution` verifies existing completion and output bytes and
65
+ prepares a source contribution. It invokes no extractor and accepts no meaning.
66
+
67
+ ```js
68
+ import { createIntakeStore, intakeDigest } from '@mnstry/atelier/intake'
69
+ import { prepareIntakeContribution } from '@mnstry/atelier/knowledge'
70
+ import { appendHarness, EMPTY_HARNESS_HEAD } from '@mnstry/atelier/harnesses'
71
+
72
+ // The caller chooses a Git root with ignored .atelier-local/ and authors domain.
73
+ appendHarness({ workspaceRoot, profile: 'knowledge', record: domain,
74
+ confirm: EMPTY_HARNESS_HEAD })
75
+ const intake = createIntakeStore({ workspaceRoot })
76
+ const source = intake.ingest({ ref: sourcePath, expectedDigest: intakeDigest(sourceBytes) })
77
+ intake.beginAttempt({ attemptId, blobId: source.blobId,
78
+ extractorId, extractorVersion, configurationDigest })
79
+ // The separately authorized processor supplies output; the harness does not run it.
80
+ intake.completeAttempt({ attemptId, output, expectedOutputDigest: intakeDigest(output) })
81
+ const proposed = prepareIntakeContribution({ workspaceRoot, records: [domain],
82
+ attemptId, title: 'Source material', term: declaredType })
83
+ // Author a contribution record around proposed.data, then append with the current head.
84
+ ```
85
+
86
+ Authored contributions retain a rationale for their origin. Captured text binds
87
+ its digest and source locator. Extraction binds the original blob, attempt,
88
+ configuration and output. An exchange retains its complete handoff. Derived
89
+ contributions use exact quoted passages from earlier contributions; scope and
90
+ audience widening refuse. Missing passages, versions, references and vocabulary
91
+ are failures. Source text cannot expand execution authority.
92
+
93
+ A private container can hold public contributions. When an export includes domain
94
+ context, its audience is at least as restrictive as both the domain and the
95
+ contribution. Sensitive material requires a sensitive receiver. Team, staff and
96
+ operator are separate audiences; combining them requires private containment.
97
+
98
+ Evaluation records preserve judgment (`supported`, `contested`, `uncertain`,
99
+ `unsupported`), rationale, applicability scope and limitations. Reviews separately
100
+ record accepted, deferred or rejected dispositions. Accepted contributions require
101
+ an evaluation and accepted evidence dependencies. A curated uncertain claim
102
+ remains uncertain. This layer does not calculate an undifferentiated confidence
103
+ score. Bayesian assumptions and computed results remain in the inquiry assessment
104
+ that the research handoff references and preserves.
105
+
106
+ A new evaluation reopens the contribution's prior acceptance and its downstream
107
+ uses. A replacement review must account for every current evaluation, including
108
+ contradictory judgments. Reacceptance preserves the earlier review and does not
109
+ silently restore old handoffs or activations.
110
+
111
+ ## Connect, activate and revise
112
+
113
+ Propose identity matches or conceptual links as relation records. Acceptance
114
+ requires current accepted endpoints. No entity merge is automatic. An activation
115
+ names reviewed contributions/relations, purpose, destination and domain questions.
116
+ `knowledgeGraphProposal` emits draft Markdown and unpromoted `atelier-claim@v1`
117
+ edges, with selected evidence dependencies, reviews and limitations retained.
118
+ Accepted relations also receive draft evidence documents containing their rationale,
119
+ review and domain definition; the corresponding edge pins that relation and review.
120
+ The receiver reviews/adopts the exact files through its existing authoring process,
121
+ rebuilds the graph and verifies the meaningful source trace.
122
+
123
+ Withdraw or revise a contribution without deleting the original. Local descendants
124
+ become reconsideration items. Downstream repositories use current source snapshots
125
+ to discover changed inputs through `reconcileKnowledge` or `buildReadiness`.
126
+ Previously admitted graph files are not rewritten or removed automatically.
127
+ Revisit their source decisions and prepare a new authorized change.
128
+
129
+ ## Handoffs and freshness
130
+
131
+ `createHarnessHandoff` binds a source repository label, profile, run, history digest,
132
+ subject reference, audience, exact payload, destination and purpose. Knowledge
133
+ exports accepted contributions; inquiry exports accepted current decisions; build
134
+ exports a current accepted candidate with resolved dependencies. An external
135
+ destination remains subject to the host's disclosure and execution rules.
136
+
137
+ `source.repositoryBinding` is `establishment-record` for knowledge/build, whose
138
+ establishment records declare the repository. Existing inquiry campaigns have no
139
+ repository field, so their handoffs explicitly use `caller-declared`; verification
140
+ reports the same distinction. Neither value authenticates a repository or owner.
141
+
142
+ `verifyHarnessHandoff` verifies a supplied producer history against those pins.
143
+ The current history must contain the complete exact issued history as a prefix;
144
+ unrelated appends are allowed only while the subject and accepted payload remain
145
+ unchanged and current. A source rewrite, relevant correction, ontology migration,
146
+ gate replacement or candidate replacement invalidates the relevant handoff.
147
+
148
+ Snapshots are explicit `{repository, profile, records}` objects. Missing or
149
+ ambiguous sources cannot clear freshness. Reconciliation can traverse knowledge,
150
+ inquiry and build dependencies, bounded to 12 dependency hops, 64 supplied snapshots
151
+ and 256 verification calls per operation. Inspected histories and successful
152
+ verification results are cached within that operation. A verification budget
153
+ failure is a named reconsideration reason or readiness blocker, never freshness.
154
+ `verifyHarnessHandoff`, `reconcileKnowledge` and `buildReadiness` report
155
+ `dependencyWork`; their optional `verificationLimit` can lower the ceiling.
156
+ Freshness is relative to the supplied snapshot, not a live remote observation.
157
+ The toolkit cannot detect a withheld update or authenticate the source owner.
158
+ The receiver must obtain snapshots through its existing trusted process.
159
+
160
+ `prepareKnowledgeImport` verifies a handoff and prepares a contribution with
161
+ semantic acceptance pending. Its full context stays in the contribution. Graph
162
+ activation and outgoing handoffs recheck relevant imported dependencies. An
163
+ unavailable proprietary service does not prevent reading or exporting saved
164
+ records, although current remote-input freshness may remain unresolved.
165
+
166
+ ## Build discipline derived from Fabric
167
+
168
+ A build objective declares owner, scope, acceptance criteria, required gates,
169
+ artifact dependencies, admitted effects, attempt budget and stopping rule.
170
+ A candidate pins repository identity, commit, tree, artifact digest and reported
171
+ writer custody. `prepareGitCandidate` reads a selected local Git root, requires
172
+ clean source, verifies the artifact twice and prepares its exact candidate data.
173
+ It executes no build or test and does not authenticate the writer declaration.
174
+
175
+ Record attempt intent before an external command/adapter invocation. Progress can
176
+ be running, uncertain, completed, failed or cancelled. Unsettled or completed
177
+ operations refuse replay; a failed/cancelled attempt can be retried within the
178
+ declared budget. An uncertain attempt requires reconciliation against that same
179
+ attempt. The harness neither dispatches nor cancels the actual process, and a
180
+ caller-reported cancellation cannot establish physical process cleanup.
181
+
182
+ Gate reports bind the exact candidate and a declared gate with evidence digest,
183
+ locator and verifier identity. Required source, review, CI, runtime, integration
184
+ and delivery gates stay distinct. Transport completion never creates a passed
185
+ gate. Where a gate names an attempt, a pass requires completion on that candidate.
186
+ External CI/review adapters must validate their native receipts before recording
187
+ reports; this local core cannot authenticate arbitrary supplied evidence digests.
188
+
189
+ An accepted decision requires current passed required gates and settled attempts.
190
+ `buildReadiness` also rechecks explicit dependency snapshots. Its result is
191
+ `readyReported`, with `authenticatedAcceptance:false` and
192
+ `executionAuthorized:false`. A delivery report is a separate record. Replacing
193
+ a candidate, gate or decision leaves older proof visible and marks dependants.
194
+
195
+ `buildCoordinationProposal` exposes owner, outcome, dependencies, candidate, gates
196
+ and blockers for Fabric or another coordinator. It reads no private Fabric state,
197
+ creates no tasks, sends no messages, and does not claim coordinator acceptance.
198
+ Concrete CI connectors, authenticated receipt verification, distributed worker
199
+ leases and operated scheduling remain adapters, outside this local implementation.
200
+
201
+ ## Storage, skills and boundaries
202
+
203
+ `atelier harness knowledge|build append --record FILE --confirm DIGEST` appends
204
+ to `.atelier-local/harnesses/PROFILE/RUN/ledger.json`. Use `status` for the head
205
+ and `export` for the complete ledger, including private content. `inspect` checks
206
+ history and references; `validate` checks one record's shape only.
207
+
208
+ Writes require a Git root, ignored untracked private state, a qualified POSIX
209
+ filesystem, the cooperating-writer lock and the current head. Windows ledger
210
+ writes refuse before creating state; read-only inspection and exchange of
211
+ existing histories remain available. Atomic single-file replacement preserves
212
+ a complete previous or next history after interruption.
213
+ Hard process termination can leave the shared lock for operator reconciliation;
214
+ no automatic lock recovery or multi-repository transaction is added here. Hashes
215
+ do not defend against a writer who can replace the whole history. Audience labels
216
+ are descriptive; repository access remains the actual read boundary.
217
+
218
+ Limits are 256 records and 8 MiB serialized per ledger, 64 items in bounded record
219
+ arrays, 262,144 characters per contribution, and 1,048,576 characters per handoff
220
+ payload. Existing intake allows larger outputs; a contribution that exceeds these
221
+ bounds needs an explicit continuation plan. No silent compaction occurs.
222
+
223
+ `atelier-knowledge-harness` and `atelier-build-harness` ship as identical Codex and
224
+ Claude skills and independently sealed reference packages. Adopt through the
225
+ existing capability Steward with observed `atelier-harness-v1` availability and
226
+ explicit local effects. Preserve third-party skills and customizations. The
227
+ packages declare their behavioral evaluation unknown; placement is not host use.
228
+
229
+ `prepareHarnessFeedback` binds feedback to the skill binding in effect at the
230
+ subject record. The receiver's `capability observe` checks actual current binding.
231
+ Context/provider causes remain in the wrapper and map to unknown in the older
232
+ Steward event vocabulary. Feedback never rewrites, publishes or upgrades a skill.
233
+
234
+ The contracts, skills, storage, basic calculations, graph proposals and offline
235
+ exchange remain open. Optional operated services can supply specialized extraction,
236
+ managed execution, collaboration, connectors or advanced inference. Credentials,
237
+ cost limits, source access, authenticated receipts and operational permissions
238
+ remain host-owned; local manifests confer none of them.