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

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 (34) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +53 -14
  3. package/SECURITY.md +1 -1
  4. package/agents/sw-php-backend-developer.md +1 -1
  5. package/agents/sw-storefront-developer.md +5 -5
  6. package/agents/sw-tender-editor.md +1 -1
  7. package/bin/cli.mjs +8 -3
  8. package/codex/agents/sw-php-backend-developer.toml +2 -2
  9. package/codex/agents/sw-storefront-developer.toml +6 -6
  10. package/codex/agents/sw-tender-editor.toml +2 -2
  11. package/content/AGENTS.md +2 -2
  12. package/copilot/agents/sw-php-backend-developer.agent.md +2 -2
  13. package/copilot/agents/sw-storefront-developer.agent.md +6 -6
  14. package/copilot/agents/sw-tender-editor.agent.md +2 -2
  15. package/lib/actions.mjs +11 -10
  16. package/lib/commands.mjs +17 -14
  17. package/lib/{companions.mjs → extra-components.mjs} +16 -16
  18. package/lib/guide.mjs +39 -18
  19. package/lib/hosts.mjs +10 -10
  20. package/lib/merge.mjs +10 -0
  21. package/package.json +2 -2
  22. package/plugin.json +1 -1
  23. package/skills/sw-design-requirements/SKILL.md +1 -1
  24. package/skills/sw-design-solution/SKILL.md +1 -1
  25. package/skills/sw-discover-tender/SKILL.md +1 -1
  26. package/skills/sw-document-feature/SKILL.md +1 -1
  27. package/skills/sw-document-feature/reference/setup-wiki.md +7 -2
  28. package/skills/sw-implement-feature/SKILL.md +1 -1
  29. package/skills/sw-setup/SKILL.md +15 -14
  30. package/skills/sw-setup/reference/rows.md +31 -34
  31. package/skills/sw-verify-feature/SKILL.md +1 -1
  32. package/skills/sw-verify-feature-ac-tests/SKILL.md +1 -1
  33. package/skills/sw-verify-feature-architecture/SKILL.md +1 -1
  34. package/skills/sw-verify-feature-code-quality/SKILL.md +1 -1
@@ -6,18 +6,7 @@ unticked. Host configuration files (`.mcp.json` entries, `.gitignore` lines,
6
6
  permission grants) are not rows here — the installer CLI owns them and
7
7
  reports their state in its own `status`/`plan` output; see `SKILL.md`.
8
8
 
9
- ## 1. Containers
10
-
11
- - **Check:** `docker compose ps` — service `web` (or the service named in
12
- `compose.yaml`) shows `running`/`healthy`.
13
- - **Ticked:** the `web` service is up.
14
- - **Fix:** `docker compose up -d` (guideline §6.1). If the shop was never
15
- installed: `docker compose exec web php bin/console system:install --basic-setup --force --no-interaction` (guideline §6.1).
16
- - **Blocks:** every other row's fix that runs `docker compose exec web …`
17
- (vendor/, plugin tests). Design/implement/verify skills that need a running
18
- shop for live checks.
19
-
20
- ## 2. vendor/
9
+ ## 1. vendor/
21
10
 
22
11
  - **Check:** `vendor/shopware/core` exists, `composer.lock` exists,
23
12
  `vendor/bin/phpunit` exists — file presence only, never a host
@@ -26,13 +15,20 @@ reports their state in its own `status`/`plan` output; see `SKILL.md`.
26
15
  (guideline §6.2).
27
16
  - **Ticked:** all three present; report the `shopware/core` version from
28
17
  `composer.lock`.
18
+ - **Unticked:** the printed line names the specific missing path(s), not just
19
+ the row — e.g. a tree built `--no-dev` has `vendor/shopware/core` and
20
+ `composer.lock` but no `vendor/bin/phpunit`, so the line reads
21
+ `vendor/ — vendor/bin/phpunit missing (tree built --no-dev)`. This is the
22
+ same row and the same fix below, offered inside step 3's single question
23
+ like any other row.
29
24
  - **Fix:** `docker compose exec web composer install --no-interaction`
