@vatio-ai/skills 1.5.0 → 1.7.0

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.
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "name": "vatio",
7
7
  "source": "./",
8
- "description": "Build a Vatio agent from your coding agent, then fix what supervisors flag and prove it with evals."
8
+ "description": "Build a Vatio agent from your coding agent, then fix what supervisors report and prove it with evals."
9
9
  }
10
10
  ]
11
11
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vatio",
3
- "description": "Build a Vatio agent from your coding agent, then fix what supervisors flag and prove it with evals.",
4
- "version": "1.5.0",
3
+ "description": "Build a Vatio agent from your coding agent, then fix what supervisors report and prove it with evals.",
4
+ "version": "1.7.0",
5
5
  "author": { "name": "Vatio", "url": "https://vatio.ai" },
6
6
  "homepage": "https://vatio.ai/docs",
7
7
  "repository": "https://github.com/vatio-ai/skills",
package/README.md CHANGED
@@ -5,7 +5,7 @@ Skills for the coding agent working on your [Vatio](https://vatio.ai) agent.
5
5
  | Skill | What it does |
6
6
  |---|---|
7
7
  | `vatio-init` | The first one in a project: looks at what is already there (a `vatio.yml` anywhere in the repository, the app's code) and recommends from it. With no agent yet, builds one: asks the owner what the code does not answer, writes `vatio.yml`, pushes it and hands over a link to try. With one, gets a developer who joined the project up to speed |
8
- | `vatio-improve` | Works through the replies your supervisors flagged in the inbox: reads `vatio flags`, fixes each cause on a branch, proves it with `vatio eval`, and opens a pull request |
8
+ | `vatio-improve` | Takes every reply your supervisors reported in the inbox in one session: reads `vatio flags`, fixes each cause, `vatio push`, proves it with `vatio eval` (in the background in Claude Code) and publishes with `vatio publish` |
9
9
  | `vatio-share-session` | Sends the Claude Code session to the Vatio team when you ask it to, or offers to when the other two finish (send it, not now, or don't ask again), after showing you what goes (images left out, anything that looks like a secret redacted), with your feedback if you want to add some |
10
10
 
11
11
  The skills are short on purpose. They tell your coding agent when to reach for
@@ -38,6 +38,10 @@ Or in Claude Code, as a plugin:
38
38
  /plugin install vatio@vatio
39
39
  ```
40
40
 
41
+ Claude Code does not update plugins from other people's marketplaces on its own:
42
+ turn it on once in `/plugin` → **Marketplaces** → **vatio** → **Enable
43
+ auto-update**, or run `claude plugin update vatio@vatio`.
44
+
41
45
  Your agent then uses them on its own when you ask it to build, improve or fix
42
46
  a Vatio agent, or to send the session to Vatio, or you can call them by name:
43
47
  `/vatio-init`, `/vatio-improve` and `/vatio-share-session`, or
package/bin/install.mjs CHANGED
@@ -4,7 +4,7 @@
4
4
  // .agents/skills/ Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, Cline, Amp
5
5
  // .claude/skills/ Claude Code, which does not read .agents/
6
6
  // Running it again overwrites the copies with this version's.
7
- import { cpSync, existsSync, readFileSync, readdirSync, rmSync } from "node:fs";
7
+ import { cpSync, existsSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
8
8
  import { dirname, join, relative } from "node:path";
9
9
  import { fileURLToPath } from "node:url";
10
10
 
@@ -35,6 +35,10 @@ if (!existsSync(root)) {
35
35
  }
36
36
 
37
37
  const source = join(dirname(fileURLToPath(import.meta.url)), "..", "skills");
38
+ // Left next to each copy, so `vatio flags` can tell a project whose copies are
39
+ // older than the published skills (cli/lib/skills-hint.mjs).
40
+ const VERSION_FILE = ".vatio-skills-version";
41
+ const { version } = JSON.parse(readFileSync(join(source, "..", "package.json"), "utf8"));
38
42
  // Skills this package used to ship under another name. Left in place, the old
39
43
  // copy would answer the same requests as the new one.
40
44
  const RENAMED = { "vatio-new": "vatio-init" };
@@ -46,6 +50,7 @@ for (const target of [".agents/skills", ".claude/skills"]) {
46
50
  for (const skill of skills) {
47
51
  const dest = join(root, target, skill);
48
52
  cpSync(join(source, skill), dest, { recursive: true, force: true });
53
+ writeFileSync(join(dest, VERSION_FILE), `${version}\n`);
49
54
  console.log(` ${relative(process.cwd(), join(dest, "SKILL.md")) || dest}`);
50
55
  }
51
56
  for (const [old, current] of Object.entries(RENAMED)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vatio-ai/skills",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Agent skills for building and improving a Vatio agent from your coding agent: Claude Code, Codex, Cursor, Gemini CLI, Copilot and any agent that reads SKILL.md",
5
5
  "keywords": [
6
6
  "vatio",
@@ -1,44 +1,44 @@
1
1
  ---
2
2
  name: vatio-improve
3
- description: Improve a Vatio agent from what its supervisors flagged. Use when asked to improve, fix or debug a Vatio agent, to work through flagged replies or wrong answers in production, or when a GitHub issue labelled vatio-flags arrives. Works in any directory with a vatio.yml.
3
+ description: Improve a Vatio agent from what its supervisors reported. Use when asked to improve, fix or debug a Vatio agent, to work through reported or flagged replies or wrong answers in production, or when the daily Vatio email says there are open reports. Works in any directory with a vatio.yml.
4
4
  ---
5
5
 
6
- # Improve a Vatio agent from its flags
6
+ # Improve a Vatio agent from its reports
7
7
 
8
- Supervisors flag wrong replies in the Vatio inbox and write what should have
9
- happened: a different answer, an action, or a tool the agent should have used
10
- or does not have. Vatio keeps the instructions for working them on the
11
- platform, so they are never out of date here. Start by reading them:
8
+ Supervisors report wrong replies in the Vatio inbox and write what it should
9
+ have said: a different answer, an action, or a tool the agent should have
10
+ used or does not have. One session takes every open report. Vatio keeps the
11
+ instructions for working them on the platform, so they are never out of date
12
+ here. Start by reading them:
12
13
 
13
14
  ```bash
14
15
  vatio flags
15
16
  ```
16
17
 
17
18
  Run it from the directory with the workspace's `vatio.yml` (or below it). It
18
- prints every open flag — the conversation, each tool call with what the
19
+ prints every open report — the conversation, each tool call with what the
19
20
  backend answered, and the supervisor's note — with how to work them at the
20
21
  top. Follow those instructions; they take precedence over anything below.
21
22
 
22
23
  In short:
23
24
 
24
- 1. Group the flags by cause, and fix each cause where it lives: `vatio.yml`,
25
- a knowledge entry, a tool, or the backend a tool calls. `vatio tools --env
26
- live` shows each tool's error rate, timeouts and latency across every
27
- conversation, and the calls that failed with what the backend answered: a
28
- failing tool rarely gets flagged, because the agent apologizes and moves
25
+ 1. Group the reports by cause, and fix each cause where it lives:
26
+ `vatio.yml`, a knowledge entry, a tool, or the developer's backend a tool
27
+ calls. `vatio tools --env live` shows each tool's error rate, timeouts and
28
+ latency, and the calls that failed with what the backend answered: a
29
+ failing tool rarely gets reported, because the agent apologizes and moves
29
30
  on. Fix those too.
30
- 2. Work on a git branch. `vatio push` deploys it to the branch's own
31
- environment, never to live.
32
- 3. Prove it with `vatio eval`: every flag made on live, or before the first publish, is an eval case, replayed against
33
- the branch and judged. The report counts the open flags apart from the
34
- regression cases. A fix is done when its flags pass and nothing that
35
- passed on live now fails.
36
- 4. Open a pull request with what you changed and the eval result. Name flags
37
- by id (`F-7K2QX`), and report the open flags and the
38
- regression cases as two counts, never one total. With no GitHub
39
- repository connected, `vatio propose --env <branch> --title "…"
40
- --summary-file why.md` instead: the workspace's owner accepts it from the
41
- inbox, which publishes it. Never `vatio publish` it yourself.
31
+ 2. `vatio push`. It updates preview and runs no tests. No branch or
32
+ environment to set up: preview is the one.
33
+ 3. `vatio eval` tests every report against preview. It can take several
34
+ minutes, so in Claude Code start it with the Bash tool's
35
+ `run_in_background` and read its report when it finishes. Iterate (fix,
36
+ push, eval) until the reports pass and nothing that passes on live fails.
37
+ Name reports by id (`F-7K2QX`).
38
+ 4. Show the developer what passes now, and `vatio publish` once they agree:
39
+ it changes what visitors get. If it is refused, follow its message: it
40
+ says what to run. Never pass `--force` unless the developer explicitly
41
+ asks for it.
42
42
  5. If the digest, an error or the docs left you guessing, say so:
43
43
  `vatio feedback "what you were doing and what was missing"`.
44
44
  6. Last, in Claude Code, offer to send this session to the Vatio team, as
@@ -56,7 +56,7 @@ you recommend, and ask them to confirm.
56
56
  `vatio.yml` (what it is for, its tools, its knowledge, when it hands off)
57
57
  and recommend from what you see:
58
58
  - the folder differs from live: say so first, the repository may be behind;
59
- - open flags in `vatio flags`: work them with the `vatio-improve` skill;
59
+ - open reports in `vatio flags`: work them with the `vatio-improve` skill;
60
60
  - tool calls failing in `vatio tools`: the fix is in the backend they call;
61
61
  - `workspace_forbidden`: they are not in the workspace yet, and the owner
62
62
  invites them from **Team** in the console.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: vatio-share-session
3
+ allowed-tools: AskUserQuestion
3
4
  description: Send this coding session to the Vatio team, so they can see where building or improving a Vatio agent got stuck. Use when the user asks to share, send or report this session (or "the conversation", "what we did") to Vatio, when the Vatio team asked them for it, when Vatio itself got in the way and they want the team to see exactly how, or when vatio-init or vatio-improve finish and say to offer it.
4
5
  ---
5
6
 
@@ -35,20 +36,27 @@ It is sent in one of two ways: the user asked for it, or you offer it because
35
36
  3. Ask whether to send it, once. It is their conversation: never send it on
36
37
  your own, even when the task seems to call for it.
37
38
 
38
- When you are offering it, ask with three answers (in Claude Code, as a
39
- multiple-choice question), for example: "Do you want to send this session
39
+ When you are offering it, ask with the **AskUserQuestion** tool, Claude
40
+ Code's own question, not in a message. One question, in the user's
41
+ language, header `Vatio`, for example: "Do you want to send this session
40
42
  to the Vatio team, so they can see where Vatio got in the way and improve
41
- it?"
42
-
43
- - **Send it**
44
- - **Not now**: do nothing more. It will not be offered again for a week.
45
- - **Don't ask again**: run
46
- `npx @vatio-ai/cli@latest share-session --never`.
47
-
48
- In the same question, suggest they add feedback: what got in the way, what
49
- they expected Vatio to do, or anything else they want the team to know.
50
- It is optional — the session is what matters, and it goes fine on its own.
51
- A no is a fine answer: do not insist.
43
+ it?", with these options:
44
+
45
+ - **Send it** — "The whole conversation, as shown above."
46
+ - **Send it with a comment** — "You say what got in the way, what you
47
+ expected, or anything else for the team."
48
+ - **Not now** — "It won't be offered again for a week."
49
+ - **Don't ask again** — "It won't be offered again."
50
+
51
+ **Send it with a comment**: ask for the comment in one plain message, then
52
+ send. A comment they type in the question's own text field instead (its
53
+ "Other" answer, or a note on an option) is their feedback too, unless it
54
+ says no. **Not now**: do nothing more. **Don't ask again**: run
55
+ `npx @vatio-ai/cli@latest share-session --never`. A no is a fine answer:
56
+ do not insist.
57
+
58
+ When the user asked for it themselves, just confirm in a message and
59
+ take any feedback they give.
52
60
 
53
61
  4. If they say to send it, send it. With their feedback, in their words, as
54
62
  they gave it: