@dialecte/core 0.7.0 → 0.8.1
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/dist/assets/hub.worker-B1HcVDhn.js +2 -0
- package/dist/diagnostics/diagnostics.d.ts +4 -0
- package/dist/diagnostics/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics/types.d.ts +6 -1
- package/dist/diagnostics/types.d.ts.map +1 -1
- package/dist/dialecte/create-dialecte-project.d.ts +11 -0
- package/dist/dialecte/create-dialecte-project.d.ts.map +1 -0
- package/dist/dialecte/create-project-factory.d.ts +14 -0
- package/dist/dialecte/create-project-factory.d.ts.map +1 -0
- package/dist/dialecte/define-dialecte.d.ts +12 -0
- package/dist/dialecte/define-dialecte.d.ts.map +1 -0
- package/dist/dialecte/dialecte.constants.d.ts +4 -0
- package/dist/dialecte/dialecte.constants.d.ts.map +1 -0
- package/dist/dialecte/dialecte.types.d.ts +75 -0
- package/dist/dialecte/dialecte.types.d.ts.map +1 -0
- package/dist/dialecte/index.d.ts +4 -0
- package/dist/dialecte/index.d.ts.map +1 -0
- package/dist/{project-DIKdMMHx.js → dialecte-gIPrRzni.js} +8031 -8457
- package/dist/document/bind-extensions.d.ts +4 -1
- package/dist/document/bind-extensions.d.ts.map +1 -1
- package/dist/document/document.d.ts +58 -5
- package/dist/document/document.d.ts.map +1 -1
- package/dist/document/progress/progress.types.d.ts +21 -4
- package/dist/document/progress/progress.types.d.ts.map +1 -1
- package/dist/document/query/find/ancestor/find-ancestor.d.ts +2 -0
- package/dist/document/query/find/ancestor/find-ancestor.d.ts.map +1 -1
- package/dist/document/query/find/by-attribute/find-by-attributes.d.ts +4 -0
- package/dist/document/query/find/by-attribute/find-by-attributes.d.ts.map +1 -1
- package/dist/document/query/find/descendant/find-descendant.d.ts +2 -0
- package/dist/document/query/find/descendant/find-descendant.d.ts.map +1 -1
- package/dist/document/query/get/attribute/get-attribute.d.ts +4 -0
- package/dist/document/query/get/attribute/get-attribute.d.ts.map +1 -1
- package/dist/document/query/get/attribute/get-attributes.d.ts +4 -0
- package/dist/document/query/get/attribute/get-attributes.d.ts.map +1 -1
- package/dist/document/query/get/definition/get-definition.d.ts +2 -0
- package/dist/document/query/get/definition/get-definition.d.ts.map +1 -1
- package/dist/document/query/get/record/get-child.d.ts +2 -0
- package/dist/document/query/get/record/get-child.d.ts.map +1 -1
- package/dist/document/query/get/record/get-children.d.ts +2 -0
- package/dist/document/query/get/record/get-children.d.ts.map +1 -1
- package/dist/document/query/get/record/get-record.d.ts +2 -0
- package/dist/document/query/get/record/get-record.d.ts.map +1 -1
- package/dist/document/query/get/record/get-records-by-tagname.d.ts +2 -0
- package/dist/document/query/get/record/get-records-by-tagname.d.ts.map +1 -1
- package/dist/document/query/get/record/get-records.d.ts +2 -0
- package/dist/document/query/get/record/get-records.d.ts.map +1 -1
- package/dist/document/query/get/record/load-live-records.d.ts +2 -0
- package/dist/document/query/get/record/load-live-records.d.ts.map +1 -1
- package/dist/document/query/get/record/resolve-record.d.ts +2 -0
- package/dist/document/query/get/record/resolve-record.d.ts.map +1 -1
- package/dist/document/query/get/record/staged-lookup.d.ts +4 -0
- package/dist/document/query/get/record/staged-lookup.d.ts.map +1 -1
- package/dist/document/query/get/tree/get-tree.d.ts +6 -0
- package/dist/document/query/get/tree/get-tree.d.ts.map +1 -1
- package/dist/document/query/main.d.ts +50 -15
- package/dist/document/query/main.d.ts.map +1 -1
- package/dist/document/query/snapshot/collect-snapshot.d.ts +2 -0
- package/dist/document/query/snapshot/collect-snapshot.d.ts.map +1 -1
- package/dist/document/query/snapshot/get-snapshot.d.ts +2 -0
- package/dist/document/query/snapshot/get-snapshot.d.ts.map +1 -1
- package/dist/document/query/snapshot/records-to-tree.d.ts +2 -0
- package/dist/document/query/snapshot/records-to-tree.d.ts.map +1 -1
- package/dist/document/query/tree-filter/omit.d.ts +8 -0
- package/dist/document/query/tree-filter/omit.d.ts.map +1 -1
- package/dist/document/query/tree-filter/order.d.ts +5 -2
- package/dist/document/query/tree-filter/order.d.ts.map +1 -1
- package/dist/document/query/tree-filter/unwrap.d.ts +2 -0
- package/dist/document/query/tree-filter/unwrap.d.ts.map +1 -1
- package/dist/document/staged-operations.d.ts +5 -1
- package/dist/document/staged-operations.d.ts.map +1 -1
- package/dist/document/transaction/clone/clone.d.ts +2 -0
- package/dist/document/transaction/clone/clone.d.ts.map +1 -1
- package/dist/document/transaction/commit/commit.d.ts.map +1 -1
- package/dist/document/transaction/commit/merge-operations.d.ts +1 -1
- package/dist/document/transaction/commit/merge-operations.d.ts.map +1 -1
- package/dist/document/transaction/commit/summarize-operations.d.ts +16 -0
- package/dist/document/transaction/commit/summarize-operations.d.ts.map +1 -0
- package/dist/document/transaction/commit/summarize-operations.types.d.ts +17 -0
- package/dist/document/transaction/commit/summarize-operations.types.d.ts.map +1 -0
- package/dist/document/transaction/create/create.d.ts +2 -0
- package/dist/document/transaction/create/create.d.ts.map +1 -1
- package/dist/document/transaction/guard.d.ts +5 -0
- package/dist/document/transaction/guard.d.ts.map +1 -1
- package/dist/document/transaction/index.d.ts +2 -0
- package/dist/document/transaction/index.d.ts.map +1 -1
- package/dist/document/transaction/main.d.ts +46 -16
- package/dist/document/transaction/main.d.ts.map +1 -1
- package/dist/document/transaction/stage-operations.d.ts.map +1 -1
- package/dist/document/transaction/update/update.d.ts +2 -0
- package/dist/document/transaction/update/update.d.ts.map +1 -1
- package/dist/document/types.d.ts +3 -5
- package/dist/document/types.d.ts.map +1 -1
- package/dist/document/types.extensions.d.ts.map +1 -1
- package/dist/engine-store-CIEqgPUb.js +348 -0
- package/dist/engine.constants-DBMjMmV9.js +98 -0
- package/dist/engine.d.ts +9 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +15805 -0
- package/dist/errors/codes.d.ts +451 -0
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/errors/errors.constants.d.ts +3 -0
- package/dist/errors/errors.constants.d.ts.map +1 -0
- package/dist/errors/errors.d.ts +10 -0
- package/dist/errors/errors.d.ts.map +1 -1
- package/dist/errors/types.d.ts +14 -0
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/helpers/assert-fixed.d.ts +3 -1
- package/dist/helpers/assert-fixed.d.ts.map +1 -1
- package/dist/helpers/assert-xml-characters.d.ts +35 -0
- package/dist/helpers/assert-xml-characters.d.ts.map +1 -0
- package/dist/helpers/assert-xml-characters.types.d.ts +26 -0
- package/dist/helpers/assert-xml-characters.types.d.ts.map +1 -0
- package/dist/helpers/assert-xsi-type.d.ts +4 -0
- package/dist/helpers/assert-xsi-type.d.ts.map +1 -1
- package/dist/helpers/converter.d.ts +21 -6
- package/dist/helpers/converter.d.ts.map +1 -1
- package/dist/helpers/evaluate-expectations.d.ts +21 -0
- package/dist/helpers/evaluate-expectations.d.ts.map +1 -0
- package/dist/helpers/evaluate-expectations.types.d.ts +31 -0
- package/dist/helpers/evaluate-expectations.types.d.ts.map +1 -0
- package/dist/helpers/guard.d.ts +24 -4
- package/dist/helpers/guard.d.ts.map +1 -1
- package/dist/helpers/index.d.ts +2 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/merge-extensions.d.ts +2 -0
- package/dist/helpers/merge-extensions.d.ts.map +1 -1
- package/dist/helpers/read-attributes.d.ts +4 -0
- package/dist/helpers/read-attributes.d.ts.map +1 -1
- package/dist/helpers/standardizing.d.ts +10 -0
- package/dist/helpers/standardizing.d.ts.map +1 -1
- package/dist/helpers/strip-attributes.d.ts +2 -0
- package/dist/helpers/strip-attributes.d.ts.map +1 -1
- package/dist/helpers-DVShv41E.js +489 -0
- package/dist/helpers.js +3 -439
- package/dist/in-process-link-DBeAOZRp.js +2791 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -12
- package/dist/perf/create-perf.d.ts +8 -1
- package/dist/perf/create-perf.d.ts.map +1 -1
- package/dist/perf/index.d.ts +1 -1
- package/dist/perf/index.d.ts.map +1 -1
- package/dist/perf/noop-perf.d.ts.map +1 -1
- package/dist/perf/perf.types.d.ts +65 -6
- package/dist/perf/perf.types.d.ts.map +1 -1
- package/dist/project/index.d.ts +7 -5
- package/dist/project/index.d.ts.map +1 -1
- package/dist/project/io/export-blob.d.ts +5 -2
- package/dist/project/io/export-blob.d.ts.map +1 -1
- package/dist/project/io/export-document.d.ts +5 -4
- package/dist/project/io/export-document.d.ts.map +1 -1
- package/dist/project/io/index.d.ts +1 -1
- package/dist/project/io/index.d.ts.map +1 -1
- package/dist/project/io/init-empty-document.d.ts +2 -0
- package/dist/project/io/init-empty-document.d.ts.map +1 -1
- package/dist/project/io/run-export.d.ts +19 -0
- package/dist/project/io/run-export.d.ts.map +1 -0
- package/dist/project/io/run-export.types.d.ts +45 -0
- package/dist/project/io/run-export.types.d.ts.map +1 -0
- package/dist/project/io/run-import.d.ts +15 -0
- package/dist/project/io/run-import.d.ts.map +1 -0
- package/dist/project/io/run-import.types.d.ts +19 -0
- package/dist/project/io/run-import.types.d.ts.map +1 -0
- package/dist/project/io/store-runtime.constants.d.ts +6 -0
- package/dist/project/io/store-runtime.constants.d.ts.map +1 -0
- package/dist/project/io/store-runtime.d.ts +12 -0
- package/dist/project/io/store-runtime.d.ts.map +1 -0
- package/dist/project/io/store-runtime.types.d.ts +18 -0
- package/dist/project/io/store-runtime.types.d.ts.map +1 -0
- package/dist/project/project-channel.d.ts +11 -0
- package/dist/project/project-channel.d.ts.map +1 -0
- package/dist/project/project.constants.d.ts +12 -0
- package/dist/project/project.constants.d.ts.map +1 -0
- package/dist/project/project.d.ts +315 -31
- package/dist/project/project.d.ts.map +1 -1
- package/dist/project/state/document-lifecycle.d.ts +0 -12
- package/dist/project/state/document-lifecycle.d.ts.map +1 -1
- package/dist/project/state/document-state.d.ts +4 -0
- package/dist/project/state/document-state.d.ts.map +1 -1
- package/dist/project/types.d.ts +126 -60
- package/dist/project/types.d.ts.map +1 -1
- package/dist/project-key-Ch34EtFa.js +1435 -0
- package/dist/rolldown-runtime-CYdcPHCu.js +12 -0
- package/dist/running-operations-vnijBvn7.js +76 -0
- package/dist/same-json-value-C6kUaoyt.js +1603 -0
- package/dist/sqlite.d.ts +5 -0
- package/dist/sqlite.d.ts.map +1 -0
- package/dist/sqlite.js +2671 -0
- package/dist/sqlite3.wasm +0 -0
- package/dist/store/apply-record-patch.d.ts +13 -0
- package/dist/store/apply-record-patch.d.ts.map +1 -0
- package/dist/store/closing-connections.d.ts +7 -0
- package/dist/store/closing-connections.d.ts.map +1 -0
- package/dist/store/closing-connections.types.d.ts +13 -0
- package/dist/store/closing-connections.types.d.ts.map +1 -0
- package/dist/store/commit-progress.d.ts +10 -0
- package/dist/store/commit-progress.d.ts.map +1 -0
- package/dist/store/compare-by-id.d.ts +10 -0
- package/dist/store/compare-by-id.d.ts.map +1 -0
- package/dist/store/document-path.constants.d.ts +20 -0
- package/dist/store/document-path.constants.d.ts.map +1 -0
- package/dist/store/document-path.d.ts +75 -0
- package/dist/store/document-path.d.ts.map +1 -0
- package/dist/store/document-path.types.d.ts +11 -0
- package/dist/store/document-path.types.d.ts.map +1 -0
- package/dist/store/engine/client/check-engine-wire.d.ts +8 -0
- package/dist/store/engine/client/check-engine-wire.d.ts.map +1 -0
- package/dist/store/engine/client/client.constants.d.ts +30 -0
- package/dist/store/engine/client/client.constants.d.ts.map +1 -0
- package/dist/store/engine/client/client.types.d.ts +200 -0
- package/dist/store/engine/client/client.types.d.ts.map +1 -0
- package/dist/store/engine/client/engine-client.d.ts +15 -0
- package/dist/store/engine/client/engine-client.d.ts.map +1 -0
- package/dist/store/engine/client/engine-control.d.ts +16 -0
- package/dist/store/engine/client/engine-control.d.ts.map +1 -0
- package/dist/store/engine/client/heartbeat-watch.d.ts +17 -0
- package/dist/store/engine/client/heartbeat-watch.d.ts.map +1 -0
- package/dist/store/engine/client/hub-connector.d.ts +11 -0
- package/dist/store/engine/client/hub-connector.d.ts.map +1 -0
- package/dist/store/engine/client/hub-connector.types.d.ts +25 -0
- package/dist/store/engine/client/hub-connector.types.d.ts.map +1 -0
- package/dist/store/engine/client/worker-connector.d.ts +32 -0
- package/dist/store/engine/client/worker-connector.d.ts.map +1 -0
- package/dist/store/engine/creation-refusal.d.ts +10 -0
- package/dist/store/engine/creation-refusal.d.ts.map +1 -0
- package/dist/store/engine/dialecte-refusal.d.ts +18 -0
- package/dist/store/engine/dialecte-refusal.d.ts.map +1 -0
- package/dist/store/engine/engine-store.d.ts +163 -0
- package/dist/store/engine/engine-store.d.ts.map +1 -0
- package/dist/store/engine/engine-store.types.d.ts +53 -0
- package/dist/store/engine/engine-store.types.d.ts.map +1 -0
- package/dist/store/engine/engine.constants.d.ts +14 -0
- package/dist/store/engine/engine.constants.d.ts.map +1 -0
- package/dist/store/engine/engine.types.d.ts +165 -0
- package/dist/store/engine/engine.types.d.ts.map +1 -0
- package/dist/store/engine/host/engine-wire.d.ts +19 -0
- package/dist/store/engine/host/engine-wire.d.ts.map +1 -0
- package/dist/store/engine/host/heartbeat.d.ts +33 -0
- package/dist/store/engine/host/heartbeat.d.ts.map +1 -0
- package/dist/store/engine/host/host.constants.d.ts +13 -0
- package/dist/store/engine/host/host.constants.d.ts.map +1 -0
- package/dist/store/engine/host/host.types.d.ts +65 -0
- package/dist/store/engine/host/host.types.d.ts.map +1 -0
- package/dist/store/engine/host/store-events.d.ts +14 -0
- package/dist/store/engine/host/store-events.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-client.constants.d.ts +27 -0
- package/dist/store/engine/hub/hub-client.constants.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-client.d.ts +46 -0
- package/dist/store/engine/hub/hub-client.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-client.types.d.ts +208 -0
- package/dist/store/engine/hub/hub-client.types.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-protocol.types.d.ts +193 -0
- package/dist/store/engine/hub/hub-protocol.types.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-router.d.ts +9 -0
- package/dist/store/engine/hub/hub-router.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-shell.d.ts +13 -0
- package/dist/store/engine/hub/hub-shell.d.ts.map +1 -0
- package/dist/store/engine/hub/hub-shell.types.d.ts +64 -0
- package/dist/store/engine/hub/hub-shell.types.d.ts.map +1 -0
- package/dist/store/engine/hub/hub.constants.d.ts +33 -0
- package/dist/store/engine/hub/hub.constants.d.ts.map +1 -0
- package/dist/store/engine/hub/hub.types.d.ts +305 -0
- package/dist/store/engine/hub/hub.types.d.ts.map +1 -0
- package/dist/store/engine/hub/hub.worker.d.ts +2 -0
- package/dist/store/engine/hub/hub.worker.d.ts.map +1 -0
- package/dist/store/engine/hub/realm-host.d.ts +10 -0
- package/dist/store/engine/hub/realm-host.d.ts.map +1 -0
- package/dist/store/engine/hub/realm-host.types.d.ts +78 -0
- package/dist/store/engine/hub/realm-host.types.d.ts.map +1 -0
- package/dist/store/engine/project-key.d.ts +15 -0
- package/dist/store/engine/project-key.d.ts.map +1 -0
- package/dist/store/engine/wire/error-envelope.d.ts +25 -0
- package/dist/store/engine/wire/error-envelope.d.ts.map +1 -0
- package/dist/store/engine/wire/wire-values.d.ts +33 -0
- package/dist/store/engine/wire/wire-values.d.ts.map +1 -0
- package/dist/store/engine/wire/wire.constants.d.ts +116 -0
- package/dist/store/engine/wire/wire.constants.d.ts.map +1 -0
- package/dist/store/engine/wire/wire.types.d.ts +119 -0
- package/dist/store/engine/wire/wire.types.d.ts.map +1 -0
- package/dist/store/hub-public.d.ts +33 -0
- package/dist/store/hub-public.d.ts.map +1 -0
- package/dist/store/ignore-destroy-outcome.d.ts +6 -0
- package/dist/store/ignore-destroy-outcome.d.ts.map +1 -0
- package/dist/store/in-memory/in-memory-state.d.ts +46 -0
- package/dist/store/in-memory/in-memory-state.d.ts.map +1 -0
- package/dist/store/in-memory/in-memory-store.constants.d.ts +7 -0
- package/dist/store/in-memory/in-memory-store.constants.d.ts.map +1 -0
- package/dist/store/in-memory/in-memory-store.d.ts +105 -17
- package/dist/store/in-memory/in-memory-store.d.ts.map +1 -1
- package/dist/store/in-memory/types.d.ts +55 -1
- package/dist/store/in-memory/types.d.ts.map +1 -1
- package/dist/store/index.d.ts +8 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/json-values.constants.d.ts +18 -0
- package/dist/store/json-values.constants.d.ts.map +1 -0
- package/dist/store/json-values.d.ts +40 -0
- package/dist/store/json-values.d.ts.map +1 -0
- package/dist/store/json-values.types.d.ts +18 -0
- package/dist/store/json-values.types.d.ts.map +1 -0
- package/dist/store/local/dexie-store.constants.d.ts +20 -0
- package/dist/store/local/dexie-store.constants.d.ts.map +1 -0
- package/dist/store/local/dexie-store.d.ts +134 -5
- package/dist/store/local/dexie-store.d.ts.map +1 -1
- package/dist/store/local/types.d.ts +6 -0
- package/dist/store/local/types.d.ts.map +1 -1
- package/dist/store/lost-write.d.ts +32 -0
- package/dist/store/lost-write.d.ts.map +1 -0
- package/dist/store/lost-write.types.d.ts +4 -0
- package/dist/store/lost-write.types.d.ts.map +1 -0
- package/dist/store/open-connections.d.ts +4 -0
- package/dist/store/open-connections.d.ts.map +1 -0
- package/dist/store/open-connections.types.d.ts +17 -0
- package/dist/store/open-connections.types.d.ts.map +1 -0
- package/dist/store/own-import.d.ts +10 -0
- package/dist/store/own-import.d.ts.map +1 -0
- package/dist/store/project-name.d.ts +10 -0
- package/dist/store/project-name.d.ts.map +1 -0
- package/dist/store/resolve-store.d.ts +28 -4
- package/dist/store/resolve-store.d.ts.map +1 -1
- package/dist/store/running-operations.d.ts +7 -0
- package/dist/store/running-operations.d.ts.map +1 -0
- package/dist/store/running-operations.types.d.ts +10 -0
- package/dist/store/running-operations.types.d.ts.map +1 -0
- package/dist/store/same-json-value.d.ts +9 -0
- package/dist/store/same-json-value.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/in-process-link.d.ts +20 -0
- package/dist/store/sqlite/adapter/in-process-link.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/in-process-link.types.d.ts +21 -0
- package/dist/store/sqlite/adapter/in-process-link.types.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/realm-storage.d.ts +10 -0
- package/dist/store/sqlite/adapter/realm-storage.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-connector.d.ts +14 -0
- package/dist/store/sqlite/adapter/sqlite-connector.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-engine-settings.d.ts +4 -0
- package/dist/store/sqlite/adapter/sqlite-engine-settings.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.d.ts +8 -0
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.types.d.ts +5 -0
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.types.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-worker-connector.d.ts +8 -0
- package/dist/store/sqlite/adapter/sqlite-worker-connector.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-worker-connector.types.d.ts +5 -0
- package/dist/store/sqlite/adapter/sqlite-worker-connector.types.d.ts.map +1 -0
- package/dist/store/sqlite/engine/blobs.d.ts +55 -0
- package/dist/store/sqlite/engine/blobs.d.ts.map +1 -0
- package/dist/store/sqlite/engine/bulk-insert.d.ts +31 -0
- package/dist/store/sqlite/engine/bulk-insert.d.ts.map +1 -0
- package/dist/store/sqlite/engine/commit.d.ts +20 -0
- package/dist/store/sqlite/engine/commit.d.ts.map +1 -0
- package/dist/store/sqlite/engine/device-cache.d.ts +13 -0
- package/dist/store/sqlite/engine/device-cache.d.ts.map +1 -0
- package/dist/store/sqlite/engine/engine-errors.d.ts +26 -0
- package/dist/store/sqlite/engine/engine-errors.d.ts.map +1 -0
- package/dist/store/sqlite/engine/engine.constants.d.ts +144 -0
- package/dist/store/sqlite/engine/engine.constants.d.ts.map +1 -0
- package/dist/store/sqlite/engine/engine.types.d.ts +361 -0
- package/dist/store/sqlite/engine/engine.types.d.ts.map +1 -0
- package/dist/store/sqlite/engine/history.d.ts +114 -0
- package/dist/store/sqlite/engine/history.d.ts.map +1 -0
- package/dist/store/sqlite/engine/import-queue.d.ts +7 -0
- package/dist/store/sqlite/engine/import-queue.d.ts.map +1 -0
- package/dist/store/sqlite/engine/import-target.d.ts +23 -0
- package/dist/store/sqlite/engine/import-target.d.ts.map +1 -0
- package/dist/store/sqlite/engine/import-window.d.ts +23 -0
- package/dist/store/sqlite/engine/import-window.d.ts.map +1 -0
- package/dist/store/sqlite/engine/reclaim.d.ts +13 -0
- package/dist/store/sqlite/engine/reclaim.d.ts.map +1 -0
- package/dist/store/sqlite/engine/records.d.ts +117 -0
- package/dist/store/sqlite/engine/records.d.ts.map +1 -0
- package/dist/store/sqlite/engine/registry.d.ts +76 -0
- package/dist/store/sqlite/engine/registry.d.ts.map +1 -0
- package/dist/store/sqlite/engine/schema.d.ts +57 -0
- package/dist/store/sqlite/engine/schema.d.ts.map +1 -0
- package/dist/store/sqlite/engine/sqlite-engine.d.ts +14 -0
- package/dist/store/sqlite/engine/sqlite-engine.d.ts.map +1 -0
- package/dist/store/sqlite/engine/transaction.d.ts +12 -0
- package/dist/store/sqlite/engine/transaction.d.ts.map +1 -0
- package/dist/store/sqlite/list-projects.constants.d.ts +12 -0
- package/dist/store/sqlite/list-projects.constants.d.ts.map +1 -0
- package/dist/store/sqlite/list-projects.d.ts +22 -0
- package/dist/store/sqlite/list-projects.d.ts.map +1 -0
- package/dist/store/sqlite/list-projects.types.d.ts +28 -0
- package/dist/store/sqlite/list-projects.types.d.ts.map +1 -0
- package/dist/store/sqlite/load-sqlite.d.ts +11 -0
- package/dist/store/sqlite/load-sqlite.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/close-engine.d.ts +18 -0
- package/dist/store/sqlite/runtime/close-engine.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/install-pool.d.ts +94 -0
- package/dist/store/sqlite/runtime/install-pool.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/pool-header.d.ts +13 -0
- package/dist/store/sqlite/runtime/pool-header.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/progress-beat.d.ts +13 -0
- package/dist/store/sqlite/runtime/progress-beat.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/runtime.constants.d.ts +57 -0
- package/dist/store/sqlite/runtime/runtime.constants.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/runtime.types.d.ts +56 -0
- package/dist/store/sqlite/runtime/runtime.types.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/serve-dialecte-engine.d.ts +16 -0
- package/dist/store/sqlite/runtime/serve-dialecte-engine.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-store-of.d.ts +7 -0
- package/dist/store/sqlite/sqlite-store-of.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-text.d.ts +20 -0
- package/dist/store/sqlite/sqlite-text.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-wasm-url.d.ts +9 -0
- package/dist/store/sqlite/sqlite-wasm-url.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite.constants.d.ts +15 -0
- package/dist/store/sqlite/sqlite.constants.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite.types.d.ts +36 -0
- package/dist/store/sqlite/sqlite.types.d.ts.map +1 -0
- package/dist/store/sqlite-storage.constants.d.ts +14 -0
- package/dist/store/sqlite-storage.constants.d.ts.map +1 -0
- package/dist/store/sqlite-storage.d.ts +22 -0
- package/dist/store/sqlite-storage.d.ts.map +1 -0
- package/dist/store/sqlite-storage.types.d.ts +24 -0
- package/dist/store/sqlite-storage.types.d.ts.map +1 -0
- package/dist/store/store-errors.d.ts +51 -0
- package/dist/store/store-errors.d.ts.map +1 -0
- package/dist/store/store.constants.d.ts +15 -3
- package/dist/store/store.constants.d.ts.map +1 -1
- package/dist/store/store.types.d.ts +280 -16
- package/dist/store/store.types.d.ts.map +1 -1
- package/dist/store/stored-record.d.ts +16 -0
- package/dist/store/stored-record.d.ts.map +1 -0
- package/dist/store/unfinished-imports.d.ts +15 -0
- package/dist/store/unfinished-imports.d.ts.map +1 -0
- package/dist/store/write-outcome.d.ts +34 -0
- package/dist/store/write-outcome.d.ts.map +1 -0
- package/dist/test/assert-valid-xml/assert-valid-xml.constants.d.ts +7 -0
- package/dist/test/assert-valid-xml/assert-valid-xml.constants.d.ts.map +1 -0
- package/dist/test/assert-valid-xml/assert-valid-xml.d.ts +19 -18
- package/dist/test/assert-valid-xml/assert-valid-xml.d.ts.map +1 -1
- package/dist/test/assert-valid-xml/assert-valid-xml.types.d.ts +8 -4
- package/dist/test/assert-valid-xml/assert-valid-xml.types.d.ts.map +1 -1
- package/dist/test/assert-xml/assert-xml.constants.d.ts +25 -0
- package/dist/test/assert-xml/assert-xml.constants.d.ts.map +1 -0
- package/dist/test/assert-xml/assert-xml.d.ts +23 -34
- package/dist/test/assert-xml/assert-xml.d.ts.map +1 -1
- package/dist/test/assert-xml/assert-xml.types.d.ts +48 -0
- package/dist/test/assert-xml/assert-xml.types.d.ts.map +1 -0
- package/dist/test/assert-xml/describe-nearby.d.ts +16 -0
- package/dist/test/assert-xml/describe-nearby.d.ts.map +1 -0
- package/dist/test/assert-xml/describe-node-place.d.ts +15 -0
- package/dist/test/assert-xml/describe-node-place.d.ts.map +1 -0
- package/dist/test/assert-xml/index.d.ts +1 -1
- package/dist/test/assert-xml/index.d.ts.map +1 -1
- package/dist/test/assert-xml/query-failure-message.d.ts +24 -0
- package/dist/test/assert-xml/query-failure-message.d.ts.map +1 -0
- package/dist/test/assert-xml/read-xpath-step.d.ts +8 -0
- package/dist/test/assert-xml/read-xpath-step.d.ts.map +1 -0
- package/dist/test/assert-xml/xpath-parser.d.ts +2 -1
- package/dist/test/assert-xml/xpath-parser.d.ts.map +1 -1
- package/dist/test/config.d.ts +5 -0
- package/dist/test/config.d.ts.map +1 -1
- package/dist/test/constant.d.ts +2 -0
- package/dist/test/constant.d.ts.map +1 -1
- package/dist/test/create-test-dialecte.d.ts +32 -37
- package/dist/test/create-test-dialecte.d.ts.map +1 -1
- package/dist/test/create-test-dialecte.types.d.ts +99 -0
- package/dist/test/create-test-dialecte.types.d.ts.map +1 -0
- package/dist/test/create-test-helpers-internal.types.d.ts +19 -0
- package/dist/test/create-test-helpers-internal.types.d.ts.map +1 -0
- package/dist/test/create-test-helpers.d.ts +13 -0
- package/dist/test/create-test-helpers.d.ts.map +1 -0
- package/dist/test/create-test-helpers.types.d.ts +50 -0
- package/dist/test/create-test-helpers.types.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-constraint.d.ts +3 -0
- package/dist/test/fixtures/test-entry-scan-constraint.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-edges.types.d.ts +10 -0
- package/dist/test/fixtures/test-entry-scan-edges.types.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-recursive.d.ts +4 -0
- package/dist/test/fixtures/test-entry-scan-recursive.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-recursive.types.d.ts +15 -0
- package/dist/test/fixtures/test-entry-scan-recursive.types.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-shapes.d.ts +14 -0
- package/dist/test/fixtures/test-entry-scan-shapes.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-shapes.types.d.ts +14 -0
- package/dist/test/fixtures/test-entry-scan-shapes.types.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan-tree.d.ts +3 -0
- package/dist/test/fixtures/test-entry-scan-tree.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan.d.ts +5 -0
- package/dist/test/fixtures/test-entry-scan.d.ts.map +1 -0
- package/dist/test/fixtures/test-entry-scan.types.d.ts +5 -0
- package/dist/test/fixtures/test-entry-scan.types.d.ts.map +1 -0
- package/dist/test/generated/definition.generated.d.ts +5 -0
- package/dist/test/generated/definition.generated.d.ts.map +1 -1
- package/dist/test/in-memory-storage.setup.d.ts +2 -0
- package/dist/test/in-memory-storage.setup.d.ts.map +1 -0
- package/dist/test/index.d.ts +6 -0
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/normalize-uuids.constants.d.ts +3 -0
- package/dist/test/normalize-uuids.constants.d.ts.map +1 -0
- package/dist/test/normalize-uuids.d.ts +12 -0
- package/dist/test/normalize-uuids.d.ts.map +1 -1
- package/dist/test/run-test-cases.d.ts +30 -11
- package/dist/test/run-test-cases.d.ts.map +1 -1
- package/dist/test/run-test-cases.type.d.ts +16 -0
- package/dist/test/run-test-cases.type.d.ts.map +1 -1
- package/dist/test/sqlite-storage.setup.d.ts +1 -0
- package/dist/test/sqlite-storage.setup.d.ts.map +1 -0
- package/dist/test/test-dialecte-setup.d.ts +31 -0
- package/dist/test/test-dialecte-setup.d.ts.map +1 -0
- package/dist/test/test-dialecte-setup.types.d.ts +29 -0
- package/dist/test/test-dialecte-setup.types.d.ts.map +1 -0
- package/dist/test/test-dialecte.d.ts +2722 -0
- package/dist/test/test-dialecte.d.ts.map +1 -0
- package/dist/test/test-dialecte.types.d.ts +3 -0
- package/dist/test/test-dialecte.types.d.ts.map +1 -0
- package/dist/test/test-dialecte.worker.d.ts +2 -0
- package/dist/test/test-dialecte.worker.d.ts.map +1 -0
- package/dist/test/test-entry-environment.constants.d.ts +27 -0
- package/dist/test/test-entry-environment.constants.d.ts.map +1 -0
- package/dist/test/test-record.d.ts +49 -1
- package/dist/test/test-record.d.ts.map +1 -1
- package/dist/test/test-storage/index.d.ts +5 -0
- package/dist/test/test-storage/index.d.ts.map +1 -0
- package/dist/test/test-storage/read-test-storage.d.ts +4 -0
- package/dist/test/test-storage/read-test-storage.d.ts.map +1 -0
- package/dist/test/test-storage/resolve-test-storage.d.ts +9 -0
- package/dist/test/test-storage/resolve-test-storage.d.ts.map +1 -0
- package/dist/test/test-storage/test-storage.constants.d.ts +9 -0
- package/dist/test/test-storage/test-storage.constants.d.ts.map +1 -0
- package/dist/test/test-storage/test-storage.types.d.ts +15 -0
- package/dist/test/test-storage/test-storage.types.d.ts.map +1 -0
- package/dist/test/test-storage/test-store-for.d.ts +19 -0
- package/dist/test/test-storage/test-store-for.d.ts.map +1 -0
- package/dist/test/test-storage/use-test-storage.d.ts +14 -0
- package/dist/test/test-storage/use-test-storage.d.ts.map +1 -0
- package/dist/test/test-timing.constants.d.ts +15 -0
- package/dist/test/test-timing.constants.d.ts.map +1 -0
- package/dist/test/xml/engine-console.d.ts +6 -0
- package/dist/test/xml/engine-console.d.ts.map +1 -0
- package/dist/test/xml/engine.d.ts +3 -0
- package/dist/test/xml/engine.d.ts.map +1 -0
- package/dist/test/xml/index.d.ts +8 -0
- package/dist/test/xml/index.d.ts.map +1 -0
- package/dist/test/xml/malformed-xml-error.d.ts +5 -0
- package/dist/test/xml/malformed-xml-error.d.ts.map +1 -0
- package/dist/test/xml/print-node.d.ts +7 -0
- package/dist/test/xml/print-node.d.ts.map +1 -0
- package/dist/test/xml/select-nodes.d.ts +14 -0
- package/dist/test/xml/select-nodes.d.ts.map +1 -0
- package/dist/test/xml/with-xml-document.constants.d.ts +7 -0
- package/dist/test/xml/with-xml-document.constants.d.ts.map +1 -0
- package/dist/test/xml/with-xml-document.d.ts +14 -0
- package/dist/test/xml/with-xml-document.d.ts.map +1 -0
- package/dist/test/xml/xml-query-refused-error.d.ts +13 -0
- package/dist/test/xml/xml-query-refused-error.d.ts.map +1 -0
- package/dist/test/xml/xml.constants.d.ts +16 -0
- package/dist/test/xml/xml.constants.d.ts.map +1 -0
- package/dist/test/xml/xml.types.d.ts +31 -0
- package/dist/test/xml/xml.types.d.ts.map +1 -0
- package/dist/test/xsd/test-ext.xsd +226 -0
- package/dist/test/xsd/test.xsd +528 -0
- package/dist/test.js +3427 -406
- package/dist/types/dialecte-config.d.ts +6 -0
- package/dist/types/dialecte-config.d.ts.map +1 -1
- package/dist/types/io.d.ts +5 -0
- package/dist/types/io.d.ts.map +1 -1
- package/dist/utils/attribute-rules.d.ts +16 -1
- package/dist/utils/attribute-rules.d.ts.map +1 -1
- package/dist/utils/child-occurrences.constants.d.ts +4 -0
- package/dist/utils/child-occurrences.constants.d.ts.map +1 -0
- package/dist/utils/child-occurrences.d.ts +17 -0
- package/dist/utils/child-occurrences.d.ts.map +1 -0
- package/dist/utils/child-occurrences.types.d.ts +6 -0
- package/dist/utils/child-occurrences.types.d.ts.map +1 -0
- package/dist/utils/datatype.d.ts +4 -0
- package/dist/utils/datatype.d.ts.map +1 -1
- package/dist/utils/format-xml.d.ts +4 -0
- package/dist/utils/format-xml.d.ts.map +1 -1
- package/dist/utils/index.d.ts +5 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/invariant.d.ts +2 -0
- package/dist/utils/invariant.d.ts.map +1 -1
- package/dist/utils/namespaces.d.ts +15 -1
- package/dist/utils/namespaces.d.ts.map +1 -1
- package/dist/utils/order-children.d.ts +14 -3
- package/dist/utils/order-children.d.ts.map +1 -1
- package/dist/utils/order-children.types.d.ts +10 -0
- package/dist/utils/order-children.types.d.ts.map +1 -0
- package/dist/utils/particle-occurrences.d.ts +4 -0
- package/dist/utils/particle-occurrences.d.ts.map +1 -0
- package/dist/utils/required-choices.d.ts +17 -0
- package/dist/utils/required-choices.d.ts.map +1 -0
- package/dist/utils/required-choices.types.d.ts +15 -0
- package/dist/utils/required-choices.types.d.ts.map +1 -0
- package/dist/utils/resolve-definition.d.ts +4 -0
- package/dist/utils/resolve-definition.d.ts.map +1 -1
- package/dist/utils/save-to-disk.constants.d.ts +3 -0
- package/dist/utils/save-to-disk.constants.d.ts.map +1 -0
- package/dist/utils/save-to-disk.d.ts +17 -5
- package/dist/utils/save-to-disk.d.ts.map +1 -1
- package/dist/utils/save-to-disk.types.d.ts +17 -0
- package/dist/utils/save-to-disk.types.d.ts.map +1 -0
- package/dist/utils/seeded-uuid.constants.d.ts +5 -0
- package/dist/utils/seeded-uuid.constants.d.ts.map +1 -0
- package/dist/utils/seeded-uuid.d.ts +15 -0
- package/dist/utils/seeded-uuid.d.ts.map +1 -0
- package/dist/utils/seeded-uuid.types.d.ts +8 -0
- package/dist/utils/seeded-uuid.types.d.ts.map +1 -0
- package/dist/utils/tell-listener.constants.d.ts +9 -0
- package/dist/utils/tell-listener.constants.d.ts.map +1 -0
- package/dist/utils/tell-listener.d.ts +24 -0
- package/dist/utils/tell-listener.d.ts.map +1 -0
- package/dist/utils/xml-characters.constants.d.ts +9 -0
- package/dist/utils/xml-characters.constants.d.ts.map +1 -0
- package/dist/utils/xml-characters.d.ts +8 -0
- package/dist/utils/xml-characters.d.ts.map +1 -0
- package/dist/utils/xml-whitespace.constants.d.ts +8 -0
- package/dist/utils/xml-whitespace.constants.d.ts.map +1 -0
- package/dist/utils/xml-whitespace.d.ts +19 -0
- package/dist/utils/xml-whitespace.d.ts.map +1 -0
- package/dist/utils/xsi-type.d.ts +4 -0
- package/dist/utils/xsi-type.d.ts.map +1 -1
- package/dist/utils/yield-to-queue.d.ts +6 -0
- package/dist/utils/yield-to-queue.d.ts.map +1 -0
- package/dist/utils-USNkj4sT.js +1275 -0
- package/dist/utils.js +1 -2
- package/dist/xml/build/document-root.d.ts +7 -0
- package/dist/xml/build/document-root.d.ts.map +1 -0
- package/dist/xml/build/index.d.ts +0 -5
- package/dist/xml/build/index.d.ts.map +1 -1
- package/dist/xml/build/record-element.d.ts +15 -0
- package/dist/xml/build/record-element.d.ts.map +1 -0
- package/dist/xml/build/record-element.types.d.ts +12 -0
- package/dist/xml/build/record-element.types.d.ts.map +1 -0
- package/dist/xml/build/write-xml-records.d.ts +7 -0
- package/dist/xml/build/write-xml-records.d.ts.map +1 -0
- package/dist/xml/build/write-xml-records.types.d.ts +11 -0
- package/dist/xml/build/write-xml-records.types.d.ts.map +1 -0
- package/dist/xml/build/xml-element.d.ts +79 -0
- package/dist/xml/build/xml-element.d.ts.map +1 -0
- package/dist/xml/build/xml-element.types.d.ts +34 -0
- package/dist/xml/build/xml-element.types.d.ts.map +1 -0
- package/dist/xml/build/xml-writer.constants.d.ts +24 -0
- package/dist/xml/build/xml-writer.constants.d.ts.map +1 -0
- package/dist/xml/build/xml-writer.d.ts +40 -0
- package/dist/xml/build/xml-writer.d.ts.map +1 -0
- package/dist/xml/build/xml-writer.types.d.ts +34 -0
- package/dist/xml/build/xml-writer.types.d.ts.map +1 -0
- package/dist/xml/dom/index.d.ts +3 -0
- package/dist/xml/dom/index.d.ts.map +1 -0
- package/dist/xml/dom/xml-document-from-file.d.ts +10 -0
- package/dist/xml/dom/xml-document-from-file.d.ts.map +1 -0
- package/dist/xml/dom/xml-document-from-file.types.d.ts +5 -0
- package/dist/xml/dom/xml-document-from-file.types.d.ts.map +1 -0
- package/dist/xml/index.d.ts +1 -0
- package/dist/xml/index.d.ts.map +1 -1
- package/dist/xml/inspect-xml.d.ts +2 -0
- package/dist/xml/inspect-xml.d.ts.map +1 -1
- package/dist/xml/parse/index.d.ts +1 -1
- package/dist/xml/parse/index.d.ts.map +1 -1
- package/dist/xml/parse/parse-xml-document.constants.d.ts +5 -0
- package/dist/xml/parse/parse-xml-document.constants.d.ts.map +1 -0
- package/dist/xml/parse/parse-xml-document.d.ts +13 -2
- package/dist/xml/parse/parse-xml-document.d.ts.map +1 -1
- package/dist/xml/parse/parse-xml-document.types.d.ts +7 -2
- package/dist/xml/parse/parse-xml-document.types.d.ts.map +1 -1
- package/dist/xml/parse/parser.constants.d.ts +7 -0
- package/dist/xml/parse/parser.constants.d.ts.map +1 -0
- package/dist/xml/parse/parser.d.ts.map +1 -1
- package/package.json +88 -10
- package/skills/dialecte/SKILL.md +345 -0
- package/skills/dialecte/references/api.json +1830 -0
- package/skills/dialecte/references/api.md +557 -0
- package/skills/dialecte/references/core-api.md +205 -0
- package/skills/dialecte/references/testing.md +116 -0
- package/skills/dialecte-contributing/SKILL.md +374 -0
- package/skills/dialecte-contributing/references/code-rules.md +115 -0
- package/skills/dialecte-contributing/references/landing-changes.md +87 -0
- package/skills/dialecte-contributing/references/lot-in-a-package.md +45 -0
- package/skills/dialecte-contributing/references/perf.md +40 -0
- package/skills/dialecte-contributing/references/traps.md +109 -0
- package/skills/dialecte-lot/SKILL.md +526 -0
- package/skills/dialecte-lot/references/briefs.md +161 -0
- package/skills/dialecte-lot/references/model-tiers.md +52 -0
- package/skills/dialecte-lot/references/retro.md +51 -0
- package/skills/dialecte-lot/references/standard-check.md +45 -0
- package/skills/dialecte-lot/references/stations.md +110 -0
- package/dist/project/io/import-document.d.ts +0 -7
- package/dist/project/io/import-document.d.ts.map +0 -1
- package/dist/test/assert-xml/types.d.ts +0 -2
- package/dist/test/assert-xml/types.d.ts.map +0 -1
- package/dist/utils-DJN0Md0v.js +0 -624
- package/dist/xml/build/build-xml-document.d.ts +0 -10
- package/dist/xml/build/build-xml-document.d.ts.map +0 -1
- package/dist/xml/build/build-xml-document.types.d.ts +0 -22
- package/dist/xml/build/build-xml-document.types.d.ts.map +0 -1
- package/dist/xml/build/download-file.d.ts +0 -7
- package/dist/xml/build/download-file.d.ts.map +0 -1
- package/dist/xml/build/formatter.d.ts +0 -2
- package/dist/xml/build/formatter.d.ts.map +0 -1
- package/dist/xml/build/serialize.d.ts +0 -11
- package/dist/xml/build/serialize.d.ts.map +0 -1
- package/dist/xml/build/serialize.types.d.ts +0 -12
- package/dist/xml/build/serialize.types.d.ts.map +0 -1
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dialecte-lot
|
|
3
|
+
description: Deliver one lot of Dialecte-scoped work as stations - test station red, test review, green, review rounds with a findings ledger, the gates, a hand-over a human runs - alone or with sub-agents, with the brief template, the report shapes and the loop cap. In a dialecte package (core, a dialecte, create, cli): whenever a change is bigger than a one-file fix, or the user asks for TDD with a review loop, a commit-by-lots hand-over or a retro. In an app built on a dialecte: whenever the task changes its Dialecte-scoped code - its local dialecte extension (a verb, a query, a hook), a service or composable that calls @dialecte/* APIs, an extension delivered for promotion - even when nobody asks for a lot, TDD or a review: run it yourself as a sub-loop over that part only, handing back to the app's process at the hand-over. Not for the rest of an app (UI, layout, styling, component renames, reviewing a UI change). Load dialecte with it, and in a dialecte package dialecte-contributing too.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: dialecte
|
|
7
|
+
version: '0.1.0'
|
|
8
|
+
audience: consumer
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<!-- dialecte-skills workspace -->
|
|
12
|
+
|
|
13
|
+
# Delivering a Dialecte lot
|
|
14
|
+
|
|
15
|
+
A lot is the smallest change that is worth landing on its own: build-safe, tested, documented, reviewed.
|
|
16
|
+
This skill runs it as **stations**. Each station has one job, reads only what the brief hands it, and
|
|
17
|
+
leaves an artifact behind. One agent can play every station in turn; an orchestrator can hand them to
|
|
18
|
+
sub-agents. Either way the stations, the order and the report shapes are the same, so a retro can
|
|
19
|
+
compare runs.
|
|
20
|
+
|
|
21
|
+
**Memory is the artifacts, not the chat.** The plan file, the station reports, the diff and the retro log
|
|
22
|
+
are what the next station reads. A decision that is not in one of them was not a decision.
|
|
23
|
+
|
|
24
|
+
**In a dialecte package** (`"dialecte": { "profile": "contributor" }` in its `package.json`), load
|
|
25
|
+
`dialecte-contributing` too: its `references/lot-in-a-package.md` adds the package's own steps to these stations -
|
|
26
|
+
the mutation switch, `dialecte rules`, `dialecte contrib` before the hand-over, the landing rules and merge lots.
|
|
27
|
+
**In an app**, none of them. There a lot is a sub-loop the app's agent runs by itself for the Dialecte-scoped
|
|
28
|
+
part of a task only - the local dialecte extension, the services and composables that call `@dialecte/*` APIs, an
|
|
29
|
+
extension meant for promotion: the same stations, ending at the hand-over (Station 6), then back to the app's own
|
|
30
|
+
pipeline, which carries on with its own steps and its pull request. The rest of the app's change (its UI, layout,
|
|
31
|
+
styling) stays under the app's process and never enters the lot. An extension meant for promotion is delivered to
|
|
32
|
+
the package's bar (node-tier tests, the JSDoc of every public function, its docs), so that promoting it moves the
|
|
33
|
+
folder and rewrites nothing.
|
|
34
|
+
|
|
35
|
+
## The stations
|
|
36
|
+
|
|
37
|
+
| # | Station | Who | Tier | Reads | Leaves |
|
|
38
|
+
| --- | ----------- | --------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| 0 | Orchestrate | orchestrator | strong | the plan, the user's decisions | one brief per implementer (template in [references/briefs.md](references/briefs.md)) |
|
|
40
|
+
| 1a | Test | test station (own agent) | standard | its brief step, the existing code | tests + stubs, proven red by `dialecte tdd red` (its receipts) |
|
|
41
|
+
| 1b | Test review | **a different agent** | strong | the tests of the step, the brief | a verdict on the tests, before any code |
|
|
42
|
+
| 1c | Implement | implementer (another agent) | standard or strong, by lot kind | its brief, the tests, the code it changes | production code until `dialecte tdd green`; an implement report |
|
|
43
|
+
| 2 | Fast gate | implementer | no agent | - | `dialecte gate --fast`: type-check, lint, format, touched tests, skills check |
|
|
44
|
+
| 3 | Review | **a different agent** | strong, both passes | the brief, the diff, the previous version (`git show <base>:<file>`), the rules, the findings ledger | a review report: pass 1 correctness, pass 2 fit, verdict; proposed findings-ledger rows |
|
|
45
|
+
| 4 | Fix | the implementer, fix mode | standard for wording or naming, else the implementer's tier | the findings | each finding fixed, disagreed (one line why) or escalated |
|
|
46
|
+
| 5 | Full gate | implementer | no agent | - | `dialecte gate --full`: the package's full Definition of Done, once per lot |
|
|
47
|
+
| 6 | Hand over | implementer or orchestrator | no agent | the lot's files | `dialecte handover`: a hand-over folder and its card; a human runs it; nothing committed, nothing pushed |
|
|
48
|
+
| 7 | Retro | orchestrator | strong | reports, loops, the user's corrections | retro entries; skill edits drafted, applied on approval |
|
|
49
|
+
|
|
50
|
+
**After the hand-over, the pull request is the repository's own.** In a dialecte repository Station 7
|
|
51
|
+
follows the hand-over, and the branch goes up by pull request through that repository's landing rules
|
|
52
|
+
(`dialecte-contributing`). In an app that consumes a dialecte, the lot ends at
|
|
53
|
+
Station 6: what comes after belongs to the app's own process - its PR skill and template for the pull
|
|
54
|
+
request, its own retro and clean-up if it has them - and no further station of this skill runs (no Station 7,
|
|
55
|
+
no `dialecte worktree prune`, no dialecte PR or release step). The hand-over's records (`dialecte recap`
|
|
56
|
+
prints a PR's details part from them) feed the app's template only where its rules ask for it. Pushing and
|
|
57
|
+
posting stay the user's (or wait for their approval).
|
|
58
|
+
|
|
59
|
+
The Tier column names the kind of model a station runs on, never a model: the tiers, the rules that go with
|
|
60
|
+
them (escalate one tier after a failed round, never down-tier a correctness review, effort as a second knob)
|
|
61
|
+
and how to learn which model a tier is (`npx @dialecte/cli models`) are in
|
|
62
|
+
[references/model-tiers.md](references/model-tiers.md).
|
|
63
|
+
|
|
64
|
+
Stations 3-4 loop on the same lot. **The cap is set by the lot's risk class**, declared in the findings ledger
|
|
65
|
+
before round 1 (round 1 full, the later rounds delta: Station 3). A round beyond the cap is the user's call, never
|
|
66
|
+
the orchestrator's: a finding the last round acts on is fixed, then the fix and the open rows go to the user, who
|
|
67
|
+
decides whether one more round checks it. Findings that keep coming past the cap mean the plan or the brief is
|
|
68
|
+
wrong.
|
|
69
|
+
|
|
70
|
+
## Station 0 - what the plan and the brief settle
|
|
71
|
+
|
|
72
|
+
Before the test station, the plan holds what the tests will pin; a gap found by a reviewer costs a round.
|
|
73
|
+
|
|
74
|
+
- **The standard** (a lot whose rules come from a standard the code implements):
|
|
75
|
+
[references/standard-check.md](references/standard-check.md) - how it is read, the cross-check for a
|
|
76
|
+
decision, and what the station records for the hand-over card (`dialecte record standard`).
|
|
77
|
+
- **A tooling lot with shared state or an external tool**: the plan carries the store's transition table, its
|
|
78
|
+
invariant and the interleavings, the test-station brief asks one forced-order test per interleaving, and the
|
|
79
|
+
hand-over folder gets a `SMOKE.md` with the lot's one real run; how and where that run happens, and citing
|
|
80
|
+
third-party values: in a dialecte package, `dialecte-contributing` references/traps.md, Tools with shared state.
|
|
81
|
+
|
|
82
|
+
## Station 1 - test, test review, implement (per brief step)
|
|
83
|
+
|
|
84
|
+
The order matters, not only the outcome: a test written after the code can be shaped to please it. So each
|
|
85
|
+
step of the brief (3-6 behaviours) goes through three agents, and the cli keeps the receipts:
|
|
86
|
+
|
|
87
|
+
1. **Test station** (own agent, `standard`; station `test-writer`). Reads the brief step and
|
|
88
|
+
the existing code only. Writes the step's tests from the spec and, where the code does not exist yet,
|
|
89
|
+
stubs with their real types whose body throws `new Error('not implemented: <name>')`; each test calls
|
|
90
|
+
the code under test inside an `expect(...)` that a matcher completes (`expect(x).toBe(...)`; a bare
|
|
91
|
+
`expect(x)` asserts nothing). It removes every focus marker (`.only`, a table case's `only: true`)
|
|
92
|
+
before the red: `tdd red` refuses a file that holds one. Then `npx dialecte tdd red`: it runs every
|
|
93
|
+
case of the changed test files; each new or changed case must fail on an assertion, on the stub's error
|
|
94
|
+
inside `expect(...)`, or on an error existing code throws there (a bug the test pins). A snapshot test
|
|
95
|
+
gets its snapshot written by the test station before the red (runs never write one). A case that
|
|
96
|
+
passes ("it ran green: this test proves nothing yet"), or fails on a missing export, a type or syntax
|
|
97
|
+
error, a timeout, or a stub thrown at import or before the assertion, is refused with its kind; a
|
|
98
|
+
refusal records no red of its file: fix the test, never the code. A red freezes each test file without
|
|
99
|
+
a refusal; a changed helper, fixture or snapshot is frozen only by a red of a file that depends on it
|
|
100
|
+
(imports it - relative, tsconfig `paths` or vite alias, through barrels - names it, or owns the snapshot;
|
|
101
|
+
an import that looks local and resolves nowhere refuses the file). Its report is the `tdd red` output.
|
|
102
|
+
2. **Test review** (a different agent, `strong`, read-only; station `test-reviewer`). Reads only the tests
|
|
103
|
+
against the spec, before any code - the changed helpers, fixtures and snapshots too: does each pin a
|
|
104
|
+
behaviour of the brief, would a plausible wrong implementation fail it, does every `expect(...)` have a
|
|
105
|
+
matcher, is a behaviour of the step left without a test. Verdict: approve, or back to the test station
|
|
106
|
+
with the findings (which runs `tdd red` again).
|
|
107
|
+
3. **Implement station** (another agent: station `implementer`, or `implementer-strong` by lot kind). Changes
|
|
108
|
+
production code only, until `npx dialecte tdd green` passes: every case of the step with its red
|
|
109
|
+
receipt, its test code as the last red run froze it, production changed since its red, and green. A
|
|
110
|
+
test it finds wrong goes **back to the test station with the reason** (through the orchestrator): it
|
|
111
|
+
never weakens, skips or deletes a test, and never runs `tdd red` itself. When it did edit a test (or a
|
|
112
|
+
helper, a fixture, a snapshot) and `tdd green` refuses it, it **undoes its own edit by hand first** -
|
|
113
|
+
puts back the text the test station wrote, no git command - then hands the case back with the reason.
|
|
114
|
+
|
|
115
|
+
What the cli guarantees, and what it only makes visible: `tdd green` and the gate refuse test code
|
|
116
|
+
changed since the red run that froze it, a case whose own test call changed since its receipt, a green
|
|
117
|
+
with nothing changed in production, and new or changed test code never proven red. A re-red does not
|
|
118
|
+
launder an edit: a passing case still waiting for its green whose test file or imported test code changed
|
|
119
|
+
is refused ("test code changed since its red and it passes"); a green case kept at such a run is flagged
|
|
120
|
+
`test code changed around it` (the honest next step, a case added to a green file, shows it too). The
|
|
121
|
+
receipts live in the worktree's git folder: an agent with a shell can still write them by hand, so they are
|
|
122
|
+
evidence, not a lock. What looks like cheating is shown, not hidden: every refusal is kept in the ledger,
|
|
123
|
+
a red at a production state the case had already left is flagged `rollback`, a green case made red again
|
|
124
|
+
at the same production `red after green`; `tdd status`, the gate and the hand-over card print the flags.
|
|
125
|
+
What it cannot see: a deliberate throw in production looks like a stub; code written first, hidden, then a
|
|
126
|
+
red taken at the base state cannot be told from an honest red (at the first step the red's production is
|
|
127
|
+
the base's). The review reads the diff for those.
|
|
128
|
+
|
|
129
|
+
Then the next step. `npx dialecte tdd status` shows each case: red, green, unchanged, missing receipt,
|
|
130
|
+
test edited after red; the test code changed since its freeze; the cases the change deletes. `gate
|
|
131
|
+
--fast` and `--full` check the receipts in their `tdd` step: every test-code file of the change as frozen,
|
|
132
|
+
every new or changed case red then green (or unchanged), the flags and deleted cases listed.
|
|
133
|
+
|
|
134
|
+
**Exempt lots.** A lot that changes no behaviour - a wording, a rename, a doc-only or a CHANGELOG-only
|
|
135
|
+
lot - has no red to prove. The orchestrator declares it in the brief and writes
|
|
136
|
+
`{ "tdd": "exempt: <reason>" }` to `.dialecte/lot.json` at the package root of the worktree; the gate's
|
|
137
|
+
`tdd` step passes with the reason and what the change touches ("exempt: <reason> (n production files, m
|
|
138
|
+
test files changed)"), the hand-over card shows the same. The file is never committed (the hygiene and the
|
|
139
|
+
hand-over leave it out). A lot that changes behaviour is never exempt, however small. A single case may be
|
|
140
|
+
accepted without a red instead - a new test of behaviour that already exists, an honest cut of an
|
|
141
|
+
assertion, a fix's new test whose red was taken on the previous round's snapshot (Station 4; the reason quotes
|
|
142
|
+
that red): `"accept": [{ "case": "<file>::<name> [project]", "reason": "..." }]` in the same file
|
|
143
|
+
(`dialecte lot accept <case> <reason>` writes it from cli 0.2.0). It
|
|
144
|
+
passes `tdd red` as accepted, does not block its file, and the gate and the card list it with its
|
|
145
|
+
reason.
|
|
146
|
+
|
|
147
|
+
One agent playing every station (no sub-agents) keeps the same order and the same commands.
|
|
148
|
+
|
|
149
|
+
Before touching code (the implement station; the test station does the same before its tests):
|
|
150
|
+
|
|
151
|
+
1. Read the brief. Check it against the code as it is now: a brief written before an earlier lot landed
|
|
152
|
+
can assume things that changed. A contradiction stops you: say it, do not reinterpret the plan.
|
|
153
|
+
2. `git status -sb` in your worktree: right branch, clean (or dirty only with your own earlier work).
|
|
154
|
+
Note the HEAD sha for your report.
|
|
155
|
+
3. Load `dialecte` (and `dialecte-contributing` in a dialecte package); run the reuse ladder before writing anything.
|
|
156
|
+
|
|
157
|
+
Then, within the step:
|
|
158
|
+
|
|
159
|
+
- **Red** is the test station's `tdd red` output: each case failed for the right reason - an assertion,
|
|
160
|
+
not a missing module (the stub carries the real type). Its lines are the report's `Red seen`.
|
|
161
|
+
- **Green**: the minimum production code, one case after the other, until `tdd green` holds them all.
|
|
162
|
+
- A case that passes before any code is refused at `tdd red`: it proves nothing yet. Never show a red by
|
|
163
|
+
breaking the code afterwards: the test goes back to the test station.
|
|
164
|
+
- Only the lot's scope. A refactor outside it is a new lot, said out loud.
|
|
165
|
+
|
|
166
|
+
A **skill text change** is code too: when the lot changes what a skill tells agents to do (a new command to
|
|
167
|
+
run, a rule), load the skill-creator skill (`anthropic-skills:skill-creator`) and follow it; a host without it
|
|
168
|
+
runs the same loop by hand, as below. A skill change judged
|
|
169
|
+
by hand, or by the agent that wrote it, looks green on one run and its own reading; skill-creator's loop is
|
|
170
|
+
what shows the change moves behaviour. As it applies here: the eval case under the skill's `evals/` first
|
|
171
|
+
(it describes the behaviour the new text must produce; the text before the change fails it); runs with the
|
|
172
|
+
changed text and with the text before it (`git show <base>:skills/...` into the eval workspace), on the
|
|
173
|
+
standard and the strong tier, several runs per configuration, every run with the same tools; grading by a
|
|
174
|
+
separate agent that is not told which text produced a run; skill-creator's benchmark and viewer handed on
|
|
175
|
+
with the report. Then `skills:generate` and `skills:check`.
|
|
176
|
+
|
|
177
|
+
Report (exactly this shape):
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
Lot <id> done - <what it does, one line>
|
|
181
|
+
Base: <branch> @ <sha>
|
|
182
|
+
Files: <list>
|
|
183
|
+
Tests: <n> passing of <m> table cases - command: <the exact command, unfiltered>
|
|
184
|
+
Red seen: <the `tdd red` line of each case: case, kind, failing message> (one line per behaviour)
|
|
185
|
+
Gates: <the lines `dialecte gate` printed, with their counts>
|
|
186
|
+
Skill evals: <case: pass rate with / before, runs per configuration; benchmark and viewer paths> | n/a
|
|
187
|
+
Deviations from the brief: <none | what and why>
|
|
188
|
+
Open questions: <none | ...>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Station 2 - fast gate (the counts decide, not the summary)
|
|
192
|
+
|
|
193
|
+
Run `npx dialecte gate --fast --declare <new path>` from the package root; in a dialecte package, run
|
|
194
|
+
`npx dialecte rules` with it and fix its errors before the review (`dialecte-contributing`
|
|
195
|
+
references/lot-in-a-package.md, Station 2). The gate
|
|
196
|
+
starts with the worktree's hygiene (nothing staged, the stash as it was when the worktree was made, every new
|
|
197
|
+
file declared: one `--declare` per new file or folder of the lot), then runs each step unfiltered and prints
|
|
198
|
+
one line per step with the counts the step itself printed; paste those lines in the report. The bullets below are what the gate checks for
|
|
199
|
+
you, and what you check by hand with a cli older than 0.2.0:
|
|
200
|
+
|
|
201
|
+
- Run every command that decides a gate **unfiltered**: an output-compacting shell wrapper can print a green
|
|
202
|
+
summary for a run that tested nothing. Read the real summary line.
|
|
203
|
+
- **Zero tests, or no count, is a failed gate.** The passing count must reach the number of table cases you
|
|
204
|
+
wrote; fewer means some never ran (a collect or type error in the test file).
|
|
205
|
+
- The type-check must cover the tests (the package's `check`, or its test tsconfig): a solution
|
|
206
|
+
`tsconfig.json` checks nothing.
|
|
207
|
+
- A red run that does not fail is not red: fix the case before writing code.
|
|
208
|
+
|
|
209
|
+
The orchestrator checks the report shape before spawning the review: a report without `Red seen` lines or
|
|
210
|
+
with `Tests` not counted against the cases goes back to the implementer, not to the reviewer. The gate's
|
|
211
|
+
`tdd` step (after the hygiene) fails on a new or changed case without a red receipt and a later green one,
|
|
212
|
+
listing them: the missing receipts go back to the test station (no red) or the implementer (no green).
|
|
213
|
+
|
|
214
|
+
## Station 3 - review (independent)
|
|
215
|
+
|
|
216
|
+
The reviewer did not write the code and does not take the implementer's report as truth. Read-only.
|
|
217
|
+
Inputs: the brief (the spec), the diff of the lot's files, the previous version of each file, the rules
|
|
218
|
+
(the repository's code rules and Definition of Done - `dialecte-contributing` in a dialecte package -,
|
|
219
|
+
`dialecte` reuse ladder).
|
|
220
|
+
|
|
221
|
+
**Pass 1 - correctness** (always first): logic, edge cases, async and error handling, a behaviour changed
|
|
222
|
+
without a test, a test that passes for the wrong reason (weak assertion, a matcher that ignores what the
|
|
223
|
+
spec cares about, an XPath matching another element), types that the next lot cannot use without casts,
|
|
224
|
+
a contradiction with the brief or the plan. An exempt lot: does its reason match the diff (a "wording"
|
|
225
|
+
lot that changes an expected value or a production branch is not exempt)? Each accepted case: does its
|
|
226
|
+
reason match the diff (the behaviour really exists at the base, the cut really removes a wrong assertion, a red
|
|
227
|
+
on `round-<n>/` is the one the fix report holds, with its failing line)?
|
|
228
|
+
Each flag the gate prints: why it happened.
|
|
229
|
+
|
|
230
|
+
**Pass 2 - fit**: does it do what the brief said, no more; did it hand-roll something the API, a hook or
|
|
231
|
+
a helper already provides (name the existing method); the code rules (named functions, object
|
|
232
|
+
parameters, `*.types.ts` / `*.constants.ts`, no nested `await`, full names, no `any`); docs, CHANGELOG
|
|
233
|
+
and skills updated in the same lot; generated files untouched; a hand-written commit or merge script in the
|
|
234
|
+
hand-over is a finding (hand-overs go through `dialecte handover`, which writes the folder and its card), not a
|
|
235
|
+
script to review line by line. Three findings that matter beat ten that do not.
|
|
236
|
+
|
|
237
|
+
### Rounds
|
|
238
|
+
|
|
239
|
+
Each round is a **fresh agent** (unanchored by the previous verdict) and each finding carries a severity:
|
|
240
|
+
**blocking**, **should fix** or **nit**.
|
|
241
|
+
|
|
242
|
+
**Risk class.** How many rounds a lot gets, and what the last one still acts on, follow what a wrong change would
|
|
243
|
+
break:
|
|
244
|
+
|
|
245
|
+
| Risk class | The lot changes | Rounds | Last round acts on |
|
|
246
|
+
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------ | --------------------- |
|
|
247
|
+
| shipped runtime or public API | code a consumer runs or imports from a package's public exports other than its test entry, its command line, or their docs | 3 | blocking + should fix |
|
|
248
|
+
| test API or internal code | a test entry other packages' suites import (`@dialecte/core/test`), skill text and its evals, or modules no consumer reaches | 2 | blocking + should fix |
|
|
249
|
+
| guards and tooling | a guard (a source-scan test, a code rule), scripts, configs, the repository's own tooling | 2 | blocking only |
|
|
250
|
+
|
|
251
|
+
A lot that touches several classes takes the first row of the table it touches; a doubt between two rows takes the
|
|
252
|
+
upper one. The orchestrator declares the class, with the files that set it, at the top of the findings ledger
|
|
253
|
+
before round 1, and every reviewer brief names the round as `round <n> of <rounds>`. A finding keeps its severity
|
|
254
|
+
whatever the round: a fix found wrong, or a row a later fix reopened, carries the severity of the row it breaks,
|
|
255
|
+
and the last round acts on it even below its floor (a broken fix is never logged and left in the lot).
|
|
256
|
+
|
|
257
|
+
**Before round 1** the orchestrator creates the lot's hand-over folder, `_commit-plan/<topic>-<yyyy-mm-dd>/`
|
|
258
|
+
(outside every repository; `lots.json` lands there at Station 6), with a `findings-ledger.md` holding only the risk
|
|
259
|
+
class. **When it spawns round n** it snapshots the tree that round reviews into `round-<n>/` in the same folder: a
|
|
260
|
+
copy of every file `git status --porcelain -z --untracked-files=all` lists at the worktree root as changed or
|
|
261
|
+
untracked, at its path relative to the repository root, and beside it `round-<n>.deleted`, NUL-separated, naming
|
|
262
|
+
each deleted file and the old path of each rename (beside the copy, never in it: it is no file of the lot). A copy,
|
|
263
|
+
not a patch: nothing to apply, binary files included. The lot stays uncommitted until the hand-over, so HEAD is the
|
|
264
|
+
base for the whole loop: these snapshots are the only refs the later rounds have. From cli 0.2.0,
|
|
265
|
+
`dialecte record snapshot <folder> --round <n>` takes it (and `dialecte review delta` reads it); the text here is
|
|
266
|
+
the manual fallback for an older cli.
|
|
267
|
+
|
|
268
|
+
- **Round 1 - full review**, blind to the implementer's conclusions, every severity. The checklist, each angle
|
|
269
|
+
answered even when empty: correctness; test soundness (each test fails for the right reason); **the
|
|
270
|
+
consumer's view** - build the package and read what a consumer receives: the built `dist`, the emitted
|
|
271
|
+
`.d.ts`, the docs (a fix that worked from sources was a no-op for every consumer once the bundler copied the
|
|
272
|
+
dependency into `dist`; only the reviewer who built the package saw it); the code rules; docs and
|
|
273
|
+
CHANGELOG against the code.
|
|
274
|
+
- **Later rounds - delta review**, given the findings ledger. A round before the last reports blocking and should
|
|
275
|
+
fix, nits optional: the orchestrator fixes such a nit in the lot or logs it as a follow-up, and records which in
|
|
276
|
+
the findings ledger. The last round reports what its class acts on; anything below is logged as a follow-up, not
|
|
277
|
+
fixed in the lot. A finding the last round acts on is fixed; the round that would verify the fix goes to the user
|
|
278
|
+
(above). The floor rises so the rounds converge. The review has three parts:
|
|
279
|
+
- (a) **Each fix verified on the old code.** From cli 0.2.0,
|
|
280
|
+
`dialecte review delta <folder> --round <n> --worktree` makes the throwaway worktree holding `round-<n-1>/`
|
|
281
|
+
(the fixer's, when it made one: Station 4, reused, never a second); with an older cli, the orchestrator makes one by hand on its own branch
|
|
282
|
+
(never the lot's), copies the snapshot over it, removes its deleted files - the one place a `git rm` is
|
|
283
|
+
allowed, never in the lot's worktree - and passes the path (`worktree prune` lists it after the lot):
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
npx dialecte worktree add <repository> <lot-branch>-round-<n-1> --from <base>
|
|
287
|
+
cp -R <folder>/round-<n-1>/. <throwaway>/
|
|
288
|
+
git -C <throwaway> rm -q --pathspec-from-file=<folder>/round-<n-1>.deleted --pathspec-file-nul
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
The reviewer copies the fix's new test file in and runs it: it must fail there and pass in the lot's
|
|
292
|
+
worktree. Without a throwaway worktree the reviewer reads the snapshot and says the guard was **reasoned,
|
|
293
|
+
not run**; the ledger keeps that word (`fixed <n> (reasoned)`), never a plain `fixed <n>` for a guard
|
|
294
|
+
nobody ran.
|
|
295
|
+
|
|
296
|
+
- (b) **Only the fix diff and its blast radius**, starting from the fixer's blast-radius line of each fix
|
|
297
|
+
(Station 4, copied into the ledger): does the fix widen, exclude or replace more than its finding needed, and
|
|
298
|
+
does it reopen a row it did not name (a fixed exclusion that is now too wide, an earlier fix it replaced)?
|
|
299
|
+
Then the diff, per file of either snapshot or of the lot now, read-only. `--no-index` exits 1 on
|
|
300
|
+
differences and on a missing side alike, so pick the form by where the file is:
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
# in round-<n-1>/ and in the worktree
|
|
304
|
+
git diff --no-index --no-color --no-ext-diff <folder>/round-<n-1>/<file> <worktree>/<file>
|
|
305
|
+
# not in round-<n-1>/ and not in round-<n-1>.deleted: it was at the base then
|
|
306
|
+
git -C <worktree> diff --no-color --no-ext-diff HEAD -- <file>
|
|
307
|
+
# new since round n-1 and absent from the base, or listed in round-<n-1>.deleted
|
|
308
|
+
git diff --no-index --no-color --no-ext-diff /dev/null <worktree>/<file>
|
|
309
|
+
# in round-<n-1>/, gone from the worktree
|
|
310
|
+
git diff --no-index --no-color --no-ext-diff <folder>/round-<n-1>/<file> /dev/null
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
- (c) **One line naming what round 1 did not look at.**
|
|
314
|
+
|
|
315
|
+
**The findings ledger** (`findings-ledger.md` in the hand-over folder) is the lot's memory across rounds. Only the
|
|
316
|
+
orchestrator writes it, by hand or, from cli 0.2.0, with `dialecte record review` (a new row, `open`) and
|
|
317
|
+
`dialecte record decision` (the states `open`, `fix to verify`, `fixed <n> [note]`, `accepted`, `logged`). The
|
|
318
|
+
cli writes neither the risk-class line nor `reopened`, and its `fix to verify` carries no blast radius: write
|
|
319
|
+
those by hand, or keep the blast-radius lines in a fixes file beside the ledger. Reviewers propose rows. It
|
|
320
|
+
opens with the risk class (`Risk class: <class> - <rounds> rounds, last round acts on <floor>, a further round
|
|
321
|
+
only with the user - set by <files>`). One row per finding: id, round
|
|
322
|
+
raised, severity, file:line, state - `open`, `fix to verify - <blast radius>` (the fixer says fixed; its
|
|
323
|
+
blast-radius line comes with it), `fixed <n>` (n = the round that verified the fix; `fixed <n> (reasoned)` when the
|
|
324
|
+
guard was not run), `reopened <n> by <id>` (a later fix broke it again), `accepted <reason>`, `logged <follow-up>`.
|
|
325
|
+
Every reviewer reads it; a finding fixed or accepted is not raised again unless the fix is wrong. Outside every
|
|
326
|
+
repository, it is never committed nor caught by the hygiene.
|
|
327
|
+
Once the lots are committed, `worktree prune` lists the folder (it holds `lots.json` and `commit.sh` by then),
|
|
328
|
+
findings ledger and snapshots with it - the retro reads them first. An abandoned lot's folder has no `lots.json`,
|
|
329
|
+
so neither `prune` nor `handover list` sees it: keep it for the retro, or hand the user its removal command with
|
|
330
|
+
its absolute `cd`.
|
|
331
|
+
|
|
332
|
+
Report:
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
## Review - lot <id> (round <n> of <rounds>, <risk class>)
|
|
336
|
+
Scope: full | delta against round-<n-1>/ Not looked at by round 1: <one line> (later rounds)
|
|
337
|
+
**Pass 1 (correctness)**
|
|
338
|
+
- <id> <severity> <file:line> - <what is wrong> - <why it matters> | nothing
|
|
339
|
+
- <id> blast radius: <what the fix widens, excludes, replaces> - holds | <new id> (later rounds)
|
|
340
|
+
- <id> fix verified: <the guard> fails on round-<n-1>/, passes now (run | reasoned) | <what is wrong with the fix> (later rounds)
|
|
341
|
+
**Pass 2 (fit)**
|
|
342
|
+
- <id> <severity> <file:line> - <finding>
|
|
343
|
+
**Proposed findings-ledger rows**: the new ids above; <id> -> fixed <n> | fixed <n> (reasoned) | fix wrong | reopened <n> by <id>
|
|
344
|
+
**Verdict**: approve | fix-then-repass (a finding at or above this round's floor open) | to the user (the last round, a finding it acts on open)
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## Station 4 - fix mode
|
|
348
|
+
|
|
349
|
+
For each finding: **agree** (fix it, with a test when behaviour changed), **disagree** (one line why, do
|
|
350
|
+
not fix), or **needs the user** (it reopens a decision). Report per finding: fixed / disagreed / escalated.
|
|
351
|
+
You never drop a finding on your own: disagreements go back to the orchestrator, who sets each state in the
|
|
352
|
+
findings ledger (`fix to verify - <blast radius>`, `accepted <reason>`, `logged <follow-up>`, `reopened <n> by
|
|
353
|
+
<id>`) before the next round.
|
|
354
|
+
|
|
355
|
+
**Every fix reports its blast radius**, one line under its finding: what the fix widens (a pattern, a list, an
|
|
356
|
+
include, a type that now matches more), excludes (what it now skips or no longer accepts) or replaces (the earlier
|
|
357
|
+
code or fix it takes the place of), and which findings-ledger rows it touches - its own, and any other row whose
|
|
358
|
+
code it changes, an earlier fix above all. A fix that touches nothing else says so: `blast radius: none beyond
|
|
359
|
+
<id>`. The orchestrator copies the line into the ledger row (`fix to verify - <blast radius>`); the next round's
|
|
360
|
+
reviewer starts there. A fix's own new finding is the usual way a round fails to converge: a too-wide exclusion
|
|
361
|
+
that fixes one finding and hides another, a fix that undoes an earlier one.
|
|
362
|
+
|
|
363
|
+
**The red of a fix's new test comes from the tree the round reviewed, never from production put back.** Write the
|
|
364
|
+
test before the fix and take its red with `npx dialecte tdd red` while the code it pins is still the reviewed one.
|
|
365
|
+
When production already holds the fix, run the new test where the old code still lives: `npx dialecte review delta
|
|
366
|
+
<folder> --round <n+1> --worktree` (n = the round whose findings you fix; cli 0.2.0, else the orchestrator's
|
|
367
|
+
hand-made throwaway of Station 3 (a)) makes a throwaway worktree holding `round-<n>/` and prints its removal
|
|
368
|
+
command; copy the new test file in, with the test code it imports that the round changed, run it there - it must
|
|
369
|
+
fail on its assertion - and in the lot's worktree, where it passes. The report says the red was taken on
|
|
370
|
+
`round-<n>/`, with the failing line, so the orchestrator records the case as accepted with that reason (Station 1),
|
|
371
|
+
never as a test-first red. The throwaway's path and removal command go to the orchestrator: it is round n+1's
|
|
372
|
+
throwaway too (same branch), passed to that reviewer, removed after it. Never edit production code back to the old
|
|
373
|
+
behaviour, not even for one run: that red proves the test can fail, not that it came first, and `tdd` cannot tell
|
|
374
|
+
it from a test-first red (it flags `red after green` only when the case already had a green there).
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
<id> fixed | disagreed: <why> | needs the user: <the decision>
|
|
378
|
+
blast radius: widens <...> | excludes <...> | replaces <...> | none beyond <id>; ledger rows: <id>, <id> (fixed only)
|
|
379
|
+
red: tdd red before the fix | on round-<n>/ (throwaway <path>): <failing line> (fixed with a new test only)
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
## Station 6 - hand over
|
|
383
|
+
|
|
384
|
+
Write only the lots file and run `npx dialecte handover
|
|
385
|
+
<lots.json>`: it writes the hand-over folder and prints its card. Never a hand-written script, nor a file per
|
|
386
|
+
commit. When the repository has a commit hook (`core.hooksPath`), rehearse first with `npx dialecte handover
|
|
387
|
+
run <folder> --rehearse`: a scratch clone holding your tree, the hooks folder and `node_modules`, so the hook
|
|
388
|
+
runs as it will for the user. Rehearse a heavy hook while another suite loads the machine, or at least note
|
|
389
|
+
the load at rehearsal time (`uptime`) after the card: a quiet rehearsal hides a time bound that fails under load.
|
|
390
|
+
|
|
391
|
+
**A check's result belongs to the tree it ran on.** From cli 0.2.0 every gate and hook result is recorded with
|
|
392
|
+
what it checked - the tree, the installed lock, the linked `file:` dependencies and the command - and a run with
|
|
393
|
+
the same key answers from that record instead of running again. A suite run on a tree that already passed it finds
|
|
394
|
+
nothing new; the repeats are what costs: a lot that merged once ran the same suite four times (lot rehearsal, lot
|
|
395
|
+
commit, merge rehearsal, merge commit). So:
|
|
396
|
+
|
|
397
|
+
- A second `gate` of the same mode on an unchanged tree runs its hygiene and `tdd` step (they read the worktree,
|
|
398
|
+
not the tree), then answers the rest from its record (`reused: gate --full green on this tree ...`). Run it when
|
|
399
|
+
you want its lines; never `--no-reuse` "to be safe": an edit, a lock, a linked dependency already make a new key.
|
|
400
|
+
`--no-reuse` is for when the person asks, or when something outside the key changed (a machine fault you suspect).
|
|
401
|
+
- `handover run --rehearse` decides per lot and prints why (in a dialecte package, its rules are in
|
|
402
|
+
`dialecte-contributing` references/landing-changes.md). Paste those lines with the card; never add `--full` to force a rehearsal the cli
|
|
403
|
+
skipped, and start no load for it. A lot it does rehearse runs under load as above.
|
|
404
|
+
- The real commit's hook always runs, whatever the records say: it is the person's last net. Nothing passes
|
|
405
|
+
`--no-verify`.
|
|
406
|
+
|
|
407
|
+
**Reporting READY.** From cli 0.3.1 the message to the user points at the hand-over instead of carrying it:
|
|
408
|
+
`READY`, then `cd <worktree> && npx dialecte handover show <name>` (the card recomputed read-only from the
|
|
409
|
+
records, current whenever the person reads it) and `npx dialecte handover run <name>` (the command they run) -
|
|
410
|
+
never a pasted or retyped card, which goes stale as soon as a record changes. With an older cli, the message
|
|
411
|
+
**is the card** `handover` printed - repository, worktree, branch, HEAD, gates, the lots with their files and
|
|
412
|
+
messages, and the command with its absolute `cd` - pasted as printed, never retyped. After it: what was not verified, and one usage line (the lot's sub-agent tokens, in total
|
|
413
|
+
and by station: [references/retro.md](references/retro.md)). A refusal is a finding: fix the file or the
|
|
414
|
+
message, do not loosen the lots. `npx dialecte handover list` shows every hand-over waiting on the machine.
|
|
415
|
+
Never commit, push, stage, or touch a repository's index while a hand-over may be waiting.
|
|
416
|
+
|
|
417
|
+
## Station 7 - retro
|
|
418
|
+
|
|
419
|
+
Facts first, then improvements: [references/retro.md](references/retro.md). Every correction the user
|
|
420
|
+
made, every review round that found something an earlier station should have caught, every false green.
|
|
421
|
+
Each finding names the smallest change that prevents it and its category (skill, tooling, knowledge,
|
|
422
|
+
one-off). Skill edits are drafted as before/after and applied only with the user's approval; a skill
|
|
423
|
+
that is rewritten every retro never settles.
|
|
424
|
+
|
|
425
|
+
## Orchestrating with sub-agents
|
|
426
|
+
|
|
427
|
+
- One implementer per independent concern, **each in its own git worktree** cut from a committed base
|
|
428
|
+
(never from uncommitted work), made with `npx dialecte worktree add <repository> <branch> [--from <ref>]`:
|
|
429
|
+
it copies the hooks folder and `node_modules` and writes the hygiene baseline in one step. Never
|
|
430
|
+
`git worktree add` plus copies by hand. Concerns that touch the same files are one implementer, or run in
|
|
431
|
+
order.
|
|
432
|
+
- **After every agent hands back** (implementer, fixer), run `npx dialecte gate --fast --declare <new path>`
|
|
433
|
+
in its worktree before anything else. Its hygiene step fails on a staged file or a stash added since the
|
|
434
|
+
worktree was made, whatever wrote it. A failure is a finding: look with the read-only commands it prints
|
|
435
|
+
and report it; never repair it with a git command that writes. When the agent changed nothing, the gate
|
|
436
|
+
still runs its hygiene and `tdd` step and answers the rest from its record of that tree.
|
|
437
|
+
- Write each brief from [references/briefs.md](references/briefs.md): the brief is the agent's whole
|
|
438
|
+
context; synthesise, do not say "based on the findings". Every brief carries its lines for all stations
|
|
439
|
+
(nothing under `.git` by hand, no workflow without the user's opt-in, no `rm` on a variable path).
|
|
440
|
+
- Each station agent is defined once, for every host, in [references/stations.md](references/stations.md):
|
|
441
|
+
its tier, its access (`read`, `review`: runs commands but edits nothing, `edit`) and its role (`test-writer`,
|
|
442
|
+
`test-reviewer`, `implementer`, `implementer-strong`, `reviewer`, `fixer`, `eval-runner`, `grader`,
|
|
443
|
+
`standard-reader`, `searcher`). The test writer edits tests and stubs; the test reviewer reads; the
|
|
444
|
+
implementer keeps every edit tool, the freeze of the tests is `tdd green`'s and the gate's. A host with an
|
|
445
|
+
adapter spawns the station's own agent, whose file sets the model and the tools, so the spawn names neither
|
|
446
|
+
(Per host, below). Without one, spawn a general sub-agent on the station's tier
|
|
447
|
+
([references/model-tiers.md](references/model-tiers.md)), restricted to its access, its prompt holding the
|
|
448
|
+
station's section before the brief. Note the tokens of each completion notice
|
|
449
|
+
against its station as it lands: the ledger the retro and the hand-over message report. When a station
|
|
450
|
+
runs well above the lot's other stations, tell the user then, not at the end.
|
|
451
|
+
- Spawn the reviewer only after the implementer's report; give it the brief, not the implementer's
|
|
452
|
+
conclusions. You review too: read the diff yourself before accepting a verdict.
|
|
453
|
+
- Runs use the runner's defaults, whoever else shares the machine: no `nice`, no worker cap added on the
|
|
454
|
+
command line (a config's own setting, such as mutation tests' measured concurrency, is the runner's default), no
|
|
455
|
+
`--no-file-parallelism`, no lock - unless the user asks to limit, for the time they say. A failing run is rerun
|
|
456
|
+
once, the same command with its `--project` flags, on its failing files with `--no-file-parallelism` (the gate
|
|
457
|
+
does it on its test steps): a pass
|
|
458
|
+
there is a flake, a finding fixed at its cause, never a reason to throttle; a failure there is real
|
|
459
|
+
(in a dialecte package, `dialecte-contributing`, Definition of Done).
|
|
460
|
+
- After the user merged: `npx dialecte worktree prune` lists the merged worktrees and branches, the
|
|
461
|
+
committed hand-over folders and the rehearsal clones, each with its command (a worktree just made, one
|
|
462
|
+
holding ignored files, an unmerged branch are kept, with why). `--yes` asks for a confirmation on a
|
|
463
|
+
terminal and refuses without one: hand the printed commands, or the `--yes` command, to the user, each
|
|
464
|
+
with its absolute `cd`. Never remove a worktree, a branch or a hand-over folder by hand.
|
|
465
|
+
- Never predict a sub-agent's result; wait for its report - up to its deadline (below), not forever.
|
|
466
|
+
|
|
467
|
+
### Deadlines
|
|
468
|
+
|
|
469
|
+
A completion notice comes only when a run ends: a run that hangs (a command waiting on its stdin, an agent
|
|
470
|
+
stuck in a loop) sends none, and waiting on the notice alone waits forever. So every agent and command the
|
|
471
|
+
orchestrator launches in the background gets a **deadline** when it is launched:
|
|
472
|
+
|
|
473
|
+
- **How long**: the station's deadline ([references/model-tiers.md](references/model-tiers.md)), or three
|
|
474
|
+
times a duration measured on earlier runs of the same command (a commit hook, a gate, a bench: a hook that
|
|
475
|
+
took 6 minutes gets 18). Write it in the run log.
|
|
476
|
+
- **Armed at launch**: arm the check in the same turn as the launch, with whatever the host has that wakes
|
|
477
|
+
you - a scheduled check or a wake-up at the deadline, or a monitor on the run's log - so you are woken even
|
|
478
|
+
if no notice comes. A host with none polls at the deadline.
|
|
479
|
+
- **At the deadline, look at the run itself**: its process tree (`pgrep -P <pid>`, `ps -o pid,stat,time,command`:
|
|
480
|
+
is its CPU time growing?), the agent's last activity or the log's last line and its time, and `dialecte runs`
|
|
481
|
+
once the cli has it (the live runs of the machine, each with its state).
|
|
482
|
+
- **Kill on what you see, never on the clock.** No new output and no CPU time gained by the tree since the
|
|
483
|
+
last look: it is stuck - tell the user what you saw (the tree, the last line, since when) and stop or
|
|
484
|
+
restart it. Still gaining CPU time or writing output: set one more deadline. Past that second deadline it
|
|
485
|
+
is **over budget** (for a measured command 2 x 3 = 6x its duration, the point where the cli's coming budgets
|
|
486
|
+
fail a run): report it to the user and go on watching; kill it only on silence.
|
|
487
|
+
Under `dialecte handover run`, `gate` and `tdd`, the runner's own stall watchdog does the kill; your
|
|
488
|
+
deadline is the backstop that notices a runner that did not.
|
|
489
|
+
|
|
490
|
+
## Per host
|
|
491
|
+
|
|
492
|
+
The stations, gates and hand-over are the same everywhere: they run through the `dialecte` cli and the git
|
|
493
|
+
hooks. What differs is how a host starts a session, spawns an agent and wakes you:
|
|
494
|
+
|
|
495
|
+
- **Every host**: the session starts with `npx --no-install @dialecte/cli doctor --brief` (the synced `AGENTS.md`
|
|
496
|
+
section says so; where a hook already ran it, its lines are in your context): nothing printed means the skills
|
|
497
|
+
are in sync, else fix each line first. Station agents come from references/stations.md.
|
|
498
|
+
- **Claude Code**: a `SessionStart` hook runs that check for you (do not run it again); `.claude/agents/dialecte-<station>.md` are the
|
|
499
|
+
station adapters (the Agent tool spawns them by name); skills load with the Skill tool; the Workflow tool is
|
|
500
|
+
the multi-agent workflow that needs the user's opt-in; a scheduled wake-up or a monitor arms a deadline.
|
|
501
|
+
- **Another host** (Codex, Cursor, Gemini CLI, Copilot): skills in `.agents/skills/` (or `.github/skills/`); a
|
|
502
|
+
general sub-agent per station, as above; its own scheduler or a timer arms a deadline, else poll at it.
|
|
503
|
+
|
|
504
|
+
## Never
|
|
505
|
+
|
|
506
|
+
- Skip the red step (`tdd red` from the test station), the test review, the review, or the cap.
|
|
507
|
+
- Let the implement station edit a test after its red, or prove a red by breaking the code afterwards.
|
|
508
|
+
- Name a model in a brief or a skill (name the tier), or down-tier a correctness review to save tokens.
|
|
509
|
+
- Commit, push, stage, or merge.
|
|
510
|
+
- `git stash` (one stash is shared by every worktree and session) and any git command that writes the index
|
|
511
|
+
(`git add`, `git rm`, `git reset`, `git restore`, `git checkout --`; the one exception is the `git rm` of a review round's throwaway worktree). To compare with the base, read it with
|
|
512
|
+
`git show <base>:<file>` or run it in a throwaway worktree; your own tree stays as it is.
|
|
513
|
+
- Edit, move or remove any file under a repository's `.git` folder by hand - a lock, a config, a receipt, a
|
|
514
|
+
worktree's folder - even one your own run left, even when a refusal says "delete it and its lock". A stuck
|
|
515
|
+
lock or a broken config stops that step: read it (`ls`, `cat`), then hand it to the orchestrator - its path,
|
|
516
|
+
what you believe wrote it, the refused command; the orchestrator (or an agent playing every station) takes it
|
|
517
|
+
to the user. The same for the hand-over script a lock names. Every station, every agent.
|
|
518
|
+
- Start a multi-agent workflow (a host tool that fans out many agents from one script) without the user's
|
|
519
|
+
explicit opt-in: each sub-agent has its own spawn, several at once when they are independent, eval runs
|
|
520
|
+
included.
|
|
521
|
+
- `rm`, `mv` or `xargs` on a variable path: leave temporary files in the hand-over folder or the scratchpad.
|
|
522
|
+
- Wait on a background run with no deadline, or on its completion notice alone.
|
|
523
|
+
- Hand over a hand-written commit or merge script.
|
|
524
|
+
- Implement two lots in one station "because they are small".
|
|
525
|
+
- Reach for `any`, `@ts-ignore` or a skipped test to get green.
|
|
526
|
+
- Let an output live only in the chat.
|