oh-my-claude-sisyphus 2.4.1 → 2.6.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.
Files changed (85) hide show
  1. package/README.md +56 -29
  2. package/dist/__tests__/hooks.test.js +255 -1
  3. package/dist/__tests__/hooks.test.js.map +1 -1
  4. package/dist/__tests__/installer.test.js +3 -1
  5. package/dist/__tests__/installer.test.js.map +1 -1
  6. package/dist/__tests__/notepad.test.d.ts +2 -0
  7. package/dist/__tests__/notepad.test.d.ts.map +1 -0
  8. package/dist/__tests__/notepad.test.js +374 -0
  9. package/dist/__tests__/notepad.test.js.map +1 -0
  10. package/dist/__tests__/ralph-prd.test.d.ts +2 -0
  11. package/dist/__tests__/ralph-prd.test.d.ts.map +1 -0
  12. package/dist/__tests__/ralph-prd.test.js +308 -0
  13. package/dist/__tests__/ralph-prd.test.js.map +1 -0
  14. package/dist/__tests__/ralph-progress.test.d.ts +2 -0
  15. package/dist/__tests__/ralph-progress.test.d.ts.map +1 -0
  16. package/dist/__tests__/ralph-progress.test.js +312 -0
  17. package/dist/__tests__/ralph-progress.test.js.map +1 -0
  18. package/dist/__tests__/skills.test.js +5 -3
  19. package/dist/__tests__/skills.test.js.map +1 -1
  20. package/dist/agents/definitions.d.ts +4 -0
  21. package/dist/agents/definitions.d.ts.map +1 -1
  22. package/dist/agents/definitions.js +147 -3
  23. package/dist/agents/definitions.js.map +1 -1
  24. package/dist/agents/index.d.ts +1 -0
  25. package/dist/agents/index.d.ts.map +1 -1
  26. package/dist/agents/index.js +2 -0
  27. package/dist/agents/index.js.map +1 -1
  28. package/dist/agents/prometheus.js +2 -2
  29. package/dist/agents/prometheus.js.map +1 -1
  30. package/dist/cli/index.js +6 -4
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  33. package/dist/features/builtin-skills/skills.js +61 -0
  34. package/dist/features/builtin-skills/skills.js.map +1 -1
  35. package/dist/features/magic-keywords.js +1 -1
  36. package/dist/hooks/index.d.ts +5 -1
  37. package/dist/hooks/index.d.ts.map +1 -1
  38. package/dist/hooks/index.js +15 -1
  39. package/dist/hooks/index.js.map +1 -1
  40. package/dist/hooks/notepad/index.d.ts +114 -0
  41. package/dist/hooks/notepad/index.d.ts.map +1 -0
  42. package/dist/hooks/notepad/index.js +372 -0
  43. package/dist/hooks/notepad/index.js.map +1 -0
  44. package/dist/hooks/persistent-mode/index.d.ts +5 -0
  45. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  46. package/dist/hooks/persistent-mode/index.js +71 -5
  47. package/dist/hooks/persistent-mode/index.js.map +1 -1
  48. package/dist/hooks/ralph-loop/index.d.ts +48 -0
  49. package/dist/hooks/ralph-loop/index.d.ts.map +1 -1
  50. package/dist/hooks/ralph-loop/index.js +127 -0
  51. package/dist/hooks/ralph-loop/index.js.map +1 -1
  52. package/dist/hooks/ralph-prd/index.d.ts +130 -0
  53. package/dist/hooks/ralph-prd/index.d.ts.map +1 -0
  54. package/dist/hooks/ralph-prd/index.js +310 -0
  55. package/dist/hooks/ralph-prd/index.js.map +1 -0
  56. package/dist/hooks/ralph-progress/index.d.ts +102 -0
  57. package/dist/hooks/ralph-progress/index.d.ts.map +1 -0
  58. package/dist/hooks/ralph-progress/index.js +408 -0
  59. package/dist/hooks/ralph-progress/index.js.map +1 -0
  60. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -1
  61. package/dist/hooks/sisyphus-orchestrator/index.js +26 -0
  62. package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -1
  63. package/dist/hooks/ultraqa-loop/index.d.ts +94 -0
  64. package/dist/hooks/ultraqa-loop/index.d.ts.map +1 -0
  65. package/dist/hooks/ultraqa-loop/index.js +216 -0
  66. package/dist/hooks/ultraqa-loop/index.js.map +1 -0
  67. package/dist/installer/hooks.d.ts +28 -0
  68. package/dist/installer/hooks.d.ts.map +1 -1
  69. package/dist/installer/hooks.js +262 -2
  70. package/dist/installer/hooks.js.map +1 -1
  71. package/dist/installer/index.d.ts +1 -1
  72. package/dist/installer/index.d.ts.map +1 -1
  73. package/dist/installer/index.js +533 -23
  74. package/dist/installer/index.js.map +1 -1
  75. package/package.json +1 -1
  76. package/scripts/install.sh +119 -16
  77. package/scripts/persistent-mode.mjs +167 -6
  78. package/scripts/post-tool-verifier.mjs +62 -1
  79. package/scripts/session-start.mjs +22 -0
  80. package/scripts/test-max-attempts.ts +94 -0
  81. package/scripts/test-mutual-exclusion.ts +152 -0
  82. package/scripts/test-notepad-integration.ts +495 -0
  83. package/scripts/test-remember-tags.ts +121 -0
  84. package/scripts/test-session-injection.ts +41 -0
  85. package/scripts/uninstall.sh +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-claude-sisyphus",
