projecta-rrr 1.16.1 → 1.16.3
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/CHANGELOG.md +33 -0
- package/bin/install.js +42 -25
- package/commands/rrr/help.md +8 -8
- package/commands/rrr/overnight.md +26 -26
- package/docs/CHEATSHEET-BROWNFIELD.md +3 -3
- package/docs/CHEATSHEET-GREENFIELD.md +3 -3
- package/package.json +2 -2
- package/rrr/lib/checkpoint.sh +2 -2
- package/rrr/lib/morning-review.sh +11 -11
- package/rrr/lib/phase-paths.md +2 -2
- package/rrr/references/shell-compat.md +1 -1
- package/rrr/skills/projecta/visual-proof/SKILL.md +2 -2
- package/scripts/jarvis.sh +1294 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,8 +4,41 @@ All notable changes to RRR will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [1.16.3] - 2026-01-27
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **Pushpa → Jarvis branding consolidation**
|
|
11
|
+
- All documentation, commands, and scripts renamed from Pushpa Mode to Jarvis
|
|
12
|
+
- `scripts/jarvis.sh` is now the unified overnight automation script
|
|
13
|
+
- `npm run jarvis` replaces `npm run pushpa`
|
|
14
|
+
- Install script removes deprecated `pushpa-mode.sh` and `pushpa-jarvis.sh` on update
|
|
15
|
+
|
|
16
|
+
## [1.16.2] - 2026-01-27
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- **jarvis.sh** - Unified autonomous runner combining pushpa-mode.sh and pushpa-jarvis.sh
|
|
20
|
+
- JSON config support with jq/sed fallback
|
|
21
|
+
- Lock file for concurrent run prevention
|
|
22
|
+
- Git branch safety with auto-commit after phase
|
|
23
|
+
- Error classification with intelligent retry
|
|
24
|
+
- Circuit breaker for fail-fast
|
|
25
|
+
- Checkpoint system for resume
|
|
26
|
+
- Context exhaustion handling
|
|
27
|
+
- Claude Code environment detection
|
|
28
|
+
- Morning review generation
|
|
29
|
+
- Verification ladder (unit, playwright, visual, browser_uat)
|
|
30
|
+
|
|
7
31
|
## [1.16.1] - 2026-01-27
|
|
8
32
|
|
|
33
|
+
### Fixed
|
|
34
|
+
- **Missing scripts in npm install** - All user-facing scripts now copied to target project
|
|
35
|
+
- Added: `pushpa-jarvis.sh`, `browser-uat.sh`, `scaffold-e2e.sh`, `chrome-visual-check.sh`, `index-sessions.sh`
|
|
36
|
+
- Added npm scripts: `pushpa:jarvis`, `browser:uat`, `scaffold:e2e`, `chrome:visual`, `sessions:index`
|
|
37
|
+
- Scripts copied alongside existing `pushpa-mode.sh`, `mcp-setup.sh`, `visual-proof.sh`
|
|
38
|
+
- **pushpa-jarvis.sh bug fixes**
|
|
39
|
+
- Fixed `verify_phase()` using wrong variable (`$ph` instead of `$phase`)
|
|
40
|
+
- Fixed `phase_has_summary()` to search both active phases and milestone archives
|
|
41
|
+
|
|
9
42
|
### Fixed
|
|
10
43
|
- **Missing scripts in npm install** - All user-facing scripts now copied to target project
|
|
11
44
|
- Added: `pushpa-jarvis.sh`, `browser-uat.sh`, `scaffold-e2e.sh`, `chrome-visual-check.sh`, `index-sessions.sh`
|
package/bin/install.js
CHANGED
|
@@ -505,9 +505,9 @@ function installScripts(targetDir) {
|
|
|
505
505
|
|
|
506
506
|
const installed = [];
|
|
507
507
|
const skipped = [];
|
|
508
|
+
const removed = [];
|
|
508
509
|
const scripts = [
|
|
509
|
-
'
|
|
510
|
-
'pushpa-jarvis.sh',
|
|
510
|
+
'jarvis.sh',
|
|
511
511
|
'mcp-setup.sh',
|
|
512
512
|
'visual-proof.sh',
|
|
513
513
|
'browser-uat.sh',
|
|
@@ -516,6 +516,10 @@ function installScripts(targetDir) {
|
|
|
516
516
|
'index-sessions.sh'
|
|
517
517
|
];
|
|
518
518
|
|
|
519
|
+
// Scripts to remove (deprecated)
|
|
520
|
+
const deprecatedScripts = ['pushpa-mode.sh', 'pushpa-jarvis.sh'];
|
|
521
|
+
|
|
522
|
+
// Install new scripts
|
|
519
523
|
for (const script of scripts) {
|
|
520
524
|
const srcFile = path.join(srcScriptsDir, script);
|
|
521
525
|
const destFile = path.join(scriptsDir, script);
|
|
@@ -540,7 +544,21 @@ function installScripts(targetDir) {
|
|
|
540
544
|
}
|
|
541
545
|
}
|
|
542
546
|
|
|
543
|
-
|
|
547
|
+
// Remove deprecated scripts
|
|
548
|
+
for (const script of deprecatedScripts) {
|
|
549
|
+
const destFile = path.join(scriptsDir, script);
|
|
550
|
+
if (fs.existsSync(destFile)) {
|
|
551
|
+
try {
|
|
552
|
+
fs.unlinkSync(destFile);
|
|
553
|
+
removed.push(script);
|
|
554
|
+
console.log(` ${green}✓${reset} Removed deprecated scripts/${script}`);
|
|
555
|
+
} catch (e) {
|
|
556
|
+
console.log(` ${yellow}⚠${reset} Could not remove scripts/${script}: ${e.message}`);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
return { installed, skipped, removed };
|
|
544
562
|
}
|
|
545
563
|
|
|
546
564
|
/**
|
|
@@ -570,16 +588,27 @@ function addNpmScripts(targetDir, installedScripts, bashAvailable = true) {
|
|
|
570
588
|
|
|
571
589
|
const added = [];
|
|
572
590
|
const skipped = [];
|
|
591
|
+
const removed = [];
|
|
573
592
|
|
|
574
|
-
// Add
|
|
575
|
-
if (installedScripts.includes('
|
|
576
|
-
if (pkgJson.scripts.
|
|
577
|
-
skipped.push('
|
|
578
|
-
console.log(` ${yellow}⚠${reset} Skipped npm script "
|
|
593
|
+
// Add jarvis script if jarvis.sh was installed
|
|
594
|
+
if (installedScripts.includes('jarvis.sh') || fs.existsSync(path.join(targetDir, 'scripts', 'jarvis.sh'))) {
|
|
595
|
+
if (pkgJson.scripts.jarvis) {
|
|
596
|
+
skipped.push('jarvis');
|
|
597
|
+
console.log(` ${yellow}⚠${reset} Skipped npm script "jarvis" (already exists)`);
|
|
579
598
|
} else {
|
|
580
|
-
pkgJson.scripts.
|
|
581
|
-
added.push('
|
|
582
|
-
console.log(` ${green}✓${reset} Added npm script "
|
|
599
|
+
pkgJson.scripts.jarvis = 'bash scripts/jarvis.sh';
|
|
600
|
+
added.push('jarvis');
|
|
601
|
+
console.log(` ${green}✓${reset} Added npm script "jarvis"`);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Remove deprecated pushpa npm scripts
|
|
606
|
+
const deprecatedNpmScripts = ['pushpa', 'pushpa:mode', 'pushpa:jarvis'];
|
|
607
|
+
for (const script of deprecatedNpmScripts) {
|
|
608
|
+
if (pkgJson.scripts[script]) {
|
|
609
|
+
delete pkgJson.scripts[script];
|
|
610
|
+
removed.push(script);
|
|
611
|
+
console.log(` ${green}✓${reset} Removed deprecated npm script "${script}"`);
|
|
583
612
|
}
|
|
584
613
|
}
|
|
585
614
|
|
|
@@ -607,18 +636,6 @@ function addNpmScripts(targetDir, installedScripts, bashAvailable = true) {
|
|
|
607
636
|
}
|
|
608
637
|
}
|
|
609
638
|
|
|
610
|
-
// Add pushpa:jarvis script if pushpa-jarvis.sh was installed
|
|
611
|
-
if (installedScripts.includes('pushpa-jarvis.sh') || fs.existsSync(path.join(targetDir, 'scripts', 'pushpa-jarvis.sh'))) {
|
|
612
|
-
if (pkgJson.scripts['pushpa:jarvis']) {
|
|
613
|
-
skipped.push('pushpa:jarvis');
|
|
614
|
-
console.log(` ${yellow}⚠${reset} Skipped npm script "pushpa:jarvis" (already exists)`);
|
|
615
|
-
} else {
|
|
616
|
-
pkgJson.scripts['pushpa:jarvis'] = 'bash scripts/pushpa-jarvis.sh';
|
|
617
|
-
added.push('pushpa:jarvis');
|
|
618
|
-
console.log(` ${green}✓${reset} Added npm script "pushpa:jarvis"`);
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
|
|
622
639
|
// Add browser:uat script if browser-uat.sh was installed
|
|
623
640
|
if (installedScripts.includes('browser-uat.sh') || fs.existsSync(path.join(targetDir, 'scripts', 'browser-uat.sh'))) {
|
|
624
641
|
if (pkgJson.scripts['browser:uat']) {
|
|
@@ -674,10 +691,10 @@ function addNpmScripts(targetDir, installedScripts, bashAvailable = true) {
|
|
|
674
691
|
|
|
675
692
|
// Warn about bash requirement on Windows
|
|
676
693
|
if (!bashAvailable && (added.length > 0 || skipped.length > 0)) {
|
|
677
|
-
console.log(` ${yellow}⚠${reset} Note: npm scripts require bash (${dim}npm run
|
|
694
|
+
console.log(` ${yellow}⚠${reset} Note: npm scripts require bash (${dim}npm run jarvis${reset}, etc.)`);
|
|
678
695
|
}
|
|
679
696
|
|
|
680
|
-
return { added, skipped };
|
|
697
|
+
return { added, skipped, removed };
|
|
681
698
|
}
|
|
682
699
|
|
|
683
700
|
/**
|
package/commands/rrr/help.md
CHANGED
|
@@ -28,7 +28,7 @@ Output ONLY the reference content below. Do NOT add:
|
|
|
28
28
|
**Windows users:**
|
|
29
29
|
- **Core commands work without bash** — `/rrr:new-project`, `/rrr:progress`, `/rrr:plan-phase` use cross-platform file detection
|
|
30
30
|
- **Hooks need bash** — Statusline, notifications, update checks require Git Bash or WSL2
|
|
31
|
-
- **npm scripts need bash** — `npm run
|
|
31
|
+
- **npm scripts need bash** — `npm run jarvis`, `npm run e2e` require bash
|
|
32
32
|
- **Recommended setup:** Install [Git for Windows](https://git-scm.com/download/win) (includes Git Bash) OR run `wsl --install` in PowerShell for WSL2
|
|
33
33
|
- **Verify:** Run `bash --version` in your terminal
|
|
34
34
|
|
|
@@ -53,8 +53,8 @@ Output ONLY the reference content below. Do NOT add:
|
|
|
53
53
|
| Environment | What to run | Notes |
|
|
54
54
|
|-------------|-------------|-------|
|
|
55
55
|
| **Inside Claude Code** | `/rrr:*` slash commands | Interactive planning/execution |
|
|
56
|
-
| **Outside Claude Code** | `bash scripts/
|
|
57
|
-
| **npm scripts** | `npm run
|
|
56
|
+
| **Outside Claude Code** | `bash scripts/jarvis-mode.sh` | Unattended overnight runs |
|
|
57
|
+
| **npm scripts** | `npm run jarvis`, `npm run e2e` | Convenience wrappers |
|
|
58
58
|
|
|
59
59
|
**After installing from inside Claude Code:** Exit and restart `claude` to load new commands.
|
|
60
60
|
|
|
@@ -582,7 +582,7 @@ Usage: `/rrr:mvp`
|
|
|
582
582
|
Pushpa Mode guidance: preflight checks and run instructions.
|
|
583
583
|
|
|
584
584
|
- Checks if project is initialized
|
|
585
|
-
- Checks if `scripts/
|
|
585
|
+
- Checks if `scripts/jarvis-mode.sh` exists (gives copy instructions if not)
|
|
586
586
|
- Provides exact command to run in a normal terminal
|
|
587
587
|
- Recommends running outside Claude Code interactive session
|
|
588
588
|
|
|
@@ -605,7 +605,7 @@ Usage: `/rrr:overnight`
|
|
|
605
605
|
│ └── playwright/ # Playwright test output
|
|
606
606
|
│ ├── report/ # HTML report
|
|
607
607
|
│ └── test-results/ # Screenshots, traces, videos
|
|
608
|
-
├──
|
|
608
|
+
├── jarvis/ # Pushpa Mode state
|
|
609
609
|
│ └── ledger.json # Persistent run state
|
|
610
610
|
├── todos/ # Captured ideas and tasks
|
|
611
611
|
│ ├── pending/ # Todos waiting to be worked on
|
|
@@ -700,9 +700,9 @@ If repo is broken, brownfield-audit creates a stabilization Phase 00:
|
|
|
700
700
|
Run phases unattended while you sleep with token-safe budgets. After `npx projecta-rrr`:
|
|
701
701
|
|
|
702
702
|
```
|
|
703
|
-
bash scripts/
|
|
703
|
+
bash scripts/jarvis-mode.sh
|
|
704
704
|
# or
|
|
705
|
-
npm run
|
|
705
|
+
npm run jarvis
|
|
706
706
|
```
|
|
707
707
|
|
|
708
708
|
Prerequisites:
|
|
@@ -721,7 +721,7 @@ Pushpa Mode will:
|
|
|
721
721
|
- Enforce budgets (max phases, time, calls)
|
|
722
722
|
- Stop on repeated failures (prevents infinite loops)
|
|
723
723
|
- Generate report at `.planning/PUSHPA_REPORT.md`
|
|
724
|
-
- Persist state to `.planning/
|
|
724
|
+
- Persist state to `.planning/jarvis/ledger.json`
|
|
725
725
|
|
|
726
726
|
**Budgets (override via env vars):**
|
|
727
727
|
- `MAX_PHASES_PER_RUN=3` — phases per run
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rrr:overnight
|
|
3
|
-
description:
|
|
3
|
+
description: Jarvis (overnight automation) guidance - preflight checks and safe run instructions
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<objective>
|
|
7
|
-
Guide user to run
|
|
7
|
+
Guide user to run Jarvis safely and correctly.
|
|
8
8
|
|
|
9
9
|
Perform preflight checks and provide exact instructions.
|
|
10
|
-
Do NOT run
|
|
10
|
+
Do NOT run Jarvis directly from this command.
|
|
11
11
|
</objective>
|
|
12
12
|
|
|
13
13
|
<behavior>
|
|
@@ -17,11 +17,11 @@ Run these checks in order:
|
|
|
17
17
|
|
|
18
18
|
If `.planning/STATE.md` does NOT exist:
|
|
19
19
|
```
|
|
20
|
-
##
|
|
20
|
+
## Jarvis Preflight
|
|
21
21
|
|
|
22
22
|
**Status:** NOT READY
|
|
23
23
|
|
|
24
|
-
Your project is not initialized yet.
|
|
24
|
+
Your project is not initialized yet. Jarvis requires RRR planning files.
|
|
25
25
|
|
|
26
26
|
**Fix:** Run `/rrr:new-project` first to:
|
|
27
27
|
- Bootstrap your project (if empty folder)
|
|
@@ -32,32 +32,32 @@ Then come back and run `/rrr:overnight` again.
|
|
|
32
32
|
```
|
|
33
33
|
STOP here if not initialized.
|
|
34
34
|
|
|
35
|
-
## 2. Check
|
|
35
|
+
## 2. Check jarvis.sh exists
|
|
36
36
|
|
|
37
|
-
Check if `scripts/
|
|
37
|
+
Check if `scripts/jarvis.sh` exists in the user's project.
|
|
38
38
|
|
|
39
39
|
If it does NOT exist:
|
|
40
40
|
```
|
|
41
|
-
##
|
|
41
|
+
## Jarvis Preflight
|
|
42
42
|
|
|
43
43
|
**Status:** Script not found
|
|
44
44
|
|
|
45
|
-
The
|
|
45
|
+
The Jarvis script is not in your project yet.
|
|
46
46
|
|
|
47
47
|
**Fix:** Copy it from the RRR installation:
|
|
48
48
|
|
|
49
49
|
If RRR installed globally:
|
|
50
50
|
\`\`\`bash
|
|
51
51
|
mkdir -p scripts
|
|
52
|
-
cp ~/.claude/rrr/scripts/
|
|
53
|
-
chmod +x scripts/
|
|
52
|
+
cp ~/.claude/rrr/scripts/jarvis.sh scripts/jarvis.sh
|
|
53
|
+
chmod +x scripts/jarvis.sh
|
|
54
54
|
\`\`\`
|
|
55
55
|
|
|
56
56
|
If RRR installed locally:
|
|
57
57
|
\`\`\`bash
|
|
58
58
|
mkdir -p scripts
|
|
59
|
-
cp .claude/rrr/scripts/
|
|
60
|
-
chmod +x scripts/
|
|
59
|
+
cp .claude/rrr/scripts/jarvis.sh scripts/jarvis.sh
|
|
60
|
+
chmod +x scripts/jarvis.sh
|
|
61
61
|
\`\`\`
|
|
62
62
|
|
|
63
63
|
Then run `/rrr:overnight` again.
|
|
@@ -67,7 +67,7 @@ STOP here if script missing.
|
|
|
67
67
|
## 3. All checks passed - provide run instructions
|
|
68
68
|
|
|
69
69
|
```
|
|
70
|
-
##
|
|
70
|
+
## Jarvis Ready
|
|
71
71
|
|
|
72
72
|
**Status:** READY
|
|
73
73
|
|
|
@@ -78,49 +78,49 @@ All preflight checks passed.
|
|
|
78
78
|
**Recommended:** Open a separate terminal (outside Claude Code) and run:
|
|
79
79
|
|
|
80
80
|
\`\`\`bash
|
|
81
|
-
bash scripts/
|
|
81
|
+
bash scripts/jarvis.sh
|
|
82
82
|
\`\`\`
|
|
83
83
|
|
|
84
84
|
Or if you added the npm script:
|
|
85
85
|
\`\`\`bash
|
|
86
|
-
npm run
|
|
86
|
+
npm run jarvis
|
|
87
87
|
\`\`\`
|
|
88
88
|
|
|
89
89
|
### Why run outside Claude Code?
|
|
90
90
|
|
|
91
|
-
Running
|
|
91
|
+
Running Jarvis inside Claude Code interactive session can:
|
|
92
92
|
- Trigger approval prompts that interrupt unattended execution
|
|
93
93
|
- Not be truly "overnight" autonomous
|
|
94
94
|
|
|
95
95
|
The script will detect if you run it inside Claude Code and prompt to confirm.
|
|
96
96
|
|
|
97
|
-
### What
|
|
97
|
+
### What Jarvis does
|
|
98
98
|
|
|
99
99
|
1. Plans any phases that don't have plans yet
|
|
100
100
|
2. Executes phases automatically (skips HITL-marked phases)
|
|
101
101
|
3. Runs visual proof (Playwright) after each phase
|
|
102
102
|
4. Enforces budgets to prevent runaway token usage
|
|
103
|
-
5. Generates report at `.planning/
|
|
103
|
+
5. Generates report at `.planning/JARVIS_REPORT.md`
|
|
104
104
|
|
|
105
105
|
### Budgets (override via env vars)
|
|
106
106
|
|
|
107
107
|
| Budget | Default | Env Var |
|
|
108
108
|
|--------|---------|---------|
|
|
109
|
-
| Max phases |
|
|
110
|
-
| Max minutes |
|
|
111
|
-
| Max RRR calls |
|
|
109
|
+
| Max phases | 10 | `MAX_PHASES_PER_RUN` |
|
|
110
|
+
| Max minutes | 360 | `MAX_TOTAL_MINUTES` |
|
|
111
|
+
| Max RRR calls | 100 | `MAX_TOTAL_RRR_CALLS` |
|
|
112
112
|
|
|
113
113
|
### Output locations
|
|
114
114
|
|
|
115
|
-
- Report: `.planning/
|
|
116
|
-
- Logs: `.planning/logs/
|
|
117
|
-
- Ledger: `.planning/
|
|
115
|
+
- Report: `.planning/JARVIS_REPORT.md`
|
|
116
|
+
- Logs: `.planning/logs/jarvis_*.log`
|
|
117
|
+
- Ledger: `.planning/jarvis/ledger.json`
|
|
118
118
|
- Artifacts: `.planning/artifacts/playwright/`
|
|
119
119
|
```
|
|
120
120
|
</behavior>
|
|
121
121
|
|
|
122
122
|
<constraints>
|
|
123
|
-
- Do NOT run
|
|
123
|
+
- Do NOT run jarvis.sh from this command
|
|
124
124
|
- Only provide guidance and instructions
|
|
125
125
|
- Always recommend running in a separate terminal
|
|
126
126
|
</constraints>
|
|
@@ -68,7 +68,7 @@ Run this weekly or when `/rrr:update` tells you there's a new version.
|
|
|
68
68
|
### Windows Notes
|
|
69
69
|
- Core commands work without bash (Read, Glob, Grep)
|
|
70
70
|
- Hooks (statusline, notifications) need Git Bash or WSL2
|
|
71
|
-
- npm scripts (`npm run
|
|
71
|
+
- npm scripts (`npm run jarvis`, `npm run e2e`) require bash
|
|
72
72
|
|
|
73
73
|
### Commands Not Working?
|
|
74
74
|
|
|
@@ -248,10 +248,10 @@ See: [MILESTONE-STRUCTURE.md](./MILESTONE-STRUCTURE.md#decision-tree-patches-vs-
|
|
|
248
248
|
**Commands:**
|
|
249
249
|
```bash
|
|
250
250
|
# Run in a SEPARATE terminal (not inside Claude Code)
|
|
251
|
-
bash scripts/
|
|
251
|
+
bash scripts/jarvis-mode.sh
|
|
252
252
|
|
|
253
253
|
# Or via npm
|
|
254
|
-
npm run
|
|
254
|
+
npm run jarvis
|
|
255
255
|
```
|
|
256
256
|
|
|
257
257
|
**Safety:**
|
|
@@ -68,7 +68,7 @@ Run this weekly or when `/rrr:update` tells you there's a new version.
|
|
|
68
68
|
### Windows Notes
|
|
69
69
|
- Core commands work without bash (Read, Glob, Grep)
|
|
70
70
|
- Hooks (statusline, notifications) need Git Bash or WSL2
|
|
71
|
-
- npm scripts (`npm run
|
|
71
|
+
- npm scripts (`npm run jarvis`, `npm run e2e`) require bash
|
|
72
72
|
|
|
73
73
|
### Commands Not Working?
|
|
74
74
|
|
|
@@ -224,10 +224,10 @@ See: [MILESTONE-STRUCTURE.md](./MILESTONE-STRUCTURE.md#decision-tree-patches-vs-
|
|
|
224
224
|
**Commands:**
|
|
225
225
|
```bash
|
|
226
226
|
# Run in a SEPARATE terminal (not inside Claude Code)
|
|
227
|
-
bash scripts/
|
|
227
|
+
bash scripts/jarvis-mode.sh
|
|
228
228
|
|
|
229
229
|
# Or via npm
|
|
230
|
-
npm run
|
|
230
|
+
npm run jarvis
|
|
231
231
|
```
|
|
232
232
|
|
|
233
233
|
**Safety:**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projecta-rrr",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.3",
|
|
4
4
|
"description": "A meta-prompting, context engineering and spec-driven development system for Claude Code by Projecta.ai",
|
|
5
5
|
"bin": {
|
|
6
6
|
"projecta-rrr": "bin/install.js"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"test:browser": "vitest --browser",
|
|
13
13
|
"test:ui": "vitest --ui",
|
|
14
14
|
"mcp:setup": "bash scripts/mcp-setup.sh",
|
|
15
|
-
"
|
|
15
|
+
"jarvis": "bash scripts/jarvis.sh",
|
|
16
16
|
"visual:proof": "bash scripts/visual-proof.sh",
|
|
17
17
|
"test:e2e": "playwright test",
|
|
18
18
|
"test:e2e:ui": "playwright test --ui",
|
package/rrr/lib/checkpoint.sh
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
# checkpoint_init "$PUSHPA_DIR/checkpoint.json"
|
|
16
16
|
#
|
|
17
17
|
# # Record progress
|
|
18
|
-
# checkpoint_set_phase "30" "
|
|
18
|
+
# checkpoint_set_phase "30" "jarvis-circuit-breaker"
|
|
19
19
|
# checkpoint_set_plan "02" "3"
|
|
20
20
|
# checkpoint_set_task "2" "Add unit tests" "completed"
|
|
21
21
|
#
|
|
@@ -369,7 +369,7 @@ checkpoint_set_plan() {
|
|
|
369
369
|
#
|
|
370
370
|
# Arguments:
|
|
371
371
|
# $1 - phase_number: Phase number (e.g., "30")
|
|
372
|
-
# $2 - phase_name: Phase name (e.g., "
|
|
372
|
+
# $2 - phase_name: Phase name (e.g., "jarvis-circuit-breaker")
|
|
373
373
|
#
|
|
374
374
|
# Returns:
|
|
375
375
|
# 0 on success
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# source rrr/lib/morning-review.sh
|
|
11
11
|
# generate_morning_review "$PUSHPA_DIR"
|
|
12
12
|
#
|
|
13
|
-
# Environment Variables (set by
|
|
13
|
+
# Environment Variables (set by jarvis-mode.sh):
|
|
14
14
|
# PUSHPA_LEDGER_FILE - Path to ledger.json
|
|
15
15
|
# PUSHPA_LOG_FILE - Path to run log file
|
|
16
16
|
# PUSHPA_STOP_REASON - Stop reason string
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
23
23
|
#
|
|
24
24
|
# Arguments:
|
|
25
|
-
# $1 - output_dir: Directory to write review files (default: .planning/
|
|
25
|
+
# $1 - output_dir: Directory to write review files (default: .planning/jarvis)
|
|
26
26
|
#
|
|
27
27
|
# Returns:
|
|
28
28
|
# Prints paths to created files:
|
|
29
|
-
# json:/path/to/
|
|
30
|
-
# txt:/path/to/
|
|
29
|
+
# json:/path/to/jarvis-review-YYYYMMDD.json
|
|
30
|
+
# txt:/path/to/jarvis-review-YYYYMMDD.txt
|
|
31
31
|
#
|
|
32
32
|
generate_morning_review() {
|
|
33
|
-
local output_dir="${1:-.planning/
|
|
33
|
+
local output_dir="${1:-.planning/jarvis}"
|
|
34
34
|
local date_stamp
|
|
35
35
|
date_stamp=$(date +%Y%m%d)
|
|
36
|
-
local json_file="$output_dir/
|
|
37
|
-
local txt_file="$output_dir/
|
|
36
|
+
local json_file="$output_dir/jarvis-review-${date_stamp}.json"
|
|
37
|
+
local txt_file="$output_dir/jarvis-review-${date_stamp}.txt"
|
|
38
38
|
|
|
39
39
|
mkdir -p "$output_dir"
|
|
40
40
|
|
|
@@ -188,8 +188,8 @@ build_review_txt() {
|
|
|
188
188
|
# File paths
|
|
189
189
|
local date_stamp
|
|
190
190
|
date_stamp=$(date +%Y%m%d)
|
|
191
|
-
local ledger_path="${PUSHPA_LEDGER_FILE:-.planning/
|
|
192
|
-
local log_path="${PUSHPA_LOG_FILE:-.planning/logs/
|
|
191
|
+
local ledger_path="${PUSHPA_LEDGER_FILE:-.planning/jarvis/ledger.json}"
|
|
192
|
+
local log_path="${PUSHPA_LOG_FILE:-.planning/logs/jarvis.log}"
|
|
193
193
|
|
|
194
194
|
cat <<EOF
|
|
195
195
|
================================================================================
|
|
@@ -231,8 +231,8 @@ Stop Reason: $stop_reason
|
|
|
231
231
|
--------------------------------------------------------------------------------
|
|
232
232
|
|
|
233
233
|
Files:
|
|
234
|
-
JSON: .planning/
|
|
235
|
-
TXT: .planning/
|
|
234
|
+
JSON: .planning/jarvis/jarvis-review-${date_stamp}.json
|
|
235
|
+
TXT: .planning/jarvis/jarvis-review-${date_stamp}.txt
|
|
236
236
|
Ledger: $ledger_path
|
|
237
237
|
Logs: $log_path
|
|
238
238
|
|
package/rrr/lib/phase-paths.md
CHANGED
|
@@ -199,9 +199,9 @@ create_phase_dir() {
|
|
|
199
199
|
|
|
200
200
|
**Example:**
|
|
201
201
|
```bash
|
|
202
|
-
new_dir=$(create_phase_dir 29 "
|
|
202
|
+
new_dir=$(create_phase_dir 29 "jarvis-retry")
|
|
203
203
|
echo "Created: $new_dir"
|
|
204
|
-
# Output: "Created: .planning/milestones/v1.11/phases/29-
|
|
204
|
+
# Output: "Created: .planning/milestones/v1.11/phases/29-jarvis-retry"
|
|
205
205
|
```
|
|
206
206
|
|
|
207
207
|
---
|
|
@@ -132,7 +132,7 @@ For full RRR functionality on Windows, recommend one of:
|
|
|
132
132
|
|
|
133
133
|
Without either, core RRR commands work but:
|
|
134
134
|
- Hooks won't run (statusline, notifications)
|
|
135
|
-
- npm scripts like `npm run
|
|
135
|
+
- npm scripts like `npm run jarvis` won't work
|
|
136
136
|
- Visual proof scripts require manual workarounds
|
|
137
137
|
|
|
138
138
|
## Example: Cross-Platform Preflight
|
|
@@ -92,8 +92,8 @@ bash scripts/visual-proof.sh
|
|
|
92
92
|
bash scripts/visual-proof.sh --chrome
|
|
93
93
|
|
|
94
94
|
# Pushpa mode (no interactive prompts)
|
|
95
|
-
bash scripts/visual-proof.sh --
|
|
96
|
-
bash scripts/visual-proof.sh --
|
|
95
|
+
bash scripts/visual-proof.sh --jarvis
|
|
96
|
+
bash scripts/visual-proof.sh --jarvis --chrome
|
|
97
97
|
|
|
98
98
|
# Individual commands
|
|
99
99
|
npm run e2e # Headless Playwright
|