@execuro-sw-ecosystem/sw-ecosystem-agentic-harness 0.1.3 → 0.1.4

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
@@ -7,6 +7,19 @@ release.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.4] - 2026-09-17
11
+
12
+ ### Added
13
+
14
+ - **`sw-setup` gained a twelfth readiness row, "Package updates".** It checks
15
+ whether the harness, the Specs Editor and the Tender Discovery Tool are at
16
+ their target versions (the harness at npm's latest, each editor at its own
17
+ `extra_components[].version` pin, never npm's latest) via three
18
+ `npm view` lookups, each with a 10-second timeout — a failed or timed-out
19
+ lookup reports "could not check" rather than failing the row. Folds into
20
+ step 3's single question; never blocks readiness. The KB MCP keeps its
21
+ existing row (registered as `@latest`, nothing to update).
22
+
10
23
  ## [0.1.3] - 2026-09-17
11
24
 
12
25
  ### Changed
package/content/AGENTS.md CHANGED
@@ -16,7 +16,7 @@ procedure, and the detail lives in `reference/*.md` files beside its
16
16
  | `sw-discover-tender` | Analyse a client tender (RFP, RFI or RFQ) for a Shopware 6 project into one markdown sidecar, <source basename>-analysis.md. |
17
17
  | `sw-document-feature` | Document one Shopware project feature into the LLM-wiki under docs/project-wiki/ — one feature page per surface (administration/ and/or storefront/), the "why" row in the domain index, ADR pages only promoted from the WIP ADR files sw-design-solution extracted into specs/ once they are accepted and built (with an organised table of contents) or provided by the user (never invented). |
18
18
  | `sw-implement-feature` | Implement a feature from its technical spec (specs/NNNN-slug-spec.md, written by sw-design-solution) following TDD — tests first per acceptance criterion, then the implementation, fixing until every relevant test passes (including that AC's own acceptance/e2e test, run immediately, not deferred), running Shopware's own shopware-cli fixers/static-analysis per AC to conform to Shopware's coding standards as code is written rather than after the fact. |
19
- | `sw-setup` | Print one environment-readiness table for the project's development/test setup — vendor/, Node, the editor CLIs, shopware-cli, the KB MCP, the acceptance-test project, Playwright browsers, its .env, per-plugin test scaffolding, the project wiki and `.gitignore`, plus the installer CLI's own configuration/drift status. |
19
+ | `sw-setup` | Print one environment-readiness table for the project's development/test setup — vendor/, Node, the editor CLIs, shopware-cli, the KB MCP, the acceptance-test project, Playwright browsers, its .env, per-plugin test scaffolding, the project wiki, `.gitignore` and whether the SW AH npm packages are current, plus the installer CLI's own configuration/drift status. |
20
20
  | `sw-verify-feature` | Verify a feature implementation against its technical spec (specs/NNNN-slug-spec.md) by running three independent verifiers in parallel — AC test coverage/health, architecture/guideline compliance, and code quality/static analysis — then cross-checking their verdicts into one final per-AC pass/not pass/partly report. |
21
21
  | `sw-verify-feature-ac-tests` | Verify that a feature's acceptance criteria are backed by tests that actually exist, actually pass, and actually test what their name/comment/PHPDoc claims. |
22
22
  | `sw-verify-feature-architecture` | Verify that a feature's implementation matches the architectural decisions its spec made, and complies with Shopware's own Core conventions plus any written Project guidelines this repo defines. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@execuro-sw-ecosystem/sw-ecosystem-agentic-harness",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Shopware 6 agentic harness: sw-* skills and sub-agents, plus an installer that writes them into Claude Code, Codex, GitHub Copilot and Cursor.",
5
5
  "license": "MIT",
6
6
  "author": "Execuro UG (haftungsbeschränkt)",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "sw-ecosystem-agentic-harness",
4
- "version": "0.1.3",
4
+ "version": "0.1.4",
5
5
  "description": "Shopware 6 agentic harness: sw-* skills and sub-agents for requirements, specs, implementation, verification and documentation, with an installer CLI that writes them into Claude Code, Codex, GitHub Copilot and Cursor. The knowledge-base MCP and the editor tools are separate npm packages.",
6
6
  "author": {
7
7
  "name": "Execuro UG (haftungsbeschränkt)",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sw-setup
3
- description: Print one environment-readiness table for the project's development/test setup — vendor/, Node, the editor CLIs, shopware-cli, the KB MCP, the acceptance-test project, Playwright browsers, its .env, per-plugin test scaffolding, the project wiki and `.gitignore`, plus the installer CLI's own configuration/drift status. Stops when every row is ticked. When rows are missing, asks one yes/no question and delegates the fix to the installer CLI. Use when asked to set up the project, check if the environment is ready, or bootstrap the tests. Never designs, implements or verifies a feature itself — that's sw-design-solution, sw-implement-feature and sw-verify-feature, which call this skill first. Never writes a host configuration file itself — that's the installer CLI.
3
+ description: Print one environment-readiness table for the project's development/test setup — vendor/, Node, the editor CLIs, shopware-cli, the KB MCP, the acceptance-test project, Playwright browsers, its .env, per-plugin test scaffolding, the project wiki, `.gitignore` and whether the SW AH npm packages are current, plus the installer CLI's own configuration/drift status. Stops when every row is ticked. When rows are missing, asks one yes/no question and delegates the fix to the installer CLI. Use when asked to set up the project, check if the environment is ready, or bootstrap the tests. Never designs, implements or verifies a feature itself — that's sw-design-solution, sw-implement-feature and sw-verify-feature, which call this skill first. Never writes a host configuration file itself — that's the installer CLI.
4
4
  when_to_use: Trigger phrases — "set up the project", "is the environment ready", "bootstrap the tests", "sw-setup".
5
5
  allowed-tools: Read Glob Grep AskUserQuestion Skill Bash mcp__ShopwareDevKnowledgeBase__kb_status Bash(npx -y @execuro-sw-ecosystem/sw-ecosystem-agentic-harness@latest *)
6
6
  ---
@@ -47,8 +47,9 @@ It prints one JSON object (`ok`, `next_step`, `help`, and its own
47
47
  `hosts[]`/`drift[]` configuration state). Alongside it, run every
48
48
  environment row's check from `reference/rows.md` in this skill's directory —
49
49
  read-only, seconds each: file/directory existence, one version command, one
50
- `kb_status` call. Never write, never install, never ask a question in this
51
- step.
50
+ `kb_status` call, three `npm view` registry lookups (Package updates row) —
51
+ the one part of step 1 that touches the network, so it is the slow part.
52
+ Never write, never install, never ask a question in this step.
52
53
 
53
54
  Print one checkbox list, one line per row — the environment rows first, then
54
55
  one line per configuration item the CLI's `hosts[]`/`drift[]` reports:
@@ -65,6 +66,7 @@ one line per configuration item the CLI's `hosts[]`/`drift[]` reports:
65
66
  - [ ] ATS env — tests/acceptance/.env missing
66
67
  - [x] Plugin tests — AhCheckout: phpunit + jest ok
67
68
  - [ ] Project wiki — docs/project-wiki/ missing
69
+ - [ ] Package updates — harness 0.1.0 → 0.1.3, Specs Editor not installed
68
70
  - [ ] Installer config — .mcp.json entry: drift (from CLI status)
69
71
  ```
70
72
 
@@ -91,8 +93,10 @@ npx -y @execuro-sw-ecosystem/sw-ecosystem-agentic-harness@latest plan
91
93
 
92
94
  List the concrete steps in plain words: environment-row fixes in order
93
95
  (vendor/ → Visual editors → KB MCP → Acceptance-test project →
94
- Playwright browsers → ATS env → Plugin tests → Project wiki), then the CLI's
95
- planned configuration changes last. Skip any row already ticked.
96
+ Playwright browsers → ATS env → Plugin tests → Project wiki → Package
97
+ updates), then the CLI's planned configuration changes last — Package
98
+ updates comes immediately before those, since updating the harness is what
99
+ may change them. Skip any row already ticked.
96
100
 
97
101
  Ask exactly one question: "Do this and that?" with the steps spelled out in
98
102
  plain words (no command dump). Ask the user with a structured question tool
@@ -138,7 +142,7 @@ line:
138
142
 
139
143
  ## Reference files
140
144
 
141
- `reference/rows.md` in this skill's directory — the eleven environment rows:
145
+ `reference/rows.md` in this skill's directory — the twelve environment rows:
142
146
  check command(s), what "ticked" means, the fix steps verbatim from the
143
147
  guideline, and which skills the row blocks. Host configuration state (what
144
148
  gets installed into `.mcp.json`, permissions, `.gitignore`) is not in this
@@ -1,6 +1,6 @@
1
1
  # Readiness rows
2
2
 
3
- Eleven environment rows. Each: check (read-only), what "ticked" means, the fix
3
+ Twelve environment rows. Each: check (read-only), what "ticked" means, the fix
4
4
  (only run on approval, in this order), and which skills the row blocks when
5
5
  unticked. Host configuration files (`.mcp.json` entries, `.gitignore` lines,
6
6
  permission grants) are not rows here — the installer CLI owns them and
@@ -218,3 +218,42 @@ So this row never blocks readiness. It asks.
218
218
  project, verify-ac-tests screenshots). Idempotent — safe to re-run.
219
219
  - **Blocks:** nothing directly; unticked means the next `git status` will
220
220
  show generated/secret files as untracked.
221
+
222
+ ## 12. Package updates (optional)
223
+
224
+ The KB MCP is excluded — it is registered as `@latest` and re-resolves on
225
+ every host launch, so there is nothing to update (see row 5). This row covers
226
+ only the three versioned packages: the harness itself, the Specs Editor and
227
+ the Tender Discovery Tool.
228
+
229
+ This row never blocks readiness. It folds into step 3's single question.
230
+
231
+ - **Check:** three `npm view <pkg> version` calls, each with a 10-second
232
+ timeout — `npm view @execuro-sw-ecosystem/sw-ecosystem-agentic-harness
233
+ version`, `npm view @execuro-sw-ecosystem/sw-specs-editor version`,
234
+ `npm view @execuro-sw-ecosystem/sw-tender-discovery-tool version`. Installed
235
+ versions come from three different places: the harness's from
236
+ `installed_version` in the `status` JSON the skill already ran in step 1
237
+ (from the lock file); the Specs Editor's from `version` in
238
+ `node_modules/@execuro-sw-ecosystem/sw-specs-editor/package.json`; the
239
+ Tender Discovery Tool's the same way, in its own `node_modules` path. A
240
+ failed or timed-out `npm view` call reports "could not check" for that
241
+ package only — never an unticked row, never an error, never a blocked run.
242
+ No network is a normal condition, not a fault.
243
+ - **Ticked:** all three packages at their target version — the harness at
244
+ npm's latest, each editor at the pin its own `status` output names
245
+ (`extra_components[].version`), not at npm's latest.
246
+ - **Unticked:** one line per stale package, `installed → available` — e.g.
247
+ `harness 0.1.1 → 0.1.3`, `Specs Editor 0.1.0 → 0.1.0 (pinned)` when current.
248
+ An editor whose npm latest is ahead of the pin is a harness-release lag,
249
+ not a missing update: report it, but do not offer to install that newer
250
+ version — only a newer harness can raise the pin.
251
+ - **Fix:** update the harness first — a newer harness may carry newer pins:
252
+ `npx -y @execuro-sw-ecosystem/sw-ecosystem-agentic-harness@latest install`.
253
+ That command rewrites the installed `sw-setup` skill itself, so the newer
254
+ skill takes effect on the next run — which step 3 already causes by
255
+ re-running step 1. Re-read the new `status` output, then for each stale
256
+ editor run the same `npm i -D <package>@<version>` shape row 3's Fix uses,
257
+ with `<package>` and `<version>` taken from that editor's own
258
+ `extra_components[]` entry in the re-read `status`.
259
+ - **Blocks:** nothing. Out of date is not broken.