@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,532 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mnstry.ai/schemas/atelier/atelier-upgrade-plan.v3.schema.json",
4
+ "$comment": "contract revision 3.0.0",
5
+ "title": "mnstry.atelier-upgrade-plan@v3",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schema",
10
+ "digest",
11
+ "operation",
12
+ "workspace",
13
+ "repositoryId",
14
+ "configPath",
15
+ "baseHead",
16
+ "baseTree",
17
+ "branch",
18
+ "createdAt",
19
+ "expiresAt",
20
+ "policy",
21
+ "policyDigest",
22
+ "executorDigest",
23
+ "gitDigest",
24
+ "gitConfigDigest",
25
+ "hooksDigest",
26
+ "hooksPath",
27
+ "readSet",
28
+ "migration",
29
+ "writes",
30
+ "releaseEvidence",
31
+ "dependencyInstallation",
32
+ "mode",
33
+ "recoveryCoverage",
34
+ "message",
35
+ "gitAuxDigest",
36
+ "participant"
37
+ ],
38
+ "properties": {
39
+ "schema": {
40
+ "const": "mnstry.atelier-upgrade-plan@v3"
41
+ },
42
+ "digest": {
43
+ "type": "string",
44
+ "pattern": "^sha256:[a-f0-9]{64}$"
45
+ },
46
+ "operation": {
47
+ "const": "prepare-local-candidate"
48
+ },
49
+ "workspace": {
50
+ "type": "string",
51
+ "minLength": 1
52
+ },
53
+ "repositoryId": {
54
+ "type": "string",
55
+ "pattern": "^sha256:[a-f0-9]{64}$"
56
+ },
57
+ "configPath": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ },
61
+ "baseHead": {
62
+ "type": "string",
63
+ "pattern": "^[a-f0-9]{40,64}$"
64
+ },
65
+ "baseTree": {
66
+ "type": "string",
67
+ "pattern": "^[a-f0-9]{40,64}$"
68
+ },
69
+ "branch": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ },
73
+ "createdAt": {
74
+ "type": "string",
75
+ "format": "date-time"
76
+ },
77
+ "expiresAt": {
78
+ "type": "string",
79
+ "format": "date-time"
80
+ },
81
+ "policy": {
82
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
83
+ "$id": "https://mnstry.ai/schemas/atelier/atelier-adoption-policy.v2.schema.json",
84
+ "$comment": "contract revision 2.0.0",
85
+ "title": "mnstry.atelier-adoption-policy@v2",
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "required": [
89
+ "schema",
90
+ "enabled",
91
+ "mode",
92
+ "maxAgeSeconds",
93
+ "recoveryCoverage",
94
+ "allowedEffects",
95
+ "participant"
96
+ ],
97
+ "properties": {
98
+ "schema": {
99
+ "const": "mnstry.atelier-adoption-policy@v2"
100
+ },
101
+ "enabled": {
102
+ "type": "boolean"
103
+ },
104
+ "mode": {
105
+ "const": "manual-exact-plan"
106
+ },
107
+ "maxAgeSeconds": {
108
+ "type": "integer",
109
+ "minimum": 1,
110
+ "maximum": 86400
111
+ },
112
+ "recoveryCoverage": {
113
+ "const": "local-only"
114
+ },
115
+ "allowedEffects": {
116
+ "const": [
117
+ "template-adoption",
118
+ "lock-and-projections",
119
+ "git-commit"
120
+ ]
121
+ },
122
+ "participant": {
123
+ "const": "local-template-profile@1"
124
+ },
125
+ "ext": {
126
+ "type": "object",
127
+ "maxProperties": 0,
128
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
129
+ },
130
+ "contractVersion": {
131
+ "type": "string",
132
+ "pattern": "^2\\.[0-9]+\\.[0-9]+$"
133
+ }
134
+ }
135
+ },
136
+ "policyDigest": {
137
+ "type": "string",
138
+ "pattern": "^sha256:[a-f0-9]{64}$"
139
+ },
140
+ "executorDigest": {
141
+ "type": "string",
142
+ "pattern": "^sha256:[a-f0-9]{64}$"
143
+ },
144
+ "gitDigest": {
145
+ "type": "string",
146
+ "pattern": "^sha256:[a-f0-9]{64}$"
147
+ },
148
+ "gitConfigDigest": {
149
+ "type": "string",
150
+ "pattern": "^sha256:[a-f0-9]{64}$"
151
+ },
152
+ "hooksDigest": {
153
+ "type": "string",
154
+ "pattern": "^sha256:[a-f0-9]{64}$"
155
+ },
156
+ "hooksPath": {
157
+ "type": "string",
158
+ "minLength": 1
159
+ },
160
+ "readSet": {
161
+ "type": "array",
162
+ "items": {
163
+ "type": "object",
164
+ "additionalProperties": false,
165
+ "required": [
166
+ "path",
167
+ "state"
168
+ ],
169
+ "properties": {
170
+ "path": {
171
+ "type": "string",
172
+ "minLength": 1
173
+ },
174
+ "state": {
175
+ "anyOf": [
176
+ {
177
+ "type": "null"
178
+ },
179
+ {
180
+ "type": "object",
181
+ "additionalProperties": false,
182
+ "required": [
183
+ "digest",
184
+ "mode"
185
+ ],
186
+ "properties": {
187
+ "digest": {
188
+ "type": "string",
189
+ "pattern": "^sha256:[a-f0-9]{64}$"
190
+ },
191
+ "mode": {
192
+ "enum": [
193
+ "100644",
194
+ "100755"
195
+ ]
196
+ },
197
+ "ext": {
198
+ "type": "object",
199
+ "maxProperties": 0,
200
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
201
+ }
202
+ }
203
+ }
204
+ ]
205
+ },
206
+ "ext": {
207
+ "type": "object",
208
+ "maxProperties": 0,
209
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
210
+ }
211
+ }
212
+ }
213
+ },
214
+ "migration": {
215
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
216
+ "$id": "https://mnstry.ai/schemas/atelier/atelier-migration.v3.schema.json",
217
+ "$comment": "contract revision 3.0.0",
218
+ "title": "mnstry.atelier-migration@v3",
219
+ "type": "object",
220
+ "additionalProperties": false,
221
+ "required": [
222
+ "schema",
223
+ "id",
224
+ "executorDigest",
225
+ "readScope",
226
+ "allowedWrites",
227
+ "sideEffects",
228
+ "postChecks"
229
+ ],
230
+ "properties": {
231
+ "schema": {
232
+ "const": "mnstry.atelier-migration@v3"
233
+ },
234
+ "id": {
235
+ "const": "local-template-profile@1"
236
+ },
237
+ "executorDigest": {
238
+ "type": "string",
239
+ "pattern": "^sha256:[a-f0-9]{64}$"
240
+ },
241
+ "readScope": {
242
+ "const": "whole-enrolled-repository"
243
+ },
244
+ "allowedWrites": {
245
+ "type": "array",
246
+ "items": {
247
+ "type": "string",
248
+ "minLength": 1
249
+ }
250
+ },
251
+ "sideEffects": {
252
+ "const": [
253
+ "git-index",
254
+ "git-commit"
255
+ ]
256
+ },
257
+ "postChecks": {
258
+ "const": [
259
+ "exact-inventory",
260
+ "lock-schema",
261
+ "exact-index",
262
+ "commit-parent-tree-message",
263
+ "template-adoption",
264
+ "template-current-source"
265
+ ]
266
+ },
267
+ "ext": {
268
+ "type": "object",
269
+ "maxProperties": 0,
270
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
271
+ },
272
+ "contractVersion": {
273
+ "type": "string",
274
+ "pattern": "^3\\.[0-9]+\\.[0-9]+$"
275
+ }
276
+ }
277
+ },
278
+ "writes": {
279
+ "type": "array",
280
+ "items": {
281
+ "type": "object",
282
+ "additionalProperties": false,
283
+ "required": [
284
+ "path",
285
+ "owner",
286
+ "action",
287
+ "before",
288
+ "after",
289
+ "content"
290
+ ],
291
+ "properties": {
292
+ "path": {
293
+ "type": "string",
294
+ "minLength": 1
295
+ },
296
+ "owner": {
297
+ "enum": [
298
+ "lock",
299
+ "generated",
300
+ "template",
301
+ "template-history"
302
+ ]
303
+ },
304
+ "action": {
305
+ "enum": [
306
+ "create",
307
+ "update"
308
+ ]
309
+ },
310
+ "before": {
311
+ "anyOf": [
312
+ {
313
+ "type": "null"
314
+ },
315
+ {
316
+ "type": "object",
317
+ "additionalProperties": false,
318
+ "required": [
319
+ "digest",
320
+ "mode"
321
+ ],
322
+ "properties": {
323
+ "digest": {
324
+ "type": "string",
325
+ "pattern": "^sha256:[a-f0-9]{64}$"
326
+ },
327
+ "mode": {
328
+ "enum": [
329
+ "100644",
330
+ "100755"
331
+ ]
332
+ },
333
+ "ext": {
334
+ "type": "object",
335
+ "maxProperties": 0,
336
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
337
+ }
338
+ }
339
+ }
340
+ ]
341
+ },
342
+ "after": {
343
+ "type": "object",
344
+ "additionalProperties": false,
345
+ "required": [
346
+ "digest",
347
+ "mode"
348
+ ],
349
+ "properties": {
350
+ "digest": {
351
+ "type": "string",
352
+ "pattern": "^sha256:[a-f0-9]{64}$"
353
+ },
354
+ "mode": {
355
+ "const": "100644"
356
+ },
357
+ "ext": {
358
+ "type": "object",
359
+ "maxProperties": 0,
360
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
361
+ }
362
+ }
363
+ },
364
+ "content": {
365
+ "type": "string",
366
+ "maxLength": 16777216
367
+ },
368
+ "ext": {
369
+ "type": "object",
370
+ "maxProperties": 0,
371
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
372
+ }
373
+ }
374
+ }
375
+ },
376
+ "releaseEvidence": {
377
+ "type": "null"
378
+ },
379
+ "dependencyInstallation": {
380
+ "const": "excluded"
381
+ },
382
+ "mode": {
383
+ "const": "manual-exact-plan"
384
+ },
385
+ "recoveryCoverage": {
386
+ "const": "local-only"
387
+ },
388
+ "message": {
389
+ "type": "string",
390
+ "minLength": 1
391
+ },
392
+ "gitAuxDigest": {
393
+ "type": "string",
394
+ "pattern": "^sha256:[a-f0-9]{64}$"
395
+ },
396
+ "participant": {
397
+ "type": "object",
398
+ "additionalProperties": false,
399
+ "required": [
400
+ "id",
401
+ "profileFile",
402
+ "selectionFile",
403
+ "profileDigest",
404
+ "selectionDigest",
405
+ "templateRef",
406
+ "bindingRef",
407
+ "previousAdoptionDigest",
408
+ "adoptionDigest"
409
+ ],
410
+ "properties": {
411
+ "id": {
412
+ "const": "local-template-profile@1"
413
+ },
414
+ "profileFile": {
415
+ "type": "string",
416
+ "minLength": 1,
417
+ "maxLength": 512
418
+ },
419
+ "selectionFile": {
420
+ "type": "string",
421
+ "minLength": 1,
422
+ "maxLength": 512
423
+ },
424
+ "profileDigest": {
425
+ "type": "string",
426
+ "pattern": "^sha256:[a-f0-9]{64}$"
427
+ },
428
+ "selectionDigest": {
429
+ "type": "string",
430
+ "pattern": "^sha256:[a-f0-9]{64}$"
431
+ },
432
+ "templateRef": {
433
+ "type": "object",
434
+ "additionalProperties": false,
435
+ "required": [
436
+ "kind",
437
+ "id",
438
+ "version",
439
+ "digest"
440
+ ],
441
+ "properties": {
442
+ "kind": {
443
+ "const": "TemplateRef"
444
+ },
445
+ "id": {
446
+ "type": "string",
447
+ "pattern": "^[a-z][a-z0-9]*(?:[.:-][a-z0-9]+)*$",
448
+ "maxLength": 128
449
+ },
450
+ "version": {
451
+ "type": "string",
452
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[a-z0-9]+(?:[.-][a-z0-9]+)*)?$",
453
+ "maxLength": 64
454
+ },
455
+ "digest": {
456
+ "type": "string",
457
+ "pattern": "^sha256:[a-f0-9]{64}$"
458
+ },
459
+ "ext": {
460
+ "type": "object",
461
+ "maxProperties": 0,
462
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
463
+ }
464
+ }
465
+ },
466
+ "bindingRef": {
467
+ "type": "object",
468
+ "additionalProperties": false,
469
+ "required": [
470
+ "kind",
471
+ "id",
472
+ "version",
473
+ "digest"
474
+ ],
475
+ "properties": {
476
+ "kind": {
477
+ "const": "BindingRef"
478
+ },
479
+ "id": {
480
+ "type": "string",
481
+ "pattern": "^[a-z][a-z0-9]*(?:[.:-][a-z0-9]+)*$",
482
+ "maxLength": 128
483
+ },
484
+ "version": {
485
+ "type": "string",
486
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[a-z0-9]+(?:[.-][a-z0-9]+)*)?$",
487
+ "maxLength": 64
488
+ },
489
+ "digest": {
490
+ "type": "string",
491
+ "pattern": "^sha256:[a-f0-9]{64}$"
492
+ },
493
+ "ext": {
494
+ "type": "object",
495
+ "maxProperties": 0,
496
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
497
+ }
498
+ }
499
+ },
500
+ "previousAdoptionDigest": {
501
+ "anyOf": [
502
+ {
503
+ "type": "null"
504
+ },
505
+ {
506
+ "type": "string",
507
+ "pattern": "^sha256:[a-f0-9]{64}$"
508
+ }
509
+ ]
510
+ },
511
+ "adoptionDigest": {
512
+ "type": "string",
513
+ "pattern": "^sha256:[a-f0-9]{64}$"
514
+ },
515
+ "ext": {
516
+ "type": "object",
517
+ "maxProperties": 0,
518
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
519
+ }
520
+ }
521
+ },
522
+ "ext": {
523
+ "type": "object",
524
+ "maxProperties": 0,
525
+ "description": "Reserved extension container; no extension behavior is supported by this contract."
526
+ },
527
+ "contractVersion": {
528
+ "type": "string",
529
+ "pattern": "^3\\.[0-9]+\\.[0-9]+$"
530
+ }
531
+ }
532
+ }
@@ -0,0 +1,89 @@
1
+ # Responsibilities, workflows and runtime bindings
2
+
3
+ Atelier is a repository substrate for people, agents and tools. Its portable
4
+ contracts, governance, graph and local runtime support eight responsibilities.
5
+
6
+ | Responsibility | Work it owns | Existing entry points |
7
+ | --- | --- | --- |
8
+ | Inquiry | Investigate uncertainty and assess evidence | Discovery and Research Harnesses; `inquiry` |
9
+ | Knowledge Stewardship | Curate, govern, connect and operationalize knowledge | `harness knowledge`, `ingest`, intake, graph and context; [evidence navigation](evidence-navigation.md), composed by Discovery and Research |
10
+ | Practical Judgment | Discern fitting action, cultivate practice and learn from consequences | `learn`, practical cases, decision adapters, `practice` |
11
+ | Creation and Delivery | Design, implement, verify and deliver changes | `harness build` |
12
+ | Capability Stewardship | Qualify, package, adopt, exercise and evolve reusable abilities | `capability`, Skill Steward and `skills` |
13
+ | Reflection | Form revisable assessments of the person, work, interaction and system | Witness role; qualified assessments and reflective acts |
14
+ | Interaction | Listen, communicate, pace, challenge and repair | Companion policy and controller over one host authority |
15
+ | Coordination | Connect work, owners, dependencies, delivery, recovery and outcomes | Collaboration, Build and typed Coordination projections |
16
+
17
+ These names describe responsibilities. A **harness** composes responsibilities
18
+ into work. A **role** describes participation. A **capability** specifies a
19
+ supported outcome; a **resource** realizes it. A **method** is an optional way of
20
+ working. A **record** retains domain meaning. A **host** executes through its
21
+ actual bindings. A role does not acquire a new store or permission merely by
22
+ being named. Coaching is one reflective method. Phronesis remains the foundation
23
+ of Practical Judgment, including purposes, particulars, taste and exceptions.
24
+
25
+ Skill Steward is a specialized role within Capability Stewardship. Its existing
26
+ catalog and bindings remain authoritative for managed skills. Knowledge
27
+ Stewardship owns knowledge inclusion and applicability. Neither owns another
28
+ repository's adoption decision. Fabric can implement Coordination; the local
29
+ contracts do not require a Fabric service or account.
30
+
31
+ Creation and Delivery also owns the kit's user-facing failure contract: one
32
+ diagnostic shape, a registry of stable codes, and one exit-code convention for
33
+ every command. Other responsibilities raise typed diagnostics through that
34
+ contract rather than defining their own formats. The contract is proposed in
35
+ issue #90 and is not yet implemented. Until it lands, existing typed codes and
36
+ refusal classes remain authoritative.
37
+
38
+ `atelier architecture catalog` returns the validated catalog. `architecture
39
+ entry "Skill Steward"` resolves a name. Historical names remain aliases: Discovery
40
+ Engine resolves to Discovery Harness; Skills Harness resolves to Capability
41
+ Harness. Existing persisted CLI/schema/API identifiers are retained.
42
+
43
+ ## Authoring must name its consumers
44
+
45
+ The additive `atelier-behavior-binding@v1` contract links exact authored
46
+ definition references to field pointers and named, versioned consumers. Each
47
+ field is classified as deterministic **enforcement**, interpreted **guidance**,
48
+ **presentation**, or descriptive **rationale**. Required unsupported behavior
49
+ prevents resolution; optional gaps remain visible in diagnostics.
50
+
51
+ Pass `{binding, consumers}` to `atelier architecture resolve` or
52
+ `resolveBehaviorBinding` from `@mnstry/atelier/architecture`. Consumer declarations
53
+ bind identity, profile, revision and supported classifications. This is contract
54
+ resolution, not evidence that the declaration is truthful or that a host has
55
+ loaded the definition. The output explicitly leaves adoption unestablished.
56
+
57
+ Qualification must connect authored bytes, resolved binding, exact adopted and
58
+ consumed revision, executed operation, durable readback and rendered state.
59
+ Preview and production use the same relevant rules with explicitly different
60
+ adapters. A changed authored file must not silently change existing adoptions.
61
+ Host authentication, release resolution, operation authorization and storage stay
62
+ with their owners. An unsupported host supplies diagnostics, not an invented
63
+ fallback interpretation.
64
+
65
+ ## Contract ownership and current coverage
66
+
67
+ | Meaning | Authoritative mechanism | Consumer proof required |
68
+ | --- | --- | --- |
69
+ | Research evidence and assessment | Inquiry ledger and assessment profiles | Exact handoff, source-family handling and withdrawal |
70
+ | Source custody | Intake store; bounded ingestion processor receipts | Source bytes, output integrity, freshness and locators |
71
+ | Knowledge applicability | Knowledge review and activation records | Current dependencies, local-source checks and retrieval |
72
+ | Accepted learning | Learning decisions and per-harness activation | Scope/exception preservation and withdrawal |
73
+ | Managed capabilities | Exact release, adoption state and binding inventory | Installation, host loading and exercise remain separate |
74
+ | Scoped agent instructions | Instruction adoption adapter | Exact plan, destination readback and consumer context receipt |
75
+ | Build and coordination | Candidate, attempt, gate and handoff records | Native gate evidence and receiving acceptance |
76
+ | Personal Trackables | The selected host's domain writer | Definition adoption, occurrences, evidence and qualified views |
77
+ | Conversation and reflection | Selected host conversation/effect authority | Delivery, interruption, correction and scope controls |
78
+
79
+ The portable Trackables reducer/local store, Reflection qualification, Interaction
80
+ controller and Coordination views supply reference implementations. Production
81
+ host adoption is not established by this catalog. A catalog entry is not an executable runtime or an additional
82
+ semantic registry. Host adapters must map these contracts to existing domain
83
+ operations rather than create competing writers.
84
+
85
+ See [Practical Judgment](practical-judgment.md), [research starter](research-starter.md)
86
+ and [integration decisions](integration-contract-decisions.md).
87
+
88
+ See [Trackables](trackables.md), [Interaction and Reflection](interaction-and-reflection.md)
89
+ and [Coordination](coordination.md) for supported profiles, native bindings and limits.
@@ -22,8 +22,8 @@ commit and packed-tarball digest.
22
22
  | Source application policy is re-read before every automatic apply | The engine authorizes from disk immediately before each dispatch; manual mode never reaches the apply operation; the service keeps this on every tick; the apply operation reads the installed policy again at its decision and immediately before the write, recomputes its digest and evaluates its selector over the current canonical graph; `policy install` verifies that digest and names the expected one; whether this machine may see the object is asked before anything else, so an absent and a withheld object get one answer | Revocation, manual-mode and apply-unavailable cases in `test/obsidian-maintenance.test.mjs`; policy, refusal-table and late-revocation cases in `test/obsidian-edits.test.mjs`, each with a deliberately broken rule that must fail | A policy is private configuration of one machine; whoever can write that private state can install one |
