@irythill/orq 0.1.0 → 0.3.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/LICENSE +21 -21
- package/README.md +241 -240
- package/README.pt-BR.md +242 -241
- package/dist/agents.js +12 -0
- package/dist/cli.js +24 -22
- package/dist/commands/agent.js +212 -26
- package/dist/commands/block.js +2 -2
- package/dist/commands/board.js +1 -1
- package/dist/commands/claim.js +1 -1
- package/dist/commands/completion.js +43 -43
- package/dist/commands/config.js +2 -2
- package/dist/commands/gc.js +164 -0
- package/dist/commands/instructions.js +7 -7
- package/dist/commands/lock.js +1 -1
- package/dist/commands/pick.js +23 -3
- package/dist/commands/quota.js +32 -2
- package/dist/commands/setup.js +3 -3
- package/dist/config.js +1 -1
- package/dist/pick.js +11 -0
- package/dist/process.js +19 -11
- package/dist/quota.js +67 -9
- package/dist/terminal.js +26 -0
- package/dist/testrun.js +9 -5
- package/package.json +48 -27
- package/skills/issue/SKILL.md +229 -197
- package/skills/orq-setup/SKILL.md +114 -114
- package/skills/orq-status/SKILL.md +37 -37
- package/templates/workspace.CLAUDE.md +49 -49
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orq-setup
|
|
3
|
-
description: Guided first-time setup of orq for a new developer — detects and smoke-tests the installed agent CLIs, asks which agents take which roles, models, Claude accounts and pick weights, writes ~/.config/orq/config.toml, then prepares a conductor workspace (orq setup --workspace + workspace CLAUDE.md) and checks Plane. Use when the user says "/orq-setup", "set up orq", "configure orq" or just installed orq (npm i -g @irythill/orq, or install.sh).
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /orq-setup — configure orq for this developer
|
|
7
|
-
|
|
8
|
-
You are setting up orq for someone who just installed it (`npm i -g @irythill/orq`, or `install.sh` from a clone).
|
|
9
|
-
Be brief, one step at a time. Talk to the user in the user's language. **Ask before writing or running anything that
|
|
10
|
-
costs tokens or changes files**; show what you will write first. Never handle API keys or tokens yourself: tell the
|
|
11
|
-
user where to put them.
|
|
12
|
-
`$ORQ` = docs and examples: a clone of the repo if there is one, else https://github.com/irythill/orq (`docs/`,
|
|
13
|
-
`examples/`; the npm package ships only the CLI, the skills and the workspace template).
|
|
14
|
-
|
|
15
|
-
## 0. Preflight
|
|
16
|
-
- `command -v orq` missing → tell the user to run `npm i -g @irythill/orq` and stop.
|
|
17
|
-
- `orq setup --install`: shows what orq found (git, terminal host, memory cap, keyring, shell completion) and links
|
|
18
|
-
the skills for Claude Code. `git` missing → stop: it is required. herdr is optional (tabs per child; on Linux,
|
|
19
|
-
`$ORQ/install.sh` adds it as a service): without it children run in tmux windows or in the background.
|
|
20
|
-
- Existing `~/.config/orq/config.toml` (or `config.json`)? Show it in short and ask: start over, or adjust it.
|
|
21
|
-
|
|
22
|
-
## 1. Detect and smoke-test the agents
|
|
23
|
-
- `command -v claude codex opencode agy copilot` → list what's installed (`agy` = Antigravity).
|
|
24
|
-
- Offer one headless smoke test per agent found. Say that **each costs a few tokens** and needs the CLI logged in; run
|
|
25
|
-
only the ones the user approves (AskUserQuestion, multiSelect), one at a time, with a timeout:
|
|
26
|
-
```bash
|
|
27
|
-
timeout 120 claude -p "reply ok"
|
|
28
|
-
timeout 120 codex exec --skip-git-repo-check "reply ok"
|
|
29
|
-
timeout 120 opencode run "reply ok"
|
|
30
|
-
timeout 120 agy -p "reply ok"
|
|
31
|
-
timeout 120 copilot -p "reply ok" -s
|
|
32
|
-
```
|
|
33
|
-
- Report a table: agent · installed · test ok/failed/skipped. Failed → likely not logged in: tell the user the login
|
|
34
|
-
command (`claude`, `codex login`, `opencode auth login`, `agy`, `copilot` then `/login`) and offer to retest. Only
|
|
35
|
-
agents that passed (or that the user insists on) go into the config.
|
|
36
|
-
|
|
37
|
-
## 2. Agents and roles — `orq setup` suggests, the user decides
|
|
38
|
-
Don't ask "which roles should this agent take?": newcomers can't answer that. Ask what they know (AskUserQuestion)
|
|
39
|
-
and let `orq setup` apply the rules (src/suggest.ts):
|
|
40
|
-
- per working agent: **plan** — `free` · `small` (Pro, Copilot Pro, monthly allowance) · `large` (Max, high tiers) ·
|
|
41
|
-
`payg` (API, MiniMax); its **vendor** only for agents orq doesn't know (opencode: the provider, e.g. `minimax`);
|
|
42
|
-
- which one they **trust most** to write code (optional);
|
|
43
|
-
- where they will **talk to orq** (the conductor): an agent name, or `other`;
|
|
44
|
-
- how many tasks they usually run **in parallel**; how much **RAM** agents may use (suggest total RAM).
|
|
45
|
-
Then write the answers to a temp file and show the proposal:
|
|
46
|
-
```bash
|
|
47
|
-
orq setup --answers /tmp/orq-answers.json # {"agents":{"codex":{"plan":"large","trust":true},...},"conductor":"claude","parallel":3,"ramGB":16}
|
|
48
|
-
```
|
|
49
|
-
Explain each `# Why:` line in plain words and ask what to change. Whatever they fix becomes `[roles.<role>] agent = ...`;
|
|
50
|
-
the rest stays `auto`. Presets for those who want no questions: `--preset economy | quality | single-agent`.
|
|
51
|
-
**Models** (`models.<role>.<level> = "model[@effort]"`): optional — without them each CLI uses its default model.
|
|
52
|
-
Offer `$ORQ/examples/irythill/config.toml` as an example, saying clearly **it is one person's choices**.
|
|
53
|
-
**quota names:** what `orq quota` prints for that agent.
|
|
54
|
-
|
|
55
|
-
## 3. Claude accounts
|
|
56
|
-
- `claude-accounts` lists them. None and the user has more than one account → offer to create
|
|
57
|
-
`~/.config/claude-accounts` (lines `<name> <CLAUDE_CONFIG_DIR>`, e.g. `work ~/.claude`, `personal ~/.claude-personal`)
|
|
58
|
-
and explain the alias + one-time login from `$ORQ/docs/claude-accounts.md`. One account → skip; `quota = ["<name>"]`
|
|
59
|
-
only if listed there.
|
|
60
|
-
- Re-run `orq setup --install` afterwards so the skills are linked into each account's folder too.
|
|
61
|
-
|
|
62
|
-
## 4. Policy
|
|
63
|
-
Explain simply, then suggest the example's values and ask if they want to change any:
|
|
64
|
-
- `quota_limit` (90): an agent at or above this % of its 5h/weekly quota is left out.
|
|
65
|
-
- weights — already suggested by `orq setup` from the parallel tasks: `quality` (did it deliver?), `tokens` (spent
|
|
66
|
-
little?), `speed` (finished fast?), `rotation` (penalty for being picked recently, spreads the work).
|
|
67
|
-
- `max_rounds` (2) review rounds before handing back; `machine.agent_mem_max` / `test_mem_max` come from `orq setup`
|
|
68
|
-
(RAM and parallel tasks) — the user may change them.
|
|
69
|
-
- **Language** of orq's messages (board, notices, CLI): `[ui] lang = "auto" | "en" | "pt"` (auto = system locale).
|
|
70
|
-
Suggest the language the user is talking to you in. Mention they can switch any time with `orq lang toggle`, the
|
|
71
|
-
`l` key in `orq board`, or a herdr key bound to the `orq.lang-toggle` action (see the comments in
|
|
72
|
-
`herdr-plugin/herdr-plugin.toml`).
|
|
73
|
-
- **Board theme**: `[ui] theme = "gunmetal"` (default, dark) | `"chrome"` (light) | `"lcd"` (green) | `"terminal"`.
|
|
74
|
-
Light terminal → suggest `chrome`; they can cycle with `t` inside `orq board`.
|
|
75
|
-
|
|
76
|
-
## 5. Write and validate
|
|
77
|
-
- Show the full TOML (the proposal plus the changes they asked for). After the OK: `orq setup --answers <file> --write`
|
|
78
|
-
(backs up an existing config as `config.toml.bak-<timestamp>`), then apply their edits with `orq set` or by editing
|
|
79
|
-
the file.
|
|
80
|
-
- Validate: `orq config files` and `orq config` (exit 2 = error: fix and retry).
|
|
81
|
-
- Show the picks: `orq pick impl --level medium --explain --no-record` and
|
|
82
|
-
`orq pick review --impl-agent <their main implementer> --explain --no-record`. Exit 3 = no candidate: explain why
|
|
83
|
-
(roles, vendor, quota) and adjust.
|
|
84
|
-
|
|
85
|
-
## 6. Workspace
|
|
86
|
-
- Ask for the folder that groups their repos (e.g. `~/Code/acme-platform`). After the OK:
|
|
87
|
-
`orq setup --workspace <folder> --conductor <the conductor agent>` — `.orquestra/`, `.worktrees/`, the map
|
|
88
|
-
`<folder>/CLAUDE.md` from the template (never overwrites one) and the `/issue` playbook in the conductor's format
|
|
89
|
-
(`.claude/skills/issue/SKILL.md` for Claude Code, `AGENTS.md` for the others). Conductor in herdr (clone only):
|
|
90
|
-
`$ORQ/setup/new-conductor.sh <name> <folder>` also writes its instructions and permissions.
|
|
91
|
-
- Fill the repo table in `<folder>/CLAUDE.md` by inspecting each git repo inside it:
|
|
92
|
-
- base branch: `git -C <repo> symbolic-ref --short refs/remotes/origin/HEAD` (strip `origin/`); ask if the team
|
|
93
|
-
branches from another one (e.g. `dev`).
|
|
94
|
-
- group: the repo folder name in lower case (the herdr workspace or tmux group for its children).
|
|
95
|
-
- stack and verification: `package.json` scripts (lint, typecheck, test) with the package manager from the lockfile;
|
|
96
|
-
otherwise `Makefile`, `pyproject.toml`, `Cargo.toml`, `go.mod`… Leave `—` when nothing fits.
|
|
97
|
-
Show the filled table and write it only after the OK. Plane projects and the issue standard: ask, or leave the
|
|
98
|
-
placeholders and say so.
|
|
99
|
-
|
|
100
|
-
## 7. Plane
|
|
101
|
-
- Point to `$ORQ/docs/plane.md` (on GitHub without a clone). Check `claude mcp list` (and `CLAUDE_CONFIG_DIR=<dir> claude mcp list` for every
|
|
102
|
-
account that will run a conductor) for a `plane` server.
|
|
103
|
-
- Missing → tell the user to follow docs/plane.md; the API key goes in **their** MCP config, typed by them, never in
|
|
104
|
-
this chat or in a repo.
|
|
105
|
-
|
|
106
|
-
## 8. Wrap up
|
|
107
|
-
Short checklist: agents tested and enabled (roles), accounts, config path (+ backup), workspace and repos filled,
|
|
108
|
-
Plane ok/pending, anything skipped. Then how to start:
|
|
109
|
-
```bash
|
|
110
|
-
cd <folder> && claude # any terminal (or codex, opencode… reading AGENTS.md)
|
|
111
|
-
cd <folder> && herdr-conductor # or inside a herdr pane (clone + install.sh)
|
|
112
|
-
```
|
|
113
|
-
and in the conductor: `/issue DEMO-123`. `orq board` in another tab shows everything; shell completion:
|
|
114
|
-
`orq completion bash|zsh|fish|powershell` (the line to add is in `orq setup --install`).
|
|
1
|
+
---
|
|
2
|
+
name: orq-setup
|
|
3
|
+
description: Guided first-time setup of orq for a new developer — detects and smoke-tests the installed agent CLIs, asks which agents take which roles, models, Claude accounts and pick weights, writes ~/.config/orq/config.toml, then prepares a conductor workspace (orq setup --workspace + workspace CLAUDE.md) and checks Plane. Use when the user says "/orq-setup", "set up orq", "configure orq" or just installed orq (npm i -g @irythill/orq, or install.sh).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /orq-setup — configure orq for this developer
|
|
7
|
+
|
|
8
|
+
You are setting up orq for someone who just installed it (`npm i -g @irythill/orq`, or `install.sh` from a clone).
|
|
9
|
+
Be brief, one step at a time. Talk to the user in the user's language. **Ask before writing or running anything that
|
|
10
|
+
costs tokens or changes files**; show what you will write first. Never handle API keys or tokens yourself: tell the
|
|
11
|
+
user where to put them.
|
|
12
|
+
`$ORQ` = docs and examples: a clone of the repo if there is one, else https://github.com/irythill/orq (`docs/`,
|
|
13
|
+
`examples/`; the npm package ships only the CLI, the skills and the workspace template).
|
|
14
|
+
|
|
15
|
+
## 0. Preflight
|
|
16
|
+
- `command -v orq` missing → tell the user to run `npm i -g @irythill/orq` and stop.
|
|
17
|
+
- `orq setup --install`: shows what orq found (git, terminal host, memory cap, keyring, shell completion) and links
|
|
18
|
+
the skills for Claude Code. `git` missing → stop: it is required. herdr is optional (tabs per child; on Linux,
|
|
19
|
+
`$ORQ/install.sh` adds it as a service): without it children run in tmux windows or in the background.
|
|
20
|
+
- Existing `~/.config/orq/config.toml` (or `config.json`)? Show it in short and ask: start over, or adjust it.
|
|
21
|
+
|
|
22
|
+
## 1. Detect and smoke-test the agents
|
|
23
|
+
- `command -v claude codex opencode agy copilot` → list what's installed (`agy` = Antigravity).
|
|
24
|
+
- Offer one headless smoke test per agent found. Say that **each costs a few tokens** and needs the CLI logged in; run
|
|
25
|
+
only the ones the user approves (AskUserQuestion, multiSelect), one at a time, with a timeout:
|
|
26
|
+
```bash
|
|
27
|
+
timeout 120 claude -p "reply ok"
|
|
28
|
+
timeout 120 codex exec --skip-git-repo-check "reply ok"
|
|
29
|
+
timeout 120 opencode run "reply ok"
|
|
30
|
+
timeout 120 agy -p "reply ok"
|
|
31
|
+
timeout 120 copilot -p "reply ok" -s
|
|
32
|
+
```
|
|
33
|
+
- Report a table: agent · installed · test ok/failed/skipped. Failed → likely not logged in: tell the user the login
|
|
34
|
+
command (`claude`, `codex login`, `opencode auth login`, `agy`, `copilot` then `/login`) and offer to retest. Only
|
|
35
|
+
agents that passed (or that the user insists on) go into the config.
|
|
36
|
+
|
|
37
|
+
## 2. Agents and roles — `orq setup` suggests, the user decides
|
|
38
|
+
Don't ask "which roles should this agent take?": newcomers can't answer that. Ask what they know (AskUserQuestion)
|
|
39
|
+
and let `orq setup` apply the rules (src/suggest.ts):
|
|
40
|
+
- per working agent: **plan** — `free` · `small` (Pro, Copilot Pro, monthly allowance) · `large` (Max, high tiers) ·
|
|
41
|
+
`payg` (API, MiniMax); its **vendor** only for agents orq doesn't know (opencode: the provider, e.g. `minimax`);
|
|
42
|
+
- which one they **trust most** to write code (optional);
|
|
43
|
+
- where they will **talk to orq** (the conductor): an agent name, or `other`;
|
|
44
|
+
- how many tasks they usually run **in parallel**; how much **RAM** agents may use (suggest total RAM).
|
|
45
|
+
Then write the answers to a temp file and show the proposal:
|
|
46
|
+
```bash
|
|
47
|
+
orq setup --answers /tmp/orq-answers.json # {"agents":{"codex":{"plan":"large","trust":true},...},"conductor":"claude","parallel":3,"ramGB":16}
|
|
48
|
+
```
|
|
49
|
+
Explain each `# Why:` line in plain words and ask what to change. Whatever they fix becomes `[roles.<role>] agent = ...`;
|
|
50
|
+
the rest stays `auto`. Presets for those who want no questions: `--preset economy | quality | single-agent`.
|
|
51
|
+
**Models** (`models.<role>.<level> = "model[@effort]"`): optional — without them each CLI uses its default model.
|
|
52
|
+
Offer `$ORQ/examples/irythill/config.toml` as an example, saying clearly **it is one person's choices**.
|
|
53
|
+
**quota names:** what `orq quota` prints for that agent.
|
|
54
|
+
|
|
55
|
+
## 3. Claude accounts
|
|
56
|
+
- `claude-accounts` lists them. None and the user has more than one account → offer to create
|
|
57
|
+
`~/.config/claude-accounts` (lines `<name> <CLAUDE_CONFIG_DIR>`, e.g. `work ~/.claude`, `personal ~/.claude-personal`)
|
|
58
|
+
and explain the alias + one-time login from `$ORQ/docs/claude-accounts.md`. One account → skip; `quota = ["<name>"]`
|
|
59
|
+
only if listed there.
|
|
60
|
+
- Re-run `orq setup --install` afterwards so the skills are linked into each account's folder too.
|
|
61
|
+
|
|
62
|
+
## 4. Policy
|
|
63
|
+
Explain simply, then suggest the example's values and ask if they want to change any:
|
|
64
|
+
- `quota_limit` (90): an agent at or above this % of its 5h/weekly quota is left out.
|
|
65
|
+
- weights — already suggested by `orq setup` from the parallel tasks: `quality` (did it deliver?), `tokens` (spent
|
|
66
|
+
little?), `speed` (finished fast?), `rotation` (penalty for being picked recently, spreads the work).
|
|
67
|
+
- `max_rounds` (2) review rounds before handing back; `machine.agent_mem_max` / `test_mem_max` come from `orq setup`
|
|
68
|
+
(RAM and parallel tasks) — the user may change them.
|
|
69
|
+
- **Language** of orq's messages (board, notices, CLI): `[ui] lang = "auto" | "en" | "pt"` (auto = system locale).
|
|
70
|
+
Suggest the language the user is talking to you in. Mention they can switch any time with `orq lang toggle`, the
|
|
71
|
+
`l` key in `orq board`, or a herdr key bound to the `orq.lang-toggle` action (see the comments in
|
|
72
|
+
`herdr-plugin/herdr-plugin.toml`).
|
|
73
|
+
- **Board theme**: `[ui] theme = "gunmetal"` (default, dark) | `"chrome"` (light) | `"lcd"` (green) | `"terminal"`.
|
|
74
|
+
Light terminal → suggest `chrome`; they can cycle with `t` inside `orq board`.
|
|
75
|
+
|
|
76
|
+
## 5. Write and validate
|
|
77
|
+
- Show the full TOML (the proposal plus the changes they asked for). After the OK: `orq setup --answers <file> --write`
|
|
78
|
+
(backs up an existing config as `config.toml.bak-<timestamp>`), then apply their edits with `orq set` or by editing
|
|
79
|
+
the file.
|
|
80
|
+
- Validate: `orq config files` and `orq config` (exit 2 = error: fix and retry).
|
|
81
|
+
- Show the picks: `orq pick impl --level medium --explain --no-record` and
|
|
82
|
+
`orq pick review --impl-agent <their main implementer> --explain --no-record`. Exit 3 = no candidate: explain why
|
|
83
|
+
(roles, vendor, quota) and adjust.
|
|
84
|
+
|
|
85
|
+
## 6. Workspace
|
|
86
|
+
- Ask for the folder that groups their repos (e.g. `~/Code/acme-platform`). After the OK:
|
|
87
|
+
`orq setup --workspace <folder> --conductor <the conductor agent>` — `.orquestra/`, `.worktrees/`, the map
|
|
88
|
+
`<folder>/CLAUDE.md` from the template (never overwrites one) and the `/issue` playbook in the conductor's format
|
|
89
|
+
(`.claude/skills/issue/SKILL.md` for Claude Code, `AGENTS.md` for the others). Conductor in herdr (clone only):
|
|
90
|
+
`$ORQ/setup/new-conductor.sh <name> <folder>` also writes its instructions and permissions.
|
|
91
|
+
- Fill the repo table in `<folder>/CLAUDE.md` by inspecting each git repo inside it:
|
|
92
|
+
- base branch: `git -C <repo> symbolic-ref --short refs/remotes/origin/HEAD` (strip `origin/`); ask if the team
|
|
93
|
+
branches from another one (e.g. `dev`).
|
|
94
|
+
- group: the repo folder name in lower case (the herdr workspace or tmux group for its children).
|
|
95
|
+
- stack and verification: `package.json` scripts (lint, typecheck, test) with the package manager from the lockfile;
|
|
96
|
+
otherwise `Makefile`, `pyproject.toml`, `Cargo.toml`, `go.mod`… Leave `—` when nothing fits.
|
|
97
|
+
Show the filled table and write it only after the OK. Plane projects and the issue standard: ask, or leave the
|
|
98
|
+
placeholders and say so.
|
|
99
|
+
|
|
100
|
+
## 7. Plane
|
|
101
|
+
- Point to `$ORQ/docs/plane.md` (on GitHub without a clone). Check `claude mcp list` (and `CLAUDE_CONFIG_DIR=<dir> claude mcp list` for every
|
|
102
|
+
account that will run a conductor) for a `plane` server.
|
|
103
|
+
- Missing → tell the user to follow docs/plane.md; the API key goes in **their** MCP config, typed by them, never in
|
|
104
|
+
this chat or in a repo.
|
|
105
|
+
|
|
106
|
+
## 8. Wrap up
|
|
107
|
+
Short checklist: agents tested and enabled (roles), accounts, config path (+ backup), workspace and repos filled,
|
|
108
|
+
Plane ok/pending, anything skipped. Then how to start:
|
|
109
|
+
```bash
|
|
110
|
+
cd <folder> && claude # any terminal (or codex, opencode… reading AGENTS.md)
|
|
111
|
+
cd <folder> && herdr-conductor # or inside a herdr pane (clone + install.sh)
|
|
112
|
+
```
|
|
113
|
+
and in the conductor: `/issue DEMO-123`. `orq board` in another tab shows everything; shell completion:
|
|
114
|
+
`orq completion bash|zsh|fish|powershell` (the line to add is in `orq setup --install`).
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orq-status
|
|
3
|
-
description: Read-only summary of the orq orchestration in chat — test queue, running agents, conductors and their issues, quota per agent/account, active blocks and the recent scoreboard (orq stats). Use when the user says "/orq-status", "how's the queue", "what's running", "how much quota is left" or asks for an orq status report.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /orq-status — orchestration status in chat
|
|
7
|
-
|
|
8
|
-
**Read only.** Collect, summarize, stop. Do not dispatch, kill, unblock, or claim anything: if something looks
|
|
9
|
-
wrong, point it out and suggest the command, but let the user decide. Talk to the user in the user's language.
|
|
10
|
-
|
|
11
|
-
## 1. Collect (one Bash call, all in parallel is fine)
|
|
12
|
-
```bash
|
|
13
|
-
orq board --once 2>&1 # queue, agents, conductors, quota
|
|
14
|
-
orq block -l # agents/accounts out of orq pick
|
|
15
|
-
orq stats --days ${DAYS:-7} # scoreboard (default: last 7 days)
|
|
16
|
-
```
|
|
17
|
-
- `orq board --once` (plain text when piped; `--json` for exact fields) already gathers the test queue (TRANSPORT), running agents (TRACKS), conductors with their
|
|
18
|
-
claimed issues (MASTER) and quota (MIXER). Its quota comes from a cache refreshed in the background: if MIXER says
|
|
19
|
-
"collecting..." (or the cache is old and the user asked about quota), run `orq quota` directly instead.
|
|
20
|
-
- The user passed a number (`/orq-status 30`)? Use it as `--days`. `-w <workspace>` → pass it to `orq stats -w` and
|
|
21
|
-
as `-w <workspace>` to the board.
|
|
22
|
-
- A command missing or failing (e.g. herdr not running): say so in one line and summarize what the others returned.
|
|
23
|
-
`orq quota` exiting 1 is a known quirk (last agent not requested), not a failure — use its output.
|
|
24
|
-
|
|
25
|
-
## 2. Summarize (short, scannable)
|
|
26
|
-
Sections in this order; skip a section that is empty, saying so in one line ("queue empty", "no agents running"):
|
|
27
|
-
1. **Test queue** — what is running (issue, repo, for how long) and how many are waiting.
|
|
28
|
-
2. **Agents** — one line each: issue, label, agent·model, elapsed, memory. Flag ⚠ for >3 h running, memory near
|
|
29
|
-
the cap, or orphans (no `.run.sh`).
|
|
30
|
-
3. **Conductors** — issue(s) and state; call out any **asking for approval** (the user must act there).
|
|
31
|
-
4. **Quota** — per account/agent, the higher of 5h/week. Flag ≥70 % and ≥90 %; `?` = no data (log in again).
|
|
32
|
-
Add active blocks from `orq block -l` with their end date.
|
|
33
|
-
5. **Scoreboard** — per agent: runs, first-pass approval, median duration, new tokens. Two or three lines, not the
|
|
34
|
-
whole table, unless the user asks.
|
|
35
|
-
|
|
36
|
-
End with **at most two** suggested next actions, only when something needs attention (e.g. "Antigravity block
|
|
37
|
-
ends 16/10: `orq block -r antigravity` when quota is back"; "conductor X is waiting for your approval").
|
|
1
|
+
---
|
|
2
|
+
name: orq-status
|
|
3
|
+
description: Read-only summary of the orq orchestration in chat — test queue, running agents, conductors and their issues, quota per agent/account, active blocks and the recent scoreboard (orq stats). Use when the user says "/orq-status", "how's the queue", "what's running", "how much quota is left" or asks for an orq status report.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /orq-status — orchestration status in chat
|
|
7
|
+
|
|
8
|
+
**Read only.** Collect, summarize, stop. Do not dispatch, kill, unblock, or claim anything: if something looks
|
|
9
|
+
wrong, point it out and suggest the command, but let the user decide. Talk to the user in the user's language.
|
|
10
|
+
|
|
11
|
+
## 1. Collect (one Bash call, all in parallel is fine)
|
|
12
|
+
```bash
|
|
13
|
+
orq board --once 2>&1 # queue, agents, conductors, quota
|
|
14
|
+
orq block -l # agents/accounts out of orq pick
|
|
15
|
+
orq stats --days ${DAYS:-7} # scoreboard (default: last 7 days)
|
|
16
|
+
```
|
|
17
|
+
- `orq board --once` (plain text when piped; `--json` for exact fields) already gathers the test queue (TRANSPORT), running agents (TRACKS), conductors with their
|
|
18
|
+
claimed issues (MASTER) and quota (MIXER). Its quota comes from a cache refreshed in the background: if MIXER says
|
|
19
|
+
"collecting..." (or the cache is old and the user asked about quota), run `orq quota` directly instead.
|
|
20
|
+
- The user passed a number (`/orq-status 30`)? Use it as `--days`. `-w <workspace>` → pass it to `orq stats -w` and
|
|
21
|
+
as `-w <workspace>` to the board.
|
|
22
|
+
- A command missing or failing (e.g. herdr not running): say so in one line and summarize what the others returned.
|
|
23
|
+
`orq quota` exiting 1 is a known quirk (last agent not requested), not a failure — use its output.
|
|
24
|
+
|
|
25
|
+
## 2. Summarize (short, scannable)
|
|
26
|
+
Sections in this order; skip a section that is empty, saying so in one line ("queue empty", "no agents running"):
|
|
27
|
+
1. **Test queue** — what is running (issue, repo, for how long) and how many are waiting.
|
|
28
|
+
2. **Agents** — one line each: issue, label, agent·model, elapsed, memory. Flag ⚠ for >3 h running, memory near
|
|
29
|
+
the cap, or orphans (no `.run.sh`).
|
|
30
|
+
3. **Conductors** — issue(s) and state; call out any **asking for approval** (the user must act there).
|
|
31
|
+
4. **Quota** — per account/agent, the higher of 5h/week. Flag ≥70 % and ≥90 %; `?` = no data (log in again).
|
|
32
|
+
Add active blocks from `orq block -l` with their end date.
|
|
33
|
+
5. **Scoreboard** — per agent: runs, first-pass approval, median duration, new tokens. Two or three lines, not the
|
|
34
|
+
whole table, unless the user asks.
|
|
35
|
+
|
|
36
|
+
End with **at most two** suggested next actions, only when something needs attention (e.g. "Antigravity block
|
|
37
|
+
ends 16/10: `orq block -r antigravity` when quota is back"; "conductor X is waiting for your approval").
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
# CLAUDE.md — {{NAME}} ecosystem ({{WORKSPACE}})
|
|
2
|
-
|
|
3
|
-
This folder groups the ecosystem's repositories. Each repo has its own `CLAUDE.md`/`AGENTS.md` with commands and
|
|
4
|
-
rules — read the repo's own before touching it. This file only holds the map and the orchestration settings.
|
|
5
|
-
|
|
6
|
-
## Orchestration (read by the `/issue` skill)
|
|
7
|
-
- **Workspace:** `{{WORKSPACE}}`
|
|
8
|
-
- **Conductor (herdr):** opened with `herdr-conductor [account] [model] [-r <session-id>]` in a herdr pane, in this folder
|
|
9
|
-
(instructions in `.orquestra-conductor.md`); the **Group** in the table below is the herdr workspace (`-g`).
|
|
10
|
-
Tests from the Verification column (jest/vitest) **don't run in the child**: the conductor runs `herdr-verify` (`orq verify`
|
|
11
|
-
outside herdr; one at a time on the machine); the child does lint + `tsc` (`NODE_OPTIONS=--max-old-space-size=2048`).
|
|
12
|
-
- **Agents:** chosen by `orq-pick` from each developer's `~/.config/orq/config.toml` — nothing about models here.
|
|
13
|
-
|
|
14
|
-
## Repositories
|
|
15
|
-
|
|
16
|
-
| Folder | What it is | Stack / PM | Group | Base | Verification | Checklist |
|
|
17
|
-
|---|---|---|---|---|---|---|
|
|
18
|
-
| `{{repo}}` | {{description}} | {{stack}} | `{{group}}` | `dev` | `{{lint}}`, `{{typecheck}}`, `{{test}}` | {{what every implementer must remember in this repo, or —}} |
|
|
19
|
-
|
|
20
|
-
## How they connect
|
|
21
|
-
- {{who consumes whom; what changes first when a contract changes}}
|
|
22
|
-
|
|
23
|
-
## Branches
|
|
24
|
-
- Work starts from an **updated `origin/<Base>`** (Base column) and comes back through a PR to the same base.
|
|
25
|
-
- **Branch prefix:** `{{prefix, e.g. your-user/ — or empty}}` → one branch per issue `<prefix>plane-<lowercase-id>`.
|
|
26
|
-
Worktrees in `{{WORKSPACE}}/.worktrees/<repo>-plane-<id>`.
|
|
27
|
-
- Commit/PR conventions live **in each repo** (`.claude|.agents/skills/commit-conventions`,
|
|
28
|
-
`.github/pull_request_template.md`, `commitlint`) — don't copy them here; the `/issue` skill tells the implementer
|
|
29
|
-
to follow them.
|
|
30
|
-
- **Never** merge, push to the base/`main` or deploy unless the user asks.
|
|
31
|
-
|
|
32
|
-
## Plane ({{PLANE_URL}}, workspace `{{SLUG}}`)
|
|
33
|
-
| Project | Identifier | project_id | Repos |
|
|
34
|
-
|---|---|---|---|
|
|
35
|
-
| {{name}} | `{{ID}}` | `{{uuid}}` | {{repos}} |
|
|
36
|
-
|
|
37
|
-
States: Backlog → Todo → In Progress → **In Review** → Done.
|
|
38
|
-
|
|
39
|
-
### Issue standard (when creating or triaging)
|
|
40
|
-
- **State**: `Todo` if ready, `Backlog` if still an idea.
|
|
41
|
-
- **Assignee**: `{{user}}` → `{{user_id}}`.
|
|
42
|
-
- **Created by**: automatic (owner of the MCP token).
|
|
43
|
-
- **Priority**: `urgent` / `high` / `medium` (default) / `low`.
|
|
44
|
-
- **Labels**: {{convention — e.g. 1 type + at least 1 area}}.
|
|
45
|
-
- **Module**: pick an existing, active one; none fits → propose one to the user before creating it.
|
|
46
|
-
- **Parent/relation** to the originating issue, when there is one.
|
|
47
|
-
|
|
48
|
-
### MCP limitations
|
|
49
|
-
- {{e.g. don't use `pql`; `workitem count` returns 404}}
|
|
1
|
+
# CLAUDE.md — {{NAME}} ecosystem ({{WORKSPACE}})
|
|
2
|
+
|
|
3
|
+
This folder groups the ecosystem's repositories. Each repo has its own `CLAUDE.md`/`AGENTS.md` with commands and
|
|
4
|
+
rules — read the repo's own before touching it. This file only holds the map and the orchestration settings.
|
|
5
|
+
|
|
6
|
+
## Orchestration (read by the `/issue` skill)
|
|
7
|
+
- **Workspace:** `{{WORKSPACE}}`
|
|
8
|
+
- **Conductor (herdr):** opened with `herdr-conductor [account] [model] [-r <session-id>]` in a herdr pane, in this folder
|
|
9
|
+
(instructions in `.orquestra-conductor.md`); the **Group** in the table below is the herdr workspace (`-g`).
|
|
10
|
+
Tests from the Verification column (jest/vitest) **don't run in the child**: the conductor runs `herdr-verify` (`orq verify`
|
|
11
|
+
outside herdr; one at a time on the machine); the child does lint + `tsc` (`NODE_OPTIONS=--max-old-space-size=2048`).
|
|
12
|
+
- **Agents:** chosen by `orq-pick` from each developer's `~/.config/orq/config.toml` — nothing about models here.
|
|
13
|
+
|
|
14
|
+
## Repositories
|
|
15
|
+
|
|
16
|
+
| Folder | What it is | Stack / PM | Group | Base | Verification | Checklist |
|
|
17
|
+
|---|---|---|---|---|---|---|
|
|
18
|
+
| `{{repo}}` | {{description}} | {{stack}} | `{{group}}` | `dev` | `{{lint}}`, `{{typecheck}}`, `{{test}}` | {{what every implementer must remember in this repo, or —}} |
|
|
19
|
+
|
|
20
|
+
## How they connect
|
|
21
|
+
- {{who consumes whom; what changes first when a contract changes}}
|
|
22
|
+
|
|
23
|
+
## Branches
|
|
24
|
+
- Work starts from an **updated `origin/<Base>`** (Base column) and comes back through a PR to the same base.
|
|
25
|
+
- **Branch prefix:** `{{prefix, e.g. your-user/ — or empty}}` → one branch per issue `<prefix>plane-<lowercase-id>`.
|
|
26
|
+
Worktrees in `{{WORKSPACE}}/.worktrees/<repo>-plane-<id>`.
|
|
27
|
+
- Commit/PR conventions live **in each repo** (`.claude|.agents/skills/commit-conventions`,
|
|
28
|
+
`.github/pull_request_template.md`, `commitlint`) — don't copy them here; the `/issue` skill tells the implementer
|
|
29
|
+
to follow them.
|
|
30
|
+
- **Never** merge, push to the base/`main` or deploy unless the user asks.
|
|
31
|
+
|
|
32
|
+
## Plane ({{PLANE_URL}}, workspace `{{SLUG}}`)
|
|
33
|
+
| Project | Identifier | project_id | Repos |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| {{name}} | `{{ID}}` | `{{uuid}}` | {{repos}} |
|
|
36
|
+
|
|
37
|
+
States: Backlog → Todo → In Progress → **In Review** → Done.
|
|
38
|
+
|
|
39
|
+
### Issue standard (when creating or triaging)
|
|
40
|
+
- **State**: `Todo` if ready, `Backlog` if still an idea.
|
|
41
|
+
- **Assignee**: `{{user}}` → `{{user_id}}`.
|
|
42
|
+
- **Created by**: automatic (owner of the MCP token).
|
|
43
|
+
- **Priority**: `urgent` / `high` / `medium` (default) / `low`.
|
|
44
|
+
- **Labels**: {{convention — e.g. 1 type + at least 1 area}}.
|
|
45
|
+
- **Module**: pick an existing, active one; none fits → propose one to the user before creating it.
|
|
46
|
+
- **Parent/relation** to the originating issue, when there is one.
|
|
47
|
+
|
|
48
|
+
### MCP limitations
|
|
49
|
+
- {{e.g. don't use `pql`; `workitem count` returns 404}}
|