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.
Files changed (137) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +3 -1
  3. package/THIRD_PARTY_NOTICES.md +77 -19
  4. package/assets/agents/ship-controller.md +122 -0
  5. package/assets/agents/ship-final-spec-reviewer.md +87 -0
  6. package/assets/agents/ship-final-standards-reviewer.md +83 -0
  7. package/assets/agents/ship-planner.md +78 -0
  8. package/assets/agents/ship-task-builder.md +91 -0
  9. package/assets/agents/ship-task-reviewer.md +78 -0
  10. package/assets/commands/ship-deliver.md +30 -0
  11. package/assets/commands/ship-resume.md +28 -0
  12. package/assets/commands/ship-status.md +25 -0
  13. package/assets/skills/brainstorming/SKILL.md +160 -0
  14. package/assets/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  15. package/assets/skills/brainstorming/visual-companion.md +298 -0
  16. package/assets/skills/code-review/SKILL.md +98 -0
  17. package/assets/skills/codebase-design/DEEPENING.md +37 -0
  18. package/assets/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  19. package/assets/skills/codebase-design/SKILL.md +123 -0
  20. package/assets/skills/dispatching-parallel-agents/SKILL.md +176 -0
  21. package/assets/skills/domain-modeling/ADR-FORMAT.md +47 -0
  22. package/assets/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  23. package/assets/skills/domain-modeling/SKILL.md +83 -0
  24. package/assets/skills/engineering-workflow/SKILL.md +125 -0
  25. package/assets/skills/engineering-workflow/domain.md +51 -0
  26. package/assets/skills/engineering-workflow/issue-tracker-github.md +45 -0
  27. package/assets/skills/engineering-workflow/issue-tracker-gitlab.md +46 -0
  28. package/assets/skills/engineering-workflow/issue-tracker-local.md +30 -0
  29. package/assets/skills/engineering-workflow/triage-labels.md +15 -0
  30. package/assets/skills/executing-plans/SKILL.md +73 -0
  31. package/assets/skills/grill-with-docs/SKILL.md +10 -14
  32. package/assets/skills/grilling/SKILL.md +21 -0
  33. package/assets/skills/handoff/SKILL.md +25 -0
  34. package/assets/skills/prototype/LOGIC.md +79 -0
  35. package/assets/skills/prototype/SKILL.md +35 -0
  36. package/assets/skills/prototype/UI.md +112 -0
  37. package/assets/skills/receiving-code-review/SKILL.md +214 -0
  38. package/assets/skills/requesting-code-review/SKILL.md +104 -0
  39. package/assets/skills/requesting-code-review/code-reviewer.md +172 -0
  40. package/assets/skills/research/SKILL.md +21 -0
  41. package/assets/skills/setup-engineering-workflow/SKILL.md +125 -0
  42. package/assets/skills/setup-engineering-workflow/domain.md +51 -0
  43. package/assets/skills/setup-engineering-workflow/issue-tracker-github.md +45 -0
  44. package/assets/skills/setup-engineering-workflow/issue-tracker-gitlab.md +46 -0
  45. package/assets/skills/setup-engineering-workflow/issue-tracker-local.md +30 -0
  46. package/assets/skills/setup-engineering-workflow/triage-labels.md +15 -0
  47. package/assets/skills/subagent-driven-development/SKILL.md +512 -0
  48. package/assets/skills/subagent-driven-development/implementer-prompt.md +142 -0
  49. package/assets/skills/subagent-driven-development/re-review-prompt.md +106 -0
  50. package/assets/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
  51. package/assets/skills/systematic-debugging/CREATION-LOG.md +119 -0
  52. package/assets/skills/systematic-debugging/SKILL.md +292 -0
  53. package/assets/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  54. package/assets/skills/systematic-debugging/condition-based-waiting.md +115 -0
  55. package/assets/skills/systematic-debugging/defense-in-depth.md +122 -0
  56. package/assets/skills/systematic-debugging/find-polluter.sh +72 -0
  57. package/assets/skills/systematic-debugging/root-cause-tracing.md +169 -0
  58. package/assets/skills/systematic-debugging/test-academic.md +14 -0
  59. package/assets/skills/systematic-debugging/test-pressure-1.md +58 -0
  60. package/assets/skills/systematic-debugging/test-pressure-2.md +68 -0
  61. package/assets/skills/systematic-debugging/test-pressure-3.md +69 -0
  62. package/assets/skills/test-driven-development/SKILL.md +329 -0
  63. package/assets/skills/test-driven-development/writing-good-tests.md +198 -0
  64. package/assets/skills/to-spec/SKILL.md +84 -0
  65. package/assets/skills/to-tickets/SKILL.md +114 -0
  66. package/assets/skills/triage/AGENT-BRIEF.md +207 -0
  67. package/assets/skills/triage/OUT-OF-SCOPE.md +105 -0
  68. package/assets/skills/triage/SKILL.md +114 -15
  69. package/assets/skills/verification-before-completion/SKILL.md +129 -0
  70. package/assets/skills/wayfinder/SKILL.md +137 -0
  71. package/assets/skills/writing-plans/SKILL.md +177 -0
  72. package/assets/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  73. package/dist/cli.js +1146 -435
  74. package/dist/core.js +210 -61
  75. package/dist/plugin.js +2368 -230
  76. package/package.json +3 -1
  77. package/schema/ship-config.schema.json +63 -2
  78. package/schema/ship-lock.schema.json +5 -3
  79. package/tests/plugin/plugin-load.test.mjs +85 -0
  80. package/vendor/mattpocock/LICENSE +30 -0
  81. package/vendor/obra/LICENSE +30 -0
  82. package/vendor/sources.json +976 -0
  83. package/vendor/superpowers/LICENSE +30 -0
  84. package/vendor/upstreams/mattpocock/skills/engineering/code-review/SKILL.md +89 -0
  85. package/vendor/upstreams/mattpocock/skills/engineering/codebase-design/DEEPENING.md +37 -0
  86. package/vendor/upstreams/mattpocock/skills/engineering/codebase-design/DESIGN-IT-TWICE.md +44 -0
  87. package/vendor/upstreams/mattpocock/skills/engineering/codebase-design/SKILL.md +114 -0
  88. package/vendor/upstreams/mattpocock/skills/engineering/domain-modeling/ADR-FORMAT.md +47 -0
  89. package/vendor/upstreams/mattpocock/skills/engineering/domain-modeling/CONTEXT-FORMAT.md +60 -0
  90. package/vendor/upstreams/mattpocock/skills/engineering/domain-modeling/SKILL.md +74 -0
  91. package/vendor/upstreams/mattpocock/skills/engineering/grill-with-docs/SKILL.md +7 -0
  92. package/vendor/upstreams/mattpocock/skills/engineering/prototype/LOGIC.md +79 -0
  93. package/vendor/upstreams/mattpocock/skills/engineering/prototype/SKILL.md +26 -0
  94. package/vendor/upstreams/mattpocock/skills/engineering/prototype/UI.md +112 -0
  95. package/vendor/upstreams/mattpocock/skills/engineering/research/SKILL.md +12 -0
  96. package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/SKILL.md +116 -0
  97. package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/domain.md +51 -0
  98. package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
  99. package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
  100. package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
  101. package/vendor/upstreams/mattpocock/skills/engineering/setup-matt-pocock-skills/triage-labels.md +15 -0
  102. package/vendor/upstreams/mattpocock/skills/engineering/to-spec/SKILL.md +75 -0
  103. package/vendor/upstreams/mattpocock/skills/engineering/to-tickets/SKILL.md +105 -0
  104. package/vendor/upstreams/mattpocock/skills/engineering/triage/AGENT-BRIEF.md +207 -0
  105. package/vendor/upstreams/mattpocock/skills/engineering/triage/OUT-OF-SCOPE.md +105 -0
  106. package/vendor/upstreams/mattpocock/skills/engineering/triage/SKILL.md +112 -0
  107. package/vendor/upstreams/mattpocock/skills/engineering/wayfinder/SKILL.md +128 -0
  108. package/vendor/upstreams/mattpocock/skills/productivity/grilling/SKILL.md +12 -0
  109. package/vendor/upstreams/mattpocock/skills/productivity/handoff/SKILL.md +16 -0
  110. package/vendor/upstreams/obra/skills/brainstorming/SKILL.md +151 -0
  111. package/vendor/upstreams/obra/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  112. package/vendor/upstreams/obra/skills/brainstorming/visual-companion.md +298 -0
  113. package/vendor/upstreams/obra/skills/dispatching-parallel-agents/SKILL.md +167 -0
  114. package/vendor/upstreams/obra/skills/executing-plans/SKILL.md +64 -0
  115. package/vendor/upstreams/obra/skills/receiving-code-review/SKILL.md +205 -0
  116. package/vendor/upstreams/obra/skills/requesting-code-review/SKILL.md +95 -0
  117. package/vendor/upstreams/obra/skills/requesting-code-review/code-reviewer.md +172 -0
  118. package/vendor/upstreams/obra/skills/subagent-driven-development/SKILL.md +503 -0
  119. package/vendor/upstreams/obra/skills/subagent-driven-development/implementer-prompt.md +142 -0
  120. package/vendor/upstreams/obra/skills/subagent-driven-development/re-review-prompt.md +106 -0
  121. package/vendor/upstreams/obra/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
  122. package/vendor/upstreams/obra/skills/systematic-debugging/CREATION-LOG.md +119 -0
  123. package/vendor/upstreams/obra/skills/systematic-debugging/SKILL.md +283 -0
  124. package/vendor/upstreams/obra/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  125. package/vendor/upstreams/obra/skills/systematic-debugging/condition-based-waiting.md +115 -0
  126. package/vendor/upstreams/obra/skills/systematic-debugging/defense-in-depth.md +122 -0
  127. package/vendor/upstreams/obra/skills/systematic-debugging/find-polluter.sh +72 -0
  128. package/vendor/upstreams/obra/skills/systematic-debugging/root-cause-tracing.md +169 -0
  129. package/vendor/upstreams/obra/skills/systematic-debugging/test-academic.md +14 -0
  130. package/vendor/upstreams/obra/skills/systematic-debugging/test-pressure-1.md +58 -0
  131. package/vendor/upstreams/obra/skills/systematic-debugging/test-pressure-2.md +68 -0
  132. package/vendor/upstreams/obra/skills/systematic-debugging/test-pressure-3.md +69 -0
  133. package/vendor/upstreams/obra/skills/test-driven-development/SKILL.md +320 -0
  134. package/vendor/upstreams/obra/skills/test-driven-development/writing-good-tests.md +198 -0
  135. package/vendor/upstreams/obra/skills/verification-before-completion/SKILL.md +120 -0
  136. package/vendor/upstreams/obra/skills/writing-plans/SKILL.md +168 -0
  137. 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 complete engineering profile publish. The installer is a `pnpm dlx opencode-ship@latest <cmd>` workflow. Five idempotent CLI commands manage a managed-file lock, a transactional promoter, and a compiled ESM plugin that registers the canonical nine `delivery_*` tools. Every command now accepts `--profile <name>` (`core` default, `engineering` opt-in) and resolves the active profile through one documented precedence chain (CLI > ship.config > lock > default). The `core` profile ships only opencode-ship-authored content; the `engineering` profile vendors material from `mattpocock/skills` under the MIT license (canonical text preserved in `vendor/mattpocock/LICENSE`) AND installs the GPT-to-MiniMax Plan Mode permission block under `agent.plan.permission` so consumers can spin up a Plan Mode sub-agent without hand-editing the opencode.json. The M3 task loop contract (run store + task brief + Spec/Quality verdicts + 3-round breaker + commit binding + compaction context) is implemented end-to-end. The Ready gate contract (parallel GPT Standards/Spec + verifier + CI on one HEAD; Build cannot self-record) is implemented end-to-end. v0.9 ships the transition matrix smoke (core omits engineering, engineering adds engineering, lock tracks the active profile) required by issue #24 and approved plan `f85bae931d9eed7763e2f6f4dc68e5fad71bdd38c8a667fc9ffe78b5290200be` (`Viktorxyz/opencode-ship#16`).
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
 
@@ -1,27 +1,85 @@
1
1
  # Third-Party Notices
2
2
 
3
- `opencode-ship@0.9.0` ships the profile-aware installer foundation
4
- (`core` and `engineering` profiles), the durable plan artifact
5
- with Plan Mode permission integration, the M3 task loop
6
- contract, the Ready gate, and the transition matrix smoke. The
7
- `core` profile ships only opencode-ship-authored content (two
8
- delivery agents, two workflow skills). The `engineering` profile
9
- vendors material from
10
- [mattpocock/skills](https://github.com/mattpocock/skills) under
11
- the MIT license; the canonical license text is preserved in
12
- `vendor/mattpocock/LICENSE`. The current package version ships
13
- placeholder SKILL.md content for `triage` and `grill-with-docs`; the
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/triage/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
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
- The manifest at `vendor/sources.json` records the immutable
26
- source reference, upstream path, local target, SHA-256, reuse
27
- mode, license, and adaptation note for every vendored file.
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.