23
23
  | Applying an edit to a source file cannot lose another program's bytes | One operation for a person and for a policy: exact identity, path and digest checks at commit; the write is an atomic exchange, never a check followed by a rename; displaced bytes that are not the base are exchanged back and retained; the old source stays as a backup that is looked at again for late writers; write-ahead record and intent before the exchange; restart recovery decides from digests only, and so does an exchange that reports a failure; generated regions never reach a source: the tail is intact, or removed with the end of the authored text proven, and anything else refuses; every git directory is refused, nested, respelled or relocated; the hold on an edited note lifts only on a read of the note at that moment; no git command that writes | `test/obsidian-edits.test.mjs`: end to end through the real engine, a refusal table with a whole-project byte and `git status` oracle, a real second process writing in three styles and four timings with both outcomes asserted, a crash at every durable step, a disclosure walk, a generated tail cut at every byte offset from both sides and a fuzz over the whole note; every oracle has a mutation control | macOS arm64 on APFS only; refuses where no atomic exchange exists; the source becomes a new file (permission bits kept, hard links refused); a late writer's bytes are retained and surfaced, never merged; a hard link made after the path check is not detected; a fragment of generated text shorter than eight bytes left inside an edited body cannot be told from typing |
24
24
  | A structural edit made in a vault becomes one copy-only proposal and never a source change | The proposal adapter routes by whole identity to the existing store of the enrolled repository or refuses typed and writes nothing; it records the operation in private immutable state first, looks in the persisted store for its operation identity before creating, under a private per-repository lock taken over only with proof; it preflights the ledger limits, defers `ledger-full`, refuses `proposal-too-large` and `ledger-corrupt`, bounds batches and retries, and never compacts; a proposal holds codes, offsets and digests and no note text; acceptance is shown and never acted on | `test/obsidian-proposals.test.mjs`: routing table with a whole-project byte and `git status` oracle, identity survival against the real store, a crash at every step, two real processes, generated ledgers at 256 KiB, 16 MiB and 10,000 events and an invalid line, a no-busy-loop count of store reads, a disclosure walk; engine cases in `test/obsidian-maintenance.test.mjs`; every oracle has a mutation control | In manual mode an operation exists only after apply has looked at the edit; a refused or exhausted operation waits for a person; the store directory lives in the repository and must be git-ignored; two workspaces that enrol one repository create one proposal each |
