diff --git a/.github/workflows/docs-generator.yaml b/.github/workflows/docs-generator.yaml new file mode 100644 index 0000000000..f8a50902de --- /dev/null +++ b/.github/workflows/docs-generator.yaml @@ -0,0 +1,65 @@ +name: docs-generator + +on: + # workflow_dispatch: + # inputs: + # pr_number: + # description: 'Number of PR to document' + # required: true + # type: string + push: + +jobs: + generate_docs: + runs-on: ubuntu-latest + env: + AMAZON_Q_SIGV4: 1 + CHAT_DOWNLOAD_ROLE_ARN: ${{ secrets.CHAT_DOWNLOAD_ROLE_ARN }} + CHAT_BUILD_BUCKET_NAME: ${{ secrets.CHAT_BUILD_BUCKET_NAME }} + PR_FILE: "pr-contents.txt" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GIT_HASH: "latest" + TEST_PR_NUMBER: 2533 + permissions: + id-token: write + contents: write + pull-requests: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Fetch main branch + run: git fetch origin main:main + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_TB_ROLE }} + aws-region: us-east-1 + + - name: Make scripts executable + run: | + chmod +x docs-generation/setup_amazon_q.sh + chmod +x docs-generation/create-docs-pr.sh + chmod +x docs-generation/read-pr.sh + chmod +x docs-generation/update-docs.sh + + - name: Run setup script + run: bash docs-generation/setup_amazon_q.sh + + - name: Generate PR contents file + run: bash docs-generation/read-pr.sh ${{ env.TEST_PR_NUMBER }} + + - name: Update docs + run: bash docs-generation/update-docs.sh + + - name: Create PR + if: success() + run: bash docs-generation/create-docs-pr.sh ${{ env.TEST_PR_NUMBER }} + + + + + + \ No newline at end of file diff --git a/docs-generation/create-docs-pr.sh b/docs-generation/create-docs-pr.sh new file mode 100755 index 0000000000..d93b84b868 --- /dev/null +++ b/docs-generation/create-docs-pr.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +PR_NUMBER=$1 +BRANCH_NAME="docs-update-for-pr-$PR_NUMBER" + +# Ensure we have changes to merge +if [ -z "$(git status --porcelain)" ]; then + echo "No changes to commit" + exit 0 +fi + +git config user.name "docs-generator[bot]" +git config user.email "docs-generator[bot]@amazon.com" + +# Create branch, pull if needed (for updating existing docs PRs), and push +git checkout -B "$BRANCH_NAME" +if git ls-remote --exit-code --heads origin $BRANCH_NAME; then + git pull origin $BRANCH_NAME +fi +git add docs +git commit -m "Update docs based on PR #$PR_NUMBER + +Auto-generated by Q" + +git push origin "$BRANCH_NAME" + +# Create PR +gh pr create \ + --title "Update docs based on PR #$PR_NUMBER" \ + --body "Auto-generated documentation updates based on changes in PR #$PR_NUMBER" \ + --base main \ + --head "$BRANCH_NAME" diff --git a/docs-generation/read-pr.sh b/docs-generation/read-pr.sh new file mode 100755 index 0000000000..217c7aa9e0 --- /dev/null +++ b/docs-generation/read-pr.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -e + +PR_NUMBER=$1 + +# Add PR information +echo "====== PR Information ======\n" > $PR_FILE +gh pr view $PR_NUMBER --json title,body --jq '"Title: " + .title + "\nDescription: " + .body' >> $PR_FILE + +# Include PR diffs +echo -e "\n====== PR Diffs ======\n" >> $PR_FILE +gh pr diff $PR_NUMBER >> $PR_FILE + + + + + + \ No newline at end of file diff --git a/docs-generation/setup_amazon_q.sh b/docs-generation/setup_amazon_q.sh new file mode 100644 index 0000000000..e5c2c923ee --- /dev/null +++ b/docs-generation/setup_amazon_q.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -e +# if git hash empty then set to latest auto +sudo apt-get update +sudo apt-get install -y curl wget unzip jq + +# Create AWS credentials from environment variables +mkdir -p ~/.aws +cat > ~/.aws/credentials << EOF +[default] +aws_access_key_id = ${AWS_ACCESS_KEY_ID} +aws_secret_access_key = ${AWS_SECRET_ACCESS_KEY} +aws_session_token = ${AWS_SESSION_TOKEN} +EOF +chmod 600 ~/.aws/credentials + +cat > ~/.aws/config << EOF +[default] +region = us-east-1 +EOF +chmod 600 ~/.aws/config + +# Assume role and capture temporary credentials --> needed for s3 bucket access for build +echo "Assuming AWS s3 role" +TEMP_CREDENTIALS=$(aws sts assume-role --role-arn ${CHAT_DOWNLOAD_ROLE_ARN} --role-session-name S3AccessSession 2>/dev/null || echo '{}') +QCHAT_ACCESSKEY=$(echo $TEMP_CREDENTIALS | jq -r '.Credentials.AccessKeyId') +Q_SECRET_ACCESS_KEY=$(echo $TEMP_CREDENTIALS | jq -r '.Credentials.SecretAccessKey') +Q_SESSION_TOKEN=$(echo $TEMP_CREDENTIALS | jq -r '.Credentials.SessionToken') + +# Download specific build from S3 based on commit hash +echo "Downloading Amazon Q CLI build from S3..." +S3_PREFIX="main/${GIT_HASH}/x86_64-unknown-linux-musl" +echo "Downloading qchat.zip from s3://.../${S3_PREFIX}/qchat.zip" + +# Try download, if hash is invalid we fail. +AWS_ACCESS_KEY_ID="$QCHAT_ACCESSKEY" AWS_SECRET_ACCESS_KEY="$Q_SECRET_ACCESS_KEY" AWS_SESSION_TOKEN="$Q_SESSION_TOKEN" \ + aws s3 cp s3://${CHAT_BUILD_BUCKET_NAME}/${S3_PREFIX}/qchat.zip ./qchat.zip --region us-east-1 + +# Handle the zip file, copy the qchat executable to /usr/local/bin + symlink from old code +echo "Extracting qchat.zip..." +unzip -q qchat.zip + +# move it to /usr/local/bin/qchat for path as qchat may not work otherwise +if cp qchat /usr/local/bin/ && chmod +x /usr/local/bin/qchat; then + ln -sf /usr/local/bin/qchat /usr/local/bin/q + echo "qchat installed successfully" +else + echo "ERROR: Failed to install qchat" + exit 1 +fi + +echo "Cleaning q zip" +rm -f qchat.zip +rm -rf qchat diff --git a/docs-generation/update-docs.sh b/docs-generation/update-docs.sh new file mode 100755 index 0000000000..8f1c29d591 --- /dev/null +++ b/docs-generation/update-docs.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +if [ ! -f "$PR_FILE" ]; then + echo "PR file not found, aborting" + exit 1 +fi + +PROMPT="Before making any changes, read the 'docs' directory for the project's current +documentation. Then read 'pr-contents.txt' to see the contents of the current PR.\n\n +After reading both the directory and the PR file, update the files in the 'docs' directory +with new documentation reflecting the proposed changes in the PR. Make new files as appropriate." + +timeout 10m echo -e $PROMPT | qchat chat --non-interactive --trust-all-tools +exit $? \ No newline at end of file diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 0fc45bba3d..a6c4d45e0c 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -4,5 +4,7 @@ - [The Agent Format](./agent-format.md) - [Built-in Tools](./built-in-tools.md) +- [Slash Commands](./slash-commands.md) +- [To-Do List Quick Reference](./todo-quick-reference.md) - [Knowledge Management](./knowledge-management.md) - [Profile to Agent Migration](./legacy-profile-to-agent-migration.md) diff --git a/docs/built-in-tools.md b/docs/built-in-tools.md index 49aaf5d715..d82b8cb7d6 100644 --- a/docs/built-in-tools.md +++ b/docs/built-in-tools.md @@ -9,6 +9,7 @@ Amazon Q CLI includes several built-in tools that agents can use. This document - [`knowledge`](#knowledge-tool) — Store and retrieve information in a knowledge base. - [`thinking`](#thinking-tool) — Internal reasoning mechanism. - [`use_aws`](#use_aws-tool) — Make AWS CLI API calls. +- [`todo_list`](#todo_list-tool) — Create and manage to-do lists. ## Execute_bash Tool @@ -126,6 +127,82 @@ Make AWS CLI API calls with the specified service, operation, and parameters. | `allowedServices` | array of strings | `[]` | List of AWS services that can be accessed without prompting | | `deniedServices` | array of strings | `[]` | List of AWS services to deny. Deny rules are evaluated before allow rules | +## Todo_list Tool + +Create and manage to-do lists that persist across chat sessions. This tool allows Amazon Q to break down complex tasks into manageable steps and track progress as tasks are completed. + +### Key Features + +- **Automatic Task Creation**: Q automatically creates to-do lists when given multi-step tasks +- **Progress Tracking**: Tasks are marked as completed as Q works through them +- **Persistent Storage**: To-do lists are saved locally and persist across sessions +- **Context Tracking**: Important information and modified files are tracked with each task +- **Resume Functionality**: Users can resume incomplete to-do lists from previous sessions + +### Commands + +#### `create` +Creates a new to-do list with specified tasks and description. + +**Parameters:** +- `tasks` (required): Array of distinct task descriptions +- `todo_list_description` (required): Brief summary of the to-do list + +#### `complete` +Marks tasks as completed and updates context information. + +**Parameters:** +- `completed_indices` (required): Array of 0-indexed task numbers to mark as complete +- `context_update` (required): Important context about completed tasks +- `modified_files` (optional): Array of file paths that were modified +- `current_id` (required): ID of the currently loaded to-do list + +#### `load` +Loads an existing to-do list by ID. + +**Parameters:** +- `load_id` (required): ID of the to-do list to load + +#### `add` +Adds new tasks to an existing to-do list. + +**Parameters:** +- `new_tasks` (required): Array of new task descriptions +- `insert_indices` (required): Array of 0-indexed positions to insert tasks +- `new_description` (optional): Updated description for the to-do list +- `current_id` (required): ID of the currently loaded to-do list + +#### `remove` +Removes tasks from an existing to-do list. + +**Parameters:** +- `remove_indices` (required): Array of 0-indexed positions of tasks to remove +- `new_description` (optional): Updated description for the to-do list +- `current_id` (required): ID of the currently loaded to-do list + +### Storage Location + +To-do lists are stored locally in the current working directory under: +``` +.amazonq/cli-todo-lists/ +``` + +Each to-do list is saved as a JSON file with a timestamp-based ID. + +### Usage Patterns + +**Automatic Creation**: When you give Q a complex task, it will automatically create a to-do list before starting work: +``` +User: "Set up a new React project with TypeScript and testing" +Q: [Creates to-do list with steps like "Initialize project", "Configure TypeScript", "Set up testing framework", etc.] +``` + +**Progress Tracking**: Q marks tasks as completed immediately after finishing them, providing visual feedback on progress. + +**Context Preservation**: Each completed task includes context about what was accomplished and which files were modified, helping maintain continuity across sessions. + +This tool has no configuration options and is trusted by default. + ## Using Tool Settings in Agent Configuration Tool settings are specified in the `toolsSettings` section of the agent configuration file. Each tool's settings are specified using the tool's name as the key. @@ -162,5 +239,5 @@ Tools can be explicitly allowed in the `allowedTools` section of the agent confi If a tool is not in the `allowedTools` list, the user will be prompted for permission when the tool is used unless an allowed `toolSettings` configuration is set. Some tools have default permission behaviors: -- `fs_read` and `report_issue` are trusted by default +- `fs_read`, `report_issue`, and `todo_list` are trusted by default - `execute_bash`, `fs_write`, and `use_aws` prompt for permission by default, but can be configured to allow specific commands/paths/services diff --git a/docs/default-agent-behavior.md b/docs/default-agent-behavior.md index 0510906a60..418613917f 100644 --- a/docs/default-agent-behavior.md +++ b/docs/default-agent-behavior.md @@ -34,7 +34,7 @@ If no agent is specified or found, Q CLI uses a built-in default agent with the "name": "default", "description": "Default agent", "tools": ["*"], - "allowedTools": ["fs_read"], + "allowedTools": ["fs_read", "todo_list"], "resources": [ "file://AmazonQ.md", "file://README.md", @@ -52,7 +52,7 @@ The built-in default agent provides: - **All tools**: Uses `"*"` wildcard to include all built-in tools and MCP server tools ### Trusted Tools -- **fs_read only**: Only the `fs_read` tool is pre-approved and won't prompt for permission +- **fs_read and todo_list**: Only the `fs_read` and `todo_list` tools are pre-approved and won't prompt for permission - All other tools will require user confirmation before execution ### Default Resources diff --git a/docs/introduction.md b/docs/introduction.md index 9c3766a5d3..8359e35104 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -4,3 +4,11 @@ Welcome to the supplementary Amazon Q CLI Developer documentation. This documentation supplements [the primary Amazon Q CLI documentation](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line.html). These docs are experimental, work in progress, and subject to change. As of now, they do not represent latest stable builds, instead documenting the functionality of development builds. + +## Key Features Covered + +- **Agent Configuration**: Learn how to create and configure custom agents with specific tools, resources, and behaviors +- **Built-in Tools**: Comprehensive guide to all available tools including file operations, AWS integration, and task management +- **Slash Commands**: Direct system commands for managing to-do lists, knowledge bases, and other features +- **Knowledge Management**: Persistent knowledge bases with semantic search capabilities +- **Migration Guide**: How to migrate from legacy profiles to the new agent system diff --git a/docs/slash-commands.md b/docs/slash-commands.md new file mode 100644 index 0000000000..c3d33962a8 --- /dev/null +++ b/docs/slash-commands.md @@ -0,0 +1,199 @@ +# Slash Commands + +Amazon Q CLI provides several slash commands that allow you to interact with the system and manage your workflow without sending messages to the AI model. These commands are prefixed with `/` and provide direct access to various features. + +## Available Commands + +### `/todos` - To-Do List Management + +The `/todos` command provides comprehensive management of to-do lists created by Amazon Q. When Q breaks down complex tasks into manageable steps, you can use these commands to view, resume, and manage your to-do lists. + +#### `/todos resume` + +Resume working on a selected to-do list. This command presents a fuzzy-searchable list of all incomplete to-do lists and allows you to select one to continue working on. + +**Usage:** +``` +/todos resume +``` + +**Behavior:** +- Displays all incomplete to-do lists with progress indicators +- Allows fuzzy search to quickly find specific lists +- Automatically loads the selected to-do list and prompts Q to continue working +- Shows completion status (e.g., "3/7 tasks completed") + +#### `/todos view` + +View the details of a selected to-do list without resuming work on it. + +**Usage:** +``` +/todos view +``` + +**Features:** +- Browse all to-do lists (both complete and incomplete) +- View full task lists with completion status +- See task descriptions and context +- Non-destructive viewing (doesn't change current session state) + +#### `/todos delete` + +Delete one or more to-do lists. + +**Usage:** +``` +/todos delete # Delete a single selected list +/todos delete --all # Delete all to-do lists +``` + +**Options:** +- Without `--all`: Presents a selection interface to choose which list to delete +- With `--all`: Deletes all to-do lists after confirmation +- Deletion is permanent and cannot be undone + +#### `/todos clear-finished` + +Remove all completed to-do lists while preserving incomplete ones. + +**Usage:** +``` +/todos clear-finished +``` + +**Behavior:** +- Automatically identifies to-do lists where all tasks are marked complete +- Removes only fully completed lists +- Preserves any lists with remaining tasks +- Provides feedback on how many lists were cleared + +### `/knowledge` - Knowledge Base Management + +The `/knowledge` command provides persistent knowledge base functionality with semantic search capabilities. For complete documentation, see the [Knowledge Management guide](./knowledge-management.md). + +#### Quick Reference + +| Command | Purpose | +|---------|---------| +| `/knowledge show` | Display all knowledge base entries | +| `/knowledge add ` | Add files/directories to knowledge base | +| `/knowledge remove ` | Remove entries by name, path, or ID | +| `/knowledge update ` | Update existing entry with new content | +| `/knowledge clear` | Remove all entries (with confirmation) | +| `/knowledge status` | View indexing operation status | +| `/knowledge cancel [id]` | Cancel background operations | + +**Example Usage:** +``` +/knowledge add "project-docs" ./docs --include "**/*.md" +/knowledge show +/knowledge remove "old-project" +``` + +### Other Slash Commands + +Additional slash commands are available for various system functions: + +- `/save` - Save current conversation +- `/load` - Load a saved conversation +- `/subscribe` - Manage subscription settings + +## To-Do List Display Format + +When viewing to-do lists, they are displayed with clear visual indicators: + +- **Incomplete tasks**: `☐ Task description` +- **Completed tasks**: `■ Task description` (green, italicized) +- **Progress indicators**: `(3/7)` showing completed vs total tasks +- **Status symbols**: + - `✗` (red) for incomplete lists + - `✓` (green) for completed lists + +## Integration with Chat Sessions + +### Automatic Creation +When you give Amazon Q a complex, multi-step task, it will automatically: +1. Create a to-do list using the `todo_list` tool +2. Display the list to you +3. Begin working through tasks sequentially +4. Mark tasks as complete as it finishes them + +### Session Persistence +To-do lists persist across chat sessions: +- Lists are saved locally in `.amazonq/cli-todo-lists/` +- You can resume work on incomplete lists in new sessions +- Context and progress are preserved between sessions +- Conversation summaries include to-do list IDs for continuity + +### Resume Workflow +When resuming a to-do list: +1. Use `/todos resume` to select a list +2. Q automatically loads the list context +3. Q reviews completed tasks and remaining work +4. Q continues from where it left off + +## Best Practices + +### For Users +- **Use descriptive task requests**: Clear, detailed requests help Q create better to-do lists +- **Let Q manage the lists**: Avoid manually editing to-do list files +- **Regular cleanup**: Use `/todos clear-finished` to remove completed lists +- **Resume incomplete work**: Check for incomplete lists when starting new sessions + +### For Complex Projects +- **Break down large tasks**: Give Q specific, focused objectives for better to-do list creation +- **Provide context**: Include relevant background information when requesting complex tasks +- **Review progress**: Use `/todos view` to check progress without disrupting current work +- **Organize by project**: Consider using separate chat sessions for different projects + +## Storage and File Management + +### Local Storage +- **Location**: `.amazonq/cli-todo-lists/` in your current working directory +- **Format**: JSON files with timestamp-based IDs +- **Automatic creation**: Directory is created automatically when needed + +### File Structure +Each to-do list contains: +- Task descriptions and completion status +- Context updates from completed tasks +- List of modified files +- Unique identifier and creation metadata + +### Cleanup +- Use slash commands rather than manually deleting files +- The system handles file management automatically +- Backup important project directories if needed + +## Troubleshooting + +### Common Issues + +**"No to-do lists to resume"** +- This means no incomplete to-do lists exist +- Create new tasks by giving Q complex, multi-step requests +- Check if lists were accidentally deleted + +**Lists not appearing** +- Ensure you're in the correct working directory +- To-do lists are stored relative to where they were created +- Check `.amazonq/cli-todo-lists/` exists and contains files + +**Cannot resume a list** +- The to-do list file may be corrupted +- Try `/todos view` to see if the list displays correctly +- Consider deleting corrupted lists and recreating tasks + +**Performance with many lists** +- Use `/todos clear-finished` regularly to remove completed lists +- Consider organizing work into separate project directories +- Delete old, irrelevant lists to improve performance + +### Getting Help + +If you encounter issues with to-do list functionality: +1. Check that the `.amazonq/cli-todo-lists/` directory exists and is writable +2. Verify you're in the correct working directory +3. Try creating a simple test to-do list to verify functionality +4. Use `/todos view` to inspect existing lists for corruption diff --git a/docs/todo-quick-reference.md b/docs/todo-quick-reference.md new file mode 100644 index 0000000000..d671554ee9 --- /dev/null +++ b/docs/todo-quick-reference.md @@ -0,0 +1,126 @@ +# To-Do List Quick Reference + +Amazon Q CLI includes powerful to-do list functionality that automatically breaks down complex tasks and tracks progress. This quick reference covers the most common use cases. + +## Quick Start + +### Automatic To-Do Creation +Simply give Q a complex task and it will automatically create a to-do list: + +``` +User: "Set up a new Python web API with FastAPI, database integration, and tests" +Q: [Automatically creates and displays a to-do list with steps like:] + ☐ Initialize Python project structure + ☐ Install FastAPI and dependencies + ☐ Set up database models + ☐ Create API endpoints + ☐ Write unit tests + ☐ Configure testing framework +``` + +### Managing Existing Lists + +| Command | Purpose | Example | +|---------|---------|---------| +| `/todos resume` | Continue working on an incomplete list | Select from fuzzy-searchable list | +| `/todos view` | View list details without resuming | Browse all lists, see progress | +| `/todos delete` | Remove a specific list | Choose from selection interface | +| `/todos delete --all` | Remove all lists | Clears everything after confirmation | +| `/todos clear-finished` | Remove only completed lists | Keeps incomplete lists intact | + +## Visual Indicators + +| Symbol | Meaning | Example | +|--------|---------|---------| +| `☐` | Incomplete task | `☐ Set up database connection` | +| `■` | Completed task | `■ Install dependencies` (green, italic) | +| `✗` | Incomplete list | `✗ API Setup (2/5)` (red) | +| `✓` | Completed list | `✓ Database Migration (3/3)` (green) | +| `(2/5)` | Progress indicator | 2 completed out of 5 total tasks | + +## Common Workflows + +### Starting a New Project +1. Describe your project goals to Q +2. Q automatically creates a to-do list +3. Q begins working through tasks sequentially +4. Tasks are marked complete as Q finishes them + +### Resuming Previous Work +1. Start a new chat session +2. Run `/todos resume` +3. Select the incomplete list you want to continue +4. Q loads the context and continues where it left off + +### Project Cleanup +1. Run `/todos view` to see all lists +2. Use `/todos clear-finished` to remove completed work +3. Use `/todos delete` to remove outdated or irrelevant lists + +## Best Practices + +### For Better To-Do Lists +- **Be specific**: "Set up authentication with JWT tokens" vs "add auth" +- **Provide context**: Include relevant technologies, constraints, or requirements +- **Break down large requests**: Focus on specific features or components + +### For Project Management +- **Regular cleanup**: Use `/todos clear-finished` to maintain organization +- **Separate concerns**: Use different chat sessions for different projects +- **Review progress**: Check `/todos view` before starting new work + +### For Team Collaboration +- **Document context**: Include relevant background in your requests +- **Use descriptive names**: Q creates meaningful descriptions for lists +- **Share approaches**: Team members can learn from viewing completed lists + +## Storage and Persistence + +- **Location**: `.amazonq/cli-todo-lists/` in your working directory +- **Format**: JSON files with timestamp-based IDs +- **Persistence**: Lists survive across chat sessions and CLI restarts +- **Context**: Each task completion includes context and modified files + +## Troubleshooting + +| Issue | Solution | +|-------|----------| +| "No to-do lists found" | Create new tasks by giving Q complex requests | +| Lists not appearing | Check you're in the correct working directory | +| Cannot resume list | Try `/todos view` to check if list is corrupted | +| Too many old lists | Use `/todos clear-finished` or `/todos delete --all` | + +## Integration Points + +### With Chat Sessions +- Lists are automatically created for multi-step tasks +- Progress is tracked in conversation summaries +- Context is preserved between sessions + +### With File Operations +- Modified files are tracked with each completed task +- File changes are included in task context +- Project state is maintained across work sessions + +### With Agent Configuration +- The `todo_list` tool is trusted by default +- No special configuration required +- Works with all agent types and configurations + +## Advanced Usage + +### Custom Task Management +While Q manages to-do lists automatically, you can: +- Request specific task breakdowns: "Create a to-do list for database migration" +- Ask for task modifications: "Add error handling tasks to the current list" +- Request progress reviews: "Show me what we've completed so far" + +### Project Organization +- Use separate directories for different projects +- Each directory maintains its own `.amazonq/cli-todo-lists/` +- Lists are scoped to the working directory where they were created + +### Context Preservation +- Task context includes important decisions and discoveries +- Modified file lists help track project changes +- Context is available when resuming work in new sessions