@kody-ade/kody-engine 0.4.122 → 0.4.124

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.
@@ -9,7 +9,7 @@
9
9
  "flag": "--url",
10
10
  "type": "string",
11
11
  "required": false,
12
- "describe": "Base URL the agent should browse. Optional — resolveQaUrl preflight falls back to the goal-branch Vercel deployment (when --goal is set), then $PREVIEW_URL, then qa.fallbackUrl from kody.config.json. Errors if none resolve."
12
+ "describe": "Base URL the agent should browse. Optional — resolveQaUrl preflight falls back to the goal-branch Vercel deployment (when --goal is set), then $PREVIEW_URL, then the `QA_URL` variable in .kody/variables.json. Errors if none resolve."
13
13
  },
14
14
  {
15
15
  "name": "scope",
@@ -87,7 +87,7 @@
87
87
  "preflight": [
88
88
  { "script": "resolveQaUrl" },
89
89
  { "script": "discoverQaContext" },
90
- { "script": "loadQaGuide" },
90
+ { "script": "loadQaContext" },
91
91
  { "script": "loadConventions" },
92
92
  { "script": "warmupMcp" },
93
93
  { "script": "composePrompt" }
@@ -7,8 +7,7 @@ You may write throwaway artifacts (screenshots, ad-hoc Playwright specs) under `
7
7
  Base URL: `{{previewUrl}}` (resolved from: {{previewUrlSource}})
8
8
  {{#args.scope}}Focus: **{{args.scope}}**{{/args.scope}}
9
9
  {{^args.scope}}Focus: broad smoke across discovered routes.{{/args.scope}}
10
- {{#args.authProfile}}Auth: a saved Playwright `storageState.json` is available at `{{args.authProfile}}`. Pass it to `mcp__playwright__browser_navigate` via the `storageState` parameter so the session starts pre-authenticated.{{/args.authProfile}}
11
- {{^args.authProfile}}Auth: log in fresh using credentials from the QA guide if needed.{{/args.authProfile}}
10
+ {{qaAuthBlock}}
12
11
 
13
12
  Report destination: {{#args.goal}}existing kody goal `{{args.goal}}` (each finding becomes a `goal:{{args.goal}}` task issue){{/args.goal}}{{^args.goal}}{{#args.issue}}existing issue #{{args.issue}} (postflight will comment on it){{/args.issue}}{{^args.issue}}a new kody goal (postflight will append to the goals manifest and open one task issue per finding){{/args.issue}}{{/args.goal}}.
14
13
 
@@ -30,9 +29,9 @@ If that errors (timeout, DNS, connection refused), the app is unreachable. STOP
30
29
  {{qaContext}}
31
30
  ```
32
31
 
33
- # QA guide (committed in the repo — authoritative over the auto-discovery above)
32
+ # QA scenarios & notes (hand-written, authoritative over auto-discovery above)
34
33
 
35
- {{qaGuide}}
34
+ {{qaProfile}}
36
35
 
37
36
  {{conventionsBlock}}
38
37
 
@@ -40,9 +39,9 @@ If that errors (timeout, DNS, connection refused), the app is unreachable. STOP
40
39
 
41
40
  # What to do
42
41
 
43
- 1. **Plan the session.** From the QA context, the QA guide, and the focus, build a short test matrix. For each candidate UI surface, list the user-visible behaviors worth verifying. Skip surfaces unrelated to the focus.
42
+ 1. **Plan the session.** From the QA context, the QA scenarios & notes, and the focus, build a short test matrix. For each candidate UI surface, list the user-visible behaviors worth verifying. Skip surfaces unrelated to the focus.
44
43
 
45
- 2. **Authenticate if required.** If a route under test needs a role and you have credentials (in the QA guide or via `--auth-profile`), log in once. If credentials for a needed role are missing, note it as a gap and browse only what you can.
44
+ 2. **Authenticate if required.** Follow the Auth instruction in the Target section above. If a route under test needs a role and you have credentials, log in once. If credentials for a needed role are missing, note it as a gap and browse only what you can.
46
45
 
47
46
  3. **Exercise each surface.** For every UI surface in your matrix, run through the relevant states. Don't pad — apply the checklist where it actually matters:
48
47
  - **Happy path.** The user-visible behavior the surface exists to support, end to end.
@@ -72,7 +72,7 @@
72
72
  { "script": "loadTaskState" },
73
73
  { "script": "loadConventions" },
74
74
  { "script": "discoverQaContext" },
75
- { "script": "loadQaGuide" },
75
+ { "script": "loadQaContext" },
76
76
  { "script": "resolvePreviewUrl" },
77
77
  { "script": "composePrompt" }
78
78
  ],
@@ -30,9 +30,11 @@ If `browser_navigate` errors out (timeout, DNS, connection refused, navigation a
30
30
  {{qaContext}}
31
31
  ```
32
32
 
33
- # QA guide (committed in the repo — authoritative over the auto-discovery above)
33
+ # QA scenarios & notes (hand-written, authoritative over auto-discovery above)
34
34
 
35
- {{qaGuide}}
35
+ {{qaProfile}}
36
+
37
+ {{qaAuthBlock}}
36
38
 
37
39
  # Diff
38
40
 
@@ -48,7 +50,7 @@ If `browser_navigate` errors out (timeout, DNS, connection refused, navigation a
48
50
 
49
51
  1. **Identify UI-affecting changes.** Read the diff. Which pages / components / forms / styles did this PR change? Which user-visible behavior should be verified in the browser? If the diff has no UI surface (pure backend, pure config, pure tests), say so and produce a diff-only review — do not spin up Playwright for nothing.
50
52
 
51
- 2. **Plan the browse session.** For each UI-affecting change, pick 1–3 routes from the QA context that exercise it. If the change requires an authenticated role, grab credentials from the QA guide above. If no credentials are available for a role the change depends on, note that as a gap and browse only public pages.
53
+ 2. **Plan the browse session.** For each UI-affecting change, pick 1–3 routes from the QA context that exercise it. If the change requires an authenticated role, follow the Auth instruction above. If no credentials are available for a role the change depends on, note that as a gap and browse only public pages.
52
54
 
53
55
  3. **Write a Playwright spec.** Create exactly one file at `.kody/ui-review/browse.spec.ts`. Use `process.env.UI_REVIEW_BASE_URL` as the base URL. For each route you plan to check, write a test that:
54
56
  - navigates there,
@@ -420,17 +420,6 @@
420
420
  },
421
421
  "additionalProperties": false
422
422
  },
423
- "qa": {
424
- "type": "object",
425
- "description": "qa-engineer defaults. Used by the resolveQaUrl preflight when no explicit --url is passed and no $PREVIEW_URL env var is set.",
426
- "properties": {
427
- "fallbackUrl": {
428
- "type": "string",
429
- "description": "Fallback URL the qa-engineer should target. Typically the project's stable dev environment (e.g. 'https://dev.example.com'). No localhost defaults — CI has no localhost to fall back to."
430
- }
431
- },
432
- "additionalProperties": false
433
- },
434
423
  "devServer": {
435
424
  "type": "object",
436
425
  "description": "Dev server configuration for browser tool verification. Works with any provider (MCP or CLI-based).",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.122",
3
+ "version": "0.4.124",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",