@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.
- package/CHANGELOG.md +661 -0
- package/README.md +142 -6
- package/contracts/atelier-adoption-policy.v2.schema.json +55 -0
- package/contracts/atelier-architecture.v1.schema.json +258 -0
- package/contracts/atelier-boundary-delegations.v1.schema.json +161 -0
- package/contracts/atelier-boundary-owner-keys.v1.schema.json +98 -0
- package/contracts/atelier-build.v1.schema.json +1076 -0
- package/contracts/atelier-capability.v1.schema.json +1252 -0
- package/contracts/atelier-coordination.v1.schema.json +1050 -0
- package/contracts/atelier-evidence-navigation.v1.schema.json +603 -0
- package/contracts/atelier-harness.v1.schema.json +234 -0
- package/contracts/atelier-ingestion.v1.schema.json +806 -0
- package/contracts/atelier-inquiry.v1.schema.json +1772 -0
- package/contracts/atelier-instruction-adoption.v1.schema.json +490 -0
- package/contracts/atelier-interaction.v1.schema.json +553 -0
- package/contracts/atelier-judgment.v1.schema.json +690 -0
- package/contracts/atelier-knowledge.v1.schema.json +1512 -0
- package/contracts/atelier-learning.v1.schema.json +1095 -0
- package/contracts/atelier-migration.v3.schema.json +64 -0
- package/contracts/atelier-personal-workspace-manifest.v1.schema.json +87 -0
- package/contracts/atelier-personal-workspace-overlay.v1.schema.json +299 -0
- package/contracts/atelier-template-adoption.v1.schema.json +223 -0
- package/contracts/atelier-template-profile.v1.schema.json +1168 -0
- package/contracts/atelier-trackable.v1.schema.json +781 -0
- package/contracts/atelier-upgrade-plan.v3.schema.json +532 -0
- package/docs/architecture.md +89 -0
- package/docs/assurance-controls.md +2 -2
- package/docs/blocks/capability-stewardship.md +17 -0
- package/docs/blocks/claims.md +16 -3
- package/docs/blocks/inquiry-harnesses.md +19 -0
- package/docs/blocks/learning-harnesses.md +17 -0
- package/docs/capability-stewardship.md +269 -0
- package/docs/coordination.md +51 -0
- package/docs/decision-practices.md +111 -0
- package/docs/decisions.md +29 -0
- package/docs/evidence-navigation.md +237 -0
- package/docs/exact-upgrades.md +3 -2
- package/docs/ingestion.md +181 -0
- package/docs/inquiry-harnesses.md +211 -0
- package/docs/install.md +80 -3
- package/docs/intake-and-guides.md +5 -0
- package/docs/integration-contract-decisions.md +24 -2
- package/docs/interaction-and-reflection.md +72 -0
- package/docs/knowledge-graph.md +20 -0
- package/docs/knowledge-health/api.md +30 -0
- package/docs/knowledge-health/assessment/api.md +96 -0
- package/docs/knowledge-health/assessment/capabilities.md +40 -0
- package/docs/knowledge-health/assessment/evaluation.md +27 -0
- package/docs/knowledge-health/assessment/facilitator.md +30 -0
- package/docs/knowledge-health/assessment/quickstart.md +61 -0
- package/docs/knowledge-health/assessment/troubleshooting.md +23 -0
- package/docs/knowledge-health/devday/facilitator.md +16 -0
- package/docs/knowledge-health/devday/participant-response.md +22 -0
- package/docs/knowledge-health/devday/public-default.md +107 -0
- package/docs/knowledge-health/devday/quickstart.md +18 -0
- package/docs/knowledge-health/devday/support.md +22 -0
- package/docs/knowledge-health/exercise.md +17 -0
- package/docs/knowledge-health/facilitator.md +20 -0
- package/docs/knowledge-health/quickstart.md +94 -0
- package/docs/knowledge-health/readme.md +15 -0
- package/docs/knowledge-health/support.md +34 -0
- package/docs/knowledge-setup.md +248 -0
- package/docs/knowledge-workspace.md +264 -0
- package/docs/learning-harnesses.md +238 -0
- package/docs/learning.md +215 -0
- package/docs/local-services.md +181 -16
- package/docs/obsidian-contract.md +223 -15
- package/docs/obsidian-plugin.md +38 -4
- package/docs/obsidian.md +613 -51
- package/docs/optional-ingestion.md +83 -0
- package/docs/personal-workspace.md +257 -0
- package/docs/practical-judgment.md +92 -0
- package/docs/progressive-ingestion-acceptance.md +89 -0
- package/docs/progressive-ingestion.md +235 -0
- package/docs/project-command-inventory.md +1 -0
- package/docs/release-engineering.md +49 -0
- package/docs/repo-boundary-guard.md +94 -0
- package/docs/research-starter-quickstart.md +66 -0
- package/docs/research-starter.md +114 -0
- package/docs/semantic-ingestion.md +198 -0
- package/docs/semantic-operation.md +317 -0
- package/docs/skill-steward.md +6 -0
- package/docs/template-profile.md +164 -0
- package/docs/template-upgrades.md +114 -0
- package/docs/trackables.md +111 -0
- package/docs/upgrade.md +47 -2
- package/fixtures/atelier-architecture/binding/invalid/document.json +19 -0
- package/fixtures/atelier-architecture/binding/valid/document.json +19 -0
- package/fixtures/atelier-architecture/catalog/invalid/document.json +290 -0
- package/fixtures/atelier-architecture/catalog/valid/document.json +343 -0
- package/fixtures/atelier-build-contract/attempt/invalid/document.json +20 -0
- package/fixtures/atelier-build-contract/attempt/valid/document.json +19 -0
- package/fixtures/atelier-build-contract/candidate/invalid/document.json +24 -0
- package/fixtures/atelier-build-contract/candidate/valid/document.json +23 -0
- package/fixtures/atelier-build-contract/decision/invalid/document.json +31 -0
- package/fixtures/atelier-build-contract/decision/valid/document.json +30 -0
- package/fixtures/atelier-build-contract/delivery/invalid/document.json +18 -0
- package/fixtures/atelier-build-contract/delivery/valid/document.json +17 -0
- package/fixtures/atelier-build-contract/gate/invalid/document.json +22 -0
- package/fixtures/atelier-build-contract/gate/valid/document.json +21 -0
- package/fixtures/atelier-build-contract/ledger/invalid/document.json +270 -0
- package/fixtures/atelier-build-contract/ledger/valid/document.json +269 -0
- package/fixtures/atelier-build-contract/objective/invalid/document.json +73 -0
- package/fixtures/atelier-build-contract/objective/valid/document.json +72 -0
- package/fixtures/atelier-build-contract/progress/invalid/document.json +18 -0
- package/fixtures/atelier-build-contract/progress/valid/document.json +17 -0
- package/fixtures/atelier-capability-contract/adoption/invalid/document.json +71 -0
- package/fixtures/atelier-capability-contract/adoption/valid/document.json +70 -0
- package/fixtures/atelier-capability-contract/event/invalid/document.json +18 -0
- package/fixtures/atelier-capability-contract/event/valid/document.json +17 -0
- package/fixtures/atelier-capability-contract/journal/invalid/document.json +382 -0
- package/fixtures/atelier-capability-contract/journal/valid/document.json +381 -0
- package/fixtures/atelier-capability-contract/notice/invalid/document.json +8 -0
- package/fixtures/atelier-capability-contract/notice/valid/document.json +7 -0
- package/fixtures/atelier-capability-contract/package/invalid/document.json +59 -0
- package/fixtures/atelier-capability-contract/package/valid/document.json +58 -0
- package/fixtures/atelier-capability-contract/plan/invalid/document.json +107 -0
- package/fixtures/atelier-capability-contract/plan/valid/document.json +106 -0
- package/fixtures/atelier-capability-contract/release/invalid/document.json +85 -0
- package/fixtures/atelier-capability-contract/release/valid/document.json +84 -0
- package/fixtures/atelier-capability-contract/state/invalid/document.json +316 -0
- package/fixtures/atelier-capability-contract/state/valid/document.json +315 -0
- package/fixtures/atelier-coordination/dependency/invalid/document.json +37 -0
- package/fixtures/atelier-coordination/dependency/valid/document.json +36 -0
- package/fixtures/atelier-coordination/directive/invalid/document.json +25 -0
- package/fixtures/atelier-coordination/directive/valid/document.json +24 -0
- package/fixtures/atelier-coordination/disposition/invalid/document.json +34 -0
- package/fixtures/atelier-coordination/disposition/valid/document.json +33 -0
- package/fixtures/atelier-coordination/outcome/invalid/document.json +39 -0
- package/fixtures/atelier-coordination/outcome/valid/document.json +38 -0
- package/fixtures/atelier-coordination/recovery/invalid/document.json +34 -0
- package/fixtures/atelier-coordination/recovery/valid/document.json +33 -0
- package/fixtures/atelier-harness-contract/handoff/invalid/document.json +25 -0
- package/fixtures/atelier-harness-contract/handoff/valid/document.json +24 -0
- package/fixtures/atelier-ingestion/invalid/authority.json +19 -0
- package/fixtures/atelier-ingestion/semantic-baseline.json +26 -0
- package/fixtures/atelier-ingestion/semantic-operation.json +75 -0
- package/fixtures/atelier-ingestion/valid/plan-input.json +18 -0
- package/fixtures/atelier-inquiry-contract/assessment/invalid/document.json +41 -0
- package/fixtures/atelier-inquiry-contract/assessment/valid/document.json +40 -0
- package/fixtures/atelier-inquiry-contract/bundle/invalid/document.json +51 -0
- package/fixtures/atelier-inquiry-contract/bundle/valid/document.json +50 -0
- package/fixtures/atelier-inquiry-contract/campaign/invalid/document.json +17 -0
- package/fixtures/atelier-inquiry-contract/campaign/valid/document.json +16 -0
- package/fixtures/atelier-inquiry-contract/decision/invalid/document.json +22 -0
- package/fixtures/atelier-inquiry-contract/decision/valid/document.json +21 -0
- package/fixtures/atelier-inquiry-contract/feedback/invalid/document.json +19 -0
- package/fixtures/atelier-inquiry-contract/feedback/valid/document.json +18 -0
- package/fixtures/atelier-inquiry-contract/handoff/invalid/document.json +92 -0
- package/fixtures/atelier-inquiry-contract/handoff/valid/document.json +91 -0
- package/fixtures/atelier-inquiry-contract/hypothesis/invalid/document.json +20 -0
- package/fixtures/atelier-inquiry-contract/hypothesis/valid/document.json +19 -0
- package/fixtures/atelier-inquiry-contract/ledger/invalid/document.json +680 -0
- package/fixtures/atelier-inquiry-contract/ledger/valid/document.json +679 -0
- package/fixtures/atelier-inquiry-contract/legacy-assessment/invalid/document.json +19 -0
- package/fixtures/atelier-inquiry-contract/legacy-assessment/valid/document.json +18 -0
- package/fixtures/atelier-inquiry-contract/request/invalid/document.json +50 -0
- package/fixtures/atelier-inquiry-contract/request/valid/document.json +49 -0
- package/fixtures/atelier-inquiry-contract/source/invalid/document.json +18 -0
- package/fixtures/atelier-inquiry-contract/source/valid/document.json +17 -0
- package/fixtures/atelier-inquiry-contract/withdrawal/invalid/document.json +16 -0
- package/fixtures/atelier-inquiry-contract/withdrawal/valid/document.json +15 -0
- package/fixtures/atelier-instruction-adoption/context-receipt/invalid/document.json +18 -0
- package/fixtures/atelier-instruction-adoption/context-receipt/valid/document.json +17 -0
- package/fixtures/atelier-instruction-adoption/plan/invalid/document.json +63 -0
- package/fixtures/atelier-instruction-adoption/plan/valid/document.json +62 -0
- package/fixtures/atelier-instruction-adoption/receipt/invalid/document.json +22 -0
- package/fixtures/atelier-instruction-adoption/receipt/valid/document.json +21 -0
- package/fixtures/atelier-instruction-adoption/state/invalid/document.json +30 -0
- package/fixtures/atelier-instruction-adoption/state/valid/document.json +29 -0
- package/fixtures/atelier-interaction/act/invalid/document.json +25 -0
- package/fixtures/atelier-interaction/act/valid/document.json +24 -0
- package/fixtures/atelier-interaction/assessment/invalid/document.json +32 -0
- package/fixtures/atelier-interaction/assessment/valid/document.json +31 -0
- package/fixtures/atelier-interaction/observation/invalid/document.json +22 -0
- package/fixtures/atelier-interaction/observation/valid/document.json +21 -0
- package/fixtures/atelier-interaction/policy/invalid/document.json +20 -0
- package/fixtures/atelier-interaction/policy/valid/document.json +19 -0
- package/fixtures/atelier-judgment/case/invalid/document.json +76 -0
- package/fixtures/atelier-judgment/case/valid/document.json +75 -0
- package/fixtures/atelier-judgment/decision/invalid/document.json +38 -0
- package/fixtures/atelier-judgment/decision/valid/document.json +37 -0
- package/fixtures/atelier-judgment/native-decision.md +3 -0
- package/fixtures/atelier-judgment/practice-reconsideration/definition.json +92 -0
- package/fixtures/atelier-judgment/practice-reconsideration/scenario.json +435 -0
- package/fixtures/atelier-knowledge-contract/activation/invalid/document.json +26 -0
- package/fixtures/atelier-knowledge-contract/activation/valid/document.json +25 -0
- package/fixtures/atelier-knowledge-contract/contribution/invalid/document.json +34 -0
- package/fixtures/atelier-knowledge-contract/contribution/valid/document.json +33 -0
- package/fixtures/atelier-knowledge-contract/domain/invalid/document.json +41 -0
- package/fixtures/atelier-knowledge-contract/domain/valid/document.json +40 -0
- package/fixtures/atelier-knowledge-contract/domain-revision/invalid/document.json +46 -0
- package/fixtures/atelier-knowledge-contract/domain-revision/valid/document.json +45 -0
- package/fixtures/atelier-knowledge-contract/evaluation/invalid/document.json +21 -0
- package/fixtures/atelier-knowledge-contract/evaluation/valid/document.json +20 -0
- package/fixtures/atelier-knowledge-contract/ledger/invalid/document.json +318 -0
- package/fixtures/atelier-knowledge-contract/ledger/valid/document.json +317 -0
- package/fixtures/atelier-knowledge-contract/relation/invalid/document.json +25 -0
- package/fixtures/atelier-knowledge-contract/relation/valid/document.json +24 -0
- package/fixtures/atelier-knowledge-contract/review/invalid/document.json +18 -0
- package/fixtures/atelier-knowledge-contract/review/valid/document.json +17 -0
- package/fixtures/atelier-knowledge-contract/withdrawal/invalid/document.json +16 -0
- package/fixtures/atelier-knowledge-contract/withdrawal/valid/document.json +15 -0
- package/fixtures/atelier-learning/invalid/authority.json +14 -0
- package/fixtures/atelier-learning/valid/capture.json +13 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/invalid/authority-key.json +17 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/invalid/nonempty-ext.json +25 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/invalid/wrong-schema.json +22 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/valid/manifest.json +22 -0
- package/fixtures/atelier-personal-workspace-contract/overlay/invalid/authority-key.json +25 -0
- package/fixtures/atelier-personal-workspace-contract/overlay/invalid/unknown-top-level-field.json +27 -0
- package/fixtures/atelier-personal-workspace-contract/overlay/invalid/wrong-schema.json +24 -0
- package/fixtures/atelier-trackable/definition/invalid/document.json +15 -0
- package/fixtures/atelier-trackable/definition/valid/document.json +14 -0
- package/fixtures/atelier-trackable/request/invalid/document.json +23 -0
- package/fixtures/atelier-trackable/request/valid/document.json +22 -0
- package/fixtures/boundary-delegations/invalid/authority-key.v1.json +30 -0
- package/fixtures/boundary-delegations/invalid/push-operation.v1.json +28 -0
- package/fixtures/boundary-delegations/invalid/unsigned.v1.json +25 -0
- package/fixtures/boundary-delegations/valid/empty.v1.json +4 -0
- package/fixtures/boundary-delegations/valid/signed-operator.v1.json +30 -0
- package/fixtures/boundary-owner-keys/invalid/wrong-algorithm.v1.json +15 -0
- package/fixtures/boundary-owner-keys/invalid/wrong-curve.v1.json +15 -0
- package/fixtures/boundary-owner-keys/valid/one-owner.v1.json +17 -0
- package/fixtures/capability-packages/adoption.example.json +70 -0
- package/fixtures/capability-packages/evidence-review/capability-package.json +58 -0
- package/fixtures/capability-packages/evidence-review/capability-release.json +84 -0
- package/fixtures/capability-packages/evidence-review/evaluation.md +15 -0
- package/fixtures/capability-packages/evidence-review/skills/evidence-review/SKILL.md +22 -0
- package/fixtures/capability-packages/evidence-review/skills/evidence-review/references/ledger.md +7 -0
- package/fixtures/capability-packages/research/capability-package.json +88 -0
- package/fixtures/capability-packages/research/capability-release.json +134 -0
- package/fixtures/capability-packages/research/evaluation.md +15 -0
- package/fixtures/capability-packages/research/skills/research-integrate/SKILL.md +29 -0
- package/fixtures/capability-packages/research/skills/research-integrate/references/integration.md +10 -0
- package/fixtures/capability-packages/research/skills/research-plan/SKILL.md +27 -0
- package/fixtures/capability-packages/research/skills/research-plan/references/inquiries.md +26 -0
- package/fixtures/capability-packages/research/skills/research-synthesize/SKILL.md +23 -0
- package/fixtures/capability-packages/research/skills/research-synthesize/references/synthesis.md +12 -0
- package/fixtures/evidence-navigation/invalid/duplicate-operation.json +16 -0
- package/fixtures/evidence-navigation/invalid/instruction-kind.json +36 -0
- package/fixtures/evidence-navigation/invalid/invalid-digest.json +36 -0
- package/fixtures/evidence-navigation/invalid/invalid-time.json +36 -0
- package/fixtures/evidence-navigation/invalid/missing-attribution.json +35 -0
- package/fixtures/evidence-navigation/invalid/reserved-extension.json +19 -0
- package/fixtures/evidence-navigation/invalid/unattributed-acceptance.json +36 -0
- package/fixtures/evidence-navigation/invalid/uncoerced-version.json +16 -0
- package/fixtures/evidence-navigation/invalid/unknown-currency.json +17 -0
- package/fixtures/evidence-navigation/invalid/unknown-selector-field.json +37 -0
- package/fixtures/evidence-navigation/invalid/unsupported-operation.json +15 -0
- package/fixtures/evidence-navigation/valid/claim.json +36 -0
- package/fixtures/evidence-navigation/valid/host.json +16 -0
- package/fixtures/evidence-navigation/valid/profile.json +16 -0
- package/fixtures/evidence-navigation/valid/snapshot.json +17 -0
- package/fixtures/harness-packages/build-harness/capability-package.json +61 -0
- package/fixtures/harness-packages/build-harness/capability-release.json +82 -0
- package/fixtures/harness-packages/build-harness/evaluation.md +3 -0
- package/fixtures/harness-packages/build-harness/skills/atelier-build-harness/SKILL.md +59 -0
- package/fixtures/harness-packages/knowledge-harness/capability-package.json +61 -0
- package/fixtures/harness-packages/knowledge-harness/capability-release.json +82 -0
- package/fixtures/harness-packages/knowledge-harness/evaluation.md +3 -0
- package/fixtures/harness-packages/knowledge-harness/skills/atelier-knowledge-harness/SKILL.md +60 -0
- package/fixtures/harnesses/learning-cycle.json +780 -0
- package/fixtures/inquiry/workshop.json +675 -0
- package/fixtures/inquiry-packages/discovery-harness/capability-package.json +61 -0
- package/fixtures/inquiry-packages/discovery-harness/capability-release.json +82 -0
- package/fixtures/inquiry-packages/discovery-harness/evaluation.md +3 -0
- package/fixtures/inquiry-packages/discovery-harness/skills/atelier-discovery-harness/SKILL.md +48 -0
- package/fixtures/inquiry-packages/research-harness/capability-package.json +61 -0
- package/fixtures/inquiry-packages/research-harness/capability-release.json +82 -0
- package/fixtures/inquiry-packages/research-harness/evaluation.md +3 -0
- package/fixtures/inquiry-packages/research-harness/skills/atelier-research-harness/SKILL.md +43 -0
- package/fixtures/knowledge-health/calibration-suite.json +26 -0
- package/fixtures/knowledge-health/calibration-trial.json +37 -0
- package/fixtures/knowledge-health/corrected/checklist.md +18 -0
- package/fixtures/knowledge-health/devday/participant-record.json +19 -0
- package/fixtures/knowledge-health/expected-summary.json +27 -0
- package/fixtures/knowledge-health/workshop/README.md +20 -0
- package/fixtures/knowledge-health/workshop/atelier.project.json +7 -0
- package/fixtures/knowledge-health/workshop/knowledge-plan.json +65 -0
- package/fixtures/knowledge-health/workshop/records/checklist.md +18 -0
- package/fixtures/knowledge-health/workshop/records/workshop.md +18 -0
- package/fixtures/knowledge-health/workshop/repo-access.v1.json +5 -0
- package/fixtures/knowledge-health/workspace/atelier.project.json +18 -0
- package/fixtures/knowledge-health/workspace/knowledge-plan.json +74 -0
- package/fixtures/knowledge-health/workspace/records/checklist.md +18 -0
- package/fixtures/knowledge-health/workspace/records/pilot.md +16 -0
- package/fixtures/knowledge-health/workspace/repo-access.v1.json +9 -0
- package/fixtures/personal-workspace/overlay.json +24 -0
- package/fixtures/templates/local-library.v1.json +75 -0
- package/fixtures/templates/upgrade-contracts/adoption-policy.v2/invalid.json +16 -0
- package/fixtures/templates/upgrade-contracts/adoption-policy.v2/valid.json +13 -0
- package/fixtures/templates/upgrade-contracts/migration.v3/invalid.json +24 -0
- package/fixtures/templates/upgrade-contracts/migration.v3/valid.json +21 -0
- package/fixtures/templates/upgrade-contracts/template-adoption.v1/invalid.json +60 -0
- package/fixtures/templates/upgrade-contracts/template-adoption.v1/valid.json +57 -0
- package/fixtures/templates/upgrade-contracts/upgrade-plan.v3/invalid.json +85 -0
- package/fixtures/templates/upgrade-contracts/upgrade-plan.v3/valid.json +82 -0
- package/package.json +59 -5
- package/skills/claude/atelier-build-harness/SKILL.md +59 -0
- package/skills/claude/atelier-coordination/SKILL.md +32 -0
- package/skills/claude/atelier-discovery-harness/SKILL.md +48 -0
- package/skills/claude/atelier-guided-upgrade/SKILL.md +29 -0
- package/skills/claude/atelier-interaction/SKILL.md +34 -0
- package/skills/claude/atelier-knowledge-harness/SKILL.md +60 -0
- package/skills/claude/atelier-knowledge-setup/SKILL.md +72 -0
- package/skills/claude/atelier-practical-judgment/SKILL.md +64 -0
- package/skills/claude/atelier-research-harness/SKILL.md +43 -0
- package/skills/claude/atelier-skill-steward/SKILL.md +53 -0
- package/skills/claude/atelier-trackables/SKILL.md +40 -0
- package/skills/codex/atelier-build-harness/SKILL.md +59 -0
- package/skills/codex/atelier-coordination/SKILL.md +32 -0
- package/skills/codex/atelier-discovery-harness/SKILL.md +48 -0
- package/skills/codex/atelier-guided-upgrade/SKILL.md +29 -0
- package/skills/codex/atelier-interaction/SKILL.md +34 -0
- package/skills/codex/atelier-knowledge-harness/SKILL.md +60 -0
- package/skills/codex/atelier-knowledge-setup/SKILL.md +72 -0
- package/skills/codex/atelier-practical-judgment/SKILL.md +64 -0
- package/skills/codex/atelier-research-harness/SKILL.md +43 -0
- package/skills/codex/atelier-skill-steward/SKILL.md +53 -0
- package/skills/codex/atelier-trackables/SKILL.md +40 -0
- package/src/architecture/catalog.mjs +355 -0
- package/src/architecture/index.mjs +93 -0
- package/src/boundary/content-rules.mjs +4 -2
- package/src/boundary/delegation-command.mjs +158 -0
- package/src/boundary/delegation.mjs +396 -0
- package/src/boundary/policy.mjs +52 -10
- package/src/build/git.mjs +18 -0
- package/src/build/index.mjs +3 -0
- package/src/build/ledger.mjs +88 -0
- package/src/capabilities/adoption.mjs +381 -0
- package/src/capabilities/evidence.mjs +140 -0
- package/src/capabilities/files.mjs +124 -0
- package/src/capabilities/index.mjs +4 -0
- package/src/capabilities/instructions.mjs +250 -0
- package/src/capabilities/package.mjs +136 -0
- package/src/cli/command-failure.mjs +36 -0
- package/src/cli/execute-command.mjs +16 -2
- package/src/cli/run.mjs +65 -9
- package/src/coauthor/store.mjs +43 -2
- package/src/collaboration/proposals.mjs +189 -0
- package/src/commands/architecture.mjs +27 -0
- package/src/commands/boundary.mjs +3 -0
- package/src/commands/capability.mjs +73 -0
- package/src/commands/enroll.mjs +3 -0
- package/src/commands/harness.mjs +79 -0
- package/src/commands/ingest.mjs +39 -0
- package/src/commands/init.mjs +4 -1
- package/src/commands/inquiry.mjs +66 -0
- package/src/commands/knowledge-semantic.mjs +128 -0
- package/src/commands/knowledge.mjs +119 -0
- package/src/commands/learn.mjs +61 -0
- package/src/commands/obsidian.mjs +754 -63
- package/src/commands/practice.mjs +24 -0
- package/src/commands/setup.mjs +22 -2
- package/src/commands/trackable.mjs +19 -0
- package/src/contracts/corpus.mjs +30 -0
- package/src/coordination/index.mjs +110 -0
- package/src/evidence-navigation/contracts.mjs +60 -0
- package/src/evidence-navigation/evaluate.mjs +69 -0
- package/src/evidence-navigation/generation.mjs +22 -0
- package/src/evidence-navigation/index.mjs +2 -0
- package/src/evidence-navigation/local.mjs +167 -0
- package/src/evidence-navigation/schema.generated.mjs +604 -0
- package/src/evidence-navigation/types.mjs +12 -0
- package/src/export/atelier-export-contract.mjs +35 -8
- package/src/graph/enroll.mjs +248 -0
- package/src/graph/graph.mjs +17 -1
- package/src/graph/knowledge-graph.mjs +58 -8
- package/src/harnesses/contracts.mjs +41 -0
- package/src/harnesses/exchange.mjs +154 -0
- package/src/harnesses/feedback.mjs +16 -0
- package/src/harnesses/history.mjs +37 -0
- package/src/harnesses/index.mjs +4 -0
- package/src/harnesses/store.mjs +29 -0
- package/src/ingestion/contracts.mjs +41 -0
- package/src/ingestion/evaluation.mjs +119 -0
- package/src/ingestion/optional/composition/index.mjs +171 -0
- package/src/ingestion/optional/evaluation/index.mjs +219 -0
- package/src/ingestion/optional/graphify/composition-binding.mjs +60 -0
- package/src/ingestion/optional/graphify/composition_receiving.py +185 -0
- package/src/ingestion/optional/graphify/graphify_supplier.py +933 -0
- package/src/ingestion/optional/graphify/json_bridge.py +163 -0
- package/src/ingestion/optional/graphify/query_receiving.py +209 -0
- package/src/ingestion/optional/index.mjs +9 -0
- package/src/ingestion/optional/jev/bridge.mjs +166 -0
- package/src/ingestion/optional/jev/composition-binding.mjs +116 -0
- package/src/ingestion/optional/jev/judgments.mjs +174 -0
- package/src/ingestion/optional/jev/native-translation.mjs +32 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/__init__.py +7 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/adapter.py +966 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/artifacts.py +101 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/projection.py +146 -0
- package/src/ingestion/optional/lightrag/composition-binding.mjs +67 -0
- package/src/ingestion/optional/vanilla/composition-binding.mjs +102 -0
- package/src/ingestion/optional/vanilla/index.mjs +218 -0
- package/src/ingestion/optional/vanilla/native-normalization.mjs +187 -0
- package/src/ingestion/processors.mjs +218 -0
- package/src/ingestion/semantic.mjs +203 -0
- package/src/ingestion/store.mjs +372 -0
- package/src/inquiry/beliefs.mjs +32 -0
- package/src/inquiry/contracts.mjs +23 -0
- package/src/inquiry/index.mjs +5 -0
- package/src/inquiry/ledger.mjs +135 -0
- package/src/inquiry/lenses.mjs +15 -0
- package/src/inquiry/projection.mjs +77 -0
- package/src/inquiry/store.mjs +35 -0
- package/src/intake/read-scope.mjs +12 -0
- package/src/intake/store.mjs +69 -6
- package/src/interaction/index.mjs +91 -0
- package/src/judgment/index.mjs +82 -0
- package/src/judgment/practice-evaluation.mjs +70 -0
- package/src/judgment/practice.mjs +144 -0
- package/src/knowledge/context.mjs +217 -0
- package/src/knowledge/index.mjs +5 -0
- package/src/knowledge/ingestion.mjs +79 -0
- package/src/knowledge/intake.mjs +33 -0
- package/src/knowledge/ledger.mjs +110 -0
- package/src/knowledge/participatory/guidance.mjs +36 -0
- package/src/knowledge/participatory/guided-contribution.mjs +44 -0
- package/src/knowledge/participatory/index.mjs +2 -0
- package/src/knowledge/participatory/installed-workshop.mjs +108 -0
- package/src/knowledge/plan.mjs +67 -0
- package/src/knowledge/projection.mjs +43 -0
- package/src/knowledge/semantic-operation.mjs +567 -0
- package/src/knowledge/sessions.mjs +467 -0
- package/src/knowledge/workspace.mjs +295 -0
- package/src/knowledge-health/assessment.mjs +165 -0
- package/src/knowledge-health/capabilities.mjs +350 -0
- package/src/knowledge-health/context.mjs +62 -0
- package/src/knowledge-health/example.mjs +47 -0
- package/src/knowledge-health/index.mjs +10 -0
- package/src/knowledge-health/owner-join.mjs +88 -0
- package/src/knowledge-health/proof/common.mjs +24 -0
- package/src/knowledge-health/proof/installed-check.mjs +100 -0
- package/src/knowledge-health/proof/native-readback.mjs +37 -0
- package/src/knowledge-health/proof/rehearse.mjs +68 -0
- package/src/knowledge-health/proof/validate-participant.mjs +17 -0
- package/src/knowledge-health/proof/verify-native-capture.mjs +14 -0
- package/src/knowledge-health/proof/workshop-check.mjs +36 -0
- package/src/knowledge-health/rule-identity.mjs +44 -0
- package/src/knowledge-health/workshop-composition.mjs +19 -0
- package/src/knowledge-health/workshop-profile.mjs +176 -0
- package/src/knowledge-health/workshop.mjs +99 -0
- package/src/learning/adapters.mjs +68 -0
- package/src/learning/assistance.mjs +127 -0
- package/src/learning/contracts.mjs +65 -0
- package/src/learning/store.mjs +272 -0
- package/src/personal-workspace/index.mjs +391 -0
- package/src/personal-workspace/selection.mjs +385 -0
- package/src/project/config.mjs +8 -0
- package/src/project/durable-state.mjs +3 -1
- package/src/project/file-class.mjs +1 -1
- package/src/projection/obsidian/edits/apply.mjs +55 -16
- package/src/projection/obsidian/personal-workspace.mjs +436 -0
- package/src/projection/obsidian/proposals/adapter.mjs +47 -8
- package/src/projection/obsidian/proposals/observation.mjs +10 -2
- package/src/projection/obsidian/publication/publisher.mjs +142 -13
- package/src/projection/obsidian/publication/vault-list.mjs +4 -3
- package/src/projection/obsidian/recovery/index.mjs +4 -1
- package/src/projection/obsidian/recovery/store.mjs +160 -7
- package/src/projection/obsidian/selection-ui/contribution.mjs +6 -5
- package/src/readiness/readiness.mjs +10 -3
- package/src/reflection/index.mjs +56 -0
- package/src/runtime/obsidian/app-production-seams.mjs +48 -16
- package/src/runtime/obsidian/app-registration.mjs +175 -28
- package/src/runtime/obsidian/app-restart.mjs +154 -0
- package/src/runtime/obsidian/engine.mjs +163 -20
- package/src/runtime/obsidian/extension-points.mjs +1 -1
- package/src/runtime/obsidian/index.mjs +10 -7
- package/src/runtime/obsidian/launch-plan.mjs +7 -4
- package/src/runtime/obsidian/lifecycle.mjs +92 -12
- package/src/runtime/obsidian/login-item.mjs +332 -0
- package/src/runtime/obsidian/machine-settings.mjs +119 -12
- package/src/runtime/obsidian/opening.mjs +171 -37
- package/src/runtime/obsidian/pipeline.mjs +71 -3
- package/src/runtime/obsidian/plugin-channel.mjs +11 -3
- package/src/runtime/obsidian/plugin-choice.mjs +16 -4
- package/src/runtime/obsidian/plugin-drift.mjs +59 -11
- package/src/runtime/obsidian/plugin-presence.mjs +14 -1
- package/src/runtime/obsidian/process-identity.mjs +20 -10
- package/src/runtime/obsidian/project-views.mjs +282 -0
- package/src/runtime/obsidian/questions.mjs +48 -0
- package/src/runtime/obsidian/release-watch.mjs +56 -0
- package/src/runtime/obsidian/service-main.mjs +99 -16
- package/src/runtime/obsidian/service-manager-production.mjs +61 -0
- package/src/runtime/obsidian/service-managers.mjs +275 -0
- package/src/runtime/obsidian/service-record.mjs +87 -23
- package/src/runtime/obsidian/service.mjs +36 -3
- package/src/runtime/obsidian/startup-adapters.mjs +59 -21
- package/src/runtime/obsidian/unheld-evidence.mjs +84 -0
- package/src/runtime/obsidian/vault-location.mjs +300 -0
- package/src/runtime/obsidian/view-counts.mjs +34 -0
- package/src/server/local-sidecar.mjs +169 -2
- package/src/server/server.mjs +28 -2
- package/src/template-bindings/project.mjs +92 -0
- package/src/templates/profile.mjs +225 -0
- package/src/trackables/domain.mjs +175 -0
- package/src/trackables/store.mjs +114 -0
- package/src/ui/knowledge-page.mjs +1388 -0
- package/src/upgrade/explanation.mjs +1 -1
- package/src/upgrade/template-participant.mjs +171 -0
- package/src/upgrade/transaction.mjs +72 -25
- package/src/upgrade/upgrade.mjs +1 -0
- package/templates/external-project-workspace/pack-lifecycle.json +6 -1
- package/templates/knowledge-workspace/.gitattributes +2 -0
- package/templates/knowledge-workspace/AGENTS.md +27 -0
- package/templates/knowledge-workspace/README.md +44 -0
- package/templates/knowledge-workspace/atelier.project.json +22 -0
- package/templates/knowledge-workspace/gitignore +6 -0
- package/templates/knowledge-workspace/knowledge-plan.json +111 -0
- package/templates/knowledge-workspace/knowledge-plan.schema.json +281 -0
- package/templates/knowledge-workspace/records/forecast.md +22 -0
- package/templates/knowledge-workspace/records/inspection.md +25 -0
- package/templates/knowledge-workspace/records/telescope.md +24 -0
- 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.
|
|
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.
|
|
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
|
+
}
|