25
- | Opening a view reports `current` only for the exact, verified, present generation and a qualified app | `open` needs a tick of the proven service after the request, a persisted `current`, an independent read-back of the trusted pointer and every note, and an app at or above the minimum version that lists the vault and answers for it; the vault is added to the app's list through the app while it runs, and in its settings file only while the process table shows no Obsidian, atomically, with a backup, keeping every other key, and leaving nothing behind when a step fails; never inside a folder the app lists as a vault; a call about the vault is routed, from the app's list, to that vault only (its folder or its id) or not made; every other outcome is typed, distinct and exits non-zero; the app and the operating system are reached only through injected seams, and the production ones only behind `--adapter=obsidian-cli` | `test/obsidian-open.test.mjs`: outcome table, read-back, app-floor, busy, read-only, every app state, settings-file refusal and retry cases, each with a deliberately broken rule that must fail; a failure injected at every file-system call of the settings write; call routing against a model of the app's own routing; a spawn guard (a private HOME, on Linux a private XDG_RUNTIME_DIR, and no such child on Windows) and a production-seam import check; the opt-in `test/obsidian-first-open-real-app.test.mjs` against an isolated app | The operating system's URL opener is not exercised by any test (the real-app suite hands URLs to its isolated app directly); `indexing` relies on an undocumented readiness field; the real-app suite has run on macOS only |
26
- | Operating-system startup is never installed implicitly | `buildStartupAdapter` is pure text generation; Windows refuses typed; the service refuses `--startup` without a consent that covers startup | Builder purity oracle (no filesystem, process or home-directory access; no machine path beyond its inputs) and startup-consent refusal | Generated units have not been qualified against real launchd or systemd hosts |
25
+ | Opening a view reports `current` only for the exact, verified, present generation and a qualified app | `open` needs a tick of the proven service after the request, a persisted `current`, an independent read-back of the trusted pointer and every note, and an app at or above the minimum version that lists the vault and answers for it; the vault is added to the app's list through the app while it runs, and in its settings file only while the process table shows no Obsidian, atomically, with a backup, keeping every other key, and leaving nothing behind when a step fails; never inside a folder the app lists as a vault; a call about the vault is routed, from the app's list, to that vault only (its folder or its id) or not made; every other outcome is typed, distinct and exits non-zero; the app and the operating system are reached only through injected seams, and the production ones only behind the selected adapter: `--adapter=obsidian-cli`, or the one the workspace remembers, which the test runner never uses | `test/obsidian-open.test.mjs`: outcome table, read-back, app-floor, busy, read-only, every app state, settings-file refusal and retry cases, each with a deliberately broken rule that must fail; a failure injected at every file-system call of the settings write; call routing against a model of the app's own routing; a spawn guard (a private HOME, on Linux a private XDG_RUNTIME_DIR, and no such child on Windows) and a production-seam import check; the opt-in `test/obsidian-first-open-real-app.test.mjs` against an isolated app | The operating system's URL opener is not exercised by any test (the real-app suite hands URLs to its isolated app directly); `indexing` relies on an undocumented readiness field; the real-app suite has run on macOS only |
26
+ | Operating-system startup is never installed implicitly | `buildStartupAdapter` is pure text generation; a login item is installed only by `service unit --install`, after a consent that covers startup is recorded; the production service manager refuses under the test runner and for a HOME that is not the account's; Windows refuses typed; the service refuses `--startup` without a consent that covers startup, and under it a refusal exits 0 so it is not restarted in a loop | Builder purity oracle; golden unit texts; manager call sequences against launchctl and systemctl stand-ins; production-manager refusals in a child process; a spawn and file guard on the real LaunchAgents and systemd folders; startup refusal exit codes | The managers have been exercised against stand-ins, not against a live launchd or systemd session |
27
27
  | Expected operator failures are actionable without leaking internals | Typed project/JSON diagnostics and the CLI execution wrapper | `test/cli-brand.test.mjs` | Unexpected stacks require the operator to opt in with `ATELIER_DEBUG=1` |
