@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,164 @@
1
+ # Portable template profiles
2
+
3
+ Status: Next-release package API. Import validators from
4
+ `@mnstry/atelier/templates` and canonical project binding from
5
+ `@mnstry/atelier/template-bindings`. The versioned schema is exported at
6
+ `@mnstry/atelier/contracts/atelier-template-profile.v1.schema.json`.
7
+ These APIs do not establish installed product-host acceptance.
8
+
9
+ A template profile names semantic roles, surface roles, supported carriers,
10
+ compatibility and limits. An adopter binds those roles to its own source. The
11
+ profile carries no project content, renderer, runtime handler or permission.
12
+
13
+ ## Four independent grammars
14
+
15
+ - Semantic roles describe resource, relation, facet, asset, collection, sequence,
16
+ occurrence, offer and action-descriptor structure. Profiles choose a subset.
17
+ - Surface roles describe composition: Shell, region, collection, card, detail,
18
+ graph, filter, offer, status, refusal and receipt views. They reference semantic
19
+ role identifiers, not executable components.
20
+ - Runtime meaning is an optional opaque `RuntimeProfileRef`. A host must supply
21
+ the exact profile for runtime participation; ordinary local authoring needs
22
+ no runtime connection. The profile never creates an operation or receipt.
23
+ - Governance and release identities are typed digest-bound references. A
24
+ `TemplateRef` is not interchangeable with a source, policy, authority decision,
25
+ project binding, projection or release reference.
26
+
27
+ ## Validation stages
28
+
29
+ | Entry point | Checks | Does not prove |
30
+ | --- | --- | --- |
31
+ | `validateTemplateDefinition(profile)` | Closed grammar, bounded data, unique roles, surface references and supported extension behavior | Adoption, content or host availability |
32
+ | `validateTemplateBinding(profile, binding, records)` | Exact template, role cardinality, required roles, resolved source digests | Source ownership or content truth |
33
+ | `validateTemplateRelease(profile, binding, release, records)` | Exact binding, projection/source/policy/decision/payload references, required carriers | Publication acceptance, rights or distribution |
34
+ | `validateTemplateHost(profile, host)` | Exact version/pack/runtime requirements, primitives and optional decision observations | Host authentication, actual renderer behavior or operation permission |
35
+
36
+ Every result includes `authority: structural-only`, `executionAuthority: false`
37
+ and `publicationAuthority: false`. No result authorizes a write, network request,
38
+ installation or publication. The implementation does not mutate inputs.
39
+
40
+ Reference inventories contain `{ ref, document }` entries. All entries are
41
+ bounded plain JSON; duplicate `(kind, id, version)` identities refuse even if
42
+ their digests differ. References must resolve to exact supplied bytes. No URL
43
+ fetching, path loading, provider call or dynamic extension code occurs.
44
+
45
+ `templateReference(kind, id, version, document)` hashes the existing Atelier
46
+ canonical JSON serialization of:
47
+
48
+ ```json
49
+ { "schema": "atelier-template-digest@v1", "kind": "SourceRef", "id": "sample", "version": "v1", "document": {} }
50
+ ```
51
+
52
+ The digest is `sha256:` plus lowercase hexadecimal. Kind, identifier and version
53
+ belong to the digest domain. Template, binding and release versions use SemVer;
54
+ other source-owned versions remain opaque strings. Pack versions retain their
55
+ existing `vN` contract. None of these digests is a signature or an authenticated
56
+ authority decision. This new domain does not reinterpret older artifact digests.
57
+
58
+ ## Extensions and evolution
59
+
60
+ This is a separate versioned artifact; the closed extension-pack v1 schema is
61
+ unchanged. Profiles may link optional namespaced schema/payload references.
62
+ Their bytes must resolve at binding/release validation, but their meanings stay
63
+ opaque and inert. This version registers no required extension handlers and
64
+ refuses every required extension. Do not place required behavior in optional
65
+ annotations to evade admission.
66
+
67
+ Exact compatible Atelier versions and pack digests are explicit. There is no
68
+ automatic version coercion, range admission, migration or upgrade apply in this
69
+ module. A new contract version and the existing owner-controlled upgrade path
70
+ must govern changes. Keep prior source and profile artifacts for recovery.
71
+
72
+ The schema follows the contract epoch's optional `contractVersion` and `ext`
73
+ conventions. Its `ext` containers are reserved and permit no properties in this
74
+ revision. Optional extension data must use the explicit digest-bound namespaced
75
+ `extensions` list; required behavior cannot be smuggled through an ignored bag.
76
+
77
+ ## Optional advisory decisions
78
+
79
+ `optionalDecisions` declares named tasks using `atelier-decision-request@v1`.
80
+ Each is explicitly optional; the schema refuses a required provider and provides
81
+ no vendor selector. `validateTemplateDecision` consumes the existing request and
82
+ result validators, checks the task binding, and retains proposal-only semantics.
83
+ It does not decide whether the answer is true or should influence the graph.
84
+
85
+ A host may report `absent`, `disabled`, `unqualified` or `available`. Available
86
+ requires an exact `CapabilityRef`; it remains an untrusted structural observation
87
+ until the host's existing capability and authority checks qualify it. Absence
88
+ leaves local reading and authoring usable. Every diagnostic retains a
89
+ deterministic/manual fallback and `invocationAuthorized: false`.
90
+
91
+ No decision SDK, credential, network access, provider selection or automatic
92
+ substitution is required. Actual consent, disclosure, execution, budgets,
93
+ revocation and qualification remain with the existing host/capability owners.
94
+ This module adds neither a capability registry nor a second decision ontology.
95
+
96
+ ## Synthetic proof and remaining integration
97
+
98
+ ```sh
99
+ node --test test/template-profile.test.mjs
100
+ ```
101
+
102
+ The invented reading-shelf fixture exercises structural positive cases and
103
+ refusals. It is not a real publication, owner approval, visual baseline or
104
+ conformance certificate. Software/definition licensing never supplies content
105
+ rights or paid-service entitlement.
106
+
107
+ ## Canonical project binding
108
+
109
+ `@mnstry/atelier/template-bindings` exports `createTemplateProjectView(project,
110
+ requestJson)`. Supply an existing loaded Atelier project and bounded JSON text
111
+ with `profile`, `projectRef`, `roleNodeIds`, `target` and optional `theme`.
112
+ For example, `roleNodeIds: { items: ['library:paper', 'library:thread'] }` binds
113
+ the synthetic shelf's role to existing source identities. The adapter calls the
114
+ canonical graph builder with its fresh file cache; each SourceRef binds the
115
+ exact Markdown byte digest used by that census, not metadata alone.
116
+
117
+ The initial adapter supports classified active Markdown sources bound as
118
+ Resource, with CollectionView/StatusView presentation. CollectionView is a view
119
+ of selected resources, not proof of a semantic Collection. An unused optional
120
+ Collection role reports unsupported without closing local Resource authoring;
121
+ binding it or requiring it refuses until an explicit canonical mapping exists.
122
+ Unknown targets,
123
+ missing or withheld selected sources, audience/repository-boundary widening,
124
+ unsupported views, missing required roles and runtime-profile requirements
125
+ refuse. Draft/archived sources do not appear. Local archival is not a governed
126
+ withdrawal receipt, and old exported copies are not remotely erased.
127
+
128
+ Presentation models, escaping, themes and static HTML come from the existing
129
+ presentation package. Web and document preview are the same read-only bytes;
130
+ no inert control pretends to be an implemented action. The adapter writes no
131
+ source, projection, lock or release and performs no provider call. Optional
132
+ decisions report absent with the deterministic/manual fallback.
133
+
134
+ `textPreview` provides the same selected titles, summaries, self-description
135
+ and status as plain text without CSS, script or media. It is a local low-bandwidth
136
+ preview, not an email/chat adapter, portable document package or publication.
137
+
138
+ ```sh
139
+ node --test test/template-profile.test.mjs test/template-journey.test.mjs
140
+ ```
141
+
142
+ The journey test uses disposable synthetic repositories, the actual local
143
+ maintenance engine and production `createSourceApply`, not an alternate source
144
+ writer. A simulated person's edit is held, applied to canonical source,
145
+ rebuilt and rendered; the old binding refuses against the new source, duplicate
146
+ apply is idempotent and an unrelated resource remains byte-identical. The test
147
+ does not open the desktop application, accept a release or prove accessibility
148
+ with assistive technology. On platforms without production atomic exchange,
149
+ the apply journey explicitly skips and must not count as platform acceptance.
150
+
151
+ `npm run consumer:smoke` installs the exact tarball offline and exercises the
152
+ template APIs by package name. Its synthetic journey binds canonical source,
153
+ checks provider absence and audience refusal, applies an edit through the
154
+ installed source-apply owner, rejects the stale binding, and checks idempotence
155
+ and preservation of an unrelated source. Atomic exchange is required for the
156
+ write portion; other platforms retain the read-only checks.
157
+
158
+ The built-in [template adoption participant](template-upgrades.md) connects local
159
+ profile adoption, exact locks, retained history and read-only projections to the
160
+ existing upgrade transaction engine. External packs, runtime extensions and
161
+ automatic restoration remain unsupported.
162
+
163
+ Remaining integration includes interactive host wiring, all-carrier conformance,
164
+ actual host/accessibility/visual proof, and receiving-owner acceptance.
@@ -0,0 +1,114 @@
1
+ # Local template adoption
2
+
3
+ The built-in `local-template-profile@1` participant prepares an inert template
4
+ profile, graph selection and read-only projection in the existing exact-plan
5
+ upgrade engine. It uses the same exclusive writer, exact preimages, saved bytes,
6
+ append-only private journal, backups, commit hooks and commit verification.
7
+ It is not a plugin registry or a second transaction engine.
8
+
9
+ ## Prepare and inspect
10
+
11
+ Use an isolated linked worktree with one managed root repository. Commit the
12
+ profile and selection JSON inputs before preparing. Both paths must be literal,
13
+ distinct, root-relative regular non-executable files outside managed output.
14
+ The selection has exactly `projectRef`, `roleNodeIds`, `target`, and optional
15
+ `theme`. Source selection and disclosure are enforced by the existing canonical
16
+ graph, projection policy and template composition adapter.
17
+
18
+ Explicit enrollment uses `atelier.adoption-policy.json`:
19
+
20
+ ```json
21
+ {
22
+ "schema": "mnstry.atelier-adoption-policy@v2",
23
+ "enabled": true,
24
+ "participant": "local-template-profile@1",
25
+ "mode": "manual-exact-plan",
26
+ "maxAgeSeconds": 86400,
27
+ "recoveryCoverage": "local-only",
28
+ "allowedEffects": ["template-adoption", "lock-and-projections", "git-commit"]
29
+ }
30
+ ```
31
+
32
+ The API is exported through the existing `@mnstry/atelier/upgrade` subpath:
33
+
34
+ ```js
35
+ import { prepareTemplateUpgrade, explainSavedUpgrade, applySavedUpgrade }
36
+ from '@mnstry/atelier/upgrade'
37
+
38
+ const prepared = prepareTemplateUpgrade({
39
+ project,
40
+ profileFile: 'next-profile.json',
41
+ selectionFile: 'next-selection.json',
42
+ })
43
+ const explanation = explainSavedUpgrade({ project, planFile: prepared.savedPlan })
44
+ // Inspect the exact changes and obtain the owner's selection before applying.
45
+ // A digest identifies bytes; it does not authenticate a human decision.
46
+ const result = applySavedUpgrade({
47
+ project,
48
+ planFile: prepared.savedPlan,
49
+ confirm: prepared.plan.digest,
50
+ })
51
+ ```
52
+
53
+ There is no new CLI command family. The existing saved-plan apply, explain,
54
+ status and recovery entry points understand the new v3 plan. Existing v2 plans
55
+ remain supported and still refuse execution when their pinned executor changes.
56
+ Policies are never silently converted.
57
+
58
+ ## Installed state
59
+
60
+ The engine owns only these template paths:
61
+
62
+ - `atelier-template/profile.json` and `selection.json`: Exact inert input bytes.
63
+ - `atelier-template/adoption.json`: Validated installed state with typed refs,
64
+ raw input digests and the four managed-content digests/modes.
65
+ - `atelier-template/history/<digest>.json`: Exact immutable prior adoption
66
+ manifest on subsequent adoption.
67
+ - `atelier-output/template.html` and `template-binding.json`: Read-only
68
+ rendering and its validated source binding.
69
+
70
+ The existing lock and normal four graph/projection/readiness files are refreshed
71
+ through their original builders. The v1 lock keeps unrelated fields, provenance,
72
+ migration history, historical success metadata, and the complete workspace
73
+ template lineage in `lock.template`. Only package and generated information
74
+ are refreshed. The separate adoption document owns the profile's typed identity,
75
+ version, and digest. A profile adoption never replaces the workspace template
76
+ identity or version. The adoption document does not hash itself recursively.
77
+
78
+ First adoption refuses orphan reserved state. Later adoption verifies every
79
+ managed preimage and the complete prior-manifest chain. Committed local changes
80
+ to managed files refuse rather than being overwritten. Source documents and
81
+ ordinary local configuration are never template write targets.
82
+
83
+ Repeating the same valid inputs is another explicit adoption, not an implicit
84
+ no-op: it appends a new adoption manifest linked to the previous one. Identical
85
+ profile, selection and projection bytes are not rewritten. Existing history is
86
+ verified and retained. Empty reserved root/history directories are harmless;
87
+ unknown reserved child directories are refused, including empty ones.
88
+
89
+ Before mutation the engine recomputes the template output using current canonical
90
+ source and compares it to the saved bytes. After writes it verifies the installed
91
+ profile, selection, binding and rendering against that same source. A partial or
92
+ failed operation never reports completed adoption.
93
+
94
+ ## Limits and recovery
95
+
96
+ External packs, runtime profiles, extension handlers, local overlays, custom
97
+ callbacks, package installation, network retrieval, source migrations and
98
+ automatic consent remain unsupported. This first participant does not claim
99
+ full template migration or all-carrier conformance.
100
+
101
+ The exact-plan POSIX, clean-worktree, path, Git, hook, expiry, bounded-inventory
102
+ and local-evidence controls still apply. Only regular create/update writes are
103
+ supported; no deletion, rename, executable mode change or arbitrary scaffolding
104
+ is added. An accepted attempt consumes its plan, including an interrupted attempt.
105
+
106
+ Use the existing operation status and recovery dry-run API. Recovery describes
107
+ verified backups and conflicts; it never restores files, resets history, clears
108
+ a lease, resumes a consumed plan or supplies new consent automatically. A later
109
+ restoration needs a separately reviewed operation. Corrupted or missing evidence
110
+ cannot become success.
111
+
112
+ A completed transaction means a local candidate commit only. Independent review,
113
+ CI, merge, publisher authentication, package release, recipient adoption,
114
+ runtime activation and human acceptance remain separate.
@@ -0,0 +1,111 @@
1
+ # Trackables: one definition, one domain writer
2
+
3
+ A Trackable follows an identifiable subject or pursuit over time. Its adopted
4
+ definition, instance, occurrences, evidence and qualified views retain separate
5
+ meanings. Following a practice, completing a milestone and recording a reflection
6
+ use different profiles. A recorded result does not establish independent ability.
7
+
8
+ The portable `@mnstry/atelier/trackables` API exports one domain reducer used by
9
+ `previewTrackable` and the private `createTrackableStore` reference adapter.
10
+ Product hosts adapt this reducer through their existing authenticated domain
11
+ writer. They must not copy member state into a Witness-specific store.
12
+
13
+ ## Supported reference profile
14
+
15
+ | Profile | Occurrence | Evidence | Domain fulfillment |
16
+ | --- | --- | --- | --- |
17
+ | Recurring practice | Local calendar day in an explicit IANA timezone | Completed, partial, skipped, waived, not applicable | Separate from completing an occurrence |
18
+ | Milestone | One opportunity for the adopted definition | Same explicit result states | Explicit open, fulfilled or released disposition |
19
+ | Qualitative series | Unscheduled source event | Attributed text observation | Unscored |
20
+
21
+ Missing evidence is `unobserved`, never zero or automatic failure. Several
22
+ matching reports of one occurrence count once; conflicting reports remain
23
+ `disputed`. Manual and session records retain separate source identities and
24
+ assistance. A source event cannot be recaptured under another evidence ID for the
25
+ same instance. Different instances and days remain distinct.
26
+
27
+ This bounded profile supports daily calendars, not arbitrary recurrence,
28
+ quantitative meters, streaks or a universal progress score. It uses the host's
29
+ installed IANA timezone data for new records, previews and current windows.
30
+ Journal replay preserves each recorded occurrence's original local day. Native
31
+ schedulers retain calendar ownership and
32
+ must qualify their mappings, including timezone database version where needed.
33
+
34
+ `releaseTrackable` validates and hashes a definition. Releasing new bytes does
35
+ not change existing instances. `adopt` requires a later compatible revision and
36
+ an explicit effective instant; it refuses changes that reinterpret recorded
37
+ occurrences. Late reports resolve the definition applicable at occurrence time.
38
+ DST changes preserve local-day identity. A timezone change uses a new definition.
39
+
40
+ The immutable journal records every command, actor assertion, recording time,
41
+ source time and resulting state digest. New events use `atelier-trackable-event@v2`;
42
+ record events also pin the resolved occurrence, source instant/reference and host
43
+ timezone-data version (`null` if unavailable). Replay checks these against the
44
+ adopted definition, scope, instance and command, without recalculating the stored
45
+ local day. Event-chain and resulting-state digest checks still apply. This is
46
+ local integrity checking, not authentication of the host calendar or recorder.
47
+ Corrections preserve original events and
48
+ invalidate dependent fulfillment evidence. Lifecycle, domain fulfillment,
49
+ evidence quality and attention remain independent. Pausing prevents new capture;
50
+ retirement is terminal. Views describe current corrected knowledge about the
51
+ selected occurrence time, not historical knowledge as it was then understood.
52
+
53
+ ## Local use and ownership
54
+
55
+ Run `atelier trackable preview|release|execute|snapshot|view|export` with JSON stdin.
56
+ The existing workspace must ignore `.atelier-local/`. Local identity is asserted,
57
+ not authenticated. `scope` selects a private store; operating-system access is
58
+ its trust boundary, so this is not multi-tenant access control. Exports are
59
+ private and require deliberate handling. Withdrawal and correction retain
60
+ history; this adapter does not claim secure erasure or automated retention.
61
+
62
+ A command has `schema: "atelier-trackable-command@v1"`, `requestId`,
63
+ `expectedRevision`, `operation` and `input`. Operations are `release`,
64
+ `instantiate`, `adopt`, `record`, `correct`, `lifecycle` and `disposition`.
65
+ The exported [schema](../contracts/atelier-trackable.v1.schema.json) and
66
+ [fixtures](../fixtures/atelier-trackable) specify exact fields.
67
+
68
+ `execute` locks the selected scope, verifies history, applies the shared reducer,
69
+ atomically publishes one event and reads it back. Replaying the same request and
70
+ actor returns the original receipt; changed input under that identity refuses.
71
+ A lost response can therefore be reconciled by retrying the original command.
72
+ Dead process locks use the existing private-state custody mechanism. Journal
73
+ capacity reserves room for correction and retirement; full histories remain
74
+ available for explicit export. No automatic archive or compaction is performed.
75
+
76
+ Older `atelier-trackable-event@v1` events remain readable and can precede new v2
77
+ events without rewriting history. They lack the original calendar observation,
78
+ so replay still needs compatible timezone data. If replay of a legacy record
79
+ produces a different state digest, snapshot, view and execute refuse.
80
+ `exportHistory()` remains available after verifying the full event chain and
81
+ returns `stateVerified: false` plus `replayError`; these raw events are not a
82
+ verified reconstructed state. Restore the original calendar environment before
83
+ resuming that store. Do not infer a timezone change from this diagnostic alone,
84
+ or rewrite old digests to make them pass. Other replay and integrity failures
85
+ still refuse; a valid reconstruction exports `stateVerified: true`.
86
+
87
+ ## Authoring and host adoption
88
+
89
+ Definition fields `profile` and `schedule` are enforced by the reducer and
90
+ occurrence resolver. `id` and `revision` pin meaning; `purpose` is rationale;
91
+ `interpretationLimits` are surfaced guidance. The engine revision appears in
92
+ release and view outputs. Host binding must additionally name immutable source
93
+ resolution, authentication, operation authorization, evidence-source validation,
94
+ storage and rendering. Caller-supplied source digests are provenance assertions,
95
+ not proof that a session or instrument reported them.
96
+
97
+ The reducer's optional `occurrenceResolution` context is for replay of a
98
+ previously verified journal, never user-authored command input. Native writers
99
+ that use it must persist and verify the command, complete resolution and state
100
+ digest together. The local adapter derives it from the new state and never
101
+ accepts a caller override. Existing recorded evidence keeps its occurrence when
102
+ current rules change; new evidence and the current-window view can consequently
103
+ resolve the same instant to a different day. The API does not silently merge or
104
+ reinterpret those occurrences.
105
+
106
+ Reference tests exercise preview/runtime parity, durable reload, scoped stores,
107
+ correction, duplicate transport/source events, same-day instances, late evidence,
108
+ DST, timezone adoption, simulated timezone-data drift, legacy export-only
109
+ recovery and refusal of inconsistent replay metadata. These establish the portable subset. Authenticated
110
+ member-host adoption, actual UI refresh and broader calendar profiles require
111
+ separate receiving-host evidence.
package/docs/upgrade.md CHANGED
@@ -9,6 +9,51 @@ workspace between Atelier package releases. The flow is local-only: it does not
9
9
  provision repositories, contact a Git host, mutate the MNSTRY runtime, or write