3
- "version": "2.4.1",
3
+ "version": "2.6.0",
4
4
  "description": "Multi-agent orchestration system for Claude Code - Inspired by oh-my-opencode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -700,27 +700,105 @@ Delegate tasks to specialized agents using the Task tool:
700
700
  - NEVER leave work incomplete
701
701
  CMD_EOF
702
702
 
703
- # Sisyphus default mode command
703
+ # Sisyphus default mode command (project-scoped)
704
704
  cat > "$CLAUDE_CONFIG_DIR/commands/sisyphus-default.md" << 'CMD_EOF'
705
705
  ---
706
- description: Set Sisyphus as your default operating mode
706
+ description: Configure Sisyphus in local project (.claude/CLAUDE.md)
707
707
  ---
708
708
 
709
709
  $ARGUMENTS
710
710
 
711
- ## Task: Configure Sisyphus Default Mode
711
+ ## Task: Configure Sisyphus Default Mode (Project-Scoped)
712
712
 
713
- **CRITICAL**: This skill ALWAYS downloads fresh CLAUDE.md from GitHub. DO NOT use the Write tool - use bash curl exclusively.
713
+ **CRITICAL**: This skill ALWAYS downloads fresh CLAUDE.md from GitHub to your local project. DO NOT use the Write tool - use bash curl exclusively.
714
+
715
+ ### Step 1: Create Local .claude Directory
716
+
717
+ Ensure the local project has a .claude directory:
718
+
719
+ ```bash
720
+ # Create .claude directory in current project
721
+ mkdir -p .claude && echo "✅ .claude directory created" || echo "❌ Failed to create .claude directory"
722
+ ```
723
+
724
+ ### Step 2: Download Fresh CLAUDE.md (MANDATORY)
725
+
726
+ Execute this bash command to download fresh CLAUDE.md to local project config:
727
+
728
+ ```bash
729
+ # Download fresh CLAUDE.md to project-local .claude/
730
+ curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md" -o .claude/CLAUDE.md && \
731
+ echo "✅ CLAUDE.md downloaded successfully to .claude/CLAUDE.md" || \
732
+ echo "❌ Failed to download CLAUDE.md"
733
+ ```
734
+
735
+ **MANDATORY**: Always run this command. Do NOT skip. Do NOT use Write tool.
736
+
737
+ **FALLBACK** if curl fails:
738
+ Tell user to manually download from:
739
+ https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md
740
+
741
+ ### Step 3: Verify Plugin Installation
742
+
743
+ The oh-my-claude-sisyphus plugin provides all hooks automatically via the plugin system. Verify the plugin is enabled:
744
+
745
+ ```bash
746
+ grep -q "oh-my-claude-sisyphus" ~/.claude/settings.json && echo "Plugin enabled" || echo "Plugin NOT enabled"
747
+ ```
748
+
749
+ If plugin is not enabled, instruct user:
750
+ > Run: `claude /install-plugin oh-my-claude-sisyphus` to enable the plugin.
751
+
752
+ ### Step 4: Confirm Success
753
+
754
+ After completing all steps, report:
755
+
756
+ ✅ **Sisyphus Project Configuration Complete**
757
+ - CLAUDE.md: Updated with latest configuration from GitHub at ./.claude/CLAUDE.md
758
+ - Scope: **PROJECT** - applies only to this project
759
+ - Hooks: Provided by plugin (no manual installation needed)
760
+ - Agents: 19+ available (base + tiered variants)
761
+ - Model routing: Haiku/Sonnet/Opus based on task complexity
762
+
763
+ **Note**: This configuration is project-specific and won't affect other projects or global settings.
764
+
765
+ ---
766
+
767
+ ## 🔄 Keeping Up to Date
768
+
769
+ After installing oh-my-claude-sisyphus updates (via npm or plugin update), run `/sisyphus-default` again in your project to get the latest CLAUDE.md configuration. This ensures you have the newest features and agent configurations.
770
+
771
+ ---
772
+
773
+ ## 🌍 Global vs Project Configuration
774
+
775
+ - **`/sisyphus-default`** (this command): Creates `./.claude/CLAUDE.md` in your current project
776
+ - **`/sisyphus-default-global`**: Creates `~/.claude/CLAUDE.md` for all projects
777
+
778
+ Project-scoped configuration takes precedence over global configuration.
779
+ CMD_EOF
780
+
781
+ # Sisyphus default mode command (global)
782
+ cat > "$CLAUDE_CONFIG_DIR/commands/sisyphus-default-global.md" << 'CMD_EOF'
783
+ ---
784
+ description: Configure Sisyphus globally in ~/.claude/CLAUDE.md
785
+ ---
786
+
787
+ $ARGUMENTS
788
+
789
+ ## Task: Configure Sisyphus Default Mode (Global)
790
+
791
+ **CRITICAL**: This skill ALWAYS downloads fresh CLAUDE.md from GitHub to your global config. DO NOT use the Write tool - use bash curl exclusively.
714
792
 
