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.json
Output 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"}
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
Output Format
Ledger Storage
Plan Record Format
Files to Create/Modify
qctl-qstudio/src/main/java/io/qrun/qctl/qstudio/LedgerCommand.javaqctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/PlanLedger.javaqctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/PlanRecord.javaqctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/LedgerIndex.javaqctl-qstudio/src/main/java/io/qrun/qctl/qstudio/ledger/LedgerExporter.javaqctl-qstudio/src/main/java/io/qrun/qctl/qstudio/format/LedgerFormatter.javaImplementation Tasks
Acceptance Criteria
qstudio ledgerlists recent plansqstudio ledger show <id>displays full planqstudio ledger search "<query>"finds matching plansqstudio ledger export <id>exports to fileqstudio ledger prune --older-than <days>removes old plans