mdkg 0.4.0 → 0.4.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/CHANGELOG.md CHANGED
@@ -8,6 +8,32 @@ mdkg is pre-v1 public alpha software. Command, graph, cache, bundle, and DAL con
8
8
 
9
9
  ## Unreleased
10
10
 
11
+ ## 0.4.1 - 2026-07-04
12
+
13
+ ### Added
14
+
15
+ - Added generic contract-profile metadata for MANIFEST, WORK, WORK_ORDER, and
16
+ RECEIPT semantic mirrors, including `contract_profile`, policy refs,
17
+ `receipt_kind`, and `redaction_class` validation.
18
+ - Added explicit profile validation through `mdkg validate --profile
19
+ omni-room` and `mdkg work validate --profile omni-room`, while keeping Omni
20
+ Room execution semantics runtime-owned.
21
+ - Added scaffold and helper flags for contract-profile metadata across
22
+ `mdkg new manifest|work|work_order|receipt` and `mdkg work
23
+ contract|order|receipt new`.
24
+
25
+ ### Changed
26
+
27
+ - Updated default templates, init assets, seeded skills, and generated command
28
+ references to demonstrate generic contract-profile fields without adding
29
+ runtime-only queue, provider, billing, ledger, or final-receipt state.
30
+ - Documented the distinction between `contract_profile`, MANIFEST
31
+ `resource_profile`, WORK `kind`, WORK_ORDER `artifact_policy`, RECEIPT
32
+ `redaction_policy`, `receipt_kind`, `redaction_class`, and pack/bundle
33
+ `--profile` flags.
34
+ - Expanded release-readiness documentation and checks for `0.4.1` so the
35
+ implementation can hand off to a separate approval-gated publish goal.
36
+
11
37
  ## 0.4.0 - 2026-06-27
12
38
 
13
39
  ### Added
@@ -1,7 +1,7 @@
1
1
  # CLI Command Matrix
2
2
 
3
- as_of: 2026-06-27
4
- package_version_in_source: 0.4.0
3
+ as_of: 2026-07-03
4
+ package_version_in_source: 0.4.1
5
5
  source: live help from `src/cli.ts`, runtime command handlers, and `dec-15`..`dec-18`
6
6
  status: canonical single-source command and flag reference for mdkg
7
7
 
@@ -213,6 +213,11 @@ Primary flags:
213
213
  - `--skills <slug,slug,...>`
214
214
  - `--template <set>`
215
215
  - `--run-id <id>`
216
+ - `--contract-profile <name>` for MANIFEST, WORK, WORK_ORDER, and RECEIPT
217
+ - `--validation-policy-ref <ref>` for MANIFEST, WORK_ORDER, and RECEIPT
218
+ - `--evidence-policy-ref <ref>` for MANIFEST, WORK_ORDER, and RECEIPT
219
+ - `--receipt-kind <kind>` for RECEIPT
220
+ - `--redaction-class <class>` for RECEIPT
216
221
  - `--json`
217
222
 
218
223
  Advanced metadata flags:
@@ -819,17 +824,17 @@ Usage:
819
824
  - `mdkg work order new|status|update ...`
820
825
  - `mdkg work receipt new|verify|update ...`
821
826
  - `mdkg work artifact add ...`
822
- - `mdkg work contract new "<title>" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]`
827
+ - `mdkg work contract new "<title>" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]`
823
828
  - `mdkg work trigger <work-or-capability-ref> [--id <order.id>] [--title "<title>"] [--requester <ref>] [--enqueue <queue>] [--json]`
824
- - `mdkg work order new "<title>" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]`
829
+ - `mdkg work order new "<title>" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]`
825
830
  - `mdkg work order status <id-or-qid> [--json]`
826
831
  - `mdkg work order update <id-or-qid> [--status <status>] [--add-input-refs <...>] [--add-queue-refs <...>] [--add-artifacts <...>] [--json]`
827
- - `mdkg work receipt new "<title>" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]`
832
+ - `mdkg work receipt new "<title>" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]`
828
833
  - `mdkg work receipt verify <id-or-qid> [--json]`
829
834
  - `mdkg work receipt update <id-or-qid> [--receipt-status <status>] [--add-artifacts <...>] [--add-proof-refs <...>] [--add-attestation-refs <...>] [--add-evidence-hashes <sha256:...>] [--json]`
830
835
  - `mdkg work artifact add <order-or-receipt-id-or-qid> <file> [--id <archive.id>] [--kind source|artifact] [--json]`
831
- - `mdkg work validate [<id-or-qid>] [--type <workflow-type>] [--json]`
832
- - `mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--json]`
836
+ - `mdkg work validate [<id-or-qid>] [--type <workflow-type>] [--profile <name>] [--json]`
837
+ - `mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--profile <name>] [--json]`
833
838
 
