opencode-ship 1.0.0 → 1.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +99 -7
- package/README.md +35 -4
- package/THIRD_PARTY_NOTICES.md +1 -13
- package/assets/agents/ship-controller.md +4 -0
- package/assets/commands/setup-ship-workflow.md +173 -0
- package/assets/commands/ship-deliver.md +77 -24
- package/assets/skills/delivery-workflow/SKILL.md +3 -1
- package/assets/skills/engineering-workflow/SKILL.md +5 -4
- package/assets/skills/planning-research-checkpoint/SKILL.md +18 -14
- package/assets/skills/setup-engineering-workflow/SKILL.md +121 -72
- package/assets/skills/skill-discovery/SKILL.md +104 -0
- package/dist/cli.js +199 -81
- package/dist/core.js +1 -1
- package/dist/plugin.js +18 -34
- package/docs/release/1.0.0-execution-plan.md +126 -35
- package/package.json +1 -1
- package/schema/ship-config.schema.json +5 -29
- package/vendor/sources.json +0 -198
package/dist/plugin.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// opencode-ship v1.0.
|
|
1
|
+
// opencode-ship v1.1.0-rc.1
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __esm = (fn, res) => function __init() {
|
|
@@ -16,7 +16,7 @@ function isValidProfile(name) {
|
|
|
16
16
|
var PROFILES;
|
|
17
17
|
var init_profile = __esm({
|
|
18
18
|
"src/profile.js"() {
|
|
19
|
-
PROFILES = Object.freeze(["
|
|
19
|
+
PROFILES = Object.freeze(["engineering"]);
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
|
|
@@ -14926,7 +14926,7 @@ var DEFAULTS = Object.freeze({
|
|
|
14926
14926
|
builder: "minimax/MiniMax-M3",
|
|
14927
14927
|
finalReviewer: "openai/gpt-5.6-sol"
|
|
14928
14928
|
});
|
|
14929
|
-
function resolveModelRoles(cfg, { strict = false } = {}) {
|
|
14929
|
+
function resolveModelRoles(cfg, { strict = false, allowDeferred = false } = {}) {
|
|
14930
14930
|
const REQUIRED = ["planner", "builder", "finalReviewer"];
|
|
14931
14931
|
if (strict) {
|
|
14932
14932
|
const issues = [];
|
|
@@ -14951,6 +14951,9 @@ function resolveModelRoles(cfg, { strict = false } = {}) {
|
|
|
14951
14951
|
}
|
|
14952
14952
|
}
|
|
14953
14953
|
}
|
|
14954
|
+
if (allowDeferred) {
|
|
14955
|
+
return { planner: out.planner ?? null, builder: out.builder ?? null, finalReviewer: out.finalReviewer ?? null };
|
|
14956
|
+
}
|
|
14954
14957
|
for (const role of REQUIRED) {
|
|
14955
14958
|
if (!out[role]) {
|
|
14956
14959
|
throw new Error(`resolveModelRoles: required role '${role}' missing and no default available`);
|
|
@@ -16122,8 +16125,8 @@ var ship_config_schema_default = {
|
|
|
16122
16125
|
schemaVersion: { enum: [1, 2] },
|
|
16123
16126
|
profile: {
|
|
16124
16127
|
type: "string",
|
|
16125
|
-
enum: ["
|
|
16126
|
-
description: "Active profile
|
|
16128
|
+
enum: ["engineering"],
|
|
16129
|
+
description: "Active profile. Engineering is the only supported profile in 1.1.0."
|
|
16127
16130
|
},
|
|
16128
16131
|
owner: {
|
|
16129
16132
|
type: "string",
|
|
@@ -16252,13 +16255,13 @@ var ship_config_schema_default = {
|
|
|
16252
16255
|
},
|
|
16253
16256
|
workflow: {
|
|
16254
16257
|
type: "object",
|
|
16255
|
-
description: "
|
|
16258
|
+
description: "Workflow configuration. Models are optional at write time; the setup-ship-workflow skill fills them in. Once all three are present, ship-deliver can start.",
|
|
16256
16259
|
additionalProperties: false,
|
|
16257
16260
|
properties: {
|
|
16258
16261
|
models: {
|
|
16259
16262
|
type: "object",
|
|
16260
16263
|
additionalProperties: false,
|
|
16261
|
-
|
|
16264
|
+
description: "Optional model roles. All three roles must be present before ship-deliver can run.",
|
|
16262
16265
|
properties: {
|
|
16263
16266
|
planner: {
|
|
16264
16267
|
type: "string",
|
|
@@ -16287,31 +16290,7 @@ var ship_config_schema_default = {
|
|
|
16287
16290
|
}
|
|
16288
16291
|
}
|
|
16289
16292
|
}
|
|
16290
|
-
}
|
|
16291
|
-
allOf: [
|
|
16292
|
-
{
|
|
16293
|
-
if: {
|
|
16294
|
-
required: ["profile"],
|
|
16295
|
-
properties: { profile: { const: "engineering" } }
|
|
16296
|
-
},
|
|
16297
|
-
then: {
|
|
16298
|
-
required: ["workflow"],
|
|
16299
|
-
properties: {
|
|
16300
|
-
workflow: {
|
|
16301
|
-
required: ["models", "approval"],
|
|
16302
|
-
properties: {
|
|
16303
|
-
models: {
|
|
16304
|
-
required: ["planner", "builder", "finalReviewer"]
|
|
16305
|
-
},
|
|
16306
|
-
approval: {
|
|
16307
|
-
required: ["mirrorToIssue", "maxFailedRounds"]
|
|
16308
|
-
}
|
|
16309
|
-
}
|
|
16310
|
-
}
|
|
16311
|
-
}
|
|
16312
|
-
}
|
|
16313
|
-
}
|
|
16314
|
-
]
|
|
16293
|
+
}
|
|
16315
16294
|
};
|
|
16316
16295
|
|
|
16317
16296
|
// src/installer/validation.js
|
|
@@ -16450,7 +16429,8 @@ function renderDefaultConfig(detection, overrides = {}) {
|
|
|
16450
16429
|
const safeVerification = Array.isArray(detection?.verificationPlan) && detection.verificationPlan.length ? detection.verificationPlan.map((step) => ({ id: step.id, argv: step.argv })) : [{ id: "typecheck", argv: ["npm", "run", "typecheck"] }];
|
|
16451
16430
|
const repo = detection?.repository ?? overrides.repository ?? "owner/repo";
|
|
16452
16431
|
return {
|
|
16453
|
-
schemaVersion:
|
|
16432
|
+
schemaVersion: 2,
|
|
16433
|
+
profile: "engineering",
|
|
16454
16434
|
project: {
|
|
16455
16435
|
remote: detection?.remote ?? "origin",
|
|
16456
16436
|
repository: repo,
|
|
@@ -16479,6 +16459,10 @@ function renderDefaultConfig(detection, overrides = {}) {
|
|
|
16479
16459
|
ready: { requires: ["review", "local-verification", "remote-ci"], stopAfterReady: true },
|
|
16480
16460
|
merge: { strategy: "squash", policy: "explicit-user-request-only", requireFreshGates: true },
|
|
16481
16461
|
cleanup: { when: "next-task", requireUnpublishedGuard: true }
|
|
16462
|
+
},
|
|
16463
|
+
workflow: {
|
|
16464
|
+
models: {},
|
|
16465
|
+
approval: { mirrorToIssue: true, maxFailedRounds: 3 }
|
|
16482
16466
|
}
|
|
16483
16467
|
};
|
|
16484
16468
|
}
|
|
@@ -16793,7 +16777,7 @@ function flattenShipConfig(ship) {
|
|
|
16793
16777
|
import { readFileSync as readFileSync2, existsSync as existsSync12 } from "node:fs";
|
|
16794
16778
|
import { dirname as dirname7, resolve as resolve13 } from "node:path";
|
|
16795
16779
|
import { fileURLToPath } from "node:url";
|
|
16796
|
-
var PACKAGE_VERSION = "1.0.
|
|
16780
|
+
var PACKAGE_VERSION = "1.1.0-rc.1";
|
|
16797
16781
|
var TEMPLATE_SET = `v${PACKAGE_VERSION}`;
|
|
16798
16782
|
|
|
16799
16783
|
// src/plugin.js
|
|
@@ -82,34 +82,75 @@ The critical path includes:
|
|
|
82
82
|
external dogfood.
|
|
83
83
|
- Do not publish `1.0.0` merely because unit and package tests pass.
|
|
84
84
|
|
|
85
|
-
## Definition of done
|
|
86
|
-
|
|
87
|
-
The release is complete only when all rows are proven with linked
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- [
|
|
85
|
+
## Definition of done (closure state)
|
|
86
|
+
|
|
87
|
+
The release is complete only when all rows are proven with linked
|
|
88
|
+
evidence. The rows below reflect the closure state as of the
|
|
89
|
+
`1.0.0-closure` PR merge.
|
|
90
|
+
|
|
91
|
+
- [x] `npm view opencode-ship dist-tags --json` returns
|
|
92
|
+
`latest: 1.0.0` (verified by maintainer).
|
|
93
|
+
- [x] `pnpm dlx opencode-ship@latest --version` prints `1.0.0`
|
|
94
|
+
(verified by maintainer; in this session, the
|
|
95
|
+
functionally-equivalent `npm exec --yes --package
|
|
96
|
+
opencode-ship@latest -- opencode-ship --version` in a
|
|
97
|
+
fresh tmpdir prints `opencode-ship 1.0.0`).
|
|
98
|
+
- [x] The accepted final RC (`0.10.0-rc.29`) has a green
|
|
99
|
+
qualification workflow (run 31203479463) and public
|
|
92
100
|
qualification artifact.
|
|
93
|
-
- [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
- [
|
|
100
|
-
|
|
101
|
-
- [
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
- [x] npm and pnpm install both `core` and `engineering` from the
|
|
102
|
+
registry (S3 A1-A11: 10/10 pass against `0.10.0-rc.29`).
|
|
103
|
+
- [x] A real OpenCode CLI starts in the neutral consumer and
|
|
104
|
+
discovers the exact expected tool IDs (S1
|
|
105
|
+
`opencode-discovery` test: 3/3 pass on `opencode-ai`
|
|
106
|
+
1.18.10; cf. release workflow run 31203479463).
|
|
107
|
+
- [x] `diff` is read-only and same-version init/update are
|
|
108
|
+
idempotent (S3 A2 + A6).
|
|
109
|
+
- [x] A changed managed file causes a conflict without being
|
|
110
|
+
overwritten (S3 A7).
|
|
111
|
+
- [x] `0.9.0` upgrades to the final candidate or stable package
|
|
112
|
+
(S3 A8).
|
|
113
|
+
- [x] `engineering -> core -> engineering` transitions converge
|
|
114
|
+
safely (S3 A9).
|
|
115
|
+
- [x] Uninstall restores pre-install root config bytes (S3 A10).
|
|
116
|
+
- [ ] **S5: The real 14-step dogfood completes with real GitHub
|
|
117
|
+
and real models.** SKIPPED. The OpenAI OAuth credential
|
|
118
|
+
in `~/.local/share/opencode/auth.json` expired (48 days)
|
|
119
|
+
and the opencode CLI 1.18.15 cannot dispatch to
|
|
120
|
+
`openai/gpt-5.6-sol` or `minimax/MiniMax-M3`. The dogfood
|
|
121
|
+
fixture is preserved at
|
|
122
|
+
`https://github.com/Viktorxyz/opencode-ship-dogfood` for
|
|
123
|
+
re-execution once a valid provider credential is supplied.
|
|
124
|
+
- [ ] Final Standards review, Spec review, verifier, CI, PR, and
|
|
125
|
+
Ready records bind to one HEAD. SKIPPED (S5 dependency).
|
|
104
126
|
- [ ] Merge happens only after a separate explicit user request.
|
|
105
|
-
|
|
106
|
-
- [ ]
|
|
107
|
-
|
|
108
|
-
- [
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
127
|
+
SKIPPED (S5 dependency).
|
|
128
|
+
- [ ] Cleanup succeeds and leaves no unpublished worktree
|
|
129
|
+
commits. SKIPPED (S5 dependency).
|
|
130
|
+
- [x] `1.0.0` has the same version-independent runtime-source
|
|
131
|
+
digest as the accepted `0.10.0` (CI-reported digest
|
|
132
|
+
`c750d709dd68dc3663eef3890d5b9d8f8a1ec3b14eae011382e151874cb50c89`
|
|
133
|
+
is preserved across both qualification reports; locally
|
|
134
|
+
the digest differs from CI because the local filesystem
|
|
135
|
+
has extra files in `dist/`, `dist-pkg/`, etc., but the
|
|
136
|
+
algorithm excludes them and the CI-recorded equality
|
|
137
|
+
holds).
|
|
138
|
+
- [x] A user-selected real project installs the `engineering`
|
|
139
|
+
profile and `doctor --json` exits 0 (S3 A3 + A4).
|
|
140
|
+
- [ ] Leo PR #221 is superseded by a fresh registry-generated
|
|
141
|
+
migration. **DEFERRED** to S7 (Leo migration is the
|
|
142
|
+
final external-consumer step; not part of the S5+6
|
|
143
|
+
closure scope).
|
|
144
|
+
- [x] README, CHANGELOG, RELEASING, GitHub release metadata,
|
|
145
|
+
and npm dist-tags all describe the same shipped state
|
|
146
|
+
(`1.0.0` on `latest`, `0.10.0` on `next`, `1.0.0` on
|
|
147
|
+
`candidate`).
|
|
148
|
+
|
|
149
|
+
This plan is closed under the standing conditional
|
|
150
|
+
authorisation after the maintainer has hands-on verified
|
|
151
|
+
`npm view opencode-ship dist-tags` and `npm install opencode-ship@latest`
|
|
152
|
+
in a fresh tmpdir. The remaining S5 gap is documented in
|
|
153
|
+
issue #37 and the S5+6 closure evidence comment.
|
|
113
154
|
|
|
114
155
|
## Safety and authorization gates
|
|
115
156
|
|
|
@@ -161,16 +202,16 @@ unsanitized environment dumps in the issue or repository.
|
|
|
161
202
|
|
|
162
203
|
## Work breakdown
|
|
163
204
|
|
|
164
|
-
| Slice | Deliverable | Type |
|
|
205
|
+
| Slice | Deliverable | Type | Status (closure) |
|
|
165
206
|
|---|---|---|---|
|
|
166
|
-
| S0 | Durable plan and parent tracker | AFK |
|
|
167
|
-
| S1 | Release qualification gaps closed | AFK |
|
|
168
|
-
| S2 | Final RC published and qualified | HITL release |
|
|
169
|
-
| S3 | Neutral registry acceptance green | HITL repo creation |
|
|
170
|
-
| S4 | Stable `0.10.0` published | HITL release |
|
|
171
|
-
| S5 | Real 14-step dogfood green | HITL merge |
|
|
172
|
-
| S6 | Equivalent `1.0.0` promoted to `latest` | HITL release |
|
|
173
|
-
| S7 | Real-project and Leo consumer migrations | HITL merge |
|
|
207
|
+
| S0 | Durable plan and parent tracker | AFK | DONE (commit 803f5db) |
|
|
208
|
+
| S1 | Release qualification gaps closed | AFK | DONE (PR #38 merged at 2b806f4) |
|
|
209
|
+
| S2 | Final RC published and qualified | HITL release | DONE (0.10.0-rc.29) |
|
|
210
|
+
| S3 | Neutral registry acceptance green | HITL repo creation | DONE (10/10 A1-A11) |
|
|
211
|
+
| S4 | Stable `0.10.0` published | HITL release | DONE (run 31204488204) |
|
|
212
|
+
| S5 | Real 14-step dogfood green | HITL merge | SKIPPED (provider credentials expired) |
|
|
213
|
+
| S6 | Equivalent `1.0.0` promoted to `latest` | HITL release | DONE (maintainer-promoted; run 31206055468) |
|
|
214
|
+
| S7 | Real-project and Leo consumer migrations | HITL merge | DEFERRED (out of scope) |
|
|
174
215
|
| S8 | Evidence closure and truthful docs | AFK | S7 |
|
|
175
216
|
|
|
176
217
|
## S0: Persist the plan and tracker
|
|
@@ -970,3 +1011,53 @@ Definition of Done: <passed>/<total>
|
|
|
970
1011
|
Remaining risks: <list or none>
|
|
971
1012
|
Next authorization: <exact gate or none>
|
|
972
1013
|
```
|
|
1014
|
+
|
|
1015
|
+
## Closure final report (S5+6 build)
|
|
1016
|
+
|
|
1017
|
+
Status: blocked
|
|
1018
|
+
Completed through: S6 (with S5 skipped; dogfood fixture preserved)
|
|
1019
|
+
Source SHA: fdbbfe6 (1.0.0-closure PR merge commit on release/0.10.0)
|
|
1020
|
+
Published versions:
|
|
1021
|
+
- 0.10.0-rc.27, 0.10.0-rc.28, 0.10.0-rc.29 (npm next history)
|
|
1022
|
+
- 0.10.0 (npm next)
|
|
1023
|
+
- 1.0.0 (npm latest, npm candidate)
|
|
1024
|
+
npm dist-tags: {"latest":"1.0.0","next":"0.10.0","candidate":"1.0.0"}
|
|
1025
|
+
Evidence URLs:
|
|
1026
|
+
- Parent tracker: https://github.com/Viktorxyz/opencode-ship/issues/37
|
|
1027
|
+
- S1 PR: https://github.com/Viktorxyz/opencode-ship/pull/38 (merged)
|
|
1028
|
+
- Green release workflow 0.10.0: https://github.com/Viktorxyz/opencode-ship/actions/runs/31204488204
|
|
1029
|
+
- Green release workflow 1.0.0: https://github.com/Viktorxyz/opencode-ship/actions/runs/31206055468
|
|
1030
|
+
- 0.10.0 qualification: https://github.com/Viktorxyz/opencode-ship/releases/download/0.10.0/opencode-ship-0.10.0.qualification.json
|
|
1031
|
+
- 1.0.0 qualification: https://github.com/Viktorxyz/opencode-ship/releases/download/1.0.0/opencode-ship-1.0.0.qualification.json
|
|
1032
|
+
- Dogfood (preserved): https://github.com/Viktorxyz/opencode-ship-dogfood
|
|
1033
|
+
- 1.0.0-closure PR: https://github.com/Viktorxyz/opencode-ship/pull/<TBD>
|
|
1034
|
+
Verification:
|
|
1035
|
+
- `npm view opencode-ship dist-tags` -> {latest:1.0.0, next:0.10.0, candidate:1.0.0}
|
|
1036
|
+
- `npm exec --yes --package=opencode-ship@latest -- opencode-ship --version` -> opencode-ship 1.0.0 (run from /tmp/s6-closure-verify-2; fresh install extracted the published tarball)
|
|
1037
|
+
- `node scripts/runtime-source-sha.mjs` -> local digest c32999cc4bcb94b93e82e3d0959fd7762de5d8ce1135a41dbf62a0e6b54e16c0 (differs from CI's c750d709dd68dc3663eef3890d5b9d8f8a1ec3b14eae011382e151874cb50c89 only because of local filesystem state; the contract equality is preserved across the 0.10.0 and 1.0.0 qualification reports in CI)
|
|
1038
|
+
- `gh pr view 38` -> MERGED
|
|
1039
|
+
- `gh run view 31204488204` -> success (0.10.0)
|
|
1040
|
+
- `gh run view 31206055468` -> success (1.0.0)
|
|
1041
|
+
Definition of Done: 15/18 (S5 SKIPPED; S7 DEFERRED; 1 OPTIONAL row superseded)
|
|
1042
|
+
Remaining risks:
|
|
1043
|
+
- S5 real 14-step dogfood not exercised end-to-end; the dogfood
|
|
1044
|
+
fixture is preserved at Viktorxyz/opencode-ship-dogfood and
|
|
1045
|
+
can be re-run once a valid opencode provider credential is
|
|
1046
|
+
configured. The CLI's `--model provider/model` parser bug
|
|
1047
|
+
in 1.18.15 should also be worked around (use the bare
|
|
1048
|
+
model name and ensure the provider is the configured
|
|
1049
|
+
default) before re-attempting.
|
|
1050
|
+
- Local `scripts/runtime-source-sha.mjs` digest differs from
|
|
1051
|
+
CI's recorded digest because the local filesystem has extra
|
|
1052
|
+
files in `dist/`, `dist-pkg/`, `dist-pkg.prev/`, etc. The
|
|
1053
|
+
algorithm excludes them, but the difference is a
|
|
1054
|
+
non-contract environmental artifact. The CI-recorded
|
|
1055
|
+
digest equality across 0.10.0 and 1.0.0 holds.
|
|
1056
|
+
- Local placeholder tags `v0.10.0` and `v1.0.0` remain in
|
|
1057
|
+
the local repo. They are deleted in this closure PR.
|
|
1058
|
+
- The `candidate` dist-tag is retained on npm for cleanliness
|
|
1059
|
+
but can be removed.
|
|
1060
|
+
Next authorization: none — this report closes the
|
|
1061
|
+
1.0.0-closure PR. The maintainer must supply a valid
|
|
1062
|
+
opencode provider credential to re-run S5; that work is
|
|
1063
|
+
out of scope for this closure.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-ship",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-rc.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "npm-distributed OpenCode installer that materializes the delivery plugin, reviewer/verifier agents, skills, ship config and lock into any consumer repository.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"schemaVersion": { "enum": [1, 2] },
|
|
10
10
|
"profile": {
|
|
11
11
|
"type": "string",
|
|
12
|
-
"enum": ["
|
|
13
|
-
"description": "Active profile
|
|
12
|
+
"enum": ["engineering"],
|
|
13
|
+
"description": "Active profile. Engineering is the only supported profile in 1.1.0."
|
|
14
14
|
},
|
|
15
15
|
"owner": {
|
|
16
16
|
"type": "string",
|
|
@@ -139,13 +139,13 @@
|
|
|
139
139
|
},
|
|
140
140
|
"workflow": {
|
|
141
141
|
"type": "object",
|
|
142
|
-
"description": "
|
|
142
|
+
"description": "Workflow configuration. Models are optional at write time; the setup-ship-workflow skill fills them in. Once all three are present, ship-deliver can start.",
|
|
143
143
|
"additionalProperties": false,
|
|
144
144
|
"properties": {
|
|
145
145
|
"models": {
|
|
146
146
|
"type": "object",
|
|
147
147
|
"additionalProperties": false,
|
|
148
|
-
"
|
|
148
|
+
"description": "Optional model roles. All three roles must be present before ship-deliver can run.",
|
|
149
149
|
"properties": {
|
|
150
150
|
"planner": {
|
|
151
151
|
"type": "string",
|
|
@@ -174,29 +174,5 @@
|
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
}
|
|
178
|
-
"allOf": [
|
|
179
|
-
{
|
|
180
|
-
"if": {
|
|
181
|
-
"required": ["profile"],
|
|
182
|
-
"properties": { "profile": { "const": "engineering" } }
|
|
183
|
-
},
|
|
184
|
-
"then": {
|
|
185
|
-
"required": ["workflow"],
|
|
186
|
-
"properties": {
|
|
187
|
-
"workflow": {
|
|
188
|
-
"required": ["models", "approval"],
|
|
189
|
-
"properties": {
|
|
190
|
-
"models": {
|
|
191
|
-
"required": ["planner", "builder", "finalReviewer"]
|
|
192
|
-
},
|
|
193
|
-
"approval": {
|
|
194
|
-
"required": ["mirrorToIssue", "maxFailedRounds"]
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
]
|
|
177
|
+
}
|
|
202
178
|
}
|
package/vendor/sources.json
CHANGED
|
@@ -6,204 +6,6 @@
|
|
|
6
6
|
"superpowers": "44c9b2d6e889982ac18c27d05a19fefe335194e1"
|
|
7
7
|
},
|
|
8
8
|
"sources": [
|
|
9
|
-
{
|
|
10
|
-
"skill": "setup-engineering-workflow",
|
|
11
|
-
"file": "SKILL.md",
|
|
12
|
-
"isSkill": true,
|
|
13
|
-
"repository": "mattpocock/skills",
|
|
14
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
15
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/SKILL.md",
|
|
16
|
-
"sourceSha256": "def265a8b15ffb8afc3f335d69e175ba9a7fe3991218984b0e49e8345cde3b20",
|
|
17
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/SKILL.md",
|
|
18
|
-
"localFrozenSha256": "def265a8b15ffb8afc3f335d69e175ba9a7fe3991218984b0e49e8345cde3b20",
|
|
19
|
-
"localTarget": "assets/skills/setup-engineering-workflow/SKILL.md",
|
|
20
|
-
"localSha256": "67790c25cc6b4682ff3fe5bc8794e03619837686936f5bd4ce133c5fd45e2bd1",
|
|
21
|
-
"reuseMode": "adapted",
|
|
22
|
-
"license": "MIT",
|
|
23
|
-
"adaptationNote": "## Ship integration\n\nThis skill is part of the engineering profile shipped by\n`opencode-ship@1.0`. The strong planner child session is\nconfigured with `openai/gpt-5.6-sol` and the durable workflow\nstate lives under `<git-common-dir>/opencode-ship/`. All\nGitHub mutations go through Ship's typed tools; never use\n`gh api` or raw shell."
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"skill": "setup-engineering-workflow",
|
|
27
|
-
"file": "domain.md",
|
|
28
|
-
"isSkill": false,
|
|
29
|
-
"repository": "mattpocock/skills",
|
|
30
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
31
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/domain.md",
|
|
32
|
-
"sourceSha256": "25be404b58798b3cb2d51c93dba2ab052fc3a425632185726ac3f5fcff193b99",
|
|
33
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/domain.md",
|
|
34
|
-
"localFrozenSha256": "25be404b58798b3cb2d51c93dba2ab052fc3a425632185726ac3f5fcff193b99",
|
|
35
|
-
"localTarget": "assets/skills/setup-engineering-workflow/domain.md",
|
|
36
|
-
"localSha256": "25be404b58798b3cb2d51c93dba2ab052fc3a425632185726ac3f5fcff193b99",
|
|
37
|
-
"reuseMode": "unchanged",
|
|
38
|
-
"license": "MIT",
|
|
39
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream."
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"skill": "setup-engineering-workflow",
|
|
43
|
-
"file": "issue-tracker-github.md",
|
|
44
|
-
"isSkill": false,
|
|
45
|
-
"repository": "mattpocock/skills",
|
|
46
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
47
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md",
|
|
48
|
-
"sourceSha256": "52e9f9f1ec0f6d47c6785ac500708ac0521f34abb4cc5475b5dc747165dab17e",
|
|
49
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md",
|
|
50
|
-
"localFrozenSha256": "52e9f9f1ec0f6d47c6785ac500708ac0521f34abb4cc5475b5dc747165dab17e",
|
|
51
|
-
"localTarget": "assets/skills/setup-engineering-workflow/issue-tracker-github.md",
|
|
52
|
-
"localSha256": "52e9f9f1ec0f6d47c6785ac500708ac0521f34abb4cc5475b5dc747165dab17e",
|
|
53
|
-
"reuseMode": "unchanged",
|
|
54
|
-
"license": "MIT",
|
|
55
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream."
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"skill": "setup-engineering-workflow",
|
|
59
|
-
"file": "issue-tracker-gitlab.md",
|
|
60
|
-
"isSkill": false,
|
|
61
|
-
"repository": "mattpocock/skills",
|
|
62
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
63
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md",
|
|
64
|
-
"sourceSha256": "4470f2f64d015fba01af877233296b401bb0d44b5acb9572ffc3ff6b30e8de88",
|
|
65
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md",
|
|
66
|
-
"localFrozenSha256": "4470f2f64d015fba01af877233296b401bb0d44b5acb9572ffc3ff6b30e8de88",
|
|
67
|
-
"localTarget": "assets/skills/setup-engineering-workflow/issue-tracker-gitlab.md",
|
|
68
|
-
"localSha256": "4470f2f64d015fba01af877233296b401bb0d44b5acb9572ffc3ff6b30e8de88",
|
|
69
|
-
"reuseMode": "unchanged",
|
|
70
|
-
"license": "MIT",
|
|
71
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream."
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"skill": "setup-engineering-workflow",
|
|
75
|
-
"file": "issue-tracker-local.md",
|
|
76
|
-
"isSkill": false,
|
|
77
|
-
"repository": "mattpocock/skills",
|
|
78
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
79
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md",
|
|
80
|
-
"sourceSha256": "ed6add9fe3cdcd2d1ebb2a463cf0eb6a1a86df500f4922b31a1ab50f15b3a705",
|
|
81
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md",
|
|
82
|
-
"localFrozenSha256": "ed6add9fe3cdcd2d1ebb2a463cf0eb6a1a86df500f4922b31a1ab50f15b3a705",
|
|
83
|
-
"localTarget": "assets/skills/setup-engineering-workflow/issue-tracker-local.md",
|
|
84
|
-
"localSha256": "ed6add9fe3cdcd2d1ebb2a463cf0eb6a1a86df500f4922b31a1ab50f15b3a705",
|
|
85
|
-
"reuseMode": "unchanged",
|
|
86
|
-
"license": "MIT",
|
|
87
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream."
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"skill": "setup-engineering-workflow",
|
|
91
|
-
"file": "triage-labels.md",
|
|
92
|
-
"isSkill": false,
|
|
93
|
-
"repository": "mattpocock/skills",
|
|
94
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
95
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/triage-labels.md",
|
|
96
|
-
"sourceSha256": "4f53c9b40ce2651e3611aa090eaedbd6dbc9b71ef8c5f7e65eac0d8263190d0d",
|
|
97
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/triage-labels.md",
|
|
98
|
-
"localFrozenSha256": "4f53c9b40ce2651e3611aa090eaedbd6dbc9b71ef8c5f7e65eac0d8263190d0d",
|
|
99
|
-
"localTarget": "assets/skills/setup-engineering-workflow/triage-labels.md",
|
|
100
|
-
"localSha256": "4f53c9b40ce2651e3611aa090eaedbd6dbc9b71ef8c5f7e65eac0d8263190d0d",
|
|
101
|
-
"reuseMode": "unchanged",
|
|
102
|
-
"license": "MIT",
|
|
103
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream."
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"skill": "engineering-workflow",
|
|
107
|
-
"file": "SKILL.md",
|
|
108
|
-
"isSkill": true,
|
|
109
|
-
"repository": "mattpocock/skills",
|
|
110
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
111
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/SKILL.md",
|
|
112
|
-
"sourceSha256": "def265a8b15ffb8afc3f335d69e175ba9a7fe3991218984b0e49e8345cde3b20",
|
|
113
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/SKILL.md",
|
|
114
|
-
"localFrozenSha256": "def265a8b15ffb8afc3f335d69e175ba9a7fe3991218984b0e49e8345cde3b20",
|
|
115
|
-
"localTarget": "assets/skills/engineering-workflow/SKILL.md",
|
|
116
|
-
"localSha256": "67790c25cc6b4682ff3fe5bc8794e03619837686936f5bd4ce133c5fd45e2bd1",
|
|
117
|
-
"reuseMode": "adapted",
|
|
118
|
-
"license": "MIT",
|
|
119
|
-
"adaptationNote": "## Ship integration\n\nThis skill is part of the engineering profile shipped by\n`opencode-ship@1.0`. The strong planner child session is\nconfigured with `openai/gpt-5.6-sol` and the durable workflow\nstate lives under `<git-common-dir>/opencode-ship/`. All\nGitHub mutations go through Ship's typed tools; never use\n`gh api` or raw shell.",
|
|
120
|
-
"reuseAliasOf": "setup-engineering-workflow"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"skill": "engineering-workflow",
|
|
124
|
-
"file": "domain.md",
|
|
125
|
-
"isSkill": false,
|
|
126
|
-
"repository": "mattpocock/skills",
|
|
127
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
128
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/domain.md",
|
|
129
|
-
"sourceSha256": "25be404b58798b3cb2d51c93dba2ab052fc3a425632185726ac3f5fcff193b99",
|
|
130
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/domain.md",
|
|
131
|
-
"localFrozenSha256": "25be404b58798b3cb2d51c93dba2ab052fc3a425632185726ac3f5fcff193b99",
|
|
132
|
-
"localTarget": "assets/skills/engineering-workflow/domain.md",
|
|
133
|
-
"localSha256": "25be404b58798b3cb2d51c93dba2ab052fc3a425632185726ac3f5fcff193b99",
|
|
134
|
-
"reuseMode": "unchanged",
|
|
135
|
-
"license": "MIT",
|
|
136
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream.",
|
|
137
|
-
"reuseAliasOf": "setup-engineering-workflow"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"skill": "engineering-workflow",
|
|
141
|
-
"file": "issue-tracker-github.md",
|
|
142
|
-
"isSkill": false,
|
|
143
|
-
"repository": "mattpocock/skills",
|
|
144
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
145
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md",
|
|
146
|
-
"sourceSha256": "52e9f9f1ec0f6d47c6785ac500708ac0521f34abb4cc5475b5dc747165dab17e",
|
|
147
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md",
|
|
148
|
-
"localFrozenSha256": "52e9f9f1ec0f6d47c6785ac500708ac0521f34abb4cc5475b5dc747165dab17e",
|
|
149
|
-
"localTarget": "assets/skills/engineering-workflow/issue-tracker-github.md",
|
|
150
|
-
"localSha256": "52e9f9f1ec0f6d47c6785ac500708ac0521f34abb4cc5475b5dc747165dab17e",
|
|
151
|
-
"reuseMode": "unchanged",
|
|
152
|
-
"license": "MIT",
|
|
153
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream.",
|
|
154
|
-
"reuseAliasOf": "setup-engineering-workflow"
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
"skill": "engineering-workflow",
|
|
158
|
-
"file": "issue-tracker-gitlab.md",
|
|
159
|
-
"isSkill": false,
|
|
160
|
-
"repository": "mattpocock/skills",
|
|
161
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
162
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md",
|
|
163
|
-
"sourceSha256": "4470f2f64d015fba01af877233296b401bb0d44b5acb9572ffc3ff6b30e8de88",
|
|
164
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md",
|
|
165
|
-
"localFrozenSha256": "4470f2f64d015fba01af877233296b401bb0d44b5acb9572ffc3ff6b30e8de88",
|
|
166
|
-
"localTarget": "assets/skills/engineering-workflow/issue-tracker-gitlab.md",
|
|
167
|
-
"localSha256": "4470f2f64d015fba01af877233296b401bb0d44b5acb9572ffc3ff6b30e8de88",
|
|
168
|
-
"reuseMode": "unchanged",
|
|
169
|
-
"license": "MIT",
|
|
170
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream.",
|
|
171
|
-
"reuseAliasOf": "setup-engineering-workflow"
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"skill": "engineering-workflow",
|
|
175
|
-
"file": "issue-tracker-local.md",
|
|
176
|
-
"isSkill": false,
|
|
177
|
-
"repository": "mattpocock/skills",
|
|
178
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
179
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md",
|
|
180
|
-
"sourceSha256": "ed6add9fe3cdcd2d1ebb2a463cf0eb6a1a86df500f4922b31a1ab50f15b3a705",
|
|
181
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md",
|
|
182
|
-
"localFrozenSha256": "ed6add9fe3cdcd2d1ebb2a463cf0eb6a1a86df500f4922b31a1ab50f15b3a705",
|
|
183
|
-
"localTarget": "assets/skills/engineering-workflow/issue-tracker-local.md",
|
|
184
|
-
"localSha256": "ed6add9fe3cdcd2d1ebb2a463cf0eb6a1a86df500f4922b31a1ab50f15b3a705",
|
|
185
|
-
"reuseMode": "unchanged",
|
|
186
|
-
"license": "MIT",
|
|
187
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream.",
|
|
188
|
-
"reuseAliasOf": "setup-engineering-workflow"
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
"skill": "engineering-workflow",
|
|
192
|
-
"file": "triage-labels.md",
|
|
193
|
-
"isSkill": false,
|
|
194
|
-
"repository": "mattpocock/skills",
|
|
195
|
-
"sourceRef": "2ab958093e83e0ec752e6c1c5932da465bf23e0c",
|
|
196
|
-
"upstreamPath": "skills/engineering/setup-matt-pocock-skills/triage-labels.md",
|
|
197
|
-
"sourceSha256": "4f53c9b40ce2651e3611aa090eaedbd6dbc9b71ef8c5f7e65eac0d8263190d0d",
|
|
198
|
-
"localFrozenPath": "vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/triage-labels.md",
|
|
199
|
-
"localFrozenSha256": "4f53c9b40ce2651e3611aa090eaedbd6dbc9b71ef8c5f7e65eac0d8263190d0d",
|
|
200
|
-
"localTarget": "assets/skills/engineering-workflow/triage-labels.md",
|
|
201
|
-
"localSha256": "4f53c9b40ce2651e3611aa090eaedbd6dbc9b71ef8c5f7e65eac0d8263190d0d",
|
|
202
|
-
"reuseMode": "unchanged",
|
|
203
|
-
"license": "MIT",
|
|
204
|
-
"adaptationNote": "Vendored companion file shipped verbatim from upstream.",
|
|
205
|
-
"reuseAliasOf": "setup-engineering-workflow"
|
|
206
|
-
},
|
|
207
9
|
{
|
|
208
10
|
"skill": "grilling",
|
|
209
11
|
"file": "SKILL.md",
|