opencode-ship 0.9.0 → 0.10.0-rc.17
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 +96 -0
- package/README.md +3 -1
- package/THIRD_PARTY_NOTICES.md +77 -19
- package/assets/agents/ship-controller.md +122 -0
- package/assets/agents/ship-final-spec-reviewer.md +87 -0
- package/assets/agents/ship-final-standards-reviewer.md +83 -0
- package/assets/agents/ship-planner.md +78 -0
- package/assets/agents/ship-task-builder.md +91 -0
- package/assets/agents/ship-task-reviewer.md +78 -0
- package/assets/commands/ship-deliver.md +30 -0
- package/assets/commands/ship-resume.md +28 -0
- package/assets/commands/ship-status.md +25 -0
- package/assets/skills/brainstorming/SKILL.md +160 -0
- package/assets/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/assets/skills/brainstorming/visual-companion.md +298 -0
- package/assets/skills/code-review/SKILL.md +98 -0
- package/assets/skills/codebase-design/DEEPENING.md +37 -0
- package/assets/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/assets/skills/codebase-design/SKILL.md +123 -0
- package/assets/skills/dispatching-parallel-agents/SKILL.md +176 -0
- package/assets/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/assets/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/assets/skills/domain-modeling/SKILL.md +83 -0
- package/assets/skills/engineering-workflow/SKILL.md +125 -0
- package/assets/skills/engineering-workflow/domain.md +51 -0
- package/assets/skills/engineering-workflow/issue-tracker-github.md +45 -0
- package/assets/skills/engineering-workflow/issue-tracker-gitlab.md +46 -0
- package/assets/skills/engineering-workflow/issue-tracker-local.md +30 -0
- package/assets/skills/engineering-workflow/triage-labels.md +15 -0
- package/assets/skills/executing-plans/SKILL.md +73 -0
- package/assets/skills/grill-with-docs/SKILL.md +10 -14
- package/assets/skills/grilling/SKILL.md +21 -0
- package/assets/skills/handoff/SKILL.md +25 -0
- package/assets/skills/prototype/LOGIC.md +79 -0
- package/assets/skills/prototype/SKILL.md +35 -0
- package/assets/skills/prototype/UI.md +112 -0
- package/assets/skills/receiving-code-review/SKILL.md +214 -0
- package/assets/skills/requesting-code-review/SKILL.md +104 -0
- package/assets/skills/requesting-code-review/code-reviewer.md +172 -0
- package/assets/skills/research/SKILL.md +21 -0
- package/assets/skills/setup-engineering-workflow/SKILL.md +125 -0
- package/assets/skills/setup-engineering-workflow/domain.md +51 -0
- package/assets/skills/setup-engineering-workflow/issue-tracker-github.md +45 -0
- package/assets/skills/setup-engineering-workflow/issue-tracker-gitlab.md +46 -0
- package/assets/skills/setup-engineering-workflow/issue-tracker-local.md +30 -0
- package/assets/skills/setup-engineering-workflow/triage-labels.md +15 -0
- package/assets/skills/subagent-driven-development/SKILL.md +512 -0
- package/assets/skills/subagent-driven-development/implementer-prompt.md +142 -0
- package/assets/skills/subagent-driven-development/re-review-prompt.md +106 -0
- package/assets/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
- package/assets/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/assets/skills/systematic-debugging/SKILL.md +292 -0
- package/assets/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/assets/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/assets/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/assets/skills/systematic-debugging/find-polluter.sh +72 -0
- package/assets/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/assets/skills/systematic-debugging/test-academic.md +14 -0
- package/assets/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/assets/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/assets/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/assets/skills/test-driven-development/SKILL.md +329 -0
- package/assets/skills/test-driven-development/writing-good-tests.md +198 -0
- package/assets/skills/to-spec/SKILL.md +84 -0
- package/assets/skills/to-tickets/SKILL.md +114 -0
- package/assets/skills/triage/AGENT-BRIEF.md +207 -0
- package/assets/skills/triage/OUT-OF-SCOPE.md +105 -0
- package/assets/skills/triage/SKILL.md +114 -15
- package/assets/skills/verification-before-completion/SKILL.md +129 -0
- package/assets/skills/wayfinder/SKILL.md +137 -0
- package/assets/skills/writing-plans/SKILL.md +177 -0
- package/assets/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/dist/cli.js +1146 -435
- package/dist/core.js +210 -61
- package/dist/plugin.js +2368 -230
- package/package.json +3 -1
- package/schema/ship-config.schema.json +63 -2
- package/schema/ship-lock.schema.json +5 -3
- package/tests/plugin/plugin-load.test.mjs +85 -0
- package/vendor/mattpocock/LICENSE +30 -0
- package/vendor/obra/LICENSE +30 -0
- package/vendor/sources.json +976 -0
- package/vendor/superpowers/LICENSE +30 -0
- package/vendor/upstreams/mattpocock/skills/engineering/code-review/SKILL.md +89 -0
- package/vendor/upstreams/mattpocock/skills/engineering/codebase-design/DEEPENING.md +37 -0
- package/vendor/upstreams/mattpocock/skills/engineering/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/vendor/upstreams/mattpocock/skills/engineering/codebase-design/SKILL.md +114 -0
- package/vendor/upstreams/mattpocock/skills/engineering/domain-modeling/ADR-FORMAT.md +47 -0
- package/vendor/upstreams/mattpocock/skills/engineering/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/vendor/upstreams/mattpocock/skills/engineering/domain-modeling/SKILL.md +74 -0
- package/vendor/upstreams/mattpocock/skills/engineering/grill-with-docs/SKILL.md +7 -0
- package/vendor/upstreams/mattpocock/skills/engineering/prototype/LOGIC.md +79 -0
- package/vendor/upstreams/mattpocock/skills/engineering/prototype/SKILL.md +26 -0
- package/vendor/upstreams/mattpocock/skills/engineering/prototype/UI.md +112 -0
- package/vendor/upstreams/mattpocock/skills/engineering/research/SKILL.md +12 -0
- package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/SKILL.md +116 -0
- package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/domain.md +51 -0
- package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
- package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
- package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
- package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/triage-labels.md +15 -0
- package/vendor/upstreams/mattpocock/skills/engineering/to-spec/SKILL.md +75 -0
- package/vendor/upstreams/mattpocock/skills/engineering/to-tickets/SKILL.md +105 -0
- package/vendor/upstreams/mattpocock/skills/engineering/triage/AGENT-BRIEF.md +207 -0
- package/vendor/upstreams/mattpocock/skills/engineering/triage/OUT-OF-SCOPE.md +105 -0
- package/vendor/upstreams/mattpocock/skills/engineering/triage/SKILL.md +112 -0
- package/vendor/upstreams/mattpocock/skills/engineering/wayfinder/SKILL.md +128 -0
- package/vendor/upstreams/mattpocock/skills/productivity/grilling/SKILL.md +12 -0
- package/vendor/upstreams/mattpocock/skills/productivity/handoff/SKILL.md +16 -0
- package/vendor/upstreams/obra/skills/brainstorming/SKILL.md +151 -0
- package/vendor/upstreams/obra/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/vendor/upstreams/obra/skills/brainstorming/visual-companion.md +298 -0
- package/vendor/upstreams/obra/skills/dispatching-parallel-agents/SKILL.md +167 -0
- package/vendor/upstreams/obra/skills/executing-plans/SKILL.md +64 -0
- package/vendor/upstreams/obra/skills/receiving-code-review/SKILL.md +205 -0
- package/vendor/upstreams/obra/skills/requesting-code-review/SKILL.md +95 -0
- package/vendor/upstreams/obra/skills/requesting-code-review/code-reviewer.md +172 -0
- package/vendor/upstreams/obra/skills/subagent-driven-development/SKILL.md +503 -0
- package/vendor/upstreams/obra/skills/subagent-driven-development/implementer-prompt.md +142 -0
- package/vendor/upstreams/obra/skills/subagent-driven-development/re-review-prompt.md +106 -0
- package/vendor/upstreams/obra/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/SKILL.md +283 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/find-polluter.sh +72 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/test-academic.md +14 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/vendor/upstreams/obra/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/vendor/upstreams/obra/skills/test-driven-development/SKILL.md +320 -0
- package/vendor/upstreams/obra/skills/test-driven-development/writing-good-tests.md +198 -0
- package/vendor/upstreams/obra/skills/verification-before-completion/SKILL.md +120 -0
- package/vendor/upstreams/obra/skills/writing-plans/SKILL.md +168 -0
- package/vendor/upstreams/obra/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,102 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `opencode-ship` are recorded here.
|
|
4
4
|
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
- The `release/1.0-completion` branch contains the complete
|
|
8
|
+
production runtime for the planned `0.10.0` release. No
|
|
9
|
+
`0.10.0` or `1.0.0` has been published; consumers should keep
|
|
10
|
+
using `opencode-ship@0.9.0`. The local `v0.10.0` and `v1.0.0`
|
|
11
|
+
tags are placeholders only and must not be pushed.
|
|
12
|
+
- See `RELEASING.md` for the operational runbook and
|
|
13
|
+
`.git/opencode-ship/plans/opencode-ship-1.0-completion/execution-state.json`
|
|
14
|
+
for the authoritative task state.
|
|
15
|
+
|
|
16
|
+
### Shipped source on `release/1.0-completion` (not yet released)
|
|
17
|
+
|
|
18
|
+
These changes are present in source on the
|
|
19
|
+
`release/1.0-completion` branch but are not production-ready
|
|
20
|
+
until the formal registry dogfood on the npm-published `0.10.0`
|
|
21
|
+
succeeds. Items will move to a dated release header only after
|
|
22
|
+
that step completes.
|
|
23
|
+
|
|
24
|
+
- Crash-safe Git-common storage: link()-based atomic publication
|
|
25
|
+
with rename() fallback, SHA-256 hashed resource locks, explicit
|
|
26
|
+
legacy migration from the `opencode-delivery/` path to
|
|
27
|
+
`opencode-ship/delivery/`, fail-closed transaction recovery.
|
|
28
|
+
- Fail-closed profile transitions and uninstall: pointer
|
|
29
|
+
`installedSha256` verification refuses to overwrite user edits;
|
|
30
|
+
transactional `--purge-config`; doctor's installed-hash and
|
|
31
|
+
root-pointer checks are scoped to the active profile.
|
|
32
|
+
- Engineering profile requires explicit
|
|
33
|
+
`workflow.models.{planner,builder,finalReviewer}` and
|
|
34
|
+
`workflow.approval.{mirrorToIssue:true, maxFailedRounds:3}`
|
|
35
|
+
before any write; CLI `--planner-model`/`--builder-model`/
|
|
36
|
+
`--final-reviewer-model` flags are forwarded into the
|
|
37
|
+
planner.
|
|
38
|
+
- Real upstream vendoring: 24 SKILL.md files plus companion
|
|
39
|
+
files from the pinned
|
|
40
|
+
`mattpocock/skills@2ab958093e83e0ec752e6c1c5932da465bf23e0c`
|
|
41
|
+
and `obra/superpowers@44c9b2d6e889982ac18c27d05a19fefe335194e1`
|
|
42
|
+
commits, frozen byte-identical under `vendor/upstreams/`.
|
|
43
|
+
`scripts/verify-vendor.mjs` is the read-only CI verifier.
|
|
44
|
+
- Config V2 schema with allOf enforcement; lock V3 schema
|
|
45
|
+
requires scope, installedSha256, and previous for every
|
|
46
|
+
pointer.
|
|
47
|
+
- 24 typed tools: 9 existing delivery tools + 7 Git/GitHub
|
|
48
|
+
control-plane tools + 8 workflow tools (`ship_plan_*`,
|
|
49
|
+
`ship_run_*`, `ship_task_*`, `ship_resume`, `ship_status`).
|
|
50
|
+
The plugin wraps V1 envelopes at the boundary so every tool
|
|
51
|
+
returns contract-version-2.
|
|
52
|
+
- Contract-version-2 envelope + immutable GitHub operation
|
|
53
|
+
store with safe-id operationId validation.
|
|
54
|
+
- Deterministic run reducer + controller with hash-chained
|
|
55
|
+
events and commit trailers.
|
|
56
|
+
- Per-run resume lock + crash reconciliation + mirror
|
|
57
|
+
restoration.
|
|
58
|
+
- Same-HEAD gate across final Standards/Spec reviews,
|
|
59
|
+
verification, CI, PR, and Ready.
|
|
60
|
+
- Agent permissions: controller permission block removes raw
|
|
61
|
+
`gh`, push, reset, stash, worktree remove, tag, and
|
|
62
|
+
self-review/approvals.
|
|
63
|
+
- Two-task workflow qualification with fake GitHub/model
|
|
64
|
+
harness.
|
|
65
|
+
- Ten-job release qualification pipeline
|
|
66
|
+
(`.github/workflows/release.yml`): source-verify, pack,
|
|
67
|
+
consumer-install (npm x pnpm x core x engineering), consumer-
|
|
68
|
+
transitions, workflow-e2e, opencode-compat (matrix 1.15.5 +
|
|
69
|
+
1.18.10), node-compat (matrix 22.6.0 + 22 + 24), release-
|
|
70
|
+
policy, qualification-report, publish.
|
|
71
|
+
- `publish` uses `--tag next` for 0.10.x RCs and stable,
|
|
72
|
+
`--tag candidate` for 1.0.x. Post-publish npm install
|
|
73
|
+
smoke verifies the registry artifact.
|
|
74
|
+
- SP DX 2.3 SBOM, base64 npm integrity, and sha256:hex asset
|
|
75
|
+
digest in the qualification report.
|
|
76
|
+
|
|
77
|
+
### Planned (not yet shipped)
|
|
78
|
+
|
|
79
|
+
These changes are present in source on the `release/1.0-completion` branch but are not production-ready and have not been published. Items will move to a dated release header only after the relevant plan task is verified end-to-end and the formal registry dogfood passes.
|
|
80
|
+
|
|
81
|
+
- Lock schema v3 with a `scope` field per root pointer record (core | engineering) and byte-stable hash identity.
|
|
82
|
+
- `src/state/git-common-dir.js` and `src/state/durable-store.js` for the shared crash-safe storage under the resolved Git common directory.
|
|
83
|
+
- `src/installer/root-reconciliation.js` as the single source of truth for `install`, `profile-transition`, and `uninstall` root-config edits; the engineering → core transition removes the Plan Mode block and restores the prior values byte-for-byte.
|
|
84
|
+
- `scripts/vendor-sync.mjs` vendoring 14 mattpocock and 10 obra/superpowers skills with immutable commit pins, MIT license files, and adapted integration footers.
|
|
85
|
+
- New agents: `ship-controller`, `ship-planner`, `ship-task-builder`, `ship-task-reviewer`, `ship-final-standards-reviewer`, `ship-final-spec-reviewer`. New commands: `ship-deliver`, `ship-resume`, `ship-status`.
|
|
86
|
+
- New CLI flags: `--planner-model`, `--builder-model`, `--final-reviewer-model` for missing-config synthesis.
|
|
87
|
+
- `src/workflow/plan.js` and `src/workflow/plan-store.js` for immutable PlanV2 and approvals under `<git-common-dir>/opencode-ship/plans/`.
|
|
88
|
+
- `src/workflow/workspace.js`, `task-review.js`, `three-round-breaker.js`, and `commit-gate.js` for the deterministic task controller.
|
|
89
|
+
- `src/workflow/compaction.js` for the bounded 4 KiB compaction block; `src/workflow/final-review.js` for binding Standards and Spec axes to one HEAD + package hash.
|
|
90
|
+
- `src/tools/envelope.js` as the contract-version-2 success/failure envelope; `src/drivers/github-command-policy.js` as the fixed `gh` allowlist.
|
|
91
|
+
- `src/state/github-operation-store.js` for typed GitHub operation records with idempotency.
|
|
92
|
+
- `scripts/qualify.mjs` for a machine-readable qualification report (gates, pins, tarball digest) suitable for uploading to a GitHub Release.
|
|
93
|
+
|
|
94
|
+
## 0.9.1 — Restore a truthful green baseline
|
|
95
|
+
|
|
96
|
+
- `src/installer/plan-mirror.js` documents its options through a JSDoc typedef and rejects unknown options.
|
|
97
|
+
- `mirrorPlanToIssue` now defaults to the typed `ghDriverClient`, which wraps `createGhDriver().comment()`. The runtime no longer shells out to `gh api`.
|
|
98
|
+
- `previewUninstall` is now called with its supported signature; `runUninstall` no longer passes a `profile` argument.
|
|
99
|
+
- `README.md` and `CHANGELOG.md` no longer claim the M3 task loop, parallel Standards/Spec Ready gate, or vendored Matt/Superpowers workflows are end-to-end shipped; those contracts remain source-only modules.
|
|
100
|
+
|
|
5
101
|
## 0.9.0 — Complete engineering profile publish
|
|
6
102
|
|
|
7
103
|
`opencode-ship@0.9.0` ships the transition matrix smoke required by issue #24 (Task 10 in approved plan). The smoke covers the core↔engineering transition shape — core omits engineering-only files, engineering installs them, and the lock's `manager.profile` field tracks the active profile across upgrades. The full E2E install (`pnpm dlx opencode-ship@latest`) continues to be exercised by the existing installer-cli tests; the new module focuses on the local-dev file set so the smoke runs in the default `npm run verify` pipeline.
|
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> npm-distributed OpenCode installer and delivery plugin: a single command materialises the lifecycle plugin, reviewer/verifier agents, and skills into any consumer repository, with a recoverable lock and never silently overwrites managed files.
|
|
4
4
|
>
|
|
5
|
-
> **Status:** v0.9.0
|
|
5
|
+
> **Status:** v0.9.0 published. The `release/1.0-completion` branch holds the complete production runtime for `0.10.0` and `1.0.0`: 24 typed tools (9 existing delivery tools + 7 control-plane tools + 8 workflow tools), the deterministic controller, the contract-version-2 envelope, the GitHub operation store, the immutable plan + run + commit ledgers, the same-HEAD gate, the bounded compaction block, the per-run resume lock, the fail-closed engineering profile, and the ten-job release qualification pipeline. The local `v0.10.0` and `v1.0.0` tags are placeholders only; they MUST NOT be pushed until the formal fourteen-step dogfood on the npm-published `0.10.0` succeeds. See `RELEASING.md` for the full operational runbook and `.git/opencode-ship/plans/opencode-ship-1.0-completion/execution-state.json` for the authoritative task state.
|
|
6
|
+
>
|
|
7
|
+
> No `0.10.0` or `1.0.0` has been published yet. Consumers should keep using `opencode-ship@0.9.0`.
|
|
6
8
|
|
|
7
9
|
---
|
|
8
10
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -1,27 +1,85 @@
|
|
|
1
1
|
# Third-Party Notices
|
|
2
2
|
|
|
3
|
-
`opencode-ship@0.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
`
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
real upstream content is pending vendoring and will replace the
|
|
15
|
-
placeholders without changing the manifest or the engineering
|
|
16
|
-
profile's installed file set.
|
|
3
|
+
`opencode-ship@0.10.0-rc.17` ships the complete Matt Pocock and Superpowers
|
|
4
|
+
methodology under the MIT license, plus the Ship-owned installer,
|
|
5
|
+
plugin, agents, and skills. The complete immutable pin list is in
|
|
6
|
+
`vendor/sources.json`; the upstream snapshots are under
|
|
7
|
+
`vendor/upstreams/<owner>/`. The canonical MIT text for each
|
|
8
|
+
upstream is preserved in `vendor/<owner>/LICENSE`.
|
|
9
|
+
|
|
10
|
+
The engineering profile is the consumer-installable bundle of
|
|
11
|
+
all 24 vendored skills (14 mattpocock + 10 obra/superpowers)
|
|
12
|
+
plus the Ship-owned delivery agents, plugin, and Plan Mode
|
|
13
|
+
permission block.
|
|
17
14
|
|
|
18
15
|
## Bundled skill content
|
|
19
16
|
|
|
17
|
+
Every vendored file is recorded in `vendor/sources.json` with its
|
|
18
|
+
sourceRef, upstream SHA-256, and local SHA-256. The complete list
|
|
19
|
+
is generated by `node scripts/vendor-sync.mjs`; the table below
|
|
20
|
+
shows the engineering-profile skill SKILL.md files plus their
|
|
21
|
+
accompanying companion files (templates, prompt files, and ADR
|
|
22
|
+
helpers shipped verbatim from upstream under MIT).
|
|
23
|
+
|
|
20
24
|
| Profile | Local file | Upstream repo | License | Reuse mode |
|
|
21
25
|
|---|---|---|---|---|
|
|
22
|
-
| engineering | `assets/skills/
|
|
26
|
+
| engineering | `assets/skills/brainstorming/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
27
|
+
| engineering | `assets/skills/brainstorming/spec-document-reviewer-prompt.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
28
|
+
| engineering | `assets/skills/brainstorming/visual-companion.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
29
|
+
| engineering | `assets/skills/code-review/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
30
|
+
| engineering | `assets/skills/codebase-design/DEEPENING.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
31
|
+
| engineering | `assets/skills/codebase-design/DESIGN-IT-TWICE.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
32
|
+
| engineering | `assets/skills/codebase-design/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
33
|
+
| engineering | `assets/skills/dispatching-parallel-agents/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
34
|
+
| engineering | `assets/skills/domain-modeling/ADR-FORMAT.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
35
|
+
| engineering | `assets/skills/domain-modeling/CONTEXT-FORMAT.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
36
|
+
| engineering | `assets/skills/domain-modeling/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
37
|
+
| engineering | `assets/skills/engineering-workflow/domain.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
38
|
+
| engineering | `assets/skills/engineering-workflow/issue-tracker-github.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
39
|
+
| engineering | `assets/skills/engineering-workflow/issue-tracker-gitlab.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
40
|
+
| engineering | `assets/skills/engineering-workflow/issue-tracker-local.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
41
|
+
| engineering | `assets/skills/engineering-workflow/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
42
|
+
| engineering | `assets/skills/engineering-workflow/triage-labels.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
43
|
+
| engineering | `assets/skills/executing-plans/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
23
44
|
| engineering | `assets/skills/grill-with-docs/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
| engineering | `assets/skills/grilling/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
46
|
+
| engineering | `assets/skills/handoff/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
47
|
+
| engineering | `assets/skills/prototype/LOGIC.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
48
|
+
| engineering | `assets/skills/prototype/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
49
|
+
| engineering | `assets/skills/prototype/UI.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
50
|
+
| engineering | `assets/skills/receiving-code-review/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
51
|
+
| engineering | `assets/skills/requesting-code-review/code-reviewer.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
52
|
+
| engineering | `assets/skills/requesting-code-review/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
53
|
+
| engineering | `assets/skills/research/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
54
|
+
| engineering | `assets/skills/setup-engineering-workflow/domain.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
55
|
+
| engineering | `assets/skills/setup-engineering-workflow/issue-tracker-github.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
56
|
+
| engineering | `assets/skills/setup-engineering-workflow/issue-tracker-gitlab.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
57
|
+
| engineering | `assets/skills/setup-engineering-workflow/issue-tracker-local.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
58
|
+
| engineering | `assets/skills/setup-engineering-workflow/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
59
|
+
| engineering | `assets/skills/setup-engineering-workflow/triage-labels.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
60
|
+
| engineering | `assets/skills/subagent-driven-development/implementer-prompt.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
61
|
+
| engineering | `assets/skills/subagent-driven-development/re-review-prompt.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
62
|
+
| engineering | `assets/skills/subagent-driven-development/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
63
|
+
| engineering | `assets/skills/subagent-driven-development/task-reviewer-prompt.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
64
|
+
| engineering | `assets/skills/systematic-debugging/condition-based-waiting-example.ts` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
65
|
+
| engineering | `assets/skills/systematic-debugging/condition-based-waiting.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
66
|
+
| engineering | `assets/skills/systematic-debugging/CREATION-LOG.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
67
|
+
| engineering | `assets/skills/systematic-debugging/defense-in-depth.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
68
|
+
| engineering | `assets/skills/systematic-debugging/find-polluter.sh` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
69
|
+
| engineering | `assets/skills/systematic-debugging/root-cause-tracing.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
70
|
+
| engineering | `assets/skills/systematic-debugging/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
71
|
+
| engineering | `assets/skills/systematic-debugging/test-academic.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
72
|
+
| engineering | `assets/skills/systematic-debugging/test-pressure-1.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
73
|
+
| engineering | `assets/skills/systematic-debugging/test-pressure-2.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
74
|
+
| engineering | `assets/skills/systematic-debugging/test-pressure-3.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
75
|
+
| engineering | `assets/skills/test-driven-development/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
76
|
+
| engineering | `assets/skills/test-driven-development/writing-good-tests.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
77
|
+
| engineering | `assets/skills/to-spec/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
78
|
+
| engineering | `assets/skills/to-tickets/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
79
|
+
| engineering | `assets/skills/triage/AGENT-BRIEF.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
80
|
+
| engineering | `assets/skills/triage/OUT-OF-SCOPE.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | unchanged |
|
|
81
|
+
| engineering | `assets/skills/triage/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
82
|
+
| engineering | `assets/skills/verification-before-completion/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
83
|
+
| engineering | `assets/skills/wayfinder/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
|
|
84
|
+
| engineering | `assets/skills/writing-plans/plan-document-reviewer-prompt.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | unchanged |
|
|
85
|
+
| engineering | `assets/skills/writing-plans/SKILL.md` | `obra/superpowers` | MIT (see `vendor/superpowers/LICENSE`) | adapted |
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deterministic Ship controller. Owns durable workflow state, Git/GitHub mutations, and the same-HEAD Ready / merge gates. Use for `ship-deliver`, `ship-resume`, and `ship-status`.
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.1
|
|
5
|
+
model: minimax/MiniMax-M3
|
|
6
|
+
steps: 12
|
|
7
|
+
permission:
|
|
8
|
+
edit: deny
|
|
9
|
+
external_directory: deny
|
|
10
|
+
webfetch: deny
|
|
11
|
+
websearch: deny
|
|
12
|
+
bash:
|
|
13
|
+
"*": deny
|
|
14
|
+
"git diff *": allow
|
|
15
|
+
"git log *": allow
|
|
16
|
+
"git show *": allow
|
|
17
|
+
"git status *": allow
|
|
18
|
+
"git rev-parse *": allow
|
|
19
|
+
"git rev-list *": allow
|
|
20
|
+
"git ls-files *": allow
|
|
21
|
+
"git ls-remote *": allow
|
|
22
|
+
"git show-ref *": allow
|
|
23
|
+
"git worktree list *": allow
|
|
24
|
+
"git worktree add *": allow
|
|
25
|
+
"git fetch *": allow
|
|
26
|
+
"git branch *": allow
|
|
27
|
+
"git add *": allow
|
|
28
|
+
"git commit *": allow
|
|
29
|
+
"git merge *": allow
|
|
30
|
+
"git tag *": deny
|
|
31
|
+
"git push *": deny
|
|
32
|
+
"git reset *": deny
|
|
33
|
+
"git stash *": deny
|
|
34
|
+
"git worktree remove *": deny
|
|
35
|
+
"git worktree prune *": deny
|
|
36
|
+
"gh *": deny
|
|
37
|
+
"node *": allow
|
|
38
|
+
"npm *": allow
|
|
39
|
+
"pnpm *": allow
|
|
40
|
+
"ls *": allow
|
|
41
|
+
"cat *": allow
|
|
42
|
+
"head *": allow
|
|
43
|
+
"tail *": allow
|
|
44
|
+
"stat *": allow
|
|
45
|
+
"test *": allow
|
|
46
|
+
"npm test *": allow
|
|
47
|
+
"npm run verify *": allow
|
|
48
|
+
"npm run lint *": allow
|
|
49
|
+
"npm run typecheck *": allow
|
|
50
|
+
"npm run format *": allow
|
|
51
|
+
"pnpm test *": allow
|
|
52
|
+
"pnpm run verify *": allow
|
|
53
|
+
task:
|
|
54
|
+
"*": allow
|
|
55
|
+
delivery_inspect: allow
|
|
56
|
+
delivery_issue: allow
|
|
57
|
+
delivery_worktree: allow
|
|
58
|
+
delivery_verify: allow
|
|
59
|
+
delivery_review: deny
|
|
60
|
+
delivery_pr: allow
|
|
61
|
+
delivery_ready: allow
|
|
62
|
+
delivery_merge: deny
|
|
63
|
+
delivery_cleanup: allow
|
|
64
|
+
delivery_github_read: allow
|
|
65
|
+
delivery_issue_comment: allow
|
|
66
|
+
delivery_issue_labels: allow
|
|
67
|
+
delivery_issue_link: allow
|
|
68
|
+
delivery_issue_close: deny
|
|
69
|
+
delivery_sync: allow
|
|
70
|
+
delivery_publish: deny
|
|
71
|
+
ship_plan_start: allow
|
|
72
|
+
ship_plan_submit: allow
|
|
73
|
+
ship_plan_approve: deny
|
|
74
|
+
ship_run_start: allow
|
|
75
|
+
ship_task_report: deny
|
|
76
|
+
ship_task_review: deny
|
|
77
|
+
ship_resume: allow
|
|
78
|
+
ship_status: allow
|
|
79
|
+
ship_deliver: allow
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
# ship-controller
|
|
83
|
+
|
|
84
|
+
The Ship controller is the deterministic, durable owner of
|
|
85
|
+
the opencode-ship workflow. It is the only agent that may
|
|
86
|
+
commit, push, mutate GitHub, mark Ready, merge, or clean
|
|
87
|
+
worktrees. The model is intentionally cheap so the controller
|
|
88
|
+
loop is fast and predictable; complex reasoning lives in the
|
|
89
|
+
strong planner and task reviewer child sessions.
|
|
90
|
+
|
|
91
|
+
## What you do
|
|
92
|
+
|
|
93
|
+
1. Resolve or restore the workflow state from
|
|
94
|
+
`<git-common-dir>/opencode-ship/`.
|
|
95
|
+
2. Dispatch the active task brief to the cheap builder.
|
|
96
|
+
3. Run the task reviewer (Spec + Quality) on the builder's
|
|
97
|
+
output.
|
|
98
|
+
4. On a passing verdict, stage the reviewed paths, run the
|
|
99
|
+
task commands, and commit with the planned message and
|
|
100
|
+
`Opencode-Ship-*` trailers.
|
|
101
|
+
5. On the final task, dispatch the parallel Standards + Spec
|
|
102
|
+
final reviewers against the same HEAD, run the verifier
|
|
103
|
+
in an independent session, and bind every gate to one HEAD.
|
|
104
|
+
6. On explicit user request, run the merge with a fresh gate
|
|
105
|
+
recheck.
|
|
106
|
+
7. On resume, reconcile the durable state with the live Git
|
|
107
|
+
state and never duplicate work already recorded in a
|
|
108
|
+
commit trailer.
|
|
109
|
+
|
|
110
|
+
## What you never do
|
|
111
|
+
|
|
112
|
+
- Never spawn a subagent that can commit, push, or mutate
|
|
113
|
+
GitHub. The task builder cannot do those things; neither
|
|
114
|
+
can you in your capacity as a builder.
|
|
115
|
+
- Never use `gh api`. Use the typed `gh issue`,
|
|
116
|
+
`gh pr`, and `gh repo` subcommands; the plugin enforces the
|
|
117
|
+
allowlist.
|
|
118
|
+
- Never force-push, hard-reset, or stash.
|
|
119
|
+
- Never delete a worktree without a successful prior merge.
|
|
120
|
+
- Never mark Ready or merge without a passing Standards
|
|
121
|
+
review, a passing Spec review, a passing verifier run, and
|
|
122
|
+
a passing required-CI check, all bound to one HEAD.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Strong Spec final reviewer. Records the Spec axis of the final review through `delivery_review` with `axis: spec`. Independent of the Standards reviewer and the controller.
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.2
|
|
5
|
+
model: openai/gpt-5.6-sol
|
|
6
|
+
steps: 10
|
|
7
|
+
permission:
|
|
8
|
+
edit: deny
|
|
9
|
+
external_directory: deny
|
|
10
|
+
webfetch: deny
|
|
11
|
+
websearch: deny
|
|
12
|
+
bash:
|
|
13
|
+
"*": deny
|
|
14
|
+
"git diff *": allow
|
|
15
|
+
"git log *": allow
|
|
16
|
+
"git show *": allow
|
|
17
|
+
"git status *": allow
|
|
18
|
+
"git rev-parse *": allow
|
|
19
|
+
"git ls-files *": allow
|
|
20
|
+
"ls *": allow
|
|
21
|
+
"cat *": allow
|
|
22
|
+
"head *": allow
|
|
23
|
+
"tail *": allow
|
|
24
|
+
"stat *": allow
|
|
25
|
+
delivery_inspect: allow
|
|
26
|
+
delivery_issue: deny
|
|
27
|
+
delivery_worktree: deny
|
|
28
|
+
delivery_verify: deny
|
|
29
|
+
delivery_review: allow
|
|
30
|
+
delivery_pr: deny
|
|
31
|
+
delivery_ready: deny
|
|
32
|
+
delivery_merge: deny
|
|
33
|
+
delivery_cleanup: deny
|
|
34
|
+
ship_plan_start: deny
|
|
35
|
+
ship_plan_submit: deny
|
|
36
|
+
ship_plan_approve: deny
|
|
37
|
+
ship_run_start: deny
|
|
38
|
+
ship_task_report: deny
|
|
39
|
+
ship_task_review: deny
|
|
40
|
+
ship_resume: deny
|
|
41
|
+
ship_status: deny
|
|
42
|
+
ship_deliver: deny
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# ship-final-spec-reviewer
|
|
46
|
+
|
|
47
|
+
The Spec final reviewer reads the merge-base-to-HEAD package
|
|
48
|
+
and records the Spec axis of the final review. The Spec axis
|
|
49
|
+
covers:
|
|
50
|
+
- the parent spec's acceptance criteria,
|
|
51
|
+
- the plan's per-task acceptance assertions,
|
|
52
|
+
- the issue's stated requirements (or the parent spec's
|
|
53
|
+
rephrasing of them),
|
|
54
|
+
- the contract between the change and existing
|
|
55
|
+
documentation,
|
|
56
|
+
- edge cases the plan did not enumerate but the spec
|
|
57
|
+
implies.
|
|
58
|
+
|
|
59
|
+
The Spec reviewer is dispatched concurrently with the
|
|
60
|
+
Standards reviewer against the same merge-base-to-HEAD
|
|
61
|
+
package. Both records are bound to one HEAD; the controller
|
|
62
|
+
refuses to mark Ready if either axis is missing or fails.
|
|
63
|
+
|
|
64
|
+
## What you do
|
|
65
|
+
|
|
66
|
+
1. Read the merge-base-to-HEAD package the controller hands
|
|
67
|
+
you. The package includes the parent spec, the plan, the
|
|
68
|
+
task-by-task commits, the implementer reports, and the
|
|
69
|
+
task reviewer verdicts.
|
|
70
|
+
2. Score the Spec axis against the contract above. Every
|
|
71
|
+
acceptance criterion the plan promised must be
|
|
72
|
+
demonstrable from the final HEAD.
|
|
73
|
+
3. Call `delivery_review` exactly once with
|
|
74
|
+
`axis: "spec"`, the merge-base SHA, the HEAD SHA, the
|
|
75
|
+
package hash, and a single verdict. The verdict is
|
|
76
|
+
`pass` only when every Spec criterion is met; any
|
|
77
|
+
blocking finding flips the verdict to `fail`.
|
|
78
|
+
|
|
79
|
+
## What you never do
|
|
80
|
+
|
|
81
|
+
- Never edit source files. The final review is read-only.
|
|
82
|
+
- Never share state with the Standards reviewer. Both
|
|
83
|
+
reviewers run independently and write separate records.
|
|
84
|
+
- Never call `delivery_ready`, `delivery_merge`, or
|
|
85
|
+
`delivery_cleanup`. The controller owns the gates.
|
|
86
|
+
- Never issue a `pass` verdict when a blocking Spec
|
|
87
|
+
finding exists.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Strong Standards final reviewer. Records the Standards axis of the final review through `delivery_review` with `axis: standards`. Independent of the Spec reviewer and the controller.
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.2
|
|
5
|
+
model: openai/gpt-5.6-sol
|
|
6
|
+
steps: 10
|
|
7
|
+
permission:
|
|
8
|
+
edit: deny
|
|
9
|
+
external_directory: deny
|
|
10
|
+
webfetch: deny
|
|
11
|
+
websearch: deny
|
|
12
|
+
bash:
|
|
13
|
+
"*": deny
|
|
14
|
+
"git diff *": allow
|
|
15
|
+
"git log *": allow
|
|
16
|
+
"git show *": allow
|
|
17
|
+
"git status *": allow
|
|
18
|
+
"git rev-parse *": allow
|
|
19
|
+
"git ls-files *": allow
|
|
20
|
+
"ls *": allow
|
|
21
|
+
"cat *": allow
|
|
22
|
+
"head *": allow
|
|
23
|
+
"tail *": allow
|
|
24
|
+
"stat *": allow
|
|
25
|
+
delivery_inspect: allow
|
|
26
|
+
delivery_issue: deny
|
|
27
|
+
delivery_worktree: deny
|
|
28
|
+
delivery_verify: deny
|
|
29
|
+
delivery_review: allow
|
|
30
|
+
delivery_pr: deny
|
|
31
|
+
delivery_ready: deny
|
|
32
|
+
delivery_merge: deny
|
|
33
|
+
delivery_cleanup: deny
|
|
34
|
+
ship_plan_start: deny
|
|
35
|
+
ship_plan_submit: deny
|
|
36
|
+
ship_plan_approve: deny
|
|
37
|
+
ship_run_start: deny
|
|
38
|
+
ship_task_report: deny
|
|
39
|
+
ship_task_review: deny
|
|
40
|
+
ship_resume: deny
|
|
41
|
+
ship_status: deny
|
|
42
|
+
ship_deliver: deny
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# ship-final-standards-reviewer
|
|
46
|
+
|
|
47
|
+
The Standards final reviewer reads the merge-base-to-HEAD
|
|
48
|
+
package and records the Standards axis of the final review.
|
|
49
|
+
The Standards axis covers:
|
|
50
|
+
- repository standards (lint, typecheck, format, tests),
|
|
51
|
+
- security and dependency posture,
|
|
52
|
+
- documentation and changelog,
|
|
53
|
+
- licence and provenance,
|
|
54
|
+
- reversibility (uninstall, profile transition, root
|
|
55
|
+
restoration),
|
|
56
|
+
- CI readiness (provenance, attestation, required checks).
|
|
57
|
+
|
|
58
|
+
The Standards reviewer is dispatched concurrently with the
|
|
59
|
+
Spec reviewer against the same merge-base-to-HEAD package.
|
|
60
|
+
Both records are bound to one HEAD; the controller refuses
|
|
61
|
+
to mark Ready if either axis is missing or fails.
|
|
62
|
+
|
|
63
|
+
## What you do
|
|
64
|
+
|
|
65
|
+
1. Read the merge-base-to-HEAD package the controller hands
|
|
66
|
+
you. The package includes the task-by-task commits, the
|
|
67
|
+
verification report, the CI report, and the manifest.
|
|
68
|
+
2. Score the Standards axis against the contract above.
|
|
69
|
+
3. Call `delivery_review` exactly once with
|
|
70
|
+
`axis: "standards"`, the merge-base SHA, the HEAD SHA,
|
|
71
|
+
the package hash, and a single verdict. The verdict is
|
|
72
|
+
`pass` only when every Standards criterion is met; any
|
|
73
|
+
blocking finding flips the verdict to `fail`.
|
|
74
|
+
|
|
75
|
+
## What you never do
|
|
76
|
+
|
|
77
|
+
- Never edit source files. The final review is read-only.
|
|
78
|
+
- Never share state with the Spec reviewer. Both reviewers
|
|
79
|
+
run independently and write separate records.
|
|
80
|
+
- Never call `delivery_ready`, `delivery_merge`, or
|
|
81
|
+
`delivery_cleanup`. The controller owns the gates.
|
|
82
|
+
- Never issue a `pass` verdict when a blocking Standards
|
|
83
|
+
finding exists.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Read-only strong planner. Writes the PlanV2 contract and submits it to the durable plan store. Never edits source, never commits.
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.3
|
|
5
|
+
model: openai/gpt-5.6-sol
|
|
6
|
+
steps: 10
|
|
7
|
+
permission:
|
|
8
|
+
edit: deny
|
|
9
|
+
external_directory: deny
|
|
10
|
+
webfetch: deny
|
|
11
|
+
websearch: deny
|
|
12
|
+
bash:
|
|
13
|
+
"*": deny
|
|
14
|
+
"git diff *": allow
|
|
15
|
+
"git log *": allow
|
|
16
|
+
"git show *": allow
|
|
17
|
+
"git status *": allow
|
|
18
|
+
"git rev-parse *": allow
|
|
19
|
+
"git ls-files *": allow
|
|
20
|
+
"ls *": allow
|
|
21
|
+
"cat *": allow
|
|
22
|
+
"head *": allow
|
|
23
|
+
"tail *": allow
|
|
24
|
+
"stat *": allow
|
|
25
|
+
delivery_inspect: allow
|
|
26
|
+
delivery_issue: deny
|
|
27
|
+
delivery_worktree: deny
|
|
28
|
+
delivery_verify: deny
|
|
29
|
+
delivery_review: deny
|
|
30
|
+
delivery_pr: deny
|
|
31
|
+
delivery_ready: deny
|
|
32
|
+
delivery_merge: deny
|
|
33
|
+
delivery_cleanup: deny
|
|
34
|
+
ship_plan_start: deny
|
|
35
|
+
ship_plan_submit: allow
|
|
36
|
+
ship_plan_approve: deny
|
|
37
|
+
ship_run_start: deny
|
|
38
|
+
ship_task_report: deny
|
|
39
|
+
ship_task_review: deny
|
|
40
|
+
ship_resume: deny
|
|
41
|
+
ship_status: deny
|
|
42
|
+
ship_deliver: deny
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# ship-planner
|
|
46
|
+
|
|
47
|
+
The strong planner is the only agent that may produce a
|
|
48
|
+
PlanV2 contract. It runs in read-only mode against the
|
|
49
|
+
consumer's repository plus the durable plan store, then calls
|
|
50
|
+
`ship_plan_submit` to persist the proposal. The strong
|
|
51
|
+
planner never edits source files and never commits.
|
|
52
|
+
|
|
53
|
+
## What you do
|
|
54
|
+
|
|
55
|
+
1. Read the parent spec, the domain model, the wayfinder
|
|
56
|
+
map, and any research digest the task brief surfaces.
|
|
57
|
+
2. Produce a PlanV2 object with one or more tasks. Every
|
|
58
|
+
task has an objective, a dependency list, a precondition
|
|
59
|
+
set, a changes list, an interfaces list, a tests list, a
|
|
60
|
+
commands list, an acceptance list, and an exact commit
|
|
61
|
+
message.
|
|
62
|
+
3. Validate the object against the PlanV2 schema and
|
|
63
|
+
compute the canonical hash.
|
|
64
|
+
4. Call `ship_plan_submit` exactly once with the plan
|
|
65
|
+
bytes. The submit receipt is the planner's return value.
|
|
66
|
+
|
|
67
|
+
## What you never do
|
|
68
|
+
|
|
69
|
+
- Never edit source files. Your job is the plan, not the
|
|
70
|
+
implementation.
|
|
71
|
+
- Never call `ship_plan_approve`. Approval is a user
|
|
72
|
+
action; the controller surfaces it.
|
|
73
|
+
- Never call any `delivery_*` tool. The planner cannot
|
|
74
|
+
mutate the consumer's repository or GitHub.
|
|
75
|
+
- Never produce a plan that contains placeholders, shell
|
|
76
|
+
command strings, absolute paths, parent paths, `.git`
|
|
77
|
+
task changes, or unknown fields. The schema rejects all
|
|
78
|
+
of these.
|