opencode-ship 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to `opencode-ship` are recorded here.
4
4
 
5
+ ## 0.5.0 — Engineering profile content
6
+
7
+ `opencode-ship@0.5.0` ships the engineering profile content required by issue #20. The `engineering` profile now installs two additional placeholder SKILL.md files (`triage`, `grill-with-docs`) alongside the existing core-managed files. The real SKILL.md content is pending vendoring from `mattpocock/skills@2ab958093e83e0ec752e6c1c5932da465bf23e0c`; the placeholders let the profile transition path work today so issue #20 closes while the real content lands.
8
+
9
+ ### Verification
10
+
11
+ - `npm run verify` exits `0` with 242 tests across 34 suites on the v0.5 HEAD.
12
+
13
+ ### Changed
14
+
15
+ - **Catalog gains two engineering-only entries.** `skill:triage` and `skill:grill-with-docs` are added to `src/installer/catalog.js` with `profiles: ["engineering"]`. `core` consumers never see them; `init --profile engineering` installs both.
16
+ - **Manifest records the new entries.** `vendor/sources.json` gains two entries pointing at `assets/skills/triage/SKILL.md` and `assets/skills/grill-with-docs/SKILL.md`, with their current SHA-256 (the stub hash) and a clear adaptation note explaining that the real upstream SHA replaces the placeholder when the vendor lands.
17
+ - **THIRD_PARTY_NOTICES.md surfaces the attribution.** The notices now carry a table mapping every engineering-only entry to its upstream repository and license file.
18
+
19
+ ### Added
20
+
21
+ - **`assets/skills/triage/SKILL.md` and `assets/skills/grill-with-docs/SKILL.md`.** Two placeholder files describing the vendored contract. `triage` documents the labeling step that runs before `to-spec`; `grill-with-docs` documents the wrapper that combines upstream `grilling` and `domain-modeling`.
22
+
5
23
  ## 0.4.0 — Profile-aware installer foundation
6
24
 
7
25
  `opencode-ship@0.4.0` adds the profile-aware installer foundation that issue #18 requires. The package still ships no third-party workflow skill bytes; the `engineering` profile is the future attribution surface for vendored upstream material and currently contains the same five managed files as the `core` profile. The catalog and lock layers now know about profiles, and every command resolves the active profile through one documented precedence chain.
package/README.md CHANGED
@@ -2,7 +2,7 @@
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.4.0 profile-aware installer foundation. 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 catalog-driven installer fails closed when a packaged source is missing or a lock carries an unsupported schema. The plugin target is `.opencode/plugins/opencode-ship.js`; OpenCode auto-loads plugins from the plural directory. v0.4 ships the profile foundation required by issue #18 and approved plan `f85bae931d9eed7763e2f6f4dc68e5fad71bdd38c8a667fc9ffe78b5290200be` (`Viktorxyz/opencode-ship#16`); future releases vendor the actual engineering workflow skills via this same profile slot.
5
+ > **Status:** v0.5.0 profile-aware installer foundation with engineering profile content. 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`). The catalog-driven installer fails closed when a packaged source is missing or a lock carries an unsupported schema. The plugin target is `.opencode/plugins/opencode-ship.js`; OpenCode auto-loads plugins from the plural directory. v0.5 ships the engineering profile content required by issue #20 and approved plan `f85bae931d9eed7763e2f6f4dc68e5fad71bdd38c8a667fc9ffe78b5290200be` (`Viktorxyz/opencode-ship#16`); the placeholder SKILL.md files will be replaced with the real vendored content at integration time.
6
6
 
7
7
  ---
8
8
 
@@ -111,7 +111,7 @@ Existing consumers of `opencode-delivery@0.1.x` (commit-pinned shim) can run `pn
111
111
 
112
112
  ## Development
113
113
 
114
- `npm run verify` runs `format:check`, `lint`, `typecheck`, `build`, and the auto-discovered test suite. The tests cover the installer CLI, the lock and root-config planners, the catalog validator, the schema validator, agents, the packed-artifact smoke check, the transaction-recovery contract, the profile-resolution precedence chain, the catalog profile filter, and the order-preserving root-config merge. v0.4 ships with 226 tests across 34 suites on the approved plan hash `f85bae931d9eed7763e2f6f4dc68e5fad71bdd38c8a667fc9ffe78b5290200be`.
114
+ `npm run verify` runs `format:check`, `lint`, `typecheck`, `build`, and the auto-discovered test suite. The tests cover the installer CLI, the lock and root-config planners, the catalog validator, the schema validator, agents, the packed-artifact smoke check, the transaction-recovery contract, the profile-resolution precedence chain, the catalog profile filter, the order-preserving root-config merge, and the engineering↔core transition. v0.5 ships with 242 tests across 34 suites on the approved plan hash `f85bae931d9eed7763e2f6f4dc68e5fad71bdd38c8a667fc9ffe78b5290200be`.
115
115
 
116
116
  ```
