@ai-dev-methodologies/rlp-desk 0.0.1 → 0.1.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/README.md +72 -8
- package/docs/architecture.md +34 -8
- package/docs/getting-started.md +2 -2
- package/docs/protocol-reference.md +267 -14
- package/examples/calculator/.claude/ralph-desk/context/loop-test-latest.md +12 -0
- package/examples/calculator/.claude/ralph-desk/logs/loop-test/iter-001.worker-output.log +0 -0
- package/examples/calculator/.claude/ralph-desk/logs/loop-test/iter-001.worker-prompt.md +38 -0
- package/examples/calculator/.claude/ralph-desk/logs/loop-test/iter-001.worker-trigger.sh +28 -0
- package/examples/calculator/.claude/ralph-desk/logs/loop-test/session-config.json +25 -0
- package/examples/calculator/.claude/ralph-desk/logs/loop-test/status.json +10 -0
- package/examples/calculator/.claude/ralph-desk/logs/loop-test/worker-heartbeat.json +1 -0
- package/examples/calculator/.claude/ralph-desk/memos/loop-test-memory.md +17 -0
- package/examples/calculator/.claude/ralph-desk/prompts/loop-test.worker.prompt.md +1 -1
- package/install.sh +14 -0
- package/package.json +1 -1
- package/scripts/postinstall.js +17 -1
- package/scripts/uninstall.js +1 -0
- package/src/commands/rlp-desk.md +112 -21
- package/src/governance.md +92 -7
- package/src/scripts/init_ralph_desk.zsh +51 -30
- package/src/scripts/run_ralph_desk.zsh +1259 -0
|
@@ -30,26 +30,44 @@ if [[ ! -f "$F" ]]; then
|
|
|
30
30
|
cat > "$F" <<EOF
|
|
31
31
|
Execute the plan for $SLUG.
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
## Before you start
|
|
34
|
+
Read these files in order:
|
|
35
|
+
1. Campaign Memory: $DESK/memos/$SLUG-memory.md → Next Iteration Contract is your mission
|
|
36
|
+
2. PRD: $DESK/plans/prd-$SLUG.md → acceptance criteria
|
|
37
|
+
3. Test Spec: $DESK/plans/test-spec-$SLUG.md → verification methods
|
|
38
|
+
4. Latest Context: $DESK/context/$SLUG-latest.md → current state
|
|
39
|
+
|
|
40
|
+
## SCOPE LOCK (hard constraint — violation causes verification failure)
|
|
41
|
+
- You MUST only implement the work described in the "Next Iteration Contract" from campaign memory.
|
|
42
|
+
- If the contract says "implement US-001 only", do ONLY that. Do NOT touch other stories.
|
|
43
|
+
- If the contract says "implement all remaining stories", you may do all of them.
|
|
44
|
+
- Do NOT go beyond the contracted scope, even if you can see more work in the PRD.
|
|
45
|
+
- No file creation or modification outside the project root.
|
|
46
|
+
- Do not modify this prompt file or any PRD/test-spec files.
|
|
47
|
+
|
|
48
|
+
## Iteration rules
|
|
40
49
|
- Use fresh context only; do NOT depend on prior chat history.
|
|
41
|
-
- Execute exactly
|
|
42
|
-
- If campaign memory has an unresolved Next iteration contract, do that first.
|
|
50
|
+
- Execute exactly the work specified in the Next Iteration Contract.
|
|
43
51
|
- Refresh context file with the current frontier.
|
|
44
52
|
- Rewrite campaign memory in full.
|
|
45
53
|
- Write evidence artifacts.
|
|
54
|
+
- **Commit all changes when the iteration is complete** (include iteration number and story ID in commit message).
|
|
55
|
+
|
|
56
|
+
MANDATORY: When done with this iteration, write the following signal file:
|
|
57
|
+
- Path: $DESK/memos/$SLUG-iter-signal.json
|
|
58
|
+
- Format: {"iteration": N, "status": "continue|verify|blocked", "summary": "what was done", "timestamp": "ISO"}
|
|
59
|
+
- Status values:
|
|
60
|
+
- "continue" = current action done but more work remains
|
|
61
|
+
- "verify" = all work complete + done-claim written
|
|
62
|
+
- "blocked" = autonomous blocker
|
|
46
63
|
|
|
47
|
-
Stop behavior
|
|
64
|
+
## Stop behavior
|
|
48
65
|
- Objective achieved → write done-claim JSON to $DESK/memos/$SLUG-done-claim.json, exit
|
|
49
66
|
- Autonomous blocker → write to $DESK/memos/$SLUG-blocked.md, exit
|
|
50
67
|
- Otherwise → set stop=continue, define next iteration contract in memory, exit
|
|
51
68
|
|
|
52
|
-
Objective
|
|
69
|
+
## Objective
|
|
70
|
+
$OBJECTIVE
|
|
53
71
|
EOF
|
|
54
72
|
echo " + $F"
|
|
55
73
|
else echo " · $F"; fi
|
|
@@ -63,25 +81,27 @@ Independent verifier for Ralph Desk: $SLUG
|
|
|
63
81
|
Required reads:
|
|
64
82
|
- PRD: $DESK/plans/prd-$SLUG.md
|
|
65
83
|
- Test Spec: $DESK/plans/test-spec-$SLUG.md
|
|
66
|
-
- Campaign Memory: $DESK/memos/$SLUG-memory.md
|
|
84
|
+
- Campaign Memory: $DESK/memos/$SLUG-memory.md (orientation only — not source of truth)
|
|
67
85
|
- Latest Context: $DESK/context/$SLUG-latest.md
|
|
68
86
|
- Done Claim: $DESK/memos/$SLUG-done-claim.json
|
|
69
87
|
|
|
70
88
|
Process:
|
|
71
89
|
1. Read PRD acceptance criteria
|
|
72
90
|
2. Read done claim
|
|
73
|
-
3.
|
|
74
|
-
4.
|
|
75
|
-
5.
|
|
91
|
+
3. Identify scope: run \`git diff --name-only\` to find changed files, then read those files + related imports only
|
|
92
|
+
4. Run fresh verification: build, test, lint, typecheck (per test-spec tools)
|
|
93
|
+
5. Check each criterion against fresh evidence
|
|
94
|
+
6. Run smoke test if defined in PRD
|
|
95
|
+
7. Write verdict JSON to: $DESK/memos/$SLUG-verify-verdict.json
|
|
76
96
|
|
|
77
97
|
Verdict JSON:
|
|
78
98
|
{
|
|
79
|
-
"verdict": "pass|fail|
|
|
99
|
+
"verdict": "pass|fail|request_info",
|
|
80
100
|
"verified_at_utc": "ISO timestamp",
|
|
81
101
|
"summary": "...",
|
|
82
102
|
"criteria_results": [{"criterion":"...","met":true/false,"evidence":"..."}],
|
|
83
103
|
"missing_evidence": [],
|
|
84
|
-
"issues": [],
|
|
104
|
+
"issues": [{"id":"...","severity":"critical|major|minor","description":"...","fix_hint":"(suggestion, non-authoritative)"}],
|
|
85
105
|
"recommended_state_transition": "complete|continue|blocked",
|
|
86
106
|
"next_iteration_contract": "...",
|
|
87
107
|
"evidence_paths": []
|
|
@@ -89,7 +109,9 @@ Verdict JSON:
|
|
|
89
109
|
|
|
90
110
|
Rules:
|
|
91
111
|
- Do NOT trust the worker's claim. Verify with fresh evidence.
|
|
92
|
-
- If uncertain, verdict =
|
|
112
|
+
- If uncertain, verdict = request_info (describe your specific question in summary so Leader can decide).
|
|
113
|
+
- Campaign Memory is for orientation only — do NOT use it as source of truth for AC verification.
|
|
114
|
+
- Deterministic checks (type hints, linting, security) delegate to test-spec tools; focus on AC verification + semantic review + smoke test.
|
|
93
115
|
- Do NOT modify code or write sentinel files.
|
|
94
116
|
EOF
|
|
95
117
|
echo " + $F"
|
|
@@ -130,9 +152,16 @@ $OBJECTIVE
|
|
|
130
152
|
## Current State
|
|
131
153
|
Iteration 0 - not started
|
|
132
154
|
|
|
155
|
+
## Completed Stories
|
|
156
|
+
|
|
133
157
|
## Next Iteration Contract
|
|
134
158
|
Start from the beginning: read PRD and plan the first bounded action.
|
|
135
159
|
|
|
160
|
+
**Criteria**:
|
|
161
|
+
- (to be defined by first worker after reading PRD)
|
|
162
|
+
|
|
163
|
+
## Key Decisions
|
|
164
|
+
|
|
136
165
|
## Patterns Discovered
|
|
137
166
|
## Learnings
|
|
138
167
|
## Evidence Chain
|
|
@@ -153,6 +182,8 @@ $OBJECTIVE
|
|
|
153
182
|
|
|
154
183
|
### US-001: [Title]
|
|
155
184
|
- **Priority**: P0
|
|
185
|
+
- **Size**: S|M|L
|
|
186
|
+
- **Depends on**: []
|
|
156
187
|
- **Acceptance Criteria**:
|
|
157
188
|
- [ ] [Specific, testable criterion]
|
|
158
189
|
- **Status**: not started
|
|
@@ -202,12 +233,7 @@ if [[ -f "$GITIGNORE" ]]; then
|
|
|
202
233
|
echo "" >> "$GITIGNORE"
|
|
203
234
|
cat >> "$GITIGNORE" <<'GIEOF'
|
|
204
235
|
# RLP Desk runtime artifacts
|
|
205
|
-
.claude/ralph-desk/
|
|
206
|
-
.claude/ralph-desk/memos/*-done-claim.json
|
|
207
|
-
.claude/ralph-desk/memos/*-verify-verdict.json
|
|
208
|
-
.claude/ralph-desk/memos/*-complete.md
|
|
209
|
-
.claude/ralph-desk/memos/*-blocked.md
|
|
210
|
-
.claude/ralph-desk/memos/*-iter-signal.json
|
|
236
|
+
.claude/ralph-desk/
|
|
211
237
|
GIEOF
|
|
212
238
|
echo " + .gitignore (rlp-desk rules appended)"
|
|
213
239
|
else
|
|
@@ -216,12 +242,7 @@ GIEOF
|
|
|
216
242
|
else
|
|
217
243
|
cat > "$GITIGNORE" <<'GIEOF'
|
|
218
244
|
# RLP Desk runtime artifacts
|
|
219
|
-
.claude/ralph-desk/
|
|
220
|
-
.claude/ralph-desk/memos/*-done-claim.json
|
|
221
|
-
.claude/ralph-desk/memos/*-verify-verdict.json
|
|
222
|
-
.claude/ralph-desk/memos/*-complete.md
|
|
223
|
-
.claude/ralph-desk/memos/*-blocked.md
|
|
224
|
-
.claude/ralph-desk/memos/*-iter-signal.json
|
|
245
|
+
.claude/ralph-desk/
|
|
225
246
|
GIEOF
|
|
226
247
|
echo " + .gitignore (created with rlp-desk rules)"
|
|
227
248
|
fi
|