Repository navigation
Skill 0.2.0: shared projects, exploration, and the agent contract - #217
Merged
shravan-lambdatest merged 12 commits intoOct 24, 2026
Merged
shravan-lambdatest merged 12 commits into
shravan-lambdatest merged 12 commits into
Conversation
…uide pages for shared projects The skill now leads with where the work goes: in agent mode a folder that isn't set up yet goes local unless it's linked to a team's Test Manager project with --project. New references: shared-projects.md (find or make a project and get its id, link a folder, the journey with a one-question checkpoint and approximate costs, where tests, cases, coverage and variables live, a teammate joining, bringing the team's tests into a folder, what a linked folder refuses, kane-cli run and tests from two projects), agent-contract.md (agent flags, stream shapes, events, next, exit codes, and each refusal code with the command that recovers it) and explore.md. Linked-folder sections in assurance, testrun, cards, first-run and ready-check (getting or updating the skill with kane-cli install skill). The preflight prints a link section with the linked project's name and id. The installer is 0.2.0 and the three skill copies are identical. The user guide gains a shared-projects page and shared-project sections across its assurance, testrun, Test Manager, variables, agents, getting-started and troubleshooting pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
In a folder that isn't linked, context pull with no flags stays the location pull it always was; in a new folder its message is "no context store here", and `--project <id>` is how to join and bring the project's tests. `--use-case` or `--overwrite` without `--project` there refuses PULL_FLAGS_LINKED_ONLY. The pull's events and refusals carry verb "sync", and refusals at the folder's entry carry "pull". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
…n, not asked for again The pull marks a variable it can't classify as secret. When the person has already given its value in their own words, it isn't a secret to them: the agent writes it into the variables file without printing it, and goes on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
…d say why If projects list is refused, or lists no project the person can work in and they don't want a new one, the agent works in a local store and tells the person why in plain words. It tries the shared path once, never in a loop. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
…nst the code, real headless runs) Six reviews (Codex and Claude, each over the new shared-project files, the changed references and the unchanged ones) checked every claim against kane-cli's code; each finding was verified before it was folded. Two real first runs (Codex and Claude, headless, in linked folders) passed with this skill. - A linked folder's pull: `kane-cli context pull` brings the project's tests there; only sync, push, clone and a location pull are refused. A teammate joins with `context pull --project` where it exists. - A folder with its own `.context/` keeps working locally; the shared path is for a folder without one. - Exploration: the default policy is mutating, so the agent asks the person before a run that may change data; `explore view` takes `--exploration-id` and runs in the person's terminal; `explore list --all` finds finished explorations; the context sync outcomes. - Agent contract: save's first events, PROJECT_BUSY has no `next`, redesign needs `--force`, the TEST_CASE_* fixes, a pull that removes its own link, PULL_LOCATION_LINKED, PROJECT_MISMATCH's two endings, card_verdict's design offer. - Coverage: the computing state, run coverage only when written, use-cases with no criteria, `--rollup` no longer changes the figure, evolve's source_changed skip. - Test runs: credits come from `kane-cli balance` before and after (the stream carries none), first runs end with testrun_authored_member_end, the --remote case check, fail-fast and cancel behaviour. - Older references corrected to today's code: testmd delete needs --yes, imports, lock conflicts, exit codes, replay cost, the evidence merge, analyzer results, the parsing table; internal names removed. - Preflight reads the link as JSON (node), prints `unreadable` for a link kane-cli can't read, and lists `link` in its header; tests cover both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
…diff) A Codex read of the fold's 272 changed lines against kane-cli's code found 16 to tighten, each confirmed before the change: a folder with both `.context/` and a link is refused BOTH_STORES; a local test run's stream carries no credits total; the --from-context refusal ends on its error; testrun_done can be "refused"; a remote crash is internal_error, exit 1; PROJECT_BUSY's wait-only remedies; cover's pull `next` condition; the saved target applies to `kane-cli run`, a saved test follows its own target; only unchanged recorded steps replay; designed tests run on their case only directly in `.testmuai/tests/`; update_available also comes from generate; smaller wording. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
The coverage-not-ready line, the ready card's results row and the first-run browser choice, in the signed wording; the exploration question was signed as written. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
explore.md now covers what a person exploring an app needs: - the project is always passed with --project, since explore doesn't read a folder's link; a project nobody has shared yet is shared by the exploration's first design job; - apps behind a login (--deps with --allow-domain, variables with real values); - --allow-post, scope and work limits (--max-leases limits the explorer, not the design jobs); - a private app through a tunnel, and a run from this machine, with its exits; - run states, stop (and when it hasn't stopped yet), run again, and another site (whose tests then share the project); - what the design jobs did, context off/on, and the map's feedback; - getting the tests into a linked folder (`context pull`) or a fresh one (`context pull --project`), then their first runs. Reviewed against kane-cli's code by Codex and Claude; every finding verified before it was folded. The user guide's exploration subsection gains the fresh-folder pull and the project rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
…nnel w-EM's signed wording for the read_only setup note, the permission ask and the another-site note. A new subsection explains how the cloud's browsers reach an app on localhost or a private network: the person downloads LT, starts it in their own terminal as the same LambdaTest user (`--env ht-prod` is required), then the run passes `--tunnel-name`; the tunnel and the machine stay up, and a tunnel needs cloud browsers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
A re-run keeps the exploration's URL but not its tunnel; step 2 says what $LT_USERNAME and $LT_ACCESS_KEY are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
… options docs/user-guide/exploration.md, for a person at a terminal: - the first run and what the terminal shows, and where to find the exploration id; - why every run takes its options again; - whether it can change data; an app behind a login (and where values go); - a private app through an LT tunnel; keeping a run in bounds; - the map and what you can do in it; stopping, re-running, another site; - the tests it designs and getting them into a folder; - exit codes and troubleshooting. Linked from the index, Getting started, Shared projects and Troubleshooting. Checked against kane-cli's code by Codex and Claude, then a second Codex pass. The skill's explore.md gains the same findings: - a run keeps only the URL; - the `--allow-post` host rule; - variables replace same-named ones and their name rules; - an empty secret or a failed sign-in stops the run; - the built-in run limits; `--max-parallel` defaults to 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
--deps always needs --allow-domain (the URL's own host too when it signs in there); one project per URL beside the login and tunnel examples; the Chrome line links the launch troubleshooting; the detach and end-of-run lines; mkdir before the LT move. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
kane-cli 0.10.0 lets a team work in one Test Manager project: folders are linked to a shared project, and what one person saves (use-cases, tests, Test Manager cases, coverage) the whole team sees. Skill 0.1.3 never mentions it. An agent following it sets up a local store, never reaches the team's project, and can't recover from the refusals a linked folder gives. This release teaches the shared-project path and the agent contract behind it.
What changes for agents
--project <id>. The decision tree now asks where the work goes before any assurance command.shared-projects.mdcovers:kane-cli projects list|create --agent) and getting a folder's project id;context ingest|extract --project <id>);kane-cli context pullwhere the release has it, with a check via--help, else copying only the test files and their recordings;kane-cli runin a linked folder, and "tests from two projects".agent-contract.md: which agent flag each command takes, the stream shapes (first and last line per command), every event in a linked folder, how to usenext: [{cmd, why}], exit codes, and each refusal code with what to do and the command to run.explore.md, exploration together with assurance:--project, since explore doesn't read a folder's link; aproject nobody has shared yet is shared by its first design job;
mutating);--deps,--allow-domain, variables);kane-cli context pull) or a fresh one (kane-cli context pull --project <id>), then their first runs.assurance.md,testrun.md(designed tests run on their scenario's Test Manager case: first run, replay, heal, counting, the case-stop codes),cards.md(a coverage card),first-run.md,ready-check.md(getting or updating the skill withkane-cli install skill [version]; corrected sign-in and balance rows) and four short notes elsewhere.preflight.shandpreflight.ps1print a## linksection with the linked project's name and id,none, orunreadablewhen kane-cli couldn't read the link either.--max-stepsdefaults to 50; the dry run applies totestrun run; redesigning a use-case that is still proposed needs--force --allow-unreviewed;test-manager.mdlists exit 1.verified before it was fixed. Outside shared projects, these references now match what kane-cli does today:
testmd deleteneeds--yes;readonly;--rollupignored;--limitis 1-200;What changes for people
New user-guide pages:
docs/user-guide/assurance/shared-projects.md: working with your team in a Test Manager project.docs/user-guide/exploration.md: map your app and design tests from it. First run, whether it can change your data, an app behind a login, a private app through an LT tunnel, keeping a run in bounds, the map, stopping and re-running, the tests it designs and getting them into a folder, exit codes, troubleshooting. Linked from the guide's index, Getting started, Shared projects and Troubleshooting. Shared-project sections are added to the getting-started, agents, assurance (overview, context, design, coverage, sharing, maintain), testrun, Test Manager, variables, configuration and troubleshooting pages, and to the guide's index.Version
skill-installer/package.jsongoes to 0.2.0. Its minimum kane-cli is 0.10.0. The three skill copies (skill-installer/skills/,.claude/skills/kane-cli/,.agents/skills/kane-cli/) are byte-identical.Text that depends on a kane-cli release
Some lines in the user-guide pages need a later kane-cli release:
kane-cli context pullin a linked folder;Each of these lines carries a
<!-- release: … -->comment, so it can be kept or removed when that release is cut. The skill itself checkskane-cli context pull --helpbefore using the pull.Tests
skill-installer/test/preflight.test.mjsandpreflight-ps1.test.mjsexpect the newlinksection in the section order, and coverlinkin a plain folder, a linked one, and a link file kane-cli can't read (unreadable).npm testlocally: 80 tests, 75 pass, 0 fail, 5 skipped (the PowerShell ones, Windows only); the skill installer tests workflow passes on Ubuntu, macOS and Windows with Node 18 and 22.Two agents, Codex and Claude, each did a real first run of a designed test in a linked folder with this skill, headless, and both passed.
🤖 Generated with Claude Code
https://claude.ai/code/session_01CWzoM9tH5Wua2MvuDasu94