834
839
  Notes:
835
840
  - work commands mutate semantic mirror files only
@@ -840,10 +845,13 @@ Notes:
840
845
  - example: `mdkg work trigger work.example --id order.example-1 --requester user://example --json`
841
846
  - `work trigger --enqueue <queue>` requires a valid project DB plus an explicitly created active queue, creates a submitted order mirror, and enqueues a local delivery message without executing work
842
847
  - `work order new` accepts URI-style requester/request/trigger refs, archive input refs, optional queue refs, and stable payload hashes
848
+ - `work order new` accepts optional contract-profile and validation/evidence policy refs without executing work
843
849
  - `work order status` is read-only and reports deterministic order state plus linked receipts
844
850
  - `work receipt new` accepts URI-style cost/proof/attestation refs, explicit redaction policy, and SHA-256 evidence/input/output hash refs
851
+ - `work receipt new` accepts optional contract-profile, receipt-kind, redaction-class, and validation/evidence policy refs without becoming canonical runtime receipt state
845
852
  - `work receipt verify` is read-only and reports linkage, evidence, archive ref, hash, outcome, and redaction-policy checks; invalid receipts print JSON before exiting nonzero
846
853
  - `work validate` is read-only and reports typed diagnostics for MANIFEST.md, legacy SPEC.md, WORK.md, WORK_ORDER.md, RECEIPT.md, FEEDBACK.md, DISPUTE.md, and PROPOSAL.md mirrors; obvious raw secret, prompt, token, or payload markers are warnings, not hard failures
854
+ - `work validate --profile omni-room` applies explicit contract-profile validation after generic mirror validation; it is separate from `mdkg pack --profile`
847
855
  - `work artifact add` calls `mdkg archive add`, then attaches the resulting `archive://...` ref to the target order or receipt
848
856
  - `work order update`, `work receipt update`, and `work artifact add` accept local ids or local qids; subgraph qids are read-only and must be changed in their source workspace
849
857
 
@@ -990,10 +998,11 @@ When to use:
990
998
  - run the repo trust gate before calling work done
991
999
 
992
1000
  Usage:
993
- - `mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--json]`
1001
+ - `mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--profile <name>] [--json]`
994
1002
  - `--changed-only` filters warning presentation to changed `.mdkg` files while full graph errors still run
995
1003
  - `--summary` emits bounded warning samples for agent/CI logs; `--limit <n>` controls the sample size
996
1004
  - `--out <path>` writes the compatibility text report; `--json-out <path>` writes a clean full JSON receipt
1005
+ - `--profile omni-room` applies explicit contract-profile validation after generic validation; it is separate from `mdkg pack --profile`
997
1006
  - JSON receipts include `warning_summary` and `warning_diagnostics` with warning ids, categories, severity, paths, refs, and remediation text
998
1007
 
999
1008
  Flags:
@@ -1003,10 +1012,11 @@ Flags:
1003
1012
  - `--changed-only`
1004
1013
  - `--summary`
1005
1014
  - `--limit <n>`
1015
+ - `--profile <name>`
1006
1016
  - `--json`
1007
1017
 
1008
1018
  JSON receipt:
1009
- - `{ action: "validated", ok, warning_count, error_count, warnings, warning_diagnostics, warning_summary, errors, report_path?, json_receipt_path? }`
1019
+ - `{ action: "validated", ok, warning_count, error_count, warnings, warning_diagnostics, warning_summary, errors, validation_profile?, report_path?, json_receipt_path? }`
1010
1020
  - `report_path` is included only when `--out` is used.
1011
1021
  - `json_receipt_path` is included only when `--json-out` is used.
1012
1022
 
package/README.md CHANGED
@@ -14,7 +14,7 @@ mdkg stays deliberately boring:
14
14
  - first-class rebuildable SQLite cache through built-in `node:sqlite`
15
15
  - no daemon, hosted index, or vector DB
16
16
 
17
- Current package version in source: `0.4.0`
17
+ Current package version in source: `0.4.1`
18
18
 
19
19
  mdkg is still pre-v1 public alpha software. The public package is usable, but graph, cache, bundle, and DAL contracts may continue to change quickly while the project converges on a stable v1 surface.
20
20
 
@@ -600,7 +600,11 @@ Use `mdkg new manifest|work|work_order|receipt|feedback|dispute|proposal "<title
600
600
 
601
601
  Relational templates contain editable placeholder refs. `manifest` and `work` scaffold as validation-clean standalone docs; `work_order`, `receipt`, `feedback`, `dispute`, and `proposal` need real refs before strict `mdkg validate` passes.
602
602
 
603
- For executable or purchasable capability mirrors, prefer the lifecycle helpers under `mdkg work ...`. They create and update `WORK.md`, `WORK_ORDER.md`, and `RECEIPT.md` semantic mirror files only. `mdkg work trigger` creates a deterministic submitted `WORK_ORDER.md` from a WORK contract or a MANIFEST with exactly one resolvable work contract; legacy SPEC refs remain supported during the compatibility bridge. `mdkg work order status` and `mdkg work receipt verify` are read-only review helpers for deterministic closeout. `mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] --json` is a read-only focused validator for agent workflow mirrors; it returns typed diagnostics and warns on obvious raw secret, prompt, token, or payload markers. `mdkg work trigger --enqueue <queue>` optionally writes a local project DB queue delivery message after the queue has been explicitly created and is active; it still does not execute work. Production order state, receipt state, feedback, disputes, payments, ledgers, marketplace inventory, fulfillment records, and execution state remain canonical outside mdkg, such as in Postgres or another application database. Do not store raw secrets, credentials, live payment state, ledger mutations, canonical marketplace state, or bulky raw payloads in these mirrors.
603
+ For executable or purchasable capability mirrors, prefer the lifecycle helpers under `mdkg work ...`. They create and update `WORK.md`, `WORK_ORDER.md`, and `RECEIPT.md` semantic mirror files only. `mdkg work trigger` creates a deterministic submitted `WORK_ORDER.md` from a WORK contract or a MANIFEST with exactly one resolvable work contract; legacy SPEC refs remain supported during the compatibility bridge. `mdkg work order status` and `mdkg work receipt verify` are read-only review helpers for deterministic closeout. `mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--profile omni-room] --json` is a read-only focused validator for agent workflow mirrors; it returns typed diagnostics and warns on obvious raw secret, prompt, token, or payload markers. `mdkg validate --profile omni-room` and `mdkg work validate --profile omni-room` apply explicit profile checks after generic validation.
604
+
605
+ Optional contract-profile fields are generic semantic mirrors, not runtime execution state. `contract_profile` is accepted on MANIFEST, WORK, WORK_ORDER, and RECEIPT surfaces; `validation_policy_ref` and `evidence_policy_ref` are accepted on MANIFEST, WORK_ORDER, and RECEIPT; `receipt_kind` and `redaction_class` are RECEIPT-only. These fields are separate from MANIFEST `resource_profile`, WORK `kind`, WORK_ORDER `artifact_policy`, RECEIPT `redaction_policy`, and pack/bundle `--profile` flags. Generic validation accepts well-shaped custom profile, kind, and class values with warnings; explicit `--profile omni-room` validation escalates unknown or incompatible values. Bare `profile` is intentionally ambiguous and is diagnosed rather than treated as an alias.
606
+
607
+ `mdkg work trigger --enqueue <queue>` optionally writes a local project DB queue delivery message after the queue has been explicitly created and is active; it still does not execute work. Production order state, receipt state, feedback, disputes, payments, ledgers, marketplace inventory, fulfillment records, and execution state remain canonical outside mdkg, such as in Postgres or another application database. Omni Room and other downstream runtimes own runtime policy, queue execution, final receipt normalization, and downstream adoption. Do not store raw secrets, credentials, live payment state, ledger mutations, canonical marketplace state, or bulky raw payloads in these mirrors.
604
608
 
605
609
  ## Archive sidecars
606
610
 
package/dist/cli.js CHANGED
@@ -160,6 +160,11 @@ function printNewHelp(log) {
160
160
  log(" --skills <slug,slug,...> Skill slugs for work items");
161
161
  log(" --template <set> Template set");
162
162
  log(" --run-id <id> Optional event run id when event logging is enabled");
163
+ log(" --contract-profile <name> Optional MANIFEST/WORK/WORK_ORDER/RECEIPT validation profile metadata");
164
+ log(" --validation-policy-ref <ref> Optional MANIFEST/WORK_ORDER/RECEIPT validation policy ref");
165
+ log(" --evidence-policy-ref <ref> Optional MANIFEST/WORK_ORDER/RECEIPT evidence policy ref");
166
+ log(" --receipt-kind <kind> Optional RECEIPT kind metadata");
167
+ log(" --redaction-class <class> Optional RECEIPT redaction class metadata");
163
168
  log("\nAdvanced metadata flags:");
164
169
  log(" --parent --prev --next --relates --blocked-by --blocks");
165
170
  log(" --links --artifacts --refs --aliases --owners --cases --supersedes");
@@ -733,7 +738,7 @@ function printWorkHelp(log, subcommand) {
733
738
  switch ((subcommand ?? "").toLowerCase()) {
734
739
  case "contract":
735
740
  log("Usage:");
736
- log(' mdkg work contract new "<title>" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]');
741
+ log(' mdkg work contract new "<title>" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]');
737
742
  break;
738
743
  case "trigger":
739
744
  log("Usage:");
@@ -747,7 +752,7 @@ function printWorkHelp(log, subcommand) {
747
752
  break;
748
753
  case "order":
749
754
  log("Usage:");
750
- log(' mdkg work order new "<title>" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]');
755
+ log(' mdkg work order new "<title>" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]');
751
756
  log(" mdkg work order status <id-or-qid> [--json]");
752
757
  log(" mdkg work order update <id-or-qid> [--status <status>] [--add-input-refs <...>] [--add-queue-refs <...>] [--add-artifacts <...>] [--json]");
753
758
  log("\nNotes:");
@@ -755,7 +760,7 @@ function printWorkHelp(log, subcommand) {
755
760
  break;
756
761
  case "receipt":
757
762
  log("Usage:");
758
- log(' mdkg work receipt new "<title>" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]');
763
+ log(' mdkg work receipt new "<title>" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]');
759
764
  log(" mdkg work receipt verify <id-or-qid> [--json]");
760
765
  log(" mdkg work receipt update <id-or-qid> [--receipt-status <status>] [--add-artifacts <...>] [--add-proof-refs <...>] [--add-attestation-refs <...>] [--add-evidence-hashes <sha256:...>] [--json]");
761
766
  log("\nNotes:");
@@ -767,10 +772,11 @@ function printWorkHelp(log, subcommand) {
767
772
  break;
768
773
  case "validate":
769
774
  log("Usage:");
770
- log(" mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--json]");
775
+ log(" mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--profile <name>] [--json]");
771
776
  log("\nNotes:");
772
777
  log(" Read-only focused validation for agent workflow mirrors.");
773
778
  log(" Reports typed diagnostics for MANIFEST.md, legacy SPEC.md, WORK.md, WORK_ORDER.md, RECEIPT.md, FEEDBACK.md, DISPUTE.md, and PROPOSAL.md files.");
779
+ log(" --profile omni-room applies explicit contract-profile validation after generic mirror validation; this is separate from mdkg pack --profile.");
774
780
  log(" Obvious raw secret, prompt, token, or payload markers are warnings so humans and agents can review boundaries.");
775
781
  break;
776
782
  default:
@@ -780,7 +786,7 @@ function printWorkHelp(log, subcommand) {
780
786
  log(" mdkg work order new|status|update ...");
781
787
  log(" mdkg work receipt new|verify|update ...");
782
788
  log(" mdkg work artifact add ...");
783
- log(" mdkg work validate [<id-or-qid>] [--type <workflow-type>] [--json]");
789
+ log(" mdkg work validate [<id-or-qid>] [--type <workflow-type>] [--profile <name>] [--json]");
784
790
  log("\nNotes:");
785
791
  log(" - work commands mutate semantic mirror files only");
786
792
  log(" - work validate is read-only and reports typed workflow diagnostics");
@@ -972,10 +978,11 @@ function printCheckpointHelp(log) {
972
978
  }
973
979
  function printValidateHelp(log) {
974
980
  log("Usage:");
975
- log(" mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--json]");
981
+ log(" mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--profile <name>] [--json]");
976
982
  log("\nNotes:");
977
983
  log(" Validates frontmatter schemas, graph references, visibility, skills, and events.");
978
984
  log(" --changed-only filters warning presentation to changed .mdkg files while full graph errors still run.");
985
+ log(" --profile omni-room applies explicit contract-profile validation after generic validation; this is separate from mdkg pack --profile.");
979
986
  log(" JSON output includes warning_summary plus warning_diagnostics with warning ids, categories, severity, paths, refs, and remediation text.");
980
987
  log(" --summary emits bounded warning samples for agent/CI logs; --limit controls the sample size.");
981
988
  log(" --out writes the compatibility text report; --json-out writes a clean full JSON receipt.");
@@ -2063,7 +2070,8 @@ function runWorkSubcommand(parsed, root) {
2063
2070
  throw new errors_1.UsageError("work validate accepts at most one workflow reference");
2064
2071
  }
2065
2072
  const type = requireFlagValue("--type", parsed.flags["--type"]);
2066
- (0, work_1.runWorkValidateCommand)({ root, ws, id, type, json });
2073
+ const profile = requireFlagValue("--profile", parsed.flags["--pack-profile"]);
2074
+ (0, work_1.runWorkValidateCommand)({ root, ws, id, type, profile, json });
2067
2075
  return 0;
2068
2076
  }
2069
2077
  if (domain === "contract" && action === "new") {
@@ -2078,6 +2086,7 @@ function runWorkSubcommand(parsed, root) {
2078
2086
  }
2079
2087
  const requiredCapabilities = requireFlagValue("--required-capabilities", parsed.flags["--required-capabilities"]);
2080
2088
  const pricingModel = requireFlagValue("--pricing-model", parsed.flags["--pricing-model"]);
2089
+ const contractProfile = requireFlagValue("--contract-profile", parsed.flags["--contract-profile"]);
2081
2090
  (0, work_1.runWorkContractNewCommand)({
2082
2091
  root,
2083
2092
  ws,
@@ -2089,6 +2098,7 @@ function runWorkSubcommand(parsed, root) {
2089
2098
  outputs,
2090
2099
  requiredCapabilities,
2091
2100
  pricingModel,
2101
+ contractProfile,
2092
2102
  json,
2093
2103
  });
2094
2104
  return 0;
@@ -2108,6 +2118,9 @@ function runWorkSubcommand(parsed, root) {
2108
2118
  const queueRefs = requireFlagValue("--queue-refs", parsed.flags["--queue-refs"]);
2109
2119
  const requestedOutputs = requireFlagValue("--requested-outputs", parsed.flags["--requested-outputs"]);
2110
2120
  const constraintRefs = requireFlagValue("--constraint-refs", parsed.flags["--constraint-refs"]);
2121
+ const contractProfile = requireFlagValue("--contract-profile", parsed.flags["--contract-profile"]);
2122
+ const validationPolicyRef = requireFlagValue("--validation-policy-ref", parsed.flags["--validation-policy-ref"]);
2123
+ const evidencePolicyRef = requireFlagValue("--evidence-policy-ref", parsed.flags["--evidence-policy-ref"]);
2111
2124
  (0, work_1.runWorkOrderNewCommand)({
2112
2125
  root,
2113
2126
  ws,
@@ -2122,6 +2135,9 @@ function runWorkSubcommand(parsed, root) {
2122
2135
  queueRefs,
2123
2136
  requestedOutputs,
2124
2137
  constraintRefs,
2138
+ contractProfile,
2139
+ validationPolicyRef,
2140
+ evidencePolicyRef,
2125
2141
  json,
2126
2142
  });
2127
2143
  return 0;
@@ -2163,6 +2179,11 @@ function runWorkSubcommand(parsed, root) {
2163
2179
  const evidenceHashes = requireFlagValue("--evidence-hashes", parsed.flags["--evidence-hashes"]);
2164
2180
  const inputHashes = requireFlagValue("--input-hashes", parsed.flags["--input-hashes"]);
2165
2181
  const outputHashes = requireFlagValue("--output-hashes", parsed.flags["--output-hashes"]);
2182
+ const contractProfile = requireFlagValue("--contract-profile", parsed.flags["--contract-profile"]);
2183
+ const receiptKind = requireFlagValue("--receipt-kind", parsed.flags["--receipt-kind"]);
2184
+ const redactionClass = requireFlagValue("--redaction-class", parsed.flags["--redaction-class"]);
2185
+ const validationPolicyRef = requireFlagValue("--validation-policy-ref", parsed.flags["--validation-policy-ref"]);
2186
+ const evidencePolicyRef = requireFlagValue("--evidence-policy-ref", parsed.flags["--evidence-policy-ref"]);
2166
2187
  (0, work_1.runWorkReceiptNewCommand)({
2167
2188
  root,
2168
2189
  ws,
@@ -2173,6 +2194,11 @@ function runWorkSubcommand(parsed, root) {
2173
2194
  receiptStatus,
2174
2195
  costRef,
2175
2196
  redactionPolicy,
2197
+ contractProfile,
2198
+ receiptKind,
2199
+ redactionClass,
2200
+ validationPolicyRef,
2201
+ evidencePolicyRef,
2176
2202
  artifacts,
2177
2203
  proofRefs,
2178
2204
  attestationRefs,
@@ -2657,6 +2683,11 @@ function runCommand(parsed, root, runtime) {
2657
2683
  const owners = requireFlagValue("--owners", parsed.flags["--owners"]);
2658
2684
  const supersedes = requireFlagValue("--supersedes", parsed.flags["--supersedes"]);
2659
2685
  const template = requireFlagValue("--template", parsed.flags["--template"]);
2686
+ const contractProfile = requireFlagValue("--contract-profile", parsed.flags["--contract-profile"]);
2687
+ const validationPolicyRef = requireFlagValue("--validation-policy-ref", parsed.flags["--validation-policy-ref"]);
2688
+ const evidencePolicyRef = requireFlagValue("--evidence-policy-ref", parsed.flags["--evidence-policy-ref"]);
2689
+ const receiptKind = requireFlagValue("--receipt-kind", parsed.flags["--receipt-kind"]);
2690
+ const redactionClass = requireFlagValue("--redaction-class", parsed.flags["--redaction-class"]);
2660
2691
  const noCache = parseBooleanFlag("--no-cache", parsed.flags["--no-cache"]);
2661
2692
  const noReindex = parseBooleanFlag("--no-reindex", parsed.flags["--no-reindex"]);
2662
2693
  const runId = requireFlagValue("--run-id", parsed.flags["--run-id"]);
@@ -2686,6 +2717,11 @@ function runCommand(parsed, root, runtime) {
2686
2717
  owners,
2687
2718
  supersedes,
2688
2719
  template,
2720
+ contractProfile,
2721
+ validationPolicyRef,
2722
+ evidencePolicyRef,
2723
+ receiptKind,
2724
+ redactionClass,
2689
2725
  noCache,
2690
2726
  noReindex,
2691
2727
  runId,
@@ -2951,8 +2987,9 @@ function runCommand(parsed, root, runtime) {
2951
2987
  const changedOnly = parseBooleanFlag("--changed-only", parsed.flags["--changed-only"]);
2952
2988
  const summary = parseBooleanFlag("--summary", parsed.flags["--summary"]);
2953
2989
  const limit = parseNumberFlag("--limit", parsed.flags["--limit"]);
2990
+ const profile = requireFlagValue("--profile", parsed.flags["--pack-profile"]);
2954
2991
  const json = parseBooleanFlag("--json", parsed.flags["--json"]);
2955
- (0, validate_1.runValidateCommand)({ root, out, jsonOut, quiet, json, changedOnly, summary, limit });
2992
+ (0, validate_1.runValidateCommand)({ root, out, jsonOut, quiet, json, changedOnly, summary, limit, profile });
2956
2993
  return 0;
2957
2994
  }
2958
2995
  case "status": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "tool": "mdkg",
4
- "package_version": "0.4.0",
4
+ "package_version": "0.4.1",
5
5
  "source": {
6
6
  "help_targets": "scripts/cli_help_targets.js",
7
7
  "command_matrix": "CLI_COMMAND_MATRIX.md"
@@ -5230,12 +5230,24 @@
5230
5230
  "required": false,
5231
5231
  "description": "--parent --prev --next --relates --blocked-by --blocks"
5232
5232
  },
5233
+ {
5234
+ "name": "--contract-profile",
5235
+ "value": "<name>",
5236
+ "required": false,
5237
+ "description": "--contract-profile <name> Optional MANIFEST/WORK/WORK_ORDER/RECEIPT validation profile metadata"
5238
+ },
5233
5239
  {
5234
5240
  "name": "--epic",
5235
5241
  "value": "<id>",
5236
5242
  "required": false,
5237
5243
  "description": "--epic <id> Epic id"
5238
5244
  },
5245
+ {
5246
+ "name": "--evidence-policy-ref",
5247
+ "value": "<ref>",
5248
+ "required": false,
5249
+ "description": "--evidence-policy-ref <ref> Optional MANIFEST/WORK_ORDER/RECEIPT evidence policy ref"
5250
+ },
5239
5251
  {
5240
5252
  "name": "--help",
5241
5253
  "value": null,
@@ -5278,6 +5290,18 @@
5278
5290
  "required": false,
5279
5291
  "description": "--priority <0..9> Work item priority"
5280
5292
  },
5293
+ {
5294
+ "name": "--receipt-kind",
5295
+ "value": "<kind>",
5296
+ "required": false,
5297
+ "description": "--receipt-kind <kind> Optional RECEIPT kind metadata"
5298
+ },
5299
+ {
5300
+ "name": "--redaction-class",
5301
+ "value": "<class>",
5302
+ "required": false,
5303
+ "description": "--redaction-class <class> Optional RECEIPT redaction class metadata"
5304
+ },
5281
5305
  {
5282
5306
  "name": "--refs",
5283
5307
  "value": null,
@@ -5326,6 +5350,12 @@
5326
5350
  "required": false,
5327
5351
  "description": "--template <set> Template set"
5328
5352
  },
5353
+ {
5354
+ "name": "--validation-policy-ref",
5355
+ "value": "<ref>",
5356
+ "required": false,
5357
+ "description": "--validation-policy-ref <ref> Optional MANIFEST/WORK_ORDER/RECEIPT validation policy ref"
5358
+ },
5329
5359
  {
5330
5360
  "name": "--version",
5331
5361
  "value": null,
@@ -8242,7 +8272,7 @@
8242
8272
  "visibility": "public",
8243
8273
  "summary": "mdkg validate command",
8244
8274
  "usage": [
8245
- " mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--json]"
8275
+ " mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--profile <name>] [--json]"
8246
8276
  ],
8247
8277
  "args": [],
8248
8278
  "flags": [
@@ -8276,6 +8306,12 @@
8276
8306
  "required": false,
8277
8307
  "description": "--out writes the compatibility text report; --json-out writes a clean full JSON receipt."
8278
8308
  },
8309
+ {
8310
+ "name": "--profile",
8311
+ "value": "omni-room",
8312
+ "required": false,
8313
+ "description": "--profile omni-room applies explicit contract-profile validation after generic validation; this is separate from mdkg pack --profile."
8314
+ },
8279
8315
  {
8280
8316
  "name": "--root",
8281
8317
  "value": null,
@@ -8326,7 +8362,7 @@
8326
8362
  }
8327
8363
  ],
8328
8364
  "examples": [
8329
- " mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--json]"
8365
+ " mdkg validate [--out <path>] [--json-out <path>] [--quiet] [--changed-only] [--summary] [--limit <n>] [--profile <name>] [--json]"
8330
8366
  ],
8331
8367
  "docs": {
8332
8368
  "help_target": "mdkg help validate",
@@ -8348,7 +8384,7 @@
8348
8384
  " mdkg work order new|status|update ...",
8349
8385
  " mdkg work receipt new|verify|update ...",
8350
8386
  " mdkg work artifact add ...",
8351
- " mdkg work validate [<id-or-qid>] [--type <workflow-type>] [--json]"
8387
+ " mdkg work validate [<id-or-qid>] [--type <workflow-type>] [--profile <name>] [--json]"
8352
8388
  ],
8353
8389
  "args": [
8354
8390
  {
@@ -8528,7 +8564,7 @@
8528
8564
  "visibility": "public",
8529
8565
  "summary": "mdkg work contract command",
8530
8566
  "usage": [
8531
- " mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8567
+ " mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8532
8568
  ],
8533
8569
  "args": [
8534
8570
  {
@@ -8542,7 +8578,7 @@
8542
8578
  "name": "--agent-id",
8543
8579
  "value": "<agent.id>",
8544
8580
  "required": false,
8545
- "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8581
+ "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8546
8582
  },
8547
8583
  {
8548
8584
  "name": "--help",
@@ -8554,25 +8590,25 @@
8554
8590
  "name": "--id",
8555
8591
  "value": "<work.id>",
8556
8592
  "required": false,
8557
- "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8593
+ "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8558
8594
  },
8559
8595
  {
8560
8596
  "name": "--inputs",
8561
8597
  "value": "<...>",
8562
8598
  "required": false,
8563
- "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8599
+ "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8564
8600
  },
8565
8601
  {
8566
8602
  "name": "--kind",
8567
8603
  "value": "<kind>",
8568
8604
  "required": false,
8569
- "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8605
+ "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8570
8606
  },
8571
8607
  {
8572
8608
  "name": "--outputs",
8573
8609
  "value": "<...>",
8574
8610
  "required": false,
8575
- "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8611
+ "description": "mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8576
8612
  },
8577
8613
  {
8578
8614
  "name": "--root",
@@ -8623,7 +8659,7 @@
8623
8659
  }
8624
8660
  ],
8625
8661
  "examples": [
8626
- " mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8662
+ " mdkg work contract new \"<title>\" --id <work.id> --agent-id <agent.id> --kind <kind> --inputs <...> --outputs <...> [--contract-profile <name>] [--required-capabilities <...>] [--pricing-model <...>] [--json]"
8627
8663
  ],
8628
8664
  "docs": {
8629
8665
  "help_target": "mdkg help work contract",
@@ -8641,7 +8677,7 @@
8641
8677
  "visibility": "public",
8642
8678
  "summary": "mdkg work order command",
8643
8679
  "usage": [
8644
- " mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]",
8680
+ " mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]",
8645
8681
  " mdkg work order status <id-or-qid> [--json]",
8646
8682
  " mdkg work order update <id-or-qid> [--status <status>] [--add-input-refs <...>] [--add-queue-refs <...>] [--add-artifacts <...>] [--json]"
8647
8683
  ],
@@ -8668,13 +8704,13 @@
8668
8704
  "name": "--id",
8669
8705
  "value": "<order.id>",
8670
8706
  "required": false,
8671
- "description": "mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]"
8707
+ "description": "mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]"
8672
8708
  },
8673
8709
  {
8674
8710
  "name": "--requester",
8675
8711
  "value": "<ref>",
8676
8712
  "required": false,
8677
- "description": "mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]"
8713
+ "description": "mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]"
8678
8714
  },
8679
8715
  {
8680
8716
  "name": "--root",
@@ -8692,7 +8728,7 @@
8692
8728
  "name": "--work-id",
8693
8729
  "value": "<work.id>",
8694
8730
  "required": false,
8695
- "description": "mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]"
8731
+ "description": "mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]"
8696
8732
  }
8697
8733
  ],
8698
8734
  "output_formats": [
@@ -8726,7 +8762,7 @@
8726
8762
  }
8727
8763
  ],
8728
8764
  "examples": [
8729
- " mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]",
8765
+ " mdkg work order new \"<title>\" --id <order.id> --work-id <work.id> --requester <ref> [--contract-profile <name>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--request-ref <ref>] [--trigger-ref <ref>] [--payload-hash <sha256:...>] [--input-refs <...>] [--queue-refs <...>] [--requested-outputs <...>] [--json]",
8730
8766
  " mdkg work order status <id-or-qid> [--json]",
8731
8767
  " mdkg work order update <id-or-qid> [--status <status>] [--add-input-refs <...>] [--add-queue-refs <...>] [--add-artifacts <...>] [--json]"
8732
8768
  ],
@@ -8746,7 +8782,7 @@
8746
8782
  "visibility": "public",
8747
8783
  "summary": "mdkg work receipt command",
8748
8784
  "usage": [
8749
- " mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]",
8785
+ " mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]",
8750
8786
  " mdkg work receipt verify <id-or-qid> [--json]",
8751
8787
  " mdkg work receipt update <id-or-qid> [--receipt-status <status>] [--add-artifacts <...>] [--add-proof-refs <...>] [--add-attestation-refs <...>] [--add-evidence-hashes <sha256:...>] [--json]"
8752
8788
  ],
@@ -8773,13 +8809,13 @@
8773
8809
  "name": "--id",
8774
8810
  "value": "<receipt.id>",
8775
8811
  "required": false,
8776
- "description": "mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]"
8812
+ "description": "mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]"
8777
8813
  },
8778
8814
  {
8779
8815
  "name": "--outcome",
8780
8816
  "value": "success|partial|failure",
8781
8817
  "required": false,
8782
- "description": "mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]"
8818
+ "description": "mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]"
8783
8819
  },
8784
8820
  {
8785
8821
  "name": "--root",
@@ -8797,7 +8833,7 @@
8797
8833
  "name": "--work-order-id",
8798
8834
  "value": "<order.id>",
8799
8835
  "required": false,
8800
- "description": "mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]"
8836
+ "description": "mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]"
8801
8837
  }
8802
8838
  ],
8803
8839
  "output_formats": [
@@ -8837,7 +8873,7 @@
8837
8873
  }
8838
8874
  ],
8839
8875
  "examples": [
8840
- " mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--evidence-hashes <sha256:...>] [--json]",
8876
+ " mdkg work receipt new \"<title>\" --id <receipt.id> --work-order-id <order.id> --outcome success|partial|failure [--receipt-status recorded|verified|rejected|superseded] [--redaction-policy refs_and_hashes_only|redacted_summary|external_private] [--contract-profile <name>] [--receipt-kind <kind>] [--redaction-class <class>] [--validation-policy-ref <ref>] [--evidence-policy-ref <ref>] [--evidence-hashes <sha256:...>] [--json]",
8841
8877
  " mdkg work receipt update <id-or-qid> [--receipt-status <status>] [--add-artifacts <...>] [--add-proof-refs <...>] [--add-attestation-refs <...>] [--add-evidence-hashes <sha256:...>] [--json]",
8842
8878
  " mdkg work receipt verify <id-or-qid> [--json]"
8843
8879
  ],
@@ -8964,7 +9000,7 @@
8964
9000
  "visibility": "public",
8965
9001
  "summary": "mdkg work validate command",
8966
9002
  "usage": [
8967
- " mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--json]"
9003
+ " mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--profile <name>] [--json]"
8968
9004
  ],
8969
9005
  "args": [
8970
9006
  {
@@ -8980,6 +9016,12 @@
8980
9016
  "required": false,
8981
9017
  "description": "--help, -h Show help"
8982
9018
  },
9019
+ {
9020
+ "name": "--profile",
9021
+ "value": "omni-room",
9022
+ "required": false,
9023
+ "description": "--profile omni-room applies explicit contract-profile validation after generic mirror validation; this is separate from mdkg pack --profile."
9024
+ },
8983
9025
  {
8984
9026
  "name": "--root",
8985
9027
  "value": null,
@@ -9026,7 +9068,7 @@
9026
9068
  }
9027
9069
  ],
9028
9070
  "examples": [
9029
- " mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--json]"
9071
+ " mdkg work validate [<id-or-qid>] [--type manifest|spec|work|work_order|receipt|feedback|dispute|proposal] [--profile <name>] [--json]"
9030
9072
  ],
9031
9073
  "docs": {
9032
9074
  "help_target": "mdkg help work validate",
@@ -9128,5 +9170,5 @@
9128
9170
  }
9129
9171
  }
9130
9172
  ],
9131
- "contract_hash": "35018c8d8e9827545d061882bc55ea42d3bdbfff1224ab6414aa8e53a443e4a0"
9173
+ "contract_hash": "65408d40dd065dfadcaa9bfe3626df5703dce2fe08ce1dd500e371899a8c4f7a"
9132
9174
  }