Files
claude-task-master/assets/claude/commands/tm/add-subtask/convert-task-to-subtask.md
Joe Danziger 95c299df64 Unify and streamline profile system architecture (#853)
* move claude rules and commands to assets/claude

* update claude profile to copy assets/claude to .claude

* fix formatting

* feat(profiles): Implement unified profile system

- Convert Claude and Codex profiles to use createProfile() factory
- Remove simple vs complex profile distinction in rule transformer
- Unify convertAllRulesToProfileRules() to handle all profiles consistently
- Fix mcpConfigPath construction in base-profile.js for null mcpConfigName
- Update terminology from 'simpleProfiles' to 'assetOnlyProfiles' throughout
- Ensure Claude .claude directory copying works in both CLI and MCP contexts
- All profiles now follow same execution flow with proper lifecycle functions

Changes:
- src/profiles/claude.js: Convert to createProfile() factory pattern
- src/profiles/codex.js: Convert to createProfile() factory pattern
- src/utils/rule-transformer.js: Unified profile handling logic
- src/utils/profiles.js: Remove simple profile categorization
- src/profiles/base-profile.js: Fix mcpConfigPath construction
- scripts/modules/commands.js: Update variable naming
- tests/: Update all tests for unified system and terminology

Fixes Claude profile asset copying issue in MCP context.
All tests passing (617 passed, 11 skipped).

* re-checkin claude files

* fix formatting

* chore: clean up test Claude rules files

* chore: add changeset for unified profile system

* add claude files back

* add changeset

* restore proper gitignore

* remove claude agents file from root

* remove incorrect doc

* simplify profiles and update tests

* update changeset

* update changeset

* remove profile specific code

* streamline profiles with defaults and update tests

* update changeset

* add newline at end of gitignore

* restore changes

* streamline profiles with defaults; update tests and add vscode test

* update rule profile tests

* update wording for clearer profile management

* refactor and clarify terminology

* use original projectRoot var name

* revert param desc

* use updated claude assets from neno

* add "YOUR_" before api key here

* streamline codex profile

* add gemini profile

* update gemini profile

* update tests

* relocate function

* update rules interactive setup Gemini desc

* remove duplicative code

* add comma
2025-07-09 13:22:11 +02:00

1.5 KiB

Convert an existing task into a subtask.

Arguments: $ARGUMENTS

Parse parent ID and task ID to convert.

Task Conversion

Converts an existing standalone task into a subtask of another task.

Argument Parsing

  • "move task 8 under 5"
  • "make 8 a subtask of 5"
  • "nest 8 in 5"
  • "5 8" → make task 8 a subtask of task 5

Execution

task-master add-subtask --parent=<parent-id> --task-id=<task-to-convert>

Pre-Conversion Checks

  1. Validation

    • Both tasks exist and are valid
    • No circular parent relationships
    • Task isn't already a subtask
    • Logical hierarchy makes sense
  2. Impact Analysis

    • Dependencies that will be affected
    • Tasks that depend on converting task
    • Priority alignment needed
    • Status compatibility

Conversion Process

  1. Change task ID from "8" to "5.1" (next available)
  2. Update all dependency references
  3. Inherit parent's context where appropriate
  4. Adjust priorities if needed
  5. Update time estimates

Smart Features

  • Preserve task history
  • Maintain dependencies
  • Update all references
  • Create conversion log

Example

/project:tm/add-subtask/from-task 5 8
→ Converting: Task #8 becomes subtask #5.1
→ Updated: 3 dependency references
→ Parent task #5 now has 1 subtask
→ Note: Subtask inherits parent's priority

Before: #8 "Implement validation" (standalone)
After:  #5.1 "Implement validation" (subtask of #5)

Post-Conversion

  • Show new task hierarchy
  • List updated dependencies
  • Verify project integrity
  • Suggest related conversions