add a triage archetype: haiku, a triage prompt, flows for new issues and prs
This commit is contained in:
parent
757e6fc1a7
commit
70e4c63ff7
1 changed files with 166 additions and 10 deletions
|
|
@ -17,12 +17,29 @@ swarm can also turn an archetype agent into a custom one later
|
|||
|
||||
The hyperhive flake ships these:
|
||||
|
||||
| archetype | what it sets |
|
||||
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `reviewer` | permissions `messaging`, `inbox`, `execution`: the default set without `meta`. With `execution` it can run `hive-forge`, `git` and other commands. |
|
||||
| `android-dev` | installs `android-tools` (`adb`, `fastboot`), Gradle and a JDK; default permissions. |
|
||||
| `reverse-engineer` | sets `services.hyperhive.agent.rea.enable`: installs REA, Ghidra 12.1 and procps, and allows all REA MCP tools; default permissions and the agent's normal memory cap. |
|
||||
| `ruth` | the manager agent. Inference model `sonnet`; permissions: the default set plus `manage_root_agent`, `logs` and `metrics`. Its module is empty. The swarm UI's setup assistant creates ruth from it. |
|
||||
| archetype | what it sets |
|
||||
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `reviewer` | permissions `messaging`, `inbox`, `execution`: the default set without `meta`. With `execution` it can run `hive-forge`, `git` and other commands. |
|
||||
| `android-dev` | installs `android-tools` (`adb`, `fastboot`), Gradle and a JDK; default permissions. |
|
||||
| `reverse-engineer` | sets `services.hyperhive.agent.rea.enable`: installs REA, Ghidra 12.1 and procps, and allows all REA MCP tools; default permissions and the agent's normal memory cap. |
|
||||
| `ruth` | the manager agent. Inference model `sonnet`; permissions: the default set plus `manage_root_agent`, `logs` and `metrics`. Its module is empty. The swarm UI's setup assistant creates ruth from it. |
|
||||
| `triage` | labels and assigns every new issue and pull request, then routes it. Inference model `haiku`; default permissions. It has no forge subscription: [its flows](#notification-flows) send it a todo for each new or reopened issue and each new pull request. |
|
||||
|
||||
Run one `triage` agent per swarm. Its flows send to `members`, so every `triage`
|
||||
agent gets every new item, and two of them would both label and assign it.
|
||||
|
||||
- **Flows already in place.** If the operator's flow document already sends new
|
||||
issues to an agent, as a custom flow on the notification router board does,
|
||||
creating a `triage` agent gives each new issue two todos. Switch one off on the
|
||||
board: the custom flow, or the archetype's flow
|
||||
([below](#on-the-board)).
|
||||
- **Forge rights.** A new agent's forge account is a write collaborator on its own
|
||||
config repo and has read on `internal/docs`, and nothing else. Labelling and
|
||||
assigning an issue or a pull request in a project repo takes write access to
|
||||
that repo, so the triage agent can't do either until the operator adds it as a
|
||||
write collaborator on each repo it should triage, in the forge's repo settings
|
||||
or with `hive-forge repo-add-collaborator <agent>`. Without that grant its
|
||||
label and assign calls fail.
|
||||
|
||||
An existing ruth, created before this archetype, keeps her own config repo and
|
||||
model. Set `sonnet` in the swarm UI's inference settings for her if wanted.
|
||||
|
|
@ -107,7 +124,7 @@ created from the archetype.
|
|||
hyperhiveArchetypes.triage.meta.flows = [
|
||||
{
|
||||
id = "new-issues";
|
||||
name = "new issues go to triage";
|
||||
name = "new issues get a greeting";
|
||||
nodes = [
|
||||
{ id = "src"; kind = "source"; events = [ "issues" ]; }
|
||||
{ id = "opened"; kind = "match"; when = [ { field = "action"; equals = "opened"; } ]; }
|
||||
|
|
@ -116,8 +133,8 @@ hyperhiveArchetypes.triage.meta.flows = [
|
|||
kind = "todo";
|
||||
to = "members";
|
||||
op = "upsert";
|
||||
key = "forge:{{ repo }}#{{ number }}:triage";
|
||||
text = "triage {{ repo }}#{{ number }}: {{ title }}";
|
||||
key = "forge:{{ repo }}#{{ number }}:greet";
|
||||
text = "greet {{ repo }}#{{ number }}: {{ title }}";
|
||||
}
|
||||
];
|
||||
edges = [
|
||||
|
|
|
|||
Loading…
Reference in a new issue