715
793
  ### Step 1: Download Fresh CLAUDE.md (MANDATORY)
716
794
 
717
- Execute this bash command to erase and download fresh CLAUDE.md:
795
+ Execute this bash command to erase and download fresh CLAUDE.md to global config:
718
796
 
719
797
  ```bash
720
798
  # Remove existing CLAUDE.md and download fresh from GitHub
721
799
  rm -f ~/.claude/CLAUDE.md && \
722
800
  curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md" -o ~/.claude/CLAUDE.md && \
723
- echo "✅ CLAUDE.md downloaded successfully" || \
801
+ echo "✅ CLAUDE.md downloaded successfully to ~/.claude/CLAUDE.md" || \
724
802
  echo "❌ Failed to download CLAUDE.md"
725
803
  ```
726
804
 
@@ -730,29 +808,51 @@ echo "❌ Failed to download CLAUDE.md"
730
808
  Tell user to manually download from:
731
809
  https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md
732
810
 
733
- ### Step 2: Verify Plugin Installation
811
+ ### Step 2: Clean Up Legacy Hooks (if present)
812
+
813
+ Check if old manual hooks exist and remove them to prevent duplicates:
814
+
815
+ ```bash
816
+ # Remove legacy bash hook scripts (now handled by plugin system)
817
+ rm -f ~/.claude/hooks/keyword-detector.sh
818
+ rm -f ~/.claude/hooks/stop-continuation.sh
819
+ rm -f ~/.claude/hooks/persistent-mode.sh
820
+ rm -f ~/.claude/hooks/session-start.sh
821
+ ```
822
+
823
+ Check `~/.claude/settings.json` for manual hook entries. If the "hooks" key exists with UserPromptSubmit, Stop, or SessionStart entries pointing to bash scripts, inform the user:
824
+
825
+ > **Note**: Found legacy hooks in settings.json. These should be removed since the plugin now provides hooks automatically. Remove the "hooks" section from ~/.claude/settings.json to prevent duplicate hook execution.
734
826
 
