#
tokens: 49956/50000 159/975 files (page 2/50)
lines: off (toggle) GitHub
raw markdown copy
This is page 2 of 50. Use http://codebase.md/eyaltoledano/claude-task-master?page={x} to view the full context.

# Directory Structure

```
├── .changeset
│   ├── config.json
│   └── README.md
├── .claude
│   ├── commands
│   │   └── dedupe.md
│   └── TM_COMMANDS_GUIDE.md
├── .claude-plugin
│   └── marketplace.json
├── .coderabbit.yaml
├── .cursor
│   ├── mcp.json
│   └── rules
│       ├── ai_providers.mdc
│       ├── ai_services.mdc
│       ├── architecture.mdc
│       ├── changeset.mdc
│       ├── commands.mdc
│       ├── context_gathering.mdc
│       ├── cursor_rules.mdc
│       ├── dependencies.mdc
│       ├── dev_workflow.mdc
│       ├── git_workflow.mdc
│       ├── glossary.mdc
│       ├── mcp.mdc
│       ├── new_features.mdc
│       ├── self_improve.mdc
│       ├── tags.mdc
│       ├── taskmaster.mdc
│       ├── tasks.mdc
│       ├── telemetry.mdc
│       ├── test_workflow.mdc
│       ├── tests.mdc
│       ├── ui.mdc
│       └── utilities.mdc
├── .cursorignore
├── .env.example
├── .github
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   ├── enhancements---feature-requests.md
│   │   └── feedback.md
│   ├── PULL_REQUEST_TEMPLATE
│   │   ├── bugfix.md
│   │   ├── config.yml
│   │   ├── feature.md
│   │   └── integration.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── scripts
│   │   ├── auto-close-duplicates.mjs
│   │   ├── backfill-duplicate-comments.mjs
│   │   ├── check-pre-release-mode.mjs
│   │   ├── parse-metrics.mjs
│   │   ├── release.mjs
│   │   ├── tag-extension.mjs
│   │   ├── utils.mjs
│   │   └── validate-changesets.mjs
│   └── workflows
│       ├── auto-close-duplicates.yml
│       ├── backfill-duplicate-comments.yml
│       ├── ci.yml
│       ├── claude-dedupe-issues.yml
│       ├── claude-docs-trigger.yml
│       ├── claude-docs-updater.yml
│       ├── claude-issue-triage.yml
│       ├── claude.yml
│       ├── extension-ci.yml
│       ├── extension-release.yml
│       ├── log-issue-events.yml
│       ├── pre-release.yml
│       ├── release-check.yml
│       ├── release.yml
│       ├── update-models-md.yml
│       └── weekly-metrics-discord.yml
├── .gitignore
├── .kiro
│   ├── hooks
│   │   ├── tm-code-change-task-tracker.kiro.hook
│   │   ├── tm-complexity-analyzer.kiro.hook
│   │   ├── tm-daily-standup-assistant.kiro.hook
│   │   ├── tm-git-commit-task-linker.kiro.hook
│   │   ├── tm-pr-readiness-checker.kiro.hook
│   │   ├── tm-task-dependency-auto-progression.kiro.hook
│   │   └── tm-test-success-task-completer.kiro.hook
│   ├── settings
│   │   └── mcp.json
│   └── steering
│       ├── dev_workflow.md
│       ├── kiro_rules.md
│       ├── self_improve.md
│       ├── taskmaster_hooks_workflow.md
│       └── taskmaster.md
├── .manypkg.json
├── .mcp.json
├── .npmignore
├── .nvmrc
├── .taskmaster
│   ├── CLAUDE.md
│   ├── config.json
│   ├── docs
│   │   ├── autonomous-tdd-git-workflow.md
│   │   ├── MIGRATION-ROADMAP.md
│   │   ├── prd-tm-start.txt
│   │   ├── prd.txt
│   │   ├── README.md
│   │   ├── research
│   │   │   ├── 2025-06-14_how-can-i-improve-the-scope-up-and-scope-down-comm.md
│   │   │   ├── 2025-06-14_should-i-be-using-any-specific-libraries-for-this.md
│   │   │   ├── 2025-06-14_test-save-functionality.md
│   │   │   ├── 2025-06-14_test-the-fix-for-duplicate-saves-final-test.md
│   │   │   └── 2025-08-01_do-we-need-to-add-new-commands-or-can-we-just-weap.md
│   │   ├── task-template-importing-prd.txt
│   │   ├── tdd-workflow-phase-0-spike.md
│   │   ├── tdd-workflow-phase-1-core-rails.md
│   │   ├── tdd-workflow-phase-1-orchestrator.md
│   │   ├── tdd-workflow-phase-2-pr-resumability.md
│   │   ├── tdd-workflow-phase-3-extensibility-guardrails.md
│   │   ├── test-prd.txt
│   │   └── tm-core-phase-1.txt
│   ├── reports
│   │   ├── task-complexity-report_autonomous-tdd-git-workflow.json
│   │   ├── task-complexity-report_cc-kiro-hooks.json
│   │   ├── task-complexity-report_tdd-phase-1-core-rails.json
│   │   ├── task-complexity-report_tdd-workflow-phase-0.json
│   │   ├── task-complexity-report_test-prd-tag.json
│   │   ├── task-complexity-report_tm-core-phase-1.json
│   │   ├── task-complexity-report.json
│   │   └── tm-core-complexity.json
│   ├── state.json
│   ├── tasks
│   │   ├── task_001_tm-start.txt
│   │   ├── task_002_tm-start.txt
│   │   ├── task_003_tm-start.txt
│   │   ├── task_004_tm-start.txt
│   │   ├── task_007_tm-start.txt
│   │   └── tasks.json
│   └── templates
│       ├── example_prd_rpg.md
│       └── example_prd.md
├── .vscode
│   ├── extensions.json
│   └── settings.json
├── apps
│   ├── cli
│   │   ├── CHANGELOG.md
│   │   ├── package.json
│   │   ├── src
│   │   │   ├── command-registry.ts
│   │   │   ├── commands
│   │   │   │   ├── auth.command.ts
│   │   │   │   ├── autopilot
│   │   │   │   │   ├── abort.command.ts
│   │   │   │   │   ├── commit.command.ts
│   │   │   │   │   ├── complete.command.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── next.command.ts
│   │   │   │   │   ├── resume.command.ts
│   │   │   │   │   ├── shared.ts
│   │   │   │   │   ├── start.command.ts
│   │   │   │   │   └── status.command.ts
│   │   │   │   ├── briefs.command.ts
│   │   │   │   ├── context.command.ts
│   │   │   │   ├── export.command.ts
│   │   │   │   ├── list.command.ts
│   │   │   │   ├── models
│   │   │   │   │   ├── custom-providers.ts
│   │   │   │   │   ├── fetchers.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── prompts.ts
│   │   │   │   │   ├── setup.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── next.command.ts
│   │   │   │   ├── set-status.command.ts
│   │   │   │   ├── show.command.ts
│   │   │   │   ├── start.command.ts
│   │   │   │   └── tags.command.ts
│   │   │   ├── index.ts
│   │   │   ├── lib
│   │   │   │   └── model-management.ts
│   │   │   ├── types
│   │   │   │   └── tag-management.d.ts
│   │   │   ├── ui
│   │   │   │   ├── components
│   │   │   │   │   ├── cardBox.component.ts
│   │   │   │   │   ├── dashboard.component.ts
│   │   │   │   │   ├── header.component.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── next-task.component.ts
│   │   │   │   │   ├── suggested-steps.component.ts
│   │   │   │   │   └── task-detail.component.ts
│   │   │   │   ├── display
│   │   │   │   │   ├── messages.ts
│   │   │   │   │   └── tables.ts
│   │   │   │   ├── formatters
│   │   │   │   │   ├── complexity-formatters.ts
│   │   │   │   │   ├── dependency-formatters.ts
│   │   │   │   │   ├── priority-formatters.ts
│   │   │   │   │   ├── status-formatters.spec.ts
│   │   │   │   │   └── status-formatters.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── layout
│   │   │   │       ├── helpers.spec.ts
│   │   │   │       └── helpers.ts
│   │   │   └── utils
│   │   │       ├── auth-helpers.ts
│   │   │       ├── auto-update.ts
│   │   │       ├── brief-selection.ts
│   │   │       ├── display-helpers.ts
│   │   │       ├── error-handler.ts
│   │   │       ├── index.ts
│   │   │       ├── project-root.ts
│   │   │       ├── task-status.ts
│   │   │       ├── ui.spec.ts
│   │   │       └── ui.ts
│   │   ├── tests
│   │   │   ├── integration
│   │   │   │   └── commands
│   │   │   │       └── autopilot
│   │   │   │           └── workflow.test.ts
│   │   │   └── unit
│   │   │       ├── commands
│   │   │       │   ├── autopilot
│   │   │       │   │   └── shared.test.ts
│   │   │       │   ├── list.command.spec.ts
│   │   │       │   └── show.command.spec.ts
│   │   │       └── ui
│   │   │           └── dashboard.component.spec.ts
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── docs
│   │   ├── archive
│   │   │   ├── ai-client-utils-example.mdx
│   │   │   ├── ai-development-workflow.mdx
│   │   │   ├── command-reference.mdx
│   │   │   ├── configuration.mdx
│   │   │   ├── cursor-setup.mdx
│   │   │   ├── examples.mdx
│   │   │   └── Installation.mdx
│   │   ├── best-practices
│   │   │   ├── advanced-tasks.mdx
│   │   │   ├── configuration-advanced.mdx
│   │   │   └── index.mdx
│   │   ├── capabilities
│   │   │   ├── cli-root-commands.mdx
│   │   │   ├── index.mdx
│   │   │   ├── mcp.mdx
│   │   │   ├── rpg-method.mdx
│   │   │   └── task-structure.mdx
│   │   ├── CHANGELOG.md
│   │   ├── command-reference.mdx
│   │   ├── configuration.mdx
│   │   ├── docs.json
│   │   ├── favicon.svg
│   │   ├── getting-started
│   │   │   ├── api-keys.mdx
│   │   │   ├── contribute.mdx
│   │   │   ├── faq.mdx
│   │   │   └── quick-start
│   │   │       ├── configuration-quick.mdx
│   │   │       ├── execute-quick.mdx
│   │   │       ├── installation.mdx
│   │   │       ├── moving-forward.mdx
│   │   │       ├── prd-quick.mdx
│   │   │       ├── quick-start.mdx
│   │   │       ├── requirements.mdx
│   │   │       ├── rules-quick.mdx
│   │   │       └── tasks-quick.mdx
│   │   ├── introduction.mdx
│   │   ├── licensing.md
│   │   ├── logo
│   │   │   ├── dark.svg
│   │   │   ├── light.svg
│   │   │   └── task-master-logo.png
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── style.css
│   │   ├── tdd-workflow
│   │   │   ├── ai-agent-integration.mdx
│   │   │   └── quickstart.mdx
│   │   ├── vercel.json
│   │   └── whats-new.mdx
│   ├── extension
│   │   ├── .vscodeignore
│   │   ├── assets
│   │   │   ├── banner.png
│   │   │   ├── icon-dark.svg
│   │   │   ├── icon-light.svg
│   │   │   ├── icon.png
│   │   │   ├── screenshots
│   │   │   │   ├── kanban-board.png
│   │   │   │   └── task-details.png
│   │   │   └── sidebar-icon.svg
│   │   ├── CHANGELOG.md
│   │   ├── components.json
│   │   ├── docs
│   │   │   ├── extension-CI-setup.md
│   │   │   └── extension-development-guide.md
│   │   ├── esbuild.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── package.mjs
│   │   ├── package.publish.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── components
│   │   │   │   ├── ConfigView.tsx
│   │   │   │   ├── constants.ts
│   │   │   │   ├── TaskDetails
│   │   │   │   │   ├── AIActionsSection.tsx
│   │   │   │   │   ├── DetailsSection.tsx
│   │   │   │   │   ├── PriorityBadge.tsx
│   │   │   │   │   ├── SubtasksSection.tsx
│   │   │   │   │   ├── TaskMetadataSidebar.tsx
│   │   │   │   │   └── useTaskDetails.ts
│   │   │   │   ├── TaskDetailsView.tsx
│   │   │   │   ├── TaskMasterLogo.tsx
│   │   │   │   └── ui
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── breadcrumb.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       ├── card.tsx
│   │   │   │       ├── collapsible.tsx
│   │   │   │       ├── CollapsibleSection.tsx
│   │   │   │       ├── dropdown-menu.tsx
│   │   │   │       ├── label.tsx
│   │   │   │       ├── scroll-area.tsx
│   │   │   │       ├── separator.tsx
│   │   │   │       ├── shadcn-io
│   │   │   │       │   └── kanban
│   │   │   │       │       └── index.tsx
│   │   │   │       └── textarea.tsx
│   │   │   ├── extension.ts
│   │   │   ├── index.ts
│   │   │   ├── lib
│   │   │   │   └── utils.ts
│   │   │   ├── services
│   │   │   │   ├── config-service.ts
│   │   │   │   ├── error-handler.ts
│   │   │   │   ├── notification-preferences.ts
│   │   │   │   ├── polling-service.ts
│   │   │   │   ├── polling-strategies.ts
│   │   │   │   ├── sidebar-webview-manager.ts
│   │   │   │   ├── task-repository.ts
│   │   │   │   ├── terminal-manager.ts
│   │   │   │   └── webview-manager.ts
│   │   │   ├── test
│   │   │   │   └── extension.test.ts
│   │   │   ├── utils
│   │   │   │   ├── configManager.ts
│   │   │   │   ├── connectionManager.ts
│   │   │   │   ├── errorHandler.ts
│   │   │   │   ├── event-emitter.ts
│   │   │   │   ├── logger.ts
│   │   │   │   ├── mcpClient.ts
│   │   │   │   ├── notificationPreferences.ts
│   │   │   │   └── task-master-api
│   │   │   │       ├── cache
│   │   │   │       │   └── cache-manager.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── mcp-client.ts
│   │   │   │       ├── transformers
│   │   │   │       │   └── task-transformer.ts
│   │   │   │       └── types
│   │   │   │           └── index.ts
│   │   │   └── webview
│   │   │       ├── App.tsx
│   │   │       ├── components
│   │   │       │   ├── AppContent.tsx
│   │   │       │   ├── EmptyState.tsx
│   │   │       │   ├── ErrorBoundary.tsx
│   │   │       │   ├── PollingStatus.tsx
│   │   │       │   ├── PriorityBadge.tsx
│   │   │       │   ├── SidebarView.tsx
│   │   │       │   ├── TagDropdown.tsx
│   │   │       │   ├── TaskCard.tsx
│   │   │       │   ├── TaskEditModal.tsx
│   │   │       │   ├── TaskMasterKanban.tsx
│   │   │       │   ├── ToastContainer.tsx
│   │   │       │   └── ToastNotification.tsx
│   │   │       ├── constants
│   │   │       │   └── index.ts
│   │   │       ├── contexts
│   │   │       │   └── VSCodeContext.tsx
│   │   │       ├── hooks
│   │   │       │   ├── useTaskQueries.ts
│   │   │       │   ├── useVSCodeMessages.ts
│   │   │       │   └── useWebviewHeight.ts
│   │   │       ├── index.css
│   │   │       ├── index.tsx
│   │   │       ├── providers
│   │   │       │   └── QueryProvider.tsx
│   │   │       ├── reducers
│   │   │       │   └── appReducer.ts
│   │   │       ├── sidebar.tsx
│   │   │       ├── types
│   │   │       │   └── index.ts
│   │   │       └── utils
│   │   │           ├── logger.ts
│   │   │           └── toast.ts
│   │   └── tsconfig.json
│   └── mcp
│       ├── CHANGELOG.md
│       ├── package.json
│       ├── src
│       │   ├── index.ts
│       │   ├── shared
│       │   │   ├── types.ts
│       │   │   └── utils.ts
│       │   └── tools
│       │       ├── autopilot
│       │       │   ├── abort.tool.ts
│       │       │   ├── commit.tool.ts
│       │       │   ├── complete.tool.ts
│       │       │   ├── finalize.tool.ts
│       │       │   ├── index.ts
│       │       │   ├── next.tool.ts
│       │       │   ├── resume.tool.ts
│       │       │   ├── start.tool.ts
│       │       │   └── status.tool.ts
│       │       ├── README-ZOD-V3.md
│       │       └── tasks
│       │           ├── get-task.tool.ts
│       │           ├── get-tasks.tool.ts
│       │           └── index.ts
│       ├── tsconfig.json
│       └── vitest.config.ts
├── assets
│   ├── .windsurfrules
│   ├── AGENTS.md
│   ├── claude
│   │   └── TM_COMMANDS_GUIDE.md
│   ├── config.json
│   ├── env.example
│   ├── example_prd_rpg.txt
│   ├── example_prd.txt
│   ├── GEMINI.md
│   ├── gitignore
│   ├── kiro-hooks
│   │   ├── tm-code-change-task-tracker.kiro.hook
│   │   ├── tm-complexity-analyzer.kiro.hook
│   │   ├── tm-daily-standup-assistant.kiro.hook
│   │   ├── tm-git-commit-task-linker.kiro.hook
│   │   ├── tm-pr-readiness-checker.kiro.hook
│   │   ├── tm-task-dependency-auto-progression.kiro.hook
│   │   └── tm-test-success-task-completer.kiro.hook
│   ├── roocode
│   │   ├── .roo
│   │   │   ├── rules-architect
│   │   │   │   └── architect-rules
│   │   │   ├── rules-ask
│   │   │   │   └── ask-rules
│   │   │   ├── rules-code
│   │   │   │   └── code-rules
│   │   │   ├── rules-debug
│   │   │   │   └── debug-rules
│   │   │   ├── rules-orchestrator
│   │   │   │   └── orchestrator-rules
│   │   │   └── rules-test
│   │   │       └── test-rules
│   │   └── .roomodes
│   ├── rules
│   │   ├── cursor_rules.mdc
│   │   ├── dev_workflow.mdc
│   │   ├── self_improve.mdc
│   │   ├── taskmaster_hooks_workflow.mdc
│   │   └── taskmaster.mdc
│   └── scripts_README.md
├── bin
│   └── task-master.js
├── biome.json
├── CHANGELOG.md
├── CLAUDE_CODE_PLUGIN.md
├── CLAUDE.md
├── context
│   ├── chats
│   │   ├── add-task-dependencies-1.md
│   │   └── max-min-tokens.txt.md
│   ├── fastmcp-core.txt
│   ├── fastmcp-docs.txt
│   ├── MCP_INTEGRATION.md
│   ├── mcp-js-sdk-docs.txt
│   ├── mcp-protocol-repo.txt
│   ├── mcp-protocol-schema-03262025.json
│   └── mcp-protocol-spec.txt
├── CONTRIBUTING.md
├── docs
│   ├── claude-code-integration.md
│   ├── CLI-COMMANDER-PATTERN.md
│   ├── command-reference.md
│   ├── configuration.md
│   ├── contributor-docs
│   │   ├── testing-roo-integration.md
│   │   └── worktree-setup.md
│   ├── cross-tag-task-movement.md
│   ├── examples
│   │   ├── claude-code-usage.md
│   │   └── codex-cli-usage.md
│   ├── examples.md
│   ├── licensing.md
│   ├── mcp-provider-guide.md
│   ├── mcp-provider.md
│   ├── migration-guide.md
│   ├── models.md
│   ├── providers
│   │   ├── codex-cli.md
│   │   └── gemini-cli.md
│   ├── README.md
│   ├── scripts
│   │   └── models-json-to-markdown.js
│   ├── task-structure.md
│   └── tutorial.md
├── images
│   ├── hamster-hiring.png
│   └── logo.png
├── index.js
├── jest.config.js
├── jest.resolver.cjs
├── LICENSE
├── llms-install.md
├── mcp-server
│   ├── server.js
│   └── src
│       ├── core
│       │   ├── __tests__
│       │   │   └── context-manager.test.js
│       │   ├── context-manager.js
│       │   ├── direct-functions
│       │   │   ├── add-dependency.js
│       │   │   ├── add-subtask.js
│       │   │   ├── add-tag.js
│       │   │   ├── add-task.js
│       │   │   ├── analyze-task-complexity.js
│       │   │   ├── cache-stats.js
│       │   │   ├── clear-subtasks.js
│       │   │   ├── complexity-report.js
│       │   │   ├── copy-tag.js
│       │   │   ├── create-tag-from-branch.js
│       │   │   ├── delete-tag.js
│       │   │   ├── expand-all-tasks.js
│       │   │   ├── expand-task.js
│       │   │   ├── fix-dependencies.js
│       │   │   ├── generate-task-files.js
│       │   │   ├── initialize-project.js
│       │   │   ├── list-tags.js
│       │   │   ├── models.js
│       │   │   ├── move-task-cross-tag.js
│       │   │   ├── move-task.js
│       │   │   ├── next-task.js
│       │   │   ├── parse-prd.js
│       │   │   ├── remove-dependency.js
│       │   │   ├── remove-subtask.js
│       │   │   ├── remove-task.js
│       │   │   ├── rename-tag.js
│       │   │   ├── research.js
│       │   │   ├── response-language.js
│       │   │   ├── rules.js
│       │   │   ├── scope-down.js
│       │   │   ├── scope-up.js
│       │   │   ├── set-task-status.js
│       │   │   ├── update-subtask-by-id.js
│       │   │   ├── update-task-by-id.js
│       │   │   ├── update-tasks.js
│       │   │   ├── use-tag.js
│       │   │   └── validate-dependencies.js
│       │   ├── task-master-core.js
│       │   └── utils
│       │       ├── env-utils.js
│       │       └── path-utils.js
│       ├── custom-sdk
│       │   ├── errors.js
│       │   ├── index.js
│       │   ├── json-extractor.js
│       │   ├── language-model.js
│       │   ├── message-converter.js
│       │   └── schema-converter.js
│       ├── index.js
│       ├── logger.js
│       ├── providers
│       │   └── mcp-provider.js
│       └── tools
│           ├── add-dependency.js
│           ├── add-subtask.js
│           ├── add-tag.js
│           ├── add-task.js
│           ├── analyze.js
│           ├── clear-subtasks.js
│           ├── complexity-report.js
│           ├── copy-tag.js
│           ├── delete-tag.js
│           ├── expand-all.js
│           ├── expand-task.js
│           ├── fix-dependencies.js
│           ├── generate.js
│           ├── get-operation-status.js
│           ├── index.js
│           ├── initialize-project.js
│           ├── list-tags.js
│           ├── models.js
│           ├── move-task.js
│           ├── next-task.js
│           ├── parse-prd.js
│           ├── README-ZOD-V3.md
│           ├── remove-dependency.js
│           ├── remove-subtask.js
│           ├── remove-task.js
│           ├── rename-tag.js
│           ├── research.js
│           ├── response-language.js
│           ├── rules.js
│           ├── scope-down.js
│           ├── scope-up.js
│           ├── set-task-status.js
│           ├── tool-registry.js
│           ├── update-subtask.js
│           ├── update-task.js
│           ├── update.js
│           ├── use-tag.js
│           ├── utils.js
│           └── validate-dependencies.js
├── mcp-test.js
├── output.json
├── package-lock.json
├── package.json
├── packages
│   ├── ai-sdk-provider-grok-cli
│   │   ├── CHANGELOG.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── errors.test.ts
│   │   │   ├── errors.ts
│   │   │   ├── grok-cli-language-model.ts
│   │   │   ├── grok-cli-provider.test.ts
│   │   │   ├── grok-cli-provider.ts
│   │   │   ├── index.ts
│   │   │   ├── json-extractor.test.ts
│   │   │   ├── json-extractor.ts
│   │   │   ├── message-converter.test.ts
│   │   │   ├── message-converter.ts
│   │   │   └── types.ts
│   │   └── tsconfig.json
│   ├── build-config
│   │   ├── CHANGELOG.md
│   │   ├── package.json
│   │   ├── src
│   │   │   └── tsdown.base.ts
│   │   └── tsconfig.json
│   ├── claude-code-plugin
│   │   ├── .claude-plugin
│   │   │   └── plugin.json
│   │   ├── .gitignore
│   │   ├── agents
│   │   │   ├── task-checker.md
│   │   │   ├── task-executor.md
│   │   │   └── task-orchestrator.md
│   │   ├── CHANGELOG.md
│   │   ├── commands
│   │   │   ├── add-dependency.md
│   │   │   ├── add-subtask.md
│   │   │   ├── add-task.md
│   │   │   ├── analyze-complexity.md
│   │   │   ├── analyze-project.md
│   │   │   ├── auto-implement-tasks.md
│   │   │   ├── command-pipeline.md
│   │   │   ├── complexity-report.md
│   │   │   ├── convert-task-to-subtask.md
│   │   │   ├── expand-all-tasks.md
│   │   │   ├── expand-task.md
│   │   │   ├── fix-dependencies.md
│   │   │   ├── generate-tasks.md
│   │   │   ├── help.md
│   │   │   ├── init-project-quick.md
│   │   │   ├── init-project.md
│   │   │   ├── install-taskmaster.md
│   │   │   ├── learn.md
│   │   │   ├── list-tasks-by-status.md
│   │   │   ├── list-tasks-with-subtasks.md
│   │   │   ├── list-tasks.md
│   │   │   ├── next-task.md
│   │   │   ├── parse-prd-with-research.md
│   │   │   ├── parse-prd.md
│   │   │   ├── project-status.md
│   │   │   ├── quick-install-taskmaster.md
│   │   │   ├── remove-all-subtasks.md
│   │   │   ├── remove-dependency.md
│   │   │   ├── remove-subtask.md
│   │   │   ├── remove-subtasks.md
│   │   │   ├── remove-task.md
│   │   │   ├── setup-models.md
│   │   │   ├── show-task.md
│   │   │   ├── smart-workflow.md
│   │   │   ├── sync-readme.md
│   │   │   ├── tm-main.md
│   │   │   ├── to-cancelled.md
│   │   │   ├── to-deferred.md
│   │   │   ├── to-done.md
│   │   │   ├── to-in-progress.md
│   │   │   ├── to-pending.md
│   │   │   ├── to-review.md
│   │   │   ├── update-single-task.md
│   │   │   ├── update-task.md
│   │   │   ├── update-tasks-from-id.md
│   │   │   ├── validate-dependencies.md
│   │   │   └── view-models.md
│   │   ├── mcp.json
│   │   └── package.json
│   ├── tm-bridge
│   │   ├── CHANGELOG.md
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── add-tag-bridge.ts
│   │   │   ├── bridge-types.ts
│   │   │   ├── bridge-utils.ts
│   │   │   ├── expand-bridge.ts
│   │   │   ├── index.ts
│   │   │   ├── tags-bridge.ts
│   │   │   ├── update-bridge.ts
│   │   │   └── use-tag-bridge.ts
│   │   └── tsconfig.json
│   └── tm-core
│       ├── .gitignore
│       ├── CHANGELOG.md
│       ├── docs
│       │   └── listTasks-architecture.md
│       ├── package.json
│       ├── POC-STATUS.md
│       ├── README.md
│       ├── src
│       │   ├── common
│       │   │   ├── constants
│       │   │   │   ├── index.ts
│       │   │   │   ├── paths.ts
│       │   │   │   └── providers.ts
│       │   │   ├── errors
│       │   │   │   ├── index.ts
│       │   │   │   └── task-master-error.ts
│       │   │   ├── interfaces
│       │   │   │   ├── configuration.interface.ts
│       │   │   │   ├── index.ts
│       │   │   │   └── storage.interface.ts
│       │   │   ├── logger
│       │   │   │   ├── factory.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── logger.spec.ts
│       │   │   │   └── logger.ts
│       │   │   ├── mappers
│       │   │   │   ├── TaskMapper.test.ts
│       │   │   │   └── TaskMapper.ts
│       │   │   ├── types
│       │   │   │   ├── database.types.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── legacy.ts
│       │   │   │   └── repository-types.ts
│       │   │   └── utils
│       │   │       ├── git-utils.ts
│       │   │       ├── id-generator.ts
│       │   │       ├── index.ts
│       │   │       ├── path-helpers.ts
│       │   │       ├── path-normalizer.spec.ts
│       │   │       ├── path-normalizer.ts
│       │   │       ├── project-root-finder.spec.ts
│       │   │       ├── project-root-finder.ts
│       │   │       ├── run-id-generator.spec.ts
│       │   │       └── run-id-generator.ts
│       │   ├── index.ts
│       │   ├── modules
│       │   │   ├── ai
│       │   │   │   ├── index.ts
│       │   │   │   ├── interfaces
│       │   │   │   │   └── ai-provider.interface.ts
│       │   │   │   └── providers
│       │   │   │       ├── base-provider.ts
│       │   │   │       └── index.ts
│       │   │   ├── auth
│       │   │   │   ├── auth-domain.spec.ts
│       │   │   │   ├── auth-domain.ts
│       │   │   │   ├── config.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── managers
│       │   │   │   │   ├── auth-manager.spec.ts
│       │   │   │   │   └── auth-manager.ts
│       │   │   │   ├── services
│       │   │   │   │   ├── context-store.ts
│       │   │   │   │   ├── oauth-service.ts
│       │   │   │   │   ├── organization.service.ts
│       │   │   │   │   ├── supabase-session-storage.spec.ts
│       │   │   │   │   └── supabase-session-storage.ts
│       │   │   │   └── types.ts
│       │   │   ├── briefs
│       │   │   │   ├── briefs-domain.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── services
│       │   │   │   │   └── brief-service.ts
│       │   │   │   ├── types.ts
│       │   │   │   └── utils
│       │   │   │       └── url-parser.ts
│       │   │   ├── commands
│       │   │   │   └── index.ts
│       │   │   ├── config
│       │   │   │   ├── config-domain.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── managers
│       │   │   │   │   ├── config-manager.spec.ts
│       │   │   │   │   └── config-manager.ts
│       │   │   │   └── services
│       │   │   │       ├── config-loader.service.spec.ts
│       │   │   │       ├── config-loader.service.ts
│       │   │   │       ├── config-merger.service.spec.ts
│       │   │   │       ├── config-merger.service.ts
│       │   │   │       ├── config-persistence.service.spec.ts
│       │   │   │       ├── config-persistence.service.ts
│       │   │   │       ├── environment-config-provider.service.spec.ts
│       │   │   │       ├── environment-config-provider.service.ts
│       │   │   │       ├── index.ts
│       │   │   │       ├── runtime-state-manager.service.spec.ts
│       │   │   │       └── runtime-state-manager.service.ts
│       │   │   ├── dependencies
│       │   │   │   └── index.ts
│       │   │   ├── execution
│       │   │   │   ├── executors
│       │   │   │   │   ├── base-executor.ts
│       │   │   │   │   ├── claude-executor.ts
│       │   │   │   │   └── executor-factory.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── services
│       │   │   │   │   └── executor-service.ts
│       │   │   │   └── types.ts
│       │   │   ├── git
│       │   │   │   ├── adapters
│       │   │   │   │   ├── git-adapter.test.ts
│       │   │   │   │   └── git-adapter.ts
│       │   │   │   ├── git-domain.ts
│       │   │   │   ├── index.ts
│       │   │   │   └── services
│       │   │   │       ├── branch-name-generator.spec.ts
│       │   │   │       ├── branch-name-generator.ts
│       │   │   │       ├── commit-message-generator.test.ts
│       │   │   │       ├── commit-message-generator.ts
│       │   │   │       ├── scope-detector.test.ts
│       │   │   │       ├── scope-detector.ts
│       │   │   │       ├── template-engine.test.ts
│       │   │   │       └── template-engine.ts
│       │   │   ├── integration
│       │   │   │   ├── clients
│       │   │   │   │   ├── index.ts
│       │   │   │   │   └── supabase-client.ts
│       │   │   │   ├── integration-domain.ts
│       │   │   │   └── services
│       │   │   │       ├── export.service.ts
│       │   │   │       ├── task-expansion.service.ts
│       │   │   │       └── task-retrieval.service.ts
│       │   │   ├── reports
│       │   │   │   ├── index.ts
│       │   │   │   ├── managers
│       │   │   │   │   └── complexity-report-manager.ts
│       │   │   │   └── types.ts
│       │   │   ├── storage
│       │   │   │   ├── adapters
│       │   │   │   │   ├── activity-logger.ts
│       │   │   │   │   ├── api-storage.ts
│       │   │   │   │   └── file-storage
│       │   │   │   │       ├── file-operations.ts
│       │   │   │   │       ├── file-storage.ts
│       │   │   │   │       ├── format-handler.ts
│       │   │   │   │       ├── index.ts
│       │   │   │   │       └── path-resolver.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── services
│       │   │   │   │   └── storage-factory.ts
│       │   │   │   └── utils
│       │   │   │       └── api-client.ts
│       │   │   ├── tasks
│       │   │   │   ├── entities
│       │   │   │   │   └── task.entity.ts
│       │   │   │   ├── parser
│       │   │   │   │   └── index.ts
│       │   │   │   ├── repositories
│       │   │   │   │   ├── supabase
│       │   │   │   │   │   ├── dependency-fetcher.ts
│       │   │   │   │   │   ├── index.ts
│       │   │   │   │   │   └── supabase-repository.ts
│       │   │   │   │   └── task-repository.interface.ts
│       │   │   │   ├── services
│       │   │   │   │   ├── preflight-checker.service.ts
│       │   │   │   │   ├── tag.service.ts
│       │   │   │   │   ├── task-execution-service.ts
│       │   │   │   │   ├── task-loader.service.ts
│       │   │   │   │   └── task-service.ts
│       │   │   │   └── tasks-domain.ts
│       │   │   ├── ui
│       │   │   │   └── index.ts
│       │   │   └── workflow
│       │   │       ├── managers
│       │   │       │   ├── workflow-state-manager.spec.ts
│       │   │       │   └── workflow-state-manager.ts
│       │   │       ├── orchestrators
│       │   │       │   ├── workflow-orchestrator.test.ts
│       │   │       │   └── workflow-orchestrator.ts
│       │   │       ├── services
│       │   │       │   ├── test-result-validator.test.ts
│       │   │       │   ├── test-result-validator.ts
│       │   │       │   ├── test-result-validator.types.ts
│       │   │       │   ├── workflow-activity-logger.ts
│       │   │       │   └── workflow.service.ts
│       │   │       ├── types.ts
│       │   │       └── workflow-domain.ts
│       │   ├── subpath-exports.test.ts
│       │   ├── tm-core.ts
│       │   └── utils
│       │       └── time.utils.ts
│       ├── tests
│       │   ├── auth
│       │   │   └── auth-refresh.test.ts
│       │   ├── integration
│       │   │   ├── auth-token-refresh.test.ts
│       │   │   ├── list-tasks.test.ts
│       │   │   └── storage
│       │   │       └── activity-logger.test.ts
│       │   ├── mocks
│       │   │   └── mock-provider.ts
│       │   ├── setup.ts
│       │   └── unit
│       │       ├── base-provider.test.ts
│       │       ├── executor.test.ts
│       │       └── smoke.test.ts
│       ├── tsconfig.json
│       └── vitest.config.ts
├── README-task-master.md
├── README.md
├── scripts
│   ├── create-worktree.sh
│   ├── dev.js
│   ├── init.js
│   ├── list-worktrees.sh
│   ├── modules
│   │   ├── ai-services-unified.js
│   │   ├── bridge-utils.js
│   │   ├── commands.js
│   │   ├── config-manager.js
│   │   ├── dependency-manager.js
│   │   ├── index.js
│   │   ├── prompt-manager.js
│   │   ├── supported-models.json
│   │   ├── sync-readme.js
│   │   ├── task-manager
│   │   │   ├── add-subtask.js
│   │   │   ├── add-task.js
│   │   │   ├── analyze-task-complexity.js
│   │   │   ├── clear-subtasks.js
│   │   │   ├── expand-all-tasks.js
│   │   │   ├── expand-task.js
│   │   │   ├── find-next-task.js
│   │   │   ├── generate-task-files.js
│   │   │   ├── is-task-dependent.js
│   │   │   ├── list-tasks.js
│   │   │   ├── migrate.js
│   │   │   ├── models.js
│   │   │   ├── move-task.js
│   │   │   ├── parse-prd
│   │   │   │   ├── index.js
│   │   │   │   ├── parse-prd-config.js
│   │   │   │   ├── parse-prd-helpers.js
│   │   │   │   ├── parse-prd-non-streaming.js
│   │   │   │   ├── parse-prd-streaming.js
│   │   │   │   └── parse-prd.js
│   │   │   ├── remove-subtask.js
│   │   │   ├── remove-task.js
│   │   │   ├── research.js
│   │   │   ├── response-language.js
│   │   │   ├── scope-adjustment.js
│   │   │   ├── set-task-status.js
│   │   │   ├── tag-management.js
│   │   │   ├── task-exists.js
│   │   │   ├── update-single-task-status.js
│   │   │   ├── update-subtask-by-id.js
│   │   │   ├── update-task-by-id.js
│   │   │   └── update-tasks.js
│   │   ├── task-manager.js
│   │   ├── ui.js
│   │   ├── update-config-tokens.js
│   │   ├── utils
│   │   │   ├── contextGatherer.js
│   │   │   ├── fuzzyTaskSearch.js
│   │   │   └── git-utils.js
│   │   └── utils.js
│   ├── task-complexity-report.json
│   ├── test-claude-errors.js
│   └── test-claude.js
├── sonar-project.properties
├── src
│   ├── ai-providers
│   │   ├── anthropic.js
│   │   ├── azure.js
│   │   ├── base-provider.js
│   │   ├── bedrock.js
│   │   ├── claude-code.js
│   │   ├── codex-cli.js
│   │   ├── gemini-cli.js
│   │   ├── google-vertex.js
│   │   ├── google.js
│   │   ├── grok-cli.js
│   │   ├── groq.js
│   │   ├── index.js
│   │   ├── lmstudio.js
│   │   ├── ollama.js
│   │   ├── openai-compatible.js
│   │   ├── openai.js
│   │   ├── openrouter.js
│   │   ├── perplexity.js
│   │   ├── xai.js
│   │   ├── zai-coding.js
│   │   └── zai.js
│   ├── constants
│   │   ├── commands.js
│   │   ├── paths.js
│   │   ├── profiles.js
│   │   ├── rules-actions.js
│   │   ├── task-priority.js
│   │   └── task-status.js
│   ├── profiles
│   │   ├── amp.js
│   │   ├── base-profile.js
│   │   ├── claude.js
│   │   ├── cline.js
│   │   ├── codex.js
│   │   ├── cursor.js
│   │   ├── gemini.js
│   │   ├── index.js
│   │   ├── kilo.js
│   │   ├── kiro.js
│   │   ├── opencode.js
│   │   ├── roo.js
│   │   ├── trae.js
│   │   ├── vscode.js
│   │   ├── windsurf.js
│   │   └── zed.js
│   ├── progress
│   │   ├── base-progress-tracker.js
│   │   ├── cli-progress-factory.js
│   │   ├── parse-prd-tracker.js
│   │   ├── progress-tracker-builder.js
│   │   └── tracker-ui.js
│   ├── prompts
│   │   ├── add-task.json
│   │   ├── analyze-complexity.json
│   │   ├── expand-task.json
│   │   ├── parse-prd.json
│   │   ├── README.md
│   │   ├── research.json
│   │   ├── schemas
│   │   │   ├── parameter.schema.json
│   │   │   ├── prompt-template.schema.json
│   │   │   ├── README.md
│   │   │   └── variant.schema.json
│   │   ├── update-subtask.json
│   │   ├── update-task.json
│   │   └── update-tasks.json
│   ├── provider-registry
│   │   └── index.js
│   ├── schemas
│   │   ├── add-task.js
│   │   ├── analyze-complexity.js
│   │   ├── base-schemas.js
│   │   ├── expand-task.js
│   │   ├── parse-prd.js
│   │   ├── registry.js
│   │   ├── update-subtask.js
│   │   ├── update-task.js
│   │   └── update-tasks.js
│   ├── task-master.js
│   ├── ui
│   │   ├── confirm.js
│   │   ├── indicators.js
│   │   └── parse-prd.js
│   └── utils
│       ├── asset-resolver.js
│       ├── create-mcp-config.js
│       ├── format.js
│       ├── getVersion.js
│       ├── logger-utils.js
│       ├── manage-gitignore.js
│       ├── path-utils.js
│       ├── profiles.js
│       ├── rule-transformer.js
│       ├── stream-parser.js
│       └── timeout-manager.js
├── test-clean-tags.js
├── test-config-manager.js
├── test-prd.txt
├── test-tag-functions.js
├── test-version-check-full.js
├── test-version-check.js
├── tests
│   ├── e2e
│   │   ├── e2e_helpers.sh
│   │   ├── parse_llm_output.cjs
│   │   ├── run_e2e.sh
│   │   ├── run_fallback_verification.sh
│   │   └── test_llm_analysis.sh
│   ├── fixtures
│   │   ├── .taskmasterconfig
│   │   ├── sample-claude-response.js
│   │   ├── sample-prd.txt
│   │   └── sample-tasks.js
│   ├── helpers
│   │   └── tool-counts.js
│   ├── integration
│   │   ├── claude-code-error-handling.test.js
│   │   ├── claude-code-optional.test.js
│   │   ├── cli
│   │   │   ├── commands.test.js
│   │   │   ├── complex-cross-tag-scenarios.test.js
│   │   │   └── move-cross-tag.test.js
│   │   ├── manage-gitignore.test.js
│   │   ├── mcp-server
│   │   │   └── direct-functions.test.js
│   │   ├── move-task-cross-tag.integration.test.js
│   │   ├── move-task-simple.integration.test.js
│   │   ├── profiles
│   │   │   ├── amp-init-functionality.test.js
│   │   │   ├── claude-init-functionality.test.js
│   │   │   ├── cline-init-functionality.test.js
│   │   │   ├── codex-init-functionality.test.js
│   │   │   ├── cursor-init-functionality.test.js
│   │   │   ├── gemini-init-functionality.test.js
│   │   │   ├── opencode-init-functionality.test.js
│   │   │   ├── roo-files-inclusion.test.js
│   │   │   ├── roo-init-functionality.test.js
│   │   │   ├── rules-files-inclusion.test.js
│   │   │   ├── trae-init-functionality.test.js
│   │   │   ├── vscode-init-functionality.test.js
│   │   │   └── windsurf-init-functionality.test.js
│   │   └── providers
│   │       └── temperature-support.test.js
│   ├── manual
│   │   ├── progress
│   │   │   ├── parse-prd-analysis.js
│   │   │   ├── test-parse-prd.js
│   │   │   └── TESTING_GUIDE.md
│   │   └── prompts
│   │       ├── prompt-test.js
│   │       └── README.md
│   ├── README.md
│   ├── setup.js
│   └── unit
│       ├── ai-providers
│       │   ├── base-provider.test.js
│       │   ├── claude-code.test.js
│       │   ├── codex-cli.test.js
│       │   ├── gemini-cli.test.js
│       │   ├── lmstudio.test.js
│       │   ├── mcp-components.test.js
│       │   ├── openai-compatible.test.js
│       │   ├── openai.test.js
│       │   ├── provider-registry.test.js
│       │   ├── zai-coding.test.js
│       │   ├── zai-provider.test.js
│       │   ├── zai-schema-introspection.test.js
│       │   └── zai.test.js
│       ├── ai-services-unified.test.js
│       ├── commands.test.js
│       ├── config-manager.test.js
│       ├── config-manager.test.mjs
│       ├── dependency-manager.test.js
│       ├── init.test.js
│       ├── initialize-project.test.js
│       ├── kebab-case-validation.test.js
│       ├── manage-gitignore.test.js
│       ├── mcp
│       │   └── tools
│       │       ├── __mocks__
│       │       │   └── move-task.js
│       │       ├── add-task.test.js
│       │       ├── analyze-complexity.test.js
│       │       ├── expand-all.test.js
│       │       ├── get-tasks.test.js
│       │       ├── initialize-project.test.js
│       │       ├── move-task-cross-tag-options.test.js
│       │       ├── move-task-cross-tag.test.js
│       │       ├── remove-task.test.js
│       │       └── tool-registration.test.js
│       ├── mcp-providers
│       │   ├── mcp-components.test.js
│       │   └── mcp-provider.test.js
│       ├── parse-prd.test.js
│       ├── profiles
│       │   ├── amp-integration.test.js
│       │   ├── claude-integration.test.js
│       │   ├── cline-integration.test.js
│       │   ├── codex-integration.test.js
│       │   ├── cursor-integration.test.js
│       │   ├── gemini-integration.test.js
│       │   ├── kilo-integration.test.js
│       │   ├── kiro-integration.test.js
│       │   ├── mcp-config-validation.test.js
│       │   ├── opencode-integration.test.js
│       │   ├── profile-safety-check.test.js
│       │   ├── roo-integration.test.js
│       │   ├── rule-transformer-cline.test.js
│       │   ├── rule-transformer-cursor.test.js
│       │   ├── rule-transformer-gemini.test.js
│       │   ├── rule-transformer-kilo.test.js
│       │   ├── rule-transformer-kiro.test.js
│       │   ├── rule-transformer-opencode.test.js
│       │   ├── rule-transformer-roo.test.js
│       │   ├── rule-transformer-trae.test.js
│       │   ├── rule-transformer-vscode.test.js
│       │   ├── rule-transformer-windsurf.test.js
│       │   ├── rule-transformer-zed.test.js
│       │   ├── rule-transformer.test.js
│       │   ├── selective-profile-removal.test.js
│       │   ├── subdirectory-support.test.js
│       │   ├── trae-integration.test.js
│       │   ├── vscode-integration.test.js
│       │   ├── windsurf-integration.test.js
│       │   └── zed-integration.test.js
│       ├── progress
│       │   └── base-progress-tracker.test.js
│       ├── prompt-manager.test.js
│       ├── prompts
│       │   ├── expand-task-prompt.test.js
│       │   └── prompt-migration.test.js
│       ├── scripts
│       │   └── modules
│       │       ├── commands
│       │       │   ├── move-cross-tag.test.js
│       │       │   └── README.md
│       │       ├── dependency-manager
│       │       │   ├── circular-dependencies.test.js
│       │       │   ├── cross-tag-dependencies.test.js
│       │       │   └── fix-dependencies-command.test.js
│       │       ├── task-manager
│       │       │   ├── add-subtask.test.js
│       │       │   ├── add-task.test.js
│       │       │   ├── analyze-task-complexity.test.js
│       │       │   ├── clear-subtasks.test.js
│       │       │   ├── complexity-report-tag-isolation.test.js
│       │       │   ├── expand-all-tasks.test.js
│       │       │   ├── expand-task.test.js
│       │       │   ├── find-next-task.test.js
│       │       │   ├── generate-task-files.test.js
│       │       │   ├── list-tasks.test.js
│       │       │   ├── models-baseurl.test.js
│       │       │   ├── move-task-cross-tag.test.js
│       │       │   ├── move-task.test.js
│       │       │   ├── parse-prd-schema.test.js
│       │       │   ├── parse-prd.test.js
│       │       │   ├── remove-subtask.test.js
│       │       │   ├── remove-task.test.js
│       │       │   ├── research.test.js
│       │       │   ├── scope-adjustment.test.js
│       │       │   ├── set-task-status.test.js
│       │       │   ├── setup.js
│       │       │   ├── update-single-task-status.test.js
│       │       │   ├── update-subtask-by-id.test.js
│       │       │   ├── update-task-by-id.test.js
│       │       │   └── update-tasks.test.js
│       │       ├── ui
│       │       │   └── cross-tag-error-display.test.js
│       │       └── utils-tag-aware-paths.test.js
│       ├── task-finder.test.js
│       ├── task-manager
│       │   ├── clear-subtasks.test.js
│       │   ├── move-task.test.js
│       │   ├── tag-boundary.test.js
│       │   └── tag-management.test.js
│       ├── task-master.test.js
│       ├── ui
│       │   └── indicators.test.js
│       ├── ui.test.js
│       ├── utils-strip-ansi.test.js
│       └── utils.test.js
├── tsconfig.json
├── tsdown.config.ts
├── turbo.json
└── update-task-migration-plan.md
```