10
10
  through a browser view.
11
11
 
12
+ ## Upgrading to 0.2.0-alpha.13
13
+
14
+ The public [Knowledge Health workshop](knowledge-health/devday/public-default.md)
15
+ uses an invented local workspace. Participants can retain their original words,
16
+ a separate interpretation and a `note`, `perspective-only`, `disagreement` or
17
+ `pause` response. Review is a separate optional session. A selected draft can
18
+ produce one retained copy-only source-owner proposal; retries and reopen read
19
+ back its original receipt instead of appending another proposal. A source owner
20
+ reviews the proposal and edits the declaration with normal repository tools,
21
+ then reads it back and reassesses. The browser host grants no source-apply route.
22
+
23
+ `atelier knowledge semantic` exposes the existing semantic runner's eleven
24
+ operations through JSON stdin. It retains the runner's refusal codes and saved
25
+ failure details. The [semantic operation contract](semantic-operation.md)
26
+ remains authoritative; this release adds no schema or package export.
27
+
28
+ Existing source and local history remain owned by their original repositories.
29
+ A package update supplies no interpretation approval, source-write permission,
30
+ Obsidian host qualification, publication authority or runtime activation. Rehearse
31
+ this exact installed version in a disposable workspace before client use.
32
+
33
+ ## Unreleased
34
+
35
+ The bundled readiness pack retains its original v1 content and digest. Existing
36
+ locks, including the prior alpha.10 release fixture, can prepare and apply both
37
+ ordinary v2 and template v3 exact plans without first rewriting the lock.
38
+ Discovery Harness is the architecture name; the persisted readiness entry still
39
+ uses Discovery Engine. Actual external pack changes still require their own
40
+ adoption procedure and are not accepted by either participant.
41
+
42
+ The next release adds the responsibility workflows, source-current ingestion,
43
+ Trackables, governed instruction adoption and local template profiles. Template
44
+ adoption uses the existing exact-plan transaction engine with explicit v2 policy
45
+ and v3 plans; existing policies are never converted automatically. See
46
+ [template profiles](template-profile.md) and [template adoption](template-upgrades.md).
47
+ Optional advisory decisions require no provider installation or activation.
48
+
49
+ New Trackable journals retain resolved calendar occurrences and byte-bound state.
50
+ Legacy v1 journals remain available as chain-verified exports when state replay
51
+ cannot be established. Preserve historical records and use the documented
52
+ [Trackables](trackables.md) host limits before adopting a new profile.
53
+ Regenerate local graph/projection artifacts through the ordinary upgrade process
54
+ and qualify each consuming host independently. A package update supplies no
55
+ publication permission or runtime activation.
56
+
12
57
  ## Upgrading to 0.2.0-alpha.12
