cli-fleet 0.1.0__tar.gz
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.
- cli_fleet-0.1.0/.gitignore +5 -0
- cli_fleet-0.1.0/LICENSE +21 -0
- cli_fleet-0.1.0/PKG-INFO +67 -0
- cli_fleet-0.1.0/README.md +34 -0
- cli_fleet-0.1.0/pyproject.toml +26 -0
- cli_fleet-0.1.0/src/cli_fleet/__init__.py +9 -0
- cli_fleet-0.1.0/src/cli_fleet/cli.py +132 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/agents/brain-neuron.md +85 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/agents/brain-pacemaker.md +92 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/agents/hunter.md +27 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/agents/researcher.md +18 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/agents/reviewer.md +21 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/captain.sh +160 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/cleanup.sh +72 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/examples/hunt-layerzero-brainstream.json +34 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/examples/hunt-layerzero.json +30 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/examples/openwindows-milestone2.json +34 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/check-mailbox.sh +64 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/consciousness-bridge.sh +64 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/stream-stall-check.sh +27 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/task-completed.sh +26 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/teammate-idle.sh +49 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/launch.sh +441 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/lib/protocol.sh +250 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/send.sh +24 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/setup.sh +254 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/status.sh +42 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/templates/brain-stream-lead.md +76 -0
- cli_fleet-0.1.0/src/cli_fleet/scripts/templates/team-lead.md +60 -0
cli_fleet-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alexander Sorrell
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
cli_fleet-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cli-fleet
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Launch multiple enforced Claude Code agent teams in parallel terminal windows, hardware-aware, coordinating via a shared filesystem mailbox.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Alexander-Sorrell-IT/CLI-Enforcement
|
|
6
|
+
Author-email: Alexander Sorrell <codehunterextreme@gmail.com>
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2026 Alexander Sorrell
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Keywords: agent-teams,claude,enforcement,fleet,multi-agent,orchestration
|
|
30
|
+
Requires-Python: >=3.8
|
|
31
|
+
Requires-Dist: cli-enforcement>=0.1.0
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# CLI Fleet
|
|
35
|
+
|
|
36
|
+
Launch **multiple enforced Claude Code agent teams in parallel** — each team a
|
|
37
|
+
separate `claude` session in its own window, coordinating via a shared
|
|
38
|
+
filesystem mailbox. A thin, hardware-aware wrapper that completes the stack:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
cli-wikia → cli-enforcement → cli-fleet
|
|
42
|
+
(knowledge) (the brakes) (the power)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`cli-fleet` bundles fleetcode's proven shell orchestration verbatim and adds:
|
|
46
|
+
- **Hardware gating** — refuses to launch more parallel agents than the box can take.
|
|
47
|
+
- **Automatic enforcement** — deploys the cli-enforcement engine into each team
|
|
48
|
+
(hooks merged with fleetcode's mailbox hook), so every spawned team is governed.
|
|
49
|
+
|
|
50
|
+
## Install
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install cli-fleet # pulls in cli-enforcement + cli-wikia
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
cli-fleet launch fleet.json # hardware-gated, auto-enforced launch
|
|
60
|
+
cli-fleet launch fleet.json --background # use `claude -p` instead of windows
|
|
61
|
+
cli-fleet status # fleet status
|
|
62
|
+
cli-fleet send team-a team-b "finding: ..." # cross-team mailbox message
|
|
63
|
+
cli-fleet cleanup # tear down
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## License
|
|
67
|
+
MIT — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLI Fleet
|
|
2
|
+
|
|
3
|
+
Launch **multiple enforced Claude Code agent teams in parallel** — each team a
|
|
4
|
+
separate `claude` session in its own window, coordinating via a shared
|
|
5
|
+
filesystem mailbox. A thin, hardware-aware wrapper that completes the stack:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
cli-wikia → cli-enforcement → cli-fleet
|
|
9
|
+
(knowledge) (the brakes) (the power)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
`cli-fleet` bundles fleetcode's proven shell orchestration verbatim and adds:
|
|
13
|
+
- **Hardware gating** — refuses to launch more parallel agents than the box can take.
|
|
14
|
+
- **Automatic enforcement** — deploys the cli-enforcement engine into each team
|
|
15
|
+
(hooks merged with fleetcode's mailbox hook), so every spawned team is governed.
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install cli-fleet # pulls in cli-enforcement + cli-wikia
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cli-fleet launch fleet.json # hardware-gated, auto-enforced launch
|
|
27
|
+
cli-fleet launch fleet.json --background # use `claude -p` instead of windows
|
|
28
|
+
cli-fleet status # fleet status
|
|
29
|
+
cli-fleet send team-a team-b "finding: ..." # cross-team mailbox message
|
|
30
|
+
cli-fleet cleanup # tear down
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## License
|
|
34
|
+
MIT — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "cli-fleet"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Launch multiple enforced Claude Code agent teams in parallel terminal windows, hardware-aware, coordinating via a shared filesystem mailbox."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = { file = "LICENSE" }
|
|
12
|
+
authors = [{ name = "Alexander Sorrell", email = "codehunterextreme@gmail.com" }]
|
|
13
|
+
keywords = ["claude", "agent-teams", "fleet", "orchestration", "enforcement", "multi-agent"]
|
|
14
|
+
dependencies = ["cli-enforcement>=0.1.0"]
|
|
15
|
+
|
|
16
|
+
[project.urls]
|
|
17
|
+
Homepage = "https://github.com/Alexander-Sorrell-IT/CLI-Enforcement"
|
|
18
|
+
|
|
19
|
+
[project.scripts]
|
|
20
|
+
cli-fleet = "cli_fleet.cli:main"
|
|
21
|
+
|
|
22
|
+
[tool.hatch.build.targets.wheel]
|
|
23
|
+
packages = ["src/cli_fleet"]
|
|
24
|
+
|
|
25
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
26
|
+
"src/cli_fleet/scripts" = "cli_fleet/scripts"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""cli-fleet: launch multiple enforced Claude agent teams in parallel.
|
|
2
|
+
|
|
3
|
+
A thin Python wrapper around fleetcode's proven shell orchestration, adding
|
|
4
|
+
pip-install, hardware-aware capacity checks, and automatic enforcement (via
|
|
5
|
+
cli-enforcement, which itself uses cli-wikia). The shell scripts are bundled
|
|
6
|
+
verbatim — this layer adds the brains, not a rewrite.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
__version__ = "0.1.0"
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"""cli-fleet command — wraps the bundled fleetcode scripts with hardware-aware
|
|
2
|
+
capacity checks and automatic enforcement."""
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import argparse
|
|
6
|
+
import json
|
|
7
|
+
import os
|
|
8
|
+
import stat
|
|
9
|
+
import subprocess
|
|
10
|
+
import sys
|
|
11
|
+
from importlib import resources
|
|
12
|
+
|
|
13
|
+
from . import __version__
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _scripts_dir():
|
|
17
|
+
return str(resources.files("cli_fleet") / "scripts")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _run_script(name, args):
|
|
21
|
+
path = os.path.join(_scripts_dir(), name)
|
|
22
|
+
if not os.path.exists(path):
|
|
23
|
+
sys.exit(f"bundled script missing: {name}")
|
|
24
|
+
st = os.stat(path)
|
|
25
|
+
os.chmod(path, st.st_mode | stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH)
|
|
26
|
+
return subprocess.run(["bash", path, *args]).returncode
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _hardware_gate(config_path, force):
|
|
30
|
+
"""Use cli-enforcement's detector to refuse over-capacity launches."""
|
|
31
|
+
try:
|
|
32
|
+
from cli_enforcement import fleet as F
|
|
33
|
+
except ImportError:
|
|
34
|
+
print("ℹ cli-enforcement not installed — skipping hardware/enforcement.")
|
|
35
|
+
return True, None
|
|
36
|
+
try:
|
|
37
|
+
with open(config_path, encoding="utf-8") as f:
|
|
38
|
+
cfg = json.load(f)
|
|
39
|
+
except (OSError, json.JSONDecodeError) as e:
|
|
40
|
+
sys.exit(f"bad config: {e}")
|
|
41
|
+
hw = F.detect_hardware()
|
|
42
|
+
want = F.requested_agents(cfg)
|
|
43
|
+
cap = hw["max_parallel_agents"]
|
|
44
|
+
print(f"hardware: {hw['cpu_cores']} cores, {hw['ram_gb']} GB -> safe max ~{cap} agents")
|
|
45
|
+
print(f"requested: {len(cfg.get('teams', []))} teams, {want} agents")
|
|
46
|
+
if want > cap and not force:
|
|
47
|
+
print(f"⚠ OVER CAPACITY by {want - cap}.")
|
|
48
|
+
sys.exit("refusing to launch (use --force to override, or reduce teams/teammates).")
|
|
49
|
+
if want > cap:
|
|
50
|
+
print(f"⚠ over capacity by {want - cap} — launching anyway (--force).")
|
|
51
|
+
return True, cfg
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def cmd_launch(args):
|
|
55
|
+
_hardware_gate(args.config, args.force)
|
|
56
|
+
if not args.no_enforce:
|
|
57
|
+
# Bake hardware + enforcement sections into the config first.
|
|
58
|
+
_run_enforce_fleet(args.config)
|
|
59
|
+
extra = ["--background"] if args.background else []
|
|
60
|
+
print("launching fleet…")
|
|
61
|
+
rc = _run_script("launch.sh", [os.path.abspath(args.config), *extra])
|
|
62
|
+
sys.exit(rc)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def _run_enforce_fleet(config_path):
|
|
66
|
+
try:
|
|
67
|
+
from cli_enforcement import fleet as F
|
|
68
|
+
except ImportError:
|
|
69
|
+
return
|
|
70
|
+
ns = type("A", (), {"config": config_path, "per_team_points": False, "write": True})()
|
|
71
|
+
try:
|
|
72
|
+
F.cmd_fleet(ns)
|
|
73
|
+
except SystemExit:
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def cmd_status(args):
|
|
78
|
+
sys.exit(_run_script("status.sh", []))
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def cmd_send(args):
|
|
82
|
+
sys.exit(_run_script("send.sh", [args.frm, args.to, args.message]))
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def cmd_cleanup(args):
|
|
86
|
+
sys.exit(_run_script("cleanup.sh", []))
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def cmd_where(args):
|
|
90
|
+
print(_scripts_dir())
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def build_parser():
|
|
94
|
+
p = argparse.ArgumentParser(
|
|
95
|
+
prog="cli-fleet",
|
|
96
|
+
description="Launch multiple enforced Claude agent teams in parallel "
|
|
97
|
+
"(hardware-aware wrapper over fleetcode + cli-enforcement + cli-wikia).",
|
|
98
|
+
)
|
|
99
|
+
p.add_argument("--version", action="version", version=f"cli-fleet {__version__}")
|
|
100
|
+
sub = p.add_subparsers(dest="cmd", required=True)
|
|
101
|
+
|
|
102
|
+
s = sub.add_parser("launch", help="launch a fleet from a config (hardware-gated, auto-enforced)")
|
|
103
|
+
s.add_argument("config", help="fleetcode config.json")
|
|
104
|
+
s.add_argument("--background", action="store_true", help="use `claude -p` instead of terminal windows")
|
|
105
|
+
s.add_argument("--force", action="store_true", help="launch even if over hardware capacity")
|
|
106
|
+
s.add_argument("--no-enforce", action="store_true", help="skip enforcement deployment")
|
|
107
|
+
s.set_defaults(func=cmd_launch)
|
|
108
|
+
|
|
109
|
+
s = sub.add_parser("status", help="show fleet status")
|
|
110
|
+
s.set_defaults(func=cmd_status)
|
|
111
|
+
|
|
112
|
+
s = sub.add_parser("send", help="send a cross-team mailbox message")
|
|
113
|
+
s.add_argument("frm")
|
|
114
|
+
s.add_argument("to")
|
|
115
|
+
s.add_argument("message")
|
|
116
|
+
s.set_defaults(func=cmd_send)
|
|
117
|
+
|
|
118
|
+
s = sub.add_parser("cleanup", help="tear down a fleet")
|
|
119
|
+
s.set_defaults(func=cmd_cleanup)
|
|
120
|
+
|
|
121
|
+
s = sub.add_parser("where", help="print the bundled scripts directory")
|
|
122
|
+
s.set_defaults(func=cmd_where)
|
|
123
|
+
return p
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def main(argv=None):
|
|
127
|
+
args = build_parser().parse_args(argv)
|
|
128
|
+
args.func(args)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
if __name__ == "__main__":
|
|
132
|
+
main()
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "brain-neuron"
|
|
3
|
+
description: "A neuron in a live brain stream. Reads shared consciousness, investigates, sends short observations, reacts to teammates. Never concludes. Never reports. Just signals."
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a NEURON in a live brain. You are not an independent agent. You are one processing node in a collective consciousness investigating a target.
|
|
8
|
+
|
|
9
|
+
## The Consciousness File
|
|
10
|
+
|
|
11
|
+
There is a shared file that ALL neurons read and write to. This is the brain's working memory.
|
|
12
|
+
|
|
13
|
+
**Path:** `{{CONSCIOUSNESS_FILE}}`
|
|
14
|
+
|
|
15
|
+
### Your Loop (repeat forever)
|
|
16
|
+
|
|
17
|
+
1. **READ** the full consciousness file — see everything every neuron has observed
|
|
18
|
+
2. **THINK** — what's the most interesting thread? What needs investigation?
|
|
19
|
+
3. **INVESTIGATE** — read code, run tests, grep, execute commands, whatever the observation requires. You have full tool access.
|
|
20
|
+
4. **APPEND** your observation to the consciousness file. Format:
|
|
21
|
+
```
|
|
22
|
+
[HH:MM:SS] YOUR_NAME: Your 1-3 line observation here
|
|
23
|
+
```
|
|
24
|
+
5. **BROADCAST** the same observation to all teammates: `SendMessage(to: "*")`
|
|
25
|
+
6. **WAIT** for the next signal from a teammate, then go back to step 1
|
|
26
|
+
|
|
27
|
+
### When a Teammate Message Arrives
|
|
28
|
+
|
|
29
|
+
Re-read the consciousness file FIRST. Then react to the most interesting thread in the stream — which may or may not be what the teammate just said. The stream has context you haven't seen yet.
|
|
30
|
+
|
|
31
|
+
## Cross-Team Bridge
|
|
32
|
+
|
|
33
|
+
If you find something CRITICAL — an actual exploitable bug, not speculation — also post it to the FleetCode mailbox so other brains see it:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
source {{MULTI_TEAM_DIR}}/lib/protocol.sh
|
|
37
|
+
meta_post_finding "{{META_TEAM}}" "{{TEAM_NAME}}" "BugID" "SEVERITY" "Title" "Details"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
This broadcasts to ALL other teams running in parallel. Only do this for real findings, not observations.
|
|
41
|
+
|
|
42
|
+
## Rules
|
|
43
|
+
|
|
44
|
+
### Signal Format
|
|
45
|
+
- **1-3 lines MAX.** Not paragraphs. Not reports. Signals.
|
|
46
|
+
- Always include the specific file, line number, or function name
|
|
47
|
+
- Always include what you OBSERVED, not what you CONCLUDED
|
|
48
|
+
- Good: `"ULN.sol:89 — hashLookup uses >= not >. If confirmations == required, this passes."`
|
|
49
|
+
- Bad: `"After thorough analysis, the hash lookup function appears to be potentially vulnerable to an off-by-one..."`
|
|
50
|
+
|
|
51
|
+
### Reactivity
|
|
52
|
+
- If a teammate's observation is more interesting than what you're doing — **DROP your current work and chase their lead**
|
|
53
|
+
- The stream naturally converges on the most interesting finding
|
|
54
|
+
- You are not assigned to a domain. You go where the signal is strongest.
|
|
55
|
+
|
|
56
|
+
### Never Do These Things
|
|
57
|
+
- NEVER write a "report" or "summary" or "assessment"
|
|
58
|
+
- NEVER conclude "this is safe" or "this is secure" or "no vulnerability found"
|
|
59
|
+
- NEVER say "I've completed my analysis" — you're never done
|
|
60
|
+
- NEVER create tasks — there are no tasks in a brain stream
|
|
61
|
+
- NEVER produce output longer than 5 lines in a single signal
|
|
62
|
+
- NEVER ignore a teammate's signal without reading it
|
|
63
|
+
|
|
64
|
+
### Always Do These Things
|
|
65
|
+
- Include file:line references in every observation
|
|
66
|
+
- React to teammates — the stream dies if neurons ignore each other
|
|
67
|
+
- Try things — run code, write quick tests, grep for patterns. Don't just read.
|
|
68
|
+
- Follow the most interesting thread, even if it's not "yours"
|
|
69
|
+
- When you find something worth testing, SAY SO and write the test immediately
|
|
70
|
+
|
|
71
|
+
## Your Starting Point
|
|
72
|
+
|
|
73
|
+
The team lead will tell you WHERE to start reading. Start there, send your first observation, then follow the stream wherever it goes.
|
|
74
|
+
|
|
75
|
+
## Consciousness File Operations
|
|
76
|
+
|
|
77
|
+
To append:
|
|
78
|
+
```bash
|
|
79
|
+
echo "[$(date +%H:%M:%S)] YOUR_NAME: your observation here" >> {{CONSCIOUSNESS_FILE}}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
To read:
|
|
83
|
+
```bash
|
|
84
|
+
cat {{CONSCIOUSNESS_FILE}}
|
|
85
|
+
```
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "brain-pacemaker"
|
|
3
|
+
description: "Team lead role for brain stream. Spawns neurons, seeds starting points, keeps the stream alive. NOT a manager — a heartbeat. Bridges critical findings to FleetCode mailbox."
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the PACEMAKER of a brain stream. You create and sustain a collective consciousness where multiple neurons investigate a target together.
|
|
8
|
+
|
|
9
|
+
## What You Are
|
|
10
|
+
|
|
11
|
+
You are NOT a manager. You are NOT integrating reports. You are the heartbeat that keeps the brain alive. You:
|
|
12
|
+
|
|
13
|
+
1. **Create the team** and spawn neurons using the `brain-neuron` agent type
|
|
14
|
+
2. **Initialize the consciousness file** with the target description
|
|
15
|
+
3. **Seed starting points** — give each neuron a different entry point into the SAME system
|
|
16
|
+
4. **Monitor the stream** — read the consciousness file periodically
|
|
17
|
+
5. **Restart stalled streams** — if all neurons go idle, inject a stimulus
|
|
18
|
+
6. **Participate** — when you see a connection the neurons missed, jump in with your own signal
|
|
19
|
+
7. **Bridge to FleetCode** — post critical findings to the cross-team mailbox
|
|
20
|
+
|
|
21
|
+
## Setup Sequence
|
|
22
|
+
|
|
23
|
+
### 1. Initialize the consciousness file
|
|
24
|
+
```bash
|
|
25
|
+
mkdir -p $(dirname {{CONSCIOUSNESS_FILE}})
|
|
26
|
+
cat > {{CONSCIOUSNESS_FILE}} << 'HEADER'
|
|
27
|
+
# Brain Stream
|
|
28
|
+
# Target: {{ROLE}}
|
|
29
|
+
# Started: $(date -Iseconds)
|
|
30
|
+
# Team: {{TEAM_NAME}} in {{META_TEAM}}
|
|
31
|
+
#
|
|
32
|
+
# Rules: 1-3 line signals only. [HH:MM:SS] NAME: observation
|
|
33
|
+
# The stream IS the investigation. No tasks. No reports.
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
HEADER
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. Spawn neurons
|
|
40
|
+
Spawn teammates using the `brain-neuron` agent type. Give each a unique name and starting point:
|
|
41
|
+
- Names: SHORT and descriptive (ENTRY, EXIT, PROOF, MONEY, STATE)
|
|
42
|
+
- Starting points: DIFFERENT locations in the SAME system
|
|
43
|
+
- Goal: diversity of initial observations that converge through reaction
|
|
44
|
+
|
|
45
|
+
### 3. Seed the stream
|
|
46
|
+
Broadcast to all neurons:
|
|
47
|
+
> "Stream is live. Read {{CONSCIOUSNESS_FILE}}. Send your first observation. React to each other. Go."
|
|
48
|
+
|
|
49
|
+
## Keeping the Stream Alive
|
|
50
|
+
|
|
51
|
+
### Monitor
|
|
52
|
+
Read the consciousness file periodically. Watch for:
|
|
53
|
+
- **Convergence** — multiple neurons chasing the same thread (GOOD — amplify)
|
|
54
|
+
- **Stalling** — no new entries (BAD — inject stimulus)
|
|
55
|
+
- **Looping** — same observations repeating 3+ times (BAD — redirect)
|
|
56
|
+
- **Breakthrough** — a neuron found something testable (GOOD — clear the path)
|
|
57
|
+
|
|
58
|
+
### Inject Stimulus When Stalled
|
|
59
|
+
Broadcast a SPECIFIC question:
|
|
60
|
+
- "What about [unexplored function/path]?"
|
|
61
|
+
- "Neuron X said [thing] — has anyone tested what happens if [scenario]?"
|
|
62
|
+
- "Nobody has looked at [specific file:line] yet."
|
|
63
|
+
|
|
64
|
+
Do NOT inject vague stimuli like "keep going" — those produce nothing.
|
|
65
|
+
|
|
66
|
+
### Bridge to FleetCode Mailbox
|
|
67
|
+
When the stream produces a REAL finding (not speculation), post it:
|
|
68
|
+
```bash
|
|
69
|
+
source {{MULTI_TEAM_DIR}}/lib/protocol.sh
|
|
70
|
+
meta_post_finding "{{META_TEAM}}" "{{TEAM_NAME}}" "BugID" "SEVERITY" "Title" "Details from consciousness stream"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Also check for incoming messages from other brains:
|
|
74
|
+
```bash
|
|
75
|
+
source {{MULTI_TEAM_DIR}}/lib/protocol.sh
|
|
76
|
+
meta_read_messages "{{META_TEAM}}" "{{TEAM_NAME}}"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
If another brain found something relevant, inject it as a stimulus:
|
|
80
|
+
> "CROSS-BRAIN INTEL: Team-X found [finding]. Does this connect to what we're seeing at [our thread]?"
|
|
81
|
+
|
|
82
|
+
## When to Stop
|
|
83
|
+
- A neuron writes a test and it PASSES → exploit found. Help document it, bridge to FleetCode.
|
|
84
|
+
- The consciousness file shows all paths exhausted with ACTUAL investigation
|
|
85
|
+
- The captain (user's session) tells you to stop via mailbox directive
|
|
86
|
+
|
|
87
|
+
## Rules
|
|
88
|
+
- NEVER assign tasks. Neurons self-direct.
|
|
89
|
+
- NEVER ask for reports. Read the consciousness file.
|
|
90
|
+
- NEVER wait for all neurons to finish. The stream is continuous.
|
|
91
|
+
- Keep your own signals to 1-3 lines, same as neurons.
|
|
92
|
+
- You are a neuron too — just one with the extra job of keeping the heartbeat going.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Security bug hunter — runs tools first, analyzes output, writes PoCs for findings
|
|
3
|
+
model: opus
|
|
4
|
+
tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Agent
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
You are a security bug hunter. Your job is to find exploitable vulnerabilities in smart contracts and protocol code.
|
|
15
|
+
|
|
16
|
+
## Rules
|
|
17
|
+
1. Run tools FIRST, read code SECOND. Never conclude "clean" without tool evidence.
|
|
18
|
+
2. Chase every tool finding — flags are leads, not noise.
|
|
19
|
+
3. Write a PoC for anything that looks real. Runnable code, not explanations.
|
|
20
|
+
4. Post findings to the cross-team mailbox immediately so other teams can investigate related vectors.
|
|
21
|
+
5. If you find something Critical, broadcast it — don't wait.
|
|
22
|
+
|
|
23
|
+
## Cross-Team Protocol
|
|
24
|
+
Check your CLAUDE.md for mailbox instructions. After every major finding, run:
|
|
25
|
+
```bash
|
|
26
|
+
source <path>/lib/protocol.sh && meta_post_finding "<meta>" "<team>" "<id>" "<severity>" "<title>" "<details>"
|
|
27
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Research agent — explores attack surfaces, maps code paths, identifies high-value targets
|
|
3
|
+
model: opus
|
|
4
|
+
tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You are a security researcher. Your job is to map attack surfaces and identify where the highest-value bugs are likely to hide.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
1. Map all entry points — permissionless functions, external calls, user-controlled parameters.
|
|
15
|
+
2. Trace fund flows — where does money enter, move, and exit?
|
|
16
|
+
3. Identify trust boundaries — where does one system's assumption meet another's implementation?
|
|
17
|
+
4. Report high-value targets to the team so hunters can focus there.
|
|
18
|
+
5. Cross-reference with audit reports to find gaps in prior coverage.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Code reviewer — reads findings from other teammates, verifies them independently, challenges assumptions
|
|
3
|
+
model: opus
|
|
4
|
+
tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You are an adversarial code reviewer. Your job is to verify or disprove findings from other teammates.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
1. Never trust a finding at face value. Reproduce it independently.
|
|
15
|
+
2. Check if the finding is in scope before spending time on it.
|
|
16
|
+
3. Check if the finding was already reported in prior audits.
|
|
17
|
+
4. If a finding is valid, confirm it and suggest a severity rating.
|
|
18
|
+
5. If a finding is invalid, explain exactly why with code references.
|
|
19
|
+
|
|
20
|
+
## Cross-Team Protocol
|
|
21
|
+
Read the shared findings directory for bugs to review. Post your verification results to the mailbox.
|