@mnstry/atelier 0.2.0-alpha.11 → 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 +1005 -0
- package/README.md +149 -9
- 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-obsidian-generation-manifest.v2.schema.json +372 -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/contracts/compat-baseline.json +1 -1
- package/docs/architecture.md +89 -0
- package/docs/assurance-controls.md +4 -3
- 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 +242 -26
- package/docs/obsidian-contract.md +878 -36
- package/docs/obsidian-plugin.md +619 -0
- package/docs/obsidian.md +809 -64
- 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 +56 -1
- 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 +68 -3
- 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/obsidian/contracts/generation-manifest-v2/invalid/case-only-collision.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/flat-note-path.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/hidden-folder.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/identity-in-the-body.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/link-breaking-name.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/missing-identity-region.v2.json +156 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/missing-layout-version.v2.json +159 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/note-named-like-a-folder.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/unknown-region-kind.v2.json +160 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/invalid/v1-contract-version.v2.json +161 -0
- package/fixtures/obsidian/contracts/generation-manifest-v2/valid/three-notes.v2.json +160 -0
- package/fixtures/obsidian/edits/workspace.json +1 -1
- package/fixtures/obsidian/materialization/expected-full.json +21 -21
- package/fixtures/obsidian/materialization/expected-full.layout-1.json +99 -0
- package/fixtures/obsidian/materialization/expected-scoped.json +7 -7
- package/fixtures/obsidian/materialization/expected-scoped.layout-1.json +39 -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 +64 -6
- package/plugins/obsidian/main.js +444 -0
- package/plugins/obsidian/manifest.json +9 -0
- package/plugins/obsidian/styles.css +22 -0
- 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 +832 -62
- 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 +36 -0
- package/src/coordination/index.mjs +110 -0
- package/src/egress/forbidden-egress.mjs +2 -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/project/private-state.mjs +10 -1
- package/src/projection/obsidian/contracts.mjs +224 -18
- package/src/projection/obsidian/edits/apply.mjs +63 -19
- package/src/projection/obsidian/edits/regions.mjs +137 -42
- package/src/projection/obsidian/materialize/index.mjs +6 -3
- package/src/projection/obsidian/materialize/path-registry.mjs +443 -57
- package/src/projection/obsidian/materialize/prepare-view.mjs +382 -131
- package/src/projection/obsidian/materialize/redaction.mjs +327 -0
- package/src/projection/obsidian/materialize/settings.mjs +113 -34
- package/src/projection/obsidian/personal-workspace.mjs +436 -0
- package/src/projection/obsidian/plugin-bridge/bundle.mjs +50 -0
- package/src/projection/obsidian/plugin-bridge/channel.mjs +174 -0
- package/src/projection/obsidian/plugin-bridge/index.mjs +10 -0
- package/src/projection/obsidian/proposals/adapter.mjs +47 -8
- package/src/projection/obsidian/proposals/observation.mjs +20 -7
- package/src/projection/obsidian/publication/bridge-script.mjs +11 -5
- package/src/projection/obsidian/publication/index.mjs +2 -1
- package/src/projection/obsidian/publication/publisher.mjs +312 -36
- package/src/projection/obsidian/publication/transport.mjs +63 -8
- package/src/projection/obsidian/publication/vault-list.mjs +200 -0
- package/src/projection/obsidian/recovery/index.mjs +4 -1
- package/src/projection/obsidian/recovery/restart.mjs +3 -1
- package/src/projection/obsidian/recovery/store.mjs +168 -8
- package/src/projection/obsidian/selection-ui/contribution.mjs +6 -5
- package/src/projection/obsidian/selection-ui/focus.mjs +14 -7
- package/src/projection/obsidian/selection-ui/selection-state.mjs +2 -2
- package/src/projection/obsidian/selection-ui/selection.mjs +8 -3
- package/src/readiness/readiness.mjs +10 -3
- package/src/reflection/index.mjs +56 -0
- package/src/runtime/obsidian/app-capability.mjs +104 -12
- package/src/runtime/obsidian/app-production-seams.mjs +161 -42
- package/src/runtime/obsidian/app-registration.mjs +313 -0
- package/src/runtime/obsidian/app-restart.mjs +154 -0
- package/src/runtime/obsidian/engine.mjs +288 -29
- package/src/runtime/obsidian/extension-points.mjs +1 -1
- package/src/runtime/obsidian/index.mjs +15 -8
- package/src/runtime/obsidian/launch-plan.mjs +91 -0
- package/src/runtime/obsidian/lifecycle.mjs +193 -22
- package/src/runtime/obsidian/login-item.mjs +332 -0
- package/src/runtime/obsidian/machine-settings.mjs +119 -12
- package/src/runtime/obsidian/opening.mjs +369 -63
- package/src/runtime/obsidian/pending-edits.mjs +10 -0
- package/src/runtime/obsidian/pipeline.mjs +71 -3
- package/src/runtime/obsidian/plugin-channel.mjs +289 -0
- package/src/runtime/obsidian/plugin-choice.mjs +182 -0
- package/src/runtime/obsidian/plugin-drift.mjs +124 -0
- package/src/runtime/obsidian/plugin-presence.mjs +61 -0
- 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 +113 -17
- 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 +105 -5
- package/src/runtime/obsidian/service-server.mjs +50 -12
- package/src/runtime/obsidian/service.mjs +134 -7
- package/src/runtime/obsidian/startup-adapters.mjs +59 -21
- package/src/runtime/obsidian/state-store.mjs +13 -1
- 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 +193 -7
- package/src/server/server.mjs +45 -6
- 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 +2 -1
- 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,198 @@
|
|
|
1
|
+
# Vanilla semantic proposal processor
|
|
2
|
+
|
|
3
|
+
`src/ingestion/semantic.mjs` connects a host's extractor to Atelier's existing
|
|
4
|
+
ingestion evidence reader. It produces qualified entity and assertion proposals
|
|
5
|
+
and an evidence-revalidated searchable proposal view. The host chooses and
|
|
6
|
+
invokes its extractor;
|
|
7
|
+
this module has no provider selection, model call, subprocess, network client,
|
|
8
|
+
runtime dependency, durable write, or graph mutation. Graphify, LightRAG, and Jev
|
|
9
|
+
are optional host adapters and are not required for this processor.
|
|
10
|
+
|
|
11
|
+
This is an internal first-consumer module. Its `atelier.semantic-candidate/v0`,
|
|
12
|
+
`atelier.semantic-input/v0`, `atelier.semantic-proposals/v0`, and
|
|
13
|
+
`atelier.semantic-proposal-view/v0` formats are not registered public contracts.
|
|
14
|
+
There is no package subpath export or CLI command for them. Published v1 records
|
|
15
|
+
and their closed extension fields remain unchanged.
|
|
16
|
+
|
|
17
|
+
## Host flow
|
|
18
|
+
|
|
19
|
+
1. Establish the existing permission to read the **whole ingestion plan** and
|
|
20
|
+
supply the current owner-adopted knowledge domain. `readScope: 'all-plan'` is
|
|
21
|
+
a reader precondition, not a permission granted by this module.
|
|
22
|
+
2. Complete structural intake using the existing ingestion store. Select exact
|
|
23
|
+
evidence references from its completed attempts.
|
|
24
|
+
3. Call `prepareSemanticInput({store, plan, domain, references,
|
|
25
|
+
identityCandidates})`. It reads each selected span using `store.getEvidence`
|
|
26
|
+
and pins the domain definition, source bytes, attempt, and locator.
|
|
27
|
+
4. Invoke the chosen extractor with that input in the host. Include the returned
|
|
28
|
+
input digest in its candidate envelope. An extractor may be local,
|
|
29
|
+
deterministic, or model-backed; its permissions, budgets, retries, and
|
|
30
|
+
provider calls belong to the host.
|
|
31
|
+
5. Call `prepareSemanticProposals({store, input, candidates})`. It rereads the
|
|
32
|
+
exact evidence, verifies the binding, and validates the candidate envelope.
|
|
33
|
+
6. Use `readSemanticProposals({store, input, proposals, query, limit})` for a
|
|
34
|
+
fresh, literal search over assertions. It matches all whitespace-separated
|
|
35
|
+
query terms against endpoint IDs and labels, the predicate, the assertion's
|
|
36
|
+
own quotes, and its time expression. It excludes JSON field names, digests,
|
|
37
|
+
domain scope boilerplate and endpoint evidence from other assertions. It
|
|
38
|
+
verifies the same evidence and candidate binding before returning results.
|
|
39
|
+
Before serving a view the host must compare `domainRef` with its currently
|
|
40
|
+
adopted domain; this module checks the pinned snapshot, not an external
|
|
41
|
+
current-domain registry.
|
|
42
|
+
7. Present the proposals to the existing knowledge evaluation and review owner.
|
|
43
|
+
That owner separately decides identity, semantic acceptance, activation, and
|
|
44
|
+
any permitted canonical projection. This module never performs those steps.
|
|
45
|
+
|
|
46
|
+
An edit to an original source makes the earlier attempt stale. Intake and extract
|
|
47
|
+
the changed source again, then create a new input and proposals. The module
|
|
48
|
+
processes one source per input, so hosts can keep independent extraction caches
|
|
49
|
+
and correction histories. It does not implement those caches or histories.
|
|
50
|
+
Serving a saved proposal object without the fresh read does not revalidate it.
|
|
51
|
+
|
|
52
|
+
## Input and candidate shape
|
|
53
|
+
|
|
54
|
+
`plan` has exactly `planId` and `planDigest`. Each selected reference has exactly
|
|
55
|
+
`sourceId`, `sourceDigest`, `attemptId`, and `locator: {kind, value}`. Locator kinds
|
|
56
|
+
are the existing `line`, `csv-cell`, and `json-pointer` formats. Source digests
|
|
57
|
+
are 64-character hexadecimal values; plan and input digests have a `sha256:`
|
|
58
|
+
prefix. Evidence receipts must be current, verified, unsynthesized, and pending
|
|
59
|
+
semantic acceptance, and must match every requested binding.
|
|
60
|
+
|
|
61
|
+
The domain is an existing v1 knowledge `domain` or `domain-revision` record.
|
|
62
|
+
Duplicate type or predicate IDs are refused. Identity candidates are optional
|
|
63
|
+
host-supplied `{id, label, type}` proposals with unique IDs and vocabulary types.
|
|
64
|
+
Their presence does not establish canonical identity or authenticate an owner.
|
|
65
|
+
|
|
66
|
+
A candidate envelope has exactly:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
{
|
|
70
|
+
schema: SEMANTIC_CANDIDATE_VERSION,
|
|
71
|
+
inputDigest: input.digest,
|
|
72
|
+
entities: [{
|
|
73
|
+
id: 'nora', label: 'Nora', type: 'person',
|
|
74
|
+
identity: {status: 'source-local', candidateIds: []},
|
|
75
|
+
evidence: ['span-1'],
|
|
76
|
+
}],
|
|
77
|
+
assertions: [{
|
|
78
|
+
id: 'availability', subjectId: 'nora', predicate: 'available',
|
|
79
|
+
objectId: null, direction: 'subject-only', negated: true,
|
|
80
|
+
modality: 'asserted', scope: input.domain.data.scope,
|
|
81
|
+
time: {from: null, until: null, expression: 'Friday', unknowns: ['calendar-date']},
|
|
82
|
+
evidence: [{id: 'span-1', quote: 'Nora is not available on Friday.'}],
|
|
83
|
+
}],
|
|
84
|
+
unknowns: [],
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The example assumes `span-1` is that exact located source passage and the domain
|
|
89
|
+
contains `person` and `available`. Candidate IDs use lowercase ASCII letters,
|
|
90
|
+
digits, and hyphens, begin with a letter, and are at most 64 characters. IDs are
|
|
91
|
+
unique across entities, assertions, and unknown findings. Labels never merge
|
|
92
|
+
entities: two objects named Atlas can have different types and identities.
|
|
93
|
+
|
|
94
|
+
Entity identity status is `source-local`, `existing-candidate`, or `unknown`.
|
|
95
|
+
Only `existing-candidate` includes nonempty `candidateIds`; each must be a
|
|
96
|
+
supplied candidate of the same type. Resolution remains pending even with one
|
|
97
|
+
matching candidate.
|
|
98
|
+
|
|
99
|
+
Binary assertions require two supplied entity IDs and `subject-to-object`.
|
|
100
|
+
Unary assertions require `objectId: null` and `subject-only`. The predicate must
|
|
101
|
+
belong to the domain vocabulary. Negation is a Boolean. Modality is `asserted`,
|
|
102
|
+
`conditional`, `proposed`, `possible`, `uncertain`, or `unknown`. Scope must equal
|
|
103
|
+
the supplied domain scope. Separate assertions between the same entities remain
|
|
104
|
+
separate, including statements with different polarity or time.
|
|
105
|
+
The vocabulary supplies IDs and meanings; it does not declare predicate arity
|
|
106
|
+
or allowed endpoint types. The knowledge review owner checks those meanings.
|
|
107
|
+
|
|
108
|
+
Time has exactly `from`, `until`, `expression`, and `unknowns`. Dates are nullable
|
|
109
|
+
valid `YYYY-MM-DD` calendar dates, with an ordered interval when both are given.
|
|
110
|
+
A temporal expression must occur in a cited quote. An unresolved expression such
|
|
111
|
+
as Friday or through June requires explicit unknowns when neither boundary is
|
|
112
|
+
resolved. Resolved dates without an expression are unanchored extractor
|
|
113
|
+
interpretation; calendar validity alone does not provide a textual anchor.
|
|
114
|
+
Quote matching establishes location; it does not establish that a
|
|
115
|
+
date interpretation, predicate, polarity, or identity is semantically correct.
|
|
116
|
+
|
|
117
|
+
Unknown findings have exactly `{id, relatedCandidateId, reason, evidence}`.
|
|
118
|
+
The optional related ID refers to a supplied entity or assertion, or is null.
|
|
119
|
+
The nonempty reason and supporting span IDs remain visible. An unmodeled
|
|
120
|
+
predicate must be reported as a finding instead of an unsupported assertion.
|
|
121
|
+
An assertion without evidence is refused; the caller can separately report a
|
|
122
|
+
retrieval gap without presenting it as a supported assertion.
|
|
123
|
+
|
|
124
|
+
## Results and refusals
|
|
125
|
+
|
|
126
|
+
Proposals hydrate each support with the source ID, source digest, attempt ID,
|
|
127
|
+
locator, relative source ref, and exact quote. They retain the original candidate
|
|
128
|
+
envelope, pending identity and assertion acceptance, declared unknowns, input
|
|
129
|
+
digest, and domain ref. The read model reports total assertion matches and omitted
|
|
130
|
+
assertion matches when its limit truncates results. Entities and unknown findings
|
|
131
|
+
are returned without filtering, to retain interpretation context. The view carries
|
|
132
|
+
the pinned domain reference. It does not synthesize an answer.
|
|
133
|
+
|
|
134
|
+
Every proposal and view declares `authority: 'none'`, `canonicalMutation: false`,
|
|
135
|
+
`semanticAcceptance: 'pending'`, and `coverage: 'selected-spans-only'`.
|
|
136
|
+
Counts report proposed entities, assertions, and explicit unknown findings
|
|
137
|
+
(`abstentions`); successful validation reports zero refusals. A refused request
|
|
138
|
+
throws `SemanticProposalError` with `refusalCount: 1` and a typed code:
|
|
139
|
+
|
|
140
|
+
| Code | Boundary |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `SEMANTIC_INVALID` | Closed, bounded plain JSON and valid query |
|
|
143
|
+
| `SEMANTIC_PROFILE` | Existing domain definition and unique vocabulary |
|
|
144
|
+
| `SEMANTIC_LIMIT` | Input, candidate, or result bounds |
|
|
145
|
+
| `SEMANTIC_READ_SCOPE` | Whole-plan reader profile |
|
|
146
|
+
| `SEMANTIC_EVIDENCE` | Available verified spans and literal quote support |
|
|
147
|
+
| `SEMANTIC_STALE` | Existing reader reports a stale source or mismatched plan, digest, or attempt binding |
|
|
148
|
+
| `SEMANTIC_BINDING` | Exact plan, source, attempt, locator, and input digest |
|
|
149
|
+
| `SEMANTIC_IDENTITY` | Unique IDs, supplied identity mappings, and endpoints |
|
|
150
|
+
| `SEMANTIC_TYPE` / `SEMANTIC_PREDICATE` | Declared vocabulary |
|
|
151
|
+
| `SEMANTIC_DIRECTION` / `SEMANTIC_NEGATION` | Participant roles and Boolean polarity |
|
|
152
|
+
| `SEMANTIC_MODALITY` / `SEMANTIC_SCOPE` | Declared qualification |
|
|
153
|
+
| `SEMANTIC_TIME` / `SEMANTIC_UNKNOWN` | Retained time and explicit findings |
|
|
154
|
+
|
|
155
|
+
The first failing rule refuses the entire request; there is no partial admission.
|
|
156
|
+
There are at most 64 references, identity candidates, entities, assertions, or
|
|
157
|
+
unknown findings per input, and at most 16 supporting spans per candidate.
|
|
158
|
+
Identity alternatives and time unknowns also have a 16-item ceiling. Text limits
|
|
159
|
+
are 8192 characters for labels, reasons, time expressions and time unknowns;
|
|
160
|
+
256 for plan and attempt IDs; 16384 for locators and source refs; 65536 for
|
|
161
|
+
quotes; and 512 for queries. Entity and unknown supports copy the full located
|
|
162
|
+
span, so that span must also fit the 65536-character quote ceiling. Result
|
|
163
|
+
limits must be safe integers between one and 64. Empty evidence selections
|
|
164
|
+
are evidence errors; malformed collections and noninteger result limits retain
|
|
165
|
+
shape errors rather than reporting capacity overflow.
|
|
166
|
+
The existing ingestion plain-JSON bounds apply, including the 256 KiB payload
|
|
167
|
+
limit, to caller inputs, assembled semantic inputs, hydrated proposals and read
|
|
168
|
+
views. Hydration can exceed this limit even when raw candidates fit: entity
|
|
169
|
+
supports include source span text and proposals retain raw candidates as well.
|
|
170
|
+
Count, text-length, depth, member and byte overflow reports `SEMANTIC_LIMIT`;
|
|
171
|
+
malformed JSON, invalid identifiers and invalid field shapes retain their typed
|
|
172
|
+
validation codes. Oversized input or output is refused instead of silently
|
|
173
|
+
truncated. This is a bounded evidence selection, not a complete-document
|
|
174
|
+
extraction guarantee. It does not report coverage within the selection or list
|
|
175
|
+
selected spans that no candidate cites; zero refusals is not a coverage score.
|
|
176
|
+
|
|
177
|
+
## Qualification limits
|
|
178
|
+
|
|
179
|
+
The tests exercise invented candidates, targeted mutation controls for the
|
|
180
|
+
refusal scenarios represented in the test tables, successful pending identity
|
|
181
|
+
mappings, direct receipt bindings, saved-proposal tampering, every declared
|
|
182
|
+
collection
|
|
183
|
+
bound, text/query/result limits, assembled and hydrated byte overflow, search
|
|
184
|
+
exclusion and literal escaped characters, and the real local
|
|
185
|
+
ingestion evidence reader. They check fidelity and refusal mechanics, including
|
|
186
|
+
source correction. They do not qualify a semantic extractor, human review,
|
|
187
|
+
permissions of an installed host, or economic benefit.
|
|
188
|
+
|
|
189
|
+
This profile supports unary or binary entity-valued assertions and one domain
|
|
190
|
+
scope string. It does not yet represent literal-valued assertions, structured
|
|
191
|
+
per-assertion scope, attributed speakers, UTF-8 byte-range locators, or native
|
|
192
|
+
engine graph projection. A richer adapter needs an explicitly reviewed mapping
|
|
193
|
+
that retains those qualifications and reports projection omissions. A document
|
|
194
|
+
graph's `related` edge must not replace a qualified real-world assertion.
|
|
195
|
+
|
|
196
|
+
Graphify, LightRAG, and Jev integration must separately qualify their native
|
|
197
|
+
capabilities, provenance mapping, optional configuration, lifecycle, and composed
|
|
198
|
+
behavior. These tests make no quality, latency, token, or cost savings claim.
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Semantic operation: internal vanilla profile
|
|
2
|
+
|
|
3
|
+
`src/knowledge/semantic-operation.mjs` connects a host's extraction to the
|
|
4
|
+
existing intake and knowledge owners. It is an internal library. There is no
|
|
5
|
+
public export, registered schema or CLI command yet. The proposed consumer is
|
|
6
|
+
an agent operating the experimental Atelier CLI after Foundation registers it.
|
|
7
|
+
|
|
8
|
+
Atelier never invokes a model. The host supplies its raw output, its normalized
|
|
9
|
+
candidate envelope, configuration pins and usage report. A deterministic or
|
|
10
|
+
authored route explicitly declares that it automates no model extraction.
|
|
11
|
+
Every receiver decision comes from the host's actual receiver session. The
|
|
12
|
+
library checks consistency; it does not authenticate a person or grant source,
|
|
13
|
+
model, publication or projection permission.
|
|
14
|
+
|
|
15
|
+
## Owners and sequence
|
|
16
|
+
|
|
17
|
+
Create the internal runner with `{workspaceRoot, workspaceId, run}`. The domain
|
|
18
|
+
must already exist in the knowledge harness. All writes use its history digest
|
|
19
|
+
through `appendHarness`; intake retains the original source and raw output.
|
|
20
|
+
There is no second canonical ledger.
|
|
21
|
+
|
|
22
|
+
1. Complete structural ingestion through the existing ingestion owner. Use
|
|
23
|
+
a separate one-source plan for each independent correction unit. The exact
|
|
24
|
+
reader checks the whole plan: editing another source in a shared plan also
|
|
25
|
+
invalidates that plan. Independent plans let unaffected operations reuse
|
|
26
|
+
their completed attempts without rebinding an old model response.
|
|
27
|
+
2. Call `begin` before the host starts extraction. It reads current all-plan
|
|
28
|
+
evidence and the current ledger domain, pins the semantic input, records a
|
|
29
|
+
reservation in the existing ledger, then calls intake `beginAttempt`.
|
|
30
|
+
Only the new successful reservation returns `execution: 'ready-for-host'`.
|
|
31
|
+
A reopened begun, partial or reserved attempt has unknown execution.
|
|
32
|
+
3. The host runs its extractor separately. Call `complete` with exact raw
|
|
33
|
+
output bytes, their SHA-256 digest, the normalized candidates and usage.
|
|
34
|
+
Raw output is retained even if candidate interpretation, plain-JSON bounds
|
|
35
|
+
or usage validation fails. Resume that
|
|
36
|
+
interpretation on the same attempt; never rerun extraction silently.
|
|
37
|
+
4. Prepare the structural source contribution through
|
|
38
|
+
`prepareIngestionContribution`, retaining its real `extracted` origin and
|
|
39
|
+
source binding. The receiver evaluates and reviews that source.
|
|
40
|
+
5. Call `prepareContribution` for each entity, assertion or unknown finding.
|
|
41
|
+
Entities are `concept` contributions, assertions are `claim` contributions.
|
|
42
|
+
Their author identifies the host machine, and `origin.method: 'authored'`
|
|
43
|
+
explicitly means a machine-authored interpretation pending review.
|
|
44
|
+
Their bodies retain the complete qualified candidate, citations, raw attempt
|
|
45
|
+
pins, input digest and host-reported usage.
|
|
46
|
+
6. Submit receiver `evaluation`, `review` and `activation` records through
|
|
47
|
+
`record`. Assertion endpoints require currently accepted entity records.
|
|
48
|
+
A source-local identity stays distinct. An existing or unknown identity
|
|
49
|
+
requires an explicit identity choice in the receiver's review basis.
|
|
50
|
+
7. Call `prepareRelation` only after assertion acceptance. Qualified assertions
|
|
51
|
+
return an explicit projection omission. An eligible plain relation remains
|
|
52
|
+
pending until the receiver reviews it. Activate the accepted assertions and
|
|
53
|
+
permitted relations, then call `project`.
|
|
54
|
+
8. Reopen with the same workspace and run. Use `proposals` for pending results
|
|
55
|
+
and `context` for accepted knowledge. Read both through the supported runner.
|
|
56
|
+
9. Record a receiver withdrawal or a superseding source/identity contribution.
|
|
57
|
+
`cascade` performs idempotent relation cleanup after an assertion withdrawal.
|
|
58
|
+
Old projection activations refuse as soon as their support is ineligible,
|
|
59
|
+
including before cleanup. The receiver selects a new current activation.
|
|
60
|
+
|
|
61
|
+
## Proposed experimental commands and request shapes
|
|
62
|
+
|
|
63
|
+
Foundation owns command registration. The proposed group is
|
|
64
|
+
`atelier knowledge semantic <operation>`, with one JSON stdin request (at most
|
|
65
|
+
1 MiB), a caller-selected workspace and a run. These internal operation names
|
|
66
|
+
and shapes are the proposed binding; they are not a shipped command contract.
|
|
67
|
+
|
|
68
|
+
| Operation | Request fields |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| `begin` | `operationId`, `attemptId`, `at`, `term`, `plan: {planId, planDigest}`, `references`, `identityCandidates`, `extractor`, `confirm` |
|
|
71
|
+
| `status` | `operationId` |
|
|
72
|
+
| `reconcile` | `operationId`, `at`, `by`, `reason`, `outcome`, `confirm` |
|
|
73
|
+
| `complete` | `operationId`, `output`, `expectedOutputDigest`, `candidates`, `usage`, `at`, `confirm` |
|
|
74
|
+
| `proposals` | `operationId`, `query`, optional `limit` |
|
|
75
|
+
| `prepareContribution` | `operationId`, `id`, `kind`, `candidateId`, `source` pointer, `sourceBinding`, `term`, `at`, `confirm`; optional exact `supersedes` and `revisionReason` |
|
|
76
|
+
| `prepareRelation` | `assertion` pointer, `at`, `confirm` |
|
|
77
|
+
| `record` | A complete receiver `record`, `confirm` |
|
|
78
|
+
| `cascade` | Existing `withdrawalId`, `at`, `confirm` |
|
|
79
|
+
| `context` | `query` |
|
|
80
|
+
| `project` | `activationId`, `namespace` |
|
|
81
|
+
|
|
82
|
+
`extractor` has exactly `id`, `version`, `route`, `model`, `promptDigest` and
|
|
83
|
+
`parameters`. Routes are `model`, `deterministic` or `authored`; only the model
|
|
84
|
+
route has a nonnull model ID. The configuration digest covers all these fields
|
|
85
|
+
and the exact semantic input digest. Parameters and input remain bounded plain
|
|
86
|
+
JSON. Byte, member and depth overflow reports `SEMANTIC_OPERATION_LIMIT`;
|
|
87
|
+
malformed plain JSON reports `SEMANTIC_OPERATION_INVALID`. A pin records what the host declares; it is not a provider receipt.
|
|
88
|
+
|
|
89
|
+
`usage` has exactly `inputTokens`, `outputTokens`, `cost`, `currency`,
|
|
90
|
+
`elapsedMs` and `retries`. Unknown values are `null`, never zero. Counts are
|
|
91
|
+
nonnegative safe integers; cost is nonnegative and currency is an explicit
|
|
92
|
+
three-letter code or null. Usage is labelled host-reported. Record actual
|
|
93
|
+
provider receipts separately when available.
|
|
94
|
+
|
|
95
|
+
Reconciliation outcomes are `not-executed` or `failed-no-output`, with an
|
|
96
|
+
explicit actor and reason. They are host declarations, not independently
|
|
97
|
+
verified cleanup. A partial raw output must be completed on its original
|
|
98
|
+
attempt. A completed capture cannot be abandoned to permit another execution.
|
|
99
|
+
Matching completed source/configuration operations return a cache hit with the
|
|
100
|
+
existing operation ID; they do not create the requested new attempt.
|
|
101
|
+
|
|
102
|
+
An explicit identity review basis uses JSON shaped as:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"schema": "atelier.semantic-identity-decision/v0",
|
|
107
|
+
"operationId": "example-operation",
|
|
108
|
+
"candidateId": "example-entity",
|
|
109
|
+
"resolution": {
|
|
110
|
+
"status": "existing",
|
|
111
|
+
"contribution": {"id": "accepted-entity", "digest": "sha256:..."}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The existing contribution must be a supplied identity candidate of the matching
|
|
117
|
+
type and currently accepted. An explicit `resolution: {status: 'source-local'}`
|
|
118
|
+
chooses the new contribution instead. A label never resolves identity by itself.
|
|
119
|
+
An explicit contribution revision supersedes the latest interpretation for that
|
|
120
|
+
operation and candidate, with a stated reason. It still needs fresh receiver
|
|
121
|
+
evaluation, review and activation. Rebinding assertions to a revised entity
|
|
122
|
+
reuses the immutable raw capture; it does not re-execute extraction. Changing
|
|
123
|
+
the extracted candidate itself requires a separately declared interpretation
|
|
124
|
+
route and capture, rather than rewriting the recorded model output.
|
|
125
|
+
|
|
126
|
+
## Citations, witnesses and supported representation
|
|
127
|
+
|
|
128
|
+
The profile is `atelier.semantic-operation-profile/v0`. It retains the semantic
|
|
129
|
+
candidate's binary or unary participants, direction, negation, six modalities,
|
|
130
|
+
domain scope, full time qualifications, unknowns and located quotes. Original
|
|
131
|
+
quotes remain unchanged in the body and are revalidated against exact source
|
|
132
|
+
evidence. See [semantic ingestion](semantic-ingestion.md) for candidate bounds.
|
|
133
|
+
|
|
134
|
+
The structural source body is JSON extraction output. Ledger `basedOn` quotes
|
|
135
|
+
are limited to 8192 characters, with unique contribution IDs. Each dependency
|
|
136
|
+
therefore gets one labelled witness: the JSON-string encoding of its first
|
|
137
|
+
cited quote, without outer quotation marks, cut only at complete code points
|
|
138
|
+
and escape sequences. It must occur in the stored contribution body. Endpoint
|
|
139
|
+
dependencies use encoded candidate IDs when present in the entity body, or a
|
|
140
|
+
bounded actual text substring for an ordinary accepted concept. Its record ID
|
|
141
|
+
need not occur in its body. A body with no representable witness is refused.
|
|
142
|
+
The body labels `sourceWitness` entries
|
|
143
|
+
with `encoding: 'json-string-substring'` and `purpose: 'ledger-dependency-only'`.
|
|
144
|
+
Display citations from the candidate, never the dependency witness.
|
|
145
|
+
|
|
146
|
+
The witness helper can form distinct source dependencies, but this operation
|
|
147
|
+
profile processes one source per semantic input. It refuses missing or
|
|
148
|
+
ambiguous current structural sources, attempt/digest mismatch, absent witnesses
|
|
149
|
+
and more than 64 source-plus-endpoint dependencies with
|
|
150
|
+
`SEMANTIC_UNSUPPORTED_LEDGER_CITATION` (`unsupported-ledger-citation`). It
|
|
151
|
+
retains all cited spans in the candidate even when they share one dependency.
|
|
152
|
+
|
|
153
|
+
UTF-8 byte-range locators, multiline quotes, structured per-assertion scope,
|
|
154
|
+
literal-valued objects and speaker attribution are outside this profile.
|
|
155
|
+
The runner returns named `SEMANTIC_UNSUPPORTED_LOCATOR`,
|
|
156
|
+
`SEMANTIC_UNSUPPORTED_SCOPE` and `SEMANTIC_UNSUPPORTED_LITERAL_OBJECT` refusals
|
|
157
|
+
for these richer locator, scope and object forms. Richer forms require an
|
|
158
|
+
owner-reviewed mapping. They must be refused or retained
|
|
159
|
+
as explicit unknowns by the host, rather than dropped or coerced into entities
|
|
160
|
+
or edges. Canonical identity resolution stays in explicit receiver reviews.
|
|
161
|
+
|
|
162
|
+
## Projection and freshness
|
|
163
|
+
|
|
164
|
+
Only a binary `subject-to-object` assertion with `negated: false`,
|
|
165
|
+
`modality: 'asserted'`, the domain scope, and no time boundaries, expression or
|
|
166
|
+
unknowns can become a plain relation. Every other assertion remains a qualified
|
|
167
|
+
contribution and appears in `projectionOmissions`.
|
|
168
|
+
|
|
169
|
+
The relation ID is derived from its assertion contribution ID. Its rationale
|
|
170
|
+
ends with `semantic-support: <assertionId> <sha256:digest>`. On every projection,
|
|
171
|
+
that assertion must exist at the exact digest, be currently accepted and active,
|
|
172
|
+
and be neither stale, withdrawn nor superseded. Relation participants must match
|
|
173
|
+
the assertion. An ineligible relation refuses the whole activation; it is never
|
|
174
|
+
silently filtered out. This guard is required because harness v1 relations do
|
|
175
|
+
not have a supporting-assertion dependency field.
|
|
176
|
+
|
|
177
|
+
`project` calls the existing `knowledgeGraphProposal` only after this check. Its
|
|
178
|
+
document graph stays a document graph; typed `semanticEntities` and
|
|
179
|
+
`semanticAssertions` retain the interpretation and qualifications separately.
|
|
180
|
+
Calling the ordinary graph projector directly does not implement this semantic
|
|
181
|
+
support profile. Neither projection applies canonical graph mutations.
|
|
182
|
+
|
|
183
|
+
When a freshness or concurrent-history check fails after an interpretation write,
|
|
184
|
+
the error carries `recorded: {record, head, nextAction: 'reopen-recorded-write'}`.
|
|
185
|
+
Reopen that saved record; do not blindly repeat the write. A completed raw attempt
|
|
186
|
+
always stays immutable, including a refused interpretation.
|
|
187
|
+
|
|
188
|
+
Within one synchronous runner call, repeated validation can reuse one verified
|
|
189
|
+
ledger snapshot and raw capture. Sources and ledger history are rechecked before
|
|
190
|
+
returning. This cache is discarded after the call. Subsequent calls reread
|
|
191
|
+
current state. Edited originals make earlier operations stale; a new structural
|
|
192
|
+
plan and extraction are required. Unaffected independent plans reuse their
|
|
193
|
+
completed raw attempts. History remains intact.
|
|
194
|
+
|
|
195
|
+
`proposals` declares `answerClass: 'pending-proposals'`; `context` declares
|
|
196
|
+
`answerClass: 'accepted-knowledge'` and does not synthesize an answer. Accepted
|
|
197
|
+
source material is evidence, not automatic acceptance of every statement in it.
|
|
198
|
+
A host-generated derived answer is a separate host artifact with explicit
|
|
199
|
+
support and limitations; this runner neither creates nor admits such answers.
|
|
200
|
+
|
|
201
|
+
## Qualification and optional tools
|
|
202
|
+
|
|
203
|
+
Tests use invented sources and simulated receiver decisions. They establish
|
|
204
|
+
mechanics, not model quality, authenticated human acceptance or economic benefit.
|
|
205
|
+
Durable intake execution uses the qualified POSIX profile; portable stateless
|
|
206
|
+
eligibility and witness tests run on Windows as well.
|
|
207
|
+
|
|
208
|
+
This runner needs none of Graphify, LightRAG or Jev. It has no native adapter
|
|
209
|
+
binding yet. Their implementations and all eight presence profiles remain
|
|
210
|
+
separate qualification work. A real receiver run through the installed command,
|
|
211
|
+
saved-state readback, a correction repeat and an independent useful-task repeat
|
|
212
|
+
are required before claiming completion. Measure cold ingestion, incremental
|
|
213
|
+
correction and warm retrieval separately, retaining unknown cost and omissions.
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
### Correction dependencies and captured-output refusals
|
|
217
|
+
|
|
218
|
+
An assertion depends on each reviewed endpoint interpretation, including the
|
|
219
|
+
receiver's explicit identity choice, as well as a distinct resolved canonical
|
|
220
|
+
contribution. These dependency-only witnesses are labelled `identity-choice`
|
|
221
|
+
and `resolved-identity`. Withdrawing, re-evaluating, superseding or changing the
|
|
222
|
+
reviewed interpretation makes the affected assertion or its acceptance require
|
|
223
|
+
reconsideration through the existing ledger. Unaffected accepted knowledge stays
|
|
224
|
+
retrievable. Corrected interpretations reuse immutable raw capture.
|
|
225
|
+
|
|
226
|
+
A ledger reservation owns its attempt identifier even before intake publication.
|
|
227
|
+
After intake begins, the reservation must still be reserved at the returned
|
|
228
|
+
history head before `ready-for-host` is returned. A refused saved reservation
|
|
229
|
+
carries `recorded` with the actual record reference and the head returned by its
|
|
230
|
+
successful append. This saved head is diagnostic; reopen with `status` to obtain
|
|
231
|
+
the current history head before supplying confirmation for another write.
|
|
232
|
+
|
|
233
|
+
Executed output is captured before source-freshness or interpretation checks.
|
|
234
|
+
If the original or adopted domain changed, interpretation refuses as stale and
|
|
235
|
+
carries `captured` with the actual intake completion. Its head identifies a
|
|
236
|
+
successful append made by this call, or the history observed at call entry when
|
|
237
|
+
no append returned. It is diagnostic and may be older than later history; it
|
|
238
|
+
does not establish current custody or authority for another write. Reopen with
|
|
239
|
+
`status` for the current head and the stored completion readback. Compare
|
|
240
|
+
completion records canonically; their object key order is not a digest contract.
|
|
241
|
+
`status` can reopen those exact bytes as complete while the semantic operation
|
|
242
|
+
remains reserved and stale; it does not imply accepted interpretation or permit
|
|
243
|
+
claiming the output was never executed. The existing completed-attempt guard
|
|
244
|
+
still prevents abandonment, and identical-byte completion remains idempotent.
|
|
245
|
+
|
|
246
|
+
Saved receipts survive whatever value a failure throws. After a write or capture
|
|
247
|
+
has returned, the runner adds `recorded` or `captured` in place when the original
|
|
248
|
+
object or function has writable data properties for those receipts, or can accept
|
|
249
|
+
new properties. It preserves that object’s identity, `code` and message. Otherwise,
|
|
250
|
+
including a primitive or an object with missing receipt properties that cannot be
|
|
251
|
+
added, it throws `SemanticOperationError` with a generic message and the receipts
|
|
252
|
+
as its own properties. The wrapper retains the original value as a non-enumerable
|
|
253
|
+
`cause` and its original own-data `SEMANTIC_*` code, or uses
|
|
254
|
+
`SEMANTIC_OPERATION_INTERRUPTED`. A write that failed before returning saved
|
|
255
|
+
nothing and attaches nothing. Existing writable receipt properties retain their
|
|
256
|
+
attributes, so `JSON.stringify(error)` can omit non-enumerable receipts. The
|
|
257
|
+
wrapper’s non-enumerable `cause` is also omitted; an original error decorated in
|
|
258
|
+
place retains its existing properties and their visibility. Read `recorded` and
|
|
259
|
+
`captured` explicitly when reporting a failure. Neither `cause` nor property order
|
|
260
|
+
is a serialization contract.
|
|
261
|
+
|
|
262
|
+
The semantic projection also returns labelled `dependencyWitnesses`. The existing
|
|
263
|
+
generic projector emits `evidences` claims for ledger dependencies; these are
|
|
264
|
+
provenance/dependency proposals, not additional extracted domain assertions.
|
|
265
|
+
Use `semanticAssertions` and their qualifiers for those assertions. Consequential
|
|
266
|
+
withdrawal cleanup matches both the generated semantic relation identity and its
|
|
267
|
+
exact supporting assertion digest, leaving ordinary support-like rationale text
|
|
268
|
+
untouched.
|
|
269
|
+
|
|
270
|
+
If a receiver re-accepts an immutable assertion after changing its endpoint
|
|
271
|
+
identity choice, acceptance in the ledger alone does not restore semantic
|
|
272
|
+
compatibility. Context reports the affected record in `diagnostics` and
|
|
273
|
+
`reconsider`, withholds it and dependent records, and preserves unrelated
|
|
274
|
+
accepted retrieval and projection. Its old body is never rewritten. An
|
|
275
|
+
activation selecting the incompatible assertion refuses; an independent
|
|
276
|
+
activation remains usable. Named semantic pin mismatches are withheld with record-specific diagnostics.
|
|
277
|
+
Low-level IO/intake errors and unexpected history failures still refuse the
|
|
278
|
+
request. The receiver must explicitly revise the assertion for the new choice.
|
|
279
|
+
|
|
280
|
+
Reconciled reservations permit a fresh operation only after checking that their
|
|
281
|
+
own intake has no partial or completed output. Intake IDs remain workspace-wide: a collision with
|
|
282
|
+
another run refuses exact status readback rather than attributing that run's
|
|
283
|
+
bytes to the old reservation. It does not prevent beginning with a new ID after
|
|
284
|
+
explicit reconciliation. The runner does not add a workspace-wide reservation
|
|
285
|
+
owner or claim atomic publication across intake and knowledge ledgers.
|
|
286
|
+
|
|
287
|
+
Activation membership is recomputed against the merged reconsideration set.
|
|
288
|
+
A mixed activation containing an incompatible assertion cannot activate its
|
|
289
|
+
other members in context. A separate current activation can make those
|
|
290
|
+
compatible members available again; retrieval and projection use the same
|
|
291
|
+
activation eligibility.
|
|
292
|
+
|
|
293
|
+
If an interrupted reserved operation discovers a different immutable intake
|
|
294
|
+
manifest under its attempt ID, explicit `not-executed` reconciliation records a
|
|
295
|
+
`foreign-manifest-before-readiness` recovery pin and the exact manifest digest.
|
|
296
|
+
That conflicting manifest confirms this reservation did not publish a matching
|
|
297
|
+
attempt or reach the supported host-readiness return. The host declaration
|
|
298
|
+
remains labelled, not independently authenticated. Reconciled status reports
|
|
299
|
+
`foreign-manifest` with its pin and never returns the other run's raw bytes. A
|
|
300
|
+
fresh distinct attempt ID is required. Own partial or completed output remains
|
|
301
|
+
ineligible for abandonment. Completion requires a present immutable manifest
|
|
302
|
+
with the operation's exact pins before raw publication. An absent manifest
|
|
303
|
+
refuses with `SEMANTIC_RECONCILE_REQUIRED`; a foreign manifest refuses with
|
|
304
|
+
`SEMANTIC_OPERATION_INTEGRITY`. A manifest appearing after an absent read cannot
|
|
305
|
+
receive the refused completion's bytes. The readiness return also requires the
|
|
306
|
+
own attempt to remain `begun`, alongside the unchanged reservation phase/head.
|
|
307
|
+
|
|
308
|
+
Reconciliation rechecks intake through its post-write status. If contradictory
|
|
309
|
+
own partial or completed output was captured, status and a later fresh-execution
|
|
310
|
+
request refuse with `SEMANTIC_RECONCILE_REQUIRED` and `captured` custody. The
|
|
311
|
+
reconciliation failure also carries its saved `recorded` custody. Raw bytes and
|
|
312
|
+
the original host declaration remain immutable; neither is called unexecuted
|
|
313
|
+
or silently discarded. The intake owner's exact readback remains available.
|
|
314
|
+
These current-read checks do not provide an atomic transaction across the two
|
|
315
|
+
stores or independently prove a host's declaration. Hosts must serialize their
|
|
316
|
+
completion and reconciliation decisions; the runner creates no automatic
|
|
317
|
+
unreconciliation or new execution permission after a detected contradiction.
|
package/docs/skill-steward.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Skill stewardship
|
|
2
2
|
|
|
3
|
+
For publishing and governing multiple capability packages across repositories,
|
|
4
|
+
use the [capability stewardship foundation](capability-stewardship.md). It adds
|
|
5
|
+
explicit publisher identity, release pins, local ownership modes, host profiles
|
|
6
|
+
and version-bound evidence. The catalog commands below retain their original
|
|
7
|
+
contracts; use the new layer when a catalog has multiple independent sources.
|
|
8
|
+
|
|
3
9
|
Atelier skill stewardship is a local, evidence-gated loop for keeping agent
|
|
4
10
|
skills useful without turning every repeated request into permanent
|
|
5
11
|
instructions. It separates four concerns that are easy to blur together:
|