-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
module:qstudioAI planning moduleAI planning modulestoryFeature story linked to epicFeature story linked to epic
Milestone
Description
User Story
As a developer, I want qstudio to keep a history of all generated plans so I can review past plans, track what was implemented, and maintain an audit trail.
Design
Command Interface
# List recent plans
qstudio ledger
# List with filters
qstudio ledger --project orders-service
qstudio ledger --since 7d
qstudio ledger --limit 20
# Show specific plan
qstudio ledger show plan-abc123
# Export plan
qstudio ledger export plan-abc123 --output plan.md
# Search plans
qstudio ledger search "authentication"
# Delete old plans
qstudio ledger prune --older-than 90d
# Export all for backup
qstudio ledger export-all --output backup.jsonOutput Format
Plan History
ID Project Prompt (truncated) Date Tokens
plan-abc123 orders-service Add Order entity with CRUD... 2024-01-15 10:30:00 2,450
plan-def456 orders-service Add authentication flow... 2024-01-14 15:20:00 3,120
plan-ghi789 user-service Implement password reset... 2024-01-13 09:15:00 1,890
Showing 3 of 47 plans. Use --limit to see more.
Ledger Storage
~/.qctl/ledger/
├── index.json # Plan index (id, project, date, prompt summary)
└── plans/
├── plan-abc123.json # Full plan with metadata
├── plan-def456.json
└── ...
Plan Record Format
{
"id": "plan-abc123",
"project": "orders-service",
"project_path": "/Users/james/projects/orders-service",
"created_at": "2024-01-15T10:30:00Z",
"prompt": "Add Order entity with CRUD operations",
"provider": "anthropic",
"model": "claude-3-opus-20240229",
"tokens": {
"input": 1200,
"output": 1250,
"total": 2450
},
"context_files": [
"src/main/java/com/example/model/Customer.java",
"pom.xml"
],
"plan_output": "# Implementation Plan...",
"status": "generated"
}Files to Create/Modify
| File | Action | Purpose |
|---|---|---|
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/LedgerCommand.java |
Create | Ledger management command |
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/PlanLedger.java |
Create | Ledger storage engine |
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/PlanRecord.java |
Create | Plan record model |
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/LedgerIndex.java |
Create | Index for fast lookup |
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/LedgerExporter.java |
Create | Export functionality |
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/format/LedgerFormatter.java |
Create | Table output formatting |
Implementation Tasks
- Create LedgerCommand with subcommands (list, show, export, search, prune, export-all)
- Create PlanLedger storage engine
- Create PlanRecord model with full metadata
- Create LedgerIndex for efficient listing
- Implement search with text matching
- Implement prune with age-based deletion
- Implement export to JSON/markdown
- Integrate with PlanCommand (auto-save plans)
- Add retention policy configuration
- Create LedgerFormatter for table output
- Handle ledger corruption gracefully
- Write unit tests for PlanLedger
- Write unit tests for LedgerIndex
Acceptance Criteria
-
qstudio ledgerlists recent plans -
qstudio ledger show <id>displays full plan -
qstudio ledger search "<query>"finds matching plans -
qstudio ledger export <id>exports to file -
qstudio ledger prune --older-than <days>removes old plans - Plans auto-saved after generation
- Stores tokens, provider, context files
- Supports filtering by project, date
- Graceful handling of corrupted entries
Metadata
Metadata
Assignees
Labels
module:qstudioAI planning moduleAI planning modulestoryFeature story linked to epicFeature story linked to epic
Type
Projects
Status
No status