@vatio-ai/skills 2.0.0 → 2.2.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.
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"name": "vatio",
|
|
13
13
|
"source": "./",
|
|
14
14
|
"description": "Vatio skills and MCP for Claude Code, Cursor and Codex: build and test an AI agent for the app you're building with /vatio-init, improve it daily with /vatio-improve and learn what people ask it with /vatio-analyze. Vatio holds the agent; no config files in your repo.",
|
|
15
|
-
"version": "2.
|
|
15
|
+
"version": "2.2.0",
|
|
16
16
|
"homepage": "https://vatio.ai/docs/integrations/claude-code",
|
|
17
17
|
"category": "development",
|
|
18
18
|
"keywords": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vatio",
|
|
3
3
|
"description": "Vatio skills and MCP for Claude Code, Cursor and Codex: build and test an AI agent for the app you're building with /vatio-init, improve it daily with /vatio-improve and learn what people ask it with /vatio-analyze. Vatio holds the agent; no config files in your repo.",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vatio",
|
|
7
7
|
"url": "https://vatio.ai"
|
package/README.md
CHANGED
|
@@ -11,20 +11,20 @@ Then, in Claude Code, approve the **vatio** MCP server it asks about, sign in
|
|
|
11
11
|
to Vatio, and run `/vatio-init` (in Cursor or Codex, ask it to use
|
|
12
12
|
vatio-init). It builds the agent from your project, writes its tests and puts
|
|
13
13
|
it in your app; [Vatio](https://vatio.ai) holds and runs it, with an inbox,
|
|
14
|
-
human handoff and the tests checked before every
|
|
15
|
-
files to keep in your repository: the agent lives on
|
|
16
|
-
agent changes it through the Vatio MCP.
|
|
14
|
+
human handoff and the tests checked before every change reaches your users.
|
|
15
|
+
There are no config files to keep in your repository: the agent lives on
|
|
16
|
+
Vatio and your coding agent changes it through the Vatio MCP.
|
|
17
17
|
|
|
18
18
|
After launch, report mistakes in the inbox and make `/vatio-improve` your
|
|
19
|
-
daily routine.
|
|
20
|
-
cases and your tests
|
|
21
|
-
|
|
22
|
-
newer.
|
|
19
|
+
daily routine. You approve each fix, your coding agent makes it, and Vatio
|
|
20
|
+
replays the reported cases and your tests: the fix reaches your users once
|
|
21
|
+
nothing that worked breaks. You do not need to write code yourself; you need
|
|
22
|
+
your app’s project on your computer and Node.js 20 or newer.
|
|
23
23
|
|
|
24
24
|
| Skill | What it does |
|
|
25
25
|
|---|---|
|
|
26
26
|
| `vatio-init` | The first one in a project: looks at what is already there (the workspaces your account reaches, the app's code) and recommends from it. With no agent yet, builds one through the MCP: asks the owner what the code does not answer, writes its instructions, knowledge and tools, tries it, writes its tests, puts the widget or SDK in your app and hands over a link to try. With one, gets a developer who joined the project up to speed |
|
|
27
|
-
| `vatio-improve` | Takes every reply your supervisors reported in the inbox in one session: reads `list_reports`, fixes each cause
|
|
27
|
+
| `vatio-improve` | Takes every reply your supervisors reported in the inbox in one session: reads `list_reports`, fixes each cause after your approval and proves it with `run_tests` (on Vatio's servers); the fix reaches your users once the tests that pass today pass on it |
|
|
28
28
|
| `vatio-analyze` | Reads what people talked about with the agent between two dates, from `list_conversations` (redacted by Vatio before it leaves): topics with their counts, the questions it could not answer and the words people use, in a report for writing content, FAQs or knowledge. Anyone on the workspace's team can run it, viewers included |
|
|
29
29
|
| `vatio-share-session` | Sends the coding session to the Vatio team when you ask it to, after showing you what goes (images left out, anything that looks like a secret redacted), with your feedback if you want to add some |
|
|
30
30
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vatio-ai/skills",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Vatio skills and MCP for Claude Code, Cursor and Codex: build and test an AI agent for the app you're building with /vatio-init, improve it daily with /vatio-improve and learn what people ask it with /vatio-analyze. Vatio holds the agent; no config files in your repo.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vatio",
|
|
@@ -16,10 +16,10 @@ Vatio keeps the instructions for working the reports on the platform, so they
|
|
|
16
16
|
are never out of date here. Start by reading them: `list_workspaces` for the
|
|
17
17
|
slug (or the one the app names), then `list_reports`. It returns every open
|
|
18
18
|
report (the conversation, each tool call with what the backend answered, and
|
|
19
|
-
the supervisor's note), then the tests that fail on
|
|
20
|
-
agent answers differently each time, with how to work them at
|
|
21
|
-
every test last. Follow those instructions; they take
|
|
22
|
-
anything below.
|
|
19
|
+
the supervisor's note), then the tests that fail on the newest version and
|
|
20
|
+
the ones the agent answers differently each time, with how to work them at
|
|
21
|
+
the top, and every test last. Follow those instructions; they take
|
|
22
|
+
precedence over anything below.
|
|
23
23
|
|
|
24
24
|
In short:
|
|
25
25
|
|
|
@@ -34,7 +34,9 @@ In short:
|
|
|
34
34
|
`remove_test` removes a report and its test for everyone. It is the
|
|
35
35
|
developer's call: propose it (a report Vatio caused, one that asks for
|
|
36
36
|
something the agent must not do, one whose fix is in but the tests cannot
|
|
37
|
-
reproduce) and run it only when they say so.
|
|
37
|
+
reproduce) and run it only when they say so. A report on one of the
|
|
38
|
+
team's own conversations (its Conversation row says `your team's`) is a
|
|
39
|
+
test like any other: work it the same way.
|
|
38
40
|
2. Group the reports by cause, and fix each cause where it lives:
|
|
39
41
|
`update_agent` (instructions, tools, knowledge, links),
|
|
40
42
|
`write_knowledge_entry`, `set_tool`, or the app's backend a tool calls
|
|
@@ -42,31 +44,42 @@ In short:
|
|
|
42
44
|
error rate, timeouts and latency, and the calls that failed with what the
|
|
43
45
|
backend answered: a failing tool rarely gets reported, because the agent
|
|
44
46
|
apologizes and moves on. Fix those too. After the reports come the tests
|
|
45
|
-
that fail on
|
|
46
|
-
work those too, as their sections say. Never remove a test
|
|
47
|
-
fails. Something the developer asks the agent to do that no
|
|
48
|
-
is a test first: `add_test` with `question` and `should`
|
|
49
|
-
and `get_test` with the `chat_id` it
|
|
50
|
-
now; then fix until it does.
|
|
51
|
-
3.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
that fail on the newest version and the ones the agent answers differently
|
|
48
|
+
each time: work those too, as their sections say. Never remove a test
|
|
49
|
+
because it fails. Something the developer asks the agent to do that no
|
|
50
|
+
report covers is a test first: `add_test` with `question` and `should`
|
|
51
|
+
asks it in a new conversation, and `get_test` with the `chat_id` it
|
|
52
|
+
answers with says whether it passes now; then fix until it does.
|
|
53
|
+
3. Reports come from people who talk to the agent, so show the developer
|
|
54
|
+
each fix first and change the agent (`update_agent`,
|
|
55
|
+
`write_knowledge_entry`, `set_tool`) once they agree. There is nothing to
|
|
56
|
+
publish: each change reaches the team at once (`chat_with_agent` talks to
|
|
57
|
+
it) and everyone a few minutes later, once the tests that pass today pass
|
|
58
|
+
on it. `get_agent` reads the agent whole before you change it.
|
|
59
|
+
4. `run_tests` replays every report and test against the newest version on
|
|
60
|
+
Vatio's servers and returns the run ids; `get_test_results` with each id
|
|
61
|
+
shows the report so far. It takes a few minutes: ask again until it has
|
|
62
|
+
finished. A case that did not pass names the conversation of its replay
|
|
57
63
|
(`get_conversation`). Iterate (fix, `run_tests`) until the reports pass
|
|
58
|
-
and nothing that
|
|
64
|
+
and nothing that passed before fails. A case marked "not tested (Vatio's
|
|
59
65
|
side)" says nothing about your fix: run the tests again. One not tested
|
|
60
66
|
because a tool needs a signed-in visitor replays signed in with
|
|
61
67
|
`run_tests` and a `visitor_token`
|
|
62
68
|
(https://vatio.ai/docs/authentication/tools.md#test-a-private-tool).
|
|
63
69
|
Name reports by id (`F-7K2QX`).
|
|
64
|
-
5.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
5. `get_status` says whether the fix reached everyone, in `shipping.state`:
|
|
71
|
+
`live` when everyone has it, `testing` while Vatio replays the tests that
|
|
72
|
+
pass today on it (`testing.expected_by` says until about when), and `held`
|
|
73
|
+
when one of them fails on it in every attempt. Held, the team keeps it,
|
|
74
|
+
everyone else keeps the version before, and whoever made the change gets
|
|
75
|
+
an email; `shipping.held.tests` names each test, with the `chat_id` of its
|
|
76
|
+
replay. Another change that fixes it moves it on, as does `remove_test`
|
|
77
|
+
for a test the change made obsolete (the developer's call) or a
|
|
78
|
+
`run_tests` run that passes; there is no way to force it. Once the fix
|
|
79
|
+
reaches everyone, the reports it passes are marked resolved in the inbox.
|
|
80
|
+
Tell the developer what passes now and where the change stands.
|
|
81
|
+
`rollback` undoes the last change for everyone, the team included: only
|
|
82
|
+
when they ask.
|
|
70
83
|
6. Last, tell the Vatio team how it went, with the MCP's `send_feedback`
|
|
71
84
|
(and the workspace's slug): which step of fixing the reports took the most
|
|
72
85
|
work, and why (a report that left you guessing, a test that would not
|
|
@@ -69,7 +69,8 @@ endpoints become tools, what becomes knowledge. Then:
|
|
|
69
69
|
person should take over (https://vatio.ai/docs/handoff.md). An endpoint the
|
|
70
70
|
app does not have yet is yours to write in the app. A tool that writes (an
|
|
71
71
|
order, a booking) needs a test value (`set_secret` with `tests: true`, a
|
|
72
|
-
staging API)
|
|
72
|
+
staging API), which your team's conversations and every test use, so they
|
|
73
|
+
never write to production.
|
|
73
74
|
4. **Try it** with `chat_with_agent`: a few representative conversations,
|
|
74
75
|
including one that should hand off and one that asks for something it must
|
|
75
76
|
not say. Read the tools each reply called and what the backend answered;
|
|
@@ -83,20 +84,22 @@ endpoints become tools, what becomes knowledge. Then:
|
|
|
83
84
|
answers in `chat_with_agent`'s `files`.
|
|
84
85
|
5. **Write down what it should do as tests.** For each question that
|
|
85
86
|
matters, `add_test` with `question` (what a visitor would ask) and
|
|
86
|
-
`should` (what the answer has to do). It asks it
|
|
87
|
-
at once with a `chat_id` and how many seconds to wait: add the
|
|
88
|
-
meanwhile, then `get_test` with each `chat_id` shows the test
|
|
89
|
-
it passes now (while it is still being made, it says when to
|
|
90
|
-
A reply you already have becomes one with `chat_id` or
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
`should` (what the answer has to do). It asks it in a new conversation and
|
|
88
|
+
answers at once with a `chat_id` and how many seconds to wait: add the
|
|
89
|
+
other tests meanwhile, then `get_test` with each `chat_id` shows the test
|
|
90
|
+
and whether it passes now (while it is still being made, it says when to
|
|
91
|
+
ask again). A reply you already have becomes one with `chat_id` or
|
|
92
|
+
`message_id`. Three or four is enough to start, including the hand-off and
|
|
93
|
+
something it must not say. This is the only thing that makes a later
|
|
94
|
+
change's mistake visible: Vatio replays the tests that pass today on every
|
|
95
|
+
change, and one that breaks a test reaches your team but not everyone
|
|
96
|
+
else. A workspace with no tests gets every change at once with nothing
|
|
97
|
+
checked, which is how a fix for one question quietly breaks another. Fix
|
|
98
|
+
and `add_test` again until they pass; `run_tests` then `get_test_results`
|
|
99
|
+
checks them all together.
|
|
97
100
|
6. **Put it in the app.** `get_status` returns `put_in_the_app`: the
|
|
98
|
-
publishable key and the widget's script tag
|
|
99
|
-
|
|
101
|
+
publishable key and the widget's script tag. It is one key for
|
|
102
|
+
development and production alike, and works from any site or app.
|
|
100
103
|
Add the widget (the tag, or `@vatio-ai/widget`) or the iOS, Android or
|
|
101
104
|
Flutter SDK where the app's users are, in the app's style:
|
|
102
105
|
https://vatio.ai/docs/channels/widget.md, https://vatio.ai/docs/sdk/ios.md,
|
|
@@ -107,13 +110,12 @@ endpoints become tools, what becomes knowledge. Then:
|
|
|
107
110
|
pkey -in vatio-private.pem -pubout`), keep the private key in the backend's
|
|
108
111
|
secrets (never in the frontend, never committed), `set_auth` with the
|
|
109
112
|
public key, and follow https://vatio.ai/docs/authentication.md.
|
|
110
|
-
7. **Hand over.** `get_status` gives `
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
`publish` only when they ask.
|
|
113
|
+
7. **Hand over.** `get_status` gives `try_it`: the inbox with Try the agent
|
|
114
|
+
open (web chat, WhatsApp and Instagram). Give it with what you tried and
|
|
115
|
+
the tests. There is nothing to publish: every change reaches the app on
|
|
116
|
+
its own, as **How a change reaches people** below says. Until people talk
|
|
117
|
+
to the agent you need not ask before each change; once they do, ask
|
|
118
|
+
first.
|
|
117
119
|
|
|
118
120
|
### A workspace already exists
|
|
119
121
|
|
|
@@ -123,6 +125,9 @@ create another. `get_agent` and `get_status`, then explain the agent from them
|
|
|
123
125
|
from what you see:
|
|
124
126
|
|
|
125
127
|
- open reports in `list_reports`: work them with the `vatio-improve` skill;
|
|
128
|
+
- a change held back from everyone (`shipping.state` is `held` in
|
|
129
|
+
`get_status`): `shipping.held.tests` says which test it breaks, and **How a
|
|
130
|
+
change reaches people** below what moves it on;
|
|
126
131
|
- tools failing in `get_tool_health`: the fix is in the backend they call;
|
|
127
132
|
- few or no tests (`list_reports` lists them last): offer to `add_test` what
|
|
128
133
|
matters most;
|
|
@@ -134,6 +139,37 @@ change it through the MCP from now on. Recommend removing `vatio.yml`,
|
|
|
134
139
|
`tools/` and `identity.pub` from the repository, so nobody pushes an old copy
|
|
135
140
|
over it, and do it only with their yes.
|
|
136
141
|
|
|
142
|
+
## How a change reaches people
|
|
143
|
+
|
|
144
|
+
The agent is one, and there is nothing to publish. Every change
|
|
145
|
+
(`update_agent`, `set_tool`, `set_backend`, `set_auth`, the knowledge tools)
|
|
146
|
+
reaches your team at once (`chat_with_agent`, Try the agent in the inbox,
|
|
147
|
+
Vatio's shared WhatsApp number and Instagram account) and everyone a few
|
|
148
|
+
minutes later, once the tests that pass today pass on it. With no tests,
|
|
149
|
+
everyone gets it at once.
|
|
150
|
+
|
|
151
|
+
1. **Ask first when people already talk to the agent** (`impact` in
|
|
152
|
+
`get_status` counts its replies to them, or the person says so): say what
|
|
153
|
+
you will change and change it only with their yes. On a new agent nobody
|
|
154
|
+
talks to yet, there is no need to ask for each change.
|
|
155
|
+
2. **Make the change, then try it** with `chat_with_agent`, which talks to
|
|
156
|
+
the newest version, and `add_test` what it must keep doing.
|
|
157
|
+
3. **`get_status` says where it stands**, in `shipping.state`: `live` when
|
|
158
|
+
everyone has it, `testing` while Vatio replays the tests on it
|
|
159
|
+
(`testing.expected_by` says until about when), and `held` when a test that
|
|
160
|
+
passes today fails on it in every attempt. Held, your team keeps it,
|
|
161
|
+
everyone else keeps the version before, and whoever made the change gets
|
|
162
|
+
an email. `shipping.held.tests` names each test, with the `chat_id` of its
|
|
163
|
+
replay for `get_conversation` (with none, `shipping.held.reason` and
|
|
164
|
+
`message` say why). Another change that fixes it moves it on, as does
|
|
165
|
+
`remove_test` for a test the change made obsolete (their call) or a
|
|
166
|
+
`run_tests` run that passes. There is no way to force it.
|
|
167
|
+
4. **`rollback` undoes the last change** for everyone, your team included.
|
|
168
|
+
|
|
169
|
+
A reply someone on the team reports on one of their own conversations (in
|
|
170
|
+
Try the agent, say) is a test like any other, resolved once the version
|
|
171
|
+
everyone has passes it.
|
|
172
|
+
|
|
137
173
|
## Claude Code permissions
|
|
138
174
|
|
|
139
175
|
In Claude Code, once the agent works, check the project's
|
|
@@ -141,7 +177,7 @@ In Claude Code, once the agent works, check the project's
|
|
|
141
177
|
no `mcp__vatio` rule, offer once to add the block in **Auto mode** on
|
|
142
178
|
https://vatio.ai/docs/integrations/claude-code.md: it lets you call the Vatio
|
|
143
179
|
tools without a prompt each time, and still asks the developer before
|
|
144
|
-
`
|
|
180
|
+
`rollback`, `set_secret` and the like. Add it only with their yes,
|
|
145
181
|
merged into what the file has, never replacing it, and add no other rule.
|
|
146
182
|
Never edit `~/.claude/settings.json`.
|
|
147
183
|
|
|
@@ -161,6 +197,6 @@ TERM` prints the sections that mention it, with their page, and
|
|
|
161
197
|
`npx @vatio-ai/cli@latest docs PAGE` one page (`tools`, `knowledge`); neither
|
|
162
198
|
needs a workspace or a sign-in.
|
|
163
199
|
|
|
164
|
-
A tool that refuses says what to do next: follow it.
|
|
165
|
-
`rollback`, `remove_test`, `erase_contact` and
|
|
166
|
-
|
|
200
|
+
A tool that refuses says what to do next: follow it. A change to an agent
|
|
201
|
+
people already talk to, `rollback`, `remove_test`, `erase_contact` and
|
|
202
|
+
turning WhatsApp live on are the person's call: ask first.
|