@mnstry/atelier 0.2.0-alpha.12 → 0.2.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +661 -0
- package/README.md +142 -6
- package/contracts/atelier-adoption-policy.v2.schema.json +55 -0
- package/contracts/atelier-architecture.v1.schema.json +258 -0
- package/contracts/atelier-boundary-delegations.v1.schema.json +161 -0
- package/contracts/atelier-boundary-owner-keys.v1.schema.json +98 -0
- package/contracts/atelier-build.v1.schema.json +1076 -0
- package/contracts/atelier-capability.v1.schema.json +1252 -0
- package/contracts/atelier-coordination.v1.schema.json +1050 -0
- package/contracts/atelier-evidence-navigation.v1.schema.json +603 -0
- package/contracts/atelier-harness.v1.schema.json +234 -0
- package/contracts/atelier-ingestion.v1.schema.json +806 -0
- package/contracts/atelier-inquiry.v1.schema.json +1772 -0
- package/contracts/atelier-instruction-adoption.v1.schema.json +490 -0
- package/contracts/atelier-interaction.v1.schema.json +553 -0
- package/contracts/atelier-judgment.v1.schema.json +690 -0
- package/contracts/atelier-knowledge.v1.schema.json +1512 -0
- package/contracts/atelier-learning.v1.schema.json +1095 -0
- package/contracts/atelier-migration.v3.schema.json +64 -0
- package/contracts/atelier-personal-workspace-manifest.v1.schema.json +87 -0
- package/contracts/atelier-personal-workspace-overlay.v1.schema.json +299 -0
- package/contracts/atelier-template-adoption.v1.schema.json +223 -0
- package/contracts/atelier-template-profile.v1.schema.json +1168 -0
- package/contracts/atelier-trackable.v1.schema.json +781 -0
- package/contracts/atelier-upgrade-plan.v3.schema.json +532 -0
- package/docs/architecture.md +89 -0
- package/docs/assurance-controls.md +2 -2
- package/docs/blocks/capability-stewardship.md +17 -0
- package/docs/blocks/claims.md +16 -3
- package/docs/blocks/inquiry-harnesses.md +19 -0
- package/docs/blocks/learning-harnesses.md +17 -0
- package/docs/capability-stewardship.md +269 -0
- package/docs/coordination.md +51 -0
- package/docs/decision-practices.md +111 -0
- package/docs/decisions.md +29 -0
- package/docs/evidence-navigation.md +237 -0
- package/docs/exact-upgrades.md +3 -2
- package/docs/ingestion.md +181 -0
- package/docs/inquiry-harnesses.md +211 -0
- package/docs/install.md +80 -3
- package/docs/intake-and-guides.md +5 -0
- package/docs/integration-contract-decisions.md +24 -2
- package/docs/interaction-and-reflection.md +72 -0
- package/docs/knowledge-graph.md +20 -0
- package/docs/knowledge-health/api.md +30 -0
- package/docs/knowledge-health/assessment/api.md +96 -0
- package/docs/knowledge-health/assessment/capabilities.md +40 -0
- package/docs/knowledge-health/assessment/evaluation.md +27 -0
- package/docs/knowledge-health/assessment/facilitator.md +30 -0
- package/docs/knowledge-health/assessment/quickstart.md +61 -0
- package/docs/knowledge-health/assessment/troubleshooting.md +23 -0
- package/docs/knowledge-health/devday/facilitator.md +16 -0
- package/docs/knowledge-health/devday/participant-response.md +22 -0
- package/docs/knowledge-health/devday/public-default.md +107 -0
- package/docs/knowledge-health/devday/quickstart.md +18 -0
- package/docs/knowledge-health/devday/support.md +22 -0
- package/docs/knowledge-health/exercise.md +17 -0
- package/docs/knowledge-health/facilitator.md +20 -0
- package/docs/knowledge-health/quickstart.md +94 -0
- package/docs/knowledge-health/readme.md +15 -0
- package/docs/knowledge-health/support.md +34 -0
- package/docs/knowledge-setup.md +248 -0
- package/docs/knowledge-workspace.md +264 -0
- package/docs/learning-harnesses.md +238 -0
- package/docs/learning.md +215 -0
- package/docs/local-services.md +181 -16
- package/docs/obsidian-contract.md +223 -15
- package/docs/obsidian-plugin.md +38 -4
- package/docs/obsidian.md +613 -51
- package/docs/optional-ingestion.md +83 -0
- package/docs/personal-workspace.md +257 -0
- package/docs/practical-judgment.md +92 -0
- package/docs/progressive-ingestion-acceptance.md +89 -0
- package/docs/progressive-ingestion.md +235 -0
- package/docs/project-command-inventory.md +1 -0
- package/docs/release-engineering.md +49 -0
- package/docs/repo-boundary-guard.md +94 -0
- package/docs/research-starter-quickstart.md +66 -0
- package/docs/research-starter.md +114 -0
- package/docs/semantic-ingestion.md +198 -0
- package/docs/semantic-operation.md +317 -0
- package/docs/skill-steward.md +6 -0
- package/docs/template-profile.md +164 -0
- package/docs/template-upgrades.md +114 -0
- package/docs/trackables.md +111 -0
- package/docs/upgrade.md +47 -2
- package/fixtures/atelier-architecture/binding/invalid/document.json +19 -0
- package/fixtures/atelier-architecture/binding/valid/document.json +19 -0
- package/fixtures/atelier-architecture/catalog/invalid/document.json +290 -0
- package/fixtures/atelier-architecture/catalog/valid/document.json +343 -0
- package/fixtures/atelier-build-contract/attempt/invalid/document.json +20 -0
- package/fixtures/atelier-build-contract/attempt/valid/document.json +19 -0
- package/fixtures/atelier-build-contract/candidate/invalid/document.json +24 -0
- package/fixtures/atelier-build-contract/candidate/valid/document.json +23 -0
- package/fixtures/atelier-build-contract/decision/invalid/document.json +31 -0
- package/fixtures/atelier-build-contract/decision/valid/document.json +30 -0
- package/fixtures/atelier-build-contract/delivery/invalid/document.json +18 -0
- package/fixtures/atelier-build-contract/delivery/valid/document.json +17 -0
- package/fixtures/atelier-build-contract/gate/invalid/document.json +22 -0
- package/fixtures/atelier-build-contract/gate/valid/document.json +21 -0
- package/fixtures/atelier-build-contract/ledger/invalid/document.json +270 -0
- package/fixtures/atelier-build-contract/ledger/valid/document.json +269 -0
- package/fixtures/atelier-build-contract/objective/invalid/document.json +73 -0
- package/fixtures/atelier-build-contract/objective/valid/document.json +72 -0
- package/fixtures/atelier-build-contract/progress/invalid/document.json +18 -0
- package/fixtures/atelier-build-contract/progress/valid/document.json +17 -0
- package/fixtures/atelier-capability-contract/adoption/invalid/document.json +71 -0
- package/fixtures/atelier-capability-contract/adoption/valid/document.json +70 -0
- package/fixtures/atelier-capability-contract/event/invalid/document.json +18 -0
- package/fixtures/atelier-capability-contract/event/valid/document.json +17 -0
- package/fixtures/atelier-capability-contract/journal/invalid/document.json +382 -0
- package/fixtures/atelier-capability-contract/journal/valid/document.json +381 -0
- package/fixtures/atelier-capability-contract/notice/invalid/document.json +8 -0
- package/fixtures/atelier-capability-contract/notice/valid/document.json +7 -0
- package/fixtures/atelier-capability-contract/package/invalid/document.json +59 -0
- package/fixtures/atelier-capability-contract/package/valid/document.json +58 -0
- package/fixtures/atelier-capability-contract/plan/invalid/document.json +107 -0
- package/fixtures/atelier-capability-contract/plan/valid/document.json +106 -0
- package/fixtures/atelier-capability-contract/release/invalid/document.json +85 -0
- package/fixtures/atelier-capability-contract/release/valid/document.json +84 -0
- package/fixtures/atelier-capability-contract/state/invalid/document.json +316 -0
- package/fixtures/atelier-capability-contract/state/valid/document.json +315 -0
- package/fixtures/atelier-coordination/dependency/invalid/document.json +37 -0
- package/fixtures/atelier-coordination/dependency/valid/document.json +36 -0
- package/fixtures/atelier-coordination/directive/invalid/document.json +25 -0
- package/fixtures/atelier-coordination/directive/valid/document.json +24 -0
- package/fixtures/atelier-coordination/disposition/invalid/document.json +34 -0
- package/fixtures/atelier-coordination/disposition/valid/document.json +33 -0
- package/fixtures/atelier-coordination/outcome/invalid/document.json +39 -0
- package/fixtures/atelier-coordination/outcome/valid/document.json +38 -0
- package/fixtures/atelier-coordination/recovery/invalid/document.json +34 -0
- package/fixtures/atelier-coordination/recovery/valid/document.json +33 -0
- package/fixtures/atelier-harness-contract/handoff/invalid/document.json +25 -0
- package/fixtures/atelier-harness-contract/handoff/valid/document.json +24 -0
- package/fixtures/atelier-ingestion/invalid/authority.json +19 -0
- package/fixtures/atelier-ingestion/semantic-baseline.json +26 -0
- package/fixtures/atelier-ingestion/semantic-operation.json +75 -0
- package/fixtures/atelier-ingestion/valid/plan-input.json +18 -0
- package/fixtures/atelier-inquiry-contract/assessment/invalid/document.json +41 -0
- package/fixtures/atelier-inquiry-contract/assessment/valid/document.json +40 -0
- package/fixtures/atelier-inquiry-contract/bundle/invalid/document.json +51 -0
- package/fixtures/atelier-inquiry-contract/bundle/valid/document.json +50 -0
- package/fixtures/atelier-inquiry-contract/campaign/invalid/document.json +17 -0
- package/fixtures/atelier-inquiry-contract/campaign/valid/document.json +16 -0
- package/fixtures/atelier-inquiry-contract/decision/invalid/document.json +22 -0
- package/fixtures/atelier-inquiry-contract/decision/valid/document.json +21 -0
- package/fixtures/atelier-inquiry-contract/feedback/invalid/document.json +19 -0
- package/fixtures/atelier-inquiry-contract/feedback/valid/document.json +18 -0
- package/fixtures/atelier-inquiry-contract/handoff/invalid/document.json +92 -0
- package/fixtures/atelier-inquiry-contract/handoff/valid/document.json +91 -0
- package/fixtures/atelier-inquiry-contract/hypothesis/invalid/document.json +20 -0
- package/fixtures/atelier-inquiry-contract/hypothesis/valid/document.json +19 -0
- package/fixtures/atelier-inquiry-contract/ledger/invalid/document.json +680 -0
- package/fixtures/atelier-inquiry-contract/ledger/valid/document.json +679 -0
- package/fixtures/atelier-inquiry-contract/legacy-assessment/invalid/document.json +19 -0
- package/fixtures/atelier-inquiry-contract/legacy-assessment/valid/document.json +18 -0
- package/fixtures/atelier-inquiry-contract/request/invalid/document.json +50 -0
- package/fixtures/atelier-inquiry-contract/request/valid/document.json +49 -0
- package/fixtures/atelier-inquiry-contract/source/invalid/document.json +18 -0
- package/fixtures/atelier-inquiry-contract/source/valid/document.json +17 -0
- package/fixtures/atelier-inquiry-contract/withdrawal/invalid/document.json +16 -0
- package/fixtures/atelier-inquiry-contract/withdrawal/valid/document.json +15 -0
- package/fixtures/atelier-instruction-adoption/context-receipt/invalid/document.json +18 -0
- package/fixtures/atelier-instruction-adoption/context-receipt/valid/document.json +17 -0
- package/fixtures/atelier-instruction-adoption/plan/invalid/document.json +63 -0
- package/fixtures/atelier-instruction-adoption/plan/valid/document.json +62 -0
- package/fixtures/atelier-instruction-adoption/receipt/invalid/document.json +22 -0
- package/fixtures/atelier-instruction-adoption/receipt/valid/document.json +21 -0
- package/fixtures/atelier-instruction-adoption/state/invalid/document.json +30 -0
- package/fixtures/atelier-instruction-adoption/state/valid/document.json +29 -0
- package/fixtures/atelier-interaction/act/invalid/document.json +25 -0
- package/fixtures/atelier-interaction/act/valid/document.json +24 -0
- package/fixtures/atelier-interaction/assessment/invalid/document.json +32 -0
- package/fixtures/atelier-interaction/assessment/valid/document.json +31 -0
- package/fixtures/atelier-interaction/observation/invalid/document.json +22 -0
- package/fixtures/atelier-interaction/observation/valid/document.json +21 -0
- package/fixtures/atelier-interaction/policy/invalid/document.json +20 -0
- package/fixtures/atelier-interaction/policy/valid/document.json +19 -0
- package/fixtures/atelier-judgment/case/invalid/document.json +76 -0
- package/fixtures/atelier-judgment/case/valid/document.json +75 -0
- package/fixtures/atelier-judgment/decision/invalid/document.json +38 -0
- package/fixtures/atelier-judgment/decision/valid/document.json +37 -0
- package/fixtures/atelier-judgment/native-decision.md +3 -0
- package/fixtures/atelier-judgment/practice-reconsideration/definition.json +92 -0
- package/fixtures/atelier-judgment/practice-reconsideration/scenario.json +435 -0
- package/fixtures/atelier-knowledge-contract/activation/invalid/document.json +26 -0
- package/fixtures/atelier-knowledge-contract/activation/valid/document.json +25 -0
- package/fixtures/atelier-knowledge-contract/contribution/invalid/document.json +34 -0
- package/fixtures/atelier-knowledge-contract/contribution/valid/document.json +33 -0
- package/fixtures/atelier-knowledge-contract/domain/invalid/document.json +41 -0
- package/fixtures/atelier-knowledge-contract/domain/valid/document.json +40 -0
- package/fixtures/atelier-knowledge-contract/domain-revision/invalid/document.json +46 -0
- package/fixtures/atelier-knowledge-contract/domain-revision/valid/document.json +45 -0
- package/fixtures/atelier-knowledge-contract/evaluation/invalid/document.json +21 -0
- package/fixtures/atelier-knowledge-contract/evaluation/valid/document.json +20 -0
- package/fixtures/atelier-knowledge-contract/ledger/invalid/document.json +318 -0
- package/fixtures/atelier-knowledge-contract/ledger/valid/document.json +317 -0
- package/fixtures/atelier-knowledge-contract/relation/invalid/document.json +25 -0
- package/fixtures/atelier-knowledge-contract/relation/valid/document.json +24 -0
- package/fixtures/atelier-knowledge-contract/review/invalid/document.json +18 -0
- package/fixtures/atelier-knowledge-contract/review/valid/document.json +17 -0
- package/fixtures/atelier-knowledge-contract/withdrawal/invalid/document.json +16 -0
- package/fixtures/atelier-knowledge-contract/withdrawal/valid/document.json +15 -0
- package/fixtures/atelier-learning/invalid/authority.json +14 -0
- package/fixtures/atelier-learning/valid/capture.json +13 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/invalid/authority-key.json +17 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/invalid/nonempty-ext.json +25 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/invalid/wrong-schema.json +22 -0
- package/fixtures/atelier-personal-workspace-contract/manifest/valid/manifest.json +22 -0
- package/fixtures/atelier-personal-workspace-contract/overlay/invalid/authority-key.json +25 -0
- package/fixtures/atelier-personal-workspace-contract/overlay/invalid/unknown-top-level-field.json +27 -0
- package/fixtures/atelier-personal-workspace-contract/overlay/invalid/wrong-schema.json +24 -0
- package/fixtures/atelier-trackable/definition/invalid/document.json +15 -0
- package/fixtures/atelier-trackable/definition/valid/document.json +14 -0
- package/fixtures/atelier-trackable/request/invalid/document.json +23 -0
- package/fixtures/atelier-trackable/request/valid/document.json +22 -0
- package/fixtures/boundary-delegations/invalid/authority-key.v1.json +30 -0
- package/fixtures/boundary-delegations/invalid/push-operation.v1.json +28 -0
- package/fixtures/boundary-delegations/invalid/unsigned.v1.json +25 -0
- package/fixtures/boundary-delegations/valid/empty.v1.json +4 -0
- package/fixtures/boundary-delegations/valid/signed-operator.v1.json +30 -0
- package/fixtures/boundary-owner-keys/invalid/wrong-algorithm.v1.json +15 -0
- package/fixtures/boundary-owner-keys/invalid/wrong-curve.v1.json +15 -0
- package/fixtures/boundary-owner-keys/valid/one-owner.v1.json +17 -0
- package/fixtures/capability-packages/adoption.example.json +70 -0
- package/fixtures/capability-packages/evidence-review/capability-package.json +58 -0
- package/fixtures/capability-packages/evidence-review/capability-release.json +84 -0
- package/fixtures/capability-packages/evidence-review/evaluation.md +15 -0
- package/fixtures/capability-packages/evidence-review/skills/evidence-review/SKILL.md +22 -0
- package/fixtures/capability-packages/evidence-review/skills/evidence-review/references/ledger.md +7 -0
- package/fixtures/capability-packages/research/capability-package.json +88 -0
- package/fixtures/capability-packages/research/capability-release.json +134 -0
- package/fixtures/capability-packages/research/evaluation.md +15 -0
- package/fixtures/capability-packages/research/skills/research-integrate/SKILL.md +29 -0
- package/fixtures/capability-packages/research/skills/research-integrate/references/integration.md +10 -0
- package/fixtures/capability-packages/research/skills/research-plan/SKILL.md +27 -0
- package/fixtures/capability-packages/research/skills/research-plan/references/inquiries.md +26 -0
- package/fixtures/capability-packages/research/skills/research-synthesize/SKILL.md +23 -0
- package/fixtures/capability-packages/research/skills/research-synthesize/references/synthesis.md +12 -0
- package/fixtures/evidence-navigation/invalid/duplicate-operation.json +16 -0
- package/fixtures/evidence-navigation/invalid/instruction-kind.json +36 -0
- package/fixtures/evidence-navigation/invalid/invalid-digest.json +36 -0
- package/fixtures/evidence-navigation/invalid/invalid-time.json +36 -0
- package/fixtures/evidence-navigation/invalid/missing-attribution.json +35 -0
- package/fixtures/evidence-navigation/invalid/reserved-extension.json +19 -0
- package/fixtures/evidence-navigation/invalid/unattributed-acceptance.json +36 -0
- package/fixtures/evidence-navigation/invalid/uncoerced-version.json +16 -0
- package/fixtures/evidence-navigation/invalid/unknown-currency.json +17 -0
- package/fixtures/evidence-navigation/invalid/unknown-selector-field.json +37 -0
- package/fixtures/evidence-navigation/invalid/unsupported-operation.json +15 -0
- package/fixtures/evidence-navigation/valid/claim.json +36 -0
- package/fixtures/evidence-navigation/valid/host.json +16 -0
- package/fixtures/evidence-navigation/valid/profile.json +16 -0
- package/fixtures/evidence-navigation/valid/snapshot.json +17 -0
- package/fixtures/harness-packages/build-harness/capability-package.json +61 -0
- package/fixtures/harness-packages/build-harness/capability-release.json +82 -0
- package/fixtures/harness-packages/build-harness/evaluation.md +3 -0
- package/fixtures/harness-packages/build-harness/skills/atelier-build-harness/SKILL.md +59 -0
- package/fixtures/harness-packages/knowledge-harness/capability-package.json +61 -0
- package/fixtures/harness-packages/knowledge-harness/capability-release.json +82 -0
- package/fixtures/harness-packages/knowledge-harness/evaluation.md +3 -0
- package/fixtures/harness-packages/knowledge-harness/skills/atelier-knowledge-harness/SKILL.md +60 -0
- package/fixtures/harnesses/learning-cycle.json +780 -0
- package/fixtures/inquiry/workshop.json +675 -0
- package/fixtures/inquiry-packages/discovery-harness/capability-package.json +61 -0
- package/fixtures/inquiry-packages/discovery-harness/capability-release.json +82 -0
- package/fixtures/inquiry-packages/discovery-harness/evaluation.md +3 -0
- package/fixtures/inquiry-packages/discovery-harness/skills/atelier-discovery-harness/SKILL.md +48 -0
- package/fixtures/inquiry-packages/research-harness/capability-package.json +61 -0
- package/fixtures/inquiry-packages/research-harness/capability-release.json +82 -0
- package/fixtures/inquiry-packages/research-harness/evaluation.md +3 -0
- package/fixtures/inquiry-packages/research-harness/skills/atelier-research-harness/SKILL.md +43 -0
- package/fixtures/knowledge-health/calibration-suite.json +26 -0
- package/fixtures/knowledge-health/calibration-trial.json +37 -0
- package/fixtures/knowledge-health/corrected/checklist.md +18 -0
- package/fixtures/knowledge-health/devday/participant-record.json +19 -0
- package/fixtures/knowledge-health/expected-summary.json +27 -0
- package/fixtures/knowledge-health/workshop/README.md +20 -0
- package/fixtures/knowledge-health/workshop/atelier.project.json +7 -0
- package/fixtures/knowledge-health/workshop/knowledge-plan.json +65 -0
- package/fixtures/knowledge-health/workshop/records/checklist.md +18 -0
- package/fixtures/knowledge-health/workshop/records/workshop.md +18 -0
- package/fixtures/knowledge-health/workshop/repo-access.v1.json +5 -0
- package/fixtures/knowledge-health/workspace/atelier.project.json +18 -0
- package/fixtures/knowledge-health/workspace/knowledge-plan.json +74 -0
- package/fixtures/knowledge-health/workspace/records/checklist.md +18 -0
- package/fixtures/knowledge-health/workspace/records/pilot.md +16 -0
- package/fixtures/knowledge-health/workspace/repo-access.v1.json +9 -0
- package/fixtures/personal-workspace/overlay.json +24 -0
- package/fixtures/templates/local-library.v1.json +75 -0
- package/fixtures/templates/upgrade-contracts/adoption-policy.v2/invalid.json +16 -0
- package/fixtures/templates/upgrade-contracts/adoption-policy.v2/valid.json +13 -0
- package/fixtures/templates/upgrade-contracts/migration.v3/invalid.json +24 -0
- package/fixtures/templates/upgrade-contracts/migration.v3/valid.json +21 -0
- package/fixtures/templates/upgrade-contracts/template-adoption.v1/invalid.json +60 -0
- package/fixtures/templates/upgrade-contracts/template-adoption.v1/valid.json +57 -0
- package/fixtures/templates/upgrade-contracts/upgrade-plan.v3/invalid.json +85 -0
- package/fixtures/templates/upgrade-contracts/upgrade-plan.v3/valid.json +82 -0
- package/package.json +59 -5
- package/skills/claude/atelier-build-harness/SKILL.md +59 -0
- package/skills/claude/atelier-coordination/SKILL.md +32 -0
- package/skills/claude/atelier-discovery-harness/SKILL.md +48 -0
- package/skills/claude/atelier-guided-upgrade/SKILL.md +29 -0
- package/skills/claude/atelier-interaction/SKILL.md +34 -0
- package/skills/claude/atelier-knowledge-harness/SKILL.md +60 -0
- package/skills/claude/atelier-knowledge-setup/SKILL.md +72 -0
- package/skills/claude/atelier-practical-judgment/SKILL.md +64 -0
- package/skills/claude/atelier-research-harness/SKILL.md +43 -0
- package/skills/claude/atelier-skill-steward/SKILL.md +53 -0
- package/skills/claude/atelier-trackables/SKILL.md +40 -0
- package/skills/codex/atelier-build-harness/SKILL.md +59 -0
- package/skills/codex/atelier-coordination/SKILL.md +32 -0
- package/skills/codex/atelier-discovery-harness/SKILL.md +48 -0
- package/skills/codex/atelier-guided-upgrade/SKILL.md +29 -0
- package/skills/codex/atelier-interaction/SKILL.md +34 -0
- package/skills/codex/atelier-knowledge-harness/SKILL.md +60 -0
- package/skills/codex/atelier-knowledge-setup/SKILL.md +72 -0
- package/skills/codex/atelier-practical-judgment/SKILL.md +64 -0
- package/skills/codex/atelier-research-harness/SKILL.md +43 -0
- package/skills/codex/atelier-skill-steward/SKILL.md +53 -0
- package/skills/codex/atelier-trackables/SKILL.md +40 -0
- package/src/architecture/catalog.mjs +355 -0
- package/src/architecture/index.mjs +93 -0
- package/src/boundary/content-rules.mjs +4 -2
- package/src/boundary/delegation-command.mjs +158 -0
- package/src/boundary/delegation.mjs +396 -0
- package/src/boundary/policy.mjs +52 -10
- package/src/build/git.mjs +18 -0
- package/src/build/index.mjs +3 -0
- package/src/build/ledger.mjs +88 -0
- package/src/capabilities/adoption.mjs +381 -0
- package/src/capabilities/evidence.mjs +140 -0
- package/src/capabilities/files.mjs +124 -0
- package/src/capabilities/index.mjs +4 -0
- package/src/capabilities/instructions.mjs +250 -0
- package/src/capabilities/package.mjs +136 -0
- package/src/cli/command-failure.mjs +36 -0
- package/src/cli/execute-command.mjs +16 -2
- package/src/cli/run.mjs +65 -9
- package/src/coauthor/store.mjs +43 -2
- package/src/collaboration/proposals.mjs +189 -0
- package/src/commands/architecture.mjs +27 -0
- package/src/commands/boundary.mjs +3 -0
- package/src/commands/capability.mjs +73 -0
- package/src/commands/enroll.mjs +3 -0
- package/src/commands/harness.mjs +79 -0
- package/src/commands/ingest.mjs +39 -0
- package/src/commands/init.mjs +4 -1
- package/src/commands/inquiry.mjs +66 -0
- package/src/commands/knowledge-semantic.mjs +128 -0
- package/src/commands/knowledge.mjs +119 -0
- package/src/commands/learn.mjs +61 -0
- package/src/commands/obsidian.mjs +754 -63
- package/src/commands/practice.mjs +24 -0
- package/src/commands/setup.mjs +22 -2
- package/src/commands/trackable.mjs +19 -0
- package/src/contracts/corpus.mjs +30 -0
- package/src/coordination/index.mjs +110 -0
- package/src/evidence-navigation/contracts.mjs +60 -0
- package/src/evidence-navigation/evaluate.mjs +69 -0
- package/src/evidence-navigation/generation.mjs +22 -0
- package/src/evidence-navigation/index.mjs +2 -0
- package/src/evidence-navigation/local.mjs +167 -0
- package/src/evidence-navigation/schema.generated.mjs +604 -0
- package/src/evidence-navigation/types.mjs +12 -0
- package/src/export/atelier-export-contract.mjs +35 -8
- package/src/graph/enroll.mjs +248 -0
- package/src/graph/graph.mjs +17 -1
- package/src/graph/knowledge-graph.mjs +58 -8
- package/src/harnesses/contracts.mjs +41 -0
- package/src/harnesses/exchange.mjs +154 -0
- package/src/harnesses/feedback.mjs +16 -0
- package/src/harnesses/history.mjs +37 -0
- package/src/harnesses/index.mjs +4 -0
- package/src/harnesses/store.mjs +29 -0
- package/src/ingestion/contracts.mjs +41 -0
- package/src/ingestion/evaluation.mjs +119 -0
- package/src/ingestion/optional/composition/index.mjs +171 -0
- package/src/ingestion/optional/evaluation/index.mjs +219 -0
- package/src/ingestion/optional/graphify/composition-binding.mjs +60 -0
- package/src/ingestion/optional/graphify/composition_receiving.py +185 -0
- package/src/ingestion/optional/graphify/graphify_supplier.py +933 -0
- package/src/ingestion/optional/graphify/json_bridge.py +163 -0
- package/src/ingestion/optional/graphify/query_receiving.py +209 -0
- package/src/ingestion/optional/index.mjs +9 -0
- package/src/ingestion/optional/jev/bridge.mjs +166 -0
- package/src/ingestion/optional/jev/composition-binding.mjs +116 -0
- package/src/ingestion/optional/jev/judgments.mjs +174 -0
- package/src/ingestion/optional/jev/native-translation.mjs +32 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/__init__.py +7 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/adapter.py +966 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/artifacts.py +101 -0
- package/src/ingestion/optional/lightrag/atelier_lightrag_supplier/projection.py +146 -0
- package/src/ingestion/optional/lightrag/composition-binding.mjs +67 -0
- package/src/ingestion/optional/vanilla/composition-binding.mjs +102 -0
- package/src/ingestion/optional/vanilla/index.mjs +218 -0
- package/src/ingestion/optional/vanilla/native-normalization.mjs +187 -0
- package/src/ingestion/processors.mjs +218 -0
- package/src/ingestion/semantic.mjs +203 -0
- package/src/ingestion/store.mjs +372 -0
- package/src/inquiry/beliefs.mjs +32 -0
- package/src/inquiry/contracts.mjs +23 -0
- package/src/inquiry/index.mjs +5 -0
- package/src/inquiry/ledger.mjs +135 -0
- package/src/inquiry/lenses.mjs +15 -0
- package/src/inquiry/projection.mjs +77 -0
- package/src/inquiry/store.mjs +35 -0
- package/src/intake/read-scope.mjs +12 -0
- package/src/intake/store.mjs +69 -6
- package/src/interaction/index.mjs +91 -0
- package/src/judgment/index.mjs +82 -0
- package/src/judgment/practice-evaluation.mjs +70 -0
- package/src/judgment/practice.mjs +144 -0
- package/src/knowledge/context.mjs +217 -0
- package/src/knowledge/index.mjs +5 -0
- package/src/knowledge/ingestion.mjs +79 -0
- package/src/knowledge/intake.mjs +33 -0
- package/src/knowledge/ledger.mjs +110 -0
- package/src/knowledge/participatory/guidance.mjs +36 -0
- package/src/knowledge/participatory/guided-contribution.mjs +44 -0
- package/src/knowledge/participatory/index.mjs +2 -0
- package/src/knowledge/participatory/installed-workshop.mjs +108 -0
- package/src/knowledge/plan.mjs +67 -0
- package/src/knowledge/projection.mjs +43 -0
- package/src/knowledge/semantic-operation.mjs +567 -0
- package/src/knowledge/sessions.mjs +467 -0
- package/src/knowledge/workspace.mjs +295 -0
- package/src/knowledge-health/assessment.mjs +165 -0
- package/src/knowledge-health/capabilities.mjs +350 -0
- package/src/knowledge-health/context.mjs +62 -0
- package/src/knowledge-health/example.mjs +47 -0
- package/src/knowledge-health/index.mjs +10 -0
- package/src/knowledge-health/owner-join.mjs +88 -0
- package/src/knowledge-health/proof/common.mjs +24 -0
- package/src/knowledge-health/proof/installed-check.mjs +100 -0
- package/src/knowledge-health/proof/native-readback.mjs +37 -0
- package/src/knowledge-health/proof/rehearse.mjs +68 -0
- package/src/knowledge-health/proof/validate-participant.mjs +17 -0
- package/src/knowledge-health/proof/verify-native-capture.mjs +14 -0
- package/src/knowledge-health/proof/workshop-check.mjs +36 -0
- package/src/knowledge-health/rule-identity.mjs +44 -0
- package/src/knowledge-health/workshop-composition.mjs +19 -0
- package/src/knowledge-health/workshop-profile.mjs +176 -0
- package/src/knowledge-health/workshop.mjs +99 -0
- package/src/learning/adapters.mjs +68 -0
- package/src/learning/assistance.mjs +127 -0
- package/src/learning/contracts.mjs +65 -0
- package/src/learning/store.mjs +272 -0
- package/src/personal-workspace/index.mjs +391 -0
- package/src/personal-workspace/selection.mjs +385 -0
- package/src/project/config.mjs +8 -0
- package/src/project/durable-state.mjs +3 -1
- package/src/project/file-class.mjs +1 -1
- package/src/projection/obsidian/edits/apply.mjs +55 -16
- package/src/projection/obsidian/personal-workspace.mjs +436 -0
- package/src/projection/obsidian/proposals/adapter.mjs +47 -8
- package/src/projection/obsidian/proposals/observation.mjs +10 -2
- package/src/projection/obsidian/publication/publisher.mjs +142 -13
- package/src/projection/obsidian/publication/vault-list.mjs +4 -3
- package/src/projection/obsidian/recovery/index.mjs +4 -1
- package/src/projection/obsidian/recovery/store.mjs +160 -7
- package/src/projection/obsidian/selection-ui/contribution.mjs +6 -5
- package/src/readiness/readiness.mjs +10 -3
- package/src/reflection/index.mjs +56 -0
- package/src/runtime/obsidian/app-production-seams.mjs +48 -16
- package/src/runtime/obsidian/app-registration.mjs +175 -28
- package/src/runtime/obsidian/app-restart.mjs +154 -0
- package/src/runtime/obsidian/engine.mjs +163 -20
- package/src/runtime/obsidian/extension-points.mjs +1 -1
- package/src/runtime/obsidian/index.mjs +10 -7
- package/src/runtime/obsidian/launch-plan.mjs +7 -4
- package/src/runtime/obsidian/lifecycle.mjs +92 -12
- package/src/runtime/obsidian/login-item.mjs +332 -0
- package/src/runtime/obsidian/machine-settings.mjs +119 -12
- package/src/runtime/obsidian/opening.mjs +171 -37
- package/src/runtime/obsidian/pipeline.mjs +71 -3
- package/src/runtime/obsidian/plugin-channel.mjs +11 -3
- package/src/runtime/obsidian/plugin-choice.mjs +16 -4
- package/src/runtime/obsidian/plugin-drift.mjs +59 -11
- package/src/runtime/obsidian/plugin-presence.mjs +14 -1
- package/src/runtime/obsidian/process-identity.mjs +20 -10
- package/src/runtime/obsidian/project-views.mjs +282 -0
- package/src/runtime/obsidian/questions.mjs +48 -0
- package/src/runtime/obsidian/release-watch.mjs +56 -0
- package/src/runtime/obsidian/service-main.mjs +99 -16
- package/src/runtime/obsidian/service-manager-production.mjs +61 -0
- package/src/runtime/obsidian/service-managers.mjs +275 -0
- package/src/runtime/obsidian/service-record.mjs +87 -23
- package/src/runtime/obsidian/service.mjs +36 -3
- package/src/runtime/obsidian/startup-adapters.mjs +59 -21
- package/src/runtime/obsidian/unheld-evidence.mjs +84 -0
- package/src/runtime/obsidian/vault-location.mjs +300 -0
- package/src/runtime/obsidian/view-counts.mjs +34 -0
- package/src/server/local-sidecar.mjs +169 -2
- package/src/server/server.mjs +28 -2
- package/src/template-bindings/project.mjs +92 -0
- package/src/templates/profile.mjs +225 -0
- package/src/trackables/domain.mjs +175 -0
- package/src/trackables/store.mjs +114 -0
- package/src/ui/knowledge-page.mjs +1388 -0
- package/src/upgrade/explanation.mjs +1 -1
- package/src/upgrade/template-participant.mjs +171 -0
- package/src/upgrade/transaction.mjs +72 -25
- package/src/upgrade/upgrade.mjs +1 -0
- package/templates/external-project-workspace/pack-lifecycle.json +6 -1
- package/templates/knowledge-workspace/.gitattributes +2 -0
- package/templates/knowledge-workspace/AGENTS.md +27 -0
- package/templates/knowledge-workspace/README.md +44 -0
- package/templates/knowledge-workspace/atelier.project.json +22 -0
- package/templates/knowledge-workspace/gitignore +6 -0
- package/templates/knowledge-workspace/knowledge-plan.json +111 -0
- package/templates/knowledge-workspace/knowledge-plan.schema.json +281 -0
- package/templates/knowledge-workspace/records/forecast.md +22 -0
- package/templates/knowledge-workspace/records/inspection.md +25 -0
- package/templates/knowledge-workspace/records/telescope.md +24 -0
- package/templates/knowledge-workspace/repo-access.v1.json +9 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# Evidence navigation
|
|
2
|
+
|
|
3
|
+
The portable evidence contract describes exact source references, attributed
|
|
4
|
+
claims, declared host capabilities, and dependency snapshots. It sits under
|
|
5
|
+
Knowledge Stewardship and can be composed by inquiry harnesses. The pure
|
|
6
|
+
assessments are exported as `@mnstry/atelier/evidence-navigation` and the Node
|
|
7
|
+
local reader as `@mnstry/atelier/evidence-navigation/local`. There is no CLI
|
|
8
|
+
command.
|
|
9
|
+
|
|
10
|
+
`validateEvidenceDocument(shape, value)` requires a primitive string shape and
|
|
11
|
+
validates bounded JSON against the closed versioned schema. Supported shapes
|
|
12
|
+
include `profile`, `hostCapabilities`,
|
|
13
|
+
`evidenceRef`, `claim`, and `snapshot`. Unknown fields, unsupported kinds, missing
|
|
14
|
+
attribution, invalid dates, and malformed references fail. Reserved `ext` fields
|
|
15
|
+
cannot carry behavior. Unknown event time and source attribution remain explicit.
|
|
16
|
+
Arrays require the ordinary array prototype. Assessments validate and evaluate
|
|
17
|
+
the same copied descriptor values, without using the caller's getters or methods.
|
|
18
|
+
|
|
19
|
+
`assessEvidenceCompatibility(profile, host)` compares exact declared protocols,
|
|
20
|
+
operations, and capability versions. The result says whether those declarations
|
|
21
|
+
match. The host must separately qualify its implementation and enforce permission.
|
|
22
|
+
|
|
23
|
+
`assessEvidenceCurrency(reference, snapshots, { at, maxDepth, maxNodes })` checks
|
|
24
|
+
an exact source reference and all supplied dependencies. Missing, ambiguous,
|
|
25
|
+
changed, withdrawn, expired, and cyclic evidence cannot yield `current`. Reaching
|
|
26
|
+
a verification bound also refuses current use. The caller supplies a valid time;
|
|
27
|
+
the pure module never reads a clock, storage, identity, or permission service.
|
|
28
|
+
Snapshots are protected host inputs, not permission grants or agent-visible
|
|
29
|
+
provenance. This function does not establish coverage, absence, or completeness.
|
|
30
|
+
|
|
31
|
+
`assessClaimContinuity(previous, next)` checks one logical claim's immutable kind
|
|
32
|
+
and requires a new revision for changed content or status. Acceptance cannot
|
|
33
|
+
turn an observation into a stated preference. A separately attributed new claim
|
|
34
|
+
has a separate identity and lifecycle assigned by its owning host. This bounded
|
|
35
|
+
check binds `claimId`, owner record owner/objectId, and kind. It allows subject or
|
|
36
|
+
recorder attribution to change with a new revision; it does not classify a new
|
|
37
|
+
claim or establish semantic continuity. Matching references do not prove support
|
|
38
|
+
or truth.
|
|
39
|
+
|
|
40
|
+
Every assessment explicitly returns `executionAuthorized: false`,
|
|
41
|
+
`authorityTransferred: false`, and `semanticTruthVerified: false`. No assessment
|
|
42
|
+
installs instructions, changes consent, writes a record, or qualifies a host.
|
|
43
|
+
Source text remains evidence even when it contains imperative language.
|
|
44
|
+
|
|
45
|
+
The host owns authenticated scope, audience projection, current permission,
|
|
46
|
+
source admission and capture, dispatch, effects, and retention. It must recheck
|
|
47
|
+
at each read and handoff. Internal paths, selectors, identifiers, digests, and
|
|
48
|
+
hidden diagnostic details do not belong in an agent's result. The local
|
|
49
|
+
reader uses the existing ingestion and intake owners; these
|
|
50
|
+
pure functions create no second source store or acceptance lifecycle.
|
|
51
|
+
|
|
52
|
+
The generator projects the canonical schema and JSDoc types into ESM modules
|
|
53
|
+
and records their hashes and the pinned validator versions. Validation uses the
|
|
54
|
+
package's existing Ajv and format dependencies with strict validation and no
|
|
55
|
+
coercion or default insertion. A consuming runtime must supply those dependencies
|
|
56
|
+
or qualify its own generated validator against the same schema and fixtures. Run
|
|
57
|
+
`node scripts/generate-evidence-navigation.mjs --check` to refuse drift. The
|
|
58
|
+
generation manifest identifies generated artifacts; a receiving integration
|
|
59
|
+
must additionally pin the complete adopted source revision and its distribution.
|
|
60
|
+
|
|
61
|
+
Invented garden fixtures and focused tests exercise these bounded structural
|
|
62
|
+
properties. They do not prove installed consumers, operating-system isolation,
|
|
63
|
+
database transactions, source removal, provider retention, or end-to-end consent.
|
|
64
|
+
|
|
65
|
+
## Local search and exact fetch
|
|
66
|
+
|
|
67
|
+
`createLocalEvidenceReader`, exported as `@mnstry/atelier/evidence-navigation/local`
|
|
68
|
+
(`src/evidence-navigation/local.mjs`), is a Node adapter over one already-created
|
|
69
|
+
ingestion plan. There is no CLI command for it. The pure entry point does not
|
|
70
|
+
import it.
|
|
71
|
+
|
|
72
|
+
Trusted host construction supplies `workspaceRoot`, `workspaceId`, exact
|
|
73
|
+
`plan: { planId, planDigest }`, and synchronous `admit`. The callback receives the
|
|
74
|
+
operation (`search` or `get`) and exact plan binding. Hosts map these callback
|
|
75
|
+
strings to the profile operations `searchEvidence` and `getEvidence`. Only precisely
|
|
76
|
+
`{ disposition: 'permit', revision, readScope: 'all-plan' }` proceeds. The revision
|
|
77
|
+
is a nonempty, bounded identifier from current host authority. It changes whenever
|
|
78
|
+
relevant scope, audience, destination, or permission changes, including withdrawal
|
|
79
|
+
and regrant. Unknown scope, promises, callback errors, and other dispositions
|
|
80
|
+
refuse. Native Promise rejections are contained without awaiting the decision.
|
|
81
|
+
The host must admit the whole plan for this reader and intended recipient.
|
|
82
|
+
A test callback that always permits establishes no actual consent.
|
|
83
|
+
|
|
84
|
+
`search({ query, limit })` accepts up to five items and a nonblank query of at
|
|
85
|
+
most 512 UTF-16 code units and 32 terms after lowercase, trim, and whitespace
|
|
86
|
+
splitting. A secondary 2,048-byte UTF-8 ceiling is retained; the code-unit limit
|
|
87
|
+
is already stricter. Invalid queries refuse before admission or
|
|
88
|
+
store reservation and do not consume the read budget.
|
|
89
|
+
`get({ handle })` accepts only a handle issued by this reader. Optional `readScope`
|
|
90
|
+
must be `all-plan`; narrower scopes refuse before store construction. Model
|
|
91
|
+
arguments cannot choose paths, plans, backends, or permissions. Construction-only
|
|
92
|
+
`openStore` and `now` are trusted host/test seams, defaulting to the existing
|
|
93
|
+
store and monotonic clock. Never expose these options as tool arguments.
|
|
94
|
+
Admission is checked before construction, before reads, and before release,
|
|
95
|
+
against the same revision.
|
|
96
|
+
|
|
97
|
+
Search treats hits as pointers and re-fetches every item through the owner's
|
|
98
|
+
`getEvidence`. Only exact-fetched text is returned. Get rechecks its protected
|
|
99
|
+
source/attempt/locator binding and a private commitment to the earlier fetched
|
|
100
|
+
text. The owner's integrity label does not prove independent content authenticity:
|
|
101
|
+
its journal has no output digest, so a same-size stored rewrite before first
|
|
102
|
+
fetch may be undetectable. Backend errors expose no paths or stored diagnostics.
|
|
103
|
+
Admitted text itself is not redacted here; the host owns its audience and any
|
|
104
|
+
permission to process it downstream.
|
|
105
|
+
|
|
106
|
+
Results contain text, temporary handles, truncation, and `source-evidence` kind,
|
|
107
|
+
without protected IDs, digests, selectors, or hidden-match counts. Coverage is
|
|
108
|
+
always `partial`, including zero results. No current absence claim follows.
|
|
109
|
+
Instruction-looking text remains evidence; the consuming host must preserve that
|
|
110
|
+
distinction in its prompt/context boundary.
|
|
111
|
+
|
|
112
|
+
Defaults are 32 reserved store calls, 32 handles, 16,384 text bytes per item,
|
|
113
|
+
65,536 total released text bytes, and a 60-second session. Trusted limits can
|
|
114
|
+
vary within hard ceilings of 128 calls/handles, 65,536 bytes per item, 262,144
|
|
115
|
+
total bytes, and ten minutes. Search reserves one query plus its requested maximum
|
|
116
|
+
exact fetches. Failed and unused reservations are not refunded. UTF-8 truncation
|
|
117
|
+
preserves whole code points. A search releases its result as a whole; if no text
|
|
118
|
+
budget remains while fetching its hits, prepared items and handles are dropped
|
|
119
|
+
and the whole search refuses. Issued handles retain their session charge even
|
|
120
|
+
after an admission revision changes; start a new session for the new admission.
|
|
121
|
+
The ingestion owner's plan/processor ceilings bound
|
|
122
|
+
traversal; a hit limit does not limit inspected sources. Synchronous store reads
|
|
123
|
+
cannot be preempted by the lifetime check. A host requiring a hard execution-time
|
|
124
|
+
limit must qualify an isolated worker.
|
|
125
|
+
|
|
126
|
+
`close()` discards handles and refuses further reads. Expiry, clock reversal,
|
|
127
|
+
reentrant calls, foreign handles, changed authority, and changed sources refuse.
|
|
128
|
+
The adapter persists, ingests, accepts, activates, and schedules nothing. It
|
|
129
|
+
provides cooperative process-level checks, not OS isolation, a permission issuer,
|
|
130
|
+
or a database workflow. The host must qualify the real authority and release path.
|
|
131
|
+
|
|
132
|
+
## Read a complete selected citation
|
|
133
|
+
|
|
134
|
+
Lexical search is partial discovery. It can find a line that names an
|
|
135
|
+
instrument and miss the next line saying that approval awaits inspection. When
|
|
136
|
+
a source owner has selected a complete cited unit, a trusted host can read that
|
|
137
|
+
unit exactly with the existing APIs. This adds no model-callable API. Exact
|
|
138
|
+
reading shows what the selected unit says. It does not show retrieval quality,
|
|
139
|
+
answer correctness, usefulness, or semantic acceptance.
|
|
140
|
+
|
|
141
|
+
### Which route reads what
|
|
142
|
+
|
|
143
|
+
| Route | Reads | It cannot |
|
|
144
|
+
| --- | --- | --- |
|
|
145
|
+
| `createLocalEvidenceReader` `search` then `get({ handle })` | Hits that this reader's own search found and re-fetched | Accept a citation, locator, page, path, or protected reference. Only its own search issues handles. |
|
|
146
|
+
| `createIngestionStore` (`@mnstry/atelier/ingestion`) `getEvidence` | One exact span for a protected `planId`, `planDigest`, `sourceId`, `sourceDigest`, `attemptId` and `locator` | Grant permission. The host must admit the **whole plan** even though one fetch reads only the named source. A host whose decision covers only some sources must not call it; the store cannot detect this. |
|
|
147
|
+
|
|
148
|
+
`getEvidence` is the route for an explicitly selected citation. It keeps nothing
|
|
149
|
+
between calls: each call checks the current source digest, the completion
|
|
150
|
+
receipt stored beside the output, and the journal's recorded size and coverage.
|
|
151
|
+
Keep its bindings, the source map, and constructor arguments in trusted host
|
|
152
|
+
custody, never under model control. The source must already be in an ingestion
|
|
153
|
+
plan with a completed attempt.
|
|
154
|
+
|
|
155
|
+
### Steps for the host
|
|
156
|
+
|
|
157
|
+
1. **Map the unit.** The source owner defines the unit in the existing source
|
|
158
|
+
map: its qualifying lines and limits, not just the lines matching a query,
|
|
159
|
+
and whether the text is original or derived. Bind the map to the current
|
|
160
|
+
source digest, the completed extraction attempt, the processor semantics,
|
|
161
|
+
the ordered locators, and the expected hash of each exact text.
|
|
162
|
+
2. **Reuse the existing plan and attempt.** Do not create a second extraction
|
|
163
|
+
store or reinterpret locators.
|
|
164
|
+
- Text and Markdown evidence uses physical lines without their line
|
|
165
|
+
terminators (`line`), split on CRLF, LF or a lone CR, after a leading BOM
|
|
166
|
+
(U+FEFF) is removed.
|
|
167
|
+
- JSON primitive leaves use RFC 6901 pointers (`json-pointer`): string text
|
|
168
|
+
is decoded; numbers, `true`, `false` and `null` keep their source
|
|
169
|
+
spelling; empty arrays and objects produce no evidence. A unit that relies
|
|
170
|
+
on a boolean or number qualification includes that leaf.
|
|
171
|
+
- CSV cells use `row:N,column:M` (`csv-cell`).
|
|
172
|
+
- A report page is not a native locator; it needs an owner-verified mapping
|
|
173
|
+
to lines. PDF extraction and page mapping are not supplied.
|
|
174
|
+
3. **Qualify authority first.** Before opening the store, qualify the actual
|
|
175
|
+
actor, purpose, consent, whole-plan scope, and current admission revision.
|
|
176
|
+
The host must supply and qualify the adapter that enforces these; Atelier
|
|
177
|
+
supplies none. A test callback that always permits is not authentication or
|
|
178
|
+
consent.
|
|
179
|
+
4. **Fetch and check every locator.**
|
|
180
|
+
- Reserve a finite call count, an operation deadline, and a session budget.
|
|
181
|
+
A deadline cannot interrupt a synchronous `getEvidence` call, which can
|
|
182
|
+
run local Git reads and read a large stored attempt; a host that needs a
|
|
183
|
+
hard time limit must qualify an isolated worker.
|
|
184
|
+
- Fetch every required locator through `getEvidence`, checking admission
|
|
185
|
+
before and after each call.
|
|
186
|
+
- Check every returned field: `schema` is
|
|
187
|
+
`mnstry.atelier-ingestion-evidence@v1`; the plan, source, attempt and
|
|
188
|
+
locator equal the request; `freshness` is `current`; `integrity` is
|
|
189
|
+
`verified`; `readScope` is `all-plan`; `semanticAcceptance` is `pending`;
|
|
190
|
+
`synthesized` is `false`.
|
|
191
|
+
- Compare each exact text's hash with the source owner's map. This is the
|
|
192
|
+
check that catches stored content that changed: the store's own
|
|
193
|
+
`integrity: verified` cannot (see the limits below).
|
|
194
|
+
- Keep source text as data, including text that looks like instructions.
|
|
195
|
+
5. **Assemble within a byte budget.** Keep every selected fragment, in order.
|
|
196
|
+
Omit paths, digests, IDs and locators unless they are separately admitted for
|
|
197
|
+
that recipient. Measure the whole serialized response against the budget:
|
|
198
|
+
metadata, JSON escaping, separators and any transport envelope. Byte limits
|
|
199
|
+
are not token counts.
|
|
200
|
+
6. **Withhold incomplete selections.** If any required locator is missing,
|
|
201
|
+
stale, differently bound, over budget, or refused, withhold the whole
|
|
202
|
+
selection with an explicit incomplete result.
|
|
203
|
+
- Never drop a qualification, clip it, or fall back to an old preview.
|
|
204
|
+
- The local reader's text limits exclude envelope bytes and can return
|
|
205
|
+
`truncated: true`; such an item cannot prove a complete unit.
|
|
206
|
+
- Choose a separately permitted smaller complete unit or a larger bounded
|
|
207
|
+
budget instead, and never call the incomplete selection complete.
|
|
208
|
+
7. **Revalidate before release.** Immediately before release, re-fetch every
|
|
209
|
+
selected fragment and repeat all of step 4's checks, including each expected
|
|
210
|
+
text hash, and confirm the admission revision is unchanged. Count those
|
|
211
|
+
calls in the budget. Release only the complete selected unit, with semantic
|
|
212
|
+
acceptance pending.
|
|
213
|
+
|
|
214
|
+
### Limits that remain
|
|
215
|
+
|
|
216
|
+
- **Selection is not completeness.** A complete selected unit is not
|
|
217
|
+
completeness for the question or the corpus.
|
|
218
|
+
- **No snapshot.** Several filesystem reads are not an atomic source snapshot. A
|
|
219
|
+
host that needs stronger consistency must supply and qualify its own snapshot
|
|
220
|
+
or locking contract.
|
|
221
|
+
- **Integrity is local.** The intake completion receipt digests the extraction
|
|
222
|
+
output, but it is stored beside that output in the same local state, and the
|
|
223
|
+
ingestion journal records the output's size and coverage but no output
|
|
224
|
+
digest. A writer able to rewrite the output and its receipt to the same size
|
|
225
|
+
and coverage is not detected by `getEvidence` at any time, because it keeps
|
|
226
|
+
nothing between calls; `integrity: verified` does not independently
|
|
227
|
+
authenticate content. (The local reader is different: it commits to the text
|
|
228
|
+
of its first fetch and detects a later change.) Comparing every fetch,
|
|
229
|
+
including the release revalidation, against the source owner's
|
|
230
|
+
independently bound hashes supports this one selection; it does not
|
|
231
|
+
strengthen the store's general guarantee.
|
|
232
|
+
- **Quality is measured separately.** Keep the missed case in the retrieval
|
|
233
|
+
evaluation, and show both the partial discovery and the complete selection.
|
|
234
|
+
Do not count operator-selected citations as held-out search success. Record
|
|
235
|
+
actual reads, response bytes and total effort separately. A person still
|
|
236
|
+
supplies the real question, the permitted sources, and the usefulness
|
|
237
|
+
judgment.
|
package/docs/exact-upgrades.md
CHANGED
|
@@ -69,8 +69,9 @@ builders. Only five registered output paths can be written, and a complete
|
|
|
69
69
|
before/after inventory checks that boundary. The executor then saves those
|
|
70
70
|
bytes; application does not recalculate or silently replace the selected plan.
|
|
71
71
|
This is a bounded trusted executor, not a sandbox for arbitrary migration code.
|
|
72
|
-
The generated readiness JSON
|
|
73
|
-
|
|
72
|
+
The generated readiness JSON records graph and projection paths relative to the
|
|
73
|
+
project configuration directory, so its bytes match what `atelier readiness`
|
|
74
|
+
would regenerate in the candidate. Inspect the committed bytes before sharing
|
|
74
75
|
the candidate branch; generating a candidate does not authorize publication.
|
|
75
76
|
|
|
76
77
|
## Apply the reviewed bytes
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Progressive local ingestion
|
|
2
|
+
|
|
3
|
+
Status: experimental source implementation, not yet a released package feature.
|
|
4
|
+
The local runner preserves explicitly selected files and makes bounded text
|
|
5
|
+
search useful before semantic interpretation. It composes the existing
|
|
6
|
+
[immutable intake](intake-and-guides.md) with a resumable plan. It never enrolls
|
|
7
|
+
raw captures into the canonical graph or treats extracted text as accepted
|
|
8
|
+
knowledge. The [architecture proposal](progressive-ingestion.md) describes the
|
|
9
|
+
larger destination; this page describes the implemented subset.
|
|
10
|
+
|
|
11
|
+
## Start with a purpose and selected sources
|
|
12
|
+
|
|
13
|
+
Use a Git workspace whose `.gitignore` contains `.atelier-local/`. That directory
|
|
14
|
+
must be untracked. Sources are visible paths relative to that workspace;
|
|
15
|
+
traversal, symlinks and implicit external reads are refused. The local CLI is
|
|
16
|
+
for a trusted workspace owner. Its workspace identifier is a binding against
|
|
17
|
+
accidental cross-workspace reuse, not an authenticated identity or tenant ACL.
|
|
18
|
+
|
|
19
|
+
The following examples assume the development checkout or a future package
|
|
20
|
+
version containing this command. Released alpha.7 does not contain it.
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
atelier ingest plan <<'JSON'
|
|
24
|
+
{"workspaceId":"sample-workspace","input":{"sources":[{"id":"service-note","ref":"service.md"},{"id":"parts","ref":"parts.csv"},{"id":"checklist","ref":"checklist.png"}],"scope":{"project":"sample-project","activity":"maintenance"},"purpose":"Find unresolved maintenance work.","budget":{"maxInputBytes":1048576,"maxOutputBytes":1048576,"maxAttempts":8}}}
|
|
25
|
+
JSON
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Save the returned `planId` and `planDigest`. Each subsequent request binds both:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
atelier ingest run <<'JSON'
|
|
32
|
+
{"workspaceId":"sample-workspace","input":{"planId":"REPLACE_WITH_PLAN_ID","planDigest":"REPLACE_WITH_PLAN_DIGEST","maxItems":2}}
|
|
33
|
+
JSON
|
|
34
|
+
atelier ingest query <<'JSON'
|
|
35
|
+
{"workspaceId":"sample-workspace","input":{"planId":"REPLACE_WITH_PLAN_ID","planDigest":"REPLACE_WITH_PLAN_DIGEST","query":"filter","limit":20}}
|
|
36
|
+
JSON
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Use `status` with the same input minus `query`, `limit` and `maxItems`. Repeat
|
|
40
|
+
`run` to advance a bounded batch or recover an interrupted local attempt. The
|
|
41
|
+
source selection, purpose, scope, processor versions and budgets belong to the
|
|
42
|
+
immutable plan. A changed selection or budget needs a new plan.
|
|
43
|
+
|
|
44
|
+
Every selected source remains visible as pending, complete, unsupported,
|
|
45
|
+
unavailable, failed, budget-blocked or stale. An image can be preserved while
|
|
46
|
+
remaining unsupported for extraction. Coverage refers only to selected files;
|
|
47
|
+
it never implies a whole account, repository or compound document was discovered.
|
|
48
|
+
A complete extraction still has `semanticAcceptance: "pending"`.
|
|
49
|
+
|
|
50
|
+
## What the local processors do
|
|
51
|
+
|
|
52
|
+
| Input | Evidence locations | Limits |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| UTF-8 text and Markdown | Physical line numbers, including blank lines | No Markdown semantic interpretation |
|
|
55
|
+
| UTF-8 CSV | Header-inclusive row and column coordinates | Quoted cells and embedded newlines supported; no spreadsheet formulas, styles or attachments interpreted |
|
|
56
|
+
| UTF-8 JSON | RFC6901 pointers to primitive values | Object/array structure supports locations; embedded media, dates, authorship and relationships are not inferred |
|
|
57
|
+
| Other extensions | Explicit unsupported disposition | No OCR, speech, vision, archive traversal or format guessing |
|
|
58
|
+
|
|
59
|
+
Processor selection uses the extension; it does not certify media content.
|
|
60
|
+
Invalid encoding or malformed structures refuse with a per-source failure.
|
|
61
|
+
Extraction limits refuse the item instead of silently dropping evidence. Empty
|
|
62
|
+
supported text is distinct from an unsupported format; empty JSON is malformed.
|
|
63
|
+
JSON containers with no primitive leaves have no searchable evidence. Source
|
|
64
|
+
text is inert, including apparent instructions to the importer.
|
|
65
|
+
|
|
66
|
+
Original bytes and completed extraction outputs live in the existing intake
|
|
67
|
+
store. Plans, reservations and outcomes live in private `.atelier-local/ingestion`.
|
|
68
|
+
No second blob store or provider daemon is introduced. Both stores require the
|
|
69
|
+
workspace's ignored-state boundary. Copying an evidence result to another tool
|
|
70
|
+
is a separate disclosure action: CLI output can contain private paths and text.
|
|
71
|
+
|
|
72
|
+
## Resume, reuse and budgets
|
|
73
|
+
|
|
74
|
+
The runner serializes local reservations and writes them before processing.
|
|
75
|
+
Completed attempts are verified before reuse. Keys include source bytes,
|
|
76
|
+
processor identity/version and extraction limits. Different origins retain
|
|
77
|
+
separate source identities even when bytes can be reused. Corrupt completed
|
|
78
|
+
work refuses; it is not silently recomputed or overwritten.
|
|
79
|
+
|
|
80
|
+
For local deterministic extraction, resume can reconcile output written before
|
|
81
|
+
its completion receipt. This does not authorize retrying an uncertain external
|
|
82
|
+
provider submission. There is no provider execution in this runner.
|
|
83
|
+
|
|
84
|
+
`maxInputBytes`, `maxOutputBytes` and `maxAttempts` bound admitted processing
|
|
85
|
+
within one plan. Planning, source verification and query hashing still read
|
|
86
|
+
bytes and use CPU; these counters are not a machine-wide I/O or dollar budget.
|
|
87
|
+
Cached outputs count toward the plan's output bound. Failed attempts remain in
|
|
88
|
+
accounting. Unknown output accounting blocks further admission instead of
|
|
89
|
+
becoming zero cost. Budgets are per plan, not a shared account quota.
|
|
90
|
+
|
|
91
|
+
A query reads actual completed evidence, verifies its receipt and checks the
|
|
92
|
+
current source bytes. Changed, deleted or inaccessible originals cannot
|
|
93
|
+
silently support fresh hits. Other valid sources remain searchable and omitted
|
|
94
|
+
sources remain visible. Query is lexical retrieval, not an answer generator;
|
|
95
|
+
absence of a hit is not proof that a claim is false. Search limits and structural
|
|
96
|
+
omissions must remain visible in any consuming interface.
|
|
97
|
+
|
|
98
|
+
`getEvidence` on the store API returns one exact span. It takes the plan
|
|
99
|
+
reference, the source, its digest, the completed attempt and the locator, as a
|
|
100
|
+
query hit reports them. It rechecks that source's current bytes and its stored
|
|
101
|
+
attempt, and reads no other source in the plan. It refuses with a typed code:
|
|
102
|
+
|
|
103
|
+
- `INGESTION_STALE`: the plan digest, source digest or attempt differs from the
|
|
104
|
+
plan's completed evidence for that source, the source changed, or it never
|
|
105
|
+
completed.
|
|
106
|
+
- `INGESTION_MISSING`: an unknown source or locator, or a plan directory that
|
|
107
|
+
does not exist.
|
|
108
|
+
- `INGESTION_INTEGRITY`: stored evidence fails verification against the plan,
|
|
109
|
+
or a locator is not unique in it.
|
|
110
|
+
- `INGESTION_INVALID`: a malformed request, or a stored plan or journal record
|
|
111
|
+
that fails its schema.
|
|
112
|
+
|
|
113
|
+
Workspace-level refusals (`INGESTION_WORKSPACE`, `INGESTION_PRIVATE`) and
|
|
114
|
+
`INGESTION_LIMIT` apply as they do for query. Status, query and `getEvidence`
|
|
115
|
+
check a completed attempt's coverage and output size against the plan's own
|
|
116
|
+
record. The journal does not yet record a digest of the output, so a stored
|
|
117
|
+
attempt rewritten without changing its size or coverage is not detected. Its
|
|
118
|
+
query hits can then fail to resolve through `getEvidence`. Treat a query hit as
|
|
119
|
+
a pointer, and cite only what `getEvidence` returns.
|
|
120
|
+
|
|
121
|
+
Both query and `getEvidence` report `readScope: "all-plan"`. Query reads every
|
|
122
|
+
source in the plan, and a limit bounds only the hits it returns. Neither call
|
|
123
|
+
narrows or grants permission. A host that may read only some of a plan's
|
|
124
|
+
sources must not pass that plan to either call.
|
|
125
|
+
|
|
126
|
+
## Connect a useful result to learning
|
|
127
|
+
|
|
128
|
+
A correction made while using a retrieved passage can be captured through
|
|
129
|
+
[`atelier learn`](learning.md), with the source reference, its exact digest and
|
|
130
|
+
location. Capture is evidence only. Proposals remain inert until a person
|
|
131
|
+
reviews the exact content, accepts it and explicitly activates it for a scoped
|
|
132
|
+
harness. Withdrawal preserves the decision history while stopping future use.
|
|
133
|
+
|
|
134
|
+
The core exposes this composition; it does not monitor every tool automatically.
|
|
135
|
+
A desktop host must supply capture consent, trusted identity, paired workspace
|
|
136
|
+
access, transport and actual harness delivery. Tests of a local client do not
|
|
137
|
+
establish native admission. Review and activation never execute text discovered
|
|
138
|
+
inside an imported file. A captured source reference remains historical evidence;
|
|
139
|
+
source changes do not automatically withdraw a separately accepted lesson. A host
|
|
140
|
+
must surface that staleness when it uses source-dependent lessons.
|
|
141
|
+
|
|
142
|
+
## Evaluate before choosing a model
|
|
143
|
+
|
|
144
|
+
`@mnstry/atelier/ingestion/evaluation` exports `evaluateIngestionTrial` and
|
|
145
|
+
`ingestionEvaluationDigest`. An evaluation suite declares exact expected
|
|
146
|
+
structural evidence, source digests, calibration/held-out cases, strata and
|
|
147
|
+
thresholds before the trial. A trial binds its suite digest and processor
|
|
148
|
+
version/configuration; each case reports attempts, evidence, elapsed time,
|
|
149
|
+
cost (or `null`) and an optional explicit human assessment.
|
|
150
|
+
|
|
151
|
+
The scorer counts omitted cases, wrong locations, changed text and duplicates.
|
|
152
|
+
Each held-out stratum must satisfy the declared thresholds. A zero-evidence or
|
|
153
|
+
calibration-only sample cannot qualify extraction. Unknown costs stay unknown;
|
|
154
|
+
cost per accepted result is absent when cost or acceptance is unavailable.
|
|
155
|
+
Human assessment identities are caller assertions. This is an audit aid, not a
|
|
156
|
+
model permission grant or an automatic judge of semantic support.
|
|
157
|
+
|
|
158
|
+
Run the synthetic local example with:
|
|
159
|
+
|
|
160
|
+
```sh
|
|
161
|
+
node scripts/evaluate-ingestion.mjs
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The example records processor elapsed time and leaves total cost unmetered. It
|
|
165
|
+
uses no model and proves no model savings. For a real comparison, the owner
|
|
166
|
+
must provide permitted representative examples, exact providers, a spend cap,
|
|
167
|
+
predeclared task rubrics and human acceptance. Count retries, failures,
|
|
168
|
+
verification and correction effort. Compare cost per useful accepted result,
|
|
169
|
+
with quality floors and rare exceptions preserved. Keep private examples and
|
|
170
|
+
methods in their owning workspace.
|
|
171
|
+
|
|
172
|
+
## Remaining product work
|
|
173
|
+
|
|
174
|
+
The public foundation still needs qualified semantic adapters, focused
|
|
175
|
+
synthesis and graph decision integration, richer document/media processors,
|
|
176
|
+
connector census and permission-change handling, and representative pilots.
|
|
177
|
+
The proprietary runtime adds native scheduling, installed processors,
|
|
178
|
+
provider credentials/budgets, progress and source review, cancellation,
|
|
179
|
+
notifications and scoped harness delivery. The public reference path remains
|
|
180
|
+
usable without that runtime. Neither private material nor private methodology
|
|
181
|
+
belongs in public fixtures or distributed proprietary prompts.
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Discovery Harness and Research Harness
|
|
2
|
+
|
|
3
|
+
Status: implemented locally for the next release. The published alpha.7 package
|
|
4
|
+
does not expose `inquiry`. Use `node bin/atelier.mjs inquiry help` from this
|
|
5
|
+
source checkout, or `atelier inquiry help` from a package built from it.
|
|
6
|
+
|
|
7
|
+
Discovery frames questions, compares explanations and prepares decisions.
|
|
8
|
+
Research gathers and checks evidence and returns a portable bundle. People set
|
|
9
|
+
purpose and acceptance criteria; agents perform admitted work; the designated
|
|
10
|
+
owner validates consequential interpretations under the repository's rules.
|
|
11
|
+
|
|
12
|
+
## Start with existing tools
|
|
13
|
+
|
|
14
|
+
The shipped skills are `atelier-discovery-harness` and
|
|
15
|
+
`atelier-research-harness`, in identical Codex and Claude editions. Independently
|
|
16
|
+
sealed packages live in `fixtures/inquiry-packages/`. Their source identity is
|
|
17
|
+
explicitly unreleased, and their behavioral evaluation status is unknown. They
|
|
18
|
+
can be adopted through the [capability steward](capability-stewardship.md).
|
|
19
|
+
They require the observed `atelier-inquiry-v1` tool and admitted local read/write
|
|
20
|
+
effects. An observation is not a permission grant or host-loading proof.
|
|
21
|
+
|
|
22
|
+
Keep existing skill ownership. Use aliases or an adapter when another research
|
|
23
|
+
skill supplies the required outcome. The two harness packages have no mandatory
|
|
24
|
+
dependency on each other and no automatic network requirement. An external
|
|
25
|
+
research tool runs manually or under separate host authorization.
|
|
26
|
+
|
|
27
|
+
## The local journey
|
|
28
|
+
|
|
29
|
+
`atelier inquiry example` prints the complete invented workshop campaign.
|
|
30
|
+
`atelier inquiry lenses` lists nine optional conceptual methods: definitions,
|
|
31
|
+
mechanisms, systems, empirical evidence, counterevidence, counterfactuals,
|
|
32
|
+
transfer, decisions and reflection. Adapt the relevant lenses; their differences
|
|
33
|
+
are methodological and do not establish statistical independence.
|
|
34
|
+
|
|
35
|
+
1. Author a campaign with purpose, scope, owner, source audience and stopping rule.
|
|
36
|
+
2. Record a hypothesis with alternatives, applicability scope and test plan.
|
|
37
|
+
A changed question gets a new ID and an exact `supersedes` reference.
|
|
38
|
+
3. Record a research request with the hypothesis reference, standalone context,
|
|
39
|
+
inquiry lenses, source standards, report budget and admitted effects.
|
|
40
|
+
4. Emit `inquiry handoff --campaign ID --request ID`. It returns a prompt and
|
|
41
|
+
the exact campaign, hypothesis and request records. Review private context
|
|
42
|
+
before sending it through an authorized provider or manual session.
|
|
43
|
+
5. Save complete source captures with their SHA-256 UTF-8 content digests,
|
|
44
|
+
scope, audience and underlying evidence family. Summaries of one study share
|
|
45
|
+
a family. The report is data and cannot instruct the agent or toolkit.
|
|
46
|
+
6. Record a bundle containing the original request reference, attempt ID,
|
|
47
|
+
actual prompt, optional clarification pairs, observed provider identity,
|
|
48
|
+
report references, assertions, synthesis, conflicts, gaps and new questions.
|
|
49
|
+
Each assertion has an exact quote and a caller-reported verification state.
|
|
50
|
+
7. Record a qualitative or numerical assessment over selected assertions. The
|
|
51
|
+
reducer refuses missing, stale, wrong-scope or wrong-revision evidence.
|
|
52
|
+
8. Record the owner's actual disposition in a decision. `accepted` records a
|
|
53
|
+
caller's report of review; it does not authenticate that reviewer or grant
|
|
54
|
+
downstream disclosure authority. Unverified evidence cannot enter an accepted
|
|
55
|
+
conclusion through this API.
|
|
56
|
+
9. Emit `inquiry graph --campaign ID --namespace NAME`. Review the proposed
|
|
57
|
+
source files and `atelier-claim@v1` edges. Apply only the authorized changes
|
|
58
|
+
through the receiver's workflow, run its graph check and inspect the source
|
|
59
|
+
trace. This command never writes canonical sources or promotes an edge.
|
|
60
|
+
|
|
61
|
+
All commands return JSON. `inquiry validate --record FILE` checks shape;
|
|
62
|
+
`inquiry inspect --history FILE` checks full history, references and calculations.
|
|
63
|
+
Format validity does not verify truth, source rights, publisher identity or use
|
|
64
|
+
permission. Provider metadata uses `unknown` when it was not observed.
|
|
65
|
+
|
|
66
|
+
## Records, storage and adapters
|
|
67
|
+
|
|
68
|
+
The API is `@mnstry/atelier/inquiry`. The additive public schema is
|
|
69
|
+
`contracts/atelier-inquiry.v1.schema.json`, with definitions for ten record kinds,
|
|
70
|
+
the complete ledger and the research handoff. Records use
|
|
71
|
+
`atelier-inquiry-record@v1`; `kind` selects the closed data shape. No extension
|
|
72
|
+
field can bypass the core contract.
|
|
73
|
+
|
|
74
|
+
Every reference is `{id, digest}`, computed with `inquiryRef(record)` or
|
|
75
|
+
`inquiryDigest(record)`. Record IDs never change and are unique within a campaign.
|
|
76
|
+
The historical evidence set and model inputs remain available when new decisions
|
|
77
|
+
or withdrawals are appended. The supplied synthetic JSON is a worked input
|
|
78
|
+
example, not research evidence.
|
|
79
|
+
|
|
80
|
+
```js
|
|
81
|
+
import {
|
|
82
|
+
EMPTY_INQUIRY_HEAD, appendInquiry, readInquiry, inquiryRef,
|
|
83
|
+
researchHandoff, inquiryGraphProposal,
|
|
84
|
+
} from '@mnstry/atelier/inquiry'
|
|
85
|
+
|
|
86
|
+
// workspaceRoot is an explicitly selected Git repository root.
|
|
87
|
+
// campaignRecord is authored against the campaign definition in the schema.
|
|
88
|
+
const receipt = appendInquiry({
|
|
89
|
+
workspaceRoot, record: campaignRecord, confirm: EMPTY_INQUIRY_HEAD,
|
|
90
|
+
})
|
|
91
|
+
// Author the next record using inquiryRef(existingRecord) for each reference.
|
|
92
|
+
// Confirm the latest head returned by status or append for every next append.
|
|
93
|
+
const state = readInquiry({ workspaceRoot, campaign: campaignRecord.id })
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The CLI equivalent is `inquiry append --record FILE --confirm CURRENT_HEAD`.
|
|
97
|
+
`inquiry help` prints the initial empty-history digest. `inquiry status` returns
|
|
98
|
+
the current head and reconsideration queue. `inquiry export` returns a complete
|
|
99
|
+
ledger, including private captures: choose its output destination deliberately.
|
|
100
|
+
The pure API can inspect and exchange exported histories without an account.
|
|
101
|
+
|
|
102
|
+
Stored ledgers are under `.atelier-local/inquiry/CAMPAIGN/ledger.json`. Writes
|
|
103
|
+
require ignored, untracked `.atelier-local/` state on a qualified POSIX filesystem.
|
|
104
|
+
Windows ledger writes refuse before creating state; read-only inspection and
|
|
105
|
+
exchange of existing histories remain available.
|
|
106
|
+
A shared steward lock serializes cooperating writers. Each append checks the
|
|
107
|
+
expected head, replays the history, and atomically replaces one file containing
|
|
108
|
+
the complete immutable record sequence. Interrupted writes retain a complete
|
|
109
|
+
previous or next file; inspect before repeating an uncertain append. A hard
|
|
110
|
+
process termination can leave a shared lock requiring operator reconciliation;
|
|
111
|
+
do not remove a live or unverified lock. This release has no automatic inquiry
|
|
112
|
+
lock recovery or multi-repository transaction.
|
|
113
|
+
|
|
114
|
+
Limits: 256 records and 8 MiB per ledger; at most 64 elements in bounded record
|
|
115
|
+
arrays; source captures at most 262,144 characters; actual prompts at most
|
|
116
|
+
1,048,576 characters. Export and verify history before starting a continuation
|
|
117
|
+
campaign; the toolkit does not silently truncate or compact it. References are
|
|
118
|
+
local to a campaign; inter-campaign and inter-repository links remain explicit
|
|
119
|
+
provenance under the receiver's conventions.
|
|
120
|
+
|
|
121
|
+
Hashes detect a mismatched pin, not a malicious writer who can replace the whole
|
|
122
|
+
ledger. File controls assume cooperating local writers and do not create an OS
|
|
123
|
+
sandbox against concurrent directory replacement. Audience labels describe
|
|
124
|
+
readership, not filesystem access control. Non-private campaigns reject source
|
|
125
|
+
audiences outside their declared readership; public disclosure still requires
|
|
126
|
+
the existing repository boundary process.
|
|
127
|
+
|
|
128
|
+
## Belief calculations and their limits
|
|
129
|
+
|
|
130
|
+
Three representations are supported:
|
|
131
|
+
|
|
132
|
+
| Kind | Output and interpretation |
|
|
133
|
+
| --- | --- |
|
|
134
|
+
| `qualitative` | A documented judgment, no probability |
|
|
135
|
+
| `elicited-odds` | Prior plus stated likelihood ratios and sensitivity priors; conditional on elicitation and independence assumptions |
|
|
136
|
+
| `beta-binomial` | Beta posterior parameters, mean, variance and predictive success rate for explicitly defined binary trials |
|
|
137
|
+
|
|
138
|
+
The odds calculation uses log odds and applies one contribution per evidence
|
|
139
|
+
family. Identical family contributions are counted once and exposed as duplicate
|
|
140
|
+
keys. Conflicting contributions from one family refuse. This is a conservative
|
|
141
|
+
one-contribution-per-family model, not a general dependence engine: aggregate
|
|
142
|
+
dependent observations through a separately justified joint model or use a
|
|
143
|
+
qualitative assessment. A duplicate-family label is supplied by the caller and
|
|
144
|
+
cannot discover hidden overlap in external studies automatically.
|
|
145
|
+
|
|
146
|
+
Prior evidence families must resolve to recorded sources and must not be reused
|
|
147
|
+
as new contributions. Source withdrawal invalidates that whole family, its prior
|
|
148
|
+
uses, assessments and decisions. Relabeling the same external study with a new
|
|
149
|
+
family would evade this check; source-family review remains essential.
|
|
150
|
+
|
|
151
|
+
A rate-model mean is not the probability a broad hypothesis is true. The caller
|
|
152
|
+
defines trials, counts, sampling, scope and independence. No universal likelihood
|
|
153
|
+
ratio, interview count or posterior threshold is bundled. Arithmetic and exact
|
|
154
|
+
replay are tested; calibration is reported as unverified. Prior/posterior
|
|
155
|
+
predictive simulation, general hierarchical inference, causal estimation,
|
|
156
|
+
credible-interval computation and formal expected value of information are
|
|
157
|
+
separate model adapters. The emitted rate predictions are analytic summaries,
|
|
158
|
+
not model-adequacy diagnostics.
|
|
159
|
+
|
|
160
|
+
Append a `withdrawal` naming a source or report bundle to preserve a correction
|
|
161
|
+
trail. A delayed bundle against a superseded request is preserved but flagged;
|
|
162
|
+
it cannot silently update the new hypothesis. A corrected source should receive
|
|
163
|
+
new source/family identities with the correction explained in its locator/method
|
|
164
|
+
and the new assessment rationale. There is no implicit unwithdraw action.
|
|
165
|
+
Legacy heuristic values can be preserved as `legacy-assessment` records; they
|
|
166
|
+
never become computed posteriors or automatic priors.
|
|
167
|
+
|
|
168
|
+
## Graph integration and stewardship
|
|
169
|
+
|
|
170
|
+
Only current accepted decision reports produce graph proposals. Sources and
|
|
171
|
+
assessments carry stable campaign-scoped graph IDs; files remain drafts and
|
|
172
|
+
relations remain proposal-only claims. Selected quotes, evidence pins, provider
|
|
173
|
+
metadata and unresolved conflicts survive the projection. Raw captures and
|
|
174
|
+
unrelated assertions stay in the campaign ledger. A changed conclusion produces
|
|
175
|
+
a new decision record. Historical graph sources already admitted by a receiver
|
|
176
|
+
are not deleted automatically; use `reconsider` to prepare their revision there.
|
|
177
|
+
|
|
178
|
+
A request may record an exact capability release, binding digest, generation,
|
|
179
|
+
host and session. `inquiry feedback --campaign ID --record FEEDBACK_ID` prepares
|
|
180
|
+
a content-free Steward event. `capability observe` validates that it still names
|
|
181
|
+
the current installed binding. This is an explicit second action; the inquiry
|
|
182
|
+
API never rewrites a skill, installs an upgrade or submits telemetry.
|
|
183
|
+
|
|
184
|
+
Inquiry retains separate skill, host, tool, configuration, context, provider and
|
|
185
|
+
unknown causes. The current Steward event vocabulary cannot distinguish context
|
|
186
|
+
or provider causes: the prepared event uses `unknown`, while its wrapper retains
|
|
187
|
+
the original cause and an explicit mapping notice. Do not infer a skill defect
|
|
188
|
+
from a provider failure or an unknown result.
|
|
189
|
+
|
|
190
|
+
## Open and operated capabilities
|
|
191
|
+
|
|
192
|
+
The local records, conceptual lenses, reference skills, basic calculations,
|
|
193
|
+
history, graph proposals and adoption remain in the open package. A user can
|
|
194
|
+
complete and export the local journey without a service or provider account.
|
|
195
|
+
|
|
196
|
+
An operated or proprietary adapter may offer provider scheduling, quota and cost
|
|
197
|
+
controls, collaboration, private connectors, specialized methods or more complex
|
|
198
|
+
models. It must honor the request pin, return complete captures and observed
|
|
199
|
+
metadata, preserve gaps and permit export of authorized records. Its execution,
|
|
200
|
+
credentials, budgets and disclosure belong to the host. This release contains
|
|
201
|
+
the manual handoff and return contract; it does not ship hosted runners, a paid
|
|
202
|
+
service, a registry, or an authenticated review system.
|
|
203
|
+
|
|
204
|
+
The architecture catalog uses Discovery Harness and resolves Discovery Engine
|
|
205
|
+
as a historical alias. The bundled `mnstry-readiness-pack@v1` is immutable:
|
|
206
|
+
its Discovery Engine title, `mnstry.readiness:discovery-engine` ID, question
|
|
207
|
+
identifiers and digest all retain their original release values. The protocol
|
|
208
|
+
remains a planning entry point. Keeping the rename outside that object lets
|
|
209
|
+
existing release locks enter both exact upgrade participants without an
|
|
210
|
+
out-of-band lock rewrite. A future change to the bundled object requires a new
|
|
211
|
+
pack version and an explicit upgrade path.
|