30
25
  (guideline §6.1 — "a vendor tree built with `--no-dev` has no
31
- `vendor/bin/phpunit`"). Needs the Containers row ticked first.
26
+ `vendor/bin/phpunit`"). Runs inside the `web` container; if it is not
27
+ running, stop and report that — sw-setup never starts the stack itself.
32
28
  - **Blocks:** `sw-design-solution`, `sw-implement-feature`,
33
29
  `sw-verify-feature` (and its architecture/code-quality/ac-tests sub-skills).
34
30
 
35
- ## 3. Node
31
+ ## 2. Node
36
32
 
37
33
  - **Check:** `node --version`; parse major and minor.
38
34
  - **Ticked:** ≥ 20. Warn (do not fail) when < 20.15: the Tender Discovery Tool
@@ -45,37 +41,37 @@ reports their state in its own `status`/`plan` output; see `SKILL.md`.
45
41
  (the knowledge-base MCP), the acceptance-test project,
46
42
  Playwright.
47
43
 
48
- ## 4. Visual editors (optional)
44
+ ## 3. Visual editors (optional)
49
45
 
50
46
  The Specs Editor and the Tender Discovery Tool are **optional add-ons**, not
51
47
  part of this plugin. The installer CLI installs them itself, per host — this
52
- row never runs a companion package's own install command.
48
+ row never runs an extra component's own install command.
53
49
 
54
50
  So this row never blocks readiness. It asks.
55
51
 
56
- - **Check:** read `companions[]` from the `status` output the skill already
52
+ - **Check:** read `extra_components[]` from the `status` output the skill already
57
53
  ran in step 1 — each entry's `available`, `installed_for` (the hosts it is
58
54
  placed in), and `install` (the npm command, when missing). Never probe a
59
- path and never run a companion package by hand; the CLI owns both.
60
- - **Ticked:** `[x]` when a companion's `available` is true and
55
+ path and never run an extra component by hand; the CLI owns both.
56
+ - **Ticked:** `[x]` when an extra component's `available` is true and
61
57
  `installed_for` includes this host; `[-]` when the user has declined it.
62
58
  Only an unanswered offer shows `[ ]`, and even then it does not hold the
63
59
  table open — report it as optional and move on.
64
- - **Fix:** offer each missing companion inside step 3's single question,
60
+ - **Fix:** offer each missing extra component inside step 3's single question,
65
61
  naming what it buys, not how it works: "Specs Editor — review a PRD or
66
62
  tech spec on a live page, with notes, question answers and diagrams.
67
63
  Install?" — and "Tender Discovery Tool — read a client tender workbook,
68
64
  confirm its column mapping and review the analysis on a live page.
69
65
  Install?" On yes, for each accepted one: `npm i -D <package>@0.1.0` (the
70
- `package` field from `companions[]`), then re-run
66
+ `package` field from `extra_components[]`), then re-run
71
67
 
72
68
  ```
73
- npx -y @execuro-sw-ecosystem/sw-ecosystem-agentic-harness@0.1.0 apply --yes
69
+ npx -y @execuro-sw-ecosystem/sw-ecosystem-agentic-harness@latest apply --yes
74
70
  ```
75
71
 
76
- which places one `SKILL.md` per companion into each selected host's own
72
+ which places one `SKILL.md` per extra component into each selected host's own
77
73
  skills directory, records it, and removes it again on uninstall. **Never
78
- run the companion package's own `install-skill`** — with no `--target` it
74
+ run the extra component's own `install-skill`** — with no `--target` it
79
75
  defaults to Claude Code's own skills directory, wrong for a Codex, Copilot
80
76
  or Cursor install. Needs the Node row ticked.
81
77
  - **On no:** record the decline and do not re-ask on the next run. `apply`
@@ -87,7 +83,7 @@ So this row never blocks readiness. It asks.
87
83
  Discovery Tool missing → `sw-discover-tender --editor` and its `.xlsx`
88
84
  import, plus the `sw-tender-discovery-tool` skill.
89
85
 
90
- ## 5. shopware-cli
86
+ ## 4. shopware-cli
91
87
 
92
88
  - **Check:** `command -v shopware-cli`.