# Files

--------------------------------------------------------------------------------
/CLAUDE.md:
--------------------------------------------------------------------------------

```markdown
# Claude Code Instructions

## Task Master AI Instructions

**Import Task Master's development workflow commands and guidelines, treat as if import is in the main CLAUDE.md file.**
@./.taskmaster/CLAUDE.md

## Test Guidelines

### Test File Placement

- **Package & tests**: Place in `packages/<package-name>/src/<module>/<file>.spec.ts` or `apps/<app-name>/src/<module>/<file.spec.ts>` alongside source
- **Package integration tests**: Place in `packages/<package-name>/tests/integration/<module>/<file>.test.ts` or `apps/<app-name>/tests/integration/<module>/<file>.test.ts` alongside source
- **Isolated unit tests**: Use `tests/unit/packages/<package-name>/` only when parallel placement isn't possible
- **Test extension**: Always use `.ts` for TypeScript tests, never `.js`

### Synchronous Tests

- **NEVER use async/await in test functions** unless testing actual asynchronous operations
- Use synchronous top-level imports instead of dynamic `await import()`
- Test bodies should be synchronous whenever possible
- Example:

  ```typescript
  // ✅ CORRECT - Synchronous imports with .ts extension
  import { MyClass } from '../src/my-class.js';

  it('should verify behavior', () => {
    expect(new MyClass().property).toBe(value);
  });

  // ❌ INCORRECT - Async imports
  it('should verify behavior', async () => {
    const { MyClass } = await import('../src/my-class.js');
    expect(new MyClass().property).toBe(value);
  });
  ```

### When to Write Tests

**ALWAYS write tests for:**

- **Bug fixes**: Add a regression test that would have caught the bug
- **Business logic**: Complex calculations, validations, transformations
- **Edge cases**: Boundary conditions, error handling, null/undefined cases
- **Public APIs**: Methods other code depends on
- **Integration points**: Database, file system, external APIs

**SKIP tests for:**

- Simple getters/setters: `getX() { return this.x; }`
- Trivial pass-through functions with no logic
- Pure configuration objects
- Code that just delegates to another tested function

**Examples:**

```javascript
// ✅ WRITE A TEST - Bug fix with regression prevention
it('should use correct baseURL from defaultBaseURL config', () => {
  const provider = new ZAIProvider();
  expect(provider.defaultBaseURL).toBe('https://api.z.ai/api/paas/v4/');
});