28
28
  | Published APIs do not disappear silently | Tag-derived subpath and named-export baseline plus version/tag identity refusal | `public-api:compat`; `test/public-api-compat.test.mjs` | Additive API checks do not decide whether a new version number is appropriate |
29
29
  | The published artifact is the artifact tested | `release:candidate` packs once, binds SHA-256, sends that exact archive through allowlist/content audit, bare-consumer install, all-export import, and branded distribution smoke, then the trusted-publishing workflow retains and publishes that same tarball path | `release:audit`, `consumer:smoke`, `distribution:smoke`, `assurance:mutation-smoke`, `publish-workflow.test.mjs` | Passing gates does not publish, deploy, or constitute an external reviewer’s approval |
@@ -0,0 +1,17 @@
1
+ Atelier's Skill Steward can govern portable capabilities alongside a person's
2
+ existing skills and tools. A capability package describes the useful outcome,
3
+ its procedures, requirements, evaluation evidence and limits. Each repository
4
+ chooses exact release pins, aliases and whether to reference, manage, customize
5
+ or retire it.
6
+
7
+ The local foundation verifies complete package contents, prepares an exact
8
+ adoption plan, preserves previous bundles, and refuses collisions and local
9
+ drift. Repository host profiles keep placement explicit. Cross-repository status
10
+ shows each adopter's own state; one repository's update never implies another's
11
+ acceptance.
12
+
13
+ Installation, host discovery and successful exercise are separate evidence.
14
+ Content-free observations can guide improvement, and draft graph records keep
15
+ provenance connected to adoption and outcomes. Publisher authentication, live
16
+ host evaluation and human acceptance require their own evidence. This source
17
+ capability is intended for the next release; alpha.7 does not expose its command.