@mnstry/atelier 0.2.0-alpha.14 → 0.2.0-alpha.16
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 +54 -0
- package/README.md +80 -47
- package/SECURITY.md +1 -1
- package/TRADEMARKS.md +2 -2
- package/contracts/atelier-extension-manifest.v1.schema.json +412 -0
- package/contracts/atelier-graph-view.v1.schema.json +1085 -0
- package/contracts/public-api-baseline.json +298 -19
- package/docs/README.md +90 -0
- package/docs/blocks/claims.md +2 -2
- package/docs/blocks/conformance-admission.md +1 -1
- package/docs/{atelier-sync.md → guides/atelier-sync.md} +20 -14
- package/docs/guides/co-authoring.md +113 -0
- package/docs/{distributions.md → guides/distributions.md} +13 -8
- package/docs/guides/extensions.md +189 -0
- package/docs/guides/graph-refresh.md +152 -0
- package/docs/guides/graph-workspace.md +76 -0
- package/docs/{ingestion.md → guides/ingestion.md} +13 -12
- package/docs/{knowledge-workspace.md → guides/knowledge-workspace.md} +2 -2
- package/docs/{learning.md → guides/learning.md} +12 -5
- package/docs/{obsidian.md → guides/obsidian.md} +134 -47
- package/docs/guides/ontology-guide.md +111 -0
- package/docs/{personal-workspace.md → guides/personal-workspace.md} +7 -4
- package/docs/{research-starter.md → guides/research-starter.md} +1 -1
- package/docs/{tenant-readiness.md → guides/tenant-readiness.md} +39 -0
- package/docs/{upgrade.md → guides/upgrade.md} +40 -9
- package/docs/knowledge-health/assessment/capabilities.md +6 -15
- package/docs/knowledge-health/facilitator.md +15 -4
- package/docs/knowledge-health/{devday/participant-response.md → participant-response.md} +4 -2
- package/docs/knowledge-health/quickstart.md +97 -75
- package/docs/knowledge-health/readme.md +13 -5
- package/docs/maintainers/describing-the-atelier.md +173 -0
- package/docs/{release-engineering.md → maintainers/release-engineering.md} +5 -5
- package/docs/{announcements.md → reference/announcements.md} +1 -1
- package/docs/{architecture.md → reference/architecture.md} +31 -5
- package/docs/{atelier-runtime.md → reference/atelier-runtime.md} +1 -1
- package/docs/{connected-composition.md → reference/connected-composition.md} +7 -10
- package/docs/{coordination.md → reference/coordination.md} +1 -1
- package/docs/{decisions.md → reference/decisions.md} +3 -3
- package/docs/{design.md → reference/design.md} +1 -1
- package/docs/reference/edge-policy.md +151 -0
- package/docs/reference/graph-view-structured.md +119 -0
- package/docs/reference/graph-view.md +139 -0
- package/docs/reference/graph-workspace.md +37 -0
- package/docs/{intake-and-guides.md → reference/intake-and-guides.md} +3 -4
- package/docs/{knowledge-graph.md → reference/knowledge-graph.md} +120 -6
- package/docs/{local-services.md → reference/local-services.md} +1 -1
- package/docs/{obsidian-contract.md → reference/obsidian-contract.md} +6 -4
- package/docs/{obsidian-plugin.md → reference/obsidian-plugin.md} +5 -66
- package/docs/{practical-judgment.md → reference/phronesis.md} +12 -3
- package/docs/reference/portability.md +92 -0
- package/docs/{portable-presentation.md → reference/portable-presentation.md} +2 -2
- package/docs/{presentation-consumer-boundaries.md → reference/presentation-consumer-boundaries.md} +5 -0
- package/docs/{project-options.md → reference/project-options.md} +17 -0
- package/docs/{repo-boundary-guard.md → reference/repo-boundary-guard.md} +27 -4
- package/docs/{review-portability.md → reference/review-portability.md} +4 -0
- package/docs/{template-profile.md → reference/template-profile.md} +1 -1
- package/docs/{trackables.md → reference/trackables.md} +2 -2
- package/docs/start/independent-start.md +89 -0
- package/docs/{install.md → start/install.md} +6 -6
- package/docs/{knowledge-setup.md → start/knowledge-setup.md} +5 -5
- package/docs/{research-starter-quickstart.md → start/research-starter-quickstart.md} +6 -6
- package/fixtures/atelier-architecture/catalog/invalid/document.json +2 -2
- package/fixtures/atelier-architecture/catalog/valid/document.json +2 -2
- package/fixtures/graph-view/synthetic-authorized-input.v1.json +437 -0
- package/fixtures/graph-view/synthetic-view.v1.json +1 -0
- package/fixtures/knowledge-health/workshop/README.md +1 -1
- package/fixtures/templates/local-library.v1.json +3 -1
- package/package.json +21 -8
- package/skills/claude/atelier-guided-upgrade/SKILL.md +1 -1
- package/skills/claude/atelier-knowledge-setup/SKILL.md +2 -2
- package/skills/claude/atelier-local-service/SKILL.md +1 -1
- package/skills/claude/atelier-practical-judgment/SKILL.md +7 -2
- package/skills/claude/atelier-skill-steward/SKILL.md +1 -1
- package/skills/claude/mnstry-readiness/SKILL.md +2 -2
- package/skills/codex/atelier-guided-upgrade/SKILL.md +1 -1
- package/skills/codex/atelier-knowledge-setup/SKILL.md +2 -2
- package/skills/codex/atelier-local-service/SKILL.md +1 -1
- package/skills/codex/atelier-practical-judgment/SKILL.md +7 -2
- package/skills/codex/atelier-skill-steward/SKILL.md +1 -1
- package/skills/codex/mnstry-readiness/SKILL.md +2 -2
- package/src/architecture/catalog.mjs +2 -2
- package/src/attestation/sign.mjs +1 -1
- package/src/boundary/content-rules.mjs +5 -4
- package/src/boundary/policy.mjs +60 -12
- package/src/cli/run.mjs +24 -8
- package/src/commands/distribution.mjs +1 -1
- package/src/commands/extension.mjs +27 -0
- package/src/commands/ingest.mjs +1 -1
- package/src/commands/learn.mjs +1 -1
- package/src/commands/obsidian.mjs +28 -16
- package/src/commands/review.mjs +3 -0
- package/src/edge-policy/contract.mjs +69 -0
- package/src/edge-policy/policy.mjs +142 -0
- package/src/edge-policy/source-citation-adapter.mjs +43 -0
- package/src/extension-packs/loader.mjs +4 -3
- package/src/extensions/admission.mjs +83 -0
- package/src/extensions/client.d.mts +23 -0
- package/src/extensions/client.mjs +99 -0
- package/src/extensions/contracts.d.mts +29 -0
- package/src/extensions/contracts.mjs +163 -0
- package/src/extensions/convex.d.mts +24 -0
- package/src/extensions/convex.mjs +189 -0
- package/src/extensions/delegation.mjs +54 -0
- package/src/extensions/drizzle.d.mts +11 -0
- package/src/extensions/drizzle.mjs +33 -0
- package/src/extensions/postgres.d.mts +7 -0
- package/src/extensions/postgres.mjs +66 -0
- package/src/extensions/prisma.d.mts +13 -0
- package/src/extensions/prisma.mjs +63 -0
- package/src/extensions/project.mjs +432 -0
- package/src/extensions/scaffold-convex.mjs +130 -0
- package/src/extensions/scaffold-sql.mjs +144 -0
- package/src/extensions/server.d.mts +20 -0
- package/src/extensions/server.mjs +102 -0
- package/src/extensions/sql-scope.mjs +22 -0
- package/src/graph/knowledge-graph.mjs +1 -1
- package/src/graph/repo-contribution.mjs +405 -0
- package/src/graph/repo-contribution.types.mjs +32 -0
- package/src/graph-access/edge-decision-adapter.mjs +41 -0
- package/src/graph-access/edge-record-adapter.mjs +73 -0
- package/src/graph-access/index.mjs +253 -0
- package/src/graph-access/multi-contribution-record-adapter.mjs +101 -0
- package/src/graph-access/multi-record-projection-adapter.mjs +74 -0
- package/src/graph-access/source-adapter.mjs +81 -0
- package/src/graph-refresh/compare.mjs +110 -0
- package/src/graph-refresh/controller.mjs +324 -0
- package/src/graph-refresh/index.mjs +3 -0
- package/src/graph-refresh/local.mjs +78 -0
- package/src/graph-view/babylon/babylon-scene-port.mjs +64 -0
- package/src/graph-view/babylon/index.mjs +2 -0
- package/src/graph-view/babylon/navigator.mjs +312 -0
- package/src/graph-view/babylon/provenance.mjs +36 -0
- package/src/graph-view/babylon/scene-controller.mjs +131 -0
- package/src/graph-view/babylon/semantic-picking.mjs +35 -0
- package/src/graph-view/babylon/web-host.mjs +188 -0
- package/src/graph-view/cli.mjs +3 -0
- package/src/graph-view/command.mjs +34 -0
- package/src/graph-view/contracts.mjs +79 -0
- package/src/graph-view/errors.mjs +5 -0
- package/src/graph-view/index.mjs +4 -0
- package/src/graph-view/intents.mjs +30 -0
- package/src/graph-view/query.mjs +213 -0
- package/src/graph-view/refs.mjs +2 -0
- package/src/graph-view/structured/browser.mjs +262 -0
- package/src/graph-view/structured/styles.mjs +8 -0
- package/src/graph-workspace/authoring.mjs +185 -0
- package/src/graph-workspace/browser/dom.mjs +23 -0
- package/src/graph-workspace/browser/index.mjs +6 -0
- package/src/graph-workspace/browser/map.mjs +374 -0
- package/src/graph-workspace/browser/review.mjs +55 -0
- package/src/graph-workspace/browser/styles.mjs +11 -0
- package/src/graph-workspace/browser/workbench.mjs +351 -0
- package/src/graph-workspace/browser/workspace.mjs +433 -0
- package/src/graph-workspace/disclosure.mjs +39 -0
- package/src/graph-workspace/geometry.mjs +78 -0
- package/src/graph-workspace/index.mjs +11 -0
- package/src/graph-workspace/labels.mjs +50 -0
- package/src/graph-workspace/model.mjs +109 -0
- package/src/graph-workspace/recipes.mjs +100 -0
- package/src/graph-workspace/scale.mjs +98 -0
- package/src/graph-workspace/theme.mjs +156 -0
- package/src/knowledge/ontology-guide.mjs +152 -0
- package/src/knowledge-health/proof/installed-check.mjs +2 -2
- package/src/knowledge-health/rule-identity.mjs +7 -7
- package/src/knowledge-health/workshop.mjs +22 -2
- package/src/personal-workspace/selection.mjs +17 -2
- package/src/project/config.mjs +1 -1
- package/src/project/providers/github.mjs +24 -0
- package/src/project/repo-identity.mjs +3 -22
- package/src/projection/obsidian/contracts.mjs +1 -1
- package/src/projection/obsidian/materialize/path-registry.mjs +1 -1
- package/src/projection/obsidian/materialize/prepare-view.mjs +1 -1
- package/src/projection/obsidian/materialize/redaction.mjs +1 -1
- package/src/projection/obsidian/personal-workspace.mjs +24 -28
- package/src/projection/obsidian/plugin-bridge/channel.mjs +1 -1
- package/src/projection/obsidian/publication/publisher.mjs +25 -4
- package/src/projection/project.mjs +18 -14
- package/src/readiness/readiness.mjs +20 -11
- package/src/readiness-protocols/bundled-pack.mjs +14 -766
- package/src/readiness-protocols/bundled-selection.mjs +32 -0
- package/src/readiness-protocols/evidence.mjs +2 -1
- package/src/readiness-protocols/packs/mnstry.mjs +766 -0
- package/src/readiness-protocols/runtime.mjs +43 -6
- package/src/runtime/obsidian/engine.mjs +99 -26
- package/src/runtime/obsidian/lifecycle.mjs +3 -3
- package/src/runtime/obsidian/login-item.mjs +2 -2
- package/src/runtime/obsidian/machine-settings.mjs +52 -8
- package/src/runtime/obsidian/opening.mjs +2 -2
- package/src/runtime/obsidian/personal-selection.mjs +88 -26
- package/src/runtime/obsidian/pipeline.mjs +75 -7
- package/src/runtime/obsidian/private-lock.mjs +11 -2
- package/src/runtime/obsidian/selection-continuity.mjs +124 -0
- package/src/runtime/obsidian/service-main.mjs +15 -9
- package/src/runtime/obsidian/service.mjs +14 -0
- package/src/runtime/obsidian/unheld-evidence.mjs +1 -1
- package/src/runtime/obsidian/view-permission.mjs +2 -1
- package/src/upgrade/upgrade.mjs +23 -4
- package/templates/distribution-workspace/README.md +2 -2
- package/templates/external-project-workspace/atelier.project.json +3 -0
- package/templates/external-project-workspace/pack-lifecycle.json +3 -1
- package/templates/knowledge-workspace/README.md +2 -2
- package/docs/integration-and-review-plan.md +0 -409
- package/docs/integration-contract-decisions.md +0 -44
- package/docs/knowledge-health/devday/facilitator.md +0 -16
- package/docs/knowledge-health/devday/public-default.md +0 -107
- package/docs/knowledge-health/devday/quickstart.md +0 -18
- package/docs/knowledge-health/devday/support.md +0 -22
- package/docs/knowledge-health/exercise.md +0 -17
- package/docs/knowledge-health/support.md +0 -34
- package/docs/presentation-review-disposition.md +0 -47
- package/docs/progressive-ingestion-acceptance.md +0 -89
- package/docs/progressive-ingestion.md +0 -235
- /package/docs/{capability-stewardship.md → guides/capability-stewardship.md} +0 -0
- /package/docs/{exact-upgrades.md → guides/exact-upgrades.md} +0 -0
- /package/docs/{guided-upgrades.md → guides/guided-upgrades.md} +0 -0
- /package/docs/{inquiry-harnesses.md → guides/inquiry-harnesses.md} +0 -0
- /package/docs/{learning-harnesses.md → guides/learning-harnesses.md} +0 -0
- /package/docs/{local-review.md → guides/local-review.md} +0 -0
- /package/docs/{skill-steward.md → guides/skill-steward.md} +0 -0
- /package/docs/{template-upgrades.md → guides/template-upgrades.md} +0 -0
- /package/docs/{assurance-controls.md → maintainers/assurance-controls.md} +0 -0
- /package/docs/{attestation.md → reference/attestation.md} +0 -0
- /package/docs/{coauthor-session.md → reference/coauthor-session.md} +0 -0
- /package/docs/{continuity.md → reference/continuity.md} +0 -0
- /package/docs/{contract-stability.md → reference/contract-stability.md} +0 -0
- /package/docs/{decision-practices.md → reference/decision-practices.md} +0 -0
- /package/docs/{evidence-navigation.md → reference/evidence-navigation.md} +0 -0
- /package/docs/{extension-pack-lifecycle.md → reference/extension-pack-lifecycle.md} +0 -0
- /package/docs/{interaction-and-reflection.md → reference/interaction-and-reflection.md} +0 -0
- /package/docs/{local-state.md → reference/local-state.md} +0 -0
- /package/docs/{ontology.md → reference/ontology.md} +0 -0
- /package/docs/{optional-ingestion.md → reference/optional-ingestion.md} +0 -0
- /package/docs/{project-command-inventory.md → reference/project-command-inventory.md} +0 -0
- /package/docs/{semantic-ingestion.md → reference/semantic-ingestion.md} +0 -0
- /package/docs/{semantic-operation.md → reference/semantic-operation.md} +0 -0
- /package/docs/{vault-service.md → reference/vault-service.md} +0 -0
|
@@ -4,7 +4,7 @@ This document describes the selection binding, the apply policy setup, the
|
|
|
4
4
|
conflict-state view and the acceptance receipt validator under
|
|
5
5
|
`src/projection/obsidian/selection-ui/`. It states what each one does on this
|
|
6
6
|
machine and what it does not. The contract itself is in
|
|
7
|
-
[obsidian-contract.md](obsidian-contract.md).
|
|
7
|
+
[obsidian-contract.md](../reference/obsidian-contract.md).
|
|
8
8
|
|
|
9
9
|
Nothing in this module starts the app, runs `obsidian-cli`, publishes a vault
|
|
10
10
|
or writes a source file. The test suite installs a spawn guard that throws if
|
|
@@ -273,7 +273,7 @@ path. The package root (`@mnstry/atelier`) exports nothing of the projection.
|
|
|
273
273
|
Names ending `ForOracleTests` are mutation controls for the test suite, not a
|
|
274
274
|
supported API. The whole surface is alpha and may change between prereleases.
|
|
275
275
|
What the tarball must and must not carry, and the package proof, are in
|
|
276
|
-
[release-engineering.md](release-engineering.md#obsidian-package-contents).
|
|
276
|
+
[release-engineering.md](../maintainers/release-engineering.md#obsidian-package-contents).
|
|
277
277
|
|
|
278
278
|
## First vault: what to expect
|
|
279
279
|
|
|
@@ -564,7 +564,7 @@ its own storage and asks again the next time until the vault is trusted or
|
|
|
564
564
|
restricted mode is switched on for good in its settings. Turning the plugin
|
|
565
565
|
off in a vault, or uninstalling it there, is respected from then on;
|
|
566
566
|
`atelier obsidian plugin on --scope ID` brings it back. What the plugin does
|
|
567
|
-
and never does is in [obsidian-plugin.md](obsidian-plugin.md).
|
|
567
|
+
and never does is in [obsidian-plugin.md](../reference/obsidian-plugin.md).
|
|
568
568
|
|
|
569
569
|
`open` and `status` answer with a freshness state, not a promise. `current`
|
|
570
570
|
means the vault is the present generation, verified by read-back, and the app
|
|
@@ -689,7 +689,7 @@ exactly because the folder is listed.
|
|
|
689
689
|
Obsidian does not have to be quit.
|
|
690
690
|
- **Obsidian is not running.** The view is published on the path with no app,
|
|
691
691
|
as before. `open` then adds the vault to the app's settings file (see
|
|
692
|
-
[Obsidian's vault list](obsidian-contract.md#obsidians-vault-list) for
|
|
692
|
+
[Obsidian's vault list](../reference/obsidian-contract.md#obsidians-vault-list) for
|
|
693
693
|
exactly when and how that one file is written, marked to reopen) and starts
|
|
694
694
|
Obsidian plainly, with no link: an Obsidian started with a link opens only
|
|
695
695
|
that vault and drops the reopen flag of every other one, so your other
|
|
@@ -825,7 +825,7 @@ names the folder meanwhile, a settings file with other bytes is already
|
|
|
825
825
|
there, or an interrupted run left a replacement or a removal. `open` may then
|
|
826
826
|
add and open the vault before it is complete, and the app publishes the rest.
|
|
827
827
|
Anything that would replace or remove a file waits for the app. See "First publication into a vault no Obsidian lists" in
|
|
828
|
-
[obsidian-contract.md](obsidian-contract.md). The plugin's entry written this
|
|
828
|
+
[obsidian-contract.md](../reference/obsidian-contract.md). The plugin's entry written this
|
|
829
829
|
way counts as offered until the plugin says hello from the vault.
|
|
830
830
|
|
|
831
831
|
The publisher still writes into a vault only when it can coordinate with every
|
|
@@ -971,9 +971,12 @@ confirmed there (see "A confirmed selection", below).
|
|
|
971
971
|
(`personal-views-exceed-settings-limit`), within the Obsidian settings
|
|
972
972
|
contract. The preferred view, when it names a saved one, is the default. No
|
|
973
973
|
generation file is written. `view add` refuses `views-from-personal-overlay`;
|
|
974
|
-
`audience set
|
|
975
|
-
`
|
|
976
|
-
|
|
974
|
+
`audience set me` records owner-only visibility in the machine settings, and
|
|
975
|
+
`audience clear` withholds every audience. Custom audience lists refuse
|
|
976
|
+
`personal-binding-owner-only`; `location set` still refuses
|
|
977
|
+
`personal-binding-decision-unavailable`. Refused operations do not change
|
|
978
|
+
audience, view or location settings. Following a selection may still keep
|
|
979
|
+
machine-private continuity evidence before the setting operation refuses.
|
|
977
980
|
- **Preferences and coverage.** `preferences` are returned read only. A theme
|
|
978
981
|
is reported and never written: `appearance.json` stays the person's.
|
|
979
982
|
`coverage` is passed through untouched. No Obsidian code reads it: it states
|
|
@@ -1024,28 +1027,52 @@ unit and loader is what it was.
|
|
|
1024
1027
|
a confirmed generation. `status`, `open` and `service start` load the
|
|
1025
1028
|
selection and refuse with its code; the service's freshness shows every view
|
|
1026
1029
|
`stale` with it, and its status document has it as the last tick's reason.
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1030
|
+
The command and service read the same machine-private continuity state, so a
|
|
1031
|
+
restart or a separate command does not accept a shortened history. An invalid
|
|
1032
|
+
checkpoint refuses `invalid-selection-continuity`; a checkpoint that cannot be
|
|
1033
|
+
kept refuses `selection-continuity-unavailable`. No project is returned in either case.
|
|
1031
1034
|
A confirmed selection is reported by `status` (`selection`: the generation
|
|
1032
1035
|
and the number of its record).
|
|
1033
|
-
- **The service starts whatever the selection.** A bound
|
|
1034
|
-
its private home
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1036
|
+
- **The service starts from an initialized home whatever the selection.** A bound
|
|
1037
|
+
project's folder is its private home. The home must contain its caller-authored
|
|
1038
|
+
`atelier.personal.json`, even when its enrollment is explicitly empty and no
|
|
1039
|
+
generation is confirmed. A bare directory or a missing/unreadable manifest
|
|
1040
|
+
refuses before startup; the locator cannot infer that no repositories were
|
|
1041
|
+
enrolled from missing evidence. This tightens the former lower-level API
|
|
1042
|
+
behavior that could start from a bare home. The locator reads the home and the
|
|
1043
|
+
current manifest's repository roots for exclusion, without composing or
|
|
1044
|
+
selecting a generation. A data root
|
|
1045
|
+
inside a declared repository is refused before private state is created or a
|
|
1046
|
+
login item is removed for a restart, including when nothing is confirmed.
|
|
1047
|
+
The service resolves its workspace from that at once and starts, and its
|
|
1048
|
+
engine awaits the loader at each tick. `atelier obsidian --personal-home`
|
|
1049
|
+
does this for a bound home. A
|
|
1050
|
+
program that runs the service itself (`runMaintenanceService` from
|
|
1051
|
+
`@mnstry/atelier/obsidian`) gives it the same through `locateProject`, a
|
|
1052
|
+
synchronous function that answers, without loading anything, a project whose
|
|
1053
|
+
`configDir` is the folder the workspace is resolved from. The workspace is
|
|
1054
|
+
then resolved from that answer alone: a data root named only in the loaded
|
|
1055
|
+
project's local overlay, and not in the answer, is not seen, so the service's
|
|
1056
|
+
state can lie under another data root than the loaded project's. Name the data
|
|
1057
|
+
root through the `dataRoot` option or the workspace pointer instead, which
|
|
1058
|
+
both see. Started by a login item, the service asks the home, not the loader,
|
|
1059
|
+
for its workspace and log. `service status` and `stop`, the ticks `open` asks
|
|
1060
|
+
for, `service unit --remove` and `uninstall` locate the service the same way.
|
|
1061
|
+
When no project loaded (a restart while nothing is confirmed), the engine
|
|
1062
|
+
locates the workspace too, so each view published before says why nothing is
|
|
1063
|
+
published now instead of keeping the previous run's `current`. A service given
|
|
1064
|
+
a loader that answers a promise and no locator is still refused at start with
|
|
1044
1065
|
`service-loader-not-synchronous`, and so is one whose locator answers a
|
|
1045
1066
|
promise; a located value that names no folder refuses
|
|
1046
1067
|
`service-locator-invalid`. The workspace pointer is under the home, so a home
|
|
1047
1068
|
that is gone when the service starts leaves it no workspace to find
|
|
1048
1069
|
(`service-workspace-not-prepared`).
|
|
1070
|
+
- **Cleanup with nothing confirmed.** `service unit --remove` and `uninstall`
|
|
1071
|
+
locate the existing protected workspace without a generation, and remember
|
|
1072
|
+
the machine's login-item decision as `off` there. They do not change the
|
|
1073
|
+
audience or confirm anything. Uninstall reports the actual kept workspace
|
|
1074
|
+
pointer under the personal home, and leaves its bytes, private state,
|
|
1075
|
+
generations and selection history in place.
|
|
1049
1076
|
- **Following the history.** A loaded project is pinned to the record it was
|
|
1050
1077
|
loaded under, and the engine observes that record and the place of the next
|
|
1051
1078
|
one as configuration. A confirmation is therefore loaded at the next tick. A
|
|
@@ -1062,7 +1089,7 @@ unit and loader is what it was.
|
|
|
1062
1089
|
another), whether or not the
|
|
1063
1090
|
record's generation could be used, and whichever part of the service read
|
|
1064
1091
|
it. A history that ends earlier refuses `selection-history-shortened` at a
|
|
1065
|
-
load and at a recheck
|
|
1092
|
+
load and at a recheck until a fresh confirmation accepts it; at
|
|
1066
1093
|
the read made when a tick stops a view, the view says `mixed-read` at that
|
|
1067
1094
|
tick and the code at the next. A project already loaded is loaded again at
|
|
1068
1095
|
the next tick once any part of the service has read the history ending at a
|
|
@@ -1078,18 +1105,26 @@ unit and loader is what it was.
|
|
|
1078
1105
|
noted. The views say why (`open` and
|
|
1079
1106
|
`status --json` name the ways out), and the vault keeps what it last
|
|
1080
1107
|
published.
|
|
1081
|
-
- **What ends that refusal.**
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1108
|
+
- **What ends that refusal.** Put the removed records back, or explicitly confirm
|
|
1109
|
+
the currently eligible generation through `selectPersonalGeneration` again.
|
|
1110
|
+
That existing confirmation operation is the accepting act; no new command is
|
|
1111
|
+
needed. One fresh confirmation accepts a shorter history even when its record
|
|
1112
|
+
number remains below the highest ever observed. Its unique confirmation
|
|
1113
|
+
identity distinguishes it from a previously observed record restored to the
|
|
1114
|
+
same position. Replaying a previously observed prefix refuses, including after
|
|
1115
|
+
a shorter history was accepted. Composition still decides whether the chosen
|
|
1116
|
+
generation is eligible.
|
|
1117
|
+
- **Continuity across starts.** The highest observed number, accepted head and
|
|
1118
|
+
previously observed record digests live in
|
|
1119
|
+
`state/maintenance/selection-continuity.json` under the existing private
|
|
1120
|
+
workspace. Reads validate its closed schema, workspace and personal-home
|
|
1121
|
+
identities; changed writes are serialized through the existing private-state
|
|
1122
|
+
lock, owner-only and atomic. State is bounded at 1 MiB and 8,192 observed record
|
|
1123
|
+
identities; exhausting the identity budget refuses `selection-continuity-capacity`.
|
|
1124
|
+
First use initializes from the current valid history, including historical v1
|
|
1125
|
+
records without a confirmation identity. Retain this private state: deleting
|
|
1126
|
+
all of it removes the evidence that distinguishes prior observation from a first
|
|
1127
|
+
installation. Damaged existing state is never treated as a new installation.
|
|
1093
1128
|
- **What the history is checked for besides.** At every full reconciliation the
|
|
1094
1129
|
history is read again, so a record before the last that no longer links, or
|
|
1095
1130
|
a confirmation that landed before the engine first looked at the record,
|
|
@@ -1098,7 +1133,8 @@ unit and loader is what it was.
|
|
|
1098
1133
|
refuses `mixed-read` at its next wait, before its generation commits (one
|
|
1099
1134
|
already committed stays), so do the views after it, and the next tick
|
|
1100
1135
|
publishes under the new record. While the last load was refused, every tick
|
|
1101
|
-
loads again: with nothing confirmed
|
|
1136
|
+
loads again: with nothing confirmed the manifest, history and private continuity
|
|
1137
|
+
state are read without composition, and with a
|
|
1102
1138
|
confirmed generation that no longer holds, one composition runs in a worker
|
|
1103
1139
|
per tick.
|
|
1104
1140
|
- **A narrowing.** When the newly confirmed generation drops a source (a
|
|
@@ -1110,10 +1146,14 @@ unit and loader is what it was.
|
|
|
1110
1146
|
published (`held-for-your-edit`, `publication-withheld-for-your-edit`): the
|
|
1111
1147
|
note is neither removed nor overwritten. A note edited during the
|
|
1112
1148
|
publication itself stays in the vault (`retained-edit`).
|
|
1113
|
-
- **Who may see.** The
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1149
|
+
- **Who may see.** The existing machine audience setting owns this decision.
|
|
1150
|
+
For a personal binding, an undecided empty audience initializes to `only-you`
|
|
1151
|
+
with notes without a classification shown, recorded with `defaults` provenance.
|
|
1152
|
+
Existing explicit `only-you` lists and unclassified choices retain their exact
|
|
1153
|
+
meaning. An explicit `audience clear` stays empty across ticks and restarts.
|
|
1154
|
+
A nonempty custom setting refuses `personal-binding-owner-only` until
|
|
1155
|
+
`audience set me` or `audience clear` is recorded. Nothing is written into a
|
|
1156
|
+
generation or the personal overlay.
|
|
1117
1157
|
- **Reading the history on the service's event loop.** The head is one
|
|
1118
1158
|
directory listing and one bounded read per record. A record that is not a
|
|
1119
1159
|
regular file (a FIFO, a device) refuses `selection-history-corrupt` without
|
|
@@ -1121,6 +1161,9 @@ unit and loader is what it was.
|
|
|
1121
1161
|
project (its permissions changed, not removed) fails the tick when the
|
|
1122
1162
|
engine observes its files, as an unreadable configuration file does: nothing
|
|
1123
1163
|
is published, and the service reports the failed tick.
|
|
1164
|
+
After a worker composes a generation, the caller still reads generation
|
|
1165
|
+
files, resolves the generation's project configuration and assembles the
|
|
1166
|
+
bound project on its own thread. Composition itself remains in the worker.
|
|
1124
1167
|
|
|
1125
1168
|
Measured once on 2,156 notes in three repositories, with 50 annotations and five
|
|
1126
1169
|
saved views (six views in all). The production contributions were loaded, as
|
|
@@ -1179,7 +1222,7 @@ logged, and what carries no code is a crash.
|
|
|
1179
1222
|
A service bound through `--personal-home` is given a locator as well, and starts
|
|
1180
1223
|
from it (see "A confirmed selection"). The plugin's status read allows for such
|
|
1181
1224
|
a loader without waiting for it (see "The channel" in
|
|
1182
|
-
[obsidian-plugin.md](obsidian-plugin.md)).
|
|
1225
|
+
[obsidian-plugin.md](../reference/obsidian-plugin.md)).
|
|
1183
1226
|
|
|
1184
1227
|
**Since that measurement.** The engine prepares each view cooperatively and
|
|
1185
1228
|
the publisher yields between complete units, so the service answers health and
|
|
@@ -1258,7 +1301,7 @@ personal home they compose in a worker, as the engine's loads do, and the read
|
|
|
1258
1301
|
starts each one on the loop by reading the selection history. A load that holds the loop
|
|
1259
1302
|
for a second or more is logged (`status-project-loaded`), and so is a load at
|
|
1260
1303
|
every request that names the files it started over (see "What the service
|
|
1261
|
-
shows of these loads" in [obsidian-plugin.md](obsidian-plugin.md)).
|
|
1304
|
+
shows of these loads" in [obsidian-plugin.md](../reference/obsidian-plugin.md)).
|
|
1262
1305
|
|
|
1263
1306
|
What the waits cost. The waits of observation and routing are taken at
|
|
1264
1307
|
every boundary between two edits or two operations and before each
|
|
@@ -1302,7 +1345,7 @@ test reported as a pass.
|
|
|
1302
1345
|
is admitted although the protocol depends on the view's undocumented
|
|
1303
1346
|
`lastSavedData` field, and the protocol cases have not been re-run on any
|
|
1304
1347
|
later release. See the "App capability floor" row of
|
|
1305
|
-
[obsidian-contract.md](obsidian-contract.md). An app that was not running
|
|
1348
|
+
[obsidian-contract.md](../reference/obsidian-contract.md). An app that was not running
|
|
1306
1349
|
when an adapter was qualified had no version to check, and neither had an
|
|
1307
1350
|
app that was not found. Such an answer is never reused, and the adapter
|
|
1308
1351
|
built on it does not coordinate with any app it then finds running, and
|
|
@@ -1342,6 +1385,50 @@ test reported as a pass.
|
|
|
1342
1385
|
first allocation or when a vault is made again. Every other check runs
|
|
1343
1386
|
again at both, and a vault made again, or published into, through a link on
|
|
1344
1387
|
the way is refused (`vault-allocation-moved`).
|
|
1388
|
+
- Private state after a wait: that the private state is outside every
|
|
1389
|
+
repository the workspace declares now is proven when a project loads, around
|
|
1390
|
+
each engine phase, inside the engine and selection locks, and after each wait
|
|
1391
|
+
the publisher makes for the app, its list of vaults, its comparison of kept
|
|
1392
|
+
notes or its quiet period. "Declares now" differs by binding. For a project
|
|
1393
|
+
bound to a personal home, each proof reads the home's manifest again, so a
|
|
1394
|
+
repository enrolled while a tick waits is seen at the next proof. For an
|
|
1395
|
+
ordinary project, each proof uses the repositories of the project as it was
|
|
1396
|
+
last loaded. A change to its configuration or overlay that declares a
|
|
1397
|
+
repository enclosing the data root is not seen until the project is loaded
|
|
1398
|
+
again, and the writes of the tick in flight (preserved edits, pending edits
|
|
1399
|
+
and freshness, say) can land under it meanwhile. The proof is not made again
|
|
1400
|
+
at every write, and it is not made at all for writes made outside the
|
|
1401
|
+
engine's phases and the publisher. Those are:
|
|
1402
|
+
- the built-in proposal store's writes for pending edits to shared notes
|
|
1403
|
+
(kept bytes, arbitration records and its queue) while it works through
|
|
1404
|
+
several of them;
|
|
1405
|
+
- everything the service process itself keeps: its log, service settings,
|
|
1406
|
+
runtime record (with its bearer), service-start lock, startup record,
|
|
1407
|
+
error record and login-item record, including those written after it waits
|
|
1408
|
+
for a free port, for its server to listen or for the service manager, and
|
|
1409
|
+
those a login item's start writes in the workspace the unit names when the
|
|
1410
|
+
project's loader fails;
|
|
1411
|
+
- the plugin channel's bearer and the plugin choices it records, including a
|
|
1412
|
+
first-use bearer minted while a view is prepared and the confirmation
|
|
1413
|
+
written when a plugin session opens;
|
|
1414
|
+
- lock cleanup when a proof fails: any private lock that is held, or whose
|
|
1415
|
+
ticket was just published, when its proof refuses is still released or
|
|
1416
|
+
withdrawn, so that ownership is never left behind. This covers the engine
|
|
1417
|
+
lock (a release record, or the withdrawal of a ticket published before
|
|
1418
|
+
the last check of its acquisition), the selection continuity lock and the
|
|
1419
|
+
publication locks, including a release retried at the next acquisition.
|
|
1420
|
+
Lock cleanup and removing staged candidates are the only changes the
|
|
1421
|
+
engine and the publisher make after one of their proofs refuses.
|
|
1422
|
+
|
|
1423
|
+
Each of these writers keeps its file inside the workspace's private state,
|
|
1424
|
+
but none checks the roots declared now. A manifest that comes to enclose the
|
|
1425
|
+
data root, or that cannot be read, while the service runs can therefore
|
|
1426
|
+
receive these writes. A refusal of the private state's own location
|
|
1427
|
+
(`managed-root-unproven`) stops the whole tick, whichever view it is found
|
|
1428
|
+
in: no later view is prepared, given a store or published, and no view is
|
|
1429
|
+
reported current after it. A view whose own vault is in a bad place is still
|
|
1430
|
+
refused alone. A single check of the declared
|
|
1431
|
+
roots at every private-state write is planned as a separate change.
|
|
1345
1432
|
- Replacing a vault during a publication: the allocated folder is checked
|
|
1346
1433
|
before the vault lock is taken and again once its folder is made, after the
|
|
1347
1434
|
app is asked about the vault, before each note and before the generation is
|
|
@@ -1366,7 +1453,7 @@ test reported as a pass.
|
|
|
1366
1453
|
`~/.config/obsidian`) on Linux. It is written only while the process table
|
|
1367
1454
|
shows, positively, that no Obsidian runs, only when Obsidian created it
|
|
1368
1455
|
before, and with a backup beside it; see
|
|
1369
|
-
[Obsidian's vault list](obsidian-contract.md#obsidians-vault-list). A
|
|
1456
|
+
[Obsidian's vault list](../reference/obsidian-contract.md#obsidians-vault-list). A
|
|
1370
1457
|
Flatpak or snap build keeps its list inside its sandbox and never reads that
|
|
1371
1458
|
file. Which build is in use is read from which vault list was written last
|
|
1372
1459
|
(every build rewrites its own when a vault window opens or closes), and only
|
|
@@ -1421,7 +1508,7 @@ test reported as a pass.
|
|
|
1421
1508
|
- The command-line tool (`obsidian-cli`) is a client of the app and is not
|
|
1422
1509
|
counted. An app packaged under another executable name, an app on
|
|
1423
1510
|
another machine and an app that starts after a reading are not seen; see
|
|
1424
|
-
"The path with no app" in [obsidian-contract.md](obsidian-contract.md).
|
|
1511
|
+
"The path with no app" in [obsidian-contract.md](../reference/obsidian-contract.md).
|
|
1425
1512
|
- The app-free path is live: before 0.2.0-alpha.10 the probe always found
|
|
1426
1513
|
Atelier's own service, so publication never took the path with no app.
|
|
1427
1514
|
From 0.2.0-alpha.10 it does, whenever the process table shows, positively,
|
|
@@ -1451,7 +1538,7 @@ test reported as a pass.
|
|
|
1451
1538
|
back and a deleted folder is not made again until the person turns it on
|
|
1452
1539
|
in Obsidian's settings or runs
|
|
1453
1540
|
`atelier obsidian plugin on --scope ID`. Plugin files are never removed from
|
|
1454
|
-
a vault. See [obsidian-plugin.md](obsidian-plugin.md).
|
|
1541
|
+
a vault. See [obsidian-plugin.md](../reference/obsidian-plugin.md).
|
|
1455
1542
|
- Login items: the tests run the launchd and systemd managers' own code
|
|
1456
1543
|
against stand-ins that answer as launchctl and systemctl do, and never
|
|
1457
1544
|
against a real session. What `launchctl print-disabled` says for an item
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Source-bound ontology guidance
|
|
2
|
+
|
|
3
|
+
The experimental internal ontology guide prepares a private proposal for the
|
|
4
|
+
existing knowledge workspace. It starts with a decision and preserves concept
|
|
5
|
+
identity, exact source passages, directed relationship meaning and uncertainty.
|
|
6
|
+
It does not edit a plan or source, confirm a participant answer, accept a mapping,
|
|
7
|
+
or execute a decision.
|
|
8
|
+
|
|
9
|
+
This module is not a supported package export or a new browser route. Existing
|
|
10
|
+
knowledge-plan v1 files, the five knowledge views, sessions and package interfaces
|
|
11
|
+
are unchanged. Maintainers can inspect its behavior with:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
node --test test/ontology-guide.test.mjs
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## One guided loop
|
|
18
|
+
|
|
19
|
+
Choose a question in the current plan, then answer seven prompts:
|
|
20
|
+
|
|
21
|
+
1. What decision will this help?
|
|
22
|
+
2. What is the thing you are naming?
|
|
23
|
+
3. How would you recognize the same thing next week?
|
|
24
|
+
4. What close example should stay separate?
|
|
25
|
+
5. Which source supports it?
|
|
26
|
+
6. What does the relationship mean in each direction?
|
|
27
|
+
7. What would change your mind?
|
|
28
|
+
|
|
29
|
+
For an existing corpus, select bounded permitted evidence through the current
|
|
30
|
+
knowledge context. For a blank workspace, retain its enrolled source directory
|
|
31
|
+
and begin with a permitted observation/interview note or an explicit unknown.
|
|
32
|
+
A synthetic practice observation remains labelled synthetic. An absent or broken
|
|
33
|
+
enrollment is a source configuration error; it cannot establish an abstention.
|
|
34
|
+
Both routes lead to source-owner review and a proposed next decision or test.
|
|
35
|
+
Observed outcomes belong in Learn after they exist.
|
|
36
|
+
|
|
37
|
+
The seven prompts map to the four existing Model fields: `concept`, `identity`,
|
|
38
|
+
`relation` and `test`. A host should use the existing session answer/propose,
|
|
39
|
+
confirmation and private-save operations. The guide returns wording; it does not
|
|
40
|
+
send those operations. A saved draft remains a proposal. Agent-written wording
|
|
41
|
+
still requires the existing explicit participant confirmation before saving.
|
|
42
|
+
|
|
43
|
+
## Identity, evidence and limits
|
|
44
|
+
|
|
45
|
+
Choose concepts by their existing IDs. Definitions, stable identity rules and
|
|
46
|
+
`concept:` tags remain in the v1 plan. Examples, near misses, distinction
|
|
47
|
+
rationale and disconfirming observations stay in private proposal metadata;
|
|
48
|
+
they do not widen the closed plan schema. Identical definitions or identity
|
|
49
|
+
rules require an explanation of how the concepts differ. Similar labels or
|
|
50
|
+
aliases never establish identity. This small check cannot detect every semantic
|
|
51
|
+
ambiguity; a reviewer still judges the proposed definitions and examples.
|
|
52
|
+
|
|
53
|
+
The guide reads context through the existing local knowledge workspace. Evidence
|
|
54
|
+
must match a unique selected source ID, its current full-file digest, a valid
|
|
55
|
+
line range and its exact text. The handoff retains repo/path, digest, locator
|
|
56
|
+
and passage, including qualifications. A source or plan change requires a new
|
|
57
|
+
binding; earlier evidence and drafts remain historical. This is local-operator
|
|
58
|
+
source binding, not a recipient permission check or hosted access decision.
|
|
59
|
+
|
|
60
|
+
Explain each required relation using its existing forward predicate and both
|
|
61
|
+
endpoint concepts. A reverse reading helps a person understand the original
|
|
62
|
+
relation; it creates no inverse assertion. Evidence retrieval cannot establish a
|
|
63
|
+
business claim, certainty or semantic truth.
|
|
64
|
+
|
|
65
|
+
A proposed answer can say `supported` or `abstain`. These are the participant's
|
|
66
|
+
proposed labels. `ready-for-human-review` checks draft completeness and source
|
|
67
|
+
binding only. It does not certify that the answer is supported. Require stated
|
|
68
|
+
scope and uncertainty, alternative explanations, and what could change the
|
|
69
|
+
answer. Missing evidence suggests narrowing the claim or abstaining. Omitted
|
|
70
|
+
sources remain explicit in the handoff; an abstention with omissions is marked
|
|
71
|
+
`unverified-omissions`, so it cannot imply corpus-wide absence of evidence.
|
|
72
|
+
|
|
73
|
+
## Review handoff
|
|
74
|
+
|
|
75
|
+
The internal `createOntologyGuide()` adapter reads an already-loaded local
|
|
76
|
+
workspace and a current question ID:
|
|
77
|
+
|
|
78
|
+
- `prompts(workspace, questionId, entry)` returns ordered guidance for `corpus`
|
|
79
|
+
or `blank` entry and the existing view/Model field for each step.
|
|
80
|
+
- `inspect(workspace, questionId, draft)` returns field-specific next actions,
|
|
81
|
+
verified source passages and retained retrieval limitations.
|
|
82
|
+
- `prepareReview(workspace, questionId, draft, {basePlanText, planRef})` returns
|
|
83
|
+
an input body for the existing copy-only proposal store, or diagnostics.
|
|
84
|
+
|
|
85
|
+
`draft` retains the workspace snapshot, raw base-plan SHA-256, entry route,
|
|
86
|
+
decision, exact concept IDs with examples/counterexamples and identity basis,
|
|
87
|
+
required relation readings, selected evidence pins, proposed answer/limits and
|
|
88
|
+
disconfirming observation. An optional `proposedPlan` must still validate as v1.
|
|
89
|
+
The source owner reviews changes before any canonical admission.
|
|
90
|
+
|
|
91
|
+
The handoff binds exact raw plan bytes, retains complete before/proposed text
|
|
92
|
+
and structural changes, and uses `proposal.copy-only` with `directWrite: false`
|
|
93
|
+
and no apply endpoint. Oversize handoffs refuse with a request to narrow the
|
|
94
|
+
change, before the existing store can truncate them. The guide never calls the
|
|
95
|
+
store or persists a second draft ledger. A host explicitly supplies the body to
|
|
96
|
+
the existing proposal workflow after reviewing the private audience.
|
|
97
|
+
|
|
98
|
+
Review and source edit remain separate. The source owner inspects the exact diff,
|
|
99
|
+
checks identity and passage meaning, applies an admitted change using the normal
|
|
100
|
+
Git path, reruns knowledge check/evaluate, then starts a newly bound session.
|
|
101
|
+
No source pin is replaced automatically to clear a failed check.
|
|
102
|
+
|
|
103
|
+
Cross-repository concept mappings remain proposals preserving both source
|
|
104
|
+
identities. Conversion to an edge-governance record requires the allocated
|
|
105
|
+
stable repository/source descriptor, exact current source revisions and raw
|
|
106
|
+
byte locators, plus the receiving review policy. This internal guide does not
|
|
107
|
+
invent those values, emit accepted equivalence or activate a semantic edge.
|
|
108
|
+
|
|
109
|
+
The synthetic tests exercise software behavior on the invented equipment library.
|
|
110
|
+
They do not demonstrate a cold participant's comprehension, answer correctness,
|
|
111
|
+
host ACL behavior or a completed human corpus/blank-start drill.
|
|
@@ -117,7 +117,9 @@ remove only their own temporary files. Every failure is a
|
|
|
117
117
|
that `readPersonalSelection` returns, so a choice shown against an older history
|
|
118
118
|
does not apply. Selections are append-only, numbered, hash-chained records under
|
|
119
119
|
`selections/`, each written completely before it is published, so a crash leaves
|
|
120
|
-
only a temporary file.
|
|
120
|
+
only a temporary file. New records include a unique confirmation identity: confirming the
|
|
121
|
+
same generation against the same predecessor again produces a distinct record. Existing
|
|
122
|
+
v1 records without this identity remain readable. Concurrent selections refuse `selection-concurrent`. An
|
|
121
123
|
ineligible generation refuses with its composition code, such as
|
|
122
124
|
`stale-generation`.
|
|
123
125
|
- `readPersonalSelection({ personalHome })` returns the current selection and
|
|
@@ -128,9 +130,10 @@ remove only their own temporary files. Every failure is a
|
|
|
128
130
|
rewriting, any trailing run of records (up to the whole history) yields another
|
|
129
131
|
valid chain; it changes the returned `head`, so a host that needs to detect it
|
|
130
132
|
keeps the head it last observed and compares it. The Obsidian maintenance
|
|
131
|
-
service
|
|
132
|
-
|
|
133
|
-
|
|
133
|
+
service persists the highest observed record number, accepted head and observed
|
|
134
|
+
record identities in its machine-private continuity state. A restart keeps that
|
|
135
|
+
evidence. A shorter history refuses until the removed records return or the person
|
|
136
|
+
makes one fresh confirmation (see [obsidian.md](obsidian.md)).
|
|
134
137
|
- `readPersonalSelectionHead({ personalHome })` returns `{ selected, sequence,
|
|
135
138
|
head }` from the history alone, with `sequence` 0 while nothing is selected.
|
|
136
139
|
It composes nothing, so it does not say whether the selection is still
|
|
@@ -108,7 +108,7 @@ demonstrate framing, research return, uncertainty, review and graph proposals.
|
|
|
108
108
|
local ingestion, persistent Knowledge records, retrieval and graph projection.
|
|
109
109
|
The tests are synthetic conformance evidence, not real research validation.
|
|
110
110
|
|
|
111
|
-
When useful practice emerges, use [
|
|
111
|
+
When useful practice emerges, use [Phronesis — practical judgment](../reference/phronesis.md):
|
|
112
112
|
retain its reason, cases and exceptions, then adopt it into the appropriate
|
|
113
113
|
instruction, capability or implementation through that destination's owner.
|
|
114
114
|
Ordinary research does not require a new skill, ADR or personal tracking.
|
|
@@ -19,6 +19,38 @@ write through a browser view.
|
|
|
19
19
|
commerce, sessions, audit, and client-grade sharing as MNSTRY runtime
|
|
20
20
|
authority.
|
|
21
21
|
|
|
22
|
+
## Select the Readiness Pack
|
|
23
|
+
|
|
24
|
+
Projects include the bundled MNSTRY readiness pack by default. To use only
|
|
25
|
+
declared custom protocols, set this in the tracked `atelier.project.json`,
|
|
26
|
+
preserving the project's other settings:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"ext": {
|
|
31
|
+
"mnstry.atelier": {
|
|
32
|
+
"readiness": { "includeBundled": false }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
An absent setting or explicit `true` keeps the existing bundled protocols and
|
|
39
|
+
twelve-dimension tenant journey. Local preferences cannot re-enable a bundle
|
|
40
|
+
that the tracked project deselects.
|
|
41
|
+
|
|
42
|
+
After reviewing a selection change, update the existing lock explicitly:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
atelier lock write --project ./atelier.project.json
|
|
46
|
+
atelier lock check --project ./atelier.project.json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The lock records the selected packs while preserving its template and migration
|
|
50
|
+
history. A lock that still pins the deselected bundle fails `lock check` and
|
|
51
|
+
`upgrade --dry-run`. To select the bundle again, set `includeBundled` to `true`
|
|
52
|
+
and write the lock after review.
|
|
53
|
+
|
|
22
54
|
## Local Review Pass
|
|
23
55
|
|
|
24
56
|
Run checks from the copied workspace:
|
|
@@ -36,6 +68,13 @@ Use `--check` modes where available when validating committed generated output.
|
|
|
36
68
|
If a command is unavailable in an older workspace, report the exact command and
|
|
37
69
|
stderr instead of substituting a new protocol.
|
|
38
70
|
|
|
71
|
+
With the bundle deselected, the graph, project projection and generic readiness
|
|
72
|
+
checks remain available. The projection and readiness output omit the MNSTRY
|
|
73
|
+
tenant journey; they do not create a replacement journey or packet. Selected
|
|
74
|
+
custom protocols use the existing [extension-pack workflow](extensions.md#readiness-extension-packs).
|
|
75
|
+
`readiness journey`, `readiness packet` and `readiness export --dry-run` refuse
|
|
76
|
+
with `readiness-pack-disabled`, including when custom packs are selected.
|
|
77
|
+
|
|
39
78
|
## Claim-First Output
|
|
40
79
|
|
|
41
80
|
Readiness summaries should lead with claims, then evidence:
|
|
@@ -9,6 +9,37 @@ 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.16
|
|
13
|
+
|
|
14
|
+
This release renames two graph workspace names; nothing else changes and no
|
|
15
|
+
stored record changes format.
|
|
16
|
+
|
|
17
|
+
- The room `constellation` is now `map`, and the middle recipe and theme layer
|
|
18
|
+
`coach` is now `distribution`. Use `room: 'map'`,
|
|
19
|
+
`composeRecipes({ distribution })`, `planMap`, `createMap`, and the shell
|
|
20
|
+
handle's `map` and `backToMap`. Provenance now reads `setBy: 'distribution'`;
|
|
21
|
+
code that compared `setBy` values with `'coach'` must compare with
|
|
22
|
+
`'distribution'`.
|
|
23
|
+
- The alpha.15 names still work in this release and are removed in the next:
|
|
24
|
+
`room: 'constellation'`, `composeRecipes({ coach })` (do not pass both),
|
|
25
|
+
`planConstellation`, `createConstellation`, `constellation`,
|
|
26
|
+
`backToConstellation` and the `.constellation` class. Styles that target
|
|
27
|
+
`.atelier-gw .constellation` should move to `.atelier-gw .map`.
|
|
28
|
+
|
|
29
|
+
## Upgrading to 0.2.0-alpha.15
|
|
30
|
+
|
|
31
|
+
This release adds the graph workspace (`@mnstry/atelier/graph-workspace` and
|
|
32
|
+
`@mnstry/atelier/graph-workspace/browser`) and the graph view, access and
|
|
33
|
+
source-contribution modules. Existing consumers do not need to change. No schema
|
|
34
|
+
or stored record format changes, with one effect on Knowledge Health:
|
|
35
|
+
|
|
36
|
+
- Knowledge Health regenerates its rule identity for the knowledge-graph file:
|
|
37
|
+
the `check` each assessment carries names a new `version` and `sourceTree`.
|
|
38
|
+
The rule it applies is unchanged. A workshop contribution started on
|
|
39
|
+
0.2.0-alpha.14, completed or not, cannot start Review on this release
|
|
40
|
+
(`finding changed; refresh before selecting a new draft`); start Review
|
|
41
|
+
before upgrading, or record a new contribution.
|
|
42
|
+
|
|
12
43
|
## Upgrading to 0.2.0-alpha.14
|
|
13
44
|
|
|
14
45
|
`atelier upgrade closure --npm-root ABSOLUTE_NPM_ROOT` plans a check of a staged
|
|
@@ -64,7 +95,7 @@ version in a disposable workspace before client use.
|
|
|
64
95
|
|
|
65
96
|
## Upgrading to 0.2.0-alpha.13
|
|
66
97
|
|
|
67
|
-
The public [Knowledge Health workshop](knowledge-health/
|
|
98
|
+
The public [Knowledge Health workshop](../knowledge-health/quickstart.md)
|
|
68
99
|
uses an invented local workspace. Participants can retain their original words,
|
|
69
100
|
a separate interpretation and a `note`, `perspective-only`, `disagreement` or
|
|
70
101
|
`pause` response. Review is a separate optional session. A selected draft can
|
|
@@ -75,7 +106,7 @@ then reads it back and reassesses. The browser host grants no source-apply route
|
|
|
75
106
|
|
|
76
107
|
`atelier knowledge semantic` exposes the existing semantic runner's eleven
|
|
77
108
|
operations through JSON stdin. It retains the runner's refusal codes and saved
|
|
78
|
-
failure details. The [semantic operation contract](semantic-operation.md)
|
|
109
|
+
failure details. The [semantic operation contract](../reference/semantic-operation.md)
|
|
79
110
|
remains authoritative; this release adds no schema or package export.
|
|
80
111
|
|
|
81
112
|
Existing source and local history remain owned by their original repositories.
|
|
@@ -96,13 +127,13 @@ The next release adds the responsibility workflows, source-current ingestion,
|
|
|
96
127
|
Trackables, governed instruction adoption and local template profiles. Template
|
|
97
128
|
adoption uses the existing exact-plan transaction engine with explicit v2 policy
|
|
98
129
|
and v3 plans; existing policies are never converted automatically. See
|
|
99
|
-
[template profiles](template-profile.md) and [template adoption](template-upgrades.md).
|
|
130
|
+
[template profiles](../reference/template-profile.md) and [template adoption](template-upgrades.md).
|
|
100
131
|
Optional advisory decisions require no provider installation or activation.
|
|
101
132
|
|
|
102
133
|
New Trackable journals retain resolved calendar occurrences and byte-bound state.
|
|
103
134
|
Legacy v1 journals remain available as chain-verified exports when state replay
|
|
104
135
|
cannot be established. Preserve historical records and use the documented
|
|
105
|
-
[Trackables](trackables.md) host limits before adopting a new profile.
|
|
136
|
+
[Trackables](../reference/trackables.md) host limits before adopting a new profile.
|
|
106
137
|
Regenerate local graph/projection artifacts through the ordinary upgrade process
|
|
107
138
|
and qualify each consuming host independently. A package update supplies no
|
|
108
139
|
publication permission or runtime activation.
|
|
@@ -165,7 +196,7 @@ The link resolver that produces `links_to` edges changed in five classes
|
|
|
165
196
|
the repository root, malformed percent-encoding, and workspace-only wikilink
|
|
166
197
|
and cross-repository edges). Regenerate committed graph artifacts after
|
|
167
198
|
upgrading and review the difference; the classes are listed in the changelog
|
|
168
|
-
and in [obsidian-contract.md](obsidian-contract.md).
|
|
199
|
+
and in [obsidian-contract.md](../reference/obsidian-contract.md).
|
|
169
200
|
|
|
170
201
|
## Upgrading to 0.2.0-alpha.7
|
|
171
202
|
|
|
@@ -264,7 +295,7 @@ compensating for that.
|
|
|
264
295
|
This release breaks the export vocabulary. The runtime owner names are now
|
|
265
296
|
the vendor-neutral domain terms `identity`, `catalog`, `commitments`,
|
|
266
297
|
`events`, `projection`, `consent`, `messaging`, `providers`, and `audit`
|
|
267
|
-
(defined in `docs/ontology.md`), and documents written against
|
|
298
|
+
(defined in `docs/reference/ontology.md`), and documents written against
|
|
268
299
|
`v0.1.0-alpha.2` do not validate here. Regenerate exports and projections rather than hand-editing
|
|
269
300
|
them, and update any consumer that pins an owner name. `CHANGELOG.md` lists
|
|
270
301
|
every breaking change in this release, including the contract-stability epoch
|
|
@@ -276,7 +307,7 @@ current corpus against the validators of the baseline recorded in
|
|
|
276
307
|
a tag sets `baselineTag` to that tag in the release commit, so the following
|
|
277
308
|
development cycle is checked against the released validators. Until the first
|
|
278
309
|
post-epoch tag is cut the baseline is null and the gate is inert by design.
|
|
279
|
-
See `docs/contract-stability.md`.
|
|
310
|
+
See `docs/reference/contract-stability.md`.
|
|
280
311
|
|
|
281
312
|
## Before You Upgrade
|
|
282
313
|
|
|
@@ -378,8 +409,8 @@ and dependency trees; two observed byte inventories must agree and match the com
|
|
|
378
409
|
checkout does not authenticate an upstream publisher.
|
|
379
410
|
|
|
380
411
|
Review snapshots and decisions are separate from historical v1 locks. See
|
|
381
|
-
[pack lifecycle](extension-pack-lifecycle.md) and
|
|
382
|
-
[inspection portability](review-portability.md) before replacing packs or moving
|
|
412
|
+
[pack lifecycle](../reference/extension-pack-lifecycle.md) and
|
|
413
|
+
[inspection portability](../reference/review-portability.md) before replacing packs or moving
|
|
383
414
|
state. Updating a package or a digest never silently renews old approval.
|
|
384
415
|
|
|
385
416
|
## Exact local candidate transactions
|