vibecoding-devtools 1.0.1 → 1.1.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.
- package/README.md +6 -5
- package/hooks/maestri-protocol.mjs +4 -3
- package/installer/cli.mjs +8 -0
- package/installer/codex-maestri.rules +13 -0
- package/installer/env-list.mjs +70 -0
- package/installer/execute.mjs +409 -386
- package/installer/json-merge.mjs +4 -4
- package/installer/plan.mjs +31 -1
- package/installer/team-checks.mjs +86 -0
- package/installer/team.mjs +260 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +4 -2
- package/rules/maestri-usage.md +2 -0
- package/skills/maestri-agent-cli/SKILL.md +4 -2
- package/skills/maestri-agent-cli/references/antigravity.md +24 -0
- package/skills/maestri-agent-cli/references/codex.md +16 -0
- package/skills/maestri-protocol/SKILL.md +12 -7
- package/team/README.md +139 -0
- package/team/notes/project-context/acceptance-criteria.md +6 -0
- package/team/notes/project-context/code-standards.md +8 -0
- package/team/notes/project-context/contracts-integrations.md +10 -0
- package/team/notes/project-context/decisions.md +7 -0
- package/team/notes/project-context/design-system.md +8 -0
- package/team/notes/project-context/ops-runbook.md +10 -0
- package/team/notes/project-context/requirements.md +23 -0
- package/team/notes/project-context/risks-backlog.md +6 -0
- package/team/notes/team-roster.md +67 -0
- package/team/partitura/vibecoding-devtools.maestripartitura +4908 -0
- package/team/roles/_team-protocol.md +12 -0
- package/team/roles/appsec-auditor.md +45 -0
- package/team/roles/backend-architect.md +44 -0
- package/team/roles/backend-engineer.md +44 -0
- package/team/roles/code-reviewer.md +43 -0
- package/team/roles/devops-engineer.md +41 -0
- package/team/roles/frontend-engineer.md +45 -0
- package/team/roles/qa-engineer.md +41 -0
- package/team/roles/research-analyst.md +34 -0
- package/team/roles/task-runner.md +26 -0
- package/team/roles/team-maestro.md +80 -0
- package/team/roles/ux-ui-designer.md +49 -0
- package/team/roles/visual-asset-designer.md +45 -0
- package/team/roles/visual-qa-inspector.md +36 -0
- package/team/settings/task-runner-limited.json +55 -0
- package/team/team.json +59 -0
package/team/README.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Web development team
|
|
2
|
+
|
|
3
|
+
A permanent multi-agent team for the Maestri canvas: one Maestro and twelve specialists for web apps, APIs,
|
|
4
|
+
automations, bots and services. This folder is the versioned source of the team. Maestri holds the live copy as global
|
|
5
|
+
roles and the global partitura `vibecoding-devtools`.
|
|
6
|
+
|
|
7
|
+
## Layout
|
|
8
|
+
|
|
9
|
+
| Path | Content |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `roles/<role>.md` | Role prompt of each agent, without the shared block |
|
|
12
|
+
| `roles/_team-protocol.md` | Block appended to every role when it is installed |
|
|
13
|
+
| `notes/team-roster.md` | Permanent `Team Roster` note: agents, pools, topology, approvals, contingencies |
|
|
14
|
+
| `notes/project-context/*.md` | Blank pages of the `Project Context` fichário, filled per project |
|
|
15
|
+
| `team.json` | Manifest: agents, launch commands, colors, ropes, notes, portal and partitura |
|
|
16
|
+
| `settings/task-runner-limited.json` | Antigravity session allowlist for the Task Runner; installed as a file in `~/.vibecoding-devtools/team/` |
|
|
17
|
+
| `partitura/vibecoding-devtools.maestripartitura` | Export of the partitura from the Maestri app: roles, commands, notes, portal, ropes |
|
|
18
|
+
|
|
19
|
+
The prompts rely on the kit rules (`base`, `risk-process`, `testing`, `maestri-messaging`) and the
|
|
20
|
+
`maestri-protocol`, `risk-triage`, `security-surfaces`, `maestri-agent-cli` and `maestri-budget` skills, installed for
|
|
21
|
+
every CLI by the kit installer; they do not repeat them.
|
|
22
|
+
|
|
23
|
+
## Agents
|
|
24
|
+
|
|
25
|
+
| Agent | Role | Launch command |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Regente | Team Maestro | preset `Team Maestro` (Maestro on): `claude --model claude-opus-5-5 --effort high --permission-mode auto --add-dir ../../..` |
|
|
28
|
+
| Vitral | Frontend Engineer | `claude --model claude-sonnet-5-5 --effort high --permission-mode auto --add-dir ../../..` |
|
|
29
|
+
| Bússola | UX/UI Designer | `claude --model claude-opus-5-5 --effort high --permission-mode auto --add-dir ../../..` |
|
|
30
|
+
| Alicerce | Backend Architect | `claude --model claude-sonnet-5-5 --effort high --permission-mode auto --add-dir ../../..` |
|
|
31
|
+
| Sentinela | AppSec Auditor | `claude --model claude-opus-5-5 --effort medium --permission-mode auto --add-dir ../../.. --disallowedTools Edit Write NotebookEdit` |
|
|
32
|
+
| Crivo | Code Reviewer | same as Sentinela |
|
|
33
|
+
| Guindaste | DevOps Engineer | `claude --model claude-sonnet-5-5 --effort medium --permission-mode auto --add-dir ../../..` |
|
|
34
|
+
| Forja | Backend Engineer | `codex --no-daemon --approve-for-me -m gpt-6.1-sol -c model_reasoning_effort=medium --add-dir ../../..` |
|
|
35
|
+
| Ensaio | QA Engineer | same as Forja |
|
|
36
|
+
| Aquarela | Visual Asset Designer | `codex --no-daemon --approve-for-me -m gpt-6.1-sol -c model_reasoning_effort=low --add-dir ../../..` |
|
|
37
|
+
| Retina | Visual QA Inspector | `agy --model gemini-4-argon-medium --effort medium --mode auto --add-dir ../../..` |
|
|
38
|
+
| Sonda | Research Analyst | `agy --model gemini-4-argon-high --effort high --mode auto --add-dir ../../..` |
|
|
39
|
+
| Formiga | Task Runner | `agy --model gemini-3.8-flash-medium --effort medium --mode accept-edits --add-dir ../../.. --settings <file>` |
|
|
40
|
+
|
|
41
|
+
- Recruits start in `<workspace>/.maestri/roles/<id>/`, so `--add-dir ../../..` always points at the workspace root.
|
|
42
|
+
Every Claude command has it too. It is variadic: keep it before `--disallowedTools` or last. The preset
|
|
43
|
+
`Team Maestro` (its own name, so the kit never creates or changes a generic preset such as `Maestro Opus High`)
|
|
44
|
+
carries it as well; start a Maestro with it from a role folder, since from the workspace root `../../..` points
|
|
45
|
+
three folders above it.
|
|
46
|
+
- `<file>` is `task-runner-limited.json` in `~/.vibecoding-devtools/team/` (a path, quoted if it has spaces), written by
|
|
47
|
+
`team` from `settings/task-runner-limited.json`: a stable path that does not depend on the npx cache and works in
|
|
48
|
+
POSIX shells and PowerShell. Commands outside its allowlist prompt.
|
|
49
|
+
- Model ids change: check `codex debug models` and `agy models` before reusing a command.
|
|
50
|
+
|
|
51
|
+
## Topology
|
|
52
|
+
|
|
53
|
+
Regente connects to every agent. Peer ropes: Vitral with Bússola, Alicerce, Ensaio, Crivo and Retina; Bússola with
|
|
54
|
+
Retina and Aquarela; Alicerce with Forja, Guindaste and Sentinela; Forja with Ensaio, Crivo and Sentinela; Guindaste
|
|
55
|
+
with Sentinela and Crivo. Sonda and Formiga talk only to Regente. `Team Roster` is wired to Regente; the
|
|
56
|
+
`Project Context` fichário to Regente and every agent except Sonda, Aquarela and Formiga; the `Gemini` portal to
|
|
57
|
+
Aquarela.
|
|
58
|
+
|
|
59
|
+
## Install
|
|
60
|
+
|
|
61
|
+
Run on the machine where the agent CLIs run, from a Maestri terminal in Maestro mode. Maestri itself may run on another
|
|
62
|
+
computer (see [Maestri on a remote machine](../docs/maestri-remote.md)).
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx vibecoding-devtools team --dry-run # preview the maestri commands
|
|
66
|
+
npx vibecoding-devtools team --roles-only # create or update the global roles
|
|
67
|
+
npx vibecoding-devtools team # also preset, agents, ropes, notes, portal and partitura
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`team/team.json` is the manifest the command reads. Before running any `maestri` command, also with `--dry-run`, it
|
|
71
|
+
checks read-only that everything the launch commands need exists, lists what is missing together and stops with exit 1:
|
|
72
|
+
|
|
73
|
+
- each CLI on `PATH` (`maestri`, `claude`, `codex`, `agy`);
|
|
74
|
+
- each Codex model in `codex debug models` and each Antigravity model in `agy models`; Claude models are not checked,
|
|
75
|
+
since there is no offline list;
|
|
76
|
+
- ECC in Claude Code (`claude plugin list` shows `ecc@`), because the Team Maestro role uses `/ecc:plan`.
|
|
77
|
+
|
|
78
|
+
`--roles-only` launches nothing and needs only `maestri`. Then, before changing anything, it stops on conflicts: a role
|
|
79
|
+
with other text, a preset with another command or Maestro setting, a Task Runner settings file with other content (each
|
|
80
|
+
replaced with `--update-roles`), and an agent you reach with another role. It writes the settings file when missing,
|
|
81
|
+
leaves identical roles and files alone and skips agents, notes and the portal you already reach and a partitura that
|
|
82
|
+
already has the name. `--dry-run` prints `write <path>` for the file and writes nothing. Then answer each agent's
|
|
83
|
+
startup prompts and sign in to Gemini in the portal.
|
|
84
|
+
|
|
85
|
+
### Resume after a failure
|
|
86
|
+
|
|
87
|
+
The run is safe to repeat. If a step fails midway (a recruit that errors, a lost connection), the command prints the
|
|
88
|
+
`maestri` error, the step it stopped at and `Run the same command again to resume`. Running the same command again
|
|
89
|
+
skips what exists (roles, preset, settings file, agents, notes, portal, partitura), `maestri connect` on an existing
|
|
90
|
+
rope prints `already connected` and exits 0, and the rest is created. A conflict or a missing prerequisite still stops
|
|
91
|
+
before any change.
|
|
92
|
+
|
|
93
|
+
Without the CLI, import `partitura/vibecoding-devtools.maestripartitura` in the Maestri app. The file carries the 13
|
|
94
|
+
role prompts with the team protocol, the launch commands, the notes and the portal, matching `roles/`, `notes/` and
|
|
95
|
+
`team.json`; it holds no chat history.
|
|
96
|
+
|
|
97
|
+
## Check
|
|
98
|
+
|
|
99
|
+
After an install, as the Maestro (Regente) or the installer:
|
|
100
|
+
|
|
101
|
+
1. `npx vibecoding-devtools team --dry-run` prints only `connect` lines: roles, preset, agents, notes, portal and
|
|
102
|
+
partitura match the kit.
|
|
103
|
+
2. Each agent's screen shows its model and effort, and the expected mode (`auto mode on`, `Workspace [...] (Approve for
|
|
104
|
+
me)` in Codex `/status`, `auto` or `accept-edits` in Antigravity).
|
|
105
|
+
3. Regente sends one `maestri ask --batch` with a ref to every agent asking, without changing files, for its role in
|
|
106
|
+
one line, its working folder and writable project root, the first line of `Requirements` when `Project Context` is
|
|
107
|
+
wired to it, and whom it reports to. Every answer matches its role and the topology above.
|
|
108
|
+
4. One peer exchange works, for example Vitral asks Bússola where the design system lives and relays the answer.
|
|
109
|
+
|
|
110
|
+
## Use in a project
|
|
111
|
+
|
|
112
|
+
Insert the partitura into the project's workspace, from the Maestri palette or as a Maestro:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
maestri partitura insert "vibecoding-devtools"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Then fill the instance block of `Requirements` with Regente. The portal keeps the browser session of the computer
|
|
119
|
+
running Maestri; sign in to Gemini there once.
|
|
120
|
+
|
|
121
|
+
## Update
|
|
122
|
+
|
|
123
|
+
Edit the role files or `team.json`, then run `npx vibecoding-devtools team --roles-only --update-roles` to rewrite the
|
|
124
|
+
installed roles that differ. A full `team --update-roles` also replaces the Maestro preset with `maestri preset set`
|
|
125
|
+
when its command changed, and the Task Runner settings file when its content changed.
|
|
126
|
+
Maestri restarts the agents that use a rewritten role, and their chat context is lost: run it between tasks.
|
|
127
|
+
Agents already recruited keep the command they were launched with (the preset command applies to new terminals only).
|
|
128
|
+
To apply a changed command, run `maestri recruit --replace "<agent>" --command "<command>"` for that agent between
|
|
129
|
+
tasks, with the command from the table above and, for Formiga, the path of the settings file. Save the partitura again
|
|
130
|
+
with `maestri partitura update "vibecoding-devtools" <agents> --without-me` when agents, ropes or notes change, then
|
|
131
|
+
export it again from the Maestri app over `partitura/vibecoding-devtools.maestripartitura`.
|
|
132
|
+
|
|
133
|
+
## Known limits
|
|
134
|
+
|
|
135
|
+
- Maestri roles have no color; tier colors are listed in `Team Roster`.
|
|
136
|
+
- Sentinela and Crivo lose the Edit and Write tools only; the shell can still write, so read-only is role-enforced.
|
|
137
|
+
- Codex runs in the workspace-write sandbox without shell network by default; installs ask for approval.
|
|
138
|
+
- Gemini images captured through the portal are rendered pixels: no transparency, possibly below the original size.
|
|
139
|
+
Downloads from the portal land on the computer running Maestri, not on the server.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Code Standards
|
|
2
|
+
|
|
3
|
+
Owner: Alicerce (backend) and Vitral (frontend); Crivo reviews against it. Canonical: repository `AGENTS.md` and
|
|
4
|
+
linters. Record here only what the linters do not enforce.
|
|
5
|
+
|
|
6
|
+
- Commands (lint, typecheck, test, build): see `AGENTS.md`.
|
|
7
|
+
- Risk map: see `AGENTS.md`.
|
|
8
|
+
- Project-specific rules:
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Contracts & Integrations
|
|
2
|
+
|
|
3
|
+
Owner: Alicerce. Canonical: OpenAPI and schema files in the repository. Changes are announced to Forja, Vitral and
|
|
4
|
+
Regente before they land.
|
|
5
|
+
|
|
6
|
+
| Contract | File | Version | Consumers |
|
|
7
|
+
|---|---|---|---|
|
|
8
|
+
|
|
9
|
+
| External service | Client folder | Official docs | Notes |
|
|
10
|
+
|---|---|---|---|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Ops Runbook
|
|
2
|
+
|
|
3
|
+
Owner: Guindaste. Canonical: repository `docs/runbook/`.
|
|
4
|
+
|
|
5
|
+
| Environment | URL | Deploy method | Rollback | Health check |
|
|
6
|
+
|---|---|---|---|---|
|
|
7
|
+
|
|
8
|
+
- Backups (what, where, how often, restore test date):
|
|
9
|
+
- Secrets location (store name only, never values):
|
|
10
|
+
- Monitoring and alerts:
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Requirements
|
|
2
|
+
|
|
3
|
+
Owner: Regente. Canonical: repository `docs/requirements.md` when it exists; this page indexes it.
|
|
4
|
+
|
|
5
|
+
## Instance (fill first)
|
|
6
|
+
|
|
7
|
+
- Project:
|
|
8
|
+
- Repository path / workspace:
|
|
9
|
+
- Default branch:
|
|
10
|
+
- Run locally (command, URL, ports):
|
|
11
|
+
- Artifacts path (screenshots, reports):
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
## Users
|
|
16
|
+
|
|
17
|
+
## In scope
|
|
18
|
+
|
|
19
|
+
## Out of scope
|
|
20
|
+
|
|
21
|
+
## Constraints (stack, deadline, budget, compliance)
|
|
22
|
+
|
|
23
|
+
## Open questions
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Team Roster
|
|
2
|
+
|
|
3
|
+
Permanent team record. Owner: Regente. Project facts go in the `Project Context` fichário, never here.
|
|
4
|
+
|
|
5
|
+
## Agents
|
|
6
|
+
|
|
7
|
+
| Name | Role | CLI | Model · effort | Plan the command assumes |
|
|
8
|
+
|---|---|---|---|---|
|
|
9
|
+
| Regente | Team Maestro | Claude Code | Opus 5.5 · high | Claude Max |
|
|
10
|
+
| Vitral | Frontend Engineer | Claude Code | Sonnet 5.5 · high | Claude Max |
|
|
11
|
+
| Bússola | UX/UI Designer | Claude Code | Opus 5.5 · high | Claude Max |
|
|
12
|
+
| Alicerce | Backend Architect | Claude Code | Sonnet 5.5 · high | Claude Max |
|
|
13
|
+
| Sentinela | AppSec Auditor | Claude Code | Opus 5.5 · medium, no Edit/Write | Claude Max |
|
|
14
|
+
| Crivo | Code Reviewer | Claude Code | Opus 5.5 · medium, no Edit/Write | Claude Max |
|
|
15
|
+
| Guindaste | DevOps Engineer | Claude Code | Sonnet 5.5 · medium | Claude Max |
|
|
16
|
+
| Forja | Backend Engineer | Codex | gpt-6.1-sol · medium | ChatGPT Plus |
|
|
17
|
+
| Ensaio | QA Engineer | Codex | gpt-6.1-sol · medium | ChatGPT Plus |
|
|
18
|
+
| Aquarela | Visual Asset Designer | Codex | gpt-6.1-sol · low + imagegen | ChatGPT Plus |
|
|
19
|
+
| Retina | Visual QA Inspector | Antigravity | gemini-4-argon-medium | Gemini Pro / Argon |
|
|
20
|
+
| Sonda | Research Analyst | Antigravity | gemini-4-argon-high | Gemini Pro / Argon |
|
|
21
|
+
| Formiga | Task Runner | Antigravity | gemini-3.8-flash-medium | Gemini Pro / Gemini |
|
|
22
|
+
|
|
23
|
+
Launch modes: Claude `--permission-mode auto`; Codex `--approve-for-me` (workspace-write sandbox, no shell network by
|
|
24
|
+
default); Antigravity `--mode auto`, except Formiga: limited agent (`--mode accept-edits` plus a session `--settings`
|
|
25
|
+
allowlist with `toolPermission: request-review`). Allowed: read, search, `mkdir`, `mv`, read-only git, `git mv`,
|
|
26
|
+
`maestri ask/list/note read`; denied: `rm`, network, permission changes, git writes. Other commands prompt: approve once
|
|
27
|
+
only when in scope, never options 2 or 3. Codex and Antigravity start in the role folder and get the project root with
|
|
28
|
+
`--add-dir ../../..`. Exact commands are stored on each terminal (and in the partitura).
|
|
29
|
+
|
|
30
|
+
Codex restarts may stop on `Hooks need review` (the ECC `SessionStart` hook loses its trust at every start): the
|
|
31
|
+
human trusts it, so press `t` in the review panel, or Esc to skip it; the kit's own hooks keep running either way.
|
|
32
|
+
|
|
33
|
+
Tier colors (Maestri roles have no color field): Coordination gold · Specification purple · Implementation blue/teal ·
|
|
34
|
+
Validation red/orange · Support green/pink/gray.
|
|
35
|
+
|
|
36
|
+
## Topology
|
|
37
|
+
|
|
38
|
+
Regente <-> everyone. Peers: Vitral-Bússola, Vitral-Alicerce, Vitral-Ensaio, Vitral-Crivo, Vitral-Retina,
|
|
39
|
+
Bússola-Retina, Bússola-Aquarela, Alicerce-Forja, Alicerce-Guindaste, Alicerce-Sentinela, Forja-Ensaio, Forja-Crivo,
|
|
40
|
+
Forja-Sentinela (added: backend security findings reach the fixer), Guindaste-Sentinela, Guindaste-Crivo.
|
|
41
|
+
Sonda and Formiga: Regente only. Findings for an owner without a rope go through Regente with their ref.
|
|
42
|
+
|
|
43
|
+
## Human approval required
|
|
44
|
+
|
|
45
|
+
Production deploys, releases, merges, destructive operations, handling secrets, sensitive configuration, CI secrets
|
|
46
|
+
and repository settings, significant scope or architecture changes, any change of an agent's model, effort or
|
|
47
|
+
platform (contingencies included).
|
|
48
|
+
|
|
49
|
+
## Contingencies (propose to the human, apply after OK, between tasks, record in Decisions)
|
|
50
|
+
|
|
51
|
+
| Trigger | Action |
|
|
52
|
+
|---|---|
|
|
53
|
+
| ChatGPT Plus exhausted | Ensaio to Claude Sonnet 5.5 medium: `maestri recruit --replace "Ensaio" --command "claude --model claude-sonnet-5-5 --effort medium --permission-mode auto --add-dir ../../.."`; verify the auto mode footer; keep it independent of the implementer |
|
|
54
|
+
| Claude Max usage high | Vitral `/effort medium` for routine tasks (session only); Guindaste already runs medium |
|
|
55
|
+
| ChatGPT Plus idle | Simple, non-sensitive DevOps scripts may go to Forja, reviewed by Crivo; sensitive work stays with Guindaste |
|
|
56
|
+
| Argon low | Retina only at milestones; Sonda only for questions that block a decision |
|
|
57
|
+
| Images | ChatGPT Images (Aquarela, imagegen) first; Nano Banana through the `Gemini` portal (Aquarela) for alternatives and edits; capture is rendered pixels, no transparency |
|
|
58
|
+
| Agent unavailable | Reassign only to a competent role; tell the human if it changes an approved configuration |
|
|
59
|
+
|
|
60
|
+
Review the distribution two weeks after the team's first real task, and record the date in Decisions.
|
|
61
|
+
|
|
62
|
+
## New project checklist
|
|
63
|
+
|
|
64
|
+
1. Insert the partitura in the project's workspace.
|
|
65
|
+
2. Fill `Project Context` → Requirements (instance block first).
|
|
66
|
+
3. Make sure the repository has `AGENTS.md` (kit template) with commands and the risk map.
|
|
67
|
+
4. Regente runs a ping round and reads every pool once (maestri-budget checkpoint).
|