spectoflow 0.17.0 → 0.17.5
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/README.md +12 -6
- package/package.json +1 -1
- package/templates/README.md +4 -0
- package/templates/agents/qa-engineer.md +8 -5
- package/templates/dashboard/public/app.js +160 -124
- package/templates/dashboard/public/designs/console.css +15 -1
- package/templates/dashboard/public/designs/console.js +19 -0
- package/templates/dashboard/public/designs/orbit.css +42 -18
- package/templates/dashboard/public/designs/orbit.js +30 -5
- package/templates/dashboard/public/i18n.js +577 -0
- package/templates/dashboard/public/index.html +103 -86
- package/templates/dashboard/public/styles.css +15 -1
- package/templates/dashboard/server.js +1 -0
- package/templates/skills/write-e2e-tests/SKILL.md +72 -17
package/README.md
CHANGED
|
@@ -174,12 +174,18 @@ question at a time**, each with a recommendation anchored in the project's goals
|
|
|
174
174
|
until the need is crisp; then it runs the normal workflow. It's additive: it feeds the router, never
|
|
175
175
|
replaces it, and it's mode-aware.
|
|
176
176
|
|
|
177
|
-
**End-to-end tests
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
177
|
+
**End-to-end tests run headed, in the real browser, by default.** `write-e2e-tests` defaults to
|
|
178
|
+
**Playwright lib, `--headed`** for its own local runs — the browser window is visible so a flow that
|
|
179
|
+
"passes" for the wrong reason gets caught, not just a bare pass/fail line. `--ui` mode is used for
|
|
180
|
+
authoring a flow or chasing a failure interactively. It only steps down — to headless, then
|
|
181
|
+
**Playwright MCP**, then the client's native browser tooling (e.g. Claude Code's Chrome extension), then
|
|
182
|
+
writing the spec and raising a `need` — when you asked for something else or headed genuinely can't
|
|
183
|
+
launch, and it **always says why** via the `::spectoflow` sentinel, never a silent switch. CI keeps
|
|
184
|
+
running the committed suite headless — that's the pipeline's job, not a fallback. `init` idempotently
|
|
185
|
+
wires a `playwright` entry into the target project's `.mcp.json` (and `.cursor/mcp.json` for Cursor) so
|
|
186
|
+
the MCP rung works out of the box — `npx` fetches the server on first use, so spectoflow stays zero-dep
|
|
187
|
+
(the config lives in *your* project). The durable artifact is always the committed `*.spec.ts`; the
|
|
188
|
+
Workflow tab's End-to-end step shows this policy in its dashboard popover.
|
|
183
189
|
|
|
184
190
|
A `governance` capability adds a **Spec Source Guardian** (skill `audit-source`): it keeps the spec
|
|
185
191
|
(intent) and the code/tests (reality) coherent — flagging drift in both directions, never auto-fixing,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spectoflow",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.5",
|
|
4
4
|
"description": "Agent-agnostic spec-driven development framework + real-time local control plane. Markdown artifacts, intent router, workflow-by-scope.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"spec-driven-development",
|
package/templates/README.md
CHANGED
|
@@ -66,6 +66,10 @@ Your **artifacts are markdown, and they live at the project root, not in here**:
|
|
|
66
66
|
- **The framework lives here**; per-agent entry files are thin shims that point back — never duplicate
|
|
67
67
|
framework content per agent.
|
|
68
68
|
- **Agents are stable personas; skills are the evolving procedures.** Workflow → capability → agent → skill.
|
|
69
|
+
- **End-to-end tests run headed, in the real browser, by default** (`write-e2e-tests`) — Playwright lib
|
|
70
|
+
with `--headed`, `--ui` for authoring/debugging, stepping down (headless → Playwright MCP → native
|
|
71
|
+
browser tooling → write-and-raise-a-need) only when asked or blocked, always saying why. CI stays
|
|
72
|
+
headless — see the Workflow tab's End-to-end step for the details.
|
|
69
73
|
- **Mode ≠ policy.** Mode is routine friction; policy is approvals required regardless of mode.
|
|
70
74
|
- **Spec-anchored:** the spec is the intent of record; the code and tests are the enforced reality; the
|
|
71
75
|
`spec-source-guardian` keeps them from drifting apart (it flags, it never silently auto-fixes).
|
|
@@ -32,11 +32,14 @@ after-the-fact check. Owns the test suite's health (signal, speed, isolation), n
|
|
|
32
32
|
edge cases and failure paths — not just the happy path. Prefer the fastest level (unit) that gives
|
|
33
33
|
real confidence; escalate to integration or `write-e2e-tests` only when the behaviour crosses a
|
|
34
34
|
boundary (network, DB, filesystem, another service) that a unit test cannot honestly exercise.
|
|
35
|
-
- **For end-to-end flows,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
- **For end-to-end flows, run directly in the browser by default** — Playwright lib, **headed**
|
|
36
|
+
(`--headed`), so the run is watched live rather than judged by a bare pass/fail line; `--ui` for
|
|
37
|
+
authoring or chasing a failure interactively. Step down only when the user asked otherwise or headed
|
|
38
|
+
genuinely can't launch, following the `write-e2e-tests` ladder (headless → Playwright MCP → native
|
|
39
|
+
browser tooling → write the spec and raise a `need`) — **always announcing why** via the
|
|
40
|
+
`::spectoflow` sentinel, never a silent switch. CI keeps running the committed suite headless — that
|
|
41
|
+
is the pipeline's job, not a fallback. The committed Playwright spec is always the deliverable; live
|
|
42
|
+
driving is only the means, and a flow you couldn't actually run is reported as such, never as a pass.
|
|
40
43
|
|
|
41
44
|
## Definition of done
|
|
42
45
|
Every acceptance criterion has a corresponding test, plus its meaningful edge cases (empty/null,
|