// ✅ WRITE A TEST - Business logic with edge cases
it('should parse subtask IDs correctly', () => {
  expect(parseTaskId('1.2.3')).toEqual({ taskId: 1, subtaskId: 2, subSubtaskId: 3 });
  expect(parseTaskId('invalid')).toBeNull();
});

// ❌ SKIP TEST - Trivial getter
class Task {
  get id() { return this._id; } // No test needed
}

// ❌ SKIP TEST - Pure delegation
function getTasks() {
  return taskManager.getTasks(); // Already tested in taskManager
}
```

**Bug Fix Workflow:**

1. Encounter a bug
2. Write a failing test that reproduces it
3. Fix the bug
4. Verify test now passes
5. Commit both fix and test together

## Architecture Guidelines

### Business Logic Separation

**CRITICAL RULE**: ALL business logic must live in `@tm/core`, NOT in presentation layers.

- **`@tm/core`** (packages/tm-core/):
  - Contains ALL business logic, domain models, services, and utilities
  - Provides clean facade APIs through domain objects (tasks, auth, workflow, git, config)
  - Houses all complexity - parsing, validation, transformations, calculations, etc.
  - Example: Task ID parsing, subtask extraction, status validation, dependency resolution

- **`@tm/cli`** (apps/cli/):
  - Thin presentation layer ONLY
  - Calls tm-core methods and displays results
  - Handles CLI-specific concerns: argument parsing, output formatting, user prompts
  - NO business logic, NO data transformations, NO calculations

- **`@tm/mcp`** (apps/mcp/):
  - Thin presentation layer ONLY
  - Calls tm-core methods and returns MCP-formatted responses
  - Handles MCP-specific concerns: tool schemas, parameter validation, response formatting
  - NO business logic, NO data transformations, NO calculations

- **`apps/extension`** (future):
  - Thin presentation layer ONLY
  - Calls tm-core methods and displays in VS Code UI
  - NO business logic

**Examples of violations to avoid:**

- ❌ Creating helper functions in CLI/MCP to parse task IDs → Move to tm-core
- ❌ Data transformation logic in CLI/MCP → Move to tm-core
- ❌ Validation logic in CLI/MCP → Move to tm-core
- ❌ Duplicating logic across CLI and MCP → Implement once in tm-core

**Correct approach:**

- ✅ Add method to TasksDomain: `tasks.get(taskId)` (automatically handles task and subtask IDs)
- ✅ CLI calls: `await tmCore.tasks.get(taskId)` (supports "1", "1.2", "HAM-123", "HAM-123.2")
- ✅ MCP calls: `await tmCore.tasks.get(taskId)` (same intelligent ID parsing)
- ✅ Single source of truth in tm-core

## Code Quality & Reusability Guidelines

Apply standard software engineering principles:

- **DRY (Don't Repeat Yourself)**: Extract patterns that appear 2+ times into reusable components or utilities
- **YAGNI (You Aren't Gonna Need It)**: Don't over-engineer. Create abstractions when duplication appears, not before
- **Maintainable**: Single source of truth. Change once, update everywhere
- **Readable**: Clear naming, proper structure, export from index files
- **Flexible**: Accept configuration options with sensible defaults

## Documentation Guidelines

- **Documentation location**: Write docs in `apps/docs/` (Mintlify site source), not `docs/`
- **Documentation URL**: Reference docs at <https://docs.task-master.dev>, not local file paths

## Changeset Guidelines

- **Add a changeset for code changes** - Run `npx changeset` after making code changes (not needed for docs-only PRs)
- When creating changesets, remember that it's user-facing, meaning we don't have to get into the specifics of the code, but rather mention what the end-user is getting or fixing from this changeset

```

--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------

```markdown
# Contributing to Task Master

Thank you for your interest in contributing to Task Master! We're excited to work with you and appreciate your help in making this project better. 🚀

## 🤝 Our Collaborative Approach

We're a **PR-friendly team** that values collaboration:

- ✅ **We review PRs quickly** - Usually within hours, not days
- ✅ **We're super reactive** - Expect fast feedback and engagement
- ✅ **We sometimes take over PRs** - If your contribution is valuable but needs cleanup, we might jump in to help finish it
- ✅ **We're open to all contributions** - From bug fixes to major features

**We don't mind AI-generated code**, but we do expect you to:

- ✅ **Review and understand** what the AI generated
- ✅ **Test the code thoroughly** before submitting
- ✅ **Ensure it's well-written** and follows our patterns
- ❌ **Don't submit "AI slop"** - untested, unreviewed AI output

> **Why this matters**: We spend significant time reviewing PRs. Help us help you by submitting quality contributions that save everyone time!

## 🚀 Quick Start for Contributors

### 1. Fork and Clone

```bash
git clone https://github.com/YOUR_USERNAME/claude-task-master.git
cd claude-task-master
npm install
```

### 2. Create a Feature Branch

**Important**: Always target the `next` branch, not `main`:

```bash
git checkout next
git pull origin next
git checkout -b feature/your-feature-name
```

### 3. Make Your Changes

Follow our development guidelines below.

### 4. Test Everything Yourself

**Before submitting your PR**, ensure:

```bash
# Run all tests
npm test

# Check formatting
npm run format-check

