bobp 0.1.0__py3-none-any.whl
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.
- bobp/__init__.py +3 -0
- bobp/cli.py +80 -0
- bobp/templates/README.md +227 -0
- bobp/templates/SHORTHAND_GUIDE.md +232 -0
- bobp/templates/STARTUP.md +85 -0
- bobp/templates/agents/AGENT.md +88 -0
- bobp/templates/agents/AGENTS.md +88 -0
- bobp/templates/agents/CHAT.diagram.md +8 -0
- bobp/templates/agents/CHAT.md +12 -0
- bobp/templates/agents/DOCUMENTATION_INDEX.md +180 -0
- bobp/templates/agents/PROJECT.md.template +43 -0
- bobp/templates/agents/bob/HELP.md +224 -0
- bobp/templates/agents/bob/SKILL.md.txt +156 -0
- bobp/templates/agents/bob/state.md +41 -0
- bobp/templates/agents/cypher/SKILL.md.txt +171 -0
- bobp/templates/agents/cypher/state.md +41 -0
- bobp/templates/agents/morpheus/SKILL.md.txt +179 -0
- bobp/templates/agents/morpheus/state.md +41 -0
- bobp/templates/agents/mouse/SKILL.md.txt +195 -0
- bobp/templates/agents/mouse/state.md +41 -0
- bobp/templates/agents/neo/SKILL.md.txt +234 -0
- bobp/templates/agents/neo/state.md +41 -0
- bobp/templates/agents/oracle/.archive_COMMANDS.md +92 -0
- bobp/templates/agents/oracle/SKILL.md.txt +224 -0
- bobp/templates/agents/oracle/lessons.md +5 -0
- bobp/templates/agents/oracle/memory.md +17 -0
- bobp/templates/agents/oracle/state.md +41 -0
- bobp/templates/agents/skills/bloop/SKILL.md.txt +91 -0
- bobp/templates/agents/skills/bob-protocol/SKILL.md.txt +216 -0
- bobp/templates/agents/skills/bob-tools/SKILL.md.txt +131 -0
- bobp/templates/agents/skills/build-env/SKILL.md.txt +335 -0
- bobp/templates/agents/skills/chat/SKILL.md.txt +84 -0
- bobp/templates/agents/skills/deploy/SKILL.md.txt +112 -0
- bobp/templates/agents/skills/epic/SKILL.md.txt +105 -0
- bobp/templates/agents/skills/fix/SKILL.md.txt +124 -0
- bobp/templates/agents/skills/impl/SKILL.md.txt +137 -0
- bobp/templates/agents/skills/init/SKILL.md.txt +144 -0
- bobp/templates/agents/skills/judge/SKILL.md.txt +183 -0
- bobp/templates/agents/skills/linter/SKILL.md.txt +108 -0
- bobp/templates/agents/skills/make/SKILL.md.txt +112 -0
- bobp/templates/agents/skills/make-discover/SKILL.md.txt +44 -0
- bobp/templates/agents/skills/personas/SKILL.md.txt +92 -0
- bobp/templates/agents/skills/prep-clear/SKILL.md.txt +132 -0
- bobp/templates/agents/skills/refactor/SKILL.md.txt +127 -0
- bobp/templates/agents/skills/render/SKILL.md.txt +191 -0
- bobp/templates/agents/skills/spike/SKILL.md.txt +108 -0
- bobp/templates/agents/skills/sprint/SKILL.md.txt +389 -0
- bobp/templates/agents/skills/story/SKILL.md.txt +108 -0
- bobp/templates/agents/skills/test-runner/SKILL.md.txt +68 -0
- bobp/templates/agents/skills/uat/SKILL.md.txt +111 -0
- bobp/templates/agents/skills/via/SKILL.md.txt +70 -0
- bobp/templates/agents/smith/SKILL.md.txt +307 -0
- bobp/templates/agents/smith/state.md +41 -0
- bobp/templates/agents/tank/SKILL.md.txt +162 -0
- bobp/templates/agents/tank/state.md +41 -0
- bobp/templates/agents/templates/ARTIFACTS.md +49 -0
- bobp/templates/agents/templates/_template_ARCH.md +93 -0
- bobp/templates/agents/templates/_template_CHAT.md +22 -0
- bobp/templates/agents/templates/_template_DECISION.md +53 -0
- bobp/templates/agents/templates/_template_DOMAIN.md +119 -0
- bobp/templates/agents/templates/_template_LESSON.md +36 -0
- bobp/templates/agents/templates/_template_PERSONA_SKILL.md +80 -0
- bobp/templates/agents/templates/_template_SDLC.javascript.md +27 -0
- bobp/templates/agents/templates/_template_SDLC.md +147 -0
- bobp/templates/agents/templates/_template_SDLC.python.md +26 -0
- bobp/templates/agents/templates/_template_TEST_STRATEGY.md +75 -0
- bobp/templates/agents/templates/_template_UAT_PLAN.md +46 -0
- bobp/templates/agents/templates/_template_USER_STORIES.md +59 -0
- bobp/templates/agents/templates/_template_finding.md +48 -0
- bobp/templates/agents/templates/_template_state.md +35 -0
- bobp/templates/agents/templates/_template_task.md +79 -0
- bobp/templates/agents/templates/_template_tldr.md +36 -0
- bobp/templates/agents/trin/SKILL.md.txt +207 -0
- bobp/templates/agents/trin/state.md +41 -0
- bobp/templates/docs/PERSONA_EVALUATION.md +74 -0
- bobp/templates/docs/WALKTHROUGH.md +565 -0
- bobp/tools/__init__.py +0 -0
- bobp/tools/_bob_manage.py +211 -0
- bobp/tools/_common.py +35 -0
- bobp/tools/bob_clean.py +14 -0
- bobp/tools/bob_diff.py +17 -0
- bobp/tools/bob_install.py +20 -0
- bobp/tools/bob_pull.py +19 -0
- bobp/tools/bob_update.py +17 -0
- bobp/tools/chat.py +116 -0
- bobp/tools/chat_diagram.py +326 -0
- bobp/tools/chat_merge.py +234 -0
- bobp/tools/chat_report.py +338 -0
- bobp/tools/make.py +195 -0
- bobp/tools/mermaid_render/package.json +10 -0
- bobp/tools/mermaid_render/render.mjs +100 -0
- bobp/tools/persona_eval.py +592 -0
- bobp/tools/persona_eval_assets/__init__.py +1 -0
- bobp/tools/persona_eval_assets/catalog.json +131 -0
- bobp/tools/persona_eval_assets/package-lock.json +10186 -0
- bobp/tools/persona_eval_assets/package.json +12 -0
- bobp/tools/persona_eval_jev.py +315 -0
- bobp/tools/prep_tldr.py +270 -0
- bobp/tools/session_trace.py +277 -0
- bobp/tools/setup_agent_links.py +735 -0
- bobp/tools/teardown_agent_links.py +225 -0
- bobp/tools/tldr.py +162 -0
- bobp/tools/trace_annotate.py +647 -0
- bobp/tools/trace_rules.json +32 -0
- bobp-0.1.0.dist-info/METADATA +110 -0
- bobp-0.1.0.dist-info/RECORD +110 -0
- bobp-0.1.0.dist-info/WHEEL +5 -0
- bobp-0.1.0.dist-info/entry_points.txt +2 -0
- bobp-0.1.0.dist-info/licenses/LICENSE +674 -0
- bobp-0.1.0.dist-info/top_level.txt +1 -0
bobp/__init__.py
ADDED
bobp/cli.py
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"""bobp command-line dispatcher.
|
|
2
|
+
|
|
3
|
+
TLDR:
|
|
4
|
+
Single `bobp <subcommand> [args...]` entry point that front-ends the
|
|
5
|
+
scripts in bobp.tools. Each subcommand maps to a tool module; the
|
|
6
|
+
module is imported lazily (only when its subcommand is invoked) so
|
|
7
|
+
that subcommands with extra dependencies (prep-tldr, session-trace,
|
|
8
|
+
trace-annotate all import the separate `via` package) don't block
|
|
9
|
+
unrelated subcommands like `bobp chat` from running without it
|
|
10
|
+
installed. Argument parsing itself is delegated entirely to each
|
|
11
|
+
module's own main(), which parses sys.argv directly, so this
|
|
12
|
+
dispatcher just rewrites sys.argv[0] to the subcommand name before
|
|
13
|
+
calling in.
|
|
14
|
+
|
|
15
|
+
Bob-protocol project management (install/update/pull/clean/diff) is
|
|
16
|
+
implemented natively in bobp.tools._bob_manage; the templates Makefile's
|
|
17
|
+
install_bob/update_bob/pull_bob/clean_bob/diff_bob targets are now thin
|
|
18
|
+
wrappers that just call these subcommands.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
import importlib
|
|
22
|
+
import sys
|
|
23
|
+
|
|
24
|
+
SUBCOMMANDS = {
|
|
25
|
+
"chat": "bobp.tools.chat",
|
|
26
|
+
"chat-diagram": "bobp.tools.chat_diagram",
|
|
27
|
+
"chat-merge": "bobp.tools.chat_merge",
|
|
28
|
+
"chat-report": "bobp.tools.chat_report",
|
|
29
|
+
"make": "bobp.tools.make",
|
|
30
|
+
"persona-eval": "bobp.tools.persona_eval",
|
|
31
|
+
"prep-tldr": "bobp.tools.prep_tldr",
|
|
32
|
+
"session-trace": "bobp.tools.session_trace",
|
|
33
|
+
"setup-agent-links": "bobp.tools.setup_agent_links",
|
|
34
|
+
"teardown-agent-links": "bobp.tools.teardown_agent_links",
|
|
35
|
+
"tldr": "bobp.tools.tldr",
|
|
36
|
+
"trace-annotate": "bobp.tools.trace_annotate",
|
|
37
|
+
"install": "bobp.tools.bob_install",
|
|
38
|
+
"update": "bobp.tools.bob_update",
|
|
39
|
+
"pull": "bobp.tools.bob_pull",
|
|
40
|
+
"clean": "bobp.tools.bob_clean",
|
|
41
|
+
"diff": "bobp.tools.bob_diff",
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def print_help() -> None:
|
|
46
|
+
print("usage: bobp <subcommand> [args...]")
|
|
47
|
+
print()
|
|
48
|
+
print("subcommands:")
|
|
49
|
+
for name in sorted(SUBCOMMANDS):
|
|
50
|
+
print(f" {name}")
|
|
51
|
+
print()
|
|
52
|
+
print("Run `bobp <subcommand> --help` for subcommand-specific options.")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def main(argv: "list[str] | None" = None) -> int:
|
|
56
|
+
argv = sys.argv[1:] if argv is None else list(argv)
|
|
57
|
+
|
|
58
|
+
if not argv:
|
|
59
|
+
print_help()
|
|
60
|
+
return 1
|
|
61
|
+
|
|
62
|
+
if argv[0] in ("-h", "--help"):
|
|
63
|
+
print_help()
|
|
64
|
+
return 0
|
|
65
|
+
|
|
66
|
+
name, rest = argv[0], argv[1:]
|
|
67
|
+
module_path = SUBCOMMANDS.get(name)
|
|
68
|
+
if module_path is None:
|
|
69
|
+
print(f"bobp: unknown subcommand '{name}'", file=sys.stderr)
|
|
70
|
+
print_help()
|
|
71
|
+
return 1
|
|
72
|
+
|
|
73
|
+
module = importlib.import_module(module_path)
|
|
74
|
+
sys.argv = [name, *rest]
|
|
75
|
+
module.main()
|
|
76
|
+
return 0
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
if __name__ == "__main__":
|
|
80
|
+
sys.exit(main())
|
bobp/templates/README.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
TL;DR: BobProtocol is a reusable Claude Code Skills framework. Invoke personas with `*chat`, Bloop commands (`*fix`, `*impl`, `*plan sprint`), or direct skill triggers. State persists per-persona in `agents/[persona]/`.
|
|
2
|
+
|
|
3
|
+
# BobProtocol: Multi-Persona AI Development Framework
|
|
4
|
+
|
|
5
|
+
A reusable multi-harness agent-skills framework that orchestrates a team of specialized AI personas. One LLM dynamically switches between 9 expert roles based on task context, with persistent state and structured handoffs across sessions.
|
|
6
|
+
|
|
7
|
+
## How It Works
|
|
8
|
+
|
|
9
|
+
Each persona is an agent instruction file with standard YAML frontmatter for `name` and `description`:
|
|
10
|
+
- A Markdown command interface documenting `*prefix command` invocations
|
|
11
|
+
- Optional `Triggers` and `Requires` sections in the body for invocation aliases and prerequisite skills
|
|
12
|
+
- State files in `agents/[persona]/` — the only memory that survives context clears and session restarts
|
|
13
|
+
|
|
14
|
+
All coordination flows through `agents/CHAT.md` — a shared team log that every persona reads on entry.
|
|
15
|
+
|
|
16
|
+
## The Team
|
|
17
|
+
|
|
18
|
+
| Persona | Role | Prefix | Responsibility |
|
|
19
|
+
|---------|------|--------|----------------|
|
|
20
|
+
| **Neo** | Senior SWE | `*swe` | Implementation, debugging, coding |
|
|
21
|
+
| **Morpheus** | Tech Lead | `*lead` | Architecture, design decisions, code review |
|
|
22
|
+
| **Trin** | QA Guardian | `*qa` | Testing, quality gates, coverage |
|
|
23
|
+
| **Oracle** | Knowledge Officer | `*ora` | Documentation, knowledge queries, decisions |
|
|
24
|
+
| **Mouse** | Scrum Master | `*sm` | Sprint tracking, coordination, velocity |
|
|
25
|
+
| **Cypher** | Product Manager | `*pm` | Requirements, user stories, PRDs |
|
|
26
|
+
| **Bob** | Prompt Engineer | `*prompt` | Agent creation, system improvement |
|
|
27
|
+
| **Smith** | HCI Expert | `*user` | Usability testing, HCI evaluation, sprint gates |
|
|
28
|
+
| **Tank** | DevOps Engineer | `*devops` | IaC, CI/CD, deployment automation, environment management, systems reliability |
|
|
29
|
+
|
|
30
|
+
## Skills & Workflow Loops
|
|
31
|
+
|
|
32
|
+
Bob Protocol organizes autonomous workflows into hierarchical loops and supporting capabilities:
|
|
33
|
+
|
|
34
|
+
### Planning Loops (Strategic Scoping & Specification)
|
|
35
|
+
| Skill / Trigger | Focus / Deliverable | Literature |
|
|
36
|
+
|-----------------|---------------------|------------|
|
|
37
|
+
| `epic` / `*plan epic` | Problem framing, appetite budget, domain model (`DOMAIN.md`) | *Shape Up* (Singer) / *Inspired* (Cagan) |
|
|
38
|
+
| `story` / `*plan story` | Vertical user story slicing, INVEST criteria, ADRs (`ARCH.md`), test strategy | *User Story Mapping* (Patton) / *Agile Estimating* (Cohn) |
|
|
39
|
+
| `sprint` / `*plan sprint` | Sprint planning, SDLC verification, task board (`task.md`) with Work Loops | *The Scrum Guide* (Schwaber & Sutherland) |
|
|
40
|
+
|
|
41
|
+
### Work Loops (Tactical Execution Chains)
|
|
42
|
+
| Skill / Trigger | Execution Chain | Invariant / Literature |
|
|
43
|
+
|-----------------|-----------------|------------------------|
|
|
44
|
+
| `impl` / `*impl` | Neo TDD → Trin verify → Morpheus review | **Test-First**: failing test required before production code (*TDD* — Beck) |
|
|
45
|
+
| `fix` / `*fix` | Neo diagnose → User confirm → Neo fix → Trin test → Morpheus review | **Reproduce First**: diagnose & confirm before edits (*Debugging* — Agans) |
|
|
46
|
+
| `refactor` / `*refactor` | Morpheus plan → Trin baseline → Neo restructure → Trin parity → Morpheus | **Two Hats**: zero behavioral change, green before/after (*Refactoring* — Fowler) |
|
|
47
|
+
| `spike` / `*spike` | Oracle survey → Neo prototype → Morpheus decision/ADR | **Disposable**: timeboxed, zero prod commits (*XP Installed* / *Shape Up*) |
|
|
48
|
+
| `uat` / `*uat` | Trin acceptance matrix → Smith UX audit → Cypher sign-off | **Real-World Experience**: end-to-end evaluation (*Agile Testing* — Crispin) |
|
|
49
|
+
| `deploy` / `*deploy` | Tank Makefile deploy → Trin live smoke test | **Pipeline as Code**: automated release via SDLC Makefile (*Continuous Delivery*) |
|
|
50
|
+
| `bloop` / `*bloop` | Multi-persona work-loop conductor and catalog | Autonomous orchestration, state preservation, anti-loop guards |
|
|
51
|
+
|
|
52
|
+
### Supporting Protocol & Tool Skills
|
|
53
|
+
- **Session Lifecycle**: `init` (session startup & discovery), `prep-clear` (checkpointing state before `/clear`), `judge` / `*judge` (persona, skill, and tool evaluation)
|
|
54
|
+
- **Protocol & Operations**: `bob-protocol` (routing & state protocol), `bob-tools` (`bobp` CLI operations), `build-env` (`docs/SDLC.md` management), `chat` (team logging), `linter` (code analysis), `make` (captured target runner), `make-discover` (target self-discovery), `personas` (specialist switching), `render` (cloud deployment), `test-runner` (bounded tests), `via` (symbol lookup)
|
|
55
|
+
|
|
56
|
+
## Invoking Agents
|
|
57
|
+
|
|
58
|
+
### Autonomous Workflow Loops (Recommended)
|
|
59
|
+
```bash
|
|
60
|
+
# Strategic Planning Loops
|
|
61
|
+
*plan epic <name> # Cypher framing → Smith gate → Morpheus domain → (Spikes)
|
|
62
|
+
*plan story <slice> # Cypher story → Smith gate 1 → Morpheus arch → Trin test → Smith gate 2
|
|
63
|
+
*plan sprint # Cypher → Smith gate → Morpheus → Smith gate → Mouse task board
|
|
64
|
+
|
|
65
|
+
# Tactical Work Loops
|
|
66
|
+
*impl <task> # Neo TDD (red-green-refactor) → Trin verify → Morpheus review
|
|
67
|
+
*fix <bug> # Neo repro/diagnose → confirm → surgical fix → Trin regression sweep
|
|
68
|
+
*refactor <target> # Morpheus plan → Trin baseline → Neo restructure → Trin parity
|
|
69
|
+
*spike <topic> # Oracle survey → Neo prototype → Morpheus decision / ADR
|
|
70
|
+
*uat <scope> # Trin scenario matrix → Smith UX evaluation → Cypher sign-off
|
|
71
|
+
*deploy <env> # Tank Makefile deploy → Trin live smoke test
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### `*chat` — auto-select a persona for a single task
|
|
75
|
+
```
|
|
76
|
+
*chat fix the authentication bug in auth.py
|
|
77
|
+
*chat what's the current sprint status?
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### `*chat @Persona` — direct single-persona invocation
|
|
81
|
+
Directly invoke a persona using Gemini's `@` syntax or the internal `@Persona` trigger.
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
*chat @neo *fix authentication bug in auth.py
|
|
85
|
+
@neo *fix authentication bug in auth.py
|
|
86
|
+
*chat @trin *test all
|
|
87
|
+
*chat @oracle *ora ask What's our pattern for error handling?
|
|
88
|
+
*chat @smith *user review the sprint stories
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
> **Note on Harness Prefixes**: Different AI harnesses use different prefixes for direct invocation (e.g., `@persona` or `/persona` in Gemini CLI, `/persona` in Claude, `$persona` in Codex). If you are invoked directly via such a command, you MUST log the invocation to `agents/CHAT.md` immediately upon entry if it has not already been logged.
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
### Direct skill triggers — bypass chat routing
|
|
95
|
+
```
|
|
96
|
+
*swe impl Add input validation to the API
|
|
97
|
+
*qa test all
|
|
98
|
+
*ora ask Where is the database schema defined?
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Project Structure
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
agents/
|
|
105
|
+
├── CHAT.md # Shared team communication log
|
|
106
|
+
├── CHAT.diagram.md # Auto-generated Mermaid view of CHAT.md (derived, don't edit)
|
|
107
|
+
├── PROJECT.md # Project capabilities (created by setup when missing)
|
|
108
|
+
├── PROJECT.md.template # Reference template for capability declarations
|
|
109
|
+
├── [persona]/ # Per-persona state and working memory (e.g. neo/, trin/)
|
|
110
|
+
│ ├── SKILL.md # Persona definition + command interface
|
|
111
|
+
│ └── state.md # Context, current task, and resume plan (state)
|
|
112
|
+
├── skills/ # 24 shared skills discovered by harnesses
|
|
113
|
+
│ ├── epic/ # Strategic epic planning (*plan epic)
|
|
114
|
+
│ ├── story/ # User story slicing & ADRs (*plan story)
|
|
115
|
+
│ ├── sprint/ # Sprint planning & cadence container (*plan sprint)
|
|
116
|
+
│ ├── impl/ # Feature TDD work-loop (*impl)
|
|
117
|
+
│ ├── fix/ # Defect diagnosis & surgical fix work-loop (*fix)
|
|
118
|
+
│ ├── refactor/ # Behavior-preserving refactoring work-loop (*refactor)
|
|
119
|
+
│ ├── spike/ # Disposable research spike work-loop (*spike)
|
|
120
|
+
│ ├── uat/ # End-to-end acceptance & UX audit work-loop (*uat)
|
|
121
|
+
│ ├── deploy/ # Automated delivery & live smoke work-loop (*deploy)
|
|
122
|
+
│ ├── bloop/ # Work-loop conductor & catalog (*bloop)
|
|
123
|
+
│ ├── init/ # Session initialization & resume (*init, *resume)
|
|
124
|
+
│ ├── prep-clear/ # Context checkpointing before /clear (*prep-clear)
|
|
125
|
+
│ ├── judge/ # Agent & prompt optimization loop (*judge)
|
|
126
|
+
│ └── ... # Supporting tool skills (make, chat, via, build-env, etc.)
|
|
127
|
+
└── templates/ # Document and state file templates (ARTIFACTS.md, rubrics)
|
|
128
|
+
.claude/skills/ # Discovery links to persona and shared-skill folders
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`bobp` never installs, generates, or modifies a `Makefile` — that stays entirely
|
|
132
|
+
yours. See "Running Your Own Make Targets" below.
|
|
133
|
+
|
|
134
|
+
## Installing into a Project
|
|
135
|
+
|
|
136
|
+
`bobp` is installed separately from the framework files. This project version
|
|
137
|
+
is not yet published to PyPI; from a BobProtocol source checkout, install the
|
|
138
|
+
CLI as a uv-managed user tool:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
cd /path/to/bob_protocol
|
|
142
|
+
uv tool install --editable .
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Installing, updating, pulling, diffing, and cleaning a Bob Protocol install
|
|
146
|
+
are `bobp` subcommands, not `make` targets:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# First install
|
|
150
|
+
bobp install /path/to/your/project
|
|
151
|
+
|
|
152
|
+
# Later, once installed
|
|
153
|
+
bobp update /path/to/your/project # refresh skills/templates, preserving state
|
|
154
|
+
bobp pull /path/to/another/project # pull framework updates from a peer project
|
|
155
|
+
bobp diff /path/to/your/project # compare the template against an install
|
|
156
|
+
bobp clean # reset state files and remove symlinks (run inside the project)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Project Setup (after install)
|
|
160
|
+
|
|
161
|
+
1. Run skill link setup:
|
|
162
|
+
```bash
|
|
163
|
+
bobp setup-agent-links
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
2. Review project capabilities in `agents/PROJECT.md`. Setup creates this file when it is missing and enables `via` only when its integration setup succeeds:
|
|
167
|
+
```markdown
|
|
168
|
+
## Capabilities
|
|
169
|
+
via: enabled # present only when via integration setup succeeds
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Link setup creates project discovery links and may also write to the user's
|
|
173
|
+
Codex skills directory and Codex MCP configuration. When the `via` CLI is
|
|
174
|
+
installed, setup configures the project's `.mcp.json` and index too. Review its
|
|
175
|
+
output; restart Codex after creating or changing Codex links.
|
|
176
|
+
|
|
177
|
+
## Team Coordination Commands
|
|
178
|
+
|
|
179
|
+
These are `bobp` subcommands, not `make` targets — bob never touches your `Makefile`:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
bobp tldr # show TL;DR from all project files
|
|
183
|
+
bobp chat "..." --persona X --cmd Y # post a message to CHAT.md
|
|
184
|
+
bobp chat-diagram # regenerate CHAT.diagram.md on demand
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Running Your Own Make Targets
|
|
188
|
+
|
|
189
|
+
If your project has its own `Makefile` (test, lint, build — whatever you already
|
|
190
|
+
use), run it through `bobp make` instead of bare `make` to get output captured to
|
|
191
|
+
`build/build.out` and a pass/fail status posted to CHAT.md:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
bobp make test # silent — exit code + 10-line tail on finish
|
|
195
|
+
bobp make -vvv test # full output live
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
See the `make` skill for the full contract.
|
|
199
|
+
|
|
200
|
+
## Optional: via Integration
|
|
201
|
+
|
|
202
|
+
[`via`](https://github.com/drewpifer/via) is a Python codebase symbol index. When enabled in `agents/PROJECT.md`, personas use `via` for code navigation instead of reading files directly — saving significant context.
|
|
203
|
+
|
|
204
|
+
Running `bobp setup-agent-links` installs the generic via MCP config with `via install mcp`, ensures the project has a `.via/index.db`, and, when Codex is installed, registers the same server with Codex using `codex mcp add via --env HOME=<project-root> -- <via> mcp serve --no-web <project-root>`.
|
|
205
|
+
|
|
206
|
+
Each persona knows how to use `via` in the way that best fits their role (e.g. Trin uses `--stale` for coverage gap detection, Morpheus uses `-oD` for architecture diagrams).
|
|
207
|
+
|
|
208
|
+
## State Management and Cold Start Recovery
|
|
209
|
+
|
|
210
|
+
State files in `agents/[persona]/state.md` are your working memory — the only state that survives context clears and session restarts.
|
|
211
|
+
|
|
212
|
+
Every persona follows the strict State Management Protocol:
|
|
213
|
+
- **ENTRY**: Read `agents/CHAT.md` (last 10–20 messages) → load `agents/[persona]/state.md`
|
|
214
|
+
- **WORK**: Update working memory with progress, blockers, and findings
|
|
215
|
+
- **EXIT (Mandatory Hard Gate)**:
|
|
216
|
+
1. Follow `agents/skills/prep-clear/SKILL.md` before `/clear` or persona switch — flush Context, Current Task progress %, and Next Steps cold-start resume plan to `state.md`.
|
|
217
|
+
2. Post handoff message: `bobp chat "<summary> @NextPersona *command" --persona <Name> --cmd handoff --to <next>`.
|
|
218
|
+
3. Never switch personas or clear context without completing both steps.
|
|
219
|
+
|
|
220
|
+
If resuming after a context clear with no memory:
|
|
221
|
+
1. Run `*init` or read the bottom of `agents/CHAT.md` to find the last handoff
|
|
222
|
+
2. Load that persona's `state.md`
|
|
223
|
+
3. Resume immediately from its `## Next Steps` section
|
|
224
|
+
|
|
225
|
+
See **[docs/WALKTHROUGH.md](docs/WALKTHROUGH.md)** for a complete step-by-step tutorial building a restaurant reservation app, and **[docs/PERSONA_EVALUATION.md](docs/PERSONA_EVALUATION.md)** for setting up, running, and reviewing persona eval suites.
|
|
226
|
+
See **[STARTUP.md](STARTUP.md)** for LLM startup instructions.
|
|
227
|
+
See **[SHORTHAND_GUIDE.md](SHORTHAND_GUIDE.md)** for the full trigger/command reference.
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
TL;DR: Use `*fix`, `*impl`, `*plan sprint` for full workflow chains. Use `*chat @Persona *command` for direct single-persona control. All triggers listed below.
|
|
2
|
+
|
|
3
|
+
# Shorthand Guide — Skill Triggers
|
|
4
|
+
|
|
5
|
+
## Session Lifecycle (Init, Checkpoint & Resume)
|
|
6
|
+
|
|
7
|
+
Formalized in `agents/skills/init/SKILL.md` & `agents/skills/prep-clear/SKILL.md`.
|
|
8
|
+
|
|
9
|
+
| Command / Trigger | Action | Primary Handler |
|
|
10
|
+
|-------------------|--------|-----------------|
|
|
11
|
+
| `/init`, `*init`, `/bob-protocol init` | Read chat/state, check discovery links, post initialization, and display quick reference | Bob (`*prompt`) |
|
|
12
|
+
| `*resume` | Cold-start recovery from last CHAT.md handoff | Last active persona |
|
|
13
|
+
| `*prep-clear`, `/prep-clear`, `*checkpoint` | Reconcile state, write resume plan, prepare for `/clear` | Active persona |
|
|
14
|
+
| `*startup`, `*chat init` | Startup protocol alias | Bob (`*prompt`) |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Bloop Commands (Bob Loops — Hierarchical SDLC Cycles)
|
|
19
|
+
|
|
20
|
+
Multi-persona automated workflow loops decomposed into two hierarchical tiers: **Planning Loops** (strategic scoping and specification) and **Work Loops** (tactical execution and verification). Grounded in canonical software engineering literature (Beck, Agans, Fowler, Singer, Patton, Schwaber & Sutherland, Humble & Farley).
|
|
21
|
+
|
|
22
|
+
### Planning Loops (Strategic Scoping & Specification)
|
|
23
|
+
|
|
24
|
+
| Command / Loop | Skill | Sequence | Primary Deliverables / Gates | Literature |
|
|
25
|
+
|----------------|-------|----------|------------------------------|------------|
|
|
26
|
+
| `*plan epic <name>` | `skills/epic` | Cypher → Smith → Morpheus → (Spikes) | Problem framing, appetite, `DOMAIN.md`, de-risking spikes | *Shape Up* (Singer) / *Inspired* (Cagan) |
|
|
27
|
+
| `*plan story <slice>` | `skills/story` | Cypher → [Smith Gate 1] → Morpheus → Trin → [Smith Gate 2] | Vertical slice, INVEST criteria, `ARCH.md` ADRs, `TEST_STRATEGY.md` | *User Story Mapping* (Patton) / *Agile Estimating* (Cohn) |
|
|
28
|
+
| `*plan sprint [tier1\|tier2]` | `skills/sprint` | Cypher → Smith → Morpheus → Smith → Mouse → Morpheus | Sprint goal, scoped stories, prioritized `task.md` with Work Loops | *The Scrum Guide* (Schwaber & Sutherland) |
|
|
29
|
+
|
|
30
|
+
### Work Loops (Tactical Execution & Verification)
|
|
31
|
+
|
|
32
|
+
| Command / Loop | Skill | Sequence | Core Invariant | Literature |
|
|
33
|
+
|----------------|-------|----------|----------------|------------|
|
|
34
|
+
| `*impl <task>` | `skills/impl` | Neo → Trin → Morpheus | Test-first (no code without failing test); acceptance verified | *TDD: By Example* (Beck) |
|
|
35
|
+
| `*fix <defect>` | `skills/fix` | Neo → Trin → Morpheus | Reproduce & diagnose first; confirm diagnosis before editing; zero regressions | *Debugging* (Agans) |
|
|
36
|
+
| `*refactor <target>` | `skills/refactor` | Neo → Trin → Morpheus | Two-Hats rule; zero behavioral change; green baseline before and after | *Refactoring* (Fowler) |
|
|
37
|
+
| `*spike <unknown>` | `skills/spike` | Neo / Morpheus → Oracle | Disposable exploration; zero production code; outputs finding/decision | *XP Installed* (Jeffries) / *Shape Up* |
|
|
38
|
+
| `*uat <phase>` | `skills/uat` | Trin → Smith → (Neo if defect) | End-to-end acceptance + UX heuristic evaluation; defect halts to `*fix` | *Agile Testing* (Crispin & Gregory) |
|
|
39
|
+
| `*deploy <target>` | `skills/deploy` | Tank → Trin smoke | Automated release via Makefile; live smoke test before pass | *Continuous Delivery* (Humble & Farley) |
|
|
40
|
+
| `*judge <persona-or-skill>` | `skills/judge` | Trin → Smith → Neo or Bob → Trin | Evaluate a fixed scenario with evidence, then verify a focused fix in a fresh run | Eval-driven development |
|
|
41
|
+
| `*qa <scope>` | `skills/trin` | Trin → Morpheus | Test suite execution & codebase health verification | *Working Effectively with Legacy Code* |
|
|
42
|
+
| `*review <target>` | `skills/morpheus` | Morpheus → Trin | Architectural alignment, maintainability, and quality review | *Clean Architecture* (Martin) |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Direct Skill Triggers
|
|
47
|
+
|
|
48
|
+
Invoke a persona directly — bypasses `*chat` routing.
|
|
49
|
+
|
|
50
|
+
### Neo — Software Engineer
|
|
51
|
+
| Trigger | Action |
|
|
52
|
+
|---------|--------|
|
|
53
|
+
| `*swe impl <task>` | Implement a feature (TDD) |
|
|
54
|
+
| `*swe fix <issue>` | Diagnose and fix a bug |
|
|
55
|
+
| `*swe test <scope>` | Write and run tests |
|
|
56
|
+
| `*swe refactor <target>` | Refactor without changing behaviour |
|
|
57
|
+
|
|
58
|
+
### Morpheus — Tech Lead
|
|
59
|
+
| Trigger | Action |
|
|
60
|
+
|---------|--------|
|
|
61
|
+
| `*lead arch <topic>` | Architecture review or decision |
|
|
62
|
+
| `*lead plan <story>` | Create technical implementation plan |
|
|
63
|
+
| `*lead decide <choice>` | Make and record an architectural decision |
|
|
64
|
+
| `*lead guide <area>` | Provide technical guidance |
|
|
65
|
+
| `*lead refactor <target>` | Plan a refactoring strategy |
|
|
66
|
+
| `*lead review <target>` | Review code for architecture alignment |
|
|
67
|
+
|
|
68
|
+
### Trin — QA Guardian
|
|
69
|
+
| Trigger | Action |
|
|
70
|
+
|---------|--------|
|
|
71
|
+
| `*qa test <scope>` | Run tests (`all`, `unit`, `integration`, or specific) |
|
|
72
|
+
| `*qa uat <phase>` | UAT — verify acceptance criteria for a phase |
|
|
73
|
+
| `*qa verify <feature>` | Verify a feature meets acceptance criteria |
|
|
74
|
+
| `*qa review <change>` | Code review for quality and correctness |
|
|
75
|
+
| `*qa report` | Summarise codebase health |
|
|
76
|
+
| `*qa repro <issue>` | Create a minimal reproduction of a bug |
|
|
77
|
+
|
|
78
|
+
### Oracle — Knowledge Officer
|
|
79
|
+
| Trigger | Action |
|
|
80
|
+
|---------|--------|
|
|
81
|
+
| `*ora ask <question>` | Query the knowledge base |
|
|
82
|
+
| `*ora record <type> <content>` | Log a decision, lesson, or finding |
|
|
83
|
+
| `*ora distill <file>` | Break down a large document with TL;DR + ToC |
|
|
84
|
+
| `*ora tldr [glob]` | Write/update TL;DR blocks in project files |
|
|
85
|
+
| `*ora groom` | Audit and organise the knowledge base |
|
|
86
|
+
| `*ora archive` | Archive old CHAT.md messages (>50-100 messages) |
|
|
87
|
+
| `*ora report <moniker>` | Archive the sprint chat and reset the current log through `bobp chat-report` |
|
|
88
|
+
|
|
89
|
+
### Cypher — Product Manager
|
|
90
|
+
| Trigger | Action |
|
|
91
|
+
|---------|--------|
|
|
92
|
+
| `*pm plan sprint` | Define sprint stories and acceptance criteria |
|
|
93
|
+
| `*pm story <request>` | Write user stories from a feature request |
|
|
94
|
+
| `*pm doc <topic>` | Create or update a PRD or product document |
|
|
95
|
+
| `*pm assess <scope>` | Assess feature readiness or completion status |
|
|
96
|
+
| `*pm prioritize` | Prioritize the backlog |
|
|
97
|
+
| `*pm update` | Post product status update |
|
|
98
|
+
| `*pm launch <sprint>` | Close sprint — announce, backlog retro feedback, update changelog |
|
|
99
|
+
|
|
100
|
+
### Mouse — Scrum Master
|
|
101
|
+
| Trigger | Action |
|
|
102
|
+
|---------|--------|
|
|
103
|
+
| `*sm plan sprint` | Break sprint into short phases (1-3 tasks each) |
|
|
104
|
+
| `*sm status` | Report current sprint progress |
|
|
105
|
+
| `*sm tasks` | List all active tasks |
|
|
106
|
+
| `*sm next` | Identify the next task to work on |
|
|
107
|
+
| `*sm blocked` | Report and triage a blocker |
|
|
108
|
+
| `*sm done <task>` | Mark a task complete |
|
|
109
|
+
| `*sm assign <task> <persona>` | Assign a task to a persona |
|
|
110
|
+
| `*sm velocity` | Report team velocity metrics |
|
|
111
|
+
|
|
112
|
+
### Smith — HCI Expert & UX Advocate
|
|
113
|
+
| Trigger | Action |
|
|
114
|
+
|---------|--------|
|
|
115
|
+
| `*user review <stories>` | Review user stories against HCI principles |
|
|
116
|
+
| `*user test <feature>` | Usability-test a feature by running the software |
|
|
117
|
+
| `*user consult <question>` | Quick, non-blocking UX opinion |
|
|
118
|
+
| `*user feedback <question>` | Deeper investigation of open UX/domain questions |
|
|
119
|
+
| `*user research <topic>` | Research comparable tools — ends with `@Oracle *ora record` |
|
|
120
|
+
| `*user story <id> <criteria>` | Co-author user-perspective acceptance criteria |
|
|
121
|
+
| `*user bug CMD:... \| EXPECTED:... \| ACTUAL:... \| UX ISSUE:...` | File a usability defect |
|
|
122
|
+
| `*user approve` | Approve a sprint review gate |
|
|
123
|
+
| `*user reject REASON:... \| FIX:...` | Block a sprint gate — both fields required |
|
|
124
|
+
| `*user blocked <reason>` | Signal gate cannot complete — escalates to Mouse |
|
|
125
|
+
|
|
126
|
+
### Bob — Prompt Engineer
|
|
127
|
+
| Trigger | Action |
|
|
128
|
+
|---------|--------|
|
|
129
|
+
| `*prompt <description>` | Create a new agent SKILL.md |
|
|
130
|
+
| `*reprompt <instructions>` | Update existing agent prompts |
|
|
131
|
+
| `*learn <lesson>` | Broadcast lesson to all agents |
|
|
132
|
+
| `*help` | Show full system reference |
|
|
133
|
+
| `*bob review <target>` | Review agent interactions and prompt effectiveness |
|
|
134
|
+
|
|
135
|
+
### Tank — DevOps Engineer
|
|
136
|
+
| Trigger | Action |
|
|
137
|
+
|---------|--------|
|
|
138
|
+
| `*devops deploy` | Orchestrate deployment |
|
|
139
|
+
| `*devops infra` | Declarative IaC management |
|
|
140
|
+
| `*devops ci` | Maintain CI/CD pipelines |
|
|
141
|
+
| `*devops env` | Environment hygiene & secrets |
|
|
142
|
+
| `*devops bootstrap <lang>` | Setup build environment & manifest |
|
|
143
|
+
| `*devops sdlc [check]` | Create or audit docs/SDLC.md |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## `*chat` Routing Syntax
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
*chat <message> # auto-select persona
|
|
151
|
+
*chat @<Persona> *<command> <args> # direct invocation
|
|
152
|
+
@<Persona> <message> # Gemini-style direct invocation
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Note on Direct Invocations
|
|
156
|
+
Different AI harnesses use different prefixes for direct persona invocation (e.g., `@persona` or `/persona` in Gemini CLI, `/persona` in Claude, `$persona` in Codex).
|
|
157
|
+
|
|
158
|
+
**Rule**: If you are invoked directly via such a command, you MUST log the invocation to `agents/CHAT.md` immediately upon entry if it has not already been logged. This ensures the shared team context is complete.
|
|
159
|
+
```
|
|
160
|
+
*chat fix the bug in parser.py
|
|
161
|
+
*chat @neo *swe fix bug in parser.py line 42
|
|
162
|
+
*chat @trin *qa test all
|
|
163
|
+
*chat @oracle *ora ask What's our DB pattern?
|
|
164
|
+
*chat @morpheus *lead decide REST vs GraphQL
|
|
165
|
+
*chat @cypher *pm story users need CSV export
|
|
166
|
+
*chat @mouse *sm status
|
|
167
|
+
*chat @bob *reprompt Neo needs to know about the new cache layer
|
|
168
|
+
*chat @smith *user review sprint stories
|
|
169
|
+
*chat @smith *user test the export command
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Sprint Cycle Quick Reference
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
*plan sprint (or *plan epic / *plan story)
|
|
178
|
+
→ Cypher *pm plan sprint
|
|
179
|
+
→ [Smith *user approve] ← gate
|
|
180
|
+
→ Morpheus *lead arch sprint
|
|
181
|
+
→ [Smith *user approve] ← gate
|
|
182
|
+
→ Mouse *sm plan sprint (task board with typed Work Loops)
|
|
183
|
+
→ Morpheus *lead review sprint plan
|
|
184
|
+
|
|
185
|
+
Per task / phase (execute typed Work Loops):
|
|
186
|
+
→ *impl <task> (Neo TDD → Trin verify → Morpheus review)
|
|
187
|
+
→ *fix <defect> (Neo diagnose/fix → Trin test → Morpheus review)
|
|
188
|
+
→ *refactor <target> (Neo restructure → Trin parity → Morpheus review)
|
|
189
|
+
→ *spike <unknown> (Neo/Morpheus prototype → Oracle record)
|
|
190
|
+
→ *uat <phase> (Trin acceptance → Smith UX evaluation)
|
|
191
|
+
→ *deploy <target> (Tank automated deploy → Trin smoke)
|
|
192
|
+
|
|
193
|
+
Sprint close:
|
|
194
|
+
→ Oracle *ora groom
|
|
195
|
+
→ Smith *user test + *user feedback
|
|
196
|
+
→ All *sprint retro ← feeds backlog
|
|
197
|
+
→ Cypher *pm launch <sprint>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Coordination Commands
|
|
203
|
+
|
|
204
|
+
These are `bobp` subcommands, not `make` targets — bob never installs or owns
|
|
205
|
+
a `Makefile`:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
bobp tldr # TL;DR from all project files
|
|
209
|
+
bobp chat "..." --persona X --cmd Y # post to CHAT.md
|
|
210
|
+
bobp chat-diagram # regenerate CHAT.diagram.md
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Running Your Own Make Targets
|
|
214
|
+
|
|
215
|
+
If your project has its own `Makefile`, run it through `bobp make` for output
|
|
216
|
+
captured to `build/build.out` and a status post to CHAT.md:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
bobp make test # captured, silent on pass
|
|
220
|
+
bobp make -vvv test # full output live
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Installing/updating/pulling/diffing/cleaning a Bob Protocol install is done
|
|
224
|
+
with the `bobp` CLI, not make:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
bobp diff <path> # diff framework files with a project
|
|
228
|
+
bobp update <path> # push framework updates to a project
|
|
229
|
+
bobp pull <path> # pull framework updates from a project
|
|
230
|
+
bobp install <path> # fresh install into a project
|
|
231
|
+
bobp clean # reset state files and symlinks (run inside the project)
|
|
232
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
TL;DR: On startup, read CHAT.md for context, load your persona's state.md, then wait for user direction. If resuming mid-task, check its Next Steps section and continue from there.
|
|
2
|
+
|
|
3
|
+
# BobProtocol: LLM Startup Instructions
|
|
4
|
+
|
|
5
|
+
See instructions here -> `agents/skills/init/SKILL.md` & `agents/skills/prep-clear/SKILL.md`
|
|
6
|
+
|
|
7
|
+
## On Startup (Fresh Session)
|
|
8
|
+
|
|
9
|
+
1. Read `agents/CHAT.md` — last 10-20 messages for current team context
|
|
10
|
+
2. Load the active persona's `agents/[persona]/state.md`
|
|
11
|
+
3. If `agents/PROJECT.md` exists, read it for project capabilities (e.g. `via: enabled`)
|
|
12
|
+
4. Check that agent discovery links are present; run `bobp setup-agent-links` only when links are missing, stale, or after repository updates
|
|
13
|
+
5. Post the persona's initialization message to `agents/CHAT.md`
|
|
14
|
+
6. Display the quick reference below
|
|
15
|
+
7. Wait for user input — do not auto-execute tasks
|
|
16
|
+
|
|
17
|
+
## Cold Start Recovery (After Context Clear or Session Restart)
|
|
18
|
+
|
|
19
|
+
If you were mid-task when context was lost:
|
|
20
|
+
|
|
21
|
+
1. Read the bottom of `agents/CHAT.md` — find the last handoff message
|
|
22
|
+
2. Identify which persona was active and what command was pending
|
|
23
|
+
3. Load that persona's state file:
|
|
24
|
+
- `agents/[persona]/state.md`
|
|
25
|
+
4. Post a resume message:
|
|
26
|
+
```bash
|
|
27
|
+
bobp chat "Resuming <task> from last session." --persona <Name> --cmd resume
|
|
28
|
+
```
|
|
29
|
+
5. Continue from the `## Next Steps` section of `state.md` — do not restart from scratch
|
|
30
|
+
|
|
31
|
+
If `CHAT.md` has no clear handoff, ask the user: *"I'm resuming — what should I pick up?"*
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Quick Reference
|
|
36
|
+
|
|
37
|
+
### Planning Loops (Strategic Scoping & Specification)
|
|
38
|
+
```
|
|
39
|
+
*plan epic <name> → Cypher shape → Smith gate → Morpheus domain → (Spikes)
|
|
40
|
+
*plan story <slice> → Cypher story → Smith gate 1 → Morpheus arch → Trin test → Smith gate 2
|
|
41
|
+
*plan sprint → Cypher → Smith gate → Morpheus → Smith gate → Mouse task board
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Work Loops (Tactical Execution Chains)
|
|
45
|
+
```
|
|
46
|
+
*impl <task> → Neo TDD (red-green-refactor) → Trin verify → Morpheus review
|
|
47
|
+
*fix <bug> → Neo repro/diagnose → confirm → surgical fix → Trin regression → Morpheus review
|
|
48
|
+
*refactor <target> → Morpheus plan → Trin baseline → Neo restructure → Trin parity → Morpheus review
|
|
49
|
+
*spike <topic> → Oracle prior art → Neo prototype → Morpheus decision/ADR
|
|
50
|
+
*uat <scope> → Trin scenario matrix → Smith UX evaluation → Cypher business sign-off
|
|
51
|
+
*deploy <env> → Tank Makefile deploy → Trin live smoke test
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### `*chat` Routing
|
|
55
|
+
```
|
|
56
|
+
*chat <message> # auto-select persona
|
|
57
|
+
*chat @<Persona> *<command> <args> # direct invocation
|
|
58
|
+
@<Persona> <message> # Gemini-style direct invocation
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Note on Direct Invocations**: If you are invoked directly via a harness-specific command (e.g., `@persona` or `/persona` in Gemini CLI, `/persona` in Claude, `$persona` in Codex), you MUST log the invocation to `agents/CHAT.md` immediately upon entry if it has not already been logged.
|
|
62
|
+
|
|
63
|
+
### Direct Skill Triggers
|
|
64
|
+
```
|
|
65
|
+
*swe impl / *swe fix / *swe test # Neo
|
|
66
|
+
*qa test / *qa verify / *qa review # Trin
|
|
67
|
+
*lead arch / *lead decide # Morpheus
|
|
68
|
+
*ora ask / *ora record / *ora groom # Oracle
|
|
69
|
+
*sm status / *sm plan / *sm blocked # Mouse
|
|
70
|
+
*pm story / *pm doc / *pm assess # Cypher
|
|
71
|
+
*user review / *user test / *user approve # Smith
|
|
72
|
+
*prompt / *reprompt / *learn # Bob
|
|
73
|
+
*devops deploy / *devops infra / *devops sdlc # Tank
|
|
74
|
+
*judge <persona-or-skill> # Evaluate and improve a persona, skill, or tool
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Make Targets (Single Front Door via bobp make)
|
|
78
|
+
```bash
|
|
79
|
+
bobp make help # list all project targets
|
|
80
|
+
bobp make test # run tests (captured to build/build.out)
|
|
81
|
+
bobp make -vvv test # run tests (full output live)
|
|
82
|
+
bobp chat "..." --persona ... --cmd ... --to ... # post to CHAT.md
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
See **[SHORTHAND_GUIDE.md](SHORTHAND_GUIDE.md)** for the full command reference.
|