93
89
  - **Ticked:** present on `PATH`.
@@ -98,7 +94,7 @@ So this row never blocks readiness. It asks.
98
94
  (static analysis, Twig linters), `sw-implement-feature` (per-AC
99
95
  `extension fix`/`extension validate`).
100
96
 
101
- ## 6. KB MCP
97
+ ## 5. KB MCP
102
98
 
103
99
  - **Check:** `mcp__ShopwareDevKnowledgeBase__kb_status` reports the `platform`
104
100
  layer as `implemented`. (Whether the `ShopwareDevKnowledgeBase` entry
@@ -118,7 +114,7 @@ So this row never blocks readiness. It asks.
118
114
  `sw-design-solution` step 0.5/step 3 (KB grep), `sw-product-manager`,
119
115
  `sw-shopware-architect`.
120
116
 
121
- ## 7. Acceptance-test project
117
+ ## 6. Acceptance-test project
122
118
 
123
119
  - **Check:** `tests/acceptance/package.json` exists and lists
124
120
  `@shopware-ag/acceptance-test-suite` as a dependency;
@@ -137,7 +133,7 @@ So this row never blocks readiness. It asks.
137
133
  - **Blocks:** `sw-implement-feature` (e2e authoring by `sw-qa-engineer`),
138
134
  `sw-verify-feature-ac-tests` (Playwright execution).
139
135
 
140
- ## 8. Playwright browsers
136
+ ## 7. Playwright browsers
141
137
 
142
138
  - **Check:** `npx playwright install --dry-run` output (or
143
139
  `~/.cache/ms-playwright`/the project-local browsers path) shows Chromium
@@ -148,7 +144,7 @@ So this row never blocks readiness. It asks.
148
144
  ticked (the `@playwright/test` version comes from there).
149
145
  - **Blocks:** `sw-implement-feature` (e2e execution), `sw-verify-feature-ac-tests`.
150
146
 
151
- ## 9. ATS env
147
+ ## 8. ATS env
152
148
 
153
149
  - **Check:** `tests/acceptance/.env` exists.
154
150
  - **Ticked:** file exists and defines `APP_URL`, `SHOPWARE_ADMIN_USERNAME`,
@@ -163,7 +159,7 @@ So this row never blocks readiness. It asks.
163
159
  entered. Needs the Acceptance-test project row ticked.
164
160
  - **Blocks:** `sw-implement-feature` (e2e execution), `sw-verify-feature-ac-tests`.
165
161
 
166
- ## 10. Plugin tests, per `custom/plugins/<Name>`
162
+ ## 9. Plugin tests, per `custom/plugins/<Name>`
167
163
 
168
164
  - **Enumerate:** `ls custom/plugins`; one row per directory found.
169
165
  - **Check per plugin:**
@@ -181,12 +177,13 @@ So this row never blocks readiness. It asks.
181
177
  `phpunit.xml.dist` from §3.3, `tests/TestBootstrap.php` from §3.4 (fill
182
178
  `<Name>`/`<Vendor>` from `composer.json`), Jest config(s) from §3.5 (option
183
179
  (a), plugin-local preset), `package.json` scripts block from §3.5's closing
184
- JSON snippet. Needs the Containers row ticked for the `npm install` steps
185
- that run inside the container.
180
+ JSON snippet. The `npm install` steps run inside the `web` container; if it
181
+ is not running, stop and report that — sw-setup never starts the stack
182
+ itself.
186
183
  - **Blocks:** `sw-implement-feature` (PHPUnit/Jest execution for that
187
184
  plugin's ACs), `sw-verify-feature` (and its sub-skills, for that plugin).
188
185
 
189
- ## 11. Project wiki
186
+ ## 10. Project wiki
190
187
 
191
188
  - **Check:** `docs/project-wiki/` exists.
192
189
  - **Ticked:** directory present.
@@ -195,7 +192,7 @@ So this row never blocks readiness. It asks.
195
192
  logic here.
196
193
  - **Blocks:** `sw-document-feature`.
197
194
 
198
- ## 12. `.gitignore`
195
+ ## 11. `.gitignore`
199
196
 
200
197
  - **Check:** `.gitignore` contains all six lines:
201
198
  ```
@@ -2,7 +2,7 @@
2
2
  name: sw-verify-feature
3
3
  description: 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. Wired as the final step of sw-implement-feature; can also be run standalone to (re)check a feature. Not to be confused with the existing "verify-implementation" skill, which is a mock and should be ignored.
4
4
  when_to_use: Trigger phrases — "verify spec 0007", "check if this feature is done", "run full verification for this feature", "is epic 1 actually passing".
5
- argument-hint: [specs/NNNN-slug-spec.md]
5
+ argument-hint: '[specs/NNNN-slug-spec.md]'
6
6
  allowed-tools: Read Write Glob Grep Agent
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  name: sw-verify-feature-ac-tests
3
3
  description: 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. Classifies tests by type (API/PHPUnit, Admin Panel/Playwright, Storefront/Playwright, CLI/PHPUnit), runs a test-health audit to catch false, mismatched, or unhealthy tests, then reports per-AC Coverage and Execution as pass / partly / not pass. One of three parallel verifiers spawned by sw-verify-feature; can also be run standalone.
4
4
  when_to_use: Trigger phrases — "verify AC tests for spec 0007", "audit test health for this feature", "are these tests actually testing what they claim", "check test coverage for epic 1".
5
- argument-hint: [specs/NNNN-slug-spec.md]
5
+ argument-hint: '[specs/NNNN-slug-spec.md]'
6
6
  allowed-tools: Read Glob Grep Bash mcp__playwright__browser_navigate mcp__playwright__browser_click mcp__playwright__browser_type mcp__playwright__browser_fill_form mcp__playwright__browser_snapshot mcp__playwright__browser_take_screenshot mcp__playwright__browser_wait_for mcp__playwright__browser_console_messages mcp__playwright__browser_network_requests mcp__playwright__browser_evaluate mcp__playwright__browser_select_option mcp__playwright__browser_press_key mcp__playwright__browser_hover mcp__playwright__browser_tabs mcp__playwright__browser_close
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  name: sw-verify-feature-architecture
3
3
  description: 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. Reports per-AC pass/partly/not pass with the specific guideline or mismatch behind any non-pass. One of three parallel verifiers spawned by sw-verify-feature; can also be run standalone.
4
4
  when_to_use: Trigger phrases — "verify architecture for spec 0007", "does this implementation follow the spec's design", "check Core/Project guideline compliance for this feature", "architecture audit for epic 1".
5
- argument-hint: [specs/NNNN-slug-spec.md]
5
+ argument-hint: '[specs/NNNN-slug-spec.md]'
6
6
  allowed-tools: Read Glob Grep Bash mcp__ShopwareDevKnowledgeBase__list_docs mcp__ShopwareDevKnowledgeBase__grep_docs mcp__ShopwareDevKnowledgeBase__read_doc mcp__ShopwareDevKnowledgeBase__kb_status
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  name: sw-verify-feature-code-quality
3
3
  description: Verify the code-quality gate for a feature — identifies which tool suites actually apply (PHPStan, ESLint, Stylelint, sw-cli structural validation via shopware-cli, PHPUnit regression), executes them, and checks the touched files against written Core and Project guidelines' quality/style clauses (naming, duplication, dead code, unneeded complexity). Reports whole-plugin gate results plus any per-AC quality defect found in that AC's files. One of three parallel verifiers spawned by sw-verify-feature; can also be run standalone.
4
4
  when_to_use: Trigger phrases — "verify code quality for spec 0007", "run static analysis for this feature", "does this pass PHPStan/ESLint", "code quality gate for epic 1".
5
- argument-hint: [specs/NNNN-slug-spec.md]
5
+ argument-hint: '[specs/NNNN-slug-spec.md]'
6
6
  allowed-tools: Read Glob Grep Bash mcp__ShopwareDevKnowledgeBase__list_docs mcp__ShopwareDevKnowledgeBase__grep_docs mcp__ShopwareDevKnowledgeBase__read_doc mcp__ShopwareDevKnowledgeBase__kb_status
7
7
  ---
8
8