13
58
 
14
59
  This release makes the first open of an Obsidian view automatic and ships
@@ -205,7 +250,7 @@ For registry installs, pin the exact version and record the resolved version
205
250
  in the lockfile:
206
251
 
207
252
  ```bash
208
- npm install --save-dev @mnstry/atelier@0.2.0-alpha.12
253
+ npm install --save-dev @mnstry/atelier@0.2.0-alpha.13
209
254
  npx mnstry-atelier lock write --project ./atelier.project.json
210
255
  ```
211
256
 
@@ -213,7 +258,7 @@ For Git installs, pin the release tag rather than a branch, so the lock file
213
258
  records exactly what was reviewed:
214
259
 
215
260
  ```bash
216
- npm install --save-dev "git+https://github.com/MNSTRY/atelier.git#v0.2.0-alpha.12"
261
+ npm install --save-dev "git+https://github.com/MNSTRY/atelier.git#v0.2.0-alpha.13"
217
262
  npx mnstry-atelier lock write --project ./atelier.project.json
218
263
  ```
219
264
 
@@ -0,0 +1,19 @@
1
+ {
2
+ "schema": "atelier-behavior-binding@v1",
3
+ "definition": {
4
+ "ref": "definitions/weekly-note.json",
5
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
6
+ },
7
+ "fields": [
8
+ {
9
+ "pointer": "/question",
10
+ "classification": "implicit",
11
+ "required": true,
12
+ "consumer": {
13
+ "id": "reference-note",
14
+ "profile": "note-v1",
15
+ "revision": "1"
16
+ }
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "schema": "atelier-behavior-binding@v1",
3
+ "definition": {
4
+ "ref": "definitions/weekly-note.json",
5
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
6
+ },
7
+ "fields": [
8
+ {
9
+ "pointer": "/question",
10
+ "classification": "guidance",
11
+ "required": true,
12
+ "consumer": {
13
+ "id": "reference-note",
14
+ "profile": "note-v1",
15
+ "revision": "1"
16
+ }
17
+ }
18
+ ]
19
+ }