# Fix formatting if needed
npm run format
```

### 5. Create a Changeset

**Required for most changes**:

```bash
npm run changeset
```

See the [Changeset Guidelines](#changeset-guidelines) below for details.

### 6. Submit Your PR

- Target the `next` branch
- Write a clear description
- Reference any related issues

## 📋 Development Guidelines

### Branch Strategy

- **`main`**: Production-ready code
- **`next`**: Development branch - **target this for PRs**
- **Feature branches**: `feature/description` or `fix/description`

### Code Quality Standards

1. **Write tests** for new functionality
2. **Follow existing patterns** in the codebase
3. **Add JSDoc comments** for functions
4. **Keep functions focused** and single-purpose

### Testing Requirements

Your PR **must pass all CI checks**:

- ✅ **Unit tests**: `npm test`
- ✅ **Format check**: `npm run format-check`

**Test your changes locally first** - this saves review time and shows you care about quality.

## 📦 Changeset Guidelines

We use [Changesets](https://github.com/changesets/changesets) to manage versioning and generate changelogs.

### When to Create a Changeset

**Always create a changeset for**:

- ✅ New features
- ✅ Bug fixes
- ✅ Breaking changes
- ✅ Performance improvements
- ✅ User-facing documentation updates
- ✅ Dependency updates that affect functionality

**Skip changesets for**:

- ❌ Internal documentation only
- ❌ Test-only changes
- ❌ Code formatting/linting
- ❌ Development tooling that doesn't affect users

### How to Create a Changeset

1. **After making your changes**:

   ```bash
   npm run changeset
   ```

2. **Choose the bump type**:

   - **Major**: Breaking changes
   - **Minor**: New features
   - **Patch**: Bug fixes, docs, performance improvements

3. **Write a clear summary**:

   ```
   Add support for custom AI models in MCP configuration
   ```

4. **Commit the changeset file** with your changes:
   ```bash
   git add .changeset/*.md
   git commit -m "feat: add custom AI model support"
   ```

### Changeset vs Git Commit Messages

- **Changeset summary**: User-facing, goes in CHANGELOG.md
- **Git commit**: Developer-facing, explains the technical change

Example:

```bash
# Changeset summary (user-facing)
"Add support for custom Ollama models"

# Git commit message (developer-facing)
"feat(models): implement custom Ollama model validation

- Add model validation for custom Ollama endpoints
- Update configuration schema to support custom models
- Add tests for new validation logic"
```

## 🔧 Development Setup

### Prerequisites

- Node.js 18+
- npm or yarn

### Environment Setup

1. **Copy environment template**:

   ```bash
   cp .env.example .env
   ```

2. **Add your API keys** (for testing AI features):
   ```bash
   ANTHROPIC_API_KEY=your_key_here
   OPENAI_API_KEY=your_key_here
   # Add others as needed
   ```

### Running Tests

```bash
# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run with coverage
npm run test:coverage

# Run E2E tests
npm run test:e2e
```

### Code Formatting

We use Prettier for consistent formatting:

```bash
# Check formatting
npm run format-check

# Fix formatting
npm run format
```

## 📝 PR Guidelines

### Before Submitting

- [ ] **Target the `next` branch**
- [ ] **Test everything locally**
- [ ] **Run the full test suite**
- [ ] **Check code formatting**
- [ ] **Create a changeset** (if needed)
- [ ] **Re-read your changes** - ensure they're clean and well-thought-out

### PR Description Template

```markdown
## Description

Brief description of what this PR does.

## Type of Change

- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update

## Testing

- [ ] I have tested this locally
- [ ] All existing tests pass
- [ ] I have added tests for new functionality

## Changeset

- [ ] I have created a changeset (or this change doesn't need one)

## Additional Notes

Any additional context or notes for reviewers.
```

### What We Look For

✅ **Good PRs**:

- Clear, focused changes
- Comprehensive testing
- Good commit messages
- Proper changeset (when needed)
- Self-reviewed code

❌ **Avoid**:

- Massive PRs that change everything
- Untested code
- Formatting issues
- Missing changesets for user-facing changes
- AI-generated code that wasn't reviewed

## 🏗️ Project Structure

```
claude-task-master/
├── bin/                    # CLI executables
├── mcp-server/            # MCP server implementation
├── scripts/               # Core task management logic
├── src/                   # Shared utilities and providers and well refactored code (we are slowly moving everything here)
├── tests/                 # Test files
├── docs/                  # Documentation
└── .cursor/               # Cursor IDE rules and configuration
└── assets/							   # Assets like rules and configuration for all IDEs
```

### Key Areas for Contribution

- **CLI Commands**: `scripts/modules/commands.js`
- **MCP Tools**: `mcp-server/src/tools/`
- **Core Logic**: `scripts/modules/task-manager/`
- **AI Providers**: `src/ai-providers/`
- **Tests**: `tests/`

## 🐛 Reporting Issues

### Bug Reports

Include:

- Task Master version
- Node.js version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Error messages/logs

### Feature Requests

Include:

- Clear description of the feature
- Use case/motivation
- Proposed implementation (if you have ideas)
- Willingness to contribute

## 💬 Getting Help

- **Discord**: [Join our community](https://discord.gg/taskmasterai)
- **Issues**: [GitHub Issues](https://github.com/eyaltoledano/claude-task-master/issues)
- **Discussions**: [GitHub Discussions](https://github.com/eyaltoledano/claude-task-master/discussions)

## 📄 License

By contributing, you agree that your contributions will be licensed under the same license as the project (MIT with Commons Clause).

---

**Thank you for contributing to Task Master!** 🎉

Your contributions help make AI-driven development more accessible and efficient for everyone.

```

--------------------------------------------------------------------------------
/.taskmaster/CLAUDE.md:
--------------------------------------------------------------------------------

```markdown
# Task Master AI - Agent Integration Guide

## Essential Commands

### Core Workflow Commands

```bash
# Project Setup
task-master init                                    # Initialize Task Master in current project
task-master parse-prd .taskmaster/docs/prd.txt      # Generate tasks from PRD document
task-master models --setup                        # Configure AI models interactively

# Daily Development Workflow
task-master list                                   # Show all tasks with status
task-master next                                   # Get next available task to work on
task-master show <id>                             # View detailed task information (e.g., task-master show 1.2)
task-master set-status --id=<id> --status=done    # Mark task complete

# Task Management
task-master add-task --prompt="description" --research        # Add new task with AI assistance
task-master expand --id=<id> --research --force              # Break task into subtasks
task-master update-task --id=<id> --prompt="changes"         # Update specific task
task-master update --from=<id> --prompt="changes"            # Update multiple tasks from ID onwards
task-master update-subtask --id=<id> --prompt="notes"        # Add implementation notes to subtask

# Analysis & Planning
task-master analyze-complexity --research          # Analyze task complexity
task-master complexity-report                      # View complexity analysis
task-master expand --all --research               # Expand all eligible tasks

# Dependencies & Organization
task-master add-dependency --id=<id> --depends-on=<id>       # Add task dependency
task-master move --from=<id> --to=<id>                       # Reorganize task hierarchy
task-master validate-dependencies                            # Check for dependency issues
task-master generate                                         # Update task markdown files (usually auto-called)
```

## Key Files & Project Structure

### Core Files

- `.taskmaster/tasks/tasks.json` - Main task data file (auto-managed)
- `.taskmaster/config.json` - AI model configuration (use `task-master models` to modify)
- `.taskmaster/docs/prd.txt` - Product Requirements Document for parsing
- `.taskmaster/tasks/*.txt` - Individual task files (auto-generated from tasks.json)
- `.env` - API keys for CLI usage

### Claude Code Integration Files

- `CLAUDE.md` - Auto-loaded context for Claude Code (this file)
- `.claude/settings.json` - Claude Code tool allowlist and preferences
- `.claude/commands/` - Custom slash commands for repeated workflows
- `.mcp.json` - MCP server configuration (project-specific)

### Directory Structure

```
project/
├── .taskmaster/
│   ├── tasks/              # Task files directory
│   │   ├── tasks.json      # Main task database
│   │   ├── task-1.md      # Individual task files
│   │   └── task-2.md
│   ├── docs/              # Documentation directory
│   │   ├── prd.txt        # Product requirements
│   ├── reports/           # Analysis reports directory
│   │   └── task-complexity-report.json
│   ├── templates/         # Template files
│   │   └── example_prd.txt  # Example PRD template
│   └── config.json        # AI models & settings
├── .claude/
│   ├── settings.json      # Claude Code configuration
│   └── commands/         # Custom slash commands
├── .env                  # API keys
├── .mcp.json            # MCP configuration
└── CLAUDE.md            # This file - auto-loaded by Claude Code
```

## MCP Integration

Task Master provides an MCP server that Claude Code can connect to. Configure in `.mcp.json`:

```json
{
  "mcpServers": {
    "task-master-ai": {
      "command": "npx",
      "args": ["-y", "task-master-ai"],
      "env": {
        "ANTHROPIC_API_KEY": "your_key_here",
        "PERPLEXITY_API_KEY": "your_key_here",
        "OPENAI_API_KEY": "OPENAI_API_KEY_HERE",
        "GOOGLE_API_KEY": "GOOGLE_API_KEY_HERE",
        "XAI_API_KEY": "XAI_API_KEY_HERE",
        "OPENROUTER_API_KEY": "OPENROUTER_API_KEY_HERE",
        "MISTRAL_API_KEY": "MISTRAL_API_KEY_HERE",
        "AZURE_OPENAI_API_KEY": "AZURE_OPENAI_API_KEY_HERE",
        "OLLAMA_API_KEY": "OLLAMA_API_KEY_HERE"
      }
    }
  }
}
```

### Essential MCP Tools

```javascript
help; // = shows available taskmaster commands
// Project setup
initialize_project; // = task-master init
parse_prd; // = task-master parse-prd

// Daily workflow
get_tasks; // = task-master list
next_task; // = task-master next
get_task; // = task-master show <id>
set_task_status; // = task-master set-status

// Task management
add_task; // = task-master add-task
expand_task; // = task-master expand
update_task; // = task-master update-task
update_subtask; // = task-master update-subtask
update; // = task-master update

// Analysis
analyze_project_complexity; // = task-master analyze-complexity
complexity_report; // = task-master complexity-report
```

## Claude Code Workflow Integration

### Standard Development Workflow

#### 1. Project Initialization

```bash
# Initialize Task Master
task-master init

# Create or obtain PRD, then parse it
task-master parse-prd .taskmaster/docs/prd.txt

# Analyze complexity and expand tasks
task-master analyze-complexity --research
task-master expand --all --research
```

If tasks already exist, another PRD can be parsed (with new information only!) using parse-prd with --append flag. This will add the generated tasks to the existing list of tasks..

#### 2. Daily Development Loop

```bash
# Start each session
task-master next                           # Find next available task
task-master show <id>                     # Review task details

# During implementation, check in code context into the tasks and subtasks
task-master update-subtask --id=<id> --prompt="implementation notes..."

# Complete tasks
task-master set-status --id=<id> --status=done
```

#### 3. Multi-Claude Workflows

For complex projects, use multiple Claude Code sessions:

```bash
# Terminal 1: Main implementation
cd project && claude

# Terminal 2: Testing and validation
cd project-test-worktree && claude

# Terminal 3: Documentation updates
cd project-docs-worktree && claude
```

### Custom Slash Commands

Create `.claude/commands/taskmaster-next.md`:

```markdown
Find the next available Task Master task and show its details.

Steps:

1. Run `task-master next` to get the next task
2. If a task is available, run `task-master show <id>` for full details
3. Provide a summary of what needs to be implemented
4. Suggest the first implementation step
```

Create `.claude/commands/taskmaster-complete.md`:

```markdown
Complete a Task Master task: $ARGUMENTS

Steps:

1. Review the current task with `task-master show $ARGUMENTS`
2. Verify all implementation is complete
3. Run any tests related to this task
4. Mark as complete: `task-master set-status --id=$ARGUMENTS --status=done`
5. Show the next available task with `task-master next`
```

## Tool Allowlist Recommendations

Add to `.claude/settings.json`:

```json
{
  "allowedTools": [
    "Edit",
    "Bash(task-master *)",
    "Bash(git commit:*)",
    "Bash(git add:*)",
    "Bash(npm run *)",
    "mcp__task_master_ai__*"
  ]
}
```

## Configuration & Setup

### API Keys Required

At least **one** of these API keys must be configured:

- `ANTHROPIC_API_KEY` (Claude models) - **Recommended**
- `PERPLEXITY_API_KEY` (Research features) - **Highly recommended**
- `OPENAI_API_KEY` (GPT models)
- `GOOGLE_API_KEY` (Gemini models)
- `MISTRAL_API_KEY` (Mistral models)
- `OPENROUTER_API_KEY` (Multiple models)
- `XAI_API_KEY` (Grok models)

An API key is required for any provider used across any of the 3 roles defined in the `models` command.

### Model Configuration

```bash
# Interactive setup (recommended)
task-master models --setup

# Set specific models
task-master models --set-main claude-3-5-sonnet-20241022
task-master models --set-research perplexity-llama-3.1-sonar-large-128k-online
task-master models --set-fallback gpt-4o-mini
```

## Task Structure & IDs

### Task ID Format

- Main tasks: `1`, `2`, `3`, etc.
- Subtasks: `1.1`, `1.2`, `2.1`, etc.
- Sub-subtasks: `1.1.1`, `1.1.2`, etc.

### Task Status Values

- `pending` - Ready to work on
- `in-progress` - Currently being worked on
- `done` - Completed and verified
- `deferred` - Postponed
- `cancelled` - No longer needed
- `blocked` - Waiting on external factors

### Task Fields

```json
{
  "id": "1.2",
  "title": "Implement user authentication",
  "description": "Set up JWT-based auth system",
  "status": "pending",
  "priority": "high",
  "dependencies": ["1.1"],
  "details": "Use bcrypt for hashing, JWT for tokens...",
  "testStrategy": "Unit tests for auth functions, integration tests for login flow",
  "subtasks": []
}
```

## Claude Code Best Practices with Task Master

### Context Management

- Use `/clear` between different tasks to maintain focus
- This CLAUDE.md file is automatically loaded for context
- Use `task-master show <id>` to pull specific task context when needed

### Iterative Implementation

1. `task-master show <subtask-id>` - Understand requirements
2. Explore codebase and plan implementation
3. `task-master update-subtask --id=<id> --prompt="detailed plan"` - Log plan
4. `task-master set-status --id=<id> --status=in-progress` - Start work
5. Implement code following logged plan
6. `task-master update-subtask --id=<id> --prompt="what worked/didn't work"` - Log progress
7. `task-master set-status --id=<id> --status=done` - Complete task

### Complex Workflows with Checklists

For large migrations or multi-step processes:

1. Create a markdown PRD file describing the new changes: `touch task-migration-checklist.md` (prds can be .txt or .md)
2. Use Taskmaster to parse the new prd with `task-master parse-prd --append` (also available in MCP)
3. Use Taskmaster to expand the newly generated tasks into subtasks. Consdier using `analyze-complexity` with the correct --to and --from IDs (the new ids) to identify the ideal subtask amounts for each task. Then expand them.
4. Work through items systematically, checking them off as completed
5. Use `task-master update-subtask` to log progress on each task/subtask and/or updating/researching them before/during implementation if getting stuck

### Git Integration

Task Master works well with `gh` CLI:

```bash
# Create PR for completed task
gh pr create --title "Complete task 1.2: User authentication" --body "Implements JWT auth system as specified in task 1.2"

# Reference task in commits
git commit -m "feat: implement JWT auth (task 1.2)"
```

### Parallel Development with Git Worktrees

```bash
# Create worktrees for parallel task development
git worktree add ../project-auth feature/auth-system
git worktree add ../project-api feature/api-refactor

# Run Claude Code in each worktree
cd ../project-auth && claude    # Terminal 1: Auth work
cd ../project-api && claude     # Terminal 2: API work
```

## Troubleshooting

### AI Commands Failing

```bash
# Check API keys are configured
cat .env                           # For CLI usage

# Verify model configuration
task-master models

# Test with different model
task-master models --set-fallback gpt-4o-mini
```

### MCP Connection Issues

- Check `.mcp.json` configuration
- Verify Node.js installation
- Use `--mcp-debug` flag when starting Claude Code
- Use CLI as fallback if MCP unavailable

### Task File Sync Issues

```bash
# Regenerate task files from tasks.json
task-master generate

# Fix dependency issues
task-master fix-dependencies
```

DO NOT RE-INITIALIZE. That will not do anything beyond re-adding the same Taskmaster core files.

## Important Notes

### AI-Powered Operations

These commands make AI calls and may take up to a minute:

- `parse_prd` / `task-master parse-prd`
- `analyze_project_complexity` / `task-master analyze-complexity`
- `expand_task` / `task-master expand`
- `expand_all` / `task-master expand --all`
- `add_task` / `task-master add-task`
- `update` / `task-master update`
- `update_task` / `task-master update-task`
- `update_subtask` / `task-master update-subtask`

### File Management

- Never manually edit `tasks.json` - use commands instead
- Never manually edit `.taskmaster/config.json` - use `task-master models`
- Task markdown files in `tasks/` are auto-generated
- Run `task-master generate` after manual changes to tasks.json

### Claude Code Session Management

- Use `/clear` frequently to maintain focused context
- Create custom slash commands for repeated Task Master workflows
- Configure tool allowlist to streamline permissions
- Use headless mode for automation: `claude -p "task-master next"`

### Multi-Task Updates

- Use `update --from=<id>` to update multiple future tasks
- Use `update-task --id=<id>` for single task updates
- Use `update-subtask --id=<id>` for implementation logging

### Research Mode

- Add `--research` flag for research-based AI enhancement
- Requires a research model API key like Perplexity (`PERPLEXITY_API_KEY`) in environment
- Provides more informed task creation and updates
- Recommended for complex technical tasks

---

_This guide ensures Claude Code has immediate access to Task Master's essential functionality for agentic development workflows._

```

--------------------------------------------------------------------------------
/assets/AGENTS.md:
--------------------------------------------------------------------------------

```markdown
# Task Master AI - Agent Integration Guide

## Essential Commands

### Core Workflow Commands

```bash
# Project Setup
task-master init                                    # Initialize Task Master in current project
task-master parse-prd .taskmaster/docs/prd.md       # Generate tasks from PRD document
task-master models --setup                        # Configure AI models interactively

# Daily Development Workflow
task-master list                                   # Show all tasks with status
task-master next                                   # Get next available task to work on
task-master show <id>                             # View detailed task information (e.g., task-master show 1.2)
task-master set-status --id=<id> --status=done    # Mark task complete

# Task Management
task-master add-task --prompt="description" --research        # Add new task with AI assistance
task-master expand --id=<id> --research --force              # Break task into subtasks
task-master update-task --id=<id> --prompt="changes"         # Update specific task
task-master update --from=<id> --prompt="changes"            # Update multiple tasks from ID onwards
task-master update-subtask --id=<id> --prompt="notes"        # Add implementation notes to subtask

# Analysis & Planning
task-master analyze-complexity --research          # Analyze task complexity
task-master complexity-report                      # View complexity analysis
task-master expand --all --research               # Expand all eligible tasks

# Dependencies & Organization
task-master add-dependency --id=<id> --depends-on=<id>       # Add task dependency
task-master move --from=<id> --to=<id>                       # Reorganize task hierarchy
task-master validate-dependencies                            # Check for dependency issues
task-master generate                                         # Update task markdown files (usually auto-called)
```

## Key Files & Project Structure

### Core Files

- `.taskmaster/tasks/tasks.json` - Main task data file (auto-managed)
- `.taskmaster/config.json` - AI model configuration (use `task-master models` to modify)
- `.taskmaster/docs/prd.md` - Product Requirements Document for parsing (`.md` extension recommended for better editor support)
- `.taskmaster/tasks/*.txt` - Individual task files (auto-generated from tasks.json)
- `.env` - API keys for CLI usage

**PRD File Format:** While both `.txt` and `.md` extensions work, **`.md` is recommended** because:
- Markdown syntax highlighting in editors improves readability
- Proper rendering when previewing in VS Code, GitHub, or other tools
- Better collaboration through formatted documentation

### Claude Code Integration Files

- `CLAUDE.md` - Auto-loaded context for Claude Code (this file)
- `.claude/settings.json` - Claude Code tool allowlist and preferences
- `.claude/commands/` - Custom slash commands for repeated workflows
- `.mcp.json` - MCP server configuration (project-specific)

### Directory Structure

```
project/
├── .taskmaster/
│   ├── tasks/              # Task files directory
│   │   ├── tasks.json      # Main task database
│   │   ├── task-1.md      # Individual task files
│   │   └── task-2.md
│   ├── docs/              # Documentation directory
│   │   ├── prd.md         # Product requirements (.md recommended)
│   ├── reports/           # Analysis reports directory
│   │   └── task-complexity-report.json
│   ├── templates/         # Template files
│   │   └── example_prd.md  # Example PRD template (.md recommended)
│   └── config.json        # AI models & settings
├── .claude/
│   ├── settings.json      # Claude Code configuration
│   └── commands/         # Custom slash commands
├── .env                  # API keys
├── .mcp.json            # MCP configuration
└── CLAUDE.md            # This file - auto-loaded by Claude Code
```

## MCP Integration

Task Master provides an MCP server that Claude Code can connect to. Configure in `.mcp.json`:

```json
{
  "mcpServers": {
    "task-master-ai": {
      "command": "npx",
      "args": ["-y", "task-master-ai"],
      "env": {
        "ANTHROPIC_API_KEY": "your_key_here",
        "PERPLEXITY_API_KEY": "your_key_here",
        "OPENAI_API_KEY": "OPENAI_API_KEY_HERE",
        "GOOGLE_API_KEY": "GOOGLE_API_KEY_HERE",
        "XAI_API_KEY": "XAI_API_KEY_HERE",
        "OPENROUTER_API_KEY": "OPENROUTER_API_KEY_HERE",
        "MISTRAL_API_KEY": "MISTRAL_API_KEY_HERE",
        "AZURE_OPENAI_API_KEY": "AZURE_OPENAI_API_KEY_HERE",
        "OLLAMA_API_KEY": "OLLAMA_API_KEY_HERE"
      }
    }
  }
}
```

### Essential MCP Tools

```javascript
help; // = shows available taskmaster commands
// Project setup
initialize_project; // = task-master init
parse_prd; // = task-master parse-prd

// Daily workflow
get_tasks; // = task-master list
next_task; // = task-master next
get_task; // = task-master show <id>
set_task_status; // = task-master set-status

// Task management
add_task; // = task-master add-task
expand_task; // = task-master expand
update_task; // = task-master update-task
update_subtask; // = task-master update-subtask
update; // = task-master update

// Analysis
analyze_project_complexity; // = task-master analyze-complexity
complexity_report; // = task-master complexity-report
```

## Claude Code Workflow Integration

### Standard Development Workflow

#### 1. Project Initialization

```bash
# Initialize Task Master
task-master init

# Create or obtain PRD, then parse it (use .md extension for better editor support)
task-master parse-prd .taskmaster/docs/prd.md

# Analyze complexity and expand tasks
task-master analyze-complexity --research
task-master expand --all --research
```

If tasks already exist, another PRD can be parsed (with new information only!) using parse-prd with --append flag. This will add the generated tasks to the existing list of tasks..

#### 2. Daily Development Loop

```bash
# Start each session
task-master next                           # Find next available task
task-master show <id>                     # Review task details

# During implementation, check in code context into the tasks and subtasks
task-master update-subtask --id=<id> --prompt="implementation notes..."

# Complete tasks
task-master set-status --id=<id> --status=done
```

#### 3. Multi-Claude Workflows

For complex projects, use multiple Claude Code sessions:

```bash
# Terminal 1: Main implementation
cd project && claude

# Terminal 2: Testing and validation
cd project-test-worktree && claude

# Terminal 3: Documentation updates
cd project-docs-worktree && claude
```

### Custom Slash Commands

Create `.claude/commands/taskmaster-next.md`:

```markdown
Find the next available Task Master task and show its details.

Steps:

1. Run `task-master next` to get the next task
2. If a task is available, run `task-master show <id>` for full details
3. Provide a summary of what needs to be implemented
4. Suggest the first implementation step
```

Create `.claude/commands/taskmaster-complete.md`:

```markdown
Complete a Task Master task: $ARGUMENTS

Steps:

1. Review the current task with `task-master show $ARGUMENTS`
2. Verify all implementation is complete
3. Run any tests related to this task
4. Mark as complete: `task-master set-status --id=$ARGUMENTS --status=done`
5. Show the next available task with `task-master next`
```

## Tool Allowlist Recommendations

Add to `.claude/settings.json`:

```json
{
  "allowedTools": [
    "Edit",
    "Bash(task-master *)",
    "Bash(git commit:*)",
    "Bash(git add:*)",
    "Bash(npm run *)",
    "mcp__task_master_ai__*"
  ]
}
```

## Configuration & Setup

### API Keys Required

At least **one** of these API keys must be configured:

- `ANTHROPIC_API_KEY` (Claude models) - **Recommended**
- `PERPLEXITY_API_KEY` (Research features) - **Highly recommended**
- `OPENAI_API_KEY` (GPT models)
- `GOOGLE_API_KEY` (Gemini models)
- `MISTRAL_API_KEY` (Mistral models)
- `OPENROUTER_API_KEY` (Multiple models)
- `XAI_API_KEY` (Grok models)

An API key is required for any provider used across any of the 3 roles defined in the `models` command.

### Model Configuration

```bash
# Interactive setup (recommended)
task-master models --setup

# Set specific models
task-master models --set-main claude-3-5-sonnet-20241022
task-master models --set-research perplexity-llama-3.1-sonar-large-128k-online
task-master models --set-fallback gpt-4o-mini
```

## Task Structure & IDs

### Task ID Format

- Main tasks: `1`, `2`, `3`, etc.
- Subtasks: `1.1`, `1.2`, `2.1`, etc.
- Sub-subtasks: `1.1.1`, `1.1.2`, etc.

### Task Status Values

- `pending` - Ready to work on
- `in-progress` - Currently being worked on
- `done` - Completed and verified
- `deferred` - Postponed
- `cancelled` - No longer needed
- `blocked` - Waiting on external factors

### Task Fields

```json
{
  "id": "1.2",
  "title": "Implement user authentication",
  "description": "Set up JWT-based auth system",
  "status": "pending",
  "priority": "high",
  "dependencies": ["1.1"],
  "details": "Use bcrypt for hashing, JWT for tokens...",
  "testStrategy": "Unit tests for auth functions, integration tests for login flow",
  "subtasks": []
}
```

## Claude Code Best Practices with Task Master

### Context Management

- Use `/clear` between different tasks to maintain focus
- This CLAUDE.md file is automatically loaded for context
- Use `task-master show <id>` to pull specific task context when needed

### Iterative Implementation

1. `task-master show <subtask-id>` - Understand requirements
2. Explore codebase and plan implementation
3. `task-master update-subtask --id=<id> --prompt="detailed plan"` - Log plan
4. `task-master set-status --id=<id> --status=in-progress` - Start work
5. Implement code following logged plan
6. `task-master update-subtask --id=<id> --prompt="what worked/didn't work"` - Log progress
7. `task-master set-status --id=<id> --status=done` - Complete task

### Complex Workflows with Checklists

For large migrations or multi-step processes:

1. Create a markdown PRD file describing the new changes: `touch task-migration-checklist.md` (prds can be .txt or .md)
2. Use Taskmaster to parse the new prd with `task-master parse-prd --append` (also available in MCP)
3. Use Taskmaster to expand the newly generated tasks into subtasks. Consdier using `analyze-complexity` with the correct --to and --from IDs (the new ids) to identify the ideal subtask amounts for each task. Then expand them.
4. Work through items systematically, checking them off as completed
5. Use `task-master update-subtask` to log progress on each task/subtask and/or updating/researching them before/during implementation if getting stuck

### Git Integration

Task Master works well with `gh` CLI:

```bash
# Create PR for completed task
gh pr create --title "Complete task 1.2: User authentication" --body "Implements JWT auth system as specified in task 1.2"

# Reference task in commits
git commit -m "feat: implement JWT auth (task 1.2)"
```

### Parallel Development with Git Worktrees

```bash
# Create worktrees for parallel task development
git worktree add ../project-auth feature/auth-system
git worktree add ../project-api feature/api-refactor

# Run Claude Code in each worktree
cd ../project-auth && claude    # Terminal 1: Auth work
cd ../project-api && claude     # Terminal 2: API work
```

## Troubleshooting

### AI Commands Failing

```bash
# Check API keys are configured
cat .env                           # For CLI usage

# Verify model configuration
task-master models

# Test with different model
task-master models --set-fallback gpt-4o-mini
```

### MCP Connection Issues

- Check `.mcp.json` configuration
- Verify Node.js installation
- Use `--mcp-debug` flag when starting Claude Code
- Use CLI as fallback if MCP unavailable

### Task File Sync Issues

```bash
# Regenerate task files from tasks.json
task-master generate

# Fix dependency issues
task-master fix-dependencies
```

DO NOT RE-INITIALIZE. That will not do anything beyond re-adding the same Taskmaster core files.

## Important Notes

### AI-Powered Operations

These commands make AI calls and may take up to a minute:

- `parse_prd` / `task-master parse-prd`
- `analyze_project_complexity` / `task-master analyze-complexity`
- `expand_task` / `task-master expand`
- `expand_all` / `task-master expand --all`
- `add_task` / `task-master add-task`
- `update` / `task-master update`
- `update_task` / `task-master update-task`
- `update_subtask` / `task-master update-subtask`

### File Management

- Never manually edit `tasks.json` - use commands instead
- Never manually edit `.taskmaster/config.json` - use `task-master models`
- Task markdown files in `tasks/` are auto-generated
- Run `task-master generate` after manual changes to tasks.json

### Claude Code Session Management

- Use `/clear` frequently to maintain focused context
- Create custom slash commands for repeated Task Master workflows
- Configure tool allowlist to streamline permissions
- Use headless mode for automation: `claude -p "task-master next"`

### Multi-Task Updates

- Use `update --from=<id>` to update multiple future tasks
- Use `update-task --id=<id>` for single task updates
- Use `update-subtask --id=<id>` for implementation logging

### Research Mode

- Add `--research` flag for research-based AI enhancement
- Requires a research model API key like Perplexity (`PERPLEXITY_API_KEY`) in environment
- Provides more informed task creation and updates
- Recommended for complex technical tasks

---

_This guide ensures Claude Code has immediate access to Task Master's essential functionality for agentic development workflows._

```

--------------------------------------------------------------------------------
/test-tag-functions.js:
--------------------------------------------------------------------------------

```javascript

```

--------------------------------------------------------------------------------
/apps/extension/src/index.ts:
--------------------------------------------------------------------------------

```typescript
console.log('hello world');

```

--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------

```json
{
	"recommendations": ["esbenp.prettier-vscode"]
}

```

--------------------------------------------------------------------------------
/output.json:
--------------------------------------------------------------------------------

```json
{
	"key": "value",
	"nested": {
		"prop": true
	}
}

```

--------------------------------------------------------------------------------
/apps/docs/getting-started/quick-start/moving-forward.mdx:
--------------------------------------------------------------------------------

```markdown
---
title: Moving Forward
sidebarTitle: "Moving Forward"
---
```

--------------------------------------------------------------------------------
/apps/docs/getting-started/quick-start/rules-quick.mdx:
--------------------------------------------------------------------------------

```markdown
---
title: Rules and Context
sidebarTitle: "Rules and Context"
---
```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
# @tm/claude-code-plugin

## 0.0.5

## 0.0.4

## 0.0.3

## 0.0.3

## 0.0.2

```

--------------------------------------------------------------------------------
/packages/ai-sdk-provider-grok-cli/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
# @tm/ai-sdk-provider-grok-cli

## null

## null

## null

## null

## null

## null

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/integration/clients/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Client exports
 */

export { SupabaseAuthClient } from './supabase-client.js';

```

--------------------------------------------------------------------------------
/packages/build-config/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
# @tm/build-config

## null

## null

## null

## null

## null

## null

## null

## 1.0.1

```

--------------------------------------------------------------------------------
/apps/docs/whats-new.mdx:
--------------------------------------------------------------------------------

```markdown
---
title: "What's New"
sidebarTitle: "What's New"
---

An easy way to see the latest releases
```

--------------------------------------------------------------------------------
/apps/docs/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
# docs

## 0.0.10

## 0.0.9

## 0.0.8

## 0.0.7

## 0.0.6

## 0.0.5

## 0.0.4

## 0.0.3

## 0.0.2

## 0.0.1

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/mcp.json:
--------------------------------------------------------------------------------

```json
{
	"mcpServers": {
		"task-master-ai": {
			"type": "stdio",
			"command": "npx",
			"args": ["-y", "task-master-ai"]
		}
	}
}

```

--------------------------------------------------------------------------------
/scripts/modules/task-manager/parse-prd/index.js:
--------------------------------------------------------------------------------

```javascript
// Main entry point for parse-prd module
export { default } from './parse-prd.js';
export { default as parsePRD } from './parse-prd.js';

```

--------------------------------------------------------------------------------
/src/schemas/update-subtask.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';
import { SubtaskSchema } from './base-schemas.js';

export const UpdateSubtaskResponseSchema = z.object({
	subtask: SubtaskSchema
});

```

--------------------------------------------------------------------------------
/src/schemas/update-task.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';
import { UpdatedTaskSchema } from './update-tasks.js';

export const UpdateTaskResponseSchema = z.object({
	task: UpdatedTaskSchema
});

```

--------------------------------------------------------------------------------
/src/schemas/expand-task.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';
import { SubtaskSchema } from './base-schemas.js';

export const ExpandTaskResponseSchema = z.object({
	subtasks: z.array(SubtaskSchema)
});

