oh-my-claude-sisyphus 2.6.0 → 2.6.1

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 CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  ![oh-my-claude-sisyphus](https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus-website/main/social-preview.png)
4
4
 
5
- # 🚀 v2.5.0 - Claude Code Native Multi-Agent Orchestration
5
+ # 🚀 v2.6.0 - Claude Code Native Multi-Agent Orchestration
6
6
 
7
- [![Version](https://img.shields.io/badge/version-2.5.0-ff6b6b)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus/releases)
7
+ [![Version](https://img.shields.io/badge/version-2.6.0-ff6b6b)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus/releases)
8
8
  [![npm version](https://img.shields.io/npm/v/oh-my-claude-sisyphus?color=cb3837)](https://www.npmjs.com/package/oh-my-claude-sisyphus)
9
9
  [![Downloads](https://img.shields.io/npm/dt/oh-my-claude-sisyphus?color=00d4aa)](https://www.npmjs.com/package/oh-my-claude-sisyphus)
10
10
  [![GitHub stars](https://img.shields.io/github/stars/Yeachan-Heo/oh-my-claude-sisyphus?style=flat&color=ffd700)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus/stargazers)
@@ -19,8 +19,8 @@
19
19
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus/pulls)
20
20
 
21
21
  [![Agents](https://img.shields.io/badge/Agents-19-ff0040)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
22
- [![Skills](https://img.shields.io/badge/Skills-8-ff6600)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
23
- [![Hooks](https://img.shields.io/badge/Hooks-18-0088ff)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
22
+ [![Skills](https://img.shields.io/badge/Skills-21-ff6600)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
23
+ [![Hooks](https://img.shields.io/badge/Hooks-19-0088ff)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
24
24
  [![Days Since Ban](https://img.shields.io/badge/Days%20Since%20Ban-0-00ffff)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
25
25
  [![Resurrections](https://img.shields.io/badge/Resurrections-∞-ff00ff)](https://github.com/Yeachan-Heo/oh-my-claude-sisyphus)
26
26
 
@@ -34,20 +34,52 @@
34
34
 
35
35
  ---
36
36
 
37
- ## ⚡ NEW in 2.0: Intelligent Model Routing
37
+ ## ⚡ NEW in 2.6: Compaction-Resilient Memory & Structured Task Tracking
38
38
 
39
- **Revolutionary change:** The orchestrator now analyzes task complexity and routes to the optimal model tier.
39
+ **Game-changing release:** Claude never forgets critical project knowledge, even through context compaction.
40
40
 
41
- | Task Type | Model | Why |
42
- |-----------|-------|-----|
43
- | "Where is auth?" | **Haiku** | Simple lookup - fast & cheap |
44
- | "Add validation" | **Sonnet** | Module work - balanced |
45
- | "Debug race condition" | **Opus** | Complex - needs deep reasoning |
41
+ ### 🧠 Three-Tier Memory System
46
42
 
47
- **All agents are now adaptive** (except orchestrators which need Opus to analyze and delegate).
43
+ **The Problem:** Long sessions lose context through compaction. Critical discoveries vanish.
48
44
 
45
+ **The Solution:** Persistent notepad system that survives compaction:
46
+
47
+ | Tier | Purpose | Retention |
48
+ |------|---------|-----------|
49
+ | **Priority Context** | Critical discoveries (API URLs, key files) | Always loaded on session start |
50
+ | **Working Memory** | Session notes with timestamps | Auto-pruned after 7 days |
51
+ | **MANUAL** | User permanent notes | Never pruned |
52
+
53
+ ```bash
54
+ # Agents can persist discoveries automatically
55
+ <remember>Project uses pnpm not npm</remember>
56
+ <remember priority>API client at src/api/client.ts</remember>
57
+
58
+ # Or save notes manually
59
+ /note Database schema uses PostgreSQL with Prisma ORM
49
60
  ```
50
- Orchestrator (Opus) → Analyzes complexity → Routes to Haiku/Sonnet/Opus
61
+
62
+ ### 📋 Ralph Loop PRD Support
63
+
64
+ **Structured task tracking** inspired by [Ralph](https://github.com/snarktank/ralph):
65
+
66
+ - **Product Requirements Document (PRD)** format with user stories
67
+ - **Progress tracking** with learnings and patterns
68
+ - **Completion guarantee** - loop continues until ALL stories pass
69
+ - **Three powerful modes:**
70
+ - `/ralph-loop` - Self-referential loop until completion
71
+ - `/ultrawork-ralph` - Maximum intensity + completion guarantee
72
+ - `/ultraqa` - Autonomous test-verify-fix cycles
73
+
74
+ ```bash
75
+ # Initialize a structured task
76
+ /ralph-init implement user authentication with OAuth
77
+
78
+ # Maximum intensity with completion guarantee
79
+ /ultrawork-ralph refactor the entire API layer
80
+
81
+ # Autonomous QA cycling
82
+ /ultraqa all tests must pass with 90%+ coverage
51
83
  ```
52
84
 
53
85
  See [CHANGELOG.md](CHANGELOG.md) for full details.
@@ -254,15 +286,19 @@ claude
254
286
  | `/sisyphus-default` | Configure Sisyphus for current project (./.claude/CLAUDE.md) |
255
287
  | `/sisyphus-default-global` | Configure Sisyphus globally (~/.claude/CLAUDE.md) |
256
288
  | `/ultrawork <task>` | Maximum performance mode with parallel agents |
289
+ | `/ralph-init <task>` | Initialize PRD (Product Requirements Document) for structured task tracking |
290
+ | `/ralph-loop <task>` | Self-referential loop until task completion |
291
+ | `/ultrawork-ralph <task>` | Maximum intensity + completion guarantee (ultrawork + ralph loop) |
292
+ | `/ultraqa <goal>` | Autonomous QA cycling workflow (test → verify → fix → repeat) |
293
+ | `/cancel-ralph` | Cancel active Ralph Loop (and ultrawork-ralph if active) |
294
+ | `/cancel-ultraqa` | Cancel active UltraQA cycling workflow |
295
+ | `/note <content>` | Save notes to notepad.md for compaction resilience |
257
296
  | `/deepsearch <query>` | Thorough multi-strategy codebase search |
258
297
  | `/deepinit [path]` | Index codebase with hierarchical AGENTS.md files |
259
298
  | `/analyze <target>` | Deep analysis and investigation |
260
299
  | `/plan <description>` | Start planning session with Prometheus |
261
300
  | `/review [plan-path]` | Review a plan with Momus |
262
301
  | `/prometheus <task>` | Strategic planning with interview workflow |
263
- | `/orchestrator <task>` | Complex multi-step task coordination |
264
- | `/ralph-loop <task>` | Self-referential loop until task completion |
265
- | `/cancel-ralph` | Cancel active Ralph Loop |
266
302
  | `/doctor` | Diagnose and fix installation issues |
267
303
 
268
304
  ### Examples
@@ -282,6 +318,18 @@ claude
282
318
  # Use ultrawork for maximum performance
283
319
  /ultrawork implement user dashboard with charts
284
320
 
321
+ # Initialize structured task with PRD
322
+ /ralph-init implement user authentication with OAuth
323
+
324
+ # Maximum intensity with completion guarantee
325
+ /ultrawork-ralph migrate database schema to PostgreSQL
326
+
327
+ # Autonomous QA cycling
328
+ /ultraqa all tests must pass with 90%+ coverage
329
+
330
+ # Save important discoveries
331
+ /note Project uses Bun runtime instead of Node.js
332
+
285
333
  # Deep search
286
334
  /deepsearch API endpoints that handle user data
287
335
 
@@ -325,7 +373,7 @@ To manually update, re-run the plugin install command or use Claude Code's built
325
373
 
326
374
  ## Hooks System
327
375
 
328
- Oh-my-claude-sisyphus includes 18 lifecycle hooks that enhance Claude Code's behavior:
376
+ Oh-my-claude-sisyphus includes 19 lifecycle hooks that enhance Claude Code's behavior:
329
377
 
330
378
  ### Core Hooks
331
379
 
@@ -337,6 +385,7 @@ Oh-my-claude-sisyphus includes 18 lifecycle hooks that enhance Claude Code's beh
337
385
  | **keyword-detector** | Magic keyword detection (ultrawork, search, analyze) |
338
386
  | **ralph-loop** | Self-referential development loop management |
339
387
  | **todo-continuation** | Ensures todo list completion |
388
+ | **notepad** | Compaction-resilient memory system with three-tier storage |
340
389
 
341
390
  ### Context & Recovery
342
391
 
@@ -355,6 +404,7 @@ Oh-my-claude-sisyphus includes 18 lifecycle hooks that enhance Claude Code's beh
355
404
  | **thinking-block-validator** | Extended thinking validation |
356
405
  | **empty-message-sanitizer** | Empty message handling |
357
406
  | **edit-error-recovery** | Automatic recovery from edit errors |
407
+ | **post-tool-use** | Remember tag auto-capture to notepad system |
358
408
 
359
409
  ### Environment & Notifications
360
410
 
@@ -368,18 +418,40 @@ Oh-my-claude-sisyphus includes 18 lifecycle hooks that enhance Claude Code's beh
368
418
 
369
419
  ## Builtin Skills
370
420
 
371
- Eight builtin skills provide specialized capabilities:
421
+ 21 builtin skills provide specialized capabilities:
372
422
 
423
+ ### Core Skills
373
424
  | Skill | Description |
374
425
  |-------|-------------|
375
426
  | **sisyphus** | Multi-agent orchestration mode |
376
- | **orchestrator** | Master coordinator for complex tasks |
377
427
  | **ultrawork** | Maximum performance with parallel agents |
378
- | **deepinit** | Hierarchical AGENTS.md codebase documentation |
379
428
  | **ralph-loop** | Self-referential development until completion |
429
+ | **ralph-init** | Initialize PRD for structured task tracking |
430
+ | **ultrawork-ralph** | Maximum intensity + completion guarantee |
431
+ | **ultraqa** | Autonomous QA cycling workflow |
432
+ | **prometheus** | Strategic planning with interview workflow |
433
+ | **plan** | Start planning session |
434
+ | **review** | Review work plans with Momus |
435
+
436
+ ### Enhancement Skills
437
+ | Skill | Description |
438
+ |-------|-------------|
439
+ | **deepinit** | Hierarchical AGENTS.md codebase documentation |
440
+ | **deepsearch** | Thorough multi-strategy codebase search |
441
+ | **analyze** | Deep analysis and investigation |
380
442
  | **frontend-ui-ux** | Designer-turned-developer UI/UX expertise |
381
443
  | **git-master** | Git expert for atomic commits and history |
444
+
445
+ ### Utility Skills
446
+ | Skill | Description |
447
+ |-------|-------------|
448
+ | **note** | Save notes to compaction-resilient notepad |
449
+ | **cancel-ralph** | Cancel Ralph Loop or ultrawork-ralph |
450
+ | **cancel-ultraqa** | Cancel UltraQA cycling workflow |
451
+ | **sisyphus-default** | Configure Sisyphus for current project |
452
+ | **sisyphus-default-global** | Configure Sisyphus globally |
382
453
  | **doctor** | Diagnose and fix installation issues |
454
+ | **release** | Automated release workflow |
383
455
 
384
456
  Skills are automatically activated via slash commands or magic keywords.
385
457
 
@@ -662,11 +734,15 @@ The original oh-my-opencode used multiple AI providers. This project uses Claude
662
734
 
663
735
  | Feature | Description |
664
736
  |---------|-------------|
665
- | **12 Specialized Agents** | Oracle, Librarian, Explore, Frontend Engineer, Document Writer, Multimodal Looker, QA Tester, Momus, Metis, Orchestrator-Sisyphus, Sisyphus-Junior, Prometheus |
666
- | **18 Lifecycle Hooks** | rules-injector, sisyphus-orchestrator, auto-slash-command, keyword-detector, ralph-loop, todo-continuation, context-window-limit-recovery, preemptive-compaction, session-recovery, directory-readme-injector, comment-checker, thinking-block-validator, empty-message-sanitizer, edit-error-recovery, non-interactive-env, agent-usage-reminder, background-notification, think-mode |
667
- | **7 Builtin Skills** | sisyphus, orchestrator, ultrawork, deepinit, ralph-loop, frontend-ui-ux, git-master |
737
+ | **19 Specialized Agents** | Oracle, Librarian, Explore, Frontend Engineer, Document Writer, Multimodal Looker, QA Tester, Momus, Metis, Orchestrator-Sisyphus, Sisyphus-Junior, Prometheus (+ tiered variants) |
738
+ | **19 Lifecycle Hooks** | rules-injector, sisyphus-orchestrator, auto-slash-command, keyword-detector, ralph-loop, todo-continuation, notepad, post-tool-use, context-window-limit-recovery, preemptive-compaction, session-recovery, directory-readme-injector, comment-checker, thinking-block-validator, empty-message-sanitizer, edit-error-recovery, non-interactive-env, agent-usage-reminder, background-notification |
739
+ | **21 Builtin Skills** | sisyphus, ultrawork, ralph-loop, ralph-init, ultrawork-ralph, ultraqa, prometheus, plan, review, deepinit, deepsearch, analyze, frontend-ui-ux, git-master, note, cancel-ralph, cancel-ultraqa, sisyphus-default, sisyphus-default-global, doctor, release |
668
740
  | **Magic Keywords** | `ultrawork`, `search`, `analyze`, `ultrathink` trigger enhanced modes |
669
- | **Slash Commands** | `/sisyphus`, `/sisyphus-default`, `/ultrawork`, `/deepsearch`, `/deepinit`, `/analyze`, `/plan`, `/review`, `/prometheus`, `/orchestrator`, `/ralph-loop`, `/cancel-ralph` |
741
+ | **Slash Commands** | `/sisyphus`, `/sisyphus-default`, `/sisyphus-default-global`, `/ultrawork`, `/ralph-init`, `/ralph-loop`, `/ultrawork-ralph`, `/ultraqa`, `/cancel-ralph`, `/cancel-ultraqa`, `/note`, `/deepsearch`, `/deepinit`, `/analyze`, `/plan`, `/review`, `/prometheus`, `/doctor` |
742
+ | **Compaction-Resilient Memory** | Three-tier notepad system (Priority Context, Working Memory, MANUAL) |
743
+ | **Remember Tag Auto-Capture** | Agents can persist discoveries with `<remember>` tags |
744
+ | **PRD Support** | Structured task tracking with user stories and acceptance criteria |
745
+ | **Progress Tracking** | Append-only progress log with learnings and patterns |
670
746
  | **Auto-Update System** | Updates via Claude Code's plugin system |
671
747
  | **Configuration System** | JSONC config with multi-source merging |
672
748
  | **Context Injection** | Auto-loads CLAUDE.md and AGENTS.md files |
@@ -677,6 +753,7 @@ The original oh-my-opencode used multiple AI providers. This project uses Claude
677
753
  | **MCP Server Configs** | Exa, Context7, grep.app server definitions |
678
754
  | **LSP Tools** | Real LSP server integration with 11 tools |
679
755
  | **AST Tools** | ast-grep integration for structural code search/replace |
756
+ | **Comprehensive Test Suite** | 358 tests covering all major features |
680
757
 
681
758
  #### Not Implemented ❌
682
759
 
package/dist/cli/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-claude-sisyphus",
3
- "version": "2.6.0",
3
+ "version": "2.6.1",
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",
@@ -7,9 +7,22 @@
7
7
  */
8
8
 
9
9
  import { existsSync, readFileSync, writeFileSync, readdirSync } from 'fs';
10
- import { join } from 'path';
10
+ import { join, dirname } from 'path';
11
11
  import { homedir } from 'os';
12
- import { pruneOldEntries } from '../dist/hooks/notepad/index.js';
12
+ import { fileURLToPath } from 'url';
13
+
14
+ // Dynamic import for notepad with fallback
15
+ const __filename = fileURLToPath(import.meta.url);
16
+ const __dirname = dirname(__filename);
17
+ let pruneOldEntries = null;
18
+
19
+ try {
20
+ const notepadModule = await import(join(__dirname, '../dist/hooks/notepad/index.js'));
21
+ pruneOldEntries = notepadModule.pruneOldEntries;
22
+ } catch (err) {
23
+ // Notepad module not available - pruning will be skipped
24
+ // This can happen in older versions or if build failed
25
+ }
13
26
 
14
27
  // Read all stdin
15
28
  async function readStdin() {
@@ -178,9 +191,11 @@ async function main() {
178
191
  if (prdStatus.hasPrd && prdStatus.allComplete) {
179
192
  // Prune old notepad entries on clean session stop
180
193
  try {
181
- const pruneResult = pruneOldEntries(directory, 7);
182
- if (pruneResult.pruned > 0) {
183
- // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
194
+ if (pruneOldEntries) {
195
+ const pruneResult = pruneOldEntries(directory, 7);
196
+ if (pruneResult.pruned > 0) {
197
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
198
+ }
184
199
  }
185
200
  } catch (err) {
186
201
  // Silently ignore prune errors
@@ -314,9 +329,11 @@ ${ralphState.prompt ? `Original task: ${ralphState.prompt}` : ''}
314
329
  if (newCount > maxReinforcements) {
315
330
  // Prune old notepad entries on clean session stop
316
331
  try {
317
- const pruneResult = pruneOldEntries(directory, 7);
318
- if (pruneResult.pruned > 0) {
319
- // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
332
+ if (pruneOldEntries) {
333
+ const pruneResult = pruneOldEntries(directory, 7);
334
+ if (pruneResult.pruned > 0) {
335
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
336
+ }
320
337
  }
321
338
  } catch (err) {
322
339
  // Silently ignore prune errors
@@ -376,9 +393,11 @@ ${ultraworkState.original_prompt ? `Original task: ${ultraworkState.original_pro
376
393
  if (contState.count > maxContinuations) {
377
394
  // Prune old notepad entries on clean session stop
378
395
  try {
379
- const pruneResult = pruneOldEntries(directory, 7);
380
- if (pruneResult.pruned > 0) {
381
- // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
396
+ if (pruneOldEntries) {
397
+ const pruneResult = pruneOldEntries(directory, 7);
398
+ if (pruneResult.pruned > 0) {
399
+ // Optionally log: console.error(`Pruned ${pruneResult.pruned} old notepad entries`);
400
+ }
382
401
  }
383
402
  } catch (err) {
384
403
  // Silently ignore prune errors