Skip to content

Add the Rook coding-agent skill - #18

Open
samyakLambda wants to merge 21 commits into
LambdaTest:mainfrom
samyakLambda:feat/agent-skill
Open

Add the Rook coding-agent skill#18
samyakLambda wants to merge 21 commits into
LambdaTest:mainfrom
samyakLambda:feat/agent-skill

Conversation

@samyakLambda

@samyakLambda samyakLambda commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Add a general Rook coding-agent skill for setup, scoped testing and evidence-based reporting. One canonical bundle supplies Claude Code and Codex mirrors, with focused references for profiles, scenarios, MCP, CI and troubleshooting.

Use installed CLI help and validate actual output fields. Compatible minor/patch releases need no skill update; refresh guidance when commands, workflows or output contracts change materially. Target authorization, credit tracking and separate Pass/Fail/Unable to Verify results remain required.

Validation: 48 command examples pass on Rook 0.1.1 and 0.1.2; all 16 offline CI contract cases and mirror checks pass. The CI recipe accepts compatible newer versions while rejecting incomplete or malformed results. Repository CI checks the current published CLI.

Earlier guided trials on #17 completed four scenarios with one Fail from a generated regex and three Unable to Verify results from trace/JSON limits. Full live behavior on 0.1.2 was not rerun.

Companions: #19 adds the user guide; #20 adds npm installation/publication.

samyakLambda and others added 19 commits September 8, 2026 15:11
Three bash harnesses under scripts/, in the style of the install tests:
mirrors stay byte-identical to skill-installer/skills, the frontmatter is
named rook and fits the 1024-character description limit, and every rook
flag the skill names exists in `rook help` of the pinned 0.1.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
`GROUPS` was bash's read-only special array (real group ids), so the
assignment silently did nothing, `sub` was never set, and every flag was
checked as a substring of the whole `rook help <group>` output — letting
`rook profile test --what x` pass even though `--what` belongs to
`profile fix`. Rename to `GROUP_CMDS`, glob-protect the line tokenizer with
`set -f`/`set +f`, and switch both flag checks to a word-boundary match so
`--jso` or `--all` can no longer pass as a prefix of a real flag.

Refactor the per-line check into `check_line()` so a self-test
(`SKILL_FLAGS_SELFTEST=1`) can assert the exact regression against two
built-in lines before scanning the skill, and wire that env var into the
CI harness-loop step so it runs on every push. Also drop the stale comment
claiming `rook <group> <sub> --help` prints the root help — at 0.1.1 it
prints that subcommand's own help.

Bump the workflow's node-version to 22 to match rook's engines.node
(>=22).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
- mcp.md: a target's `.mcp.json` servers discovered by `explore` carry
  origin `discovered`, not `project` (`project` names the scope file
  `.testmuai/rook/mcp.json`, which rook itself writes). Only `project`
  and `discovered` origins wait for `approve`; `user` and `local` are
  used as declared.
- SKILL.md Safety: rook 0.1.1's headless run does not pause for a
  per-target write-tool confirmation. Point agents at `agent.yaml`
  under the agent's folder, whose `calls[]` entries carry `write: true`,
  and get the user's consent before the first run instead.
- SKILL.md: note that headless rook refuses any ungranted bash/fetch/MCP
  call and prints the `--allow` rule to fix it; read tools need no grant.
  Add a CI note that a fresh runner needs `project use`/`agent use` before
  `explore`.
- `profile test` calls the user's agent once and spends no rook credits —
  drop it from the costed list in SKILL.md and headless-contract.md's
  Commands table, and add its missing `[--json] [--verbose]` flags.
- headless-contract.md: `explore`, `generate`, `sync` and `profile` keep
  their text on stdout even under `--json`, matching the JSON-documents
  section above the Streams bullets. Add `profiles/` and `agents/` as the
  two sibling directories under an agent's folder that were missing from
  the on-disk layout.
- verdicts.md: name the results-table fields precisely as `totals.executed`
  and `metrics.credits` from the run's `report.yaml`, and say where the
  previous run for a diff comes from.
- scenarios.md: `--only` takes one comma-separated argument; a second,
  space-separated id is read as instruction text, not accumulated.
- README.md: add a fourth rule for AI coding agents (costed commands),
  and reformat the exit-code table to the file's compact style.

Regenerated `.claude/skills/rook` and `.agents/skills/rook` from the
canonical skill via scripts/sync-skill-mirrors.sh.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
The on-disk tree listed manifest.yaml, discovery.yaml, features.yaml and
context.md under an agent's folder. rook 0.1.1 does not write them. What it
writes there is agent.yaml, features/<feature-id>.yaml and findings.yaml,
plus the scenarios/, runs/, profiles/ and agents/ directories; each run
folder also gets an agent.yaml, features.yaml and profile.yaml snapshot.
The tree now lists those.

The README's agent section gained a fourth rule about credits in the
previous commit; its lead-in now says so.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
…fety order

Four findings from a Codex review of the branch, each verified against
rook 0.1.1 before the fix:

- consent before the first command that reaches the agent (profile add,
  profile fix, profile test), not only before run; profile test gets a
  reply-only goal
- scenarios exclude takes IDs as separate arguments; a comma-joined
  string is one unknown ID and the document still says ok: true
- report --rca --json emits no document; follow it with
  rook report <run-id> --json for the explained report
- a gate refusal on report, status or ask exits 1 with empty stdout; the
  error is the last stderr line, translated via troubleshooting.md

Mirrors re-synced; mirror and flag harnesses pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125aHyCFGXLcDNe5vrMsi6C
Distinguish refused and incomplete runs from completed evidence, gate CI on
the current run's report, and add synthetic coverage for the documented recipe.
Clarify target consent, command-specific output, credits, and saved results.

Document project installation through the skills CLI, tighten triggering,
and keep the Claude Code and Codex mirrors identical to the canonical skill.
Use behavioral evaluation findings to preserve unknown metadata and halted
counts, choose profiles from actual target configuration, and inspect
read-only verification before predicting unverifiable results.
Explain zero-agent discovery recovery and preserve both reported credits
and account balance changes without inventing a billing explanation.
Make the absence of a CLI aggregate credit-cap flag explicit.
Preserve recorded verdicts when an empty execute call array or JSON-text
raw response hides evidence from the checker.
@samyakLambda samyakLambda changed the title Add the rook skill for AI coding agents (phase 1) Add the Rook coding-agent skill Sep 9, 2026
@samyakLambda
samyakLambda marked this pull request as ready for review September 10, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant