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.
Files changed (29) hide show
  1. cli_fleet-0.1.0/.gitignore +5 -0
  2. cli_fleet-0.1.0/LICENSE +21 -0
  3. cli_fleet-0.1.0/PKG-INFO +67 -0
  4. cli_fleet-0.1.0/README.md +34 -0
  5. cli_fleet-0.1.0/pyproject.toml +26 -0
  6. cli_fleet-0.1.0/src/cli_fleet/__init__.py +9 -0
  7. cli_fleet-0.1.0/src/cli_fleet/cli.py +132 -0
  8. cli_fleet-0.1.0/src/cli_fleet/scripts/agents/brain-neuron.md +85 -0
  9. cli_fleet-0.1.0/src/cli_fleet/scripts/agents/brain-pacemaker.md +92 -0
  10. cli_fleet-0.1.0/src/cli_fleet/scripts/agents/hunter.md +27 -0
  11. cli_fleet-0.1.0/src/cli_fleet/scripts/agents/researcher.md +18 -0
  12. cli_fleet-0.1.0/src/cli_fleet/scripts/agents/reviewer.md +21 -0
  13. cli_fleet-0.1.0/src/cli_fleet/scripts/captain.sh +160 -0
  14. cli_fleet-0.1.0/src/cli_fleet/scripts/cleanup.sh +72 -0
  15. cli_fleet-0.1.0/src/cli_fleet/scripts/examples/hunt-layerzero-brainstream.json +34 -0
  16. cli_fleet-0.1.0/src/cli_fleet/scripts/examples/hunt-layerzero.json +30 -0
  17. cli_fleet-0.1.0/src/cli_fleet/scripts/examples/openwindows-milestone2.json +34 -0
  18. cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/check-mailbox.sh +64 -0
  19. cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/consciousness-bridge.sh +64 -0
  20. cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/stream-stall-check.sh +27 -0
  21. cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/task-completed.sh +26 -0
  22. cli_fleet-0.1.0/src/cli_fleet/scripts/hooks/teammate-idle.sh +49 -0
  23. cli_fleet-0.1.0/src/cli_fleet/scripts/launch.sh +441 -0
  24. cli_fleet-0.1.0/src/cli_fleet/scripts/lib/protocol.sh +250 -0
  25. cli_fleet-0.1.0/src/cli_fleet/scripts/send.sh +24 -0
  26. cli_fleet-0.1.0/src/cli_fleet/scripts/setup.sh +254 -0
  27. cli_fleet-0.1.0/src/cli_fleet/scripts/status.sh +42 -0
  28. cli_fleet-0.1.0/src/cli_fleet/scripts/templates/brain-stream-lead.md +76 -0
  29. cli_fleet-0.1.0/src/cli_fleet/scripts/templates/team-lead.md +60 -0
@@ -0,0 +1,5 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.egg-info/
4
+ build/
5
+ dist/
@@ -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.
@@ -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.