@execuro-sw-ecosystem/sw-ecosystem-agentic-harness 0.1.10 → 0.1.12
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 +32 -0
- package/agents/sw-product-manager.md +9 -3
- package/agents/sw-shopware-architect.md +5 -1
- package/agents/sw-tender-editor.md +34 -19
- package/codex/agents/sw-product-manager.toml +9 -3
- package/codex/agents/sw-shopware-architect.toml +6 -2
- package/codex/agents/sw-tender-editor.toml +34 -19
- package/content/AGENTS.md +3 -3
- package/copilot/agents/sw-product-manager.agent.md +9 -3
- package/copilot/agents/sw-shopware-architect.agent.md +6 -2
- package/copilot/agents/sw-tender-editor.agent.md +35 -20
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/sw-design-requirements/SKILL.md +6 -4
- package/skills/sw-design-requirements/reference/clarification-loop.md +2 -2
- package/skills/sw-design-requirements/reference/consistency-probes.md +15 -1
- package/skills/sw-design-requirements/reference/editor-mode.md +4 -2
- package/skills/sw-design-solution/SKILL.md +3 -3
- package/skills/sw-design-solution/reference/clarification-loop.md +2 -0
- package/skills/sw-design-solution/reference/editor-mode.md +7 -5
- package/skills/sw-design-solution/reference/pre-check-and-target.md +25 -12
- package/skills/sw-design-solution/reference/research-and-evidence.md +1 -1
- package/skills/sw-design-solution/reference/tech-spec-template.md +2 -2
- package/skills/sw-discover-tender/SKILL.md +39 -43
- package/skills/sw-discover-tender/reference/agent-briefs.md +65 -110
- package/skills/sw-discover-tender/reference/analysis-template.md +41 -208
- package/skills/sw-discover-tender/reference/assumption-catalogue.md +69 -104
- package/skills/sw-discover-tender/reference/client-question-rules.md +16 -35
- package/skills/sw-discover-tender/reference/context-parameters.md +14 -107
- package/skills/sw-discover-tender/reference/coverage-mapping.md +33 -56
- package/skills/sw-discover-tender/reference/editor-session.md +32 -73
- package/skills/sw-discover-tender/reference/estimation-model.md +43 -79
- package/skills/sw-discover-tender/reference/procedure.md +36 -72
- package/skills/sw-discover-tender/reference/project-information.md +31 -0
- package/skills/sw-discover-tender/reference/response-rules.md +11 -10
- package/skills/sw-implement-feature/SKILL.md +11 -2
- package/skills/sw-setup/SKILL.md +10 -5
- package/skills/sw-discover-tender/reference/confidence-rubric.md +0 -80
- package/skills/sw-discover-tender/reference/editor-mode.md +0 -11
|
@@ -1,104 +1,69 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Starting points, not answers.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## PLAT — platform and edition
|
|
8
|
-
|
|
9
|
-
| Key | Statement |
|
|
10
|
-
| --- | --- | --- | --- |
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
37
|
-
##
|
|
38
|
-
|
|
39
|
-
| Key | Statement |
|
|
40
|
-
| --- | --- | --- | --- |
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
| Key | Statement | PD saved | Risk → | Not when |
|
|
71
|
-
| --- | --- | --- | --- | --- |
|
|
72
|
-
| K-OPS-01 | Managed Shopware hosting from `<profile.hosting>`; availability, backup and restore per the provider's SLA; the bidder is not liable for infrastructure SLAs (`<rows>`). | 5–10 | provider | RFP requires bidder-operated infrastructure |
|
|
73
|
-
| K-OPS-02 | The penetration test is commissioned and paid by the client; findings are fixed within the warranty as the RFP states; one retest cycle. | 0 | client | — |
|
|
74
|
-
| K-OPS-03 | CI/CD on the client's repository with the bidder's standard pipeline (lint, static analysis, tests, build, deploy); further gates are change requests. | 3–5 | none | — |
|
|
75
|
-
| K-OPS-04 | Monitoring and alerting = provider stack plus Shopware admin notifications; no custom dashboards. | 3–6 | client ops | — |
|
|
76
|
-
| K-OPS-05 | One load test before go-live against the RFP's stated profile; tuning limited to configuration (cache, workers, indexes). | 2–5 | shared | — |
|
|
77
|
-
|
|
78
|
-
## CMPL — compliance and accessibility
|
|
79
|
-
|
|
80
|
-
| Key | Statement | PD saved | Risk → | Not when |
|
|
81
|
-
| --- | --- | --- | --- | --- |
|
|
82
|
-
| K-CMPL-01 | Accessibility conformance covers templates and components the bidder builds; client-authored content, third-party widgets and manufacturer PDFs are excluded (`<rows>`). | 5–10 | client | — |
|
|
83
|
-
| K-CMPL-02 | Consent management = `<profile.cmp>` stock plugin; no custom consent UI; tag configuration by client marketing. | 2–4 | client | — |
|
|
84
|
-
| K-CMPL-03 | Invoices, credit notes and e-invoices are produced by the ERP; the shop displays and links them and never generates fiscal documents (`<rows>`). | 8–15 | ERP partner | RFP wants shop-generated invoices |
|
|
85
|
-
| K-CMPL-04 | Legal texts are supplied by the client in every language; the bidder places them. | 1–2 | client | — |
|
|
86
|
-
| K-CMPL-05 | Data-subject requests use stock export and anonymisation; no custom workflow UI. | 2–4 | client | — |
|
|
87
|
-
|
|
88
|
-
## PAY / SHP — payment and shipping
|
|
89
|
-
|
|
90
|
-
| Key | Statement | PD saved | Risk → | Not when |
|
|
91
|
-
| --- | --- | --- | --- | --- |
|
|
92
|
-
| K-PAY-01 | Payment on account = stock payment method with rule-based availability from synced ERP flags; payment terms shown from a synced text field. | 2–4 | none | — |
|
|
93
|
-
| K-PAY-02 | Cards and wallets via the official plugin of `<profile.psp>` with a hosted payment page; no custom PSP integration. | 3–8 | PSP | RFP names a PSP without an official plugin |
|
|
94
|
-
| K-SHP-01 | Shipping methods and prices via stock methods and rules from the client's shipping table; no carrier API, no label printing in the shop. | 5–10 | none | RFP requires labels from the shop |
|
|
95
|
-
| K-SHP-02 | Branch pickup = shipping method plus an availability text from a synced branch-stock field; no reservation or transfer logic in the shop. | 3–6 | client | — |
|
|
96
|
-
|
|
97
|
-
## PROJ — project
|
|
98
|
-
|
|
99
|
-
| Key | Statement | PD saved | Risk → | Not when |
|
|
100
|
-
| --- | --- | --- | --- | --- |
|
|
101
|
-
| K-PROJ-01 | The client names one product owner with decision authority and a two-working-day answer SLA; decisions past the SLA are scheduled at the bidder's discretion. | 0 (schedule) | client | — |
|
|
102
|
-
| K-PROJ-02 | Acceptance per sprint against the RFP's acceptance criteria; anything outside an RFP row or an accepted assumption is a change request outside the fixed-price scope. | 0 (creep guard) | none | — |
|
|
103
|
-
| K-PROJ-03 | Training, documentation and handover as the RFP lists, delivered once and recorded; repeats are billable. | 0 | client | — |
|
|
104
|
-
| K-PROJ-04 | The environments the RFP names; additional environments via the provider at the client's expense. | 1–2 | client | — |
|
|
1
|
+
# Assumption catalogue
|
|
2
|
+
|
|
3
|
+
Starting points, not answers. Every Configuration, Extension, ISV or Custom item gets 1-3 proposals in the architect's report, catalogue keys first, each rewritten for the tender at hand as one client-agreeable, scope-locking sentence, in its report JSON's `proposals` (per item) or `globalProposals` (section 3) array — schema in `agent-briefs.md` — each with the `pdSaved` it would save against the item's un-assumed estimate, greater than 0 and no greater than the item's own effort. `noProposal` is for an item only when its already-accepted assumptions already cover it. The runtime's proposal store (`specs/.rfp/<slug>/proposals.json`) is the only place a proposal lives until the operator accepts it (AQ-2); a rejected proposal is never proposed again for the same item (AQ-4), matched by its normalised statement.
|
|
4
|
+
|
|
5
|
+
Keys below use the `AS-` prefix so they never collide with a scope item id, a `CQ-n`/`Q-n`, a proposal `P-n` or a log entry — none of those families ever starts with `AS-`. `pdSaved` is a typical figure for a mid-size B2B project; the architect states the real figure for the tender at hand. A statement the client's own document already makes is a section 3 Exclusion, not an assumption.
|
|
6
|
+
|
|
7
|
+
## AS-PLAT — platform and edition
|
|
8
|
+
|
|
9
|
+
| Key | Statement | pdSaved | Not when |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| AS-PLAT-01 | Target is the current Shopware 6.x minor at kickoff; no core modifications; all customisation in plugins, apps and the theme. | 0 (creep guard) | the client pins an older version |
|
|
12
|
+
| AS-PLAT-02 | One sales channel per country/language pair the client lists, one currency; further channels, languages or currencies are separately scoped. | 5 | — |
|
|
13
|
+
| AS-PLAT-03 | Commercial-plan features are used as shipped; changes to their UI or flows are separately scoped. | 15 | an acceptance criterion contradicts stock behaviour |
|
|
14
|
+
|
|
15
|
+
## AS-ERP — integration
|
|
16
|
+
|
|
17
|
+
| Key | Statement | pdSaved | Not when |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| AS-ERP-01 | The counterpart implements the far-side endpoints from an interface specification we write; we build the shop side only. | 15 | the item asks for both sides |
|
|
20
|
+
| AS-ERP-02 | One synchronisation pattern for all objects: queue consumers, idempotent upserts keyed by external id; no middleware or iPaaS. | 8 | the client requires an iPaaS |
|
|
21
|
+
| AS-ERP-03 | Customer-specific and tier pricing is imported asynchronously (full, delta or webhook as stated); no live call per page view. | 10 | the client demands a per-request live lookup |
|
|
22
|
+
|
|
23
|
+
## AS-DSGN — design and theme
|
|
24
|
+
|
|
25
|
+
| Key | Statement | pdSaved | Not when |
|
|
26
|
+
| --- | --- | --- | --- |
|
|
27
|
+
| AS-DSGN-01 | The client's own designs are delivered per page type before the sprint that builds it; one revision round included. | 10 | we own design |
|
|
28
|
+
| AS-DSGN-02 | The theme extends the default Storefront theme; stock components are restyled, not rebuilt. | 6 | — |
|
|
29
|
+
|
|
30
|
+
## AS-MIG — content and data migration
|
|
31
|
+
|
|
32
|
+
| Key | Statement | pdSaved | Not when |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| AS-MIG-01 | Content, blog and landing pages are rebuilt by the client's own team after training; we deliver example layouts only. | 10 | the client requires a full 1:1 migration |
|
|
35
|
+
| AS-MIG-02 | Historical orders are migrated read-only for display; no reorder from migrated lines. | 6 | reorder from migrated orders is a stated requirement |
|
|
36
|
+
|
|
37
|
+
## AS-B2B — accounts, approval, quotes
|
|
38
|
+
|
|
39
|
+
| Key | Statement | pdSaved | Not when |
|
|
40
|
+
| --- | --- | --- | --- |
|
|
41
|
+
| AS-B2B-01 | Employee roles and order-approval thresholds use B2B Components as shipped; one threshold type per company. | 20 | the plan has no B2B Components |
|
|
42
|
+
| AS-B2B-02 | Quotes use stock quote management; one counter-offer cycle, no negotiation thread. | 6 | the plan has no B2B Components |
|
|
43
|
+
|
|
44
|
+
## AS-SRCH — search
|
|
45
|
+
|
|
46
|
+
| Key | Statement | pdSaved | Not when |
|
|
47
|
+
| --- | --- | --- | --- |
|
|
48
|
+
| AS-SRCH-01 | Search is the stock OpenSearch/Elasticsearch integration with field boosting on the identifiers named; no machine-learned ranking, no personalisation. | 12 | — |
|
|
49
|
+
|
|
50
|
+
## AS-OPS — hosting, operations, security
|
|
51
|
+
|
|
52
|
+
| Key | Statement | pdSaved | Not when |
|
|
53
|
+
| --- | --- | --- | --- |
|
|
54
|
+
| AS-OPS-01 | Managed Shopware hosting per the profile's preferred provider; availability, backup and restore per the provider's SLA. | 6 | the client requires self-operated infrastructure |
|
|
55
|
+
| AS-OPS-02 | Monitoring and alerting use the provider's stack plus Shopware admin notifications; no custom dashboards. | 4 | — |
|
|
56
|
+
|
|
57
|
+
## AS-CMPL — compliance and accessibility
|
|
58
|
+
|
|
59
|
+
| Key | Statement | pdSaved | Not when |
|
|
60
|
+
| --- | --- | --- | --- |
|
|
61
|
+
| AS-CMPL-01 | Accessibility conformance covers templates and components we build; client-authored content and third-party widgets are excluded. | 6 | — |
|
|
62
|
+
| AS-CMPL-02 | Invoices, credit notes and e-invoices are produced by the counterpart system; the shop displays and links them. | 10 | the requirement is shop-generated fiscal documents |
|
|
63
|
+
|
|
64
|
+
## AS-PAY — payment and shipping
|
|
65
|
+
|
|
66
|
+
| Key | Statement | pdSaved | Not when |
|
|
67
|
+
| --- | --- | --- | --- |
|
|
68
|
+
| AS-PAY-01 | Cards and wallets via the official ISV plugin of the profile's preferred provider, hosted payment page; no custom PSP integration. | 5 | the client names a provider with no official plugin |
|
|
69
|
+
| AS-PAY-02 | Shipping methods and their pricing via stock methods and rules; no carrier API, no label printing in the shop. | 6 | labels from the shop are a stated requirement |
|
|
@@ -1,47 +1,28 @@
|
|
|
1
1
|
# Client question rules
|
|
2
2
|
|
|
3
|
-
A client question (`CQ-n`) is the written question the
|
|
3
|
+
A client question (`CQ-n`) is the written question the operator takes to the client's Q&A round; the tool writes no question document (AQ-7). It is the correct answer to a requirement too vague to assess — a silent guess is a defect.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## AQ-5 — when a requirement gets a CQ
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
2. **Undefined reference** — "to be defined", "some", "such as", "etc.", a system named without objects or direction.
|
|
9
|
-
3. **External counterpart without interface or owner** — an integration whose API, format or responsible party is not named.
|
|
10
|
-
4. **Wide estimate** — no acceptance criteria and the architect's high is more than 2× its low.
|
|
11
|
-
5. **Stock contradiction** — the PM reports `conflict` between the row and verified stock behaviour, or between tier documentation and the RFP's plan assumption.
|
|
12
|
-
6. **RFP-internal contradiction** — a row conflicts with the constraints sheet, another row, or a stated out-of-scope item.
|
|
13
|
-
7. **Rejected assumption routed to the client** — an assume line was `[-]` rejected and the partner wants the client to decide (its `C-n` says so).
|
|
14
|
-
8. **Missing or conflicting key parameter** — a §1.2 Key parameters row marked **drv** in `context-parameters.md` reads `_not provided_`, or any row reads `conflicting`. Use that file's question stubs; ask for a figure or a bracket, never for a design. One question may cover a whole group.
|
|
15
|
-
|
|
16
|
-
## Never ask
|
|
17
|
-
|
|
18
|
-
- What the RFP already answers, even if buried in another sheet.
|
|
19
|
-
- What the partner can decide (plan preference, own assets, overhead and buffer policy) — that is a `Q-n`.
|
|
20
|
-
- Wording, formatting, or which column to use.
|
|
21
|
-
- Anything technical the client cannot judge ("subscriber or decorator").
|
|
22
|
-
|
|
23
|
-
Test: *if answered both ways, would a class, a PD figure or a statement on that row differ?* No → no question.
|
|
7
|
+
A requirement too vague to assess gets a `CQ-n` in section 5: options, the scope effect of each, and a fallback. The scope item's Status becomes `blocked CQ-n` and it is estimated on the fallback option (E-4). Vague means: comparative or totality phrasing ("as good as", "everything that works today", "all"); an undefined reference ("to be defined", "some", "etc."); an external counterpart named without an interface or an owner; or a Shopware-stock contradiction the Dev Knowledge Base cannot resolve.
|
|
24
8
|
|
|
25
9
|
## Wording
|
|
26
10
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
- Neutral: never lead with
|
|
30
|
-
-
|
|
31
|
-
- Quote the
|
|
11
|
+
- Client's own language. One decision per question. Item ids in the block heading (`analysis-template.md` section 5 grammar).
|
|
12
|
+
- At least two options (`A`, `B`, ...), each with its scope effect in plain words after `— effect:`.
|
|
13
|
+
- Neutral: never lead with a preferred option, never argue for one.
|
|
14
|
+
- Name a `Fallback:` key — the option the estimate assumes until the client answers.
|
|
15
|
+
- Quote the client's own sentence when the ambiguity is internal to their document; cite the Knowledge Base page when it is a stock contradiction, never a claim from memory.
|
|
32
16
|
|
|
33
|
-
##
|
|
17
|
+
## AQ-6 — answering
|
|
34
18
|
|
|
35
|
-
|
|
19
|
+
The operator records the client's chosen option on the page or with `answer <doc> <CQ-n> <key>`. The runtime marks every scope item the question names for re-estimate; a confirmed item among them reopens only when the next `apply` actually changes its Requirement Coverage, Estimation or Client Response (L-3), with the cause in References.
|
|
36
20
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
## Cap and order
|
|
40
|
-
|
|
41
|
-
- At most 25 questions per submission; merge questions on the same topic across rows.
|
|
42
|
-
- Order by PD swing (largest first), then by priority (Must before Should).
|
|
43
|
-
- Beyond the cap, the remaining vague rows keep their `[ ]` assumption line and are listed in §5 as `Not sent — cap`.
|
|
21
|
+
## Never ask
|
|
44
22
|
|
|
45
|
-
|
|
23
|
+
- What the client's own document already answers, even if it is on another sheet.
|
|
24
|
+
- What the operator can decide alone (profile inputs, preferred ISVs, phasing) — write a `Q-n` (an operator question, same shape) or resolve it directly.
|
|
25
|
+
- Wording, formatting, or which column to use.
|
|
26
|
+
- Anything the client cannot judge from a technical standpoint (an implementation choice with no client-visible effect).
|
|
46
27
|
|
|
47
|
-
|
|
28
|
+
Test: if answered either way, would a Requirement Coverage value, an Estimation figure or the Client Response text differ? No — no question.
|
|
@@ -1,116 +1,23 @@
|
|
|
1
|
-
# Context parameters —
|
|
1
|
+
# Context parameters — version, edition, plan
|
|
2
2
|
|
|
3
|
-
The
|
|
4
|
-
analysis on the skeleton write, in this order, with its `#` and `Parameter` verbatim
|
|
5
|
-
from this file — a tender that states nothing still produces the full table. The
|
|
6
|
-
`Value` cell is the client's own words, never rounded, never converted, never inferred
|
|
7
|
-
from another parameter. Where the source is silent the cell reads `_not provided_`.
|
|
3
|
+
Project facts (Shopware version, edition, plan, what the project already built) come from the Dev Knowledge Base MCP only. The tool never researches the project itself outside it — no reading `composer.json`, no scanning `custom/plugins`, no asking the operator to guess.
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
sync and migration effort; order and traffic figures drive performance, hosting and load
|
|
11
|
-
testing; customer and role counts drive the B2B model; media volume drives the migration
|
|
12
|
-
window. A number the tender never stated and nobody asked for is the most expensive kind
|
|
13
|
-
of gap, because it surfaces after the fixed price is signed.
|
|
5
|
+
## Detection
|
|
14
6
|
|
|
15
|
-
|
|
7
|
+
Run once per document per session, before any item is assessed, and pass the result to every agent spawned for that run:
|
|
16
8
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| `Parameter` | verbatim from this file. |
|
|
21
|
-
| `Value` | the client's words, with their own unit and qualifier (`~6,000`, `approx. 850`, `38 GB`), or `_not provided_`. Several source statements: join with ` · `. |
|
|
22
|
-
| `Source` | `<source-map #> <sheet or section> <row or cell label>`, e.g. `2 Company & Context · Volumes/Products`. `—` when `_not provided_`. |
|
|
23
|
-
| `Drives` | copied from this file — what the figure changes in the estimate. |
|
|
24
|
-
| `Status` | `stated` · `_not provided_` · `_not provided_ ⚠ CQ-n` · `conflicting` (two source statements disagree — always also a `CQ-n`). |
|
|
9
|
+
1. `mcp__ShopwareDevKnowledgeBase__kb_status` — confirms the Knowledge Base is indexed for this project; refuse to assess coverage without it and say so in section 1.
|
|
10
|
+
2. `mcp__ShopwareDevKnowledgeBase__read_doc` the project's own overview/index page for the installed version, edition (Community or the named Commercial plan) and any plan tier facts it records.
|
|
11
|
+
3. `mcp__ShopwareDevKnowledgeBase__grep_docs` for what the project already built, per requirement area, before asking whether a scope item needs Extension or Custom — a feature the project already delivered is OOTB (D-12), not a separate value.
|
|
25
12
|
|
|
26
|
-
A
|
|
27
|
-
it MUST raise a `CQ-n` (SKILL.md step 6, `client-question-rules.md`) and the Status cell
|
|
28
|
-
names that question. A non-**drv** gap is recorded and left alone — it is context, not a
|
|
29
|
-
blocker. `conflicting` always raises a `CQ-n` regardless of **drv**.
|
|
13
|
+
A fact the Knowledge Base does not carry: state it as `not provided by the Dev Knowledge Base` in section 1 rather than guessing; a scope item that depends on it becomes a `Q-n` to the operator, never an assumption dressed as a fact.
|
|
30
14
|
|
|
31
|
-
|
|
32
|
-
writing `~4 variants per parent` into P-02), and never carry a figure over from a
|
|
33
|
-
different tender.
|
|
15
|
+
## What section 1 states
|
|
34
16
|
|
|
35
|
-
|
|
17
|
+
- Detected Shopware version, edition and plan of an existing project, each with the Knowledge Base page it came from — stated here in section 1's meta prose only. The Project information table's `shopware` row (`project-information.md`) instead records the tender's own stated target, Source = the tender location; when the detected version differs from the tender's stated target, raise a `Q-n` to the operator.
|
|
18
|
+
- What the project already built that is relevant to at least one scope item, named by feature, with its Knowledge Base or wiki page.
|
|
19
|
+
- The coverage-to-client-token map is not an intake fact — it is decided at export and stored in the fit-back map (`coverage-mapping.md`).
|
|
36
20
|
|
|
37
|
-
|
|
38
|
-
| --- | --- | --- | --- | --- |
|
|
39
|
-
| P-01 | Sellable SKUs / variants | Catalog | import, indexing, migration, search | drv |
|
|
40
|
-
| P-02 | Parent products | Catalog | catalog modelling, PDP work | drv |
|
|
41
|
-
| P-03 | Categories | Catalog | navigation, migration, SEO | drv |
|
|
42
|
-
| P-04 | Technical attributes / properties (and values) | Catalog | property model, filters, ERP mapping | drv |
|
|
43
|
-
| P-05 | Product images (count and storage volume) | Catalog | media migration, CDN, cutover window | drv |
|
|
44
|
-
| P-06 | Product documents (datasheets, certificates) | Catalog | media or ERP-link decision, migration | drv |
|
|
45
|
-
| P-07 | Hazardous / regulated product share | Catalog | compliance fields, shipping rules | |
|
|
46
|
-
| P-08 | Packaging units, MOQ, order increments | Catalog | cart and pricing logic | |
|
|
47
|
-
| P-09 | Languages / translations | Catalog | snippets, content, ERP language feeds | drv |
|
|
48
|
-
| P-10 | Sales channels and domains | Catalog | channel config, theme, caching | drv |
|
|
49
|
-
| P-11 | Customer groups / price lists | Pricing | pricing model, ERP sync | drv |
|
|
50
|
-
| P-12 | Customer-specific price rows | Pricing | price sync volume, performance | drv |
|
|
51
|
-
| P-13 | Tier / scale price coverage | Pricing | pricing rules, import | |
|
|
52
|
-
| P-14 | Net / gross display rule | Pricing | storefront pricing, tax config | |
|
|
53
|
-
| P-15 | Currencies | Pricing | currency config, rounding | |
|
|
54
|
-
| P-16 | Countries / VAT and delivery scope | Pricing | tax, shipping, legal texts | |
|
|
55
|
-
| P-17 | Companies / accounts | Customers | B2B model, migration | drv |
|
|
56
|
-
| P-18 | Contacts / users | Customers | login migration, roles | drv |
|
|
57
|
-
| P-19 | Addresses | Customers | migration, address model | |
|
|
58
|
-
| P-20 | B2B roles, budgets, approval workflows | Customers | B2B Components vs plugin vs custom | drv |
|
|
59
|
-
| P-21 | Punch-out / procurement accounts | Customers | OCI / cXML scope | drv |
|
|
60
|
-
| P-22 | Orders per day (average) | Orders & traffic | sizing, queue and worker design | drv |
|
|
61
|
-
| P-23 | Orders per day (peak) | Orders & traffic | load test target, hosting | drv |
|
|
62
|
-
| P-24 | Average order value | Orders & traffic | context only, never priced | |
|
|
63
|
-
| P-25 | Lines per order | Orders & traffic | cart performance, ERP payload | |
|
|
64
|
-
| P-26 | Order history to migrate (orders and lines) | Orders & traffic | migration volume and window | drv |
|
|
65
|
-
| P-27 | Sessions per month | Orders & traffic | caching, hosting | drv |
|
|
66
|
-
| P-28 | Peak concurrent users | Orders & traffic | load test target, hosting | drv |
|
|
67
|
-
| P-29 | Device split | Orders & traffic | responsive and mobile scope | |
|
|
68
|
-
| P-30 | CMS / shop pages | Content & media | Shopping Experiences rebuild | |
|
|
69
|
-
| P-31 | Blog posts | Content & media | blog scope, migration | |
|
|
70
|
-
| P-32 | Landing pages | Content & media | rebuild effort | |
|
|
71
|
-
| P-33 | Indexed SEO URLs / redirects | Content & media | redirect map, SEO risk | drv |
|
|
72
|
-
| P-34 | Leading system (ERP) and version | Systems | integration pattern, ownership | drv |
|
|
73
|
-
| P-35 | ERP protocol and API surface | Systems | connector effort, real-time feasibility | drv |
|
|
74
|
-
| P-36 | PIM | Systems | catalog ownership | |
|
|
75
|
-
| P-37 | CRM | Systems | interface scope | |
|
|
76
|
-
| P-38 | Marketing / newsletter systems | Systems | interface scope | |
|
|
77
|
-
| P-39 | PSP and payment methods | Systems | payment scope, PCI posture | drv |
|
|
78
|
-
| P-40 | CMP / consent and analytics | Systems | consent scope, tracking | |
|
|
79
|
-
| P-41 | Search / indexing infrastructure | Systems | OpenSearch, relevance work | |
|
|
80
|
-
| P-42 | SSO / identity provider | Systems | admin and customer login scope | |
|
|
81
|
-
| P-43 | Source platform and version | Migration | migration tooling, effort | drv |
|
|
82
|
-
| P-44 | Migration objects and volumes | Migration | see §1.2 Migration inventory | drv |
|
|
83
|
-
| P-45 | Cutover model and freeze window | Migration | go-live plan, risk | drv |
|
|
84
|
-
| P-46 | Hosting model, region and certification | Commercial & timeline | hosting recommendation, operations | |
|
|
85
|
-
| P-47 | Shopware edition / plan expectation | Commercial & timeline | plan decision, class ladder | drv |
|
|
86
|
-
| P-48 | Budget as stated (verbatim, context only) | Commercial & timeline | recorded, never compared, never priced | |
|
|
87
|
-
| P-49 | Questions-until / proposal due dates | Commercial & timeline | question deadline, run planning | |
|
|
88
|
-
| P-50 | Award, kickoff and go-live dates | Commercial & timeline | plan feasibility, phasing | drv |
|
|
21
|
+
## Passed to every agent
|
|
89
22
|
|
|
90
|
-
|
|
91
|
-
parameter table is complete on its own. They are the same values, quoted the same way.
|
|
92
|
-
|
|
93
|
-
## Question stubs for a missing **drv** parameter
|
|
94
|
-
|
|
95
|
-
`client-question-rules.md` governs the wording; these are the decisions to offer. Ask
|
|
96
|
-
for the figure, never for a design.
|
|
97
|
-
|
|
98
|
-
| # | Question | Options to offer |
|
|
99
|
-
| --- | --- | --- |
|
|
100
|
-
| P-01 · P-02 · P-03 · P-04 | catalog size | brackets that change the class, e.g. `< 5,000 SKUs` · `5,000–50,000` · `> 50,000`, plus `Other:` |
|
|
101
|
-
| P-05 · P-06 | media count and storage volume | brackets in files and GB |
|
|
102
|
-
| P-09 | which languages, and who supplies the translations | `client supplies` · `bidder translates UI only` · `bidder translates all` |
|
|
103
|
-
| P-10 | how many sales channels and domains | `one` · `one per country` · `Other:` |
|
|
104
|
-
| P-11 · P-12 · P-13 | how prices are structured and how many customer-specific rows | brackets |
|
|
105
|
-
| P-17 · P-18 · P-20 · P-21 | company/contact counts, and which B2B roles and approval rules apply | the role model options |
|
|
106
|
-
| P-22 · P-23 · P-26 · P-27 · P-28 | order and traffic figures, and how much history must be migrated | brackets; `no history` · `2 years` · `5 years` · `all` |
|
|
107
|
-
| P-33 | indexed URLs and whether a redirect map is required | `redirect map required` · `not required` |
|
|
108
|
-
| P-34 · P-35 | leading system, its version and the API it offers | `documented REST/OData` · `file exchange only` · `to be built by the client's partner` |
|
|
109
|
-
| P-39 | PSP and payment methods in scope | the method list |
|
|
110
|
-
| P-43 · P-44 · P-45 | source platform, migration objects and the cutover model | `big-bang` · `phased` · `Other:` |
|
|
111
|
-
| P-47 | which edition/plan the client expects to licence | `Community` · `Rise` · `Evolve` · `Beyond` · `bidder recommends` |
|
|
112
|
-
| P-50 | the go-live date and whether it is fixed | `fixed` · `target` · `Other:` |
|
|
113
|
-
|
|
114
|
-
One question may cover a whole group of missing parameters in that table (one `CQ-n`
|
|
115
|
-
for "catalog size", not four); every parameter it covers names it in its Status cell.
|
|
116
|
-
The cap in SKILL.md step 6 applies to these questions like any other.
|
|
23
|
+
Every `sw-product-manager` and `sw-shopware-architect` spawn receives: the detected version/edition/plan from this file, section 1's Project information table, and, per scope item it is given, that item's own Internal note (read-only) and its own rejected proposals (`References` `rejected:` lines plus any `rejected` entries in `proposals.json` for that item or global) with an instruction never to re-propose them (AQ-4).
|
|
@@ -1,62 +1,39 @@
|
|
|
1
|
-
# Coverage
|
|
1
|
+
# Requirement Coverage
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Six values, exactly, and no others: `OOTB · Configuration · Extension · ISV · Custom · —`. Every method file, the runtime and every agent use these six and these six only.
|
|
4
4
|
|
|
5
|
-
|
|
|
6
|
-
| --- | --- |
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
| Value | Meaning | Must name | Estimation |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| OOTB | The base already does it — stock Shopware, or already delivered by the project. | The stock feature and its KB page, or the project's implementation. | `0 PD` |
|
|
8
|
+
| Configuration | The base has it; a consultant sets it up in the Administration — Rule Builder, Flow Builder, Shopping Experiences, settings, import profiles. No code. | The admin surface. | never `0 PD` |
|
|
9
|
+
| Extension | The base has the entity, service, route or UI that does most of the job; we extend it — subscriber, decorator, custom field, Flow action, CMS element, or the project's own extension. | The stock or project feature extended, with its KB page. | the delta |
|
|
10
|
+
| ISV | A Shopware Store extension covers it; we install, configure and integrate it. | Extension, vendor, supported Shopware versions, link. Compatible with the detected version and plan, with no licence terms or amounts attached. | integration and configuration |
|
|
11
|
+
| Custom | A significant part is missing from the base; we build the domain. | Nothing to extend but the DAL or the plugin system. | the whole vertical |
|
|
12
|
+
| `—` | Not about Shopware functionality: training, documentation, go-live support. | — | still carries effort |
|
|
13
|
+
|
|
14
|
+
Each value's basis is a References line in the Knowledge Base's own feature names: `kb: <page>` for OOTB/Configuration/Extension against the platform docs, `project: <implementation or wiki page>` when the project itself already built it, `isv: <extension> · <vendor> · <supported versions> · <url>` for ISV. A claim the Knowledge Base does not cover becomes an assumption proposal (`assumption-catalogue.md`), never a guess written straight into Requirement Coverage.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Client-token map — decided agentically at export
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
The six Requirement Coverage values are mapped to the client's own compliance tokens at export, not at intake (`procedure.md` step 7, `editor-session.md` batch kind `export`). Tables are identified by their `<sheet> r<headerRow>` key, unique across the fit-back map. `tokens --suggest` prints the heuristic proposal per table key, the table's client token list, and its numeric legend when it has one; the map is decided from that input and stored with `tokens --file`, keyed the same way, for every later export of the same table.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Every one of the six values is something the partner delivers, so **never map to a negative token** — never "not offered", "not supported", "no", or "roadmap":
|
|
21
|
+
|
|
22
|
+
| Value | Pick |
|
|
21
23
|
| --- | --- |
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
| `stock` | Stock, Standard, OOTB, Out of the box, Core | Standard, Im Standard, Enthalten |
|
|
39
|
-
| `config` | Config, Configuration | Konfiguration |
|
|
40
|
-
| `plugin` | Plugin, Extension, App, Store plugin | Plugin, Erweiterung, App |
|
|
41
|
-
| `custom` | Custom, Development, Customisation | Individualentwicklung, Anpassung, Entwicklung |
|
|
42
|
-
| `not-offered` | Not offered, No, Not available | Nicht angeboten, Nein, Nicht verfügbar |
|
|
43
|
-
|
|
44
|
-
## Edition tiers — indicative, never evidence
|
|
45
|
-
|
|
46
|
-
Starting hypothesis, taken from this harness's PRD checklist (`sw-design-requirements/reference/prd-confidence-checklist.md` §I). The PM verifies every cell the response relies on, every run, against `platform/func/commercial-features/*` and docs.shopware.com for the detected version. Conflicting tier documentation exists for some B2B capabilities — when the PM reports `conflict`, the row is a `CQ-n` against the client's contract, not a guess.
|
|
47
|
-
|
|
48
|
-
| Capability | Community | Rise | Evolve | Beyond | Verify at |
|
|
49
|
-
| --- | --- | --- | --- | --- | --- |
|
|
50
|
-
| B2B Components (employees, roles, quick order, shopping lists) | — | — | ✓ | ✓ | `platform/func/commercial-features/b2b-components*` |
|
|
51
|
-
| B2B order approval, budgets | — | — | verify | ✓ | same |
|
|
52
|
-
| B2B quote management | — | — | verify | ✓ | same |
|
|
53
|
-
| Sales agent / order on behalf (imitate customer is core) | core: imitate only | core | verify | ✓ | same |
|
|
54
|
-
| Custom Products | — | ✓ | ✓ | ✓ | `platform/func/commercial-features/custom-products*` |
|
|
55
|
-
| Advanced Search | — | verify | ✓ | ✓ | `platform/func/commercial-features/advanced-search*` |
|
|
56
|
-
| Multi-Inventory | — | — | ✓ | ✓ | `platform/func/commercial-features/multi-inventory*` |
|
|
57
|
-
| Subscriptions | — | — | — | ✓ | `platform/func/commercial-features/subscriptions*` |
|
|
58
|
-
| Returns Management | — | verify | ✓ | ✓ | `platform/func/commercial-features/returns*` |
|
|
59
|
-
| Admin SSO / 2FA | 2FA via plugin | verify | verify | verify | `platform/func/settings/*`, docs |
|
|
60
|
-
| Flow Builder premium actions (delay, webhooks) | delay: verify | verify | ✓ | ✓ | `platform/func/settings/flow*` |
|
|
61
|
-
|
|
62
|
-
**Community rule.** With Community as the recommended plan, every row that B2B Components would cover becomes `custom` and typically doubles; the architect returns the alternative and §2 shows both variants until the plan is decided.
|
|
24
|
+
| OOTB | The best "standard / yes / fully" token. |
|
|
25
|
+
| Configuration | The configuration-style token, or the next best after OOTB. |
|
|
26
|
+
| Extension | The customisation- or development-style token. |
|
|
27
|
+
| Custom | The customisation- or development-style token. |
|
|
28
|
+
| ISV | The third-party / partner / add-on-style token when the list has one; otherwise the same customisation-style token as Extension/Custom. |
|
|
29
|
+
| `—` | An N/A-style token when the list has one; otherwise the OOTB token — never a negative token such as "Not offered". |
|
|
30
|
+
|
|
31
|
+
A numeric legend (key → label): pick the key by what its label means, never by the number's position. No token list in the client's file: use the scale the client's instructions define, or a neutral `Yes / Partially / No`, and record the scale used and the chosen map in the confirmed import map (`tokens --file`), not in section 1.
|
|
32
|
+
|
|
33
|
+
## ISV research
|
|
34
|
+
|
|
35
|
+
Coverage is checked only against the Shopware platform documentation and the Shopware Dev Knowledge Base MCP. Exception: for ISV items the architect researches the Shopware Store and vendor pages directly (WebFetch/WebSearch) — there is no marketplace layer in the Knowledge Base yet. An ISV item names the extension, its vendor, the Shopware versions it supports, and a link; it must be compatible with the detected version and plan, and carry no licence terms or amounts — never name a fee, a cost or a rate for it (`estimation-model.md`, money rule).
|
|
36
|
+
|
|
37
|
+
## Project facts
|
|
38
|
+
|
|
39
|
+
The detected Shopware version, edition and plan, and what the project already built, come from the Dev Knowledge Base only (`context-parameters.md`). The tool never researches the project itself outside the Knowledge Base.
|