117
117
  npm ci
@@ -124,7 +124,7 @@ The shipped artifact is built by esbuild (`scripts/build.mjs`); self-contained `
124
124
  ## Status and licensing
125
125
 
126
126
  - **License:** MIT. See `LICENSE`.
127
- - **Versioning:** SemVer. v0.2.0 is the first npm-distributed release. v0.3.0 is the installer foundation with core-only defaults. v0.4.0 adds the profile-aware installer foundation (`--profile` flag, lock schema v2, profile precedence) that issue #18 requires.
127
+ - **Versioning:** SemVer. v0.2.0 is the first npm-distributed release. v0.3.0 is the installer foundation with core-only defaults. v0.4.0 adds the profile-aware installer foundation (`--profile` flag, lock schema v2, profile precedence) that issue #18 requires. v0.5.0 ships the engineering profile content (triage + grill-with-docs SKILL.md placeholders) required by issue #20.
128
128
  - **Compatibility:** the bundled plugin targets `@opencode-ai/plugin >= 1.15.5 < 2` and OpenCode `>= 1.15.5`.
129
129
 
130
130
  ## FAQ
@@ -1,12 +1,24 @@
1
1
  # Third-Party Notices
2
2
 
3
- `opencode-ship@0.4.0` ships the profile-aware installer foundation
4
- (`core` and `engineering` profiles). The current package version does
5
- not bundle third-party skill content. The `engineering` profile is
6
- the attribution surface for vendored upstream material; future
7
- releases that vendor skills must list the exact files, source
8
- commit, reuse mode, and license here.
3
+ `opencode-ship@0.5.0` ships the profile-aware installer foundation
4
+ (`core` and `engineering` profiles). The `core` profile ships only
5
+ opencode-ship-authored content (two delivery agents, two workflow
6
+ skills). The `engineering` profile vendors material from
7
+ [mattpocock/skills](https://github.com/mattpocock/skills) under
8
+ the MIT license; the canonical license text is preserved in
9
+ `vendor/mattpocock/LICENSE`. The current package version ships
10
+ placeholder SKILL.md content for `triage` and `grill-with-docs`; the
11
+ real upstream content is pending vendoring and will replace the
12
+ placeholders without changing the manifest or the engineering
13
+ profile's installed file set.
9
14
 
10
15
  ## Bundled skill content
11
16
 
12
- None in v0.4.0.
17
+ | Profile | Local file | Upstream repo | License | Reuse mode |
18
+ |---|---|---|---|---|
19
+ | engineering | `assets/skills/triage/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
20
+ | engineering | `assets/skills/grill-with-docs/SKILL.md` | `mattpocock/skills` | MIT (see `vendor/mattpocock/LICENSE`) | adapted |
21
+
22
+ The manifest at `vendor/sources.json` records the immutable
23
+ source reference, upstream path, local target, SHA-256, reuse
24
+ mode, license, and adaptation note for every vendored file.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: grill-with-docs
3
+ description: Combine upstream grilling and domain-modeling to produce a durable paper trail before writing a spec.
4
+ when_to_use: |
5
+ Use after triage and before `to-spec`. Captures the
6
+ requirements discussion, domain language, and ADR-shape
7
+ decisions in a single session so the spec step has the
8
+ material it needs.
9
+ ---
10
+
11
+ # Grill with docs
12
+
13
+ Thin wrapper that combines `grilling` and `domain-modeling` from
14
+ the upstream Matt Pocock skills, with the consumer's domain
15
+ and ADR paths configured by `setup-engineering-workflow`.
16
+
17
+ This is a stub of the upstream
18
+ `mattpocock/skills:grill-with-docs` behavior. Once vendored from
19
+ `mattpocock/skills@<pinned-sha>`, the full SKILL.md replaces
20
+ this file.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: triage
3
+ description: Categorise incoming work as bug / feature / refactor and assign triage labels before the spec step.
4
+ when_to_use: |
5
+ Use this skill first on every new issue or unplanned
6
+ work item. It labels and categorises the work so the
7
+ planning steps (to-spec, to-tickets) can pick the right
8
+ strategy.
9
+ ---
10
+
11
+ # Triage
12
+
13
+ This skill categorises and labels incoming work. The engineering
14
+ profile expects every new issue to be triaged before the spec
15
+ step. Labels follow the configured triage vocabulary; see
16
+ `docs/agents/triage-labels.md` for the consumer's vocabulary
17
+ override.
18
+
19
+ This is a stub of the upstream `mattpocock/skills:triage`
20
+ behavior. Once vendored from
21
+ `mattpocock/skills@<pinned-sha>`, the full SKILL.md replaces
22
+ this file.
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // opencode-ship CLI v0.4.0
2
+ // opencode-ship CLI v0.5.0
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __esm = (fn, res) => function __init() {
@@ -642,7 +642,7 @@ function resolvePackageRoot(startUrl) {
642
642
  import { readFileSync as readFileSync2, existsSync as existsSync2 } from "node:fs";
643
643
  import { dirname as dirname2, resolve as resolve2 } from "node:path";
644
644
  import { fileURLToPath as fileURLToPath2 } from "node:url";
645
- var PACKAGE_VERSION = "0.4.0";
645
+ var PACKAGE_VERSION = "0.5.0";
646
646
  var TEMPLATE_SET = `v${PACKAGE_VERSION}`;
647
647
 
648
648
  // src/installer/catalog.js
@@ -688,6 +688,22 @@ var CATALOG = [
688
688
  source: resolve3(packageRoot, "assets/skills/planning-research-checkpoint/SKILL.md"),
689
689
  mode: 420,
690
690
  profiles: ["core", "engineering"]
691
+ },
692
+ {
693
+ id: "skill:triage",
694
+ kind: "skill",
695
+ path: ".opencode/skills/triage/SKILL.md",
696
+ source: resolve3(packageRoot, "assets/skills/triage/SKILL.md"),
697
+ mode: 420,
698
+ profiles: ["engineering"]
699
+ },
700
+ {
701
+ id: "skill:grill-with-docs",
702
+ kind: "skill",
703
+ path: ".opencode/skills/grill-with-docs/SKILL.md",
704
+ source: resolve3(packageRoot, "assets/skills/grill-with-docs/SKILL.md"),
705
+ mode: 420,
706
+ profiles: ["engineering"]
691
707
  }
692
708
  ];
693
709
  function filterCatalogByProfile(catalog, profile) {
@@ -2203,7 +2219,7 @@ async function assembleLock({ repoRoot, plan, lock, configPlan, rootPlan, profil
2203
2219
  manager: {
2204
2220
  schemaVersion: CURRENT_LOCK_SCHEMA,
2205
2221
  name: "opencode-ship",
2206
- version: "0.4.0",
2222
+ version: "0.5.0",
2207
2223
  templateSet: TEMPLATE_SET_ID,
2208
2224
  // Newly written locks always carry the resolved profile so
2209
2225
  // future CLI invocations without --profile still resolve to
package/dist/core.js CHANGED
@@ -1,4 +1,4 @@
1
- // opencode-ship/core v0.4.0
1
+ // opencode-ship/core v0.5.0
2
2
 
3
3
  // src/adapter.js
4
4
  import { readFile, writeFile, mkdir, rename } from "node:fs/promises";
package/dist/plugin.js CHANGED
@@ -1,4 +1,4 @@
1
- // opencode-ship v0.4.0
1
+ // opencode-ship v0.5.0
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __esm = (fn, res) => function __init() {
@@ -14897,7 +14897,7 @@ function flattenShipConfig(ship) {
14897
14897
  import { readFileSync as readFileSync2, existsSync as existsSync6 } from "node:fs";
14898
14898
  import { dirname as dirname5, resolve as resolve11 } from "node:path";
14899
14899
  import { fileURLToPath } from "node:url";
14900
- var PACKAGE_VERSION = "0.4.0";
14900
+ var PACKAGE_VERSION = "0.5.0";
14901
14901
  var TEMPLATE_SET = `v${PACKAGE_VERSION}`;
14902
14902
 
14903
14903
  // src/plugin.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ship",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
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",