```

--------------------------------------------------------------------------------
/apps/extension/src/lib/utils.ts:
--------------------------------------------------------------------------------

```typescript
import { type ClassValue, clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';

export function cn(...inputs: ClassValue[]) {
	return twMerge(clsx(inputs));
}

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/tasks/repositories/supabase/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Supabase repository implementations
 */
export { SupabaseRepository } from './supabase-repository.js';
export { DependencyFetcher } from './dependency-fetcher.js';

```

--------------------------------------------------------------------------------
/.taskmaster/docs/test-prd.txt:
--------------------------------------------------------------------------------

```
Simple Todo App PRD

Create a basic todo list application with the following features:
1. Add new todos
2. Mark todos as complete
3. Delete todos

That's it. Keep it simple.
```

--------------------------------------------------------------------------------
/.taskmaster/state.json:
--------------------------------------------------------------------------------

```json
{
	"currentTag": "tdd-phase-1-core-rails",
	"lastSwitched": "2025-11-10T19:45:04.383Z",
	"branchTagMapping": {
		"v017-adds": "v017-adds",
		"next": "next"
	},
	"migrationNoticeShown": true
}

```

--------------------------------------------------------------------------------
/apps/docs/best-practices/index.mdx:
--------------------------------------------------------------------------------

```markdown
---
title: Intro to Advanced Usage
sidebarTitle: "Advanced Usage"
---

# Best Practices

Explore advanced tips, recommended workflows, and best practices for getting the most out of Task Master. 
```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/briefs/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Briefs module exports
 */

export { BriefsDomain } from './briefs-domain.js';
export { BriefService, type TagWithStats } from './services/brief-service.js';
export type { Brief } from './types.js';

```

--------------------------------------------------------------------------------
/apps/docs/vercel.json:
--------------------------------------------------------------------------------

```json
{
	"rewrites": [
		{
			"source": "/",
			"destination": "https://taskmaster-49ce32d5.mintlify.dev/docs"
		},
		{
			"source": "/:match*",
			"destination": "https://taskmaster-49ce32d5.mintlify.dev/docs/:match*"
		}
	]
}

```

--------------------------------------------------------------------------------
/apps/mcp/src/tools/tasks/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Tasks MCP tools index
 * Exports all task-related tool registration functions
 */

export { registerGetTasksTool } from './get-tasks.tool.js';
export { registerGetTaskTool } from './get-task.tool.js';

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/ai/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Barrel export for provider modules
 */

// Export all from AI module
export * from './providers/index.js';

// Storage providers will be exported here when implemented
// export * from './storage/index.js';

```

--------------------------------------------------------------------------------
/packages/tm-bridge/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
# @tm/bridge

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

```

--------------------------------------------------------------------------------
/apps/docs/package.json:
--------------------------------------------------------------------------------

```json
{
	"name": "docs",
	"version": "0.0.10",
	"private": true,
	"description": "Task Master documentation powered by Mintlify",
	"scripts": {
		"dev": "mintlify dev",
		"preview": "mintlify preview"
	},
	"devDependencies": {
		"mintlify": "^4.2.111"
	}
}

```

--------------------------------------------------------------------------------
/scripts/modules/index.js:
--------------------------------------------------------------------------------

```javascript
/**
 * index.js
 * Main export point for all Task Master CLI modules
 */

// Export all modules
export * from './ui.js';
export * from './utils.js';
export * from './commands.js';
export * from './task-manager.js';
export * from './prompt-manager.js';

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/reports/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Reports module exports
 */

export { ComplexityReportManager } from './managers/complexity-report-manager.js';
export type {
	ComplexityReport,
	ComplexityReportMetadata,
	ComplexityAnalysis,
	TaskComplexityData
} from './types.js';

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/ui/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview UI domain - Placeholder for future migration
 * This module will handle UI components and rendering
 * when migrated from scripts/modules/ui.js
 */

// TODO: Migrate ui.js from scripts/modules/
// export * from './components/index.js';

```

--------------------------------------------------------------------------------
/apps/mcp/src/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Main entry point for @tm/mcp package
 * Exports all MCP tool registration functions
 */

export * from './tools/autopilot/index.js';
export * from './tools/tasks/index.js';
export * from './shared/utils.js';
export * from './shared/types.js';

```

--------------------------------------------------------------------------------
/test-prd.txt:
--------------------------------------------------------------------------------

```
# Test PRD

## Project Overview
This is a simple test project to verify parse-prd functionality.

## Features
- Feature A: Basic setup
- Feature B: Core functionality  
- Feature C: Testing

## Requirements
- Use Node.js
- Include basic tests
- Simple CLI interface 
```

--------------------------------------------------------------------------------
/packages/tm-core/src/common/types/legacy.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Legacy type definitions for backwards compatibility
 * These types are deprecated and will be removed in future versions
 */

/**
 * @deprecated Use string directly instead. This will be removed in a future version.
 */
export type TaskId = string;

```

--------------------------------------------------------------------------------
/apps/cli/src/commands/models/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Model setup module exports, command not yet here, still lives in commands.js (old structure)
 */

export * from './types.js';
export * from './fetchers.js';
export * from './custom-providers.js';
export * from './prompts.js';
export * from './setup.js';

```

--------------------------------------------------------------------------------
/apps/cli/src/utils/task-status.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Utilities for working with task statuses
 * Re-exports status utilities from @tm/core for CLI convenience
 */

// Re-export terminal status utilities from @tm/core (single source of truth)
export {
	TERMINAL_COMPLETE_STATUSES,
	isTaskComplete
} from '@tm/core';

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/commands/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Commands domain - Placeholder for future migration
 * This module will handle command execution and orchestration
 * when migrated from scripts/modules/commands.js
 */

// TODO: Migrate commands.js from scripts/modules/
// export * from './handlers/command-handler.js';

```

--------------------------------------------------------------------------------
/apps/cli/src/ui/components/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview UI components exports
 */

export * from './cardBox.component.js';
export * from './dashboard.component.js';
export * from './header.component.js';
export * from './next-task.component.js';
export * from './suggested-steps.component.js';
export * from './task-detail.component.js';

```

--------------------------------------------------------------------------------
/src/schemas/update-tasks.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';
import { BaseTaskSchema, SubtaskSchema } from './base-schemas.js';

export const UpdatedTaskSchema = BaseTaskSchema.extend({
	subtasks: z.array(SubtaskSchema).nullable().default(null)
});

export const UpdateTasksResponseSchema = z.object({
	tasks: z.array(UpdatedTaskSchema)
});

```

--------------------------------------------------------------------------------
/apps/mcp/CHANGELOG.md:
--------------------------------------------------------------------------------

```markdown
# @tm/mcp

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

## null

### Patch Changes

- Updated dependencies []:
  - @tm/core@null

```

--------------------------------------------------------------------------------
/src/constants/commands.js:
--------------------------------------------------------------------------------

```javascript
/**
 * Command related constants
 * Defines which commands trigger AI processing
 */

// Command names that trigger AI processing
export const AI_COMMAND_NAMES = [
	'add-task',
	'analyze-complexity',
	'expand-task',
	'parse-prd',
	'research',
	'research-save',
	'update-subtask',
	'update-task',
	'update-tasks'
];

```

--------------------------------------------------------------------------------
/src/profiles/trae.js:
--------------------------------------------------------------------------------

```javascript
// Trae conversion profile for rule-transformer
import { createProfile, COMMON_TOOL_MAPPINGS } from './base-profile.js';

// Create and export trae profile using the base factory
export const traeProfile = createProfile({
	name: 'trae',
	displayName: 'Trae',
	url: 'trae.ai',
	docsUrl: 'docs.trae.ai',
	mcpConfig: false
});

```

--------------------------------------------------------------------------------
/packages/tm-core/src/common/logger/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Logger package for Task Master
 * Provides centralized logging with support for different modes and levels
 */

export { Logger, LogLevel } from './logger.js';
export type { LoggerConfig, LogCallback, LogObject } from './logger.js';
export { createLogger, getLogger, setGlobalLogger } from './factory.js';

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/dependencies/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Dependencies domain - Placeholder for future migration
 * This module will handle dependency management, graphs, and validation
 * when migrated from scripts/modules/dependency-manager.js
 */

// TODO: Migrate dependency-manager.js from scripts/modules/
// export * from './services/dependency-manager.js';

```

--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------

```json
{
  "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
  "changelog": [
    "@changesets/changelog-github",
    {
      "repo": "eyaltoledano/claude-task-master"
    }
  ],
  "commit": false,
  "fixed": [],
  "access": "public",
  "baseBranch": "main",
  "ignore": [
    "docs",
    "@tm/claude-code-plugin"
  ]
}
```

--------------------------------------------------------------------------------
/src/profiles/windsurf.js:
--------------------------------------------------------------------------------

```javascript
// Windsurf conversion profile for rule-transformer
import { createProfile, COMMON_TOOL_MAPPINGS } from './base-profile.js';

// Create and export windsurf profile using the base factory
export const windsurfProfile = createProfile({
	name: 'windsurf',
	displayName: 'Windsurf',
	url: 'windsurf.com',
	docsUrl: 'docs.windsurf.com'
});

```

--------------------------------------------------------------------------------
/apps/docs/getting-started/faq.mdx:
--------------------------------------------------------------------------------

```markdown
---
title: FAQ
sidebarTitle: "FAQ"
---

Coming soon. 

## 💬 Getting Help

- **Discord**: [Join our community](https://discord.gg/taskmasterai)
- **Issues**: [GitHub Issues](https://github.com/eyaltoledano/claude-task-master/issues)
- **Discussions**: [GitHub Discussions](https://github.com/eyaltoledano/claude-task-master/discussions)
```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/git/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Git operations layer for the tm-core package
 * This file exports all git-related classes and interfaces
 */

// Export GitAdapter
export { GitAdapter } from './adapters/git-adapter.js';

// Export branch name utilities
export {
	generateBranchName,
	sanitizeBranchName
} from './services/branch-name-generator.js';

```

--------------------------------------------------------------------------------
/src/utils/getVersion.js:
--------------------------------------------------------------------------------

```javascript
import packageJson from '../../package.json' with { type: 'json' };

/**
 * Reads the version from the nearest package.json relative to this file.
 * Returns 'unknown' if not found or on error.
 * @returns {string} The version string or 'unknown'.
 */
export function getTaskMasterVersion() {
	return packageJson.version || 'unknown';
}

```

--------------------------------------------------------------------------------
/apps/docs/style.css:
--------------------------------------------------------------------------------

```css
/*
 * This file is used to override the default logo style of the docs theme.
 * It is not used for the actual documentation content.
 */

#navbar img {
	height: auto !important; /* Let intrinsic SVG size determine height */
	width: 200px !important; /* Control width */
	margin-top: 5px !important; /* Add some space above the logo */
}

```

--------------------------------------------------------------------------------
/scripts/list-worktrees.sh:
--------------------------------------------------------------------------------

```bash
#!/bin/bash

# List all git worktrees with helpful information

set -e

echo "📋 Git Worktrees:"
echo ""
git worktree list
echo ""
echo "To remove a worktree:"
echo "  git worktree remove <path>"
echo ""
echo "To remove all worktrees:"
echo "  git worktree list | grep -v '(bare)' | tail -n +2 | awk '{print \$1}' | xargs -I {} git worktree remove {}"

```

--------------------------------------------------------------------------------
/apps/extension/components.json:
--------------------------------------------------------------------------------

```json
{
	"$schema": "https://ui.shadcn.com/schema.json",
	"style": "default",
	"rsc": false,
	"tsx": true,
	"tailwind": {
		"config": "tailwind.config.js",
		"css": "src/webview/index.css",
		"baseColor": "slate",
		"cssVariables": true,
		"prefix": ""
	},
	"aliases": {
		"components": "@/components",
		"utils": "@/lib"
	},
	"iconLibrary": "lucide-react"
}

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/execution/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Public API for the executors module
 */

export * from './types.js';
export { BaseExecutor } from './executors/base-executor.js';
export { ClaudeExecutor } from './executors/claude-executor.js';
export { ExecutorFactory } from './executors/executor-factory.js';
export {
	ExecutorService,
	type ExecutorServiceOptions
} from './services/executor-service.js';

```

--------------------------------------------------------------------------------
/src/utils/format.js:
--------------------------------------------------------------------------------

```javascript
// src/utils/format.js

/**
 * Formats elapsed time as 0m 00s.
 * @param {number} seconds - Elapsed time in seconds
 * @returns {string} Formatted time string
 */
export function formatElapsedTime(seconds) {
	const minutes = Math.floor(seconds / 60);
	const remainingSeconds = Math.floor(seconds % 60);
	return `${minutes}m ${remainingSeconds.toString().padStart(2, '0')}s`;
}

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/storage/adapters/file-storage/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Exports for file storage components
 */

export {
	FormatHandler,
	type FileStorageData,
	type FileFormat
} from './format-handler.js';
export { FileOperations } from './file-operations.js';
export { PathResolver } from './path-resolver.js';

// Main FileStorage class - primary export
export { FileStorage as default, FileStorage } from './file-storage.js';

```

--------------------------------------------------------------------------------
/src/profiles/cline.js:
--------------------------------------------------------------------------------

```javascript
// Cline conversion profile for rule-transformer
import { createProfile, COMMON_TOOL_MAPPINGS } from './base-profile.js';

// Create and export cline profile using the base factory
export const clineProfile = createProfile({
	name: 'cline',
	displayName: 'Cline',
	url: 'cline.bot',
	docsUrl: 'docs.cline.bot',
	profileDir: '.clinerules',
	rulesDir: '.clinerules',
	mcpConfig: false
});

```

--------------------------------------------------------------------------------
/apps/extension/src/webview/sidebar.tsx:
--------------------------------------------------------------------------------

```typescript
import React from 'react';
import ReactDOM from 'react-dom/client';
import { SidebarView } from './components/SidebarView';

const rootElement = document.getElementById('root');

if (!rootElement) {
	console.error('Sidebar: Root element not found');
} else {
	const root = ReactDOM.createRoot(rootElement);
	root.render(
		<React.StrictMode>
			<SidebarView />
		</React.StrictMode>
	);
}

```

--------------------------------------------------------------------------------
/apps/mcp/vitest.config.ts:
--------------------------------------------------------------------------------

```typescript
import { defineConfig } from 'vitest/config';

export default defineConfig({
	test: {
		globals: true,
		environment: 'node',
		coverage: {
			provider: 'v8',
			reporter: ['text', 'json', 'html'],
			exclude: [
				'node_modules/',
				'dist/',
				'tests/',
				'**/*.test.ts',
				'**/*.spec.ts',
				'**/*.d.ts',
				'**/mocks/**',
				'**/fixtures/**',
				'vitest.config.ts'
			]
		}
	}
});

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/briefs/types.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Briefs module types
 */

/**
 * Brief data structure
 * Represents a project brief containing tasks and requirements
 */
export interface Brief {
	id: string;
	accountId: string;
	documentId: string;
	status: string;
	createdAt: string;
	updatedAt: string;
	taskCount?: number;
	document?: {
		id: string;
		title: string;
		document_name: string;
		description?: string;
	};
}

```

--------------------------------------------------------------------------------
/.github/workflows/release-check.yml:
--------------------------------------------------------------------------------

```yaml
name: Release Check

on:
  pull_request:
    branches:
      - main

concurrency:
  group: release-check-${{ github.head_ref }}
  cancel-in-progress: true

jobs:
  check-release-mode:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Check release mode
        run: node ./.github/scripts/check-pre-release-mode.mjs "pull_request"

```

--------------------------------------------------------------------------------
/src/schemas/analyze-complexity.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';

export const ComplexityAnalysisItemSchema = z.object({
	taskId: z.number().int().positive(),
	taskTitle: z.string(),
	complexityScore: z.number().min(1).max(10),
	recommendedSubtasks: z.number().int().nonnegative(),
	expansionPrompt: z.string(),
	reasoning: z.string()
});

export const ComplexityAnalysisResponseSchema = z.object({
	complexityAnalysis: z.array(ComplexityAnalysisItemSchema)
});

```

--------------------------------------------------------------------------------
/apps/extension/src/test/extension.test.ts:
--------------------------------------------------------------------------------

```typescript
import * as assert from 'assert';

// You can import and use all API from the 'vscode' module
// as well as import your extension to test it
import * as vscode from 'vscode';
// import * as myExtension from '../../extension';

suite('Extension Test Suite', () => {
	vscode.window.showInformationMessage('Start all tests.');

	test('Sample test', () => {
		assert.strictEqual(-1, [1, 2, 3].indexOf(5));
		assert.strictEqual(-1, [1, 2, 3].indexOf(0));
	});
});

```

--------------------------------------------------------------------------------
/docs/licensing.md:
--------------------------------------------------------------------------------

```markdown
# Licensing

Task Master is licensed under the MIT License with Commons Clause. This means you can:

## ✅ Allowed:

- Use Task Master for any purpose (personal, commercial, academic)
- Modify the code
- Distribute copies
- Create and sell products built using Task Master

## ❌ Not Allowed:

- Sell Task Master itself
- Offer Task Master as a hosted service
- Create competing products based on Task Master

See the [LICENSE](../LICENSE) file for the complete license text.

```

--------------------------------------------------------------------------------
/packages/build-config/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"compilerOptions": {
		"target": "ES2022",
		"lib": ["ES2022"],
		"module": "ESNext",
		"moduleResolution": "bundler",
		"allowSyntheticDefaultImports": true,
		"esModuleInterop": true,
		"baseUrl": ".",
		"outDir": "dist",
		"allowJs": true,
		"strict": true,
		"resolveJsonModule": true,
		"isolatedModules": true,
		"declaration": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", "dist"]
}

```

--------------------------------------------------------------------------------
/apps/docs/licensing.md:
--------------------------------------------------------------------------------

```markdown
# Licensing

Task Master is licensed under the MIT License with Commons Clause. This means you can:

## ✅ Allowed:

- Use Task Master for any purpose (personal, commercial, academic)
- Modify the code
- Distribute copies
- Create and sell products built using Task Master

## ❌ Not Allowed:

- Sell Task Master itself
- Offer Task Master as a hosted service
- Create competing products based on Task Master

{/* See the [LICENSE](../LICENSE) file for the complete license text. */}

```

--------------------------------------------------------------------------------
/apps/cli/vitest.config.ts:
--------------------------------------------------------------------------------

```typescript
import { defineConfig } from 'vitest/config';

export default defineConfig({
	test: {
		globals: true,
		environment: 'node',
		include: ['tests/**/*.test.ts', 'tests/**/*.spec.ts'],
		coverage: {
			provider: 'v8',
			reporter: ['text', 'json', 'html'],
			include: ['src/**/*.ts'],
			exclude: [
				'node_modules/',
				'dist/',
				'tests/',
				'**/*.test.ts',
				'**/*.spec.ts',
				'**/*.d.ts',
				'**/mocks/**',
				'**/fixtures/**',
				'vitest.config.ts'
			]
		}
	}
});

```

--------------------------------------------------------------------------------
/jest.resolver.cjs:
--------------------------------------------------------------------------------

```
const { defaultResolver } = require('jest-resolve');
module.exports = function customResolver(request, options) {
	const resolve = options.defaultResolver || defaultResolver;

	try {
		return resolve(request, options);
	} catch (error) {
		if (request.startsWith('.') && request.endsWith('.js')) {
			try {
				return resolve(request.replace(/\.js$/, '.ts'), options);
			} catch (tsError) {
				tsError.cause = tsError.cause ?? error;
				throw tsError;
			}
		}

		throw error;
	}
};

```

--------------------------------------------------------------------------------
/packages/tm-core/tests/setup.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Vitest test setup file
 */

import { afterAll, beforeAll, vi } from 'vitest';

// Setup any global test configuration here
// For example, increase timeout for slow CI environments
if (process.env.CI) {
	// Vitest timeout is configured in vitest.config.ts
}

// Suppress console errors during tests unless explicitly testing them
const originalError = console.error;
beforeAll(() => {
	console.error = vi.fn();
});

afterAll(() => {
	console.error = originalError;
});

```

--------------------------------------------------------------------------------
/src/profiles/codex.js:
--------------------------------------------------------------------------------

```javascript
// Codex profile for rule-transformer
import { createProfile } from './base-profile.js';

// Create and export codex profile using the base factory
export const codexProfile = createProfile({
	name: 'codex',
	displayName: 'Codex',
	url: 'codex.ai',
	docsUrl: 'platform.openai.com/docs/codex',
	profileDir: '.', // Root directory
	rulesDir: '.', // No specific rules directory needed
	mcpConfig: false,
	mcpConfigName: null,
	includeDefaultRules: false,
	fileMap: {
		'AGENTS.md': 'AGENTS.md'
	}
});

```

--------------------------------------------------------------------------------
/apps/docs/favicon.svg:
--------------------------------------------------------------------------------

```
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <!-- Blue form with check from logo -->
  <rect x="16" y="10" width="68" height="80" rx="9" fill="#3366CC"/>
  <polyline points="33,44 41,55 56,29" fill="none" stroke="#FFFFFF" stroke-width="6"/>
  <circle cx="33" cy="64" r="4" fill="#FFFFFF"/>
  <rect x="43" y="61" width="27" height="6" fill="#FFFFFF"/>
  <circle cx="33" cy="77" r="4" fill="#FFFFFF"/>
  <rect x="43" y="75" width="27" height="6" fill="#FFFFFF"/>
</svg>

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/config/services/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Configuration services exports
 * Export all configuration-related services
 */

export { ConfigLoader } from './config-loader.service.js';
export {
	ConfigMerger,
	CONFIG_PRECEDENCE,
	type ConfigSource
} from './config-merger.service.js';
export {
	RuntimeStateManager,
	type RuntimeState
} from './runtime-state-manager.service.js';
export {
	ConfigPersistence,
	type PersistenceOptions
} from './config-persistence.service.js';
export { EnvironmentConfigProvider } from './environment-config-provider.service.js';

```

--------------------------------------------------------------------------------
/src/constants/rules-actions.js:
--------------------------------------------------------------------------------

```javascript
/**
 * @typedef {'add' | 'remove'} RulesAction
 */

/**
 * Individual rules action constants
 */
export const RULES_ACTIONS = {
	ADD: 'add',
	REMOVE: 'remove'
};

/**
 * Special rules command (not a CRUD operation)
 */
export const RULES_SETUP_ACTION = 'setup';

/**
 * Check if a given action is a valid rules action
 * @param {string} action - The action to check
 * @returns {boolean} True if the action is valid, false otherwise
 */
export function isValidRulesAction(action) {
	return Object.values(RULES_ACTIONS).includes(action);
}

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/ai/providers/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Barrel export for AI provider modules
 */

export { BaseProvider } from './base-provider.js';
export type { BaseProviderConfig, CompletionResult } from './base-provider.js';

// Export provider factory when implemented
// export { ProviderFactory } from './provider-factory.js';

// Export concrete providers when implemented
// export { AnthropicProvider } from './adapters/anthropic-provider.js';
// export { OpenAIProvider } from './adapters/openai-provider.js';
// export { GoogleProvider } from './adapters/google-provider.js';

```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/config.yml:
--------------------------------------------------------------------------------

```yaml
blank_issues_enabled: false
contact_links:
  - name: 🐛 Bug Fix
    url: https://github.com/eyaltoledano/claude-task-master/compare/next...HEAD?template=bugfix.md
    about: Fix a bug in Task Master
  - name: ✨ New Feature
    url: https://github.com/eyaltoledano/claude-task-master/compare/next...HEAD?template=feature.md
    about: Add a new feature to Task Master
  - name: 🔌 New Integration
    url: https://github.com/eyaltoledano/claude-task-master/compare/next...HEAD?template=integration.md
    about: Add support for a new tool, IDE, or platform
```

--------------------------------------------------------------------------------
/apps/cli/src/utils/ui.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview UI utilities for Task Master CLI (Re-export module)
 *
 * @deprecated: This file is kept for backward compatibility.
 * All functionality has been moved to organized modules under src/ui/:
 * - ui/formatters/ (status, priority, complexity, dependencies)
 * - ui/display/ (messages, tables)
 * - ui/layout/ (helpers)
 * - ui/components/ (high-level UI components)
 *
 * Please import from '../ui/index.js' or specific modules for new code.
 */

// Re-export everything from the new organized UI structure
export * from '../ui/index.js';

```

--------------------------------------------------------------------------------
/packages/tm-core/src/common/interfaces/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Interface definitions index for the tm-core package
 * This file exports all interface definitions from their respective modules
 */

// Storage interfaces
export type * from './storage.interface.js';
export * from './storage.interface.js';

// AI Provider interfaces
export type * from '../../modules/ai/interfaces/ai-provider.interface.js';
export * from '../../modules/ai/interfaces/ai-provider.interface.js';

// Configuration interfaces
export type * from './configuration.interface.js';
export * from './configuration.interface.js';

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/.claude-plugin/plugin.json:
--------------------------------------------------------------------------------

```json
{
	"name": "taskmaster",
	"description": "A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.",
	"author": {
		"name": "Hamster",
		"url": "https://github.com/eyaltoledano/claude-task-master"
	},
	"homepage": "https://github.com/eyaltoledano/claude-task-master#readme",
	"repository": "https://github.com/eyaltoledano/claude-task-master",
	"license": "MIT WITH Commons-Clause",
	"keywords": [
		"task-management",
		"ai",
		"workflow",
		"orchestration",
		"automation",
		"mcp",
		"development",
		"productivity"
	]
}

```

--------------------------------------------------------------------------------
/.kiro/settings/mcp.json:
--------------------------------------------------------------------------------

```json
{
	"mcpServers": {
		"task-master-ai": {
			"command": "npx",
			"args": ["-y", "task-master-ai"],
			"env": {
				"ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_API_KEY_HERE",
				"PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY_HERE",
				"OPENAI_API_KEY": "YOUR_OPENAI_KEY_HERE",
				"GOOGLE_API_KEY": "YOUR_GOOGLE_KEY_HERE",
				"XAI_API_KEY": "YOUR_XAI_KEY_HERE",
				"OPENROUTER_API_KEY": "YOUR_OPENROUTER_KEY_HERE",
				"MISTRAL_API_KEY": "YOUR_MISTRAL_KEY_HERE",
				"AZURE_OPENAI_API_KEY": "YOUR_AZURE_KEY_HERE",
				"OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY_HERE"
			}
		}
	}
}

```

--------------------------------------------------------------------------------
/apps/mcp/src/shared/types.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Shared types for MCP tools
 */

export interface MCPResponse<T = any> {
	success: boolean;
	data?: T;
	error?: {
		code: string;
		message: string;
		suggestion?: string;
		details?: any;
	};
	version?: {
		version: string;
		name: string;
	};
	tag?: {
		currentTag: string;
		availableTags: string[];
	};
}

export interface MCPContext {
	log: {
		info: (message: string) => void;
		warn: (message: string) => void;
		error: (message: string) => void;
		debug: (message: string) => void;
	};
	session: any;
}

export interface WithProjectRoot {
	projectRoot: string;
}

```

--------------------------------------------------------------------------------
/apps/extension/src/components/ui/label.tsx:
--------------------------------------------------------------------------------

```typescript
import * as LabelPrimitive from '@radix-ui/react-label';
import type * as React from 'react';

import { cn } from '@/lib/utils';

function Label({
	className,
	...props
}: React.ComponentProps<typeof LabelPrimitive.Root>) {
	return (
		<LabelPrimitive.Root
			data-slot="label"
			className={cn(
				'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
				className
			)}
			{...props}
		/>
	);
}

export { Label };

```

--------------------------------------------------------------------------------
/src/ai-providers/zai-coding.js:
--------------------------------------------------------------------------------

```javascript
/**
 * zai-coding.js
 * AI provider implementation for Z.ai (GLM) Coding Plan models.
 * Uses the exclusive coding API endpoint with OpenAI-compatible API.
 */

import { ZAIProvider } from './zai.js';

/**
 * Z.ai Coding Plan provider supporting GLM models through the dedicated coding endpoint.
 * Extends ZAIProvider with only a different base URL.
 */
export class ZAICodingProvider extends ZAIProvider {
	constructor() {
		super();
		// Override only the name and base URL
		this.name = 'Z.ai (Coding Plan)';
		this.defaultBaseURL = 'https://api.z.ai/api/coding/paas/v4/';
	}
}

```

--------------------------------------------------------------------------------
/apps/extension/src/webview/index.tsx:
--------------------------------------------------------------------------------

```typescript
/**
 * Webview Entry Point
 */

import React from 'react';
import { createRoot } from 'react-dom/client';
import { App } from './App';
// CSS is built separately by Tailwind

// VS Code API declaration
declare global {
	interface Window {
		acquireVsCodeApi?: () => {
			postMessage: (message: any) => void;
			setState: (state: any) => void;
			getState: () => any;
		};
	}
}

// Initialize React app
const container = document.getElementById('root');
if (container) {
	const root = createRoot(container);
	root.render(<App />);
} else {
	console.error('❌ Root container not found');
}

```

--------------------------------------------------------------------------------
/packages/build-config/package.json:
--------------------------------------------------------------------------------

```json
{
	"name": "@tm/build-config",
	"description": "Shared build configuration for Task Master monorepo",
	"type": "module",
	"private": true,
	"main": "./dist/tsdown.base.js",
	"types": "./src/tsdown.base.ts",
	"exports": {
		".": {
			"types": "./src/tsdown.base.ts",
			"import": "./dist/tsdown.base.js"
		}
	},
	"files": ["dist", "src"],
	"keywords": ["build-config", "tsup", "monorepo"],
	"author": "",
	"license": "MIT",
	"scripts": {
		"build": "tsc",
		"typecheck": "tsc --noEmit"
	},
	"devDependencies": {
		"typescript": "^5.9.2"
	},
	"dependencies": {
		"tsup": "^8.5.0"
	},
	"version": ""
}

```

--------------------------------------------------------------------------------
/apps/extension/src/webview/components/PriorityBadge.tsx:
--------------------------------------------------------------------------------

```typescript
/**
 * Priority Badge Component
 */

import React from 'react';
import { Badge } from '@/components/ui/badge';
import type { TaskMasterTask } from '../types';

interface PriorityBadgeProps {
	priority: TaskMasterTask['priority'];
}

export const PriorityBadge: React.FC<PriorityBadgeProps> = ({ priority }) => {
	if (!priority) return null;

	const variants = {
		high: 'destructive' as const,
		medium: 'default' as const,
		low: 'secondary' as const
	};

	return (
		<Badge
			variant={variants[priority] || 'secondary'}
			className="text-xs font-normal px-2 py-0.5"
		>
			{priority}
		</Badge>
	);
};

```

--------------------------------------------------------------------------------
/apps/cli/src/ui/formatters/priority-formatters.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Priority formatting utilities
 * Provides colored priority displays for tasks
 */

import type { TaskPriority } from '@tm/core';
import chalk from 'chalk';

/**
 * Module-level priority color map to avoid recreating on every call
 */
const PRIORITY_COLORS: Record<TaskPriority, (text: string) => string> = {
	critical: chalk.red.bold,
	high: chalk.red,
	medium: chalk.yellow,
	low: chalk.gray
};

/**
 * Get colored priority display
 */
export function getPriorityWithColor(priority: TaskPriority): string {
	const colorFn = PRIORITY_COLORS[priority] || chalk.white;
	return colorFn(priority);
}

```

--------------------------------------------------------------------------------
/apps/mcp/src/tools/autopilot/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Autopilot MCP tools index
 * Exports all autopilot tool registration functions
 */

export { registerAutopilotStartTool } from './start.tool.js';
export { registerAutopilotResumeTool } from './resume.tool.js';
export { registerAutopilotNextTool } from './next.tool.js';
export { registerAutopilotStatusTool } from './status.tool.js';
export { registerAutopilotCompleteTool } from './complete.tool.js';
export { registerAutopilotCommitTool } from './commit.tool.js';
export { registerAutopilotFinalizeTool } from './finalize.tool.js';
export { registerAutopilotAbortTool } from './abort.tool.js';

```

--------------------------------------------------------------------------------
/src/schemas/parse-prd.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';

// Schema for a single task from PRD parsing
const PRDSingleTaskSchema = z.object({
	id: z.number().int().positive(),
	title: z.string().min(1),
	description: z.string().min(1),
	details: z.string().nullable(),
	testStrategy: z.string().nullable(),
	priority: z.enum(['high', 'medium', 'low']).nullable(),
	dependencies: z.array(z.number().int().positive()).nullable(),
	status: z.string().nullable()
});

// Schema for the AI response - only expects tasks array since metadata is generated by the code
export const ParsePRDResponseSchema = z.object({
	tasks: z.array(PRDSingleTaskSchema)
});

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/package.json:
--------------------------------------------------------------------------------

```json
{
	"name": "@tm/claude-code-plugin",
	"version": "0.0.4",
	"description": "Task Master AI plugin for Claude Code - AI-powered task management with commands, agents, and MCP integration",
	"type": "module",
	"private": true,
	"keywords": [
		"claude-code",
		"plugin",
		"task-management",
		"ai",
		"mcp",
		"workflow",
		"productivity"
	],
	"author": {
		"name": "Eyal Toledano",
		"url": "https://github.com/eyaltoledano/claude-task-master"
	},
	"license": "MIT WITH Commons-Clause",
	"repository": {
		"type": "git",
		"url": "git+https://github.com/eyaltoledano/claude-task-master.git",
		"directory": "packages/claude-code-plugin"
	}
}

```

--------------------------------------------------------------------------------
/.cursor/mcp.json:
--------------------------------------------------------------------------------

```json
{
	"mcpServers": {
		"task-master-ai": {
			"command": "node",
			"args": ["./dist/mcp-server.js"],
			"env": {
				"ANTHROPIC_API_KEY": "ANTHROPIC_API_KEY_HERE",
				"PERPLEXITY_API_KEY": "PERPLEXITY_API_KEY_HERE",
				"OPENAI_API_KEY": "OPENAI_API_KEY_HERE",
				"GOOGLE_API_KEY": "GOOGLE_API_KEY_HERE",
				"GROQ_API_KEY": "GROQ_API_KEY_HERE",
				"XAI_API_KEY": "XAI_API_KEY_HERE",
				"OPENROUTER_API_KEY": "OPENROUTER_API_KEY_HERE",
				"MISTRAL_API_KEY": "MISTRAL_API_KEY_HERE",
				"AZURE_OPENAI_API_KEY": "AZURE_OPENAI_API_KEY_HERE",
				"OLLAMA_API_KEY": "OLLAMA_API_KEY_HERE",
				"GITHUB_API_KEY": "GITHUB_API_KEY_HERE"
			}
		}
	}
}

```

--------------------------------------------------------------------------------
/src/profiles/index.js:
--------------------------------------------------------------------------------

```javascript
// Profile exports for centralized importing
export { ampProfile } from './amp.js';
export { claudeProfile } from './claude.js';
export { clineProfile } from './cline.js';
export { codexProfile } from './codex.js';
export { cursorProfile } from './cursor.js';
export { geminiProfile } from './gemini.js';
export { kiloProfile } from './kilo.js';
export { kiroProfile } from './kiro.js';
export { opencodeProfile } from './opencode.js';
export { rooProfile } from './roo.js';
export { traeProfile } from './trae.js';
export { vscodeProfile } from './vscode.js';
export { windsurfProfile } from './windsurf.js';
export { zedProfile } from './zed.js';

```

--------------------------------------------------------------------------------
/src/profiles/gemini.js:
--------------------------------------------------------------------------------

```javascript
// Gemini profile for rule-transformer
import { createProfile } from './base-profile.js';

// Create and export gemini profile using the base factory
export const geminiProfile = createProfile({
	name: 'gemini',
	displayName: 'Gemini',
	url: 'codeassist.google',
	docsUrl: 'github.com/google-gemini/gemini-cli',
	profileDir: '.gemini', // Keep .gemini for settings.json
	rulesDir: '.', // Root directory for GEMINI.md
	mcpConfigName: 'settings.json', // Override default 'mcp.json'
	includeDefaultRules: false,
	fileMap: {
		'AGENT.md': 'AGENTS.md', // Generic base for all AI agents
		'GEMINI.md': 'GEMINI.md' // Gemini-specific features only
	}
});

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/quick-install-taskmaster.md:
--------------------------------------------------------------------------------

```markdown
Quick install Task Master globally if not already installed.

Execute this streamlined installation:

```bash
# Check and install in one command
task-master --version 2>/dev/null || npm install -g task-master-ai

# Verify installation
task-master --version

# Quick setup check
task-master models --status || echo "Note: You'll need to set up an AI provider API key"
```

If you see "command not found" after installation, you may need to:
1. Restart your terminal
2. Or add npm global bin to PATH: `export PATH=$(npm bin -g):$PATH`

Once installed, you can use all the Task Master commands!

Quick test: Run `/project:help` to see all available commands.
```

--------------------------------------------------------------------------------
/src/schemas/add-task.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';

// Schema that matches the inline AiTaskDataSchema from add-task.js
export const AddTaskResponseSchema = z.object({
	title: z.string().describe('Clear, concise title for the task'),
	description: z
		.string()
		.describe('A one or two sentence description of the task'),
	details: z
		.string()
		.describe('In-depth implementation details, considerations, and guidance'),
	testStrategy: z
		.string()
		.describe('Detailed approach for verifying task completion'),
	dependencies: z
		.array(z.number())
		.nullable()
		.describe(
			'Array of task IDs that this task depends on (must be completed before this task can start)'
		)
});

```

--------------------------------------------------------------------------------
/apps/extension/src/components/ui/separator.tsx:
--------------------------------------------------------------------------------

```typescript
'use client';

import * as SeparatorPrimitive from '@radix-ui/react-separator';
import type * as React from 'react';

import { cn } from '@/lib/utils';

function Separator({
	className,
	orientation = 'horizontal',
	decorative = true,
	...props
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
	return (
		<SeparatorPrimitive.Root
			data-slot="separator"
			decorative={decorative}
			orientation={orientation}
			className={cn(
				'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',
				className
			)}
			{...props}
		/>
	);
}

export { Separator };

```

--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feedback.md:
--------------------------------------------------------------------------------

```markdown
---
name: Feedback
about: Give us specific feedback on the product/approach/tech
title: 'feedback: '
labels: feedback
assignees: ''
---

### Feedback Summary

Provide a clear summary or direct quote from user feedback.

### User Context

Explain the user's context or scenario in which this feedback was provided.

### User Impact

Describe how this feedback affects the user experience or workflow.

### Suggestions

Provide any initial thoughts, potential solutions, or improvements based on the feedback.

### Relevant Screenshots or Examples

Attach screenshots, logs, or examples that illustrate the feedback.

### Additional Notes

Any additional context or related information.

```

--------------------------------------------------------------------------------
/apps/extension/src/components/constants.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Shared constants for TaskDetails components
 */

/**
 * Status color definitions for visual indicators
 */
export const STATUS_DOT_COLORS = {
	done: '#22c55e', // Green
	'in-progress': '#3b82f6', // Blue
	review: '#a855f7', // Purple
	deferred: '#ef4444', // Red
	cancelled: '#6b7280', // Gray
	pending: '#eab308' // Yellow (default)
} as const;

export type TaskStatus = keyof typeof STATUS_DOT_COLORS;

/**
 * Get the color for a status dot indicator
 * @param status - The task status
 * @returns The hex color code for the status
 */
export function getStatusDotColor(status: string): string {
	return STATUS_DOT_COLORS[status as TaskStatus] || STATUS_DOT_COLORS.pending;
}

```

--------------------------------------------------------------------------------
/packages/tm-core/src/utils/time.utils.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Time utilities for formatting relative timestamps
 * Shared across CLI, MCP, extension, and other interfaces
 */

import { formatDistanceToNow } from 'date-fns';

/**
 * Format a date as relative time from now (e.g., "2 hours ago", "3 days ago")
 * @param date - Date string or Date object to format
 * @returns Relative time string (e.g., "less than a minute ago", "5 minutes ago", "2 weeks ago")
 */
export function formatRelativeTime(date: string | Date): string {
	const dateObj = typeof date === 'string' ? new Date(date) : date;

	// Use date-fns for robust formatting with proper edge case handling
	return formatDistanceToNow(dateObj, { addSuffix: true });
}

```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/bugfix.md:
--------------------------------------------------------------------------------

```markdown
## 🐛 Bug Fix

### 🔍 Bug Description
<!-- Describe the bug -->

### 🔗 Related Issues
<!-- Fixes #123 -->

### ✨ Solution
<!-- How does this PR fix the bug? -->

## How to Test

### Steps that caused the bug:
1. 
2. 

**Before fix:** 
**After fix:** 

### Quick verification:
```bash
# Commands to verify the fix
```

## Contributor Checklist
- [ ] Created changeset: `npm run changeset`
- [ ] Tests pass: `npm test`
- [ ] Format check passes: `npm run format-check`
- [ ] Addressed CodeRabbit comments
- [ ] Added unit tests (if applicable)
- [ ] Manually verified the fix works

---

### For Maintainers
- [ ] Root cause identified
- [ ] Fix doesn't introduce new issues
- [ ] CI passes
```

--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------

```json
{
	"json.schemas": [
		{
			"fileMatch": ["src/prompts/*.json"],
			"url": "./src/prompts/schemas/prompt-template.schema.json"
		}
	],
	"files.associations": {
		"src/prompts/*.json": "json"
	},

	"json.format.enable": true,
	"json.validate.enable": true,
	"typescript.tsdk": "node_modules/typescript/lib",
	"[typescript]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"[typescriptreact]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"[javascript]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"[json]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"editor.codeActionsOnSave": {
		"source.organizeImports.biome": "explicit",
		"source.fixAll.biome": "explicit"
	}
}

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/auth/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Authentication module exports
 */

export { AuthDomain, type StorageDisplayInfo } from './auth-domain.js';
export { AuthManager } from './managers/auth-manager.js';
export { ContextStore, type StoredContext } from './services/context-store.js';
export { OAuthService } from './services/oauth-service.js';
export { SupabaseSessionStorage } from './services/supabase-session-storage.js';
export type {
	Organization,
	RemoteTask
} from './services/organization.service.js';

export type {
	AuthCredentials,
	OAuthFlowOptions,
	AuthConfig,
	CliData,
	UserContext
} from './types.js';

export { AuthenticationError } from './types.js';

export {
	DEFAULT_AUTH_CONFIG,
	getAuthConfig
} from './config.js';

```

--------------------------------------------------------------------------------
/apps/cli/src/utils/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview CLI utilities main export
 * General-purpose utilities (non-UI)
 *
 * Note: UI-related utilities have been moved to src/ui/
 * For backward compatibility, use src/utils/ui.ts which re-exports from src/ui/
 */

// Authentication helpers
export {
	checkAuthentication,
	type CheckAuthOptions
} from './auth-helpers.js';

// Error handling utilities
export { displayError, isDebugMode } from './error-handler.js';

// Auto-update utilities
export {
	checkForUpdate,
	performAutoUpdate,
	displayUpgradeNotification,
	compareVersions,
	restartWithNewVersion
} from './auto-update.js';

// Display helpers (command-specific helpers)
export { displayCommandHeader } from './display-helpers.js';

```

--------------------------------------------------------------------------------
/apps/extension/src/webview/components/ToastContainer.tsx:
--------------------------------------------------------------------------------

```typescript
/**
 * Toast Container Component
 */

import React from 'react';
import { ToastNotification } from './ToastNotification';
import type { ToastNotification as ToastType } from '../types';

interface ToastContainerProps {
	notifications: ToastType[];
	onDismiss: (id: string) => void;
}

export const ToastContainer: React.FC<ToastContainerProps> = ({
	notifications,
	onDismiss
}) => {
	return (
		<div className="fixed top-4 right-4 z-50 pointer-events-none">
			<div className="flex flex-col items-end pointer-events-auto">
				{notifications.map((notification) => (
					<ToastNotification
						key={notification.id}
						notification={notification}
						onDismiss={onDismiss}
					/>
				))}
			</div>
		</div>
	);
};

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/to-pending.md:
--------------------------------------------------------------------------------

```markdown
Set a task's status to pending.

Arguments: $ARGUMENTS (task ID)

## Setting Task to Pending

This moves a task back to the pending state, useful for:
- Resetting erroneously started tasks
- Deferring work that was prematurely begun
- Reorganizing sprint priorities

## Execution

```bash
task-master set-status --id=$ARGUMENTS --status=pending
```

## Validation

Before setting to pending:
- Warn if task is currently in-progress
- Check if this will block other tasks
- Suggest documenting why it's being reset
- Preserve any work already done

## Smart Actions

After setting to pending:
- Update sprint planning if needed
- Notify about freed resources
- Suggest priority reassessment
- Log the status change with context
```

--------------------------------------------------------------------------------
/mcp-server/src/core/direct-functions/cache-stats.js:
--------------------------------------------------------------------------------

```javascript
/**
 * cache-stats.js
 * Direct function implementation for retrieving cache statistics
 */

import { contextManager } from '../context-manager.js';

/**
 * Get cache statistics for monitoring
 * @param {Object} args - Command arguments
 * @param {Object} log - Logger object
 * @returns {Object} - Cache statistics
 */
export async function getCacheStatsDirect(args, log) {
	try {
		log.info('Retrieving cache statistics');
		const stats = contextManager.getStats();
		return {
			success: true,
			data: stats
		};
	} catch (error) {
		log.error(`Error getting cache stats: ${error.message}`);
		return {
			success: false,
			error: {
				code: 'CACHE_STATS_ERROR',
				message: error.message || 'Unknown error occurred'
			}
		};
	}
}

```

--------------------------------------------------------------------------------
/apps/extension/src/components/ui/textarea.tsx:
--------------------------------------------------------------------------------

```typescript
import type * as React from 'react';

import { cn } from '@/lib/utils';

function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {
	return (
		<textarea
			data-slot="textarea"
			className={cn(
				'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
				className
			)}
			{...props}
		/>
	);
}

export { Textarea };

```

--------------------------------------------------------------------------------
/packages/ai-sdk-provider-grok-cli/package.json:
--------------------------------------------------------------------------------

```json
{
	"name": "@tm/ai-sdk-provider-grok-cli",
	"private": true,
	"description": "AI SDK provider for Grok CLI integration",
	"type": "module",
	"types": "./src/index.ts",
	"main": "./dist/index.js",
	"exports": {
		".": "./src/index.ts"
	},
	"scripts": {
		"test": "vitest run",
		"test:watch": "vitest",
		"test:ui": "vitest --ui",
		"typecheck": "tsc --noEmit"
	},
	"dependencies": {
		"@ai-sdk/provider": "^2.0.0",
		"@ai-sdk/provider-utils": "^3.0.10",
		"jsonc-parser": "^3.3.1"
	},
	"devDependencies": {
		"@types/node": "^22.18.6",
		"typescript": "^5.9.2",
		"vitest": "^3.2.4"
	},
	"engines": {
		"node": ">=18"
	},
	"keywords": ["ai", "grok", "x.ai", "cli", "language-model", "provider"],
	"files": ["dist/**/*", "README.md"],
	"version": ""
}

```

--------------------------------------------------------------------------------
/mcp-server/server.js:
--------------------------------------------------------------------------------

```javascript
#!/usr/bin/env node

import TaskMasterMCPServer from './src/index.js';
import dotenv from 'dotenv';
import logger from './src/logger.js';

// Load environment variables
dotenv.config();

// Set MCP mode to silence tm-core console output
process.env.TASK_MASTER_MCP = 'true';

/**
 * Start the MCP server
 */
async function startServer() {
	const server = new TaskMasterMCPServer();

	// Handle graceful shutdown
	process.on('SIGINT', async () => {
		await server.stop();
		process.exit(0);
	});

	process.on('SIGTERM', async () => {
		await server.stop();
		process.exit(0);
	});

	try {
		await server.start();
	} catch (error) {
		logger.error(`Failed to start MCP server: ${error.message}`);
		process.exit(1);
	}
}

// Start the server
startServer();

```

--------------------------------------------------------------------------------
/apps/extension/src/components/ui/collapsible.tsx:
--------------------------------------------------------------------------------

```typescript
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';

function Collapsible({
	...props
}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {
	return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} />;
}

function CollapsibleTrigger({
	...props
}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {
	return (
		<CollapsiblePrimitive.CollapsibleTrigger
			data-slot="collapsible-trigger"
			{...props}
		/>
	);
}

function CollapsibleContent({
	...props
}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {
	return (
		<CollapsiblePrimitive.CollapsibleContent
			data-slot="collapsible-content"
			{...props}
		/>
	);
}

export { Collapsible, CollapsibleTrigger, CollapsibleContent };

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/list-tasks-with-subtasks.md:
--------------------------------------------------------------------------------

```markdown
List all tasks including their subtasks in a hierarchical view.

This command shows all tasks with their nested subtasks, providing a complete project overview.

## Execution

Run the Task Master list command with subtasks flag:
```bash
task-master list --with-subtasks
```

## Enhanced Display

I'll organize the output to show:
- Parent tasks with clear indicators
- Nested subtasks with proper indentation
- Status badges for quick scanning
- Dependencies and blockers highlighted
- Progress indicators for tasks with subtasks

## Smart Filtering

Based on the task hierarchy:
- Show completion percentage for parent tasks
- Highlight blocked subtask chains
- Group by functional areas
- Indicate critical path items

This gives you a complete tree view of your project structure.
```

--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------

```markdown
---
name: Bug report
about: Create a report to help us improve
title: 'bug: '
labels: bug
assignees: ''
---

### Description

Detailed description of the problem, including steps to reproduce the issue.

### Steps to Reproduce

1. Step-by-step instructions to reproduce the issue
2. Include command examples or UI interactions

### Expected Behavior

Describe clearly what the expected outcome or behavior should be.

### Actual Behavior

Describe clearly what the actual outcome or behavior is.

### Screenshots or Logs

Provide screenshots, logs, or error messages if applicable.

### Environment

- Task Master version:
- Node.js version:
- Operating system:
- IDE (if applicable):

### Additional Context

Any additional information or context that might help diagnose the issue.

```

--------------------------------------------------------------------------------
/packages/tm-bridge/package.json:
--------------------------------------------------------------------------------

```json
{
	"name": "@tm/bridge",
	"private": true,
	"description": "TEMPORARY: Bridge layer for legacy code migration. DELETE when legacy scripts are removed.",
	"type": "module",
	"types": "./src/index.ts",
	"main": "./dist/index.js",
	"exports": {
		".": "./src/index.ts"
	},
	"scripts": {
		"test": "vitest run",
		"test:watch": "vitest",
		"lint": "biome check --write",
		"lint:check": "biome check",
		"typecheck": "tsc --noEmit"
	},
	"dependencies": {
		"@tm/core": "*",
		"chalk": "5.6.2",
		"boxen": "^8.0.1",
		"ora": "^8.1.1",
		"cli-table3": "^0.6.5"
	},
	"devDependencies": {
		"@types/node": "^22.10.5",
		"typescript": "^5.9.2",
		"vitest": "^3.2.4"
	},
	"files": ["src", "README.md"],
	"keywords": ["temporary", "bridge", "migration"],
	"author": "Task Master AI",
	"version": ""
}

```

--------------------------------------------------------------------------------
/assets/config.json:
--------------------------------------------------------------------------------

```json
{
	"models": {
		"main": {
			"provider": "anthropic",
			"modelId": "claude-3-7-sonnet-20250219",
			"maxTokens": 100000,
			"temperature": 0.2
		},
		"research": {
			"provider": "perplexity",
			"modelId": "sonar-pro",
			"maxTokens": 8700,
			"temperature": 0.1
		},
		"fallback": {
			"provider": "anthropic",
			"modelId": "claude-3-7-sonnet-20250219",
			"maxTokens": 8192,
			"temperature": 0.2
		}
	},
	"global": {
		"logLevel": "info",
		"debug": false,
		"defaultSubtasks": 5,
		"defaultPriority": "medium",
		"projectName": "Taskmaster",
		"defaultTag": "master",
		"ollamaBaseURL": "http://localhost:11434/api",
		"azureOpenaiBaseURL": "https://your-endpoint.openai.azure.com/",
		"bedrockBaseURL": "https://bedrock.us-east-1.amazonaws.com",
		"responseLanguage": "English"
	}
}

```

--------------------------------------------------------------------------------
/apps/extension/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"compilerOptions": {
		"module": "ESNext",
		"target": "ES2022",
		"outDir": "out",
		"lib": ["ES2022", "DOM"],
		"sourceMap": true,
		"strict": true /* enable all strict type-checking options */,
		"moduleResolution": "Node",
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"jsx": "react-jsx",
		"allowSyntheticDefaultImports": true,
		"resolveJsonModule": true,
		"declaration": false,
		"declarationMap": false,
		"baseUrl": ".",
		"paths": {
			"@/*": ["./src/*"],
			"@/components/*": ["./src/components/*"],
			"@/lib/*": ["./src/lib/*"],
			"@tm/core": ["../../packages/tm-core/src/index.ts"],
			"@tm/core/*": ["../../packages/tm-core/src/*"]
		}
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", ".vscode-test", "out", "dist"]
}

```

--------------------------------------------------------------------------------
/sonar-project.properties:
--------------------------------------------------------------------------------

```
# SonarQube/SonarCloud Configuration
sonar.projectKey=task-master-ai
sonar.organization=your-org-name
sonar.projectName=Task Master AI
sonar.projectVersion=0.31.2

# Source code directories
sonar.sources=apps,packages,scripts,src

# Test directories (excluded from coverage)
sonar.tests=tests
sonar.test.inclusions=**/*.test.js,**/*.spec.js,**/*.test.ts,**/*.spec.ts

# Exclude test files from source analysis
sonar.coverage.exclusions=**/*.test.js,**/*.spec.js,**/*.test.ts,**/*.spec.ts,**/tests/**,**/__tests__/**,**/node_modules/**,**/dist/**,**/coverage/**

# Exclude other non-source files
sonar.exclusions=**/node_modules/**,**/dist/**,**/coverage/**,**/*.config.js,**/*.config.ts

# JavaScript/TypeScript settings
sonar.javascript.lcov.reportPaths=coverage/lcov.info

# Encoding
sonar.sourceEncoding=UTF-8

```

--------------------------------------------------------------------------------
/apps/extension/src/utils/event-emitter.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Simple Event Emitter
 * Lightweight alternative to complex event bus
 */

export type EventHandler = (...args: any[]) => void | Promise<void>;

export class EventEmitter {
	private handlers = new Map<string, Set<EventHandler>>();

	on(event: string, handler: EventHandler): () => void {
		if (!this.handlers.has(event)) {
			this.handlers.set(event, new Set());
		}
		this.handlers.get(event)?.add(handler);

		// Return unsubscribe function
		return () => this.off(event, handler);
	}

	off(event: string, handler: EventHandler): void {
		this.handlers.get(event)?.delete(handler);
	}

	emit(event: string, ...args: any[]): void {
		this.handlers.get(event)?.forEach((handler) => {
			try {
				handler(...args);
			} catch (error) {
				console.error(`Error in event handler for ${event}:`, error);
			}
		});
	}
}

```

--------------------------------------------------------------------------------
/apps/cli/src/ui/formatters/dependency-formatters.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Dependency formatting utilities
 * Provides formatted dependency displays with status indicators
 */

import type { Task } from '@tm/core';
import chalk from 'chalk';

/**
 * Format dependencies with their status
 */
export function formatDependenciesWithStatus(
	dependencies: string[] | number[],
	tasks: Task[]
): string {
	if (!dependencies || dependencies.length === 0) {
		return chalk.gray('none');
	}

	const taskMap = new Map(tasks.map((t) => [t.id.toString(), t]));

	return dependencies
		.map((depId) => {
			const task = taskMap.get(depId.toString());
			if (!task) {
				return chalk.red(`${depId} (not found)`);
			}

			const statusIcon =
				task.status === 'done'
					? '✓'
					: task.status === 'in-progress'
						? '►'
						: '○';

			return `${depId}${statusIcon}`;
		})
		.join(', ');
}

```

--------------------------------------------------------------------------------
/bin/task-master.js:
--------------------------------------------------------------------------------

```javascript
#!/usr/bin/env node

/**
 * Task Master
 * Copyright (c) 2025 Eyal Toledano, Ralph Khreish
 *
 * This software is licensed under the MIT License with Commons Clause.
 * You may use this software for any purpose, including commercial applications,
 * and modify and redistribute it freely, subject to the following restrictions:
 *
 * 1. You may not sell this software or offer it as a service.
 * 2. The origin of this software must not be misrepresented.
 * 3. Altered source versions must be plainly marked as such.
 *
 * For the full license text, see the LICENSE file in the root directory.
 */

/**
 * Claude Task Master CLI
 * Main entry point for globally installed package
 */

// Direct imports instead of spawning child processes
import { runCLI } from '../scripts/modules/commands.js';

// Simply run the CLI directly
runCLI();

```

--------------------------------------------------------------------------------
/src/constants/task-status.js:
--------------------------------------------------------------------------------

```javascript
/**
 * @typedef {'pending' | 'done' | 'in-progress' | 'review' | 'deferred' | 'cancelled'} TaskStatus
 */

/**
 * Task status options list
 * @type {TaskStatus[]}
 * @description Defines possible task statuses:
 * - pending: Task waiting to start
 * - done: Task completed
 * - in-progress: Task in progress
 * - review: Task completed and waiting for review
 * - deferred: Task postponed or paused
 * - cancelled: Task cancelled and will not be completed
 */
export const TASK_STATUS_OPTIONS = [
	'pending',
	'done',
	'in-progress',
	'review',
	'deferred',
	'cancelled'
];

/**
 * Check if a given status is a valid task status
 * @param {string} status - The status to check
 * @returns {boolean} True if the status is valid, false otherwise
 */
export function isValidTaskStatus(status) {
	return TASK_STATUS_OPTIONS.includes(status);
}

```

--------------------------------------------------------------------------------
/.claude-plugin/marketplace.json:
--------------------------------------------------------------------------------

```json
{
	"name": "taskmaster",
	"owner": {
		"name": "Hamster",
		"email": "[email protected]"
	},
	"metadata": {
		"description": "Official marketplace for Taskmaster AI - AI-powered task management for ambitious development",
		"version": "1.0.0"
	},
	"plugins": [
		{
			"name": "taskmaster",
			"source": "./packages/claude-code-plugin",
			"description": "AI-powered task management system for ambitious development workflows with intelligent orchestration, complexity analysis, and automated coordination",
			"author": {
				"name": "Hamster"
			},
			"homepage": "https://github.com/eyaltoledano/claude-task-master",
			"repository": "https://github.com/eyaltoledano/claude-task-master",
			"keywords": [
				"task-management",
				"ai",
				"workflow",
				"orchestration",
				"automation",
				"mcp"
			],
			"category": "productivity"
		}
	]
}

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/init-project-quick.md:
--------------------------------------------------------------------------------

```markdown
Quick initialization with auto-confirmation.

Arguments: $ARGUMENTS

Initialize a Task Master project without prompts, accepting all defaults.

## Quick Setup

```bash
task-master init -y
```

## What It Does

1. Creates `.taskmaster/` directory structure
2. Initializes empty `tasks.json`
3. Sets up default configuration
4. Uses directory name as project name
5. Skips all confirmation prompts

## Smart Defaults

- Project name: Current directory name
- Description: "Task Master Project"
- Model config: Existing environment vars
- Task structure: Standard format

## Next Steps

After quick init:
1. Configure AI models if needed:
   ```
   /taskmaster:models/setup
   ```

2. Parse PRD if available:
   ```
   /taskmaster:parse-prd <file>
   ```

3. Or create first task:
   ```
   /taskmaster:add-task create initial setup
   ```

Perfect for rapid project setup!
```

--------------------------------------------------------------------------------
/apps/extension/src/webview/constants/index.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Application constants
 */

import type { Status } from '@/components/ui/shadcn-io/kanban';

export const kanbanStatuses = [
	{
		id: 'pending',
		title: 'Pending',
		color: 'yellow',
		className: 'text-yellow-600 border-yellow-600/20'
	},
	{
		id: 'in-progress',
		title: 'In Progress',
		color: 'blue',
		className: 'text-blue-600 border-blue-600/20'
	},
	{
		id: 'review',
		title: 'Review',
		color: 'purple',
		className: 'text-purple-600 border-purple-600/20'
	},
	{
		id: 'done',
		title: 'Done',
		color: 'green',
		className: 'text-green-600 border-green-600/20'
	},
	{
		id: 'deferred',
		title: 'Deferred',
		color: 'gray',
		className: 'text-gray-600 border-gray-600/20'
	}
] as const;

export const CACHE_DURATION = 30000; // 30 seconds
export const REQUEST_TIMEOUT = 30000; // 30 seconds
export const HEADER_HEIGHT = 73; // Header with padding and border

```

--------------------------------------------------------------------------------
/.taskmaster/tasks/task_002_tm-start.txt:
--------------------------------------------------------------------------------

```
# Task ID: 2
# Title: Register start command in CLI
# Status: pending
# Dependencies: 7
# Priority: high
# Description: Register the start command in the CLI application
# Details:
Update the CLI application to register the new start command. This involves importing the StartCommand class and adding it to the commands array in the CLI initialization.

In `apps/cli/src/index.ts` or the appropriate file where commands are registered:

```typescript
import { StartCommand } from './commands/start.command';

// Add StartCommand to the commands array
const commands = [
  // ... existing commands
  new StartCommand(),
];

// Register all commands
commands.forEach(command => command.register(program));
```

# Test Strategy:
Verify the command is correctly registered by running the CLI with --help and checking that the start command appears in the list of available commands.

```

--------------------------------------------------------------------------------
/.github/workflows/auto-close-duplicates.yml:
--------------------------------------------------------------------------------

```yaml
name: Auto-close duplicate issues
# description: Auto-closes issues that are duplicates of existing issues

on:
  schedule:
    - cron: "0 9 * * *"  # Runs daily at 9 AM UTC
  workflow_dispatch:

jobs:
  auto-close-duplicates:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    permissions:
      contents: read
      issues: write  # Need write permission to close issues and add comments

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Auto-close duplicate issues
        run: node .github/scripts/auto-close-duplicates.mjs
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
          GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}

```

--------------------------------------------------------------------------------
/apps/extension/src/webview/providers/QueryProvider.tsx:
--------------------------------------------------------------------------------

```typescript
import React from 'react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

// Create a stable query client
const queryClient = new QueryClient({
	defaultOptions: {
		queries: {
			// Don't refetch on window focus by default
			refetchOnWindowFocus: false,
			// Keep data fresh for 30 seconds
			staleTime: 30 * 1000,
			// Cache data for 5 minutes
			gcTime: 5 * 60 * 1000,
			// Retry failed requests 3 times
			retry: 3,
			// Retry delay exponentially backs off
			retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000)
		},
		mutations: {
			// Don't retry mutations by default
			retry: false
		}
	}
});

interface QueryProviderProps {
	children: React.ReactNode;
}

export const QueryProvider: React.FC<QueryProviderProps> = ({ children }) => {
	return (
		<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
	);
};

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/storage/adapters/file-storage/path-resolver.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Path resolution utilities for single tasks.json file
 */

import path from 'node:path';

/**
 * Handles path resolution for the single tasks.json file storage
 */
export class PathResolver {
	private readonly basePath: string;
	private readonly tasksDir: string;
	private readonly tasksFilePath: string;

	constructor(projectPath: string) {
		this.basePath = path.join(projectPath, '.taskmaster');
		this.tasksDir = path.join(this.basePath, 'tasks');
		this.tasksFilePath = path.join(this.tasksDir, 'tasks.json');
	}

	/**
	 * Get the base storage directory path
	 */
	getBasePath(): string {
		return this.basePath;
	}

	/**
	 * Get the tasks directory path
	 */
	getTasksDir(): string {
		return this.tasksDir;
	}

	/**
	 * Get the path to the single tasks.json file
	 * All tags are stored in this one file
	 */
	getTasksPath(): string {
		return this.tasksFilePath;
	}
}

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/to-in-progress.md:
--------------------------------------------------------------------------------

```markdown
Start working on a task by setting its status to in-progress.

Arguments: $ARGUMENTS (task ID)

## Starting Work on Task

This command does more than just change status - it prepares your environment for productive work.

## Pre-Start Checks

1. Verify dependencies are met
2. Check if another task is already in-progress
3. Ensure task details are complete
4. Validate test strategy exists

## Execution

```bash
task-master set-status --id=$ARGUMENTS --status=in-progress
```

## Environment Setup

After setting to in-progress:
1. Create/checkout appropriate git branch
2. Open relevant documentation
3. Set up test watchers if applicable
4. Display task details and acceptance criteria
5. Show similar completed tasks for reference

## Smart Suggestions

- Estimated completion time based on complexity
- Related files from similar tasks
- Potential blockers to watch for
- Recommended first steps
```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/workflow/services/test-result-validator.types.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Test phase in TDD workflow
 */
export type TestPhase = 'RED' | 'GREEN' | 'REFACTOR';

/**
 * Code coverage metrics
 */
export interface Coverage {
	line: number;
	branch: number;
	function: number;
	statement: number;
}

/**
 * Test result data structure
 */
export interface TestResult {
	total: number;
	passed: number;
	failed: number;
	skipped: number;
	phase: TestPhase;
	coverage?: Coverage;
}

/**
 * Coverage threshold configuration
 */
export interface CoverageThresholds {
	line?: number;
	branch?: number;
	function?: number;
	statement?: number;
}

/**
 * Validation result structure
 */
export interface ValidationResult {
	valid: boolean;
	errors: string[];
	warnings?: string[];
	suggestions?: string[];
}

/**
 * Phase-specific validation options
 */
export interface PhaseValidationOptions {
	phase: TestPhase;
	coverageThresholds?: CoverageThresholds;
	previousTestCount?: number;
}

```

--------------------------------------------------------------------------------
/apps/cli/src/ui/components/suggested-steps.component.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Suggested next steps component
 * Displays helpful command suggestions at the end of the list
 */

import boxen from 'boxen';
import chalk from 'chalk';
import { getBoxWidth } from '../../utils/ui.js';

/**
 * Display suggested next steps section
 */
export function displaySuggestedNextSteps(): void {
	const steps = [
		`${chalk.cyan('1.')} Run ${chalk.yellow('task-master next')} to see what to work on next`,
		`${chalk.cyan('2.')} Run ${chalk.yellow('task-master expand --id=<id>')} to break down a task into subtasks`,
		`${chalk.cyan('3.')} Run ${chalk.yellow('task-master set-status --id=<id> --status=done')} to mark a task as complete`
	];

	console.log(
		boxen(
			chalk.white.bold('Suggested Next Steps:') + '\n\n' + steps.join('\n'),
			{
				padding: 1,
				margin: { top: 0, bottom: 1 },
				borderStyle: 'round',
				borderColor: 'gray',
				width: getBoxWidth(0.97)
			}
		)
	);
}

```

--------------------------------------------------------------------------------
/mcp-server/src/core/direct-functions/response-language.js:
--------------------------------------------------------------------------------

```javascript
/**
 * response-language.js
 * Direct function for managing response language via MCP
 */

import { setResponseLanguage } from '../../../../scripts/modules/task-manager.js';
import {
	enableSilentMode,
	disableSilentMode
} from '../../../../scripts/modules/utils.js';
import { createLogWrapper } from '../../tools/utils.js';

export async function responseLanguageDirect(args, log, context = {}) {
	const { projectRoot, language } = args;
	const mcpLog = createLogWrapper(log);

	log.info(
		`Executing response-language_direct with args: ${JSON.stringify(args)}`
	);
	log.info(`Using project root: ${projectRoot}`);

	try {
		enableSilentMode();
		return setResponseLanguage(language, {
			mcpLog,
			projectRoot
		});
	} catch (error) {
		return {
			success: false,
			error: {
				code: 'DIRECT_FUNCTION_ERROR',
				message: error.message,
				details: error.stack
			}
		};
	} finally {
		disableSilentMode();
	}
}

```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/integration.md:
--------------------------------------------------------------------------------

```markdown
# 🔌 New Integration

## What tool/IDE is being integrated?

<!-- Name and brief description -->

## What can users do with it?

<!-- Key benefits -->

## How to Enable

### Setup

```bash
task-master rules add [name]
# Any other setup steps
```

### Example Usage

<!-- Show it in action -->

```bash
# Real example
```

### Natural Language Hooks (if applicable)

```
"When tests pass, mark task as done"
# Other examples
```

## Contributor Checklist

- [ ] Created changeset: `npm run changeset`
- [ ] Tests pass: `npm test`
- [ ] Format check passes: `npm run format-check`
- [ ] Addressed CodeRabbit comments
- [ ] Integration fully tested with target tool/IDE
- [ ] Error scenarios tested
- [ ] Added integration tests
- [ ] Documentation includes setup guide
- [ ] Examples are working and clear

---

## For Maintainers

- [ ] Integration stability verified
- [ ] Documentation comprehensive
- [ ] Examples working

```

--------------------------------------------------------------------------------
/scripts/task-complexity-report.json:
--------------------------------------------------------------------------------

```json
{
	"meta": {
		"generatedAt": "2025-06-14T02:15:51.082Z",
		"tasksAnalyzed": 2,
		"totalTasks": 3,
		"analysisCount": 5,
		"thresholdScore": 5,
		"projectName": "Test Project",
		"usedResearch": false
	},
	"complexityAnalysis": [
		{
			"id": 1,
			"complexity": 3,
			"subtaskCount": 2
		},
		{
			"id": 2,
			"complexity": 7,
			"subtaskCount": 5
		},
		{
			"id": 3,
			"complexity": 9,
			"subtaskCount": 8
		},
		{
			"taskId": 1,
			"taskTitle": "Task 1",
			"complexityScore": 5,
			"recommendedSubtasks": 3,
			"expansionPrompt": "Break down this task with a focus on task 1.",
			"reasoning": "Automatically added due to missing analysis in AI response."
		},
		{
			"taskId": 2,
			"taskTitle": "Task 2",
			"complexityScore": 5,
			"recommendedSubtasks": 3,
			"expansionPrompt": "Break down this task with a focus on task 2.",
			"reasoning": "Automatically added due to missing analysis in AI response."
		}
	]
}

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/to-done.md:
--------------------------------------------------------------------------------

```markdown
Mark a task as completed.

Arguments: $ARGUMENTS (task ID)

## Completing a Task

This command validates task completion and updates project state intelligently.

## Pre-Completion Checks

1. Verify test strategy was followed
2. Check if all subtasks are complete
3. Validate acceptance criteria met
4. Ensure code is committed

## Execution

```bash
task-master set-status --id=$ARGUMENTS --status=done
```

## Post-Completion Actions

1. **Update Dependencies**
   - Identify newly unblocked tasks
   - Update sprint progress
   - Recalculate project timeline

2. **Documentation**
   - Generate completion summary
   - Update CLAUDE.md with learnings
   - Log implementation approach

3. **Next Steps**
   - Show newly available tasks
   - Suggest logical next task
   - Update velocity metrics

## Celebration & Learning

- Show impact of completion
- Display unblocked work
- Recognize achievement
- Capture lessons learned
```

--------------------------------------------------------------------------------
/apps/docs/logo/dark.svg:
--------------------------------------------------------------------------------

```
<svg width="800" height="240" viewBox="0 0 800 240" xmlns="http://www.w3.org/2000/svg">
  <!-- Background -->
  <rect width="800" height="240" fill="transparent"/>
  
  <!-- Curly braces -->
  <text x="40" y="156" font-size="140" fill="white" font-family="monospace">{</text>
  <text x="230" y="156" font-size="140" fill="white" font-family="monospace">}</text>
  
  <!-- Blue form with check -->
  <rect x="120" y="50" width="120" height="140" rx="16" fill="#3366CC"/>
  <polyline points="150,110 164,128 190,84" fill="none" stroke="white" stroke-width="10"/>
  <circle cx="150" cy="144" r="7" fill="white"/>
  <rect x="168" y="140" width="48" height="10" fill="white"/>
  <circle cx="150" cy="168" r="7" fill="white"/>
  <rect x="168" y="164" width="48" height="10" fill="white"/>

  <!-- Text -->
  <text x="340" y="156" font-family="Arial, sans-serif" font-size="76" font-weight="bold" fill="white">Task Master</text>
</svg>

```

--------------------------------------------------------------------------------
/apps/extension/src/webview/components/AppContent.tsx:
--------------------------------------------------------------------------------

```typescript
import React from 'react';
import { TaskMasterKanban } from './TaskMasterKanban';
import TaskDetailsView from '@/components/TaskDetailsView';
import { ConfigView } from '@/components/ConfigView';
import { useVSCodeContext } from '../contexts/VSCodeContext';

export const AppContent: React.FC = () => {
	const { state, dispatch, sendMessage } = useVSCodeContext();

	if (state.currentView === 'config') {
		return (
			<ConfigView
				sendMessage={sendMessage}
				onNavigateBack={() => dispatch({ type: 'NAVIGATE_TO_KANBAN' })}
			/>
		);
	}

	if (state.currentView === 'task-details' && state.selectedTaskId) {
		return (
			<TaskDetailsView
				taskId={state.selectedTaskId}
				onNavigateBack={() => dispatch({ type: 'NAVIGATE_TO_KANBAN' })}
				onNavigateToTask={(taskId: string) =>
					dispatch({ type: 'NAVIGATE_TO_TASK', payload: taskId })
				}
			/>
		);
	}

	// Default to Kanban view
	return <TaskMasterKanban />;
};

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/to-review.md:
--------------------------------------------------------------------------------

```markdown
Set a task's status to review.

Arguments: $ARGUMENTS (task ID)

## Marking Task for Review

This status indicates work is complete but needs verification before final approval.

## When to Use Review Status

- Code complete but needs peer review
- Implementation done but needs testing
- Documentation written but needs proofreading
- Design complete but needs stakeholder approval

## Execution

```bash
task-master set-status --id=$ARGUMENTS --status=review
```

## Review Preparation

When setting to review:
1. **Generate Review Checklist**
   - Link to PR/MR if applicable
   - Highlight key changes
   - Note areas needing attention
   - Include test results

2. **Documentation**
   - Update task with review notes
   - Link relevant artifacts
   - Specify reviewers if known

3. **Smart Actions**
   - Create review reminders
   - Track review duration
   - Suggest reviewers based on expertise
   - Prepare rollback plan if needed
```

--------------------------------------------------------------------------------
/apps/docs/logo/light.svg:
--------------------------------------------------------------------------------

```
<svg width="800" height="240" viewBox="0 0 800 240" xmlns="http://www.w3.org/2000/svg">
  <!-- Background -->
  <rect width="800" height="240" fill="transparent"/>

  <!-- Curly braces -->
  <text x="40" y="156" font-size="140" fill="#000000" font-family="monospace">{</text>
  <text x="230" y="156" font-size="140" fill="#000000" font-family="monospace">}</text>

  <!-- Blue form with check -->
  <rect x="120" y="50" width="120" height="140" rx="16" fill="#3366CC"/>
  <polyline points="150,110 164,128 190,84" fill="none" stroke="#FFFFFF" stroke-width="10"/>
  <circle cx="150" cy="144" r="7" fill="#FFFFFF"/>
  <rect x="168" y="140" width="48" height="10" fill="#FFFFFF"/>
  <circle cx="150" cy="168" r="7" fill="#FFFFFF"/>
  <rect x="168" y="164" width="48" height="10" fill="#FFFFFF"/>

  <!-- Text -->
  <text x="340" y="156" font-family="Arial, sans-serif" font-size="76" font-weight="bold" fill="#000000">Task Master</text>
</svg>

```

--------------------------------------------------------------------------------
/packages/ai-sdk-provider-grok-cli/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"compilerOptions": {
		"target": "ES2022",
		"module": "ESNext",
		"lib": ["ES2022"],
		"declaration": true,
		"declarationMap": true,
		"sourceMap": true,
		"outDir": "./dist",
		"baseUrl": ".",
		"rootDir": "./src",
		"strict": true,
		"noImplicitAny": true,
		"strictNullChecks": true,
		"strictFunctionTypes": true,
		"strictBindCallApply": true,
		"strictPropertyInitialization": true,
		"noImplicitThis": true,
		"alwaysStrict": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"noImplicitReturns": true,
		"noFallthroughCasesInSwitch": true,
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"moduleResolution": "bundler",
		"moduleDetection": "force",
		"types": ["node"],
		"resolveJsonModule": true,
		"isolatedModules": true,
		"allowImportingTsExtensions": false
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", "dist", "tests", "**/*.test.ts", "**/*.spec.ts"]
}

```

--------------------------------------------------------------------------------
/apps/cli/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"compilerOptions": {
		"target": "ES2022",
		"module": "NodeNext",
		"lib": ["ES2022"],
		"declaration": true,
		"declarationMap": true,
		"sourceMap": true,
		"outDir": "./dist",
		"baseUrl": ".",
		"rootDir": "./src",
		"strict": true,
		"noImplicitAny": true,
		"strictNullChecks": true,
		"strictFunctionTypes": true,
		"strictBindCallApply": true,
		"strictPropertyInitialization": true,
		"noImplicitThis": true,
		"alwaysStrict": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"noImplicitReturns": true,
		"noFallthroughCasesInSwitch": true,
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"moduleResolution": "NodeNext",
		"moduleDetection": "force",
		"types": ["node"],
		"resolveJsonModule": true,
		"isolatedModules": true,
		"allowImportingTsExtensions": false
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", "dist", "tests", "**/*.test.ts", "**/*.spec.ts"]
}

```

--------------------------------------------------------------------------------
/apps/mcp/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"compilerOptions": {
		"target": "ES2022",
		"module": "NodeNext",
		"lib": ["ES2022"],
		"declaration": true,
		"declarationMap": true,
		"sourceMap": true,
		"outDir": "./dist",
		"baseUrl": ".",
		"rootDir": "./src",
		"strict": true,
		"noImplicitAny": true,
		"strictNullChecks": true,
		"strictFunctionTypes": true,
		"strictBindCallApply": true,
		"strictPropertyInitialization": true,
		"noImplicitThis": true,
		"alwaysStrict": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"noImplicitReturns": true,
		"noFallthroughCasesInSwitch": true,
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"moduleResolution": "NodeNext",
		"moduleDetection": "force",
		"types": ["node"],
		"resolveJsonModule": true,
		"isolatedModules": true,
		"allowImportingTsExtensions": false
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", "dist", "tests", "**/*.test.ts", "**/*.spec.ts"]
}

```

--------------------------------------------------------------------------------
/packages/tm-core/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"compilerOptions": {
		"target": "ES2022",
		"module": "NodeNext",
		"lib": ["ES2022"],
		"declaration": true,
		"declarationMap": true,
		"sourceMap": true,
		"outDir": "./dist",
		"baseUrl": ".",
		"rootDir": "./src",
		"strict": true,
		"noImplicitAny": true,
		"strictNullChecks": true,
		"strictFunctionTypes": true,
		"strictBindCallApply": true,
		"strictPropertyInitialization": true,
		"noImplicitThis": true,
		"alwaysStrict": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"noImplicitReturns": true,
		"noFallthroughCasesInSwitch": true,
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"moduleResolution": "NodeNext",
		"moduleDetection": "force",
		"types": ["node"],
		"resolveJsonModule": true,
		"isolatedModules": true,
		"allowImportingTsExtensions": false
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", "dist", "tests", "**/*.test.ts", "**/*.spec.ts"]
}

```

--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------

```json
{
	"$schema": "https://turbo.build/schema.json",
	"extends": ["//"],
	"tasks": {
		"build": {
			"dependsOn": ["^build"],
			"outputs": ["dist/**"],
			"outputLogs": "new-only",
			"env": ["NODE_ENV", "TM_PUBLIC_*"]
		},
		"dev": {
			"cache": false,
			"persistent": true,
			"inputs": [
				"$TURBO_DEFAULT$",
				"!{packages,apps}/**/dist/**",
				"!{packages,apps}/**/node_modules/**"
			]
		},
		"test:watch": {
			"cache": false,
			"persistent": true,
			"dependsOn": ["^build"]
		},
		"lint": {
			"dependsOn": ["^build"],
			"inputs": [
				"$TURBO_DEFAULT$",
				"!{packages,apps}/**/dist/**",
				"!{packages,apps}/**/node_modules/**"
			],
			"outputLogs": "new-only"
		},
		"typecheck": {
			"dependsOn": ["^build"],
			"inputs": [
				"$TURBO_DEFAULT$",
				"!{packages,apps}/**/dist/**",
				"!{packages,apps}/**/node_modules/**"
			],
			"outputLogs": "new-only"
		}
	},
	"globalDependencies": ["turbo.json", "tsconfig.json", ".env*"]
}

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/list-tasks-by-status.md:
--------------------------------------------------------------------------------

```markdown
List tasks filtered by a specific status.

Arguments: $ARGUMENTS

Parse the status from arguments and list only tasks matching that status.

## Status Options
- `pending` - Not yet started
- `in-progress` - Currently being worked on
- `done` - Completed
- `review` - Awaiting review
- `deferred` - Postponed
- `cancelled` - Cancelled

## Execution

Based on $ARGUMENTS, run:
```bash
task-master list --status=$ARGUMENTS
```

## Enhanced Display

For the filtered results:
- Group by priority within the status
- Show time in current status
- Highlight tasks approaching deadlines
- Display blockers and dependencies
- Suggest next actions for each status group

## Intelligent Insights

Based on the status filter:
- **Pending**: Show recommended start order
- **In-Progress**: Display idle time warnings
- **Done**: Show newly unblocked tasks
- **Review**: Indicate review duration
- **Deferred**: Show reactivation criteria
- **Cancelled**: Display impact analysis
```

--------------------------------------------------------------------------------
/apps/docs/introduction.mdx:
--------------------------------------------------------------------------------

```markdown
<Tip>
Welcome to v1 of the Task Master Docs. Expect weekly updates as we expand and refine each section.
</Tip>

We've organized the docs into three sections depending on your experience level and goals:

### Getting Started - Jump in to [Quick Start](/getting-started/quick-start)
Designed for first-time users. Get set up, create your first PRD, and run your first task.

### Best Practices
Covers common workflows, strategic usage of commands, model configuration tips, and real-world usage patterns. Recommended for active users.

### Technical Capabilities
A detailed glossary of every root command and available capability — meant for power users and contributors.

---

Thanks for being here early. If you spot something broken or want to contribute, check out the [GitHub repo](https://github.com/eyaltoledano/claude-task-master).

Have questions? Join our [Discord community](https://discord.gg/fWJkU7rf) to connect with other users and get help from the team.
```

--------------------------------------------------------------------------------
/apps/docs/getting-started/quick-start/quick-start.mdx:
--------------------------------------------------------------------------------

```markdown
---
title: Quick Start
sidebarTitle: "Quick Start"
---

This guide is for new users who want to start using Task Master with minimal setup time.

It covers:
- [Requirements](/getting-started/quick-start/requirements): You will need Node.js and an AI model API Key.
- [Installation](/getting-started/quick-start/installation): How to Install Task Master.
- [Configuration](/getting-started/quick-start/configuration-quick): Setting up your API Key, MCP, and more.
- [PRD](/getting-started/quick-start/prd-quick): Writing and parsing your first PRD.
- [Task Setup](/getting-started/quick-start/tasks-quick): Preparing your tasks for execution.
- [Executing Tasks](/getting-started/quick-start/execute-quick): Using Task Master to execute tasks.
- [Rules & Context](/getting-started/quick-start/rules-quick): Learn how and why to build context in your project over time.

<Tip>
By the end of this guide, you'll have everything you need to begin working productively with Task Master.
</Tip>
```

--------------------------------------------------------------------------------
/packages/tm-bridge/tsconfig.json:
--------------------------------------------------------------------------------

```json
{
	"extends": "../../tsconfig.json",
	"compilerOptions": {
		"target": "ES2022",
		"module": "NodeNext",
		"lib": ["ES2022"],
		"declaration": true,
		"declarationMap": true,
		"sourceMap": true,
		"outDir": "./dist",
		"baseUrl": ".",
		"rootDir": "./src",
		"strict": true,
		"noImplicitAny": true,
		"strictNullChecks": true,
		"strictFunctionTypes": true,
		"strictBindCallApply": true,
		"strictPropertyInitialization": true,
		"noImplicitThis": true,
		"alwaysStrict": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"noImplicitReturns": true,
		"noFallthroughCasesInSwitch": true,
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"moduleResolution": "NodeNext",
		"moduleDetection": "force",
		"types": ["node"],
		"resolveJsonModule": true,
		"isolatedModules": true,
		"allowImportingTsExtensions": false
	},
	"include": ["src/**/*"],
	"exclude": ["node_modules", "dist", "tests", "**/*.test.ts", "**/*.spec.ts"]
}

```

--------------------------------------------------------------------------------
/.github/scripts/tag-extension.mjs:
--------------------------------------------------------------------------------

```
#!/usr/bin/env node
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import { findRootDir, createAndPushTag } from './utils.mjs';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const rootDir = findRootDir(__dirname);

// Read the extension's package.json
const extensionDir = join(rootDir, 'apps', 'extension');
const pkgPath = join(extensionDir, 'package.json');

let pkg;
try {
	const pkgContent = readFileSync(pkgPath, 'utf8');
	pkg = JSON.parse(pkgContent);
} catch (error) {
	console.error('Failed to read package.json:', error.message);
	process.exit(1);
}

// Ensure we have required fields
assert(pkg.name, 'package.json must have a name field');
assert(pkg.version, 'package.json must have a version field');

const tag = `${pkg.name}@${pkg.version}`;

// Create and push the tag if it doesn't exist
createAndPushTag(tag);

```

--------------------------------------------------------------------------------
/packages/tm-core/src/modules/integration/integration-domain.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * @fileoverview Integration Domain Facade
 * Public API for integration with external systems
 */

import { AuthManager } from '../auth/managers/auth-manager.js';
import type { ConfigManager } from '../config/managers/config-manager.js';
import { ExportService } from './services/export.service.js';
import type {
	ExportResult,
	ExportTasksOptions
} from './services/export.service.js';

/**
 * Integration Domain - Unified API for external system integration
 */
export class IntegrationDomain {
	private exportService: ExportService;

	constructor(configManager: ConfigManager) {
		// Get singleton AuthManager instance
		const authManager = AuthManager.getInstance();
		this.exportService = new ExportService(configManager, authManager);
	}

	// ========== Export Operations ==========

	/**
	 * Export tasks to external systems (e.g., Hamster briefs)
	 */
	async exportTasks(options: ExportTasksOptions): Promise<ExportResult> {
		return this.exportService.exportTasks(options);
	}
}

```

--------------------------------------------------------------------------------
/src/schemas/base-schemas.js:
--------------------------------------------------------------------------------

```javascript
import { z } from 'zod';

// Base schemas that will be reused across commands
export const TaskStatusSchema = z.enum([
	'pending',
	'in-progress',
	'blocked',
	'done',
	'cancelled',
	'deferred'
]);

export const BaseTaskSchema = z.object({
	id: z.number().int().positive(),
	title: z.string().min(1).max(200),
	description: z.string().min(1),
	status: TaskStatusSchema,
	dependencies: z.array(z.union([z.number().int(), z.string()])).default([]),
	priority: z
		.enum(['low', 'medium', 'high', 'critical'])
		.nullable()
		.default(null),
	details: z.string().nullable().default(null),
	testStrategy: z.string().nullable().default(null)
});

export const SubtaskSchema = z.object({
	id: z.number().int().positive(),
	title: z.string().min(5).max(200),
	description: z.string().min(10),
	dependencies: z.array(z.number().int()).default([]),
	details: z.string().min(20),
	status: z.enum(['pending', 'done', 'completed']).default('pending'),
	testStrategy: z.string().nullable().default(null)
});

```

--------------------------------------------------------------------------------
/.taskmaster/config.json:
--------------------------------------------------------------------------------

```json
{
	"models": {
		"main": {
			"provider": "anthropic",
			"modelId": "claude-sonnet-4-5-20250929",
			"maxTokens": 64000,
			"temperature": 0.2
		},
		"research": {
			"provider": "perplexity",
			"modelId": "sonar-pro",
			"maxTokens": 8700,
			"temperature": 0.1
		},
		"fallback": {
			"provider": "anthropic",
			"modelId": "claude-sonnet-4-20250514",
			"maxTokens": 64000,
			"temperature": 0.2
		}
	},
	"global": {
		"logLevel": "info",
		"debug": false,
		"defaultNumTasks": 10,
		"defaultSubtasks": 5,
		"defaultPriority": "medium",
		"projectName": "Taskmaster",
		"ollamaBaseURL": "http://localhost:11434/api",
		"bedrockBaseURL": "https://bedrock.us-east-1.amazonaws.com",
		"responseLanguage": "English",
		"enableCodebaseAnalysis": true,
		"userId": "1234567890",
		"azureBaseURL": "https://your-endpoint.azure.com/",
		"defaultTag": "master"
	},
	"claudeCode": {},
	"codexCli": {},
	"grokCli": {
		"timeout": 120000,
		"workingDirectory": null,
		"defaultModel": "grok-4-latest"
	}
}

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/expand-all-tasks.md:
--------------------------------------------------------------------------------

```markdown
Expand all pending tasks that need subtasks.

## Bulk Task Expansion

Intelligently expands all tasks that would benefit from breakdown.

## Execution

```bash
task-master expand --all
```

## Smart Selection

Only expands tasks that:
- Are marked as pending
- Have high complexity (>5)
- Lack existing subtasks
- Would benefit from breakdown

## Expansion Process

1. **Analysis Phase**
   - Identify expansion candidates
   - Group related tasks
   - Plan expansion strategy

2. **Batch Processing**
   - Expand tasks in logical order
   - Maintain consistency
   - Preserve relationships
   - Optimize for parallelism

3. **Quality Control**
   - Ensure subtask quality
   - Avoid over-decomposition
   - Maintain task coherence
   - Update dependencies

## Options

- Add `force` to expand all regardless of complexity
- Add `research` for enhanced AI analysis

## Results

After bulk expansion:
- Summary of tasks expanded
- New subtask count
- Updated complexity metrics
- Suggested task order
```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/feature.md:
--------------------------------------------------------------------------------

```markdown
## ✨ New Feature

### 📋 Feature Description
<!-- Brief description -->

### 🎯 Problem Statement
<!-- What problem does this feature solve? Why is it needed? -->

### 💡 Solution
<!-- How does this feature solve the problem? What's the approach? -->

### 🔗 Related Issues
<!-- Link related issues: Fixes #123, Part of #456 -->

## How to Use It

### Quick Start
```bash
# Basic usage example
```

### Example
<!-- Show a real use case -->
```bash
# Practical example
```

**What you should see:**
<!-- Expected behavior -->

## Contributor Checklist
- [ ] Created changeset: `npm run changeset`
- [ ] Tests pass: `npm test`
- [ ] Format check passes: `npm run format-check`
- [ ] Addressed CodeRabbit comments
- [ ] Added tests for new functionality
- [ ] Manually tested in CLI mode
- [ ] Manually tested in MCP mode (if applicable)

## Changelog Entry
<!-- One-liner for release notes -->

---

### For Maintainers

- [ ] Feature aligns with project vision
- [ ] CIs pass
- [ ] Changeset file exists

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/to-deferred.md:
--------------------------------------------------------------------------------

```markdown
Defer a task for later consideration.

Arguments: $ARGUMENTS (task ID)

## Deferring a Task

This status indicates a task is valid but not currently actionable or prioritized.

## Valid Reasons for Deferral

- Waiting for external dependencies
- Reprioritized for future sprint
- Blocked by technical limitations
- Resource constraints
- Strategic timing considerations

## Execution

```bash
task-master set-status --id=$ARGUMENTS --status=deferred
```

## Deferral Management

When deferring:
1. **Document Reason**
   - Capture why it's being deferred
   - Set reactivation criteria
   - Note any partial work completed

2. **Impact Analysis**
   - Check dependent tasks
   - Update project timeline
   - Notify affected stakeholders

3. **Future Planning**
   - Set review reminders
   - Tag for specific milestone
   - Preserve context for reactivation
   - Link to blocking issues

## Smart Tracking

- Monitor deferral duration
- Alert when criteria met
- Prevent scope creep
- Regular review cycles
```

--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------

```markdown
# What type of PR is this?
<!-- Check one -->

 - [ ] 🐛 Bug fix
 - [ ] ✨ Feature
 - [ ] 🔌 Integration
 - [ ] 📝 Docs
 - [ ] 🧹 Refactor
 - [ ] Other:
## Description
<!-- What does this PR do? -->

## Related Issues
<!-- Link issues: Fixes #123 -->

## How to Test This
<!-- Quick steps to verify the changes work -->
```bash
# Example commands or steps
```

**Expected result:**
<!-- What should happen? -->

## Contributor Checklist

- [ ] Created changeset: `npm run changeset`
- [ ] Tests pass: `npm test`
- [ ] Format check passes: `npm run format-check` (or `npm run format` to fix)
- [ ] Addressed CodeRabbit comments (if any)
- [ ] Linked related issues (if any)
- [ ] Manually tested the changes

## Changelog Entry
<!-- One line describing the change for users -->
<!-- Example: "Added Kiro IDE integration with automatic task status updates" -->

---

### For Maintainers

- [ ] PR title follows conventional commits
- [ ] Target branch correct
- [ ] Labels added
- [ ] Milestone assigned (if applicable)

```

--------------------------------------------------------------------------------
/apps/cli/src/types/tag-management.d.ts:
--------------------------------------------------------------------------------

```typescript
/**
 * Type declarations for legacy tag-management.js
 * TODO: Remove when refactored to use @tm/core
 */

declare module '*/tag-management.js' {
	export function createTag(
		tasksPath: string,
		tagName: string,
		options?: any,
		context?: any,
		outputFormat?: string
	): Promise<any>;

	export function deleteTag(
		tasksPath: string,
		tagName: string,
		options?: any,
		context?: any,
		outputFormat?: string
	): Promise<any>;

	export function tags(
		tasksPath: string,
		options?: any,
		context?: any,
		outputFormat?: string
	): Promise<any>;

	export function useTag(
		tasksPath: string,
		tagName: string,
		options?: any,
		context?: any,
		outputFormat?: string
	): Promise<any>;

	export function renameTag(
		tasksPath: string,
		oldName: string,
		newName: string,
		options?: any,
		context?: any,
		outputFormat?: string
	): Promise<any>;

	export function copyTag(
		tasksPath: string,
		sourceName: string,
		targetName: string,
		options?: any,
		context?: any,
		outputFormat?: string
	): Promise<any>;
}

```

--------------------------------------------------------------------------------
/packages/claude-code-plugin/commands/init-project.md:
--------------------------------------------------------------------------------

```markdown
Initialize a new Task Master project.

Arguments: $ARGUMENTS

Parse arguments to determine initialization preferences.

## Initialization Process

1. **Parse Arguments**
   - PRD file path (if provided)
   - Project name
   - Auto-confirm flag (-y)

2. **Project Setup**
   ```bash
   task-master init
   ```

3. **Smart Initialization**
   - Detect existing project files
   - Suggest project name from directory
   - Check for git repository
   - Verify AI provider configuration

## Configuration Options

Based on arguments:
- `quick` / `-y` → Skip confirmations
- `<file.md>` → Use as PRD after init
- `--name=<name>` → Set project name
- `--description=<desc>` → Set description

## Post-Initialization

After successful init:
1. Show project structure created
2. Verify AI models configured
3. Suggest next steps:
   - Parse PRD if available
   - Configure AI providers
   - Set up git hooks
   - Create first tasks

## Integration

If PRD file provided:
```
/taskmaster:init my-prd.md
→ Automatically runs parse-prd after init
```
```
Page 2/50FirstPrevNextLast