Added 10 new tests:
- kugetsu status (5 tests): uninitialized, base missing, pm-agent missing, Python None handling, session expired
- kugetsu delegate (2 tests): no message, pm-agent missing
- kugetsu doctor (1 test): basic command execution
- kugetsu notify (2 tests): list with no file, clear with no file
Total tests: 38 (all passing)
kugetsu-helpers was a shim layer that is no longer needed since:
- kugetsu status replaces check-status
- kugetsu delegate replaces delegate-to-pm
- kugetsu doctor --fix replaces fix-permissions
- kugetsu list/start/continue cover remaining functions
All functionality is now in the kugetsu CLI directly.
### Changes:
1. **Moved kugetsu-pm to skills/kugetsu/pm/SKILL.md**
- Simplified to 79 lines (under 100 line target)
- kugetsu v3.0 with essential PM role definition
- PM context injected at init/start/continue time
2. **Updated kugetsu_get_pm_context()**
- Now reads from ~/.kugetsu/pm-agent.md (user custom) first
- Falls back to skills/kugetsu/pm/SKILL.md (default)
3. **Updated kugetsu-chat v4.0**
- Added notification checking on status/update queries
- When user asks "status?", "any updates?", etc., check kugetsu notify list
- Hybrid approach: PM includes notifications + kugetsu-chat checks on status
4. **Removed old skills/kugetsu-pm/SKILL.md**
- Replaced by skills/kugetsu/pm/SKILL.md
### Structure:
skills/kugetsu/
├── SKILL.md
├── scripts/kugetsu
├── chat/ # future: kugetsu-chat could move here
│ ├── SKILL.md
│ └── SOUL.md
└── pm/
└── SKILL.md # PM role definition (v3.0)
Phase 3c implementation - Notification System:
### New kugetsu commands:
- `kugetsu notify list` - Show unread notifications from PM Agent
- `kugetsu notify clear` - Mark notifications as read
### Notification system:
- PM Agent writes task events to ~/.kugetsu/notifications.json
- Events: task_complete, task_blocked, task_assigned
- Supports issue_ref and gitea_url for linking
- Hermes/Chat Agent reads notifications on user messages
### kugetsu-pm v2.0:
- Updated documentation with notification behavior
- PM Agent monitors Gitea for task completion
- Two review modes: PM reviews immediately OR asks dev if ready
- Notification triggers documented
### File renamed:
- phase3a-setup.md → kugetsu-chat-setup.md (more descriptive)
### Hermes gateway analysis:
- Gateway is a client (connects to Telegram), not a server
- Cannot push messages directly to Telegram from external process
- Notifications stored locally for Hermes to pick up on next user message
This commit implements Phase 3b/3c architectural improvements:
### New kugetsu CLI commands:
- `kugetsu status` - Check initialization status (replaces kugetsu-helper check-status)
- `kugetsu delegate <msg>` - Send message to PM agent (new command)
- `kugetsu doctor [--fix]` - Diagnose and fix kugetsu issues
### PM Context Injection:
- kugetsu init now reads ~/.kugetsu/pm-agent.md (if exists) and injects
it into the PM agent session at creation time
- PM context is loaded ONCE at init, not on every delegation
- This improves efficiency - kugetsu-pm content read once, not 10 times
### kugetsu-chat updated:
- Now uses `kugetsu delegate` instead of kugetsu-helper
- Now uses `kugetsu status` instead of kugetsu-helper check-status
- Simplified - no longer depends on kugetsu-helpers
### kugetsu continue:
- Removed strict issue-ref format validation
- Now accepts any session name that is tracked in index.json["issues"]
- Issue-ref format is a guideline, not a hard requirement
### Documentation updated:
- phase3a-setup.md - Updated to reflect new kugetsu commands
- kugetsu-install.sh - Simplified Phase 3a setup instructions
### Breaking changes:
- kugetsu-helpers is no longer required for Phase 3a Chat Agent
- kugetsu-chat skill v3.0 now requires kugetsu CLI with new commands
- Add test suite at skills/kugetsu-helpers/tests/test-kugetsu-helpers.sh
- 11 unit tests covering check-status, delegate-to-pm, get-pm-session, etc.
- Fix bug: Python print(None) outputs literal "None" string, not empty
- All tests pass
Add kugetsu_fix_pm_permissions function to fix opencode session permissions
for /tmp/kugetsu directory access. This resolves permission issues when
PM agent tries to access worktree directories.
Usage: kugetsu-helper fix-permissions
- SKILL.md: More explicit about MUST use this skill for delegation
- SOUL.md: Explicitly instruct to invoke /kugetsu-chat skill first
- Add more explicit delegation rules and error handling
- SOUL.md now explicitly instructs Hermes to ALWAYS use kugetsu-helper for delegation
- Clear delegation rules with examples
- Separation of casual conversation vs delegation
This is the first attempt at making Hermes route via kugetsu-helper automatically.
- SOUL.md: only personality/voice guidance (no routing logic)
- SKILL.md: definitive routing behavior + delegation process
- Add context passing via temp file for long tasks
- Add error handling table with user-friendly messages
This aligns with Hermes docs: SOUL.md = identity, SKILL.md = behavior