735
- Verify the plugin is enabled:
827
+ ### Step 3: Verify Plugin Installation
828
+
829
+ The oh-my-claude-sisyphus plugin provides all hooks automatically via the plugin system. Verify the plugin is enabled:
736
830
 
737
831
  ```bash
738
832
  grep -q "oh-my-claude-sisyphus" ~/.claude/settings.json && echo "Plugin enabled" || echo "Plugin NOT enabled"
739
833
  ```
740
834
 
741
- ### Step 3: Confirm Success
835
+ If plugin is not enabled, instruct user:
836
+ > Run: `claude /install-plugin oh-my-claude-sisyphus` to enable the plugin.
837
+
838
+ ### Step 4: Confirm Success
742
839
 
743
840
  After completing all steps, report:
744
841
 
745
- ✅ **Sisyphus Configuration Complete**
746
- - CLAUDE.md: Updated with latest configuration from GitHub
842
+ ✅ **Sisyphus Global Configuration Complete**
843
+ - CLAUDE.md: Updated with latest configuration from GitHub at ~/.claude/CLAUDE.md
844
+ - Scope: **GLOBAL** - applies to all Claude Code sessions
747
845
  - Hooks: Provided by plugin (no manual installation needed)
748
846
  - Agents: 19+ available (base + tiered variants)
749
847
  - Model routing: Haiku/Sonnet/Opus based on task complexity
750
848
 
849
+ **Note**: Hooks are now managed by the plugin system automatically. No manual hook installation required.
850
+
751
851
  ---
752
852
 
753
853
  ## 🔄 Keeping Up to Date
754
854
 
755
- After installing oh-my-claude-sisyphus updates (via npm or plugin update), run `/sisyphus-default` again to get the latest CLAUDE.md configuration.
855
+ After installing oh-my-claude-sisyphus updates (via npm or plugin update), run `/sisyphus-default-global` again to get the latest CLAUDE.md configuration. This ensures you have the newest features and agent configurations.
756
856
  CMD_EOF
757
857
 
758
858
  # Plan command (Prometheus planning system)
@@ -1604,7 +1704,8 @@ Use the Task tool to delegate to specialized agents:
1604
1704
  | Command | Description |
1605
1705
  |---------|-------------|
1606
1706
  | `/sisyphus <task>` | Activate Sisyphus multi-agent orchestration |
1607
- | `/sisyphus-default` | Set Sisyphus as your default mode |
1707
+ | `/sisyphus-default` | Configure Sisyphus for current project (./.claude/CLAUDE.md) |
1708
+ | `/sisyphus-default-global` | Configure Sisyphus globally (~/.claude/CLAUDE.md) |
1608
1709
  | `/ultrawork <task>` | Maximum performance mode with parallel agents |
1609
1710
  | `/deepsearch <query>` | Thorough codebase search |
1610
1711
  | `/analyze <target>` | Deep analysis and investigation |
@@ -1714,7 +1815,8 @@ echo " claude # Start Claude Code normally"
1714
1815
  echo ""
1715
1816
  echo -e "${YELLOW}Slash Commands:${NC}"
1716
1817
  echo " /sisyphus <task> # Activate Sisyphus orchestration mode"
1717
- echo " /sisyphus-default # Set Sisyphus as default behavior"
1818
+ echo " /sisyphus-default # Configure for current project"
1819
+ echo " /sisyphus-default-global # Configure globally"
1718
1820
  echo " /ultrawork <task> # Maximum performance mode"
1719
1821
  echo " /deepsearch <query> # Thorough codebase search"
1720
1822
  echo " /analyze <target> # Deep analysis mode"
@@ -1751,11 +1853,12 @@ echo " # Or run this install script again:"
1751
1853
  echo " curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/scripts/install.sh | bash"
1752
1854
  echo ""
1753
1855
  echo -e "${YELLOW}After Updates:${NC}"
1754
- echo " Run '/sisyphus-default' to download the latest CLAUDE.md configuration."
1856
+ echo " Run '/sisyphus-default' (project) or '/sisyphus-default-global' (global)"
1857
+ echo " to download the latest CLAUDE.md configuration."
1755
1858
  echo " This ensures you get the newest features and agent behaviors."
1756
1859
  echo ""
1757
1860
  echo -e "${BLUE}Quick Start:${NC}"
1758
1861
  echo " 1. Run 'claude' to start Claude Code"
1759
- echo " 2. Type '/sisyphus-default' to enable Sisyphus permanently"
1862
+ echo " 2. Type '/sisyphus-default' for project config or '/sisyphus-default-global' for global"
1760
1863
  echo " 3. Or use '/sisyphus <task>' for one-time activation"
1761
1864
  echo ""
@@ -9,6 +9,7 @@
9
9
  import { existsSync, readFileSync, writeFileSync, readdirSync } from 'fs';
10
10
  import { join } from 'path';
11
11
  import { homedir } from 'os';
12
+ import { pruneOldEntries } from '../dist/hooks/notepad/index.js';
12
13
 
13
14
  // Read all stdin
14
15
  async function readStdin() {
@@ -39,6 +40,77 @@ function writeJsonFile(path, data) {
39
40
  }
40
41
  }
41
42
 
43
+ // Read PRD and get status
44
+ function getPrdStatus(projectDir) {
45
+ // Check both root and .sisyphus for prd.json
46
+ const paths = [
47
+ join(projectDir, 'prd.json'),
48
+ join(projectDir, '.sisyphus', 'prd.json')
49
+ ];
50
+
51
+ for (const prdPath of paths) {
52
+ const prd = readJsonFile(prdPath);
53
+ if (prd && Array.isArray(prd.userStories)) {
54
+ const stories = prd.userStories;
55
+ const completed = stories.filter(s => s.passes === true);
56
+ const pending = stories.filter(s => s.passes !== true);
57
+ const sortedPending = [...pending].sort((a, b) => (a.priority || 999) - (b.priority || 999));
58
+
59
+ return {
60
+ hasPrd: true,
61
+ total: stories.length,
62
+ completed: completed.length,
63
+ pending: pending.length,
64
+ allComplete: pending.length === 0,
65
+ nextStory: sortedPending[0] || null,
66
+ incompleteIds: pending.map(s => s.id)
67
+ };
68
+ }
69
+ }
70
+
71
+ return { hasPrd: false, allComplete: false, nextStory: null };
72
+ }
73
+
74
+ // Read progress.txt patterns for context
75
+ function getProgressPatterns(projectDir) {
76
+ const paths = [
77
+ join(projectDir, 'progress.txt'),
78
+ join(projectDir, '.sisyphus', 'progress.txt')
79
+ ];
80
+
81
+ for (const progressPath of paths) {
82
+ if (existsSync(progressPath)) {
83
+ try {
84
+ const content = readFileSync(progressPath, 'utf-8');
85
+ const patterns = [];
86
+ let inPatterns = false;
87
+
88
+ for (const line of content.split('\n')) {
89
+ const trimmed = line.trim();
90
+ if (trimmed === '## Codebase Patterns') {
91
+ inPatterns = true;
92
+ continue;
93
+ }
94
+ if (trimmed === '---') {
95
+ inPatterns = false;
96
+ continue;
97
+ }
98
+ if (inPatterns && trimmed.startsWith('-')) {
99
+ const pattern = trimmed.slice(1).trim();
100
+ if (pattern && !pattern.includes('No patterns')) {
101
+ patterns.push(pattern);
102
+ }
103
+ }
104
+ }
105
+
106
+ return patterns;
107
+ } catch {}
108
+ }
109
+ }
110
+
111
+ return [];
112
+ }
113
+
42
114
  // Count incomplete todos
43
115
  function countIncompleteTodos(todosDir, projectDir) {
44
116
  let count = 0;
@@ -93,10 +165,33 @@ async function main() {
93
165
  // Count incomplete todos
94
166
  const incompleteCount = countIncompleteTodos(todosDir, directory);
95
167
 
96
- // Priority 1: Ralph Loop with Oracle Verification
168
+ // Check PRD status
169
+ const prdStatus = getPrdStatus(directory);
170
+ const progressPatterns = getProgressPatterns(directory);
171
+
172
+ // Priority 1: Ralph Loop with PRD and Oracle Verification
97
173
  if (ralphState?.active) {
98
174
  const iteration = ralphState.iteration || 1;
99
- const maxIter = ralphState.max_iterations || 10;
175
+ const maxIter = ralphState.max_iterations || 100; // Increased for PRD mode
176
+
177
+ // If PRD exists and all stories are complete, allow completion
178
+ if (prdStatus.hasPrd && prdStatus.allComplete) {
179
+ // Prune old notepad entries on clean session stop
180
+ try {
181
+ const pruneResult = pruneOldEntries(directory, 7);
182
+ if (pruneResult.pruned > 0) {
183
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
184
+ }
185
+ } catch (err) {
186
+ // Silently ignore prune errors
187
+ }
188
+
189
+ console.log(JSON.stringify({
190
+ continue: true,
191
+ reason: `[RALPH LOOP COMPLETE - PRD] All ${prdStatus.total} stories are complete! Great work!`
192
+ }));
193
+ return;
194
+ }
100
195
 
101
196
  // Check if oracle verification is pending
102
197
  if (verificationState?.pending) {
@@ -148,6 +243,42 @@ ${verificationState.oracle_feedback}
148
243
  ralphState.iteration = newIter;
149
244
  writeJsonFile(join(directory, '.sisyphus', 'ralph-state.json'), ralphState);
150
245
 
246
+ // Build continuation message with PRD context if available
247
+ let prdContext = '';
248
+ if (prdStatus.hasPrd) {
249
+ prdContext = `
250
+ ## PRD STATUS
251
+ ${prdStatus.completed}/${prdStatus.total} stories complete. Remaining: ${prdStatus.incompleteIds.join(', ')}
252
+ `;
253
+ if (prdStatus.nextStory) {
254
+ prdContext += `
255
+ ## CURRENT STORY: ${prdStatus.nextStory.id} - ${prdStatus.nextStory.title}
256
+
257
+ ${prdStatus.nextStory.description || ''}
258
+
259
+ **Acceptance Criteria:**
260
+ ${(prdStatus.nextStory.acceptanceCriteria || []).map((c, i) => `${i + 1}. ${c}`).join('\n')}
261
+
262
+ **Instructions:**
263
+ 1. Implement this story completely
264
+ 2. Verify ALL acceptance criteria are met
265
+ 3. Run quality checks (tests, typecheck, lint)
266
+ 4. Update prd.json to set passes: true for ${prdStatus.nextStory.id}
267
+ 5. Append progress to progress.txt
268
+ 6. Move to next story or output completion promise
269
+ `;
270
+ }
271
+ }
272
+
273
+ // Add patterns from progress.txt
274
+ let patternsContext = '';
275
+ if (progressPatterns.length > 0) {
276
+ patternsContext = `
277
+ ## CODEBASE PATTERNS (from previous iterations)
278
+ ${progressPatterns.map(p => `- ${p}`).join('\n')}
279
+ `;
280
+ }
281
+
151
282
  console.log(JSON.stringify({
152
283
  continue: false,
153
284
  reason: `<ralph-loop-continuation>
@@ -155,12 +286,12 @@ ${verificationState.oracle_feedback}
155
286
  [RALPH LOOP - ITERATION ${newIter}/${maxIter}]
156
287
 
157
288
  Your previous attempt did not output the completion promise. The work is NOT done yet.
158
-
289
+ ${prdContext}${patternsContext}
159
290
  CRITICAL INSTRUCTIONS:
160
291
  1. Review your progress and the original task
161
- 2. Check your todo list - are ALL items marked complete?
292
+ 2. ${prdStatus.hasPrd ? 'Check prd.json - are ALL stories marked passes: true?' : 'Check your todo list - are ALL items marked complete?'}
162
293
  3. Continue from where you left off
163
- 4. When FULLY complete, output: <promise>${ralphState.completion_promise || 'TASK_COMPLETE'}</promise>
294
+ 4. When FULLY complete, output: <promise>${ralphState.completion_promise || 'DONE'}</promise>
164
295
  5. Do NOT stop until the task is truly done
165
296
 
166
297
  ${ralphState.prompt ? `Original task: ${ralphState.prompt}` : ''}
@@ -181,6 +312,16 @@ ${ralphState.prompt ? `Original task: ${ralphState.prompt}` : ''}
181
312
 
182
313
  // Escape mechanism: after max reinforcements, allow stopping
183
314
  if (newCount > maxReinforcements) {
315
+ // Prune old notepad entries on clean session stop
316
+ try {
317
+ const pruneResult = pruneOldEntries(directory, 7);
318
+ if (pruneResult.pruned > 0) {
319
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
320
+ }
321
+ } catch (err) {
322
+ // Silently ignore prune errors
323
+ }
324
+
184
325
  console.log(JSON.stringify({
185
326
  continue: true,
186
327
  reason: `[ULTRAWORK ESCAPE] Maximum reinforcements (${maxReinforcements}) reached. Allowing stop despite ${incompleteCount} incomplete todos. If tasks are genuinely stuck, consider cancelling them or asking the user for help.`
@@ -233,6 +374,16 @@ ${ultraworkState.original_prompt ? `Original task: ${ultraworkState.original_pro
233
374
 
234
375
  // Escape mechanism: after max continuations, allow stopping
235
376
  if (contState.count > maxContinuations) {
377
+ // Prune old notepad entries on clean session stop
378
+ try {
379
+ const pruneResult = pruneOldEntries(directory, 7);
380
+ if (pruneResult.pruned > 0) {
381
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
382
+ }
383
+ } catch (err) {
384
+ // Silently ignore prune errors
385
+ }
386
+
236
387
  console.log(JSON.stringify({
237
388
  continue: true,
238
389
  reason: `[TODO ESCAPE] Maximum continuation attempts (${maxContinuations}) reached. Allowing stop despite ${incompleteCount} incomplete todos. Tasks may be stuck - consider reviewing and clearing them.`
@@ -260,7 +411,17 @@ Incomplete tasks remain in your todo list (${incompleteCount} remaining). Contin
260
411
  return;
261
412
  }
262
413
 
263
- // No blocking needed
414
+ // No blocking needed - clean session stop
415
+ // Prune old notepad entries on clean session stop
416
+ try {
417
+ const pruneResult = pruneOldEntries(directory, 7);
418
+ if (pruneResult.pruned > 0) {
419
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
420
+ }
421
+ } catch (err) {
422
+ // Silently ignore prune errors
423
+ }
424
+
264
425
  console.log(JSON.stringify({ continue: true }));
265
426
  } catch (error) {
266
427
  console.log(JSON.stringify({ continue: true }));
@@ -7,8 +7,25 @@
7
7
  */
8
8
 
9
9
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
10
- import { join } from 'path';
10
+ import { join, dirname } from 'path';
11
11
  import { homedir } from 'os';
12
+ import { fileURLToPath } from 'url';
13
+
14
+ // Get the directory of this script to resolve the dist module
15
+ const __filename = fileURLToPath(import.meta.url);
16
+ const __dirname = dirname(__filename);
17
+ const distDir = join(__dirname, '..', 'dist', 'hooks', 'notepad');
18
+
19
+ // Try to import notepad functions (may fail if not built)
20
+ let setPriorityContext = null;
21
+ let addWorkingMemoryEntry = null;
22
+ try {
23
+ const notepadModule = await import(join(distDir, 'index.js'));
24
+ setPriorityContext = notepadModule.setPriorityContext;
25
+ addWorkingMemoryEntry = notepadModule.addWorkingMemoryEntry;
26
+ } catch {
27
+ // Notepad module not available - remember tags will be silently ignored
28
+ }
12
29
 
13
30
  // State file for session tracking
14
31
  const STATE_FILE = join(homedir(), '.claude', '.session-stats.json');
@@ -102,6 +119,44 @@ function detectBackgroundOperation(output) {
102
119
  return bgPatterns.some(pattern => pattern.test(output));
103
120
  }
104
121
 
122
+ /**
123
+ * Process <remember> tags from agent output
124
+ * <remember>content</remember> -> Working Memory
125
+ * <remember priority>content</remember> -> Priority Context
126
+ */
127
+ function processRememberTags(output, directory) {
128
+ if (!setPriorityContext || !addWorkingMemoryEntry) {
129
+ return; // Notepad module not available
130
+ }
131
+
132
+ if (!output || !directory) {
133
+ return;
134
+ }
135
+
136
+ // Process priority remember tags first
137
+ const priorityRegex = /<remember\s+priority>([\s\S]*?)<\/remember>/gi;
138
+ let match;
139
+ while ((match = priorityRegex.exec(output)) !== null) {
140
+ const content = match[1].trim();
141
+ if (content) {
142
+ try {
143
+ setPriorityContext(directory, content);
144
+ } catch {}
145
+ }
146
+ }
147
+
148
+ // Process regular remember tags
149
+ const regularRegex = /<remember>([\s\S]*?)<\/remember>/gi;
150
+ while ((match = regularRegex.exec(output)) !== null) {
151
+ const content = match[1].trim();
152
+ if (content) {
153
+ try {
154
+ addWorkingMemoryEntry(directory, content);
155
+ } catch {}
156
+ }
157
+ }
158
+ }
159
+
105
160
  // Detect write failure
106
161
  function detectWriteFailure(output) {
107
162
  const errorPatterns = [
@@ -194,10 +249,16 @@ async function main() {
194
249
  const toolName = data.toolName || '';
195
250
  const toolOutput = data.toolOutput || '';
196
251
  const sessionId = data.sessionId || 'unknown';
252
+ const directory = data.directory || process.cwd();
197
253
 
198
254
  // Update session statistics
199
255
  const toolCount = updateStats(toolName, sessionId);
200
256
 
257
+ // Process <remember> tags from Task agent output
258
+ if (toolName === 'Task' || toolName === 'task') {
259
+ processRememberTags(toolOutput, directory);
260
+ }
261
+
201
262
  // Generate contextual message
202
263
  const message = generateMessage(toolName, toolOutput, sessionId, toolCount);
203
264
 
@@ -113,6 +113,28 @@ Please continue working on these tasks.
113
113
  `);
114
114
  }
115
115
 
116
+ // Check for notepad Priority Context
117
+ const notepadPath = join(directory, '.sisyphus', 'notepad.md');
118
+ if (existsSync(notepadPath)) {
119
+ try {
120
+ const notepadContent = readFileSync(notepadPath, 'utf-8');
121
+ const priorityMatch = notepadContent.match(/## Priority Context\n([\s\S]*?)(?=## |$)/);
122
+ if (priorityMatch && priorityMatch[1].trim()) {
123
+ const priorityContext = priorityMatch[1].trim();
124
+ // Only inject if there's actual content (not just the placeholder comment)
125
+ const cleanContent = priorityContext.replace(/<!--[\s\S]*?-->/g, '').trim();
126
+ if (cleanContent) {
127
+ messages.push(`<notepad-context>
128
+ [NOTEPAD - Priority Context]
129
+ ${cleanContent}
130
+ </notepad-context>`);
131
+ }
132
+ }
133
+ } catch (err) {
134
+ // Silently ignore notepad read errors
135
+ }
136
+ }
137
+
116
138
  if (messages.length > 0) {
117
139
  console.log(JSON.stringify({ continue: true, message: messages.join('\n') }));
118
140
  } else {