@uniqbit/mate-core 0.16.0 → 0.17.0-canary.2
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/package.json +1 -1
- package/src/cli/commands/companion/companion.ts +8 -0
- package/src/cli/commands/companion/prepare.ts +76 -0
- package/src/cli/commands/companion/register.ts +47 -0
- package/src/cli/commands/launch/claude.ts +5 -3
- package/src/cli/commands/launch/opencode.ts +5 -3
- package/src/cli/commands/launch/shared.ts +41 -12
- package/src/cli/commands/shared/companion-selection.ts +3 -1
- package/src/cli/commands/studio/index.ts +85 -6
- package/src/cli/commands/studio/routes.ts +1 -1
- package/src/cli/commands/studio/selection.ts +11 -2
- package/src/cli/commands/studio/server.ts +212 -17
- package/src/cli/commands/studio/vault.ts +607 -0
- package/src/cli/commands/studio/views/client.ts +141 -1
- package/src/cli/commands/studio/views/companion-selector.tsx +1 -1
- package/src/cli/commands/studio/views/document.tsx +136 -3
- package/src/cli/commands/studio/views/model.ts +13 -0
- package/src/cli/commands/studio/views/styles.ts +16 -0
- package/src/cli/main.ts +33 -4
- package/src/cli/usage.ts +6 -3
- package/src/index.ts +1 -0
- package/src/lib/context-mode-package.ts +7 -4
- package/src/lib/opencode-plugin-package.ts +10 -4
- package/src/lib/orchestrator/adapters/base.ts +65 -10
- package/src/lib/orchestrator/adapters/opencode.ts +4 -2
- package/src/lib/orchestrator/companion-registration.ts +73 -0
- package/src/lib/orchestrator/framework-context.ts +29 -3
- package/src/lib/orchestrator/launcher.ts +46 -22
- package/src/lib/orchestrator/projection-record.ts +24 -0
- package/src/lib/orchestrator/types.ts +11 -0
- package/src/lib/prebuilt-workspace-prepare.ts +152 -0
- package/src/lib/prebuilt-workspace.ts +236 -0
- package/src/lib/preinstalled-plugins.ts +82 -0
- package/src/lib/update-checker.ts +39 -0
- package/src/opencode/companion-hooks.ts +45 -20
- package/src/playbooks/companion-guidance.ts +1 -0
- package/src/runtime/companion-guidance.ts +61 -15
- package/src/runtime/env.ts +3 -3
- package/src/runtime/index.ts +1 -0
- package/src/tools/setup/__snapshots__/runtime-surface-golden.test.ts.snap +127 -77
- package/src/tools/setup/capabilities/context-mode.ts +5 -0
- package/src/tools/setup/plugin.ts +7 -1
- package/src/tools/setup/providers/opencode.ts +24 -5
|
@@ -86,9 +86,9 @@ exports[`runtime surface golden fixtures setup graphify × claude 2`] = `
|
|
|
86
86
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
87
87
|
<context>
|
|
88
88
|
<paths>
|
|
89
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
90
89
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
91
90
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
91
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
92
92
|
</paths>
|
|
93
93
|
<cli-tools>
|
|
94
94
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -103,6 +103,8 @@ exports[`runtime surface golden fixtures setup graphify × claude 2`] = `
|
|
|
103
103
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
104
104
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
105
105
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
106
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
107
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
106
108
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
107
109
|
</mandatory-rules>
|
|
108
110
|
</companion-policy>
|
|
@@ -239,7 +241,7 @@ exports[`runtime surface golden fixtures setup graphify × opencode 1`] = `
|
|
|
239
241
|
"reserved": 15000,
|
|
240
242
|
},
|
|
241
243
|
"plugin": [
|
|
242
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
244
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
243
245
|
],
|
|
244
246
|
"references": {
|
|
245
247
|
"mate": "..",
|
|
@@ -275,7 +277,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
275
277
|
"opencodeTui": {
|
|
276
278
|
"$schema": "https://opencode.ai/tui.json",
|
|
277
279
|
"plugin": [
|
|
278
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
280
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
279
281
|
],
|
|
280
282
|
},
|
|
281
283
|
}
|
|
@@ -307,9 +309,9 @@ exports[`runtime surface golden fixtures setup graphify × opencode 2`] = `
|
|
|
307
309
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
308
310
|
<context>
|
|
309
311
|
<paths>
|
|
310
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
311
312
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
312
313
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
314
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
313
315
|
</paths>
|
|
314
316
|
<cli-tools>
|
|
315
317
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -324,6 +326,8 @@ exports[`runtime surface golden fixtures setup graphify × opencode 2`] = `
|
|
|
324
326
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
325
327
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
326
328
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
329
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
330
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
327
331
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
328
332
|
</mandatory-rules>
|
|
329
333
|
</companion-policy>"
|
|
@@ -363,7 +367,7 @@ exports[`runtime surface golden fixtures setup graphify × opencode 3`] = `
|
|
|
363
367
|
],
|
|
364
368
|
"kind": "list",
|
|
365
369
|
"values": [
|
|
366
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
370
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
367
371
|
],
|
|
368
372
|
},
|
|
369
373
|
{
|
|
@@ -456,7 +460,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
456
460
|
"reserved": 15000,
|
|
457
461
|
},
|
|
458
462
|
"plugin": [
|
|
459
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
463
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
460
464
|
],
|
|
461
465
|
"references": {
|
|
462
466
|
"mate": "..",
|
|
@@ -492,7 +496,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
492
496
|
"opencodeTui": {
|
|
493
497
|
"$schema": "https://opencode.ai/tui.json",
|
|
494
498
|
"plugin": [
|
|
495
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
499
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
496
500
|
],
|
|
497
501
|
},
|
|
498
502
|
}
|
|
@@ -511,9 +515,9 @@ exports[`runtime surface golden fixtures setup graphify × claude+opencode 2`] =
|
|
|
511
515
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
512
516
|
<context>
|
|
513
517
|
<paths>
|
|
514
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
515
518
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
516
519
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
520
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
517
521
|
</paths>
|
|
518
522
|
<cli-tools>
|
|
519
523
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -528,6 +532,8 @@ exports[`runtime surface golden fixtures setup graphify × claude+opencode 2`] =
|
|
|
528
532
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
529
533
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
530
534
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
535
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
536
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
531
537
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
532
538
|
</mandatory-rules>
|
|
533
539
|
</companion-policy>
|
|
@@ -579,9 +585,9 @@ exports[`runtime surface golden fixtures setup graphify × claude+opencode 2`] =
|
|
|
579
585
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
580
586
|
<context>
|
|
581
587
|
<paths>
|
|
582
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
583
588
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
584
589
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
590
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
585
591
|
</paths>
|
|
586
592
|
<cli-tools>
|
|
587
593
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -596,6 +602,8 @@ exports[`runtime surface golden fixtures setup graphify × claude+opencode 2`] =
|
|
|
596
602
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
597
603
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
598
604
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
605
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
606
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
599
607
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
600
608
|
</mandatory-rules>
|
|
601
609
|
</companion-policy>"
|
|
@@ -709,7 +717,7 @@ exports[`runtime surface golden fixtures setup graphify × claude+opencode 3`] =
|
|
|
709
717
|
],
|
|
710
718
|
"kind": "list",
|
|
711
719
|
"values": [
|
|
712
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
720
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
713
721
|
],
|
|
714
722
|
},
|
|
715
723
|
{
|
|
@@ -831,9 +839,9 @@ exports[`runtime surface golden fixtures setup tokensave × claude 2`] = `
|
|
|
831
839
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
832
840
|
<context>
|
|
833
841
|
<paths>
|
|
834
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
835
842
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
836
843
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
844
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
837
845
|
</paths>
|
|
838
846
|
<cli-tools>
|
|
839
847
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -848,6 +856,8 @@ exports[`runtime surface golden fixtures setup tokensave × claude 2`] = `
|
|
|
848
856
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
849
857
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
850
858
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
859
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
860
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
851
861
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
852
862
|
</mandatory-rules>
|
|
853
863
|
</companion-policy>
|
|
@@ -1009,7 +1019,7 @@ exports[`runtime surface golden fixtures setup tokensave × opencode 1`] = `
|
|
|
1009
1019
|
},
|
|
1010
1020
|
},
|
|
1011
1021
|
"plugin": [
|
|
1012
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1022
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1013
1023
|
],
|
|
1014
1024
|
"references": {
|
|
1015
1025
|
"mate": "..",
|
|
@@ -1024,7 +1034,7 @@ exports[`runtime surface golden fixtures setup tokensave × opencode 1`] = `
|
|
|
1024
1034
|
"opencodeTui": {
|
|
1025
1035
|
"$schema": "https://opencode.ai/tui.json",
|
|
1026
1036
|
"plugin": [
|
|
1027
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1037
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1028
1038
|
],
|
|
1029
1039
|
},
|
|
1030
1040
|
}
|
|
@@ -1053,9 +1063,9 @@ exports[`runtime surface golden fixtures setup tokensave × opencode 2`] = `
|
|
|
1053
1063
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1054
1064
|
<context>
|
|
1055
1065
|
<paths>
|
|
1056
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1057
1066
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
1058
1067
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
1068
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1059
1069
|
</paths>
|
|
1060
1070
|
<cli-tools>
|
|
1061
1071
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -1070,6 +1080,8 @@ exports[`runtime surface golden fixtures setup tokensave × opencode 2`] = `
|
|
|
1070
1080
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
1071
1081
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
1072
1082
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
1083
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
1084
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1073
1085
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1074
1086
|
</mandatory-rules>
|
|
1075
1087
|
</companion-policy>"
|
|
@@ -1109,7 +1121,7 @@ exports[`runtime surface golden fixtures setup tokensave × opencode 3`] = `
|
|
|
1109
1121
|
],
|
|
1110
1122
|
"kind": "list",
|
|
1111
1123
|
"values": [
|
|
1112
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1124
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1113
1125
|
],
|
|
1114
1126
|
},
|
|
1115
1127
|
{
|
|
@@ -1245,7 +1257,7 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 1`]
|
|
|
1245
1257
|
},
|
|
1246
1258
|
},
|
|
1247
1259
|
"plugin": [
|
|
1248
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1260
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1249
1261
|
],
|
|
1250
1262
|
"references": {
|
|
1251
1263
|
"mate": "..",
|
|
@@ -1260,7 +1272,7 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 1`]
|
|
|
1260
1272
|
"opencodeTui": {
|
|
1261
1273
|
"$schema": "https://opencode.ai/tui.json",
|
|
1262
1274
|
"plugin": [
|
|
1263
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1275
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1264
1276
|
],
|
|
1265
1277
|
},
|
|
1266
1278
|
}
|
|
@@ -1279,9 +1291,9 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 2`]
|
|
|
1279
1291
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1280
1292
|
<context>
|
|
1281
1293
|
<paths>
|
|
1282
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
1283
1294
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
1284
1295
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
1296
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
1285
1297
|
</paths>
|
|
1286
1298
|
<cli-tools>
|
|
1287
1299
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -1296,6 +1308,8 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 2`]
|
|
|
1296
1308
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
1297
1309
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
1298
1310
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
1311
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
1312
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1299
1313
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1300
1314
|
</mandatory-rules>
|
|
1301
1315
|
</companion-policy>
|
|
@@ -1341,9 +1355,9 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 2`]
|
|
|
1341
1355
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1342
1356
|
<context>
|
|
1343
1357
|
<paths>
|
|
1344
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1345
1358
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
1346
1359
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
1360
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1347
1361
|
</paths>
|
|
1348
1362
|
<cli-tools>
|
|
1349
1363
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -1358,6 +1372,8 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 2`]
|
|
|
1358
1372
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
1359
1373
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
1360
1374
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
1375
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
1376
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1361
1377
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1362
1378
|
</mandatory-rules>
|
|
1363
1379
|
</companion-policy>"
|
|
@@ -1489,7 +1505,7 @@ exports[`runtime surface golden fixtures setup tokensave × claude+opencode 3`]
|
|
|
1489
1505
|
],
|
|
1490
1506
|
"kind": "list",
|
|
1491
1507
|
"values": [
|
|
1492
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1508
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1493
1509
|
],
|
|
1494
1510
|
},
|
|
1495
1511
|
{
|
|
@@ -1579,9 +1595,9 @@ exports[`runtime surface golden fixtures setup context-mode × claude 2`] = `
|
|
|
1579
1595
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1580
1596
|
<context>
|
|
1581
1597
|
<paths>
|
|
1582
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
1583
1598
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
1584
1599
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
1600
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
1585
1601
|
</paths>
|
|
1586
1602
|
<cli-tools>
|
|
1587
1603
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -1596,6 +1612,8 @@ exports[`runtime surface golden fixtures setup context-mode × claude 2`] = `
|
|
|
1596
1612
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
1597
1613
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
1598
1614
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
1615
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
1616
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1599
1617
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1600
1618
|
</mandatory-rules>
|
|
1601
1619
|
</companion-policy>"
|
|
@@ -1729,7 +1747,7 @@ Canonical Mate policy and any more specific tool-routing instructions remain aut
|
|
|
1729
1747
|
"reserved": 15000,
|
|
1730
1748
|
},
|
|
1731
1749
|
"plugin": [
|
|
1732
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1750
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1733
1751
|
"context-mode@1.0.169",
|
|
1734
1752
|
],
|
|
1735
1753
|
"references": {
|
|
@@ -1745,7 +1763,7 @@ Canonical Mate policy and any more specific tool-routing instructions remain aut
|
|
|
1745
1763
|
"opencodeTui": {
|
|
1746
1764
|
"$schema": "https://opencode.ai/tui.json",
|
|
1747
1765
|
"plugin": [
|
|
1748
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1766
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1749
1767
|
"context-mode@1.0.169",
|
|
1750
1768
|
],
|
|
1751
1769
|
},
|
|
@@ -1767,9 +1785,9 @@ exports[`runtime surface golden fixtures setup context-mode × opencode 2`] = `
|
|
|
1767
1785
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1768
1786
|
<context>
|
|
1769
1787
|
<paths>
|
|
1770
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1771
1788
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
1772
1789
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
1790
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1773
1791
|
</paths>
|
|
1774
1792
|
<cli-tools>
|
|
1775
1793
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -1784,6 +1802,8 @@ exports[`runtime surface golden fixtures setup context-mode × opencode 2`] = `
|
|
|
1784
1802
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
1785
1803
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
1786
1804
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
1805
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
1806
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1787
1807
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1788
1808
|
</mandatory-rules>
|
|
1789
1809
|
</companion-policy>"
|
|
@@ -1823,7 +1843,7 @@ exports[`runtime surface golden fixtures setup context-mode × opencode 3`] = `
|
|
|
1823
1843
|
],
|
|
1824
1844
|
"kind": "list",
|
|
1825
1845
|
"values": [
|
|
1826
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1846
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1827
1847
|
],
|
|
1828
1848
|
},
|
|
1829
1849
|
{
|
|
@@ -1893,7 +1913,7 @@ Canonical Mate policy and any more specific tool-routing instructions remain aut
|
|
|
1893
1913
|
"reserved": 15000,
|
|
1894
1914
|
},
|
|
1895
1915
|
"plugin": [
|
|
1896
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1916
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1897
1917
|
"context-mode@1.0.169",
|
|
1898
1918
|
],
|
|
1899
1919
|
"references": {
|
|
@@ -1909,7 +1929,7 @@ Canonical Mate policy and any more specific tool-routing instructions remain aut
|
|
|
1909
1929
|
"opencodeTui": {
|
|
1910
1930
|
"$schema": "https://opencode.ai/tui.json",
|
|
1911
1931
|
"plugin": [
|
|
1912
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
1932
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
1913
1933
|
"context-mode@1.0.169",
|
|
1914
1934
|
],
|
|
1915
1935
|
},
|
|
@@ -1929,9 +1949,9 @@ exports[`runtime surface golden fixtures setup context-mode × claude+opencode 2
|
|
|
1929
1949
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1930
1950
|
<context>
|
|
1931
1951
|
<paths>
|
|
1932
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
1933
1952
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
1934
1953
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
1954
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
1935
1955
|
</paths>
|
|
1936
1956
|
<cli-tools>
|
|
1937
1957
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -1946,6 +1966,8 @@ exports[`runtime surface golden fixtures setup context-mode × claude+opencode 2
|
|
|
1946
1966
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
1947
1967
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
1948
1968
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
1969
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
1970
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1949
1971
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1950
1972
|
</mandatory-rules>
|
|
1951
1973
|
</companion-policy>"
|
|
@@ -1977,9 +1999,9 @@ exports[`runtime surface golden fixtures setup context-mode × claude+opencode 2
|
|
|
1977
1999
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
1978
2000
|
<context>
|
|
1979
2001
|
<paths>
|
|
1980
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1981
2002
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
1982
2003
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
2004
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
1983
2005
|
</paths>
|
|
1984
2006
|
<cli-tools>
|
|
1985
2007
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -1994,6 +2016,8 @@ exports[`runtime surface golden fixtures setup context-mode × claude+opencode 2
|
|
|
1994
2016
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
1995
2017
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
1996
2018
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
2019
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
2020
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
1997
2021
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
1998
2022
|
</mandatory-rules>
|
|
1999
2023
|
</companion-policy>"
|
|
@@ -2105,7 +2129,7 @@ exports[`runtime surface golden fixtures setup context-mode × claude+opencode 3
|
|
|
2105
2129
|
],
|
|
2106
2130
|
"kind": "list",
|
|
2107
2131
|
"values": [
|
|
2108
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2132
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2109
2133
|
],
|
|
2110
2134
|
},
|
|
2111
2135
|
{
|
|
@@ -2210,9 +2234,9 @@ exports[`runtime surface golden fixtures setup react-doctor × claude 2`] = `
|
|
|
2210
2234
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
2211
2235
|
<context>
|
|
2212
2236
|
<paths>
|
|
2213
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
2214
2237
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
2215
2238
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
2239
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
2216
2240
|
</paths>
|
|
2217
2241
|
<cli-tools>
|
|
2218
2242
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -2227,6 +2251,8 @@ exports[`runtime surface golden fixtures setup react-doctor × claude 2`] = `
|
|
|
2227
2251
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
2228
2252
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
2229
2253
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
2254
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
2255
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
2230
2256
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
2231
2257
|
</mandatory-rules>
|
|
2232
2258
|
</companion-policy>"
|
|
@@ -2351,7 +2377,7 @@ exports[`runtime surface golden fixtures setup react-doctor × opencode 1`] = `
|
|
|
2351
2377
|
"reserved": 15000,
|
|
2352
2378
|
},
|
|
2353
2379
|
"plugin": [
|
|
2354
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2380
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2355
2381
|
],
|
|
2356
2382
|
"references": {
|
|
2357
2383
|
"mate": "..",
|
|
@@ -2369,7 +2395,7 @@ exports[`runtime surface golden fixtures setup react-doctor × opencode 1`] = `
|
|
|
2369
2395
|
"opencodeTui": {
|
|
2370
2396
|
"$schema": "https://opencode.ai/tui.json",
|
|
2371
2397
|
"plugin": [
|
|
2372
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2398
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2373
2399
|
],
|
|
2374
2400
|
},
|
|
2375
2401
|
}
|
|
@@ -2390,9 +2416,9 @@ exports[`runtime surface golden fixtures setup react-doctor × opencode 2`] = `
|
|
|
2390
2416
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
2391
2417
|
<context>
|
|
2392
2418
|
<paths>
|
|
2393
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
2394
2419
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
2395
2420
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
2421
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
2396
2422
|
</paths>
|
|
2397
2423
|
<cli-tools>
|
|
2398
2424
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -2407,6 +2433,8 @@ exports[`runtime surface golden fixtures setup react-doctor × opencode 2`] = `
|
|
|
2407
2433
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
2408
2434
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
2409
2435
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
2436
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
2437
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
2410
2438
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
2411
2439
|
</mandatory-rules>
|
|
2412
2440
|
</companion-policy>"
|
|
@@ -2446,7 +2474,7 @@ exports[`runtime surface golden fixtures setup react-doctor × opencode 3`] = `
|
|
|
2446
2474
|
],
|
|
2447
2475
|
"kind": "list",
|
|
2448
2476
|
"values": [
|
|
2449
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2477
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2450
2478
|
],
|
|
2451
2479
|
},
|
|
2452
2480
|
{
|
|
@@ -2539,7 +2567,7 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 1
|
|
|
2539
2567
|
"reserved": 15000,
|
|
2540
2568
|
},
|
|
2541
2569
|
"plugin": [
|
|
2542
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2570
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2543
2571
|
],
|
|
2544
2572
|
"references": {
|
|
2545
2573
|
"mate": "..",
|
|
@@ -2557,7 +2585,7 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 1
|
|
|
2557
2585
|
"opencodeTui": {
|
|
2558
2586
|
"$schema": "https://opencode.ai/tui.json",
|
|
2559
2587
|
"plugin": [
|
|
2560
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2588
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2561
2589
|
],
|
|
2562
2590
|
},
|
|
2563
2591
|
}
|
|
@@ -2576,9 +2604,9 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 2
|
|
|
2576
2604
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
2577
2605
|
<context>
|
|
2578
2606
|
<paths>
|
|
2579
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
2580
2607
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
2581
2608
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
2609
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
2582
2610
|
</paths>
|
|
2583
2611
|
<cli-tools>
|
|
2584
2612
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -2593,6 +2621,8 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 2
|
|
|
2593
2621
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
2594
2622
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
2595
2623
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
2624
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
2625
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
2596
2626
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
2597
2627
|
</mandatory-rules>
|
|
2598
2628
|
</companion-policy>"
|
|
@@ -2622,9 +2652,9 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 2
|
|
|
2622
2652
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
2623
2653
|
<context>
|
|
2624
2654
|
<paths>
|
|
2625
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
2626
2655
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
2627
2656
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
2657
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
2628
2658
|
</paths>
|
|
2629
2659
|
<cli-tools>
|
|
2630
2660
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -2639,6 +2669,8 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 2
|
|
|
2639
2669
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
2640
2670
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
2641
2671
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
2672
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
2673
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
2642
2674
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
2643
2675
|
</mandatory-rules>
|
|
2644
2676
|
</companion-policy>"
|
|
@@ -2751,7 +2783,7 @@ exports[`runtime surface golden fixtures setup react-doctor × claude+opencode 3
|
|
|
2751
2783
|
],
|
|
2752
2784
|
"kind": "list",
|
|
2753
2785
|
"values": [
|
|
2754
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
2786
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
2755
2787
|
],
|
|
2756
2788
|
},
|
|
2757
2789
|
{
|
|
@@ -2819,7 +2851,7 @@ exports[`runtime surface golden fixtures setup openspec × claude 1`] = `
|
|
|
2819
2851
|
},
|
|
2820
2852
|
},
|
|
2821
2853
|
"claudeSkills": {
|
|
2822
|
-
"mate-artifact-publish/SKILL.md": "
|
|
2854
|
+
"mate-artifact-publish/SKILL.md": "9ae069fc6d0d",
|
|
2823
2855
|
"mate-artifact-publish/references/openspec.md": "b5c986ed9bdc",
|
|
2824
2856
|
"mate-create-report/SKILL.md": "4dda64fab7b7",
|
|
2825
2857
|
"mate-domain-modeling/SKILL.md": "22f1d92b65ce",
|
|
@@ -2828,7 +2860,7 @@ exports[`runtime surface golden fixtures setup openspec × claude 1`] = `
|
|
|
2828
2860
|
"mate-grill-me/SKILL.md": "bbccd2654f71",
|
|
2829
2861
|
"mate-grill-with-docs/SKILL.md": "d79278237d49",
|
|
2830
2862
|
"mate-grilling/SKILL.md": "9fa3fb50cc73",
|
|
2831
|
-
"mate-interview-me/SKILL.md": "
|
|
2863
|
+
"mate-interview-me/SKILL.md": "ad5d76230917",
|
|
2832
2864
|
"mate-openspec-backfill/SKILL.md": "fa73daee9951",
|
|
2833
2865
|
"mate-show-me/SKILL.md": "3ecf5d44eb45",
|
|
2834
2866
|
"mate-simplify-code/SKILL.md": "5dd2abc9571b",
|
|
@@ -2857,9 +2889,9 @@ exports[`runtime surface golden fixtures setup openspec × claude 2`] = `
|
|
|
2857
2889
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
2858
2890
|
<context>
|
|
2859
2891
|
<paths>
|
|
2860
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
2861
2892
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
2862
2893
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
2894
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
2863
2895
|
</paths>
|
|
2864
2896
|
<cli-tools>
|
|
2865
2897
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -2874,7 +2906,10 @@ exports[`runtime surface golden fixtures setup openspec × claude 2`] = `
|
|
|
2874
2906
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
2875
2907
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
2876
2908
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
2909
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
2910
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
2877
2911
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
2912
|
+
<rule id="openspec-scope" severity="critical">In OpenSpec, the frontmatter repository identifies the Working Repository. areas are repository-relative paths within that repository. Canonical specs use repository plus flat areas; change artifacts use paired scopes entries. In a monorepo, an Area normally stops at the package root. A cross-repository change may declare multiple scopes, but each resulting spec remains owned by one repository, and each requirement must bind its Area explicitly.</rule>
|
|
2878
2913
|
<rule id="openspec-publish" severity="critical">Archiving an OpenSpec change is a local operation and publishes nothing. Publish through the mate-artifact-publish skill: it lists candidates with mate artifact pending --json, takes an explicit user selection, confirms the commit, tag, and push, then runs mate artifact publish "<name>" --json per selected change. That command is the only sanctioned publication; never hand-commit or hand-tag one. Publishing only publishes an already-archived change: archiving is a precondition, and running publish on a still-active change is an error that names openspec archive as the missing step. Publish never archives and never applies delta specs itself, so archive first — by the archive workflow or an already-synced flow such as openspec-sync-specs — and then publish. Publish also refuses to run anywhere but the companion's default branch.</rule>
|
|
2879
2914
|
</mandatory-rules>
|
|
2880
2915
|
</companion-policy>"
|
|
@@ -3012,7 +3047,7 @@ exports[`runtime surface golden fixtures setup openspec × opencode 1`] = `
|
|
|
3012
3047
|
"reserved": 15000,
|
|
3013
3048
|
},
|
|
3014
3049
|
"plugin": [
|
|
3015
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3050
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3016
3051
|
],
|
|
3017
3052
|
"references": {
|
|
3018
3053
|
"mate": "..",
|
|
@@ -3024,7 +3059,7 @@ exports[`runtime surface golden fixtures setup openspec × opencode 1`] = `
|
|
|
3024
3059
|
},
|
|
3025
3060
|
"opencodePlugins": {},
|
|
3026
3061
|
"opencodeSkills": {
|
|
3027
|
-
"mate-artifact-publish/SKILL.md": "
|
|
3062
|
+
"mate-artifact-publish/SKILL.md": "9ae069fc6d0d",
|
|
3028
3063
|
"mate-artifact-publish/references/openspec.md": "b5c986ed9bdc",
|
|
3029
3064
|
"mate-create-report/SKILL.md": "4dda64fab7b7",
|
|
3030
3065
|
"mate-domain-modeling/SKILL.md": "22f1d92b65ce",
|
|
@@ -3033,7 +3068,7 @@ exports[`runtime surface golden fixtures setup openspec × opencode 1`] = `
|
|
|
3033
3068
|
"mate-grill-me/SKILL.md": "bbccd2654f71",
|
|
3034
3069
|
"mate-grill-with-docs/SKILL.md": "d79278237d49",
|
|
3035
3070
|
"mate-grilling/SKILL.md": "9fa3fb50cc73",
|
|
3036
|
-
"mate-interview-me/SKILL.md": "
|
|
3071
|
+
"mate-interview-me/SKILL.md": "ad5d76230917",
|
|
3037
3072
|
"mate-openspec-backfill/SKILL.md": "fa73daee9951",
|
|
3038
3073
|
"mate-show-me/SKILL.md": "3ecf5d44eb45",
|
|
3039
3074
|
"mate-simplify-code/SKILL.md": "5dd2abc9571b",
|
|
@@ -3045,7 +3080,7 @@ exports[`runtime surface golden fixtures setup openspec × opencode 1`] = `
|
|
|
3045
3080
|
"opencodeTui": {
|
|
3046
3081
|
"$schema": "https://opencode.ai/tui.json",
|
|
3047
3082
|
"plugin": [
|
|
3048
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3083
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3049
3084
|
],
|
|
3050
3085
|
},
|
|
3051
3086
|
}
|
|
@@ -3066,9 +3101,9 @@ exports[`runtime surface golden fixtures setup openspec × opencode 2`] = `
|
|
|
3066
3101
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
3067
3102
|
<context>
|
|
3068
3103
|
<paths>
|
|
3069
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
3070
3104
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
3071
3105
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
3106
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
3072
3107
|
</paths>
|
|
3073
3108
|
<cli-tools>
|
|
3074
3109
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -3083,7 +3118,10 @@ exports[`runtime surface golden fixtures setup openspec × opencode 2`] = `
|
|
|
3083
3118
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
3084
3119
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
3085
3120
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
3121
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
3122
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
3086
3123
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
3124
|
+
<rule id="openspec-scope" severity="critical">In OpenSpec, the frontmatter repository identifies the Working Repository. areas are repository-relative paths within that repository. Canonical specs use repository plus flat areas; change artifacts use paired scopes entries. In a monorepo, an Area normally stops at the package root. A cross-repository change may declare multiple scopes, but each resulting spec remains owned by one repository, and each requirement must bind its Area explicitly.</rule>
|
|
3087
3125
|
<rule id="openspec-publish" severity="critical">Archiving an OpenSpec change is a local operation and publishes nothing. Publish through the mate-artifact-publish skill: it lists candidates with mate artifact pending --json, takes an explicit user selection, confirms the commit, tag, and push, then runs mate artifact publish "<name>" --json per selected change. That command is the only sanctioned publication; never hand-commit or hand-tag one. Publishing only publishes an already-archived change: archiving is a precondition, and running publish on a still-active change is an error that names openspec archive as the missing step. Publish never archives and never applies delta specs itself, so archive first — by the archive workflow or an already-synced flow such as openspec-sync-specs — and then publish. Publish also refuses to run anywhere but the companion's default branch.</rule>
|
|
3088
3126
|
</mandatory-rules>
|
|
3089
3127
|
</companion-policy>"
|
|
@@ -3123,7 +3161,7 @@ exports[`runtime surface golden fixtures setup openspec × opencode 3`] = `
|
|
|
3123
3161
|
],
|
|
3124
3162
|
"kind": "list",
|
|
3125
3163
|
"values": [
|
|
3126
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3164
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3127
3165
|
],
|
|
3128
3166
|
},
|
|
3129
3167
|
{
|
|
@@ -3191,7 +3229,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 1`] =
|
|
|
3191
3229
|
},
|
|
3192
3230
|
},
|
|
3193
3231
|
"claudeSkills": {
|
|
3194
|
-
"mate-artifact-publish/SKILL.md": "
|
|
3232
|
+
"mate-artifact-publish/SKILL.md": "9ae069fc6d0d",
|
|
3195
3233
|
"mate-artifact-publish/references/openspec.md": "b5c986ed9bdc",
|
|
3196
3234
|
"mate-create-report/SKILL.md": "4dda64fab7b7",
|
|
3197
3235
|
"mate-domain-modeling/SKILL.md": "22f1d92b65ce",
|
|
@@ -3200,7 +3238,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 1`] =
|
|
|
3200
3238
|
"mate-grill-me/SKILL.md": "bbccd2654f71",
|
|
3201
3239
|
"mate-grill-with-docs/SKILL.md": "d79278237d49",
|
|
3202
3240
|
"mate-grilling/SKILL.md": "9fa3fb50cc73",
|
|
3203
|
-
"mate-interview-me/SKILL.md": "
|
|
3241
|
+
"mate-interview-me/SKILL.md": "ad5d76230917",
|
|
3204
3242
|
"mate-openspec-backfill/SKILL.md": "fa73daee9951",
|
|
3205
3243
|
"mate-show-me/SKILL.md": "3ecf5d44eb45",
|
|
3206
3244
|
"mate-simplify-code/SKILL.md": "5dd2abc9571b",
|
|
@@ -3217,7 +3255,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 1`] =
|
|
|
3217
3255
|
"reserved": 15000,
|
|
3218
3256
|
},
|
|
3219
3257
|
"plugin": [
|
|
3220
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3258
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3221
3259
|
],
|
|
3222
3260
|
"references": {
|
|
3223
3261
|
"mate": "..",
|
|
@@ -3229,7 +3267,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 1`] =
|
|
|
3229
3267
|
},
|
|
3230
3268
|
"opencodePlugins": {},
|
|
3231
3269
|
"opencodeSkills": {
|
|
3232
|
-
"mate-artifact-publish/SKILL.md": "
|
|
3270
|
+
"mate-artifact-publish/SKILL.md": "9ae069fc6d0d",
|
|
3233
3271
|
"mate-artifact-publish/references/openspec.md": "b5c986ed9bdc",
|
|
3234
3272
|
"mate-create-report/SKILL.md": "4dda64fab7b7",
|
|
3235
3273
|
"mate-domain-modeling/SKILL.md": "22f1d92b65ce",
|
|
@@ -3238,7 +3276,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 1`] =
|
|
|
3238
3276
|
"mate-grill-me/SKILL.md": "bbccd2654f71",
|
|
3239
3277
|
"mate-grill-with-docs/SKILL.md": "d79278237d49",
|
|
3240
3278
|
"mate-grilling/SKILL.md": "9fa3fb50cc73",
|
|
3241
|
-
"mate-interview-me/SKILL.md": "
|
|
3279
|
+
"mate-interview-me/SKILL.md": "ad5d76230917",
|
|
3242
3280
|
"mate-openspec-backfill/SKILL.md": "fa73daee9951",
|
|
3243
3281
|
"mate-show-me/SKILL.md": "3ecf5d44eb45",
|
|
3244
3282
|
"mate-simplify-code/SKILL.md": "5dd2abc9571b",
|
|
@@ -3250,7 +3288,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 1`] =
|
|
|
3250
3288
|
"opencodeTui": {
|
|
3251
3289
|
"$schema": "https://opencode.ai/tui.json",
|
|
3252
3290
|
"plugin": [
|
|
3253
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3291
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3254
3292
|
],
|
|
3255
3293
|
},
|
|
3256
3294
|
}
|
|
@@ -3269,9 +3307,9 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 2`] =
|
|
|
3269
3307
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
3270
3308
|
<context>
|
|
3271
3309
|
<paths>
|
|
3272
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
3273
3310
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
3274
3311
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
3312
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
3275
3313
|
</paths>
|
|
3276
3314
|
<cli-tools>
|
|
3277
3315
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -3286,7 +3324,10 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 2`] =
|
|
|
3286
3324
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
3287
3325
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
3288
3326
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
3327
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
3328
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
3289
3329
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
3330
|
+
<rule id="openspec-scope" severity="critical">In OpenSpec, the frontmatter repository identifies the Working Repository. areas are repository-relative paths within that repository. Canonical specs use repository plus flat areas; change artifacts use paired scopes entries. In a monorepo, an Area normally stops at the package root. A cross-repository change may declare multiple scopes, but each resulting spec remains owned by one repository, and each requirement must bind its Area explicitly.</rule>
|
|
3290
3331
|
<rule id="openspec-publish" severity="critical">Archiving an OpenSpec change is a local operation and publishes nothing. Publish through the mate-artifact-publish skill: it lists candidates with mate artifact pending --json, takes an explicit user selection, confirms the commit, tag, and push, then runs mate artifact publish "<name>" --json per selected change. That command is the only sanctioned publication; never hand-commit or hand-tag one. Publishing only publishes an already-archived change: archiving is a precondition, and running publish on a still-active change is an error that names openspec archive as the missing step. Publish never archives and never applies delta specs itself, so archive first — by the archive workflow or an already-synced flow such as openspec-sync-specs — and then publish. Publish also refuses to run anywhere but the companion's default branch.</rule>
|
|
3291
3332
|
</mandatory-rules>
|
|
3292
3333
|
</companion-policy>"
|
|
@@ -3316,9 +3357,9 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 2`] =
|
|
|
3316
3357
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
3317
3358
|
<context>
|
|
3318
3359
|
<paths>
|
|
3319
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
3320
3360
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
3321
3361
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
3362
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
3322
3363
|
</paths>
|
|
3323
3364
|
<cli-tools>
|
|
3324
3365
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -3333,7 +3374,10 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 2`] =
|
|
|
3333
3374
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
3334
3375
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
3335
3376
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
3377
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
3378
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
3336
3379
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
3380
|
+
<rule id="openspec-scope" severity="critical">In OpenSpec, the frontmatter repository identifies the Working Repository. areas are repository-relative paths within that repository. Canonical specs use repository plus flat areas; change artifacts use paired scopes entries. In a monorepo, an Area normally stops at the package root. A cross-repository change may declare multiple scopes, but each resulting spec remains owned by one repository, and each requirement must bind its Area explicitly.</rule>
|
|
3337
3381
|
<rule id="openspec-publish" severity="critical">Archiving an OpenSpec change is a local operation and publishes nothing. Publish through the mate-artifact-publish skill: it lists candidates with mate artifact pending --json, takes an explicit user selection, confirms the commit, tag, and push, then runs mate artifact publish "<name>" --json per selected change. That command is the only sanctioned publication; never hand-commit or hand-tag one. Publishing only publishes an already-archived change: archiving is a precondition, and running publish on a still-active change is an error that names openspec archive as the missing step. Publish never archives and never applies delta specs itself, so archive first — by the archive workflow or an already-synced flow such as openspec-sync-specs — and then publish. Publish also refuses to run anywhere but the companion's default branch.</rule>
|
|
3338
3382
|
</mandatory-rules>
|
|
3339
3383
|
</companion-policy>"
|
|
@@ -3459,7 +3503,7 @@ exports[`runtime surface golden fixtures setup openspec × claude+opencode 3`] =
|
|
|
3459
3503
|
],
|
|
3460
3504
|
"kind": "list",
|
|
3461
3505
|
"values": [
|
|
3462
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3506
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3463
3507
|
],
|
|
3464
3508
|
},
|
|
3465
3509
|
{
|
|
@@ -3641,7 +3685,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
3641
3685
|
"Outputs land in $GRAPHIFY_OUT by default.
|
|
3642
3686
|
"
|
|
3643
3687
|
,
|
|
3644
|
-
"mate-artifact-publish/SKILL.md": "
|
|
3688
|
+
"mate-artifact-publish/SKILL.md": "9ae069fc6d0d",
|
|
3645
3689
|
"mate-artifact-publish/references/openspec.md": "b5c986ed9bdc",
|
|
3646
3690
|
"mate-create-report/SKILL.md": "4dda64fab7b7",
|
|
3647
3691
|
"mate-domain-modeling/SKILL.md": "22f1d92b65ce",
|
|
@@ -3650,7 +3694,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
3650
3694
|
"mate-grill-me/SKILL.md": "bbccd2654f71",
|
|
3651
3695
|
"mate-grill-with-docs/SKILL.md": "d79278237d49",
|
|
3652
3696
|
"mate-grilling/SKILL.md": "9fa3fb50cc73",
|
|
3653
|
-
"mate-interview-me/SKILL.md": "
|
|
3697
|
+
"mate-interview-me/SKILL.md": "ad5d76230917",
|
|
3654
3698
|
"mate-openspec-backfill/SKILL.md": "fa73daee9951",
|
|
3655
3699
|
"mate-show-me/SKILL.md": "3ecf5d44eb45",
|
|
3656
3700
|
"mate-simplify-code/SKILL.md": "5dd2abc9571b",
|
|
@@ -3679,7 +3723,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
3679
3723
|
},
|
|
3680
3724
|
},
|
|
3681
3725
|
"plugin": [
|
|
3682
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3726
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3683
3727
|
"context-mode@1.0.169",
|
|
3684
3728
|
],
|
|
3685
3729
|
"references": {
|
|
@@ -3712,7 +3756,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
3712
3756
|
"Outputs land in $GRAPHIFY_OUT by default.
|
|
3713
3757
|
"
|
|
3714
3758
|
,
|
|
3715
|
-
"mate-artifact-publish/SKILL.md": "
|
|
3759
|
+
"mate-artifact-publish/SKILL.md": "9ae069fc6d0d",
|
|
3716
3760
|
"mate-artifact-publish/references/openspec.md": "b5c986ed9bdc",
|
|
3717
3761
|
"mate-create-report/SKILL.md": "4dda64fab7b7",
|
|
3718
3762
|
"mate-domain-modeling/SKILL.md": "22f1d92b65ce",
|
|
@@ -3721,7 +3765,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
3721
3765
|
"mate-grill-me/SKILL.md": "bbccd2654f71",
|
|
3722
3766
|
"mate-grill-with-docs/SKILL.md": "d79278237d49",
|
|
3723
3767
|
"mate-grilling/SKILL.md": "9fa3fb50cc73",
|
|
3724
|
-
"mate-interview-me/SKILL.md": "
|
|
3768
|
+
"mate-interview-me/SKILL.md": "ad5d76230917",
|
|
3725
3769
|
"mate-openspec-backfill/SKILL.md": "fa73daee9951",
|
|
3726
3770
|
"mate-show-me/SKILL.md": "3ecf5d44eb45",
|
|
3727
3771
|
"mate-simplify-code/SKILL.md": "5dd2abc9571b",
|
|
@@ -3735,7 +3779,7 @@ Write chunks to $GRAPHIFY_OUT and read $GRAPHIFY_OUT later.
|
|
|
3735
3779
|
"opencodeTui": {
|
|
3736
3780
|
"$schema": "https://opencode.ai/tui.json",
|
|
3737
3781
|
"plugin": [
|
|
3738
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
3782
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
3739
3783
|
"context-mode@1.0.169",
|
|
3740
3784
|
],
|
|
3741
3785
|
},
|
|
@@ -3755,9 +3799,9 @@ exports[`runtime surface golden fixtures setup all capabilities × claude+openco
|
|
|
3755
3799
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
3756
3800
|
<context>
|
|
3757
3801
|
<paths>
|
|
3758
|
-
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
3759
3802
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH"><root>/companion</path>
|
|
3760
3803
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH"><wrapper-bin></path>
|
|
3804
|
+
<path role="working-repository" env="MATE_REPO_PATH"><root>/working</path>
|
|
3761
3805
|
</paths>
|
|
3762
3806
|
<cli-tools>
|
|
3763
3807
|
<cli name="openspec" type="wrapper" invokeAs="<wrapper-bin>/openspec" />
|
|
@@ -3772,7 +3816,10 @@ exports[`runtime surface golden fixtures setup all capabilities × claude+openco
|
|
|
3772
3816
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in <root>/working. Agent-artifacts belong in <root>/companion.</rule>
|
|
3773
3817
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in <root>/working when the exact path is gitignored AND intentionally local-only; otherwise use <root>/companion.</rule>
|
|
3774
3818
|
<rule id="guardrail" severity="critical">Bad artifact writes to <root>/working are rejected. Classify correctly first.</rule>
|
|
3819
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
3820
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
3775
3821
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: <wrapper-bin>/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
3822
|
+
<rule id="openspec-scope" severity="critical">In OpenSpec, the frontmatter repository identifies the Working Repository. areas are repository-relative paths within that repository. Canonical specs use repository plus flat areas; change artifacts use paired scopes entries. In a monorepo, an Area normally stops at the package root. A cross-repository change may declare multiple scopes, but each resulting spec remains owned by one repository, and each requirement must bind its Area explicitly.</rule>
|
|
3776
3823
|
<rule id="openspec-publish" severity="critical">Archiving an OpenSpec change is a local operation and publishes nothing. Publish through the mate-artifact-publish skill: it lists candidates with mate artifact pending --json, takes an explicit user selection, confirms the commit, tag, and push, then runs mate artifact publish "<name>" --json per selected change. That command is the only sanctioned publication; never hand-commit or hand-tag one. Publishing only publishes an already-archived change: archiving is a precondition, and running publish on a still-active change is an error that names openspec archive as the missing step. Publish never archives and never applies delta specs itself, so archive first — by the archive workflow or an already-synced flow such as openspec-sync-specs — and then publish. Publish also refuses to run anywhere but the companion's default branch.</rule>
|
|
3777
3824
|
</mandatory-rules>
|
|
3778
3825
|
</companion-policy>
|
|
@@ -3826,9 +3873,9 @@ exports[`runtime surface golden fixtures setup all capabilities × claude+openco
|
|
|
3826
3873
|
<overview>You are operating inside the mate companion repository.</overview>
|
|
3827
3874
|
<context>
|
|
3828
3875
|
<paths>
|
|
3829
|
-
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
3830
3876
|
<path role="companion-repository" env="MATE_ARTIFACT_PATH">$MATE_ARTIFACT_PATH</path>
|
|
3831
3877
|
<path role="package-wrapper-bin" env="MATE_WRAPPER_BIN_PATH">$MATE_WRAPPER_BIN_PATH</path>
|
|
3878
|
+
<path role="working-repository" env="MATE_REPO_PATH">$MATE_REPO_PATH</path>
|
|
3832
3879
|
</paths>
|
|
3833
3880
|
<cli-tools>
|
|
3834
3881
|
<cli name="openspec" type="wrapper" invokeAs="$MATE_WRAPPER_BIN_PATH/openspec" />
|
|
@@ -3843,7 +3890,10 @@ exports[`runtime surface golden fixtures setup all capabilities × claude+openco
|
|
|
3843
3890
|
<rule id="product-code-location" severity="critical">Product code (README, docs, source, tests) belongs in $MATE_REPO_PATH. Agent-artifacts belong in $MATE_ARTIFACT_PATH.</rule>
|
|
3844
3891
|
<rule id="local-artifact-exception" severity="critical">Only write artifacts in $MATE_REPO_PATH when the exact path is gitignored AND intentionally local-only; otherwise use $MATE_ARTIFACT_PATH.</rule>
|
|
3845
3892
|
<rule id="guardrail" severity="critical">Bad artifact writes to $MATE_REPO_PATH are rejected. Classify correctly first.</rule>
|
|
3893
|
+
<rule id="companion-multi-repository" severity="critical">This Companion Repository may serve multiple Working Repositories. The working-repository path above identifies this session's single primary Working Repository, not the companion's full repository set. The Companion Repository is the shared artifact and context plane; the primary Working Repository is the product-code plane.</rule>
|
|
3894
|
+
<rule id="repository-area-scope" severity="critical">For domain modeling, identify the canonical Working Repository and its repository-relative Area first. A checkout basename or Area alone is not a repository identity. Shared context applies only when the Companion Repository's CONTEXT-MAP explicitly maps it to the current repository and Area.</rule>
|
|
3846
3895
|
<rule id="wrapper-only-cli-execution" severity="critical">For every CLI declared in cli-tools, invoke the exact path in its invokeAs attribute. Correct: $MATE_WRAPPER_BIN_PATH/openspec status ... . Incorrect: openspec status ... . Do not run bare openspec or graphify commands and do not rely on PATH, aliases, or shell functions. If the exact wrapper path is unavailable, stop and report it.</rule>
|
|
3896
|
+
<rule id="openspec-scope" severity="critical">In OpenSpec, the frontmatter repository identifies the Working Repository. areas are repository-relative paths within that repository. Canonical specs use repository plus flat areas; change artifacts use paired scopes entries. In a monorepo, an Area normally stops at the package root. A cross-repository change may declare multiple scopes, but each resulting spec remains owned by one repository, and each requirement must bind its Area explicitly.</rule>
|
|
3847
3897
|
<rule id="openspec-publish" severity="critical">Archiving an OpenSpec change is a local operation and publishes nothing. Publish through the mate-artifact-publish skill: it lists candidates with mate artifact pending --json, takes an explicit user selection, confirms the commit, tag, and push, then runs mate artifact publish "<name>" --json per selected change. That command is the only sanctioned publication; never hand-commit or hand-tag one. Publishing only publishes an already-archived change: archiving is a precondition, and running publish on a still-active change is an error that names openspec archive as the missing step. Publish never archives and never applies delta specs itself, so archive first — by the archive workflow or an already-synced flow such as openspec-sync-specs — and then publish. Publish also refuses to run anywhere but the companion's default branch.</rule>
|
|
3848
3898
|
</mandatory-rules>
|
|
3849
3899
|
</companion-policy>"
|
|
@@ -4000,7 +4050,7 @@ exports[`runtime surface golden fixtures setup all capabilities × claude+openco
|
|
|
4000
4050
|
],
|
|
4001
4051
|
"kind": "list",
|
|
4002
4052
|
"values": [
|
|
4003
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4053
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4004
4054
|
],
|
|
4005
4055
|
},
|
|
4006
4056
|
{
|
|
@@ -4076,7 +4126,7 @@ exports[`runtime surface golden fixtures teardown graphify × claude+opencode 1`
|
|
|
4076
4126
|
"reserved": 15000,
|
|
4077
4127
|
},
|
|
4078
4128
|
"plugin": [
|
|
4079
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4129
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4080
4130
|
],
|
|
4081
4131
|
"references": {
|
|
4082
4132
|
"mate": "..",
|
|
@@ -4091,7 +4141,7 @@ exports[`runtime surface golden fixtures teardown graphify × claude+opencode 1`
|
|
|
4091
4141
|
"opencodeTui": {
|
|
4092
4142
|
"$schema": "https://opencode.ai/tui.json",
|
|
4093
4143
|
"plugin": [
|
|
4094
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4144
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4095
4145
|
],
|
|
4096
4146
|
},
|
|
4097
4147
|
}
|
|
@@ -4138,7 +4188,7 @@ exports[`runtime surface golden fixtures teardown tokensave × claude+opencode 1
|
|
|
4138
4188
|
"reserved": 15000,
|
|
4139
4189
|
},
|
|
4140
4190
|
"plugin": [
|
|
4141
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4191
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4142
4192
|
],
|
|
4143
4193
|
"references": {
|
|
4144
4194
|
"mate": "..",
|
|
@@ -4153,7 +4203,7 @@ exports[`runtime surface golden fixtures teardown tokensave × claude+opencode 1
|
|
|
4153
4203
|
"opencodeTui": {
|
|
4154
4204
|
"$schema": "https://opencode.ai/tui.json",
|
|
4155
4205
|
"plugin": [
|
|
4156
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4206
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4157
4207
|
],
|
|
4158
4208
|
},
|
|
4159
4209
|
}
|
|
@@ -4201,7 +4251,7 @@ exports[`runtime surface golden fixtures teardown context-mode × claude+opencod
|
|
|
4201
4251
|
"reserved": 15000,
|
|
4202
4252
|
},
|
|
4203
4253
|
"plugin": [
|
|
4204
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4254
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4205
4255
|
],
|
|
4206
4256
|
"references": {
|
|
4207
4257
|
"mate": "..",
|
|
@@ -4216,7 +4266,7 @@ exports[`runtime surface golden fixtures teardown context-mode × claude+opencod
|
|
|
4216
4266
|
"opencodeTui": {
|
|
4217
4267
|
"$schema": "https://opencode.ai/tui.json",
|
|
4218
4268
|
"plugin": [
|
|
4219
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4269
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4220
4270
|
],
|
|
4221
4271
|
},
|
|
4222
4272
|
}
|
|
@@ -4263,7 +4313,7 @@ exports[`runtime surface golden fixtures teardown react-doctor × claude+opencod
|
|
|
4263
4313
|
"reserved": 15000,
|
|
4264
4314
|
},
|
|
4265
4315
|
"plugin": [
|
|
4266
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4316
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4267
4317
|
],
|
|
4268
4318
|
"references": {
|
|
4269
4319
|
"mate": "..",
|
|
@@ -4278,7 +4328,7 @@ exports[`runtime surface golden fixtures teardown react-doctor × claude+opencod
|
|
|
4278
4328
|
"opencodeTui": {
|
|
4279
4329
|
"$schema": "https://opencode.ai/tui.json",
|
|
4280
4330
|
"plugin": [
|
|
4281
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4331
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4282
4332
|
],
|
|
4283
4333
|
},
|
|
4284
4334
|
}
|
|
@@ -4325,7 +4375,7 @@ exports[`runtime surface golden fixtures teardown openspec × claude+opencode 1`
|
|
|
4325
4375
|
"reserved": 15000,
|
|
4326
4376
|
},
|
|
4327
4377
|
"plugin": [
|
|
4328
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4378
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4329
4379
|
],
|
|
4330
4380
|
"references": {
|
|
4331
4381
|
"mate": "..",
|
|
@@ -4340,7 +4390,7 @@ exports[`runtime surface golden fixtures teardown openspec × claude+opencode 1`
|
|
|
4340
4390
|
"opencodeTui": {
|
|
4341
4391
|
"$schema": "https://opencode.ai/tui.json",
|
|
4342
4392
|
"plugin": [
|
|
4343
|
-
"@uniqbit/mate-opencode-plugin@0.
|
|
4393
|
+
"@uniqbit/mate-opencode-plugin@0.16.0",
|
|
4344
4394
|
],
|
|
4345
4395
|
},
|
|
4346
4396
|
}
|