@tyroneross/build-loop 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plugins/marketplace.json +1 -1
- package/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +1 -1
- package/AGENTS.md +67 -14
- package/README.md +208 -299
- package/agents/advisor.md +2 -0
- package/agents/alignment-checker.md +2 -0
- package/agents/api-assessor.md +3 -1
- package/agents/architecture-scout.md +2 -0
- package/agents/assessment-orchestrator.md +2 -0
- package/agents/build-orchestrator.md +13 -8
- package/agents/database-assessor.md +107 -3
- package/agents/design-contract-specialist.md +2 -0
- package/agents/fact-checker.md +2 -0
- package/agents/fix-critique.md +26 -5
- package/agents/frontend-assessor.md +3 -1
- package/agents/implementer.md +2 -0
- package/agents/independent-auditor.md +2 -0
- package/agents/mock-scanner.md +2 -0
- package/agents/optimize-runner.md +2 -0
- package/agents/overfitting-reviewer.md +2 -0
- package/agents/performance-assessor.md +3 -1
- package/agents/plan-critic.md +2 -0
- package/agents/promotion-reviewer.md +2 -0
- package/agents/recurring-pattern-detector.md +4 -1
- package/agents/retrospective-synthesizer.md +14 -0
- package/agents/root-cause-investigator.md +39 -2
- package/agents/scope-auditor.md +2 -0
- package/agents/security-reviewer.md +3 -0
- package/agents/self-improvement-architect.md +2 -0
- package/agents/synthesis-critic.md +2 -0
- package/agents/transcript-pattern-miner.md +2 -0
- package/agents/ui-validator.md +2 -0
- package/assets/build-loop-plugin-icon.png +0 -0
- package/bin/build-loop-install.js +234 -0
- package/commands/run.md +1 -1
- package/hooks/git/pre-commit +40 -0
- package/hooks/git/pre-push +35 -10
- package/hooks/hooks.json +42 -5
- package/hooks/pre-edit-architecture.sh +2 -2
- package/hooks/route-guard.sh +15 -0
- package/hooks/route_guard.py +221 -0
- package/hooks/session-start-extensions.sh +10 -0
- package/hooks/session-start-git-hooks.sh +6 -1
- package/hooks/session-start-rally-point.sh +23 -1
- package/hooks/test_session_start_rally_version.sh +123 -0
- package/package.json +7 -2
- package/plugin-artifacts/codex/.codex-plugin/plugin.json +1 -1
- package/plugin-artifacts/codex/AGENTS.md +67 -14
- package/plugin-artifacts/codex/README.md +208 -299
- package/plugin-artifacts/codex/assets/build-loop-plugin-icon.png +0 -0
- package/plugin-artifacts/codex/references/backlog-system.md +285 -0
- package/plugin-artifacts/codex/references/capability-routing.md +49 -0
- package/plugin-artifacts/codex/references/coordination-rules.md +271 -2
- package/plugin-artifacts/codex/references/memory-systems.md +25 -2
- package/plugin-artifacts/codex/references/memory.md +14 -0
- package/plugin-artifacts/codex/references/model-tier-mapping.md +45 -6
- package/plugin-artifacts/codex/references/phase-1-assess.md +19 -1
- package/plugin-artifacts/codex/references/phase-2-plan.md +9 -1
- package/plugin-artifacts/codex/references/phase-3-execute.md +1 -1
- package/plugin-artifacts/codex/references/phase-4-review.md +20 -1
- package/plugin-artifacts/codex/references/phase-5-iterate.md +4 -3
- package/plugin-artifacts/codex/references/phase-6-learn.md +2 -0
- package/plugin-artifacts/codex/references/verify-dispatch.md +85 -0
- package/plugin-artifacts/codex/skills/build-loop/SKILL.md +19 -10
- package/plugin-artifacts/codex/skills/build-loop/fallbacks.md +1 -1
- package/plugin-artifacts/codex/skills/build-loop/references/capability-routing.md +49 -0
- package/plugin-artifacts/codex/skills/build-loop/references/experiment-results-template.md +101 -0
- package/plugin-artifacts/codex/skills/build-loop/references/memory.md +14 -0
- package/plugin-artifacts/codex/skills/build-loop/references/output-style.md +98 -5
- package/plugin-artifacts/codex/skills/build-loop/references/phase-1-assess.md +19 -1
- package/plugin-artifacts/codex/skills/build-loop/references/phase-2-plan.md +9 -1
- package/plugin-artifacts/codex/skills/build-loop/references/phase-3-execute.md +1 -1
- package/plugin-artifacts/codex/skills/build-loop/references/phase-4-review.md +20 -1
- package/plugin-artifacts/codex/skills/build-loop/references/phase-5-iterate.md +4 -3
- package/plugin-artifacts/codex/skills/build-loop/references/phase-6-learn.md +2 -0
- package/plugin-artifacts/codex/skills/build-loop/references/verify-dispatch.md +85 -0
- package/scripts/build_codex_plugin_artifact.py +7 -0
- package/scripts/embed_backend.py +17 -13
- package/scripts/lessons_index/query.py +1 -1
- package/scripts/memory_graph/__init__.py +2 -2
- package/scripts/sync_navgator_lessons.py +4 -4
- package/skills/api-registry-bridge/SKILL.md +1 -1
- package/skills/auto-decision-capture/SKILL.md +4 -3
- package/skills/auto-finding-capture/SKILL.md +119 -0
- package/skills/build-loop/SKILL.md +19 -10
- package/skills/build-loop/fallbacks.md +1 -1
- package/skills/build-loop/references/capability-routing.md +49 -0
- package/skills/build-loop/references/experiment-results-template.md +101 -0
- package/skills/build-loop/references/memory.md +14 -0
- package/skills/build-loop/references/output-style.md +98 -5
- package/skills/build-loop/references/phase-1-assess.md +19 -1
- package/skills/build-loop/references/phase-2-plan.md +9 -1
- package/skills/build-loop/references/phase-3-execute.md +1 -1
- package/skills/build-loop/references/phase-4-review.md +20 -1
- package/skills/build-loop/references/phase-5-iterate.md +4 -3
- package/skills/build-loop/references/phase-6-learn.md +2 -0
- package/skills/build-loop/references/verify-dispatch.md +85 -0
- package/skills/debug-loop/SKILL.md +4 -2
- package/skills/debugging-memory/SKILL.md +24 -12
- package/skills/{debugging/assess/SKILL.md → debugging-memory/references/assess.md} +6 -13
- package/skills/{debugging/memory/SKILL.md → debugging-memory/references/search.md} +10 -17
- package/skills/{debugging/store/SKILL.md → debugging-memory/references/store.md} +5 -13
- package/skills/debugging-memory/references/subagent-integration.md +3 -3
- package/skills/defenseclaw-bridge/SKILL.md +1 -1
- package/skills/{loop-builder → focused-loop-builder}/SKILL.md +6 -6
- package/skills/ibr-bridge/SKILL.md +1 -1
- package/skills/knowledge/SKILL.md +13 -2
- package/skills/{knowledge-review/SKILL.md → knowledge/references/review-mode.md} +8 -20
- package/skills/logging-tracer/SKILL.md +20 -4
- package/skills/model-bakeoff/SKILL.md +44 -0
- package/skills/model-tiering/SKILL.md +55 -20
- package/skills/optimize/SKILL.md +2 -2
- package/skills/prd-bridge/SKILL.md +1 -1
- package/skills/recursive-retrospective/SKILL.md +46 -0
- package/skills/recursive-retrospective/references/01-retrospective.md +136 -0
- package/skills/recursive-retrospective/references/02-learning-capture.md +72 -0
- package/skills/recursive-retrospective/references/03-judge.md +45 -0
- package/skills/research/SKILL.md +1 -1
- package/skills/root-cause-analysis/SKILL.md +42 -0
- package/skills/security-methodology/SKILL.md +10 -1
- package/skills/security-scan/SKILL.md +55 -0
- package/skills/spec-writing/SKILL.md +42 -1
- package/skills/sync-skills/SKILL.md +8 -7
- package/commands/assess.md +0 -41
- package/commands/compose-handoff.md +0 -113
- package/commands/debug.md +0 -20
- package/commands/debugger-detail.md +0 -34
- package/commands/debugger-scan.md +0 -15
- package/commands/debugger-status.md +0 -20
- package/commands/debugger.md +0 -32
- package/commands/optimize-run.md +0 -31
- package/commands/promote-experiment.md +0 -129
- package/commands/rally-point.md +0 -301
- package/commands/research-run.md +0 -22
- package/commands/review-knowledge.md +0 -16
- package/commands/self-review.md +0 -51
- package/commands/setup-memory.md +0 -32
- package/commands/start-prd.md +0 -57
- package/commands/test.md +0 -34
- package/commands/verify-plan.md +0 -39
- package/skills/debugging/debug-loop/SKILL.md +0 -231
- package/skills/logging-tracer-bridge/SKILL.md +0 -70
- /package/skills/{loop-builder → focused-loop-builder}/presets/active-project-evidence.yaml +0 -0
- /package/skills/{loop-builder → focused-loop-builder}/presets/generic-artifact-loop.yaml +0 -0
- /package/skills/{loop-builder → focused-loop-builder}/presets/presentation-audit.yaml +0 -0
- /package/skills/{loop-builder → focused-loop-builder}/presets/research-synthesis.yaml +0 -0
- /package/skills/{loop-builder → focused-loop-builder}/presets/source-ingestion-raw-data-audit.yaml +0 -0
- /package/skills/{loop-builder → focused-loop-builder}/references/spec-format.md +0 -0
- /package/skills/{loop-builder → focused-loop-builder}/scripts/loop_builder.py +0 -0
package/commands/rally-point.md
DELETED
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Inspect or invoke build-loop's multi-session coordination (Rally Point + per-run coord file). Subcommands: status (default), watch, heartbeat, ack-inbox, announce, init, lead, escalate, boundary, docs, help."
|
|
3
|
-
allowed-tools: Bash, Read
|
|
4
|
-
argument-hint: "[status|watch|heartbeat|announce|init|lead|escalate|boundary|docs|help] [args]"
|
|
5
|
-
model: inherit
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
9
|
-
|
|
10
|
-
Parse `{{ARGUMENTS}}` as `<subcommand> [args...]`. **If `<subcommand>` is omitted or empty, default to `status`** (the no-args case — most common interactive use).
|
|
11
|
-
|
|
12
|
-
## Subcommands
|
|
13
|
-
|
|
14
|
-
### `status` (default — no-args runs this)
|
|
15
|
-
|
|
16
|
-
Cheap (~100-token) sensor poll. Reports active peer sessions, unresolved verifier verdicts, dirty files, task-heartbeat health, and the active coord file path. Run this BEFORE any step-boundary decision (next-step recommendation, subagent dispatch, commit, version bump, archive/delete).
|
|
17
|
-
|
|
18
|
-
Executes:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_status.py \
|
|
22
|
-
--workdir "$PWD" \
|
|
23
|
-
--session-id "user-rally-$(date +%s)" \
|
|
24
|
-
--json
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
(If the user passed `--coordination-file=<path>`, `--task-ref=<id>`, or
|
|
28
|
-
`--task-heartbeat-grace-seconds=<seconds>` in subcommand args, forward it.)
|
|
29
|
-
|
|
30
|
-
Example output (clear):
|
|
31
|
-
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"status": "clear",
|
|
35
|
-
"active_peers": [],
|
|
36
|
-
"unresolved": [],
|
|
37
|
-
"coordination_file": null
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Example output (warn — peer overlap on owned files):
|
|
42
|
-
|
|
43
|
-
```json
|
|
44
|
-
{
|
|
45
|
-
"status": "warn",
|
|
46
|
-
"active_peers": [{"session_id": "codex-...", "tool": "codex", "phase": "review"}],
|
|
47
|
-
"overlaps": [{"peer": "codex-...", "files": ["scripts/foo.py"], "severity": "warning"}],
|
|
48
|
-
"required_action": "review_peer_overlap_or_dirty_files"
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### `watch`
|
|
53
|
-
|
|
54
|
-
Continuous cheap sensor loop. Use this while waiting on another coding host,
|
|
55
|
-
during active shared-file work, or whenever an inbox message is expected. The
|
|
56
|
-
watcher prints only state transitions, revision changes, dirty-file risk, and
|
|
57
|
-
inbox unread count. When `--task-ref` is set, it also wakes on task-heartbeat
|
|
58
|
-
health changes.
|
|
59
|
-
|
|
60
|
-
Executes:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_watch.py \
|
|
64
|
-
--workdir "$PWD" \
|
|
65
|
-
--session-id "user-rally-$(date +%s)" \
|
|
66
|
-
--tool "claude_code" \
|
|
67
|
-
--interval 5 \
|
|
68
|
-
--jsonl \
|
|
69
|
-
--baseline-current
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
If the user passed `--tool=<name>`, `--files-in-flight=<csv>`,
|
|
73
|
-
`--coordination-file=<path>`, `--task-ref=<id>`, or
|
|
74
|
-
`--task-heartbeat-grace-seconds=<seconds>` in subcommand args, forward them. Claude Code uses
|
|
75
|
-
`--tool claude_code`; Codex uses `--tool codex`; other hosts should choose a
|
|
76
|
-
stable lowercase tool id.
|
|
77
|
-
|
|
78
|
-
When the watcher emits an event with a higher `revision`,
|
|
79
|
-
`direct_inbox_unread_count > 0`, or `broadcast_inbox_unread_count > 0`, run
|
|
80
|
-
`status`, read the addressed inbox plus `inbox/all.jsonl`, and respond through
|
|
81
|
-
the channel before continuing. Watch/status output also includes
|
|
82
|
-
`inbox_latest_messages`: compact metadata and a short preview for the newest
|
|
83
|
-
direct/broadcast inbox records. Treat it as a doorbell only; read the inbox
|
|
84
|
-
file for full payloads before acting. After the message is handled, run
|
|
85
|
-
`ack-inbox` so old direct notes do not keep appearing as unread.
|
|
86
|
-
|
|
87
|
-
### `heartbeat`
|
|
88
|
-
|
|
89
|
-
Write a structured task heartbeat for long-running work. This is separate from
|
|
90
|
-
presence: presence answers "process can still write"; heartbeat answers "the
|
|
91
|
-
agent is still on the claimed task and when the next check-in is due."
|
|
92
|
-
|
|
93
|
-
Use it at the start of a long-running task, then at least every 10 minutes or
|
|
94
|
-
after each meaningful phase boundary. Set `--task-ref` to the claim, issue,
|
|
95
|
-
pillar, or run id that status/watch should expect.
|
|
96
|
-
|
|
97
|
-
Executes:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py heartbeat \
|
|
101
|
-
--workdir "$PWD" \
|
|
102
|
-
--session-id "user-rally-$(date +%s)" \
|
|
103
|
-
--tool "claude_code" \
|
|
104
|
-
--model "inherit" \
|
|
105
|
-
--run-id "<run-id>" \
|
|
106
|
-
--task-ref "<claim-or-issue-id>" \
|
|
107
|
-
--status running \
|
|
108
|
-
--progress "<short progress since last check-in>" \
|
|
109
|
-
--evidence "<csv refs: files/tests/commits/handoffs>" \
|
|
110
|
-
--json
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Use `--status blocked --attention-reason "<why>"` or
|
|
114
|
-
`--status needs_attention --attention-reason "<why>"` when a human or lead must
|
|
115
|
-
act. Use `--not-on-task` only to make drift explicit.
|
|
116
|
-
|
|
117
|
-
### `ack-inbox`
|
|
118
|
-
|
|
119
|
-
Mark the current direct/broadcast inbox tail as seen for this tool/session.
|
|
120
|
-
This writes an ack cursor under `inbox/.acks/`; it does not rewrite or delete
|
|
121
|
-
the append-only inbox messages.
|
|
122
|
-
|
|
123
|
-
Executes:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py ack-inbox \
|
|
127
|
-
--workdir "$PWD" \
|
|
128
|
-
--session-id "user-rally-$(date +%s)" \
|
|
129
|
-
--tool "claude_code" \
|
|
130
|
-
--json
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Run this only after reading and acting on the current inbox payloads. Pass
|
|
134
|
-
`--no-broadcast` when a broadcast message should remain visible.
|
|
135
|
-
|
|
136
|
-
### `announce [message]`
|
|
137
|
-
|
|
138
|
-
Publish lightweight Rally Point presence + a `kind=handoff` rally record for the current app slug, without creating a durable coordination file. Use this when another host (Codex, Claude Code, CI verifier) needs to see that this agent is present before work ownership is split, or when dogfooding coordination from outside a full build-loop run.
|
|
139
|
-
|
|
140
|
-
Executes:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_rally.py \
|
|
144
|
-
--workdir "$PWD" \
|
|
145
|
-
--session-id "user-rally-$(date +%s)" \
|
|
146
|
-
--tool "claude_code" \
|
|
147
|
-
--model "inherit" \
|
|
148
|
-
--to "peer" \
|
|
149
|
-
--message "<message or 'Agent is present and ready to coordinate.'>" \
|
|
150
|
-
--json
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
If the user passed `--owns=<csv>` or `--does-not-own=<csv>` in subcommand args, forward those values as `--owns` / `--does-not-own`. If omitted, the rally is presence-only and owns no files.
|
|
154
|
-
|
|
155
|
-
Example output:
|
|
156
|
-
|
|
157
|
-
```json
|
|
158
|
-
{
|
|
159
|
-
"action": "rally-point-posted",
|
|
160
|
-
"app_slug": "example-ios-app",
|
|
161
|
-
"channel_revision": 1,
|
|
162
|
-
"presence_written": true
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### `init <topic> <scope-one-liner>`
|
|
167
|
-
|
|
168
|
-
Bootstrap a NEW coord file at `.build-loop/coordination/<topic>-YYYY-MM-DD.md` from `references/coordination-file-template.md`. Writes own presence, posts a `kind=handoff` record so peers see it. **Idempotent and atomic** (per v0.12.10): if the coord file already exists OR a concurrent peer creates it between our check and our write, joins (writes presence + posts `phase=joined-existing-coord`) instead of overwriting.
|
|
169
|
-
|
|
170
|
-
Executes:
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_bootstrap.py \
|
|
174
|
-
--workdir "$PWD" \
|
|
175
|
-
--topic "<topic-slug>" \
|
|
176
|
-
--scope "<scope-one-liner>" \
|
|
177
|
-
--session-id "user-rally-$(date +%s)" \
|
|
178
|
-
--json
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Example invocation: `/build-loop:rally-point init v0130-feature-x "Add new feature X across orchestrator + bootstrap + tests"`
|
|
182
|
-
|
|
183
|
-
Example output:
|
|
184
|
-
|
|
185
|
-
```json
|
|
186
|
-
{
|
|
187
|
-
"coord_file": ".build-loop/coordination/v0130-feature-x-2026-05-21.md",
|
|
188
|
-
"action": "bootstrapped",
|
|
189
|
-
"channel_revision": 65,
|
|
190
|
-
"session_id": "user-rally-1779320000"
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### `lead <claim|renew|transfer|relinquish|status>`
|
|
195
|
-
|
|
196
|
-
Operate the leadership lease (G1). A multi-agent run has exactly ONE lead
|
|
197
|
-
with a liveness lease; "lead" used to be implicit in whoever opened the
|
|
198
|
-
coord file. The orchestrator auto-claims at Phase 1, renews at each
|
|
199
|
-
phase-start, and relinquishes at Phase D closeout — use this command for
|
|
200
|
-
manual lead inspection, an out-of-band takeover, or dogfooding.
|
|
201
|
-
|
|
202
|
-
All `lead` ops shell out to the host-neutral CLI:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py lead <op> \
|
|
206
|
-
--workdir "$PWD" \
|
|
207
|
-
--session-id "user-rally-$(date +%s)" \
|
|
208
|
-
--tool "claude_code" \
|
|
209
|
-
--run-id "<run-id>"
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
- `claim` — become lead if the channel has no lead or the lease expired.
|
|
213
|
-
Returns `{"claimed": bool, "lead": {...}}`. A second claim while a valid
|
|
214
|
-
lease is held returns `claimed: false` with the incumbent.
|
|
215
|
-
- `renew` — extend the current lease (lead only; `--renew-every-minutes`,
|
|
216
|
-
default 15). `renew_every_minutes` is the lease clock — distinct from the
|
|
217
|
-
`watch` poll cadence.
|
|
218
|
-
- `transfer` — hand the lead to another session (`--to-session-id`,
|
|
219
|
-
`--to-tool`, `--to-model`); rejected from a non-lead.
|
|
220
|
-
- `relinquish` — give up the lead so the next `claim` succeeds immediately.
|
|
221
|
-
- `status` — read the current lead + `lease_valid`.
|
|
222
|
-
|
|
223
|
-
Example: `/build-loop:rally-point lead status`
|
|
224
|
-
|
|
225
|
-
### `escalate <reason>`
|
|
226
|
-
|
|
227
|
-
Post a `kind=escalation` change record (G3) — "needs lead or user
|
|
228
|
-
attention now", distinct from routine `phase`/`feedback`. An open
|
|
229
|
-
escalation makes `status` report `blocked` until acknowledged.
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py escalate \
|
|
233
|
-
--workdir "$PWD" \
|
|
234
|
-
--session-id "user-rally-$(date +%s)" \
|
|
235
|
-
--tool "claude_code" \
|
|
236
|
-
--run-id "<run-id>" \
|
|
237
|
-
--reason "<why this needs attention>"
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
### `boundary`
|
|
241
|
-
|
|
242
|
-
Validate the embedded mini-plugin boundary used to keep Rally Point and the
|
|
243
|
-
watcher extractable while they still ship inside build-loop.
|
|
244
|
-
|
|
245
|
-
```bash
|
|
246
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py boundary \
|
|
247
|
-
--repo "${CLAUDE_PLUGIN_ROOT}" \
|
|
248
|
-
--check \
|
|
249
|
-
--json
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
This checks `scripts/rally_point/plugin_boundary.json` and reports the
|
|
253
|
-
current `agent-rally-point` and `agent-rally-watcher` extraction surfaces.
|
|
254
|
-
|
|
255
|
-
### `docs`
|
|
256
|
-
|
|
257
|
-
Prints the binding coordination constitution at `references/coordination-rules.md`. Use this when onboarding a peer (Codex, second Claude session, CI verifier) so they read the same rules — the verdict-gating operating rule, the `post()` helper mandate, MECE packets for every write-handoff, release-surface verification, Phase D closeout.
|
|
258
|
-
|
|
259
|
-
Executes:
|
|
260
|
-
|
|
261
|
-
```bash
|
|
262
|
-
cat ${CLAUDE_PLUGIN_ROOT}/references/coordination-rules.md
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
### `help`
|
|
266
|
-
|
|
267
|
-
Shows the subcommand reference table (replaces what the no-args case used to do pre-v0.12.10).
|
|
268
|
-
|
|
269
|
-
Outputs:
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
/build-loop:rally-point — inspect or invoke build-loop's multi-session coordination
|
|
273
|
-
|
|
274
|
-
Subcommands:
|
|
275
|
-
status (default) Sensor poll: active peers, unresolved verdicts, coord file
|
|
276
|
-
watch Continuous sensor loop for peer/inbox changes
|
|
277
|
-
heartbeat Write a long-running task check-in
|
|
278
|
-
announce [message] Publish Rally Point presence + handoff without coord file
|
|
279
|
-
init <topic> <scope> Bootstrap a coord file from template; atomic + idempotent
|
|
280
|
-
lead <op> Inspect or update the leadership lease
|
|
281
|
-
escalate <reason> Post an urgent coordination escalation
|
|
282
|
-
boundary Validate embedded agent-rally extraction boundaries
|
|
283
|
-
docs Print the binding coordination constitution
|
|
284
|
-
help This message
|
|
285
|
-
|
|
286
|
-
No-args invocation runs `status` (the most common interactive use).
|
|
287
|
-
|
|
288
|
-
When auto-invoke is enough:
|
|
289
|
-
The build-orchestrator agent auto-invokes coordination at three trigger
|
|
290
|
-
points (Phase 1 Assess preamble, Phase 3 chunk-close, Phase 4 Review-A).
|
|
291
|
-
See agents/build-orchestrator.md §"Auto-invoke coordination". Use `watch`
|
|
292
|
-
when waiting on an async peer response or targeted inbox message. Use
|
|
293
|
-
`status`, `heartbeat`, `announce`, or `init` for manual peer setup, debugging
|
|
294
|
-
coordination state, or onboarding a fresh verifier session.
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## Dispatch
|
|
298
|
-
|
|
299
|
-
Based on the parsed subcommand (or `status` when `{{ARGUMENTS}}` is empty), run the corresponding bash command above using the Bash tool. Quote the result and surface key fields (status / coord_file / unresolved) in the response.
|
|
300
|
-
|
|
301
|
-
For `status`, if `unresolved: []` is non-empty, hold and resolve them before the user's intended step proceeds.
|
package/commands/research-run.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research-run
|
|
3
|
-
description: "(Advanced override — `/build-loop:run` auto-routes here; use this only to force the mode.) Generate a repo-grounded research packet without committing to build. Pre-decision analysis."
|
|
4
|
-
argument-hint: "[topic]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
-
|
|
9
|
-
Load the `build-loop:research` skill.
|
|
10
|
-
|
|
11
|
-
{{#if ARGUMENTS}}
|
|
12
|
-
Topic: `{{ARGUMENTS}}`
|
|
13
|
-
|
|
14
|
-
Run the research packet workflow:
|
|
15
|
-
1. Scan the repo for context relevant to the topic
|
|
16
|
-
2. Classify the task type
|
|
17
|
-
3. Generate a structured research packet (Bottom line, What I found, Best path, Why, Risks, Confidence, Next action)
|
|
18
|
-
4. Archive to `.build-loop/research/`
|
|
19
|
-
5. Present the packet — user decides next step: build, optimize, or shelve
|
|
20
|
-
{{else}}
|
|
21
|
-
No topic specified. Ask the user what they want to research or evaluate.
|
|
22
|
-
{{/if}}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Surface review-needing items across episodic memory: review queue, decision rot, open conflicts, stale procedures."
|
|
3
|
-
argument-hint: "[--rot-threshold-days N] [--no-db]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
7
|
-
|
|
8
|
-
Load the `build-loop:knowledge-review` skill.
|
|
9
|
-
|
|
10
|
-
{{#if ARGUMENTS}}
|
|
11
|
-
Run with arguments: `{{ARGUMENTS}}`
|
|
12
|
-
{{else}}
|
|
13
|
-
Run with defaults (`--rot-threshold-days 90`).
|
|
14
|
-
{{/if}}
|
|
15
|
-
|
|
16
|
-
Invoke `python3 scripts/knowledge_review.py --workdir "$PWD" {{ARGUMENTS}}` and present the markdown output to the user. Read-only; do not auto-resolve any item.
|
package/commands/self-review.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Periodic self-review: mine recent build activity for issues and efficiency signals, optionally apply SAFE improvements. Use --install/--uninstall/--status to manage the launchd schedule."
|
|
3
|
-
argument-hint: "[light|deep] [--install|--uninstall|--status]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
7
|
-
|
|
8
|
-
{{#if ARGUMENTS}}
|
|
9
|
-
{{#contains ARGUMENTS "--install"}}
|
|
10
|
-
Run `python3 scripts/install_self_review.py install --json` in the current repo and report the result.
|
|
11
|
-
{{else}}
|
|
12
|
-
{{#contains ARGUMENTS "--uninstall"}}
|
|
13
|
-
Run `python3 scripts/install_self_review.py uninstall --json` in the current repo and report the result.
|
|
14
|
-
{{else}}
|
|
15
|
-
{{#contains ARGUMENTS "--status"}}
|
|
16
|
-
Run `python3 scripts/install_self_review.py status --json` in the current repo and report loaded/not-loaded state for both scheduled jobs.
|
|
17
|
-
{{else}}
|
|
18
|
-
Determine mode from ARGUMENTS: if it contains "deep" use `deep`, otherwise use `light`.
|
|
19
|
-
Determine mode from ARGUMENTS: if it contains "deep" use `deep`, otherwise use `light`.
|
|
20
|
-
Run `python3 scripts/self_review/__main__.py --mode <mode> --workdir . --json` and display the digest path and queued proposal count. If mode is deep, also describe the queued proposals and their classify_hint values.
|
|
21
|
-
{{/contains}}
|
|
22
|
-
{{/contains}}
|
|
23
|
-
{{/contains}}
|
|
24
|
-
{{else}}
|
|
25
|
-
Run `python3 scripts/self_review/__main__.py --mode light --workdir . --json` and display the digest path and queued proposal count.
|
|
26
|
-
{{/if}}
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Reference
|
|
31
|
-
|
|
32
|
-
**Manual trigger (light — daily digest, no apply)**
|
|
33
|
-
```
|
|
34
|
-
/build-loop:self-review light
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Manual trigger (deep — full review; routes SAFE proposals through /build-loop:run)**
|
|
38
|
-
```
|
|
39
|
-
/build-loop:self-review deep
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Launchd schedule management**
|
|
43
|
-
```
|
|
44
|
-
/build-loop:self-review --install # install both launchd jobs (reads .build-loop/config.json)
|
|
45
|
-
/build-loop:self-review --status # check loaded/not-loaded
|
|
46
|
-
/build-loop:self-review --uninstall # remove jobs and plists
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Scheduled runs are fully autonomous: the deep job (Sunday 03:00 by default) runs the gatherer, then calls `claude -p` with the apply prompt to route SAFE proposals through `/build-loop:run`, which applies + commits + collapses. Push behavior is governed by `selfReview.autonomy` in `.build-loop/config.json` (`apply_push` / `apply_local` / `propose`). RISKY and DECISION proposals are never applied autonomously — they stay queued for manual review.
|
|
50
|
-
|
|
51
|
-
See `skills/build-loop/references/self-review.md` for the full config schema, graceful-degradation notes, and the APPLY PROMPT.
|
package/commands/setup-memory.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Set up or verify the build-loop central memory store (build-loop-memory). Guided and idempotent — copies only the packaged public seed, never overwrites your content. Safe to re-run."
|
|
3
|
-
argument-hint: "[--check]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
7
|
-
|
|
8
|
-
{{#if ARGUMENTS}}
|
|
9
|
-
{{#contains ARGUMENTS "--check"}}
|
|
10
|
-
Run `python3 "${CLAUDE_PLUGIN_ROOT:-$PWD}/scripts/install_memory.py" --check` and report the memory store status: which template files and which lanes (`indexes/`, `projects/`) exist vs are missing. Do not write anything.
|
|
11
|
-
{{else}}
|
|
12
|
-
Run `python3 "${CLAUDE_PLUGIN_ROOT:-$PWD}/scripts/install_memory.py" --guided` and report what was seeded vs already present, then surface the installer's printed next steps to the user.
|
|
13
|
-
{{/contains}}
|
|
14
|
-
{{else}}
|
|
15
|
-
Run `python3 "${CLAUDE_PLUGIN_ROOT:-$PWD}/scripts/install_memory.py" --guided` and report what was seeded vs already present, then surface the installer's printed next steps to the user.
|
|
16
|
-
{{/if}}
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Reference
|
|
21
|
-
|
|
22
|
-
**Guided setup (idempotent — public seed only, no personal content):**
|
|
23
|
-
```
|
|
24
|
-
/build-loop:setup-memory
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Status check (no writes):**
|
|
28
|
-
```
|
|
29
|
-
/build-loop:setup-memory --check
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
The store lives at `memory_store_root()`. Resolution: an env override (`$BUILD_LOOP_MEMORY_STORE_ROOT` / `$BUILD_LOOP_MEMORY_ROOT` / `$AGENT_MEMORY_ROOT`), else a pre-existing legacy `~/dev/git-folder/build-loop-memory` if it is already on disk, else the neutral fresh-install default `~/.build-loop-memory`. On a fresh machine it is also bootstrapped automatically on session start by `hooks/session-start-memory.sh` when entirely absent; this command is the manual / repair path and the way to see what's present. Research packets, project lessons, decisions, and debugging memory all persist under this store.
|
package/commands/start-prd.md
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: start-prd
|
|
3
|
-
description: "Start a living PRD for the current project by answering 3-5 strategic questions. Loads the prd-builder skill if installed."
|
|
4
|
-
argument-hint: "[appname]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
-
|
|
9
|
-
Load the `prd-builder` skill from RossLabs-AI-Toolkit if available. If unavailable, fall back to the inline guidance below.
|
|
10
|
-
|
|
11
|
-
{{#if ARGUMENTS}}
|
|
12
|
-
App name: `{{ARGUMENTS}}`
|
|
13
|
-
|
|
14
|
-
Run the prd-builder workflow for this app:
|
|
15
|
-
1. Confirm the skill applies (check trigger conditions).
|
|
16
|
-
2. Ask Q1-3 in a single message, formatted as draft inferences (not blank prompts) based on whatever you know about the project from the codebase + memory.
|
|
17
|
-
3. Wait for the user to redirect or confirm.
|
|
18
|
-
4. Optionally ask Q4-5 if Q1-3 leave specific gaps the user wants pinned down.
|
|
19
|
-
5. Draft the PRD at `docs/prd-{{ARGUMENTS}}.md` per the prd-builder Output Specification.
|
|
20
|
-
6. Run the Fidelity check; deepen any section that fails prediction.
|
|
21
|
-
7. Add a project-level pointer in `CLAUDE.md` (or `.claude/CLAUDE.md`): *"For non-trivial changes, read `docs/prd-{{ARGUMENTS}}.md` and apply its LLM Navigation Map."*
|
|
22
|
-
8. (If applicable) bidirectionally link to existing research packets, audit docs, or operationalization documents.
|
|
23
|
-
{{else}}
|
|
24
|
-
No app name provided. Either:
|
|
25
|
-
- Provide an appname argument: `/build-loop:start-prd myapp` → drafts `docs/prd-myapp.md`
|
|
26
|
-
- Or ask the user what app this PRD is for, then proceed with the workflow above.
|
|
27
|
-
{{/if}}
|
|
28
|
-
|
|
29
|
-
## Fallback when prd-builder skill is not installed
|
|
30
|
-
|
|
31
|
-
If the `prd-builder` skill is unavailable in this session, walk the user through the 3 core questions inline:
|
|
32
|
-
|
|
33
|
-
**Q1 — Who and when (persona + trigger):** Describe the primary user (role, life stage, what they already use that this competes with). List 1-3 trigger moments that make them open the app. List 3-7 explicit "is NOT" exclusions.
|
|
34
|
-
|
|
35
|
-
**Q2 — Outcome (the measurable change):** Pick ONE measurable change after N weeks/months of usage. Number, behavior, or self-perception.
|
|
36
|
-
|
|
37
|
-
**Q3 — Stance (the philosophy):** Three sentences:
|
|
38
|
-
1. Privacy/Data: "We will/won't [send/store/share] X because Y."
|
|
39
|
-
2. Complexity: "Regular users will/won't see [advanced feature class] because Y."
|
|
40
|
-
3. Cost: "App is [free/freemium/paid/subscription/...] because Y."
|
|
41
|
-
|
|
42
|
-
Then draft a markdown PRD at `docs/prd-{{ARGUMENTS}}.md` with:
|
|
43
|
-
- Frontmatter (name, status, revision, last_updated, load_when, evolves_when, core_principles)
|
|
44
|
-
- Body sections: How to use this PRD, LLM Navigation Map, Section Index, Fidelity check, Intent, North Star, Persona, Outcome, Methodology, Stance, Non-goals (illustrative), Roadmap stance, One-line summary, Open questions, Pivot log, Document maintenance.
|
|
45
|
-
|
|
46
|
-
Cite `~/dev/git-folder/RossLabs-AI-Toolkit/skills/prd-builder/SKILL.md` for the full output spec.
|
|
47
|
-
|
|
48
|
-
After drafting, run the Fidelity check by predicting answers to:
|
|
49
|
-
- Should the next major release prioritize speed or accuracy?
|
|
50
|
-
- Should new features add complexity or simplify existing ones?
|
|
51
|
-
- Should the home screen show many metrics or one north-star indicator?
|
|
52
|
-
- Should we accept a feature request from a vocal user who doesn't fit the persona?
|
|
53
|
-
- When should the app degrade gracefully vs fail loudly?
|
|
54
|
-
- When should we move work from on-device to cloud (or vice versa)?
|
|
55
|
-
- Should onboarding be opinionated or open?
|
|
56
|
-
|
|
57
|
-
If you can predict each cleanly with PRD section citations, the PRD passes. If not, deepen the failing section.
|
package/commands/test.md
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "(Advanced override — `/build-loop:run` auto-routes here on 'test plugin'/'validate plugin' language; use this to force the mode.) Run build-loop's plugin-tests static-analysis suite against the current repo (skill resolution, manifest, MCP, triggers, bridges, agent surfaces, cache pruning)"
|
|
3
|
-
allowed-tools: Bash, Read
|
|
4
|
-
argument-hint: "[--strict] [<test-name>]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
-
|
|
9
|
-
Load the `build-loop:plugin-tests` skill.
|
|
10
|
-
|
|
11
|
-
{{#if ARGUMENTS}}
|
|
12
|
-
Args: `{{ARGUMENTS}}`
|
|
13
|
-
|
|
14
|
-
If `<test-name>` is one of `skill-resolution`, `plugin-manifest`, `mcp-registration`, `trigger-phrases`, `bridge-preflight`, `agent-surface-policy`, `cache-prune`, run only that single script. Otherwise treat the args as flags for the runner.
|
|
15
|
-
|
|
16
|
-
Example:
|
|
17
|
-
- `/build-loop:test skill-resolution` — run only the namesake-collision test
|
|
18
|
-
- `/build-loop:test --strict` — exit non-zero on any soft warning (CI gate)
|
|
19
|
-
{{else}}
|
|
20
|
-
Run the full plugin-test suite from the repo root:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
for t in scripts/test_skill_resolution.py scripts/test_plugin_manifest.py \
|
|
24
|
-
scripts/test_mcp_registration.py scripts/test_trigger_phrases.py \
|
|
25
|
-
scripts/test_bridge_preflight.py scripts/test_agent_surface_policy.py \
|
|
26
|
-
scripts/test_prune_plugin_cache.py scripts/test_prune_codex_plugin_cache.py; do
|
|
27
|
-
echo "=== $(basename $t) ==="
|
|
28
|
-
python3 "$t" || EXIT=1
|
|
29
|
-
done
|
|
30
|
-
exit ${EXIT:-0}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Surface failures with the script name + test name + the assertion message. On any failure, suggest the fix path documented in the test's docstring.
|
|
34
|
-
{{/if}}
|
package/commands/verify-plan.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: verify-plan
|
|
3
|
-
description: "Deterministic verifier for plan markdown — grep-checkable rules (delete-with-callers, numeric-drift, route-change-evidence, package-state, missing-evidence). Run before accepting a Phase 2 plan."
|
|
4
|
-
argument-hint: "<plan.md>"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
8
|
-
|
|
9
|
-
Load the `plan-verify` skill from `${CLAUDE_PLUGIN_ROOT}/skills/plan-verify/SKILL.md` for context.
|
|
10
|
-
|
|
11
|
-
{{#if ARGUMENTS}}
|
|
12
|
-
Plan file: `{{ARGUMENTS}}`
|
|
13
|
-
|
|
14
|
-
Run:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/plan_verify.py {{ARGUMENTS}} --repo "$PWD" --json
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Then:
|
|
21
|
-
|
|
22
|
-
1. Report the summary (BLOCKER / WARN / INFO counts and per-rule breakdown).
|
|
23
|
-
2. If exit code is 1, list each BLOCKER with claim_text + line + rule_id and stop — do NOT proceed to Phase 3.
|
|
24
|
-
3. If exit code is 0, surface WARN findings as advisory and proceed.
|
|
25
|
-
4. If exit code is 2, treat as verifier outage and surface to the user.
|
|
26
|
-
|
|
27
|
-
For non-deterministic checks (alternatives considered, MECE scope, marker adequacy),
|
|
28
|
-
follow up by dispatching the `plan-critic` agent with the same plan + this script's JSON output.
|
|
29
|
-
{{else}}
|
|
30
|
-
No plan file specified.
|
|
31
|
-
|
|
32
|
-
Usage: `/plan-verify <path-to-plan.md>`
|
|
33
|
-
|
|
34
|
-
Example: `/plan-verify .build-loop/plan.md`
|
|
35
|
-
|
|
36
|
-
The verifier exits 0 if there are no BLOCKERs, 1 if BLOCKERs are present, 2 on verifier error.
|
|
37
|
-
|
|
38
|
-
To inspect rules, read `${CLAUDE_PLUGIN_ROOT}/skills/plan-verify/SKILL.md`.
|
|
39
|
-
{{/if}}
|