Skip to content

Commit e475bf2

Browse files
siddhant573claude
andauthored
docs+skills: 0.4.1 update — project/folder gate + generate mirror in Kiro (#79)
* docs: ground project/folder + auto-default behavior across skill and user guide Add a Test Manager agent-surface reference covering `projects`/`folders` list/create (NDJSON wire shape, pagination, `--search`/`--limit`/`--offset`) and the run-startup `project_folder_auto_defaulted` event with self-healing for stale IDs. Wire it into SKILL.md (decision tree + reference table) and setup-and-config.md. Update the user guide to match: - configuration.md: picker works for OAuth and basic-auth profiles; pointers to list/create commands; self-healing for stale IDs. - test-manager-integration.md: new "Browse and create from the command line" and "Auto-default on first run" sections. - cicd.md: pre-configuring project/folder is optional; auto-default covers first-run CI. - troubleshooting.md: empty `project_id` is no longer fatal; stale/invalid IDs are self-healed. Fix stale `tms-integration.md` links (README + 3 user-guide files) to point at `test-manager-integration.md`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: thread project/folder gate + auto-default event through skill, refs, and kiro mirror Skill: SKILL.md §1.3 adds `project_folder_auto_defaulted` to the skip/fold list with translation guidance; §3 adds a guardrail that bare-objective invocation exits 2; §5 lists the event among typed events. References: `parsing.md` and `generate-parsing.md` add the event to their typed-event tables; `testmd.md` and `generate.md` note the gate runs before launch and emits the event; `debug.md` updates the exit-2 row, adds a row for the "did you mean" unknown-subcommand case, and a row for the self-healing path when a manually-set project ID is invalid. User guide: `running-tests.md` exit-code table now names TMS credential exchange and unknown subcommand under exit 2. Kiro mirror: `kane-cli-run.md` mirrors the typed-event table, exit-2 guidance, and the new "Browsing / creating projects and folders" + "auto- default gate" sections; `kane-cli-testmd.md` mirrors the gate note; POWER.md Step 3 reframes project/folder as optional (gate auto-defaults), documents the new `projects`/`folders` subcommands, and notes the OAuth picker fix and self-healing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * kiro-powers: mirror generate skill + test-manager reference Adds the missing AI test-authoring surface to the Kiro power. Before this, the power covered only `kane-cli run` and `kane-cli testmd`; users asking Kiro to "write test cases for X" would fall through to a browser run. - New `steering/kane-cli-generate.md` mirroring SKILL.md §6 + references/generate.md + references/generate-parsing.md: the three modes (new / refine / save), clarification round-trips, the refine→save→run loop, typed `generate_*` event schema, terminal `generate_done`, and the generate → testmd handoff. - POWER.md: frontmatter `displayName`, `description`, and `keywords` now reflect test authoring (so the power activates on phrasing like "write test cases for"); Overview goes from "two ways" to "three ways" with the generate path; Steering files section adds `kane-cli-generate.md`. - `kane-cli-run.md` decision tree adds a "test cases or scenarios written (no browser)" branch with trigger phrases. - `kane-cli-testmd.md` adds an "Authoring `_test.md` from a description" section documenting the generate → testmd pipeline alongside the existing `--name` capture path. - `integrations/docs/kiro-powers.md`: source-of-truth table lists the new steering file and the missing references (generate.md, generate- parsing.md, test-manager.md); mapping table adds rows for SKILL.md §6, references/generate.md, references/generate-parsing.md, and references/test-manager.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(skill): resync .claude and .agents dev mirrors with skill-installer source Brings the in-repo Claude Code and Codex dev mirrors back into byte-for-byte parity with skill-installer/skills/ after the 0.4.1 doc grounding + project/folder gate threading. Both mirrors gain references/test-manager.md (new) and pick up the SKILL.md §1.3/§3/§5 edits and the parsing.md / generate-parsing.md / generate.md / testmd.md / debug.md / setup-and-config.md updates. Verified with `diff -rq`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 179d6bc commit e475bf2

36 files changed

Lines changed: 909 additions & 54 deletions

.agents/skills/kane-cli/SKILL.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Progress events have `step`/`status`/`remark` fields and **no `type` field**.
5555
#### What to skip
5656

5757
- Individual passing steps — fold them into the overall progress line
58-
- Internal field names (`step`, `status`, `remark`, `run_end`, `final_state`, `bifurcation`, `session_dir`, etc.) — translate to plain language
58+
- Internal field names (`step`, `status`, `remark`, `run_end`, `final_state`, `bifurcation`, `session_dir`, `project_folder_auto_defaulted`, etc.) — translate to plain language. A `project_folder_auto_defaulted` event fires before progress when the run-startup gate auto-resolves a project/folder; surface it as one line ("kane-cli auto-selected project X / folder Y for this run") and move on. Details: `references/test-manager.md`.
5959

6060
#### Example output for a 15-step run with one failure
6161

@@ -138,6 +138,7 @@ When the user's request involves a browser — or writing test cases:
138138
- Multiple independent browser tasks → Read `references/parallel.md` first
139139
- Debug a failed run → Read `references/debug.md`
140140
- Configure kane-cli or check directory layout → Read `references/setup-and-config.md`
141+
- Browse / create / pick a Test Manager project or folder, or interpret the auto-default event → Read `references/test-manager.md`
141142
- You need the full NDJSON event schema (rare — §5's summary covers 90% of cases) → Read `references/parsing.md`
142143

143144
**Every run, always:** follow §1 above.
@@ -150,6 +151,8 @@ When the user's request involves a browser — or writing test cases:
150151
kane-cli run "<objective>" --agent [options]
151152
```
152153

154+
> The `run` subcommand is **mandatory**. `kane-cli "<objective>"` (no `run`) does **not** work — unknown first tokens exit `2` with a "did you mean" suggestion. Same rule applies to `kane-cli testmd run …` and `kane-cli generate …`.
155+
153156
`--agent` is mandatory — it switches stdout to NDJSON. Most-used flags:
154157

155158
| Flag | Purpose | Default |
@@ -233,7 +236,7 @@ Action → extraction → assertion in one objective:
233236
Stdout is NDJSON, one event per line. There are two shapes:
234237

235238
- **Progress events** (most events) have `step` (1-based), `status` (`passed`/`failed`), `remark` — and **no `type` field**.
236-
- **Typed events** have a `type` field: `bifurcation`, `child_agent_start`, `child_agent_end`, `ask_user`, `error`, and finally `run_end`.
239+
- **Typed events** have a `type` field: `project_folder_auto_defaulted` (run-startup gate, fires before any progress when no project/folder is configured), `bifurcation`, `child_agent_start`, `child_agent_end`, `ask_user`, `error`, and finally `run_end`.
237240

238241
Parsing strategy:
239242

@@ -300,4 +303,5 @@ Internal event/field names (`generate_snapshot`, `request_id`, …) are for pars
300303
| Multiple independent browser tasks | `references/parallel.md` |
301304
| Need full NDJSON event schema (`run`) | `references/parsing.md` |
302305
| Need the `generate` NDJSON event schema | `references/generate-parsing.md` |
306+
| Browse / create projects or folders, or parse the auto-default event | `references/test-manager.md` |
303307
| First-time install, auth, or full config | `references/setup-and-config.md` |

.agents/skills/kane-cli/references/debug.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ The `run_end` event provides `session_dir` and `run_dir` paths. Use those direct
3030
| 🔄 Agent repeats same action | Stuck in a loop / page didn't change | Rephrase objective, add explicit wait or assertion |
3131
| 🎯 Agent clicks wrong element | Ambiguous UI, multiple similar elements | Be more specific: "click the **blue** 'Submit' button in the **checkout form**" |
3232
| 👁️ Agent says done but didn't finish | Objective too vague | Add explicit assertions: "assert the confirmation page shows order number" |
33-
| 💀 Exit code 2, no steps | Auth or Chrome failure | Check `kane-cli whoami`, verify Chrome is available |
33+
| 💀 Exit code 2, no steps | Auth, TMS credential exchange, or Chrome failure | Check `kane-cli whoami`, verify Chrome is available |
34+
| ❓ Exit code 2 with "did you mean …" | Bare-objective shortcut — agent ran `kane-cli "<objective>"` without the `run` subcommand | Re-invoke as `kane-cli run "<objective>" --agent` (same rule for `testmd run` / `generate`) |
35+
| 📤 Upload silently fails after configuring a project/folder by hand | Saved ID is invalid (typo, deleted, no access) | No action needed — the next run detects the 4xx and auto-defaults a working project/folder. To rebind manually: `kane-cli config project` (TTY picker) or `kane-cli projects list``kane-cli config project <id>` (see `references/test-manager.md`) |
3436
| ⏱️ Exit code 3 | Timeout or cancelled | Increase `--timeout` or `--max-steps`, or split into smaller objectives |
3537
| 🚫 "CDP endpoint not reachable" | Chrome not running | Let kane-cli manage Chrome (remove `--cdp-endpoint`) |
3638

.agents/skills/kane-cli/references/generate-parsing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Shared with `run` (NOT generate-specific — don't treat as part of the generate
3636

3737
| `type` | Fields | Meaning |
3838
|---|---|---|
39+
| `project_folder_auto_defaulted` | resolved project + folder (id, name) | Run-startup gate auto-resolved a project/folder when none was configured (or the cached one was stale/invalid). Fires before `generate_start`. Translate to plain language (see `references/test-manager.md`). |
3940
| `error` | `message` | A failure occurred; pair with the exit code to decide retry vs abort. |
4041
| `update_available` | `current`, `latest`, `severity` | A newer kane-cli exists. Informational; emitted before `generate_start`. |
4142

.agents/skills/kane-cli/references/generate.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ There is **no interactive session**. Each invocation runs exactly one generation
3333
| `--project <id>` / `--folder <id>` | Test Manager project / folder |
3434
| `--env prod\|stage` · `--username` / `--access-key` | Environment / auth (same as `run`) |
3535

36+
If neither `--project`/`--folder` nor a saved project/folder is set when generation starts, kane-cli auto-resolves one headlessly and emits a `project_folder_auto_defaulted` event before `generate_start`. Translate it to a one-line note for the user — full handling lives in `references/test-manager.md`.
37+
3638
## Presenting a result (adaptive)
3739

3840
The terminal data carries the full scenarios + cases. **Present it based on size**:

.agents/skills/kane-cli/references/parsing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ These are **untyped** — they have no `type` field. Do **not** key on `event.ty
2828

2929
| Event (`type` field) | Key Fields | Purpose |
3030
|-------|-----------|---------|
31+
| `project_folder_auto_defaulted` | resolved project + folder (id, name) | Run-startup gate auto-resolved a project/folder when none was configured (or the cached one was stale/invalid). Fires before any progress event on `run` / `testmd run` / `generate`. Translate to plain language (see `references/test-manager.md`). |
3132
| `bifurcation` | `flows[]`, `count` | Agent split objective into sub-flows |
3233
| `child_agent_start` | `child_id`, `objective`, `parent_step` | Child agent spawned |
3334
| `child_agent_end` | `child_id`, `success`, `steps_taken`, `summary` | Child agent finished |

.agents/skills/kane-cli/references/setup-and-config.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ kane-cli config project <project-id> # TMS project ID (or interactive p
9393
kane-cli config folder <folder-id> # TMS folder ID (or interactive picker in TTY)
9494
```
9595

96+
> **Project / folder management — Read `references/test-manager.md`** for the full agent surface: `kane-cli projects list|create` and `kane-cli folders list|create` (with `--search` / `--limit` / `--offset` / `--description`), the NDJSON wire shape for `--agent` callers, and the `project_folder_auto_defaulted` event the run-startup gate emits when nothing is configured.
97+
9698
### Feedback
9799

98100
Submit feedback on a completed test run:
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
<!-- Read this for the Test Manager (TMS) agent surface — what gets uploaded, where the run lands, the `projects` / `folders` subcommands and their NDJSON wire shape, and the run-startup auto-default event. Non-TTY surface only; the human config flow / interactive picker lives in the public user guide. -->
2+
3+
# Test Manager Reference — Agent Surface
4+
5+
Every kane-cli session uploads to a TestmuAI **Test Manager (TMS)** test case. The session lands inside a **project** (required) and optionally a **folder** inside that project. This page is the agent-facing surface for everything that touches TMS: where the run ends up, how to browse and create projects/folders programmatically, and the event the run-startup gate emits when nothing is configured.
6+
7+
Field names below are for parsing only — translate to plain language for the user, per the §5 rule in `SKILL.md`.
8+
9+
---
10+
11+
## 1. Where a run lands
12+
13+
After a successful upload, the terminal `run_end` event (`testmd_done` for `testmd run`) carries the dashboard link:
14+
15+
```json
16+
{"type":"run_end","status":"passed", "test_url":"https://test-manager.lambdatest.com/projects/<id>/test-cases/<id>", ...}
17+
```
18+
19+
For `testmd run`, the `test_md_summary` / `test_md_done` events also carry a `share_url` — a 7-day, no-login link suitable for CI artifacts.
20+
21+
Surface `test_url` (and `share_url` when present) as a "View in Test Manager" line per the §1.4 results table in `SKILL.md`. Never paste raw URLs into the middle of a summary — they belong in the results table.
22+
23+
---
24+
25+
## 2. Projects & folders — selecting where uploads land
26+
27+
Two ways an agent influences placement:
28+
29+
- **Programmatically**, via the `projects` / `folders` subcommands (§3 + §4) — list, search, create, then persist with `kane-cli config project <id>` / `kane-cli config folder <id>`.
30+
- **Passively**, by observing the `project_folder_auto_defaulted` event the run-startup gate emits when nothing is configured (§5).
31+
32+
In a non-TTY context (CI, pipes, every `--agent` caller), the no-arg form of `config project` / `config folder` will not prompt — always pass an explicit `<id>`. The interactive picker is the human-facing path and is documented in the user guide.
33+
34+
---
35+
36+
## 3. Listing — `projects list` / `folders list`
37+
38+
```bash
39+
kane-cli projects list [--search <q>] [--limit <n>] [--offset <n>] --agent
40+
kane-cli folders list [--search <q>] [--limit <n>] [--offset <n>] --agent
41+
```
42+
43+
| Flag | Purpose |
44+
|---|---|
45+
| `--search <q>` | Filter by name (substring match). |
46+
| `--limit <n>` | Page size. Default is small (~10). Very large values are capped. |
47+
| `--offset <n>` | Skip the first N rows. |
48+
| `--agent` | Force NDJSON. Auto-on when stdout is piped/redirected, but pass it explicitly anyway. |
49+
50+
`folders list` operates inside the currently configured project. If none is configured, list projects first or rely on §5.
51+
52+
### Wire shape
53+
54+
Each result line:
55+
56+
```json
57+
{"id":"01J69X773TSY9TCHZY4VAT9VBH","name":"KaneAI Generated"}
58+
```
59+
60+
Just `id` + `name`. The terminal line on every page:
61+
62+
```json
63+
{"_meta":"page","limit":10,"offset":0,"returned":10,"has_more":true}
64+
```
65+
66+
| Field | Meaning |
67+
|---|---|
68+
| `_meta: "page"` | Discriminator — distinguishes pagination metadata from a result row. Skip when collecting results. |
69+
| `limit` / `offset` | Echoed from the request. |
70+
| `returned` | Number of result rows on this page (≤ `limit`). |
71+
| `has_more` | `true` if another page exists. There is no `total` — only a "more remaining" signal, so don't promise an exact count to the user. |
72+
73+
### Pagination idiom
74+
75+
```bash
76+
offset=0; limit=10
77+
while :; do
78+
page=$(kane-cli projects list --limit "$limit" --offset "$offset" --agent)
79+
echo "$page" | jq -c 'select(._meta != "page")' # result rows
80+
more=$(echo "$page" | jq -r 'select(._meta == "page") | .has_more')
81+
[ "$more" = "true" ] || break
82+
offset=$((offset + limit))
83+
done
84+
```
85+
86+
Same pattern for `folders list`.
87+
88+
---
89+
90+
## 4. Creating — `projects create` / `folders create`
91+
92+
```bash
93+
kane-cli projects create "<name>" [--description "<text>"] --agent
94+
kane-cli folders create "<name>" [--description "<text>"] --agent
95+
```
96+
97+
NDJSON: one line describing the new id + name. `folders create` files the folder inside the currently configured project.
98+
99+
To use the result for subsequent runs, persist with `kane-cli config project <id>` / `kane-cli config folder <id>` — non-interactive when called with an explicit `<id>`.
100+
101+
---
102+
103+
## 5. The run-startup auto-default event
104+
105+
`kane-cli run`, `kane-cli testmd run`, and `kane-cli generate` all validate the cached project/folder before launching anything. Three outcomes:
106+
107+
1. **Cached project/folder still valid** → run proceeds. No event.
108+
2. **Nothing configured, or the cached IDs are gone / inaccessible** → kane-cli resolves a sensible project/folder headlessly (find-or-create), then emits a typed event before the run starts:
109+
110+
```
111+
{"type": "project_folder_auto_defaulted", ...}
112+
```
113+
114+
The event carries the resolved project + folder so the caller knows what was picked. Translate it for the human user — for example:
115+
116+
> kane-cli auto-selected project **<name>** / folder **<name>** for this run.
117+
118+
Don't surface raw field names.
119+
120+
3. **No usable credentials in a non-TTY context** → exit code `2` with an auth/setup error.
121+
122+
### Self-healing for stale IDs
123+
124+
If a previously-configured project/folder becomes unusable (deleted, renamed, access revoked, or a typo was saved as the ID), TMS returns a `4xx` for the validation call and the gate treats both as **missing** — it clears the stale value and re-resolves via auto-default. The run is not aborted for this.
125+
126+
Transient validation failures (`5xx`, network, timeout) are treated as **error** and the gate fails open with the cached IDs so brief upstream hiccups don't block a run.
127+
128+
### When you see the event
129+
130+
Surface it as a one-line note, then continue parsing the run normally. If the user wants their runs in a different project, point them at the user guide's project/folder configuration page — the public `kane-cli config project [<id>]` / `kane-cli config folder [<id>]` commands cover the human flow.
131+
132+
---
133+
134+
## 6. Exit codes (TMS subcommands only)
135+
136+
| Code | Meaning |
137+
|---|---|
138+
| 0 | OK |
139+
| 2 | Auth/setup error (missing or invalid credentials) or unknown subcommand |
140+
141+
Other codes are run-specific (`run` / `testmd run` / `generate`) and don't apply to `projects` / `folders`.

.agents/skills/kane-cli/references/testmd.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ Run it:
4444
kane-cli testmd run amazon_test.md --agent
4545
```
4646

47+
> Before the test launches, kane-cli validates the cached project/folder. If none is configured (or the cached one is stale/invalid), the run-startup gate auto-defaults a project/folder and emits a `project_folder_auto_defaulted` event on stdout. Surface it as a one-line note for the user and keep parsing — full handling lives in `references/test-manager.md`.
48+
4749
## File format
4850

4951
Four parts in order:

.claude/skills/kane-cli/SKILL.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Progress events have `step`/`status`/`remark` fields and **no `type` field**.
5555
#### What to skip
5656

5757
- Individual passing steps — fold them into the overall progress line
58-
- Internal field names (`step`, `status`, `remark`, `run_end`, `final_state`, `bifurcation`, `session_dir`, etc.) — translate to plain language
58+
- Internal field names (`step`, `status`, `remark`, `run_end`, `final_state`, `bifurcation`, `session_dir`, `project_folder_auto_defaulted`, etc.) — translate to plain language. A `project_folder_auto_defaulted` event fires before progress when the run-startup gate auto-resolves a project/folder; surface it as one line ("kane-cli auto-selected project X / folder Y for this run") and move on. Details: `references/test-manager.md`.
5959

6060
#### Example output for a 15-step run with one failure
6161

@@ -138,6 +138,7 @@ When the user's request involves a browser — or writing test cases:
138138
- Multiple independent browser tasks → Read `references/parallel.md` first
139139
- Debug a failed run → Read `references/debug.md`
140140
- Configure kane-cli or check directory layout → Read `references/setup-and-config.md`
141+
- Browse / create / pick a Test Manager project or folder, or interpret the auto-default event → Read `references/test-manager.md`
141142
- You need the full NDJSON event schema (rare — §5's summary covers 90% of cases) → Read `references/parsing.md`
142143

143144
**Every run, always:** follow §1 above.
@@ -150,6 +151,8 @@ When the user's request involves a browser — or writing test cases:
150151
kane-cli run "<objective>" --agent [options]
151152
```
152153

154+
> The `run` subcommand is **mandatory**. `kane-cli "<objective>"` (no `run`) does **not** work — unknown first tokens exit `2` with a "did you mean" suggestion. Same rule applies to `kane-cli testmd run …` and `kane-cli generate …`.
155+
153156
`--agent` is mandatory — it switches stdout to NDJSON. Most-used flags:
154157

155158
| Flag | Purpose | Default |
@@ -233,7 +236,7 @@ Action → extraction → assertion in one objective:
233236
Stdout is NDJSON, one event per line. There are two shapes:
234237

235238
- **Progress events** (most events) have `step` (1-based), `status` (`passed`/`failed`), `remark` — and **no `type` field**.
236-
- **Typed events** have a `type` field: `bifurcation`, `child_agent_start`, `child_agent_end`, `ask_user`, `error`, and finally `run_end`.
239+
- **Typed events** have a `type` field: `project_folder_auto_defaulted` (run-startup gate, fires before any progress when no project/folder is configured), `bifurcation`, `child_agent_start`, `child_agent_end`, `ask_user`, `error`, and finally `run_end`.
237240

238241
Parsing strategy:
239242

@@ -300,4 +303,5 @@ Internal event/field names (`generate_snapshot`, `request_id`, …) are for pars
300303
| Multiple independent browser tasks | `references/parallel.md` |
301304
| Need full NDJSON event schema (`run`) | `references/parsing.md` |
302305
| Need the `generate` NDJSON event schema | `references/generate-parsing.md` |
306+
| Browse / create projects or folders, or parse the auto-default event | `references/test-manager.md` |
303307
| First-time install, auth, or full config | `references/setup-and-config.md` |

.claude/skills/kane-cli/references/debug.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ The `run_end` event provides `session_dir` and `run_dir` paths. Use those direct
3030
| 🔄 Agent repeats same action | Stuck in a loop / page didn't change | Rephrase objective, add explicit wait or assertion |
3131
| 🎯 Agent clicks wrong element | Ambiguous UI, multiple similar elements | Be more specific: "click the **blue** 'Submit' button in the **checkout form**" |
3232
| 👁️ Agent says done but didn't finish | Objective too vague | Add explicit assertions: "assert the confirmation page shows order number" |
33-
| 💀 Exit code 2, no steps | Auth or Chrome failure | Check `kane-cli whoami`, verify Chrome is available |
33+
| 💀 Exit code 2, no steps | Auth, TMS credential exchange, or Chrome failure | Check `kane-cli whoami`, verify Chrome is available |
34+
| ❓ Exit code 2 with "did you mean …" | Bare-objective shortcut — agent ran `kane-cli "<objective>"` without the `run` subcommand | Re-invoke as `kane-cli run "<objective>" --agent` (same rule for `testmd run` / `generate`) |
35+
| 📤 Upload silently fails after configuring a project/folder by hand | Saved ID is invalid (typo, deleted, no access) | No action needed — the next run detects the 4xx and auto-defaults a working project/folder. To rebind manually: `kane-cli config project` (TTY picker) or `kane-cli projects list``kane-cli config project <id>` (see `references/test-manager.md`) |
3436
| ⏱️ Exit code 3 | Timeout or cancelled | Increase `--timeout` or `--max-steps`, or split into smaller objectives |
3537
| 🚫 "CDP endpoint not reachable" | Chrome not running | Let kane-cli manage Chrome (remove `--cdp-endpoint`) |
3638

0 commit comments

Comments
 (0)