fix(06): revise plans based on checker feedback
- Added missing <verify> element to Plan 06-05 - Created Plan 06-07 for help system gap - Created Plan 06-08 for exit command gap - Now addresses all 4 gaps identified by checker
This commit is contained in:
@@ -74,6 +74,24 @@ Output: Working session persistence with contextual recovery messages
|
||||
from src.mai.conversation.state import ConversationState
|
||||
import inspect
|
||||
|
||||
# Check method exists
|
||||
if hasattr(ConversationState, 'set_conversation_history'):
|
||||
print('✓ set_conversation_history method exists')
|
||||
|
||||
# Check method signature
|
||||
sig = inspect.signature(ConversationState.set_conversation_history)
|
||||
print(f'✓ Method signature: {sig}')
|
||||
else:
|
||||
print('✗ set_conversation_history method missing')
|
||||
exit(1)
|
||||
"
|
||||
</verify>
|
||||
<verify>
|
||||
# Test the method exists and works
|
||||
python -c "
|
||||
from src.mai.conversation.state import ConversationState
|
||||
import inspect
|
||||
|
||||
# Check method exists
|
||||
if hasattr(ConversationState, 'set_conversation_history'):
|
||||
print('✓ set_conversation_history method exists')
|
||||
|
||||
148
.planning/phases/06-cli-interface/06-07-PLAN.md
Normal file
148
.planning/phases/06-cli-interface/06-07-PLAN.md
Normal file
@@ -0,0 +1,148 @@
|
||||
---
|
||||
phase: 06-cli-interface
|
||||
plan: 07
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified: [src/app/__main__.py]
|
||||
autonomous: true
|
||||
gap_closure: true
|
||||
|
||||
must_haves:
|
||||
truths:
|
||||
- "Help system shows comprehensive command documentation and usage examples"
|
||||
artifacts:
|
||||
- path: "src/app/__main__.py"
|
||||
provides: "CLI help system with command documentation"
|
||||
contains: "help command implementation with detailed command descriptions"
|
||||
key_links:
|
||||
- from: "src/app/__main__.py"
|
||||
to: "help command"
|
||||
via: "CLI command handler for /help or --help"
|
||||
pattern: "def.*help|/help|--help"
|
||||
---
|
||||
|
||||
<objective>
|
||||
Implement comprehensive CLI help system with command documentation and usage examples
|
||||
|
||||
Purpose: Address the gap where help system shows no content, leaving users without guidance on available commands and their usage
|
||||
Output: Working help command that displays all available CLI commands with descriptions and examples
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@~/.opencode/get-shit-done/workflows/execute-plan.md
|
||||
@~/.opencode/get-shit-done/templates/summary.md
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
@.planning/PROJECT.md
|
||||
@.planning/ROADMAP.md
|
||||
@.planning/STATE.md
|
||||
|
||||
# Gap closure context from checker feedback
|
||||
# Missing: Help system shows no content
|
||||
|
||||
# Previous CLI command implementations
|
||||
@.planning/phases/06-cli-interface/06-01-SUMMARY.md
|
||||
@.planning/phases/06-cli-interface/06-02-SUMMARY.md
|
||||
@.planning/phases/06-cli-interface/06-04-SUMMARY.md
|
||||
</context>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Implement comprehensive help system</name>
|
||||
<files>src/app/__main__.py</files>
|
||||
<action>
|
||||
Add a comprehensive help system to the CLI by implementing a /help command:
|
||||
|
||||
1. **Create help command handler** - Add a function to handle /help or --help:
|
||||
- Detect /help, --help, or help commands in the CLI input
|
||||
- Display formatted help output using Rich console for better readability
|
||||
- Include command descriptions, usage examples, and available options
|
||||
|
||||
2. **Document all available commands** - Include help for:
|
||||
- /help - Show this help message
|
||||
- /session - Display session information and statistics
|
||||
- /clear - Clear current conversation and start fresh session
|
||||
- /exit or /quit - Exit the CLI application
|
||||
- Regular message input - How to send messages to the AI
|
||||
|
||||
3. **Format help output professionally** - Use Rich console features:
|
||||
- Use panels or tables for organized command display
|
||||
- Include syntax highlighting for command examples
|
||||
- Add descriptions for each command's purpose and usage
|
||||
- Show examples of common command combinations
|
||||
|
||||
4. **Integrate with existing CLI** - Ensure help command:
|
||||
- Works alongside existing message processing
|
||||
- Doesn't interfere with normal conversation flow
|
||||
- Is accessible at any point during the session
|
||||
- Handles help for specific commands (e.g., /help session)
|
||||
|
||||
Gap reason: "Help system shows no content"
|
||||
Users need guidance on available commands and their usage to effectively use the CLI interface.
|
||||
</action>
|
||||
<verify>
|
||||
# Test help system implementation
|
||||
python -c "
|
||||
import sys
|
||||
sys.path.insert(0, 'src')
|
||||
|
||||
# Check if help command logic exists
|
||||
with open('src/app/__main__.py', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# Look for help-related patterns
|
||||
help_patterns = [
|
||||
'def.*help',
|
||||
'/help',
|
||||
'--help',
|
||||
'help.*command',
|
||||
'Command.*help'
|
||||
]
|
||||
|
||||
found_help = any(pattern in content.lower() for pattern in help_patterns)
|
||||
|
||||
if found_help:
|
||||
print('✓ Help command implementation found')
|
||||
else:
|
||||
print('✗ Help command implementation missing')
|
||||
exit(1)
|
||||
|
||||
# Check for Rich console usage in help
|
||||
if 'panel(' in content or 'table(' in content:
|
||||
print('✓ Rich formatting for help output')
|
||||
else:
|
||||
print('⚠ Rich formatting for help may be missing')
|
||||
"
|
||||
</verify>
|
||||
<done>
|
||||
CLI now has a comprehensive help system that displays all available commands with descriptions, usage examples, and professional formatting
|
||||
</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<verification>
|
||||
Test the help system by:
|
||||
1. Start the CLI application
|
||||
2. Type /help or --help
|
||||
3. Verify all commands are listed with descriptions
|
||||
4. Test specific command help (e.g., /help session)
|
||||
5. Ensure help output is well-formatted and readable
|
||||
|
||||
Expected: Comprehensive help display showing all available CLI commands with descriptions and usage examples
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- /help command displays all available CLI commands
|
||||
- Each command has a clear description and usage example
|
||||
- Help output is professionally formatted using Rich console
|
||||
- Help is accessible at any point during the CLI session
|
||||
- Specific command help works (e.g., /help session)
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.planning/phases/06-cli-interface/06-07-SUMMARY.md`
|
||||
</output>
|
||||
156
.planning/phases/06-cli-interface/06-08-PLAN.md
Normal file
156
.planning/phases/06-cli-interface/06-08-PLAN.md
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
phase: 06-cli-interface
|
||||
plan: 08
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified: [src/app/__main__.py]
|
||||
autonomous: true
|
||||
gap_closure: true
|
||||
|
||||
must_haves:
|
||||
truths:
|
||||
- "Exit command (/exit, /quit, or Ctrl+D) properly terminates the CLI application"
|
||||
artifacts:
|
||||
- path: "src/app/__main__.py"
|
||||
provides: "CLI exit command handling"
|
||||
contains: "exit command implementation with graceful shutdown"
|
||||
key_links:
|
||||
- from: "src/app/__main__.py"
|
||||
to: "exit command"
|
||||
via: "CLI command handler for /exit, /quit, and EOF"
|
||||
pattern: "def.*exit|/exit|/quit|sys\.exit"
|
||||
---
|
||||
|
||||
<objective>
|
||||
Fix CLI exit command to properly terminate the application with graceful shutdown
|
||||
|
||||
Purpose: Address the gap where exit command doesn't work, leaving users unable to cleanly exit the CLI interface
|
||||
Output: Working exit commands (/exit, /quit, Ctrl+D) that properly terminate the CLI application
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@~/.opencode/get-shit-done/workflows/execute-plan.md
|
||||
@~/.opencode/get-shit-done/templates/summary.md
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
@.planning/PROJECT.md
|
||||
@.planning/ROADMAP.md
|
||||
@.planning/STATE.md
|
||||
|
||||
# Gap closure context from checker feedback
|
||||
# Missing: Exit command doesn't work
|
||||
|
||||
# Previous CLI command implementations
|
||||
@.planning/phases/06-cli-interface/06-01-SUMMARY.md
|
||||
@.planning/phases/06-cli-interface/06-02-SUMMARY.md
|
||||
@.planning/phases/06-cli-interface/06-04-SUMMARY.md
|
||||
</context>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Fix CLI exit command implementation</name>
|
||||
<files>src/app/__main__.py</files>
|
||||
<action>
|
||||
Fix the exit command functionality in the CLI by implementing proper exit handling:
|
||||
|
||||
1. **Add exit command detection** - Implement detection for exit commands:
|
||||
- Recognize /exit, /quit, and exit commands in CLI input
|
||||
- Handle EOF (Ctrl+D) gracefully in the input loop
|
||||
- Ensure exit commands are processed before message sending
|
||||
|
||||
2. **Implement graceful shutdown** - Add proper exit sequence:
|
||||
- Save current session before exiting (if applicable)
|
||||
- Display a farewell message to the user
|
||||
- Clean up any resources or background threads
|
||||
- Exit with appropriate status code (0 for clean exit)
|
||||
|
||||
3. **Handle multiple exit methods** - Support various ways to exit:
|
||||
- /exit command - Explicit exit command
|
||||
- /quit command - Alternative exit command
|
||||
- exit command - Simple exit command
|
||||
- Ctrl+D (EOF) - Standard terminal exit
|
||||
- Ctrl+C (KeyboardInterrupt) - Emergency exit with cleanup
|
||||
|
||||
4. **Integrate with existing CLI loop** - Ensure exit handling:
|
||||
- Works within the main CLI input loop
|
||||
- Doesn't interfere with normal message processing
|
||||
- Properly breaks out of nested loops if any
|
||||
- Handles exit during any CLI state (conversation, help, etc.)
|
||||
|
||||
5. **Add exit confirmation (optional)** - Consider adding:
|
||||
- Confirmation prompt for unsaved work
|
||||
- Warning if there are pending operations
|
||||
- Option to cancel exit if needed
|
||||
|
||||
Gap reason: "Exit command doesn't work"
|
||||
Users need a reliable way to exit the CLI application cleanly without forcing termination or hanging.
|
||||
</action>
|
||||
<verify>
|
||||
# Test exit command implementation
|
||||
python -c "
|
||||
import sys
|
||||
sys.path.insert(0, 'src')
|
||||
|
||||
# Check if exit command logic exists
|
||||
with open('src/app/__main__.py', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# Look for exit-related patterns
|
||||
exit_patterns = [
|
||||
'def.*exit',
|
||||
'/exit',
|
||||
'/quit',
|
||||
'sys\\.exit',
|
||||
'break',
|
||||
'KeyboardInterrupt'
|
||||
]
|
||||
|
||||
found_exit = any(pattern in content for pattern in exit_patterns)
|
||||
|
||||
if found_exit:
|
||||
print('✓ Exit command implementation found')
|
||||
else:
|
||||
print('✗ Exit command implementation missing')
|
||||
exit(1)
|
||||
|
||||
# Check for graceful shutdown patterns
|
||||
if 'farewell' in content.lower() or 'goodbye' in content.lower():
|
||||
print('✓ Exit message implementation found')
|
||||
else:
|
||||
print('⚠ Exit message may be missing')
|
||||
"
|
||||
</verify>
|
||||
<done>
|
||||
CLI now has working exit commands (/exit, /quit, Ctrl+D) that properly terminate the application with graceful shutdown and farewell messages
|
||||
</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<verification>
|
||||
Test the exit functionality by:
|
||||
1. Start the CLI application
|
||||
2. Type /exit and verify the application terminates cleanly
|
||||
3. Restart and type /quit to verify alternative exit command works
|
||||
4. Restart and press Ctrl+D to verify EOF handling works
|
||||
5. Restart and press Ctrl+C to verify interrupt handling works
|
||||
6. Verify farewell messages are displayed and session is saved
|
||||
|
||||
Expected: All exit methods properly terminate the CLI application with clean shutdown and user feedback
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- /exit command terminates the CLI application cleanly
|
||||
- /quit command works as alternative exit method
|
||||
- Ctrl+D (EOF) properly exits the application
|
||||
- Ctrl+C (KeyboardInterrupt) is handled gracefully
|
||||
- Farewell message is displayed before exit
|
||||
- Session is saved before exiting (if applicable)
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.planning/phases/06-cli-interface/06-08-SUMMARY.md`
|
||||
</output>
|
||||
Reference in New Issue
Block a user