data_porter 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.claude/commands/blog-status.md +10 -0
- data/.claude/commands/blog.md +109 -0
- data/.claude/commands/task-done.md +27 -0
- data/.claude/commands/tm/add-dependency.md +58 -0
- data/.claude/commands/tm/add-subtask.md +79 -0
- data/.claude/commands/tm/add-task.md +81 -0
- data/.claude/commands/tm/analyze-complexity.md +124 -0
- data/.claude/commands/tm/analyze-project.md +100 -0
- data/.claude/commands/tm/auto-implement-tasks.md +100 -0
- data/.claude/commands/tm/command-pipeline.md +80 -0
- data/.claude/commands/tm/complexity-report.md +120 -0
- data/.claude/commands/tm/convert-task-to-subtask.md +74 -0
- data/.claude/commands/tm/expand-all-tasks.md +52 -0
- data/.claude/commands/tm/expand-task.md +52 -0
- data/.claude/commands/tm/fix-dependencies.md +82 -0
- data/.claude/commands/tm/help.md +101 -0
- data/.claude/commands/tm/init-project-quick.md +49 -0
- data/.claude/commands/tm/init-project.md +53 -0
- data/.claude/commands/tm/install-taskmaster.md +118 -0
- data/.claude/commands/tm/learn.md +106 -0
- data/.claude/commands/tm/list-tasks-by-status.md +42 -0
- data/.claude/commands/tm/list-tasks-with-subtasks.md +30 -0
- data/.claude/commands/tm/list-tasks.md +46 -0
- data/.claude/commands/tm/next-task.md +69 -0
- data/.claude/commands/tm/parse-prd-with-research.md +51 -0
- data/.claude/commands/tm/parse-prd.md +52 -0
- data/.claude/commands/tm/project-status.md +67 -0
- data/.claude/commands/tm/quick-install-taskmaster.md +23 -0
- data/.claude/commands/tm/remove-all-subtasks.md +94 -0
- data/.claude/commands/tm/remove-dependency.md +65 -0
- data/.claude/commands/tm/remove-subtask.md +87 -0
- data/.claude/commands/tm/remove-subtasks.md +89 -0
- data/.claude/commands/tm/remove-task.md +110 -0
- data/.claude/commands/tm/setup-models.md +52 -0
- data/.claude/commands/tm/show-task.md +85 -0
- data/.claude/commands/tm/smart-workflow.md +58 -0
- data/.claude/commands/tm/sync-readme.md +120 -0
- data/.claude/commands/tm/tm-main.md +147 -0
- data/.claude/commands/tm/to-cancelled.md +58 -0
- data/.claude/commands/tm/to-deferred.md +50 -0
- data/.claude/commands/tm/to-done.md +47 -0
- data/.claude/commands/tm/to-in-progress.md +39 -0
- data/.claude/commands/tm/to-pending.md +35 -0
- data/.claude/commands/tm/to-review.md +43 -0
- data/.claude/commands/tm/update-single-task.md +122 -0
- data/.claude/commands/tm/update-task.md +75 -0
- data/.claude/commands/tm/update-tasks-from-id.md +111 -0
- data/.claude/commands/tm/validate-dependencies.md +72 -0
- data/.claude/commands/tm/view-models.md +52 -0
- data/.env.example +12 -0
- data/.mcp.json +24 -0
- data/.taskmaster/CLAUDE.md +435 -0
- data/.taskmaster/config.json +44 -0
- data/.taskmaster/docs/prd.txt +2044 -0
- data/.taskmaster/state.json +6 -0
- data/.taskmaster/tasks/task_001.md +19 -0
- data/.taskmaster/tasks/task_002.md +19 -0
- data/.taskmaster/tasks/task_003.md +19 -0
- data/.taskmaster/tasks/task_004.md +19 -0
- data/.taskmaster/tasks/task_005.md +19 -0
- data/.taskmaster/tasks/task_006.md +19 -0
- data/.taskmaster/tasks/task_007.md +19 -0
- data/.taskmaster/tasks/task_008.md +19 -0
- data/.taskmaster/tasks/task_009.md +19 -0
- data/.taskmaster/tasks/task_010.md +19 -0
- data/.taskmaster/tasks/task_011.md +19 -0
- data/.taskmaster/tasks/task_012.md +19 -0
- data/.taskmaster/tasks/task_013.md +19 -0
- data/.taskmaster/tasks/task_014.md +19 -0
- data/.taskmaster/tasks/task_015.md +19 -0
- data/.taskmaster/tasks/task_016.md +19 -0
- data/.taskmaster/tasks/task_017.md +19 -0
- data/.taskmaster/tasks/task_018.md +19 -0
- data/.taskmaster/tasks/task_019.md +19 -0
- data/.taskmaster/tasks/task_020.md +19 -0
- data/.taskmaster/tasks/tasks.json +299 -0
- data/.taskmaster/templates/example_prd.txt +47 -0
- data/.taskmaster/templates/example_prd_rpg.txt +511 -0
- data/CHANGELOG.md +29 -0
- data/CLAUDE.md +65 -0
- data/CODE_OF_CONDUCT.md +10 -0
- data/CONTRIBUTING.md +49 -0
- data/LICENSE +21 -0
- data/README.md +463 -0
- data/Rakefile +12 -0
- data/app/assets/stylesheets/data_porter/application.css +646 -0
- data/app/channels/data_porter/import_channel.rb +10 -0
- data/app/controllers/data_porter/imports_controller.rb +68 -0
- data/app/javascript/data_porter/progress_controller.js +33 -0
- data/app/jobs/data_porter/dry_run_job.rb +12 -0
- data/app/jobs/data_porter/import_job.rb +12 -0
- data/app/jobs/data_porter/parse_job.rb +12 -0
- data/app/models/data_porter/data_import.rb +49 -0
- data/app/views/data_porter/imports/index.html.erb +142 -0
- data/app/views/data_porter/imports/new.html.erb +88 -0
- data/app/views/data_porter/imports/show.html.erb +49 -0
- data/config/database.yml +3 -0
- data/config/routes.rb +12 -0
- data/docs/SPEC.md +2012 -0
- data/docs/UI.md +32 -0
- data/docs/blog/001-why-build-a-data-import-engine.md +166 -0
- data/docs/blog/002-scaffolding-a-rails-engine.md +188 -0
- data/docs/blog/003-configuration-dsl.md +222 -0
- data/docs/blog/004-store-model-jsonb.md +237 -0
- data/docs/blog/005-target-dsl.md +284 -0
- data/docs/blog/006-parsing-csv-sources.md +300 -0
- data/docs/blog/007-orchestrator.md +247 -0
- data/docs/blog/008-actioncable-stimulus.md +376 -0
- data/docs/blog/009-phlex-ui-components.md +446 -0
- data/docs/blog/010-controllers-routing.md +374 -0
- data/docs/blog/011-generators.md +364 -0
- data/docs/blog/012-json-api-sources.md +323 -0
- data/docs/blog/013-testing-rails-engine.md +618 -0
- data/docs/blog/014-dry-run.md +307 -0
- data/docs/blog/015-publishing-retro.md +264 -0
- data/docs/blog/016-erb-view-templates.md +431 -0
- data/docs/blog/017-showcase-final-retro.md +220 -0
- data/docs/blog/BACKLOG.md +8 -0
- data/docs/blog/SERIES.md +154 -0
- data/docs/screenshots/index-with-previewing.jpg +0 -0
- data/docs/screenshots/index.jpg +0 -0
- data/docs/screenshots/modal-new-import.jpg +0 -0
- data/docs/screenshots/preview.jpg +0 -0
- data/lib/data_porter/broadcaster.rb +29 -0
- data/lib/data_porter/components/base.rb +10 -0
- data/lib/data_porter/components/failure_alert.rb +20 -0
- data/lib/data_porter/components/preview_table.rb +54 -0
- data/lib/data_porter/components/progress_bar.rb +33 -0
- data/lib/data_porter/components/results_summary.rb +19 -0
- data/lib/data_porter/components/status_badge.rb +16 -0
- data/lib/data_porter/components/summary_cards.rb +30 -0
- data/lib/data_porter/components.rb +14 -0
- data/lib/data_porter/configuration.rb +25 -0
- data/lib/data_porter/dsl/api_config.rb +25 -0
- data/lib/data_porter/dsl/column.rb +17 -0
- data/lib/data_porter/engine.rb +15 -0
- data/lib/data_porter/orchestrator.rb +141 -0
- data/lib/data_porter/record_validator.rb +32 -0
- data/lib/data_porter/registry.rb +33 -0
- data/lib/data_porter/sources/api.rb +49 -0
- data/lib/data_porter/sources/base.rb +35 -0
- data/lib/data_porter/sources/csv.rb +43 -0
- data/lib/data_porter/sources/json.rb +45 -0
- data/lib/data_porter/sources.rb +20 -0
- data/lib/data_porter/store_models/error.rb +13 -0
- data/lib/data_porter/store_models/import_record.rb +52 -0
- data/lib/data_porter/store_models/report.rb +21 -0
- data/lib/data_porter/target.rb +89 -0
- data/lib/data_porter/type_validator.rb +46 -0
- data/lib/data_porter/version.rb +5 -0
- data/lib/data_porter.rb +32 -0
- data/lib/generators/data_porter/install/install_generator.rb +33 -0
- data/lib/generators/data_porter/install/templates/create_data_porter_imports.rb.erb +21 -0
- data/lib/generators/data_porter/install/templates/initializer.rb +30 -0
- data/lib/generators/data_porter/target/target_generator.rb +44 -0
- data/lib/generators/data_porter/target/templates/target.rb.tt +20 -0
- data/sig/data_porter.rbs +4 -0
- metadata +274 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: cfa4a171b2ca5f54f539d74f14abd600159aa8563924d8c83c9b7d4a00f5e1ff
|
|
4
|
+
data.tar.gz: 3f0f50d55471aa7fc3b888a8b2472d29c93af7559702f6f3c84fb180aa40f5aa
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2624e1366152820ae9070e607f2ad88cb6ce4e65c4fedaeb193ec116c5155879a6ce7be5f55a2d5f7b20a8a96308cb0f5d7e57535bbabe4a726ed62e3374abac
|
|
7
|
+
data.tar.gz: 2b03913652f0a6a47a62396174c5be712c3825b570b52b8c58baa715632d99b16d4e3d1bb8df50289f81ad15ce2389640ff87542ece3a2eeedf980273f6f4f69
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Show the status of the DataPorter blog article series.
|
|
2
|
+
|
|
3
|
+
1. List all existing articles in `docs/blog/` with their title, part number, and published status
|
|
4
|
+
2. Check `task-master list` for completed tasks since the last article
|
|
5
|
+
3. Suggest 2-3 potential next article topics based on:
|
|
6
|
+
- Recently completed tasks not yet covered
|
|
7
|
+
- The natural progression of the series
|
|
8
|
+
- Topics that would be interesting for the Ruby/Rails community
|
|
9
|
+
|
|
10
|
+
Format the output as a clear dashboard.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
Write the next blog article for the DataPorter series.
|
|
2
|
+
|
|
3
|
+
Topic/title hint: $ARGUMENTS
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. **Read the series plan** at `docs/blog/SERIES.md` to identify which part this is and what it should cover.
|
|
8
|
+
|
|
9
|
+
2. **Gather context:**
|
|
10
|
+
- `task-master list` to see completed tasks
|
|
11
|
+
- `git log --oneline -20` for recent commits
|
|
12
|
+
- Read the source files listed in the series plan for this part
|
|
13
|
+
- Read any previous articles in `docs/blog/` to maintain continuity
|
|
14
|
+
|
|
15
|
+
3. **Write the article** in `docs/blog/NNN-slug.md` (NNN = part number, zero-padded).
|
|
16
|
+
|
|
17
|
+
4. **Mandatory article structure:**
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
---
|
|
21
|
+
title: "Building DataPorter #N — <Title>"
|
|
22
|
+
series: "Building DataPorter - A Data Import Engine for Rails"
|
|
23
|
+
part: N
|
|
24
|
+
tags: [ruby, rails, rails-engine, gem-development, <2-3 topic tags>]
|
|
25
|
+
published: false
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# <Title>
|
|
29
|
+
|
|
30
|
+
> One-line summary of what the reader will learn.
|
|
31
|
+
|
|
32
|
+
## Context
|
|
33
|
+
|
|
34
|
+
Where we are in the series (1-2 sentences). Link to previous article.
|
|
35
|
+
What we'll build in this article (clear scope).
|
|
36
|
+
|
|
37
|
+
## The problem
|
|
38
|
+
|
|
39
|
+
Why do we need this? Real-world scenario. Keep it short (3-5 sentences).
|
|
40
|
+
|
|
41
|
+
## What we're building
|
|
42
|
+
|
|
43
|
+
Show the end result first: a code snippet, a diagram, or a usage example.
|
|
44
|
+
The reader should immediately understand where we're going.
|
|
45
|
+
|
|
46
|
+
## Implementation
|
|
47
|
+
|
|
48
|
+
### Step 1 — <Name>
|
|
49
|
+
|
|
50
|
+
Explain the WHY, then show the code.
|
|
51
|
+
|
|
52
|
+
\`\`\`ruby
|
|
53
|
+
# path/to/file.rb
|
|
54
|
+
<focused snippet, not full file>
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
Brief explanation of what this does and why we chose this approach.
|
|
58
|
+
|
|
59
|
+
### Step 2 — <Name>
|
|
60
|
+
|
|
61
|
+
(repeat pattern: WHY -> code -> explain)
|
|
62
|
+
|
|
63
|
+
### Step 3 — <Name>
|
|
64
|
+
|
|
65
|
+
(repeat)
|
|
66
|
+
|
|
67
|
+
## Decisions & tradeoffs
|
|
68
|
+
|
|
69
|
+
| Decision | We chose | Over | Because |
|
|
70
|
+
|----------|----------|------|---------|
|
|
71
|
+
| ... | ... | ... | ... |
|
|
72
|
+
|
|
73
|
+
## Testing it
|
|
74
|
+
|
|
75
|
+
Show how to verify this works (spec snippet or console output).
|
|
76
|
+
|
|
77
|
+
\`\`\`ruby
|
|
78
|
+
# spec/...
|
|
79
|
+
\`\`\`
|
|
80
|
+
|
|
81
|
+
## Recap
|
|
82
|
+
|
|
83
|
+
3-4 bullet points: what we built, what we learned.
|
|
84
|
+
|
|
85
|
+
## Next up
|
|
86
|
+
|
|
87
|
+
One paragraph teasing the next article in the series. End with a hook.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
*This is part N of the series "Building DataPorter". [Previous: ...](#) | [Next: ...](#)*
|
|
92
|
+
*Code: [GitHub repo link]*
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
5. **Writing rules:**
|
|
96
|
+
- 5-8 minute read (~1000-1500 words)
|
|
97
|
+
- Max 3-4 implementation steps per article
|
|
98
|
+
- Code snippets: focused, 5-25 lines each (never full file dumps)
|
|
99
|
+
- Every snippet has a file path comment on line 1
|
|
100
|
+
- Explain decisions as "We chose X over Y because Z"
|
|
101
|
+
- Use the actual code from the codebase (not made-up examples)
|
|
102
|
+
- Conversational but technical tone: "Let's...", "Here's why..."
|
|
103
|
+
- English only
|
|
104
|
+
- No emojis in prose (OK in front matter tags)
|
|
105
|
+
|
|
106
|
+
6. **After writing:**
|
|
107
|
+
- Update the article status in `docs/blog/SERIES.md` to `draft`
|
|
108
|
+
- Show: title, word count, reading time, and the decisions table
|
|
109
|
+
- Suggest 2-3 improvements or missing points
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Mark a Taskmaster task as done and check if a blog article should be generated.
|
|
2
|
+
|
|
3
|
+
Task ID: $ARGUMENTS
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. **Complete the task:**
|
|
8
|
+
```
|
|
9
|
+
task-master set-status --id=$ARGUMENTS --status=done
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. **Check blog series:** Read `docs/blog/SERIES.md` and find which blog part includes this task.
|
|
13
|
+
|
|
14
|
+
3. **Check if all tasks for that part are done:**
|
|
15
|
+
- Run `task-master show <id>` for each task in the blog part
|
|
16
|
+
- If ALL tasks for the part have status `done`, proceed to step 4
|
|
17
|
+
- If some tasks are still pending/in-progress, report progress ("Part N: 2/3 tasks done")
|
|
18
|
+
|
|
19
|
+
4. **If part is ready, generate the article:**
|
|
20
|
+
- Follow the `/blog` command process
|
|
21
|
+
- Write the draft in `docs/blog/NNN-slug.md`
|
|
22
|
+
- Update SERIES.md status to `draft`
|
|
23
|
+
|
|
24
|
+
5. **Show summary:**
|
|
25
|
+
- Task completed
|
|
26
|
+
- Blog part progress (e.g., "Part 5: 2/2 tasks done — article draft generated")
|
|
27
|
+
- Next task suggestion via `task-master next`
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Add Dependency
|
|
2
|
+
|
|
3
|
+
Arguments: $ARGUMENTS
|
|
4
|
+
Add a dependency between tasks.
|
|
5
|
+
|
|
6
|
+
Arguments: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
Parse the task IDs to establish dependency relationship.
|
|
9
|
+
|
|
10
|
+
## Adding Dependencies
|
|
11
|
+
|
|
12
|
+
Creates a dependency where one task must be completed before another can start.
|
|
13
|
+
|
|
14
|
+
## Argument Parsing
|
|
15
|
+
|
|
16
|
+
Parse natural language or IDs:
|
|
17
|
+
- "make 5 depend on 3" → task 5 depends on task 3
|
|
18
|
+
- "5 needs 3" → task 5 depends on task 3
|
|
19
|
+
- "5 3" → task 5 depends on task 3
|
|
20
|
+
- "5 after 3" → task 5 depends on task 3
|
|
21
|
+
|
|
22
|
+
## Execution
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
task-master add-dependency --id=<task-id> --depends-on=<dependency-id>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Validation
|
|
29
|
+
|
|
30
|
+
Before adding:
|
|
31
|
+
1. **Verify both tasks exist**
|
|
32
|
+
2. **Check for circular dependencies**
|
|
33
|
+
3. **Ensure dependency makes logical sense**
|
|
34
|
+
4. **Warn if creating complex chains**
|
|
35
|
+
|
|
36
|
+
## Smart Features
|
|
37
|
+
|
|
38
|
+
- Detect if dependency already exists
|
|
39
|
+
- Suggest related dependencies
|
|
40
|
+
- Show impact on task flow
|
|
41
|
+
- Update task priorities if needed
|
|
42
|
+
|
|
43
|
+
## Post-Addition
|
|
44
|
+
|
|
45
|
+
After adding dependency:
|
|
46
|
+
1. Show updated dependency graph
|
|
47
|
+
2. Identify any newly blocked tasks
|
|
48
|
+
3. Suggest task order changes
|
|
49
|
+
4. Update project timeline
|
|
50
|
+
|
|
51
|
+
## Example Flows
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
/taskmaster:add-dependency 5 needs 3
|
|
55
|
+
→ Task #5 now depends on Task #3
|
|
56
|
+
→ Task #5 is now blocked until #3 completes
|
|
57
|
+
→ Suggested: Also consider if #5 needs #4
|
|
58
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
Add Subtask
|
|
2
|
+
|
|
3
|
+
Arguments: $ARGUMENTS
|
|
4
|
+
Add a subtask to a parent task.
|
|
5
|
+
|
|
6
|
+
Arguments: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
Parse arguments to create a new subtask or convert existing task.
|
|
9
|
+
|
|
10
|
+
## Adding Subtasks
|
|
11
|
+
|
|
12
|
+
Creates subtasks to break down complex parent tasks into manageable pieces.
|
|
13
|
+
|
|
14
|
+
## Argument Parsing
|
|
15
|
+
|
|
16
|
+
Flexible natural language:
|
|
17
|
+
- "add subtask to 5: implement login form"
|
|
18
|
+
- "break down 5 with: setup, implement, test"
|
|
19
|
+
- "subtask for 5: handle edge cases"
|
|
20
|
+
- "5: validate user input" → adds subtask to task 5
|
|
21
|
+
|
|
22
|
+
## Execution Modes
|
|
23
|
+
|
|
24
|
+
### 1. Create New Subtask
|
|
25
|
+
```bash
|
|
26
|
+
task-master add-subtask --parent=<id> --title="<title>" --description="<desc>"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2. Convert Existing Task
|
|
30
|
+
```bash
|
|
31
|
+
task-master add-subtask --parent=<id> --task-id=<existing-id>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Smart Features
|
|
35
|
+
|
|
36
|
+
1. **Automatic Subtask Generation**
|
|
37
|
+
- If title contains "and" or commas, create multiple
|
|
38
|
+
- Suggest common subtask patterns
|
|
39
|
+
- Inherit parent's context
|
|
40
|
+
|
|
41
|
+
2. **Intelligent Defaults**
|
|
42
|
+
- Priority based on parent
|
|
43
|
+
- Appropriate time estimates
|
|
44
|
+
- Logical dependencies between subtasks
|
|
45
|
+
|
|
46
|
+
3. **Validation**
|
|
47
|
+
- Check parent task complexity
|
|
48
|
+
- Warn if too many subtasks
|
|
49
|
+
- Ensure subtask makes sense
|
|
50
|
+
|
|
51
|
+
## Creation Process
|
|
52
|
+
|
|
53
|
+
1. Parse parent task context
|
|
54
|
+
2. Generate subtask with ID like "5.1"
|
|
55
|
+
3. Set appropriate defaults
|
|
56
|
+
4. Link to parent task
|
|
57
|
+
5. Update parent's time estimate
|
|
58
|
+
|
|
59
|
+
## Example Flows
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
/taskmaster:add-subtask to 5: implement user authentication
|
|
63
|
+
→ Created subtask #5.1: "implement user authentication"
|
|
64
|
+
→ Parent task #5 now has 1 subtask
|
|
65
|
+
→ Suggested next subtasks: tests, documentation
|
|
66
|
+
|
|
67
|
+
/taskmaster:add-subtask 5: setup, implement, test
|
|
68
|
+
→ Created 3 subtasks:
|
|
69
|
+
#5.1: setup
|
|
70
|
+
#5.2: implement
|
|
71
|
+
#5.3: test
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Post-Creation
|
|
75
|
+
|
|
76
|
+
- Show updated task hierarchy
|
|
77
|
+
- Suggest logical next subtasks
|
|
78
|
+
- Update complexity estimates
|
|
79
|
+
- Recommend subtask order
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Add Task
|
|
2
|
+
|
|
3
|
+
Arguments: $ARGUMENTS
|
|
4
|
+
Add new tasks with intelligent parsing and context awareness.
|
|
5
|
+
|
|
6
|
+
Arguments: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
## Smart Task Addition
|
|
9
|
+
|
|
10
|
+
Parse natural language to create well-structured tasks.
|
|
11
|
+
|
|
12
|
+
### 1. **Input Understanding**
|
|
13
|
+
|
|
14
|
+
I'll intelligently parse your request:
|
|
15
|
+
- Natural language → Structured task
|
|
16
|
+
- Detect priority from keywords (urgent, ASAP, important)
|
|
17
|
+
- Infer dependencies from context
|
|
18
|
+
- Suggest complexity based on description
|
|
19
|
+
- Determine task type (feature, bug, refactor, test, docs)
|
|
20
|
+
|
|
21
|
+
### 2. **Smart Parsing Examples**
|
|
22
|
+
|
|
23
|
+
**"Add urgent task to fix login bug"**
|
|
24
|
+
→ Title: Fix login bug
|
|
25
|
+
→ Priority: high
|
|
26
|
+
→ Type: bug
|
|
27
|
+
→ Suggested complexity: medium
|
|
28
|
+
|
|
29
|
+
**"Create task for API documentation after task 23 is done"**
|
|
30
|
+
→ Title: API documentation
|
|
31
|
+
→ Dependencies: [23]
|
|
32
|
+
→ Type: documentation
|
|
33
|
+
→ Priority: medium
|
|
34
|
+
|
|
35
|
+
**"Need to refactor auth module - depends on 12 and 15, high complexity"**
|
|
36
|
+
→ Title: Refactor auth module
|
|
37
|
+
→ Dependencies: [12, 15]
|
|
38
|
+
→ Complexity: high
|
|
39
|
+
→ Type: refactor
|
|
40
|
+
|
|
41
|
+
### 3. **Context Enhancement**
|
|
42
|
+
|
|
43
|
+
Based on current project state:
|
|
44
|
+
- Suggest related existing tasks
|
|
45
|
+
- Warn about potential conflicts
|
|
46
|
+
- Recommend dependencies
|
|
47
|
+
- Propose subtasks if complex
|
|
48
|
+
|
|
49
|
+
### 4. **Interactive Refinement**
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
Task Preview:
|
|
53
|
+
─────────────
|
|
54
|
+
Title: [Extracted title]
|
|
55
|
+
Priority: [Inferred priority]
|
|
56
|
+
Dependencies: [Detected dependencies]
|
|
57
|
+
Complexity: [Estimated complexity]
|
|
58
|
+
|
|
59
|
+
Suggestions:
|
|
60
|
+
- Similar task #34 exists, consider as dependency?
|
|
61
|
+
- This seems complex, break into subtasks?
|
|
62
|
+
- Tasks #45-47 work on same module
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 5. **Validation & Creation**
|
|
66
|
+
|
|
67
|
+
Before creating:
|
|
68
|
+
- Validate dependencies exist
|
|
69
|
+
- Check for duplicates
|
|
70
|
+
- Ensure logical ordering
|
|
71
|
+
- Verify task completeness
|
|
72
|
+
|
|
73
|
+
### 6. **Smart Defaults**
|
|
74
|
+
|
|
75
|
+
Intelligent defaults based on:
|
|
76
|
+
- Task type patterns
|
|
77
|
+
- Team conventions
|
|
78
|
+
- Historical data
|
|
79
|
+
- Current sprint/phase
|
|
80
|
+
|
|
81
|
+
Result: High-quality tasks from minimal input.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
Analyze Complexity
|
|
2
|
+
|
|
3
|
+
Arguments: $ARGUMENTS
|
|
4
|
+
Analyze task complexity and generate expansion recommendations.
|
|
5
|
+
|
|
6
|
+
Arguments: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
Perform deep analysis of task complexity across the project.
|
|
9
|
+
|
|
10
|
+
## Complexity Analysis
|
|
11
|
+
|
|
12
|
+
Uses AI to analyze tasks and recommend which ones need breakdown.
|
|
13
|
+
|
|
14
|
+
## Execution Options
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
task-master analyze-complexity [--research] [--threshold=5]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Analysis Parameters
|
|
21
|
+
|
|
22
|
+
- `--research` → Use research AI for deeper analysis
|
|
23
|
+
- `--threshold=5` → Only flag tasks above complexity 5
|
|
24
|
+
- Default: Analyze all pending tasks
|
|
25
|
+
|
|
26
|
+
## Analysis Process
|
|
27
|
+
|
|
28
|
+
### 1. **Task Evaluation**
|
|
29
|
+
For each task, AI evaluates:
|
|
30
|
+
- Technical complexity
|
|
31
|
+
- Time requirements
|
|
32
|
+
- Dependency complexity
|
|
33
|
+
- Risk factors
|
|
34
|
+
- Knowledge requirements
|
|
35
|
+
|
|
36
|
+
### 2. **Complexity Scoring**
|
|
37
|
+
Assigns score 1-10 based on:
|
|
38
|
+
- Implementation difficulty
|
|
39
|
+
- Integration challenges
|
|
40
|
+
- Testing requirements
|
|
41
|
+
- Unknown factors
|
|
42
|
+
- Technical debt risk
|
|
43
|
+
|
|
44
|
+
### 3. **Recommendations**
|
|
45
|
+
For complex tasks:
|
|
46
|
+
- Suggest expansion approach
|
|
47
|
+
- Recommend subtask breakdown
|
|
48
|
+
- Identify risk areas
|
|
49
|
+
- Propose mitigation strategies
|
|
50
|
+
|
|
51
|
+
## Smart Analysis Features
|
|
52
|
+
|
|
53
|
+
1. **Pattern Recognition**
|
|
54
|
+
- Similar task comparisons
|
|
55
|
+
- Historical complexity accuracy
|
|
56
|
+
- Team velocity consideration
|
|
57
|
+
- Technology stack factors
|
|
58
|
+
|
|
59
|
+
2. **Contextual Factors**
|
|
60
|
+
- Team expertise
|
|
61
|
+
- Available resources
|
|
62
|
+
- Timeline constraints
|
|
63
|
+
- Business criticality
|
|
64
|
+
|
|
65
|
+
3. **Risk Assessment**
|
|
66
|
+
- Technical risks
|
|
67
|
+
- Timeline risks
|
|
68
|
+
- Dependency risks
|
|
69
|
+
- Knowledge gaps
|
|
70
|
+
|
|
71
|
+
## Output Format
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Task Complexity Analysis Report
|
|
75
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
76
|
+
|
|
77
|
+
High Complexity Tasks (>7):
|
|
78
|
+
📍 #5 "Implement real-time sync" - Score: 9/10
|
|
79
|
+
Factors: WebSocket complexity, state management, conflict resolution
|
|
80
|
+
Recommendation: Expand into 5-7 subtasks
|
|
81
|
+
Risks: Performance, data consistency
|
|
82
|
+
|
|
83
|
+
📍 #12 "Migrate database schema" - Score: 8/10
|
|
84
|
+
Factors: Data migration, zero downtime, rollback strategy
|
|
85
|
+
Recommendation: Expand into 4-5 subtasks
|
|
86
|
+
Risks: Data loss, downtime
|
|
87
|
+
|
|
88
|
+
Medium Complexity Tasks (5-7):
|
|
89
|
+
📍 #23 "Add export functionality" - Score: 6/10
|
|
90
|
+
Consider expansion if timeline tight
|
|
91
|
+
|
|
92
|
+
Low Complexity Tasks (<5):
|
|
93
|
+
✅ 15 tasks - No expansion needed
|
|
94
|
+
|
|
95
|
+
Summary:
|
|
96
|
+
- Expand immediately: 2 tasks
|
|
97
|
+
- Consider expanding: 5 tasks
|
|
98
|
+
- Keep as-is: 15 tasks
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Actionable Output
|
|
102
|
+
|
|
103
|
+
For each high-complexity task:
|
|
104
|
+
1. Complexity score with reasoning
|
|
105
|
+
2. Specific expansion suggestions
|
|
106
|
+
3. Risk mitigation approaches
|
|
107
|
+
4. Recommended subtask structure
|
|
108
|
+
|
|
109
|
+
## Integration
|
|
110
|
+
|
|
111
|
+
Results are:
|
|
112
|
+
- Saved to `.taskmaster/reports/complexity-analysis.md`
|
|
113
|
+
- Used by expand command
|
|
114
|
+
- Inform sprint planning
|
|
115
|
+
- Guide resource allocation
|
|
116
|
+
|
|
117
|
+
## Next Steps
|
|
118
|
+
|
|
119
|
+
After analysis:
|
|
120
|
+
```
|
|
121
|
+
/taskmaster:expand 5 # Expand specific task
|
|
122
|
+
/taskmaster:expand-all # Expand all recommended
|
|
123
|
+
/taskmaster:complexity-report # View detailed report
|
|
124
|
+
```
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
Analyze Project
|
|
2
|
+
|
|
3
|
+
Arguments: $ARGUMENTS
|
|
4
|
+
Advanced project analysis with actionable insights and recommendations.
|
|
5
|
+
|
|
6
|
+
Arguments: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
## Comprehensive Project Analysis
|
|
9
|
+
|
|
10
|
+
Multi-dimensional analysis based on requested focus area.
|
|
11
|
+
|
|
12
|
+
### 1. **Analysis Modes**
|
|
13
|
+
|
|
14
|
+
Based on $ARGUMENTS:
|
|
15
|
+
- "velocity" → Sprint velocity and trends
|
|
16
|
+
- "quality" → Code quality metrics
|
|
17
|
+
- "risk" → Risk assessment and mitigation
|
|
18
|
+
- "dependencies" → Dependency graph analysis
|
|
19
|
+
- "team" → Workload and skill distribution
|
|
20
|
+
- "architecture" → System design coherence
|
|
21
|
+
- Default → Full spectrum analysis
|
|
22
|
+
|
|
23
|
+
### 2. **Velocity Analytics**
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
📊 Velocity Analysis
|
|
27
|
+
━━━━━━━━━━━━━━━━━━━
|
|
28
|
+
Current Sprint: 24 points/week ↗️ +20%
|
|
29
|
+
Rolling Average: 20 points/week
|
|
30
|
+
Efficiency: 85% (17/20 tasks on time)
|
|
31
|
+
|
|
32
|
+
Bottlenecks Detected:
|
|
33
|
+
- Code review delays (avg 4h wait)
|
|
34
|
+
- Test environment availability
|
|
35
|
+
- Dependency on external team
|
|
36
|
+
|
|
37
|
+
Recommendations:
|
|
38
|
+
1. Implement parallel review process
|
|
39
|
+
2. Add staging environment
|
|
40
|
+
3. Mock external dependencies
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. **Risk Assessment**
|
|
44
|
+
|
|
45
|
+
**Technical Risks**
|
|
46
|
+
- High complexity tasks without backup assignee
|
|
47
|
+
- Single points of failure in architecture
|
|
48
|
+
- Insufficient test coverage in critical paths
|
|
49
|
+
- Technical debt accumulation rate
|
|
50
|
+
|
|
51
|
+
**Project Risks**
|
|
52
|
+
- Critical path dependencies
|
|
53
|
+
- Resource availability gaps
|
|
54
|
+
- Deadline feasibility analysis
|
|
55
|
+
- Scope creep indicators
|
|
56
|
+
|
|
57
|
+
### 4. **Dependency Intelligence**
|
|
58
|
+
|
|
59
|
+
Visual dependency analysis:
|
|
60
|
+
```
|
|
61
|
+
Critical Path:
|
|
62
|
+
#12 → #15 → #23 → #45 → #50 (20 days)
|
|
63
|
+
↘ #24 → #46 ↗
|
|
64
|
+
|
|
65
|
+
Optimization: Parallelize #15 and #24
|
|
66
|
+
Time Saved: 3 days
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 5. **Quality Metrics**
|
|
70
|
+
|
|
71
|
+
**Code Quality**
|
|
72
|
+
- Test coverage trends
|
|
73
|
+
- Complexity scores
|
|
74
|
+
- Technical debt ratio
|
|
75
|
+
- Review feedback patterns
|
|
76
|
+
|
|
77
|
+
**Process Quality**
|
|
78
|
+
- Rework frequency
|
|
79
|
+
- Bug introduction rate
|
|
80
|
+
- Time to resolution
|
|
81
|
+
- Knowledge distribution
|
|
82
|
+
|
|
83
|
+
### 6. **Predictive Insights**
|
|
84
|
+
|
|
85
|
+
Based on patterns:
|
|
86
|
+
- Completion probability by deadline
|
|
87
|
+
- Resource needs projection
|
|
88
|
+
- Risk materialization likelihood
|
|
89
|
+
- Suggested interventions
|
|
90
|
+
|
|
91
|
+
### 7. **Executive Dashboard**
|
|
92
|
+
|
|
93
|
+
High-level summary with:
|
|
94
|
+
- Health score (0-100)
|
|
95
|
+
- Top 3 risks
|
|
96
|
+
- Top 3 opportunities
|
|
97
|
+
- Recommended actions
|
|
98
|
+
- Success probability
|
|
99
|
+
|
|
100
|
+
Result: Data-driven decisions with clear action paths.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
Auto Implement Tasks
|
|
2
|
+
|
|
3
|
+
Arguments: $ARGUMENTS
|
|
4
|
+
Enhanced auto-implementation with intelligent code generation and testing.
|
|
5
|
+
|
|
6
|
+
Arguments: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
## Intelligent Auto-Implementation
|
|
9
|
+
|
|
10
|
+
Advanced implementation with context awareness and quality checks.
|
|
11
|
+
|
|
12
|
+
### 1. **Pre-Implementation Analysis**
|
|
13
|
+
|
|
14
|
+
Before starting:
|
|
15
|
+
- Analyze task complexity and requirements
|
|
16
|
+
- Check codebase patterns and conventions
|
|
17
|
+
- Identify similar completed tasks
|
|
18
|
+
- Assess test coverage needs
|
|
19
|
+
- Detect potential risks
|
|
20
|
+
|
|
21
|
+
### 2. **Smart Implementation Strategy**
|
|
22
|
+
|
|
23
|
+
Based on task type and context:
|
|
24
|
+
|
|
25
|
+
**Feature Tasks**
|
|
26
|
+
1. Research existing patterns
|
|
27
|
+
2. Design component architecture
|
|
28
|
+
3. Implement with tests
|
|
29
|
+
4. Integrate with system
|
|
30
|
+
5. Update documentation
|
|
31
|
+
|
|
32
|
+
**Bug Fix Tasks**
|
|
33
|
+
1. Reproduce issue
|
|
34
|
+
2. Identify root cause
|
|
35
|
+
3. Implement minimal fix
|
|
36
|
+
4. Add regression tests
|
|
37
|
+
5. Verify side effects
|
|
38
|
+
|
|
39
|
+
**Refactoring Tasks**
|
|
40
|
+
1. Analyze current structure
|
|
41
|
+
2. Plan incremental changes
|
|
42
|
+
3. Maintain test coverage
|
|
43
|
+
4. Refactor step-by-step
|
|
44
|
+
5. Verify behavior unchanged
|
|
45
|
+
|
|
46
|
+
### 3. **Code Intelligence**
|
|
47
|
+
|
|
48
|
+
**Pattern Recognition**
|
|
49
|
+
- Learn from existing code
|
|
50
|
+
- Follow team conventions
|
|
51
|
+
- Use preferred libraries
|
|
52
|
+
- Match style guidelines
|
|
53
|
+
|
|
54
|
+
**Test-Driven Approach**
|
|
55
|
+
- Write tests first when possible
|
|
56
|
+
- Ensure comprehensive coverage
|
|
57
|
+
- Include edge cases
|
|
58
|
+
- Performance considerations
|
|
59
|
+
|
|
60
|
+
### 4. **Progressive Implementation**
|
|
61
|
+
|
|
62
|
+
Step-by-step with validation:
|
|
63
|
+
```
|
|
64
|
+
Step 1/5: Setting up component structure ✓
|
|
65
|
+
Step 2/5: Implementing core logic ✓
|
|
66
|
+
Step 3/5: Adding error handling ⚡ (in progress)
|
|
67
|
+
Step 4/5: Writing tests ⏳
|
|
68
|
+
Step 5/5: Integration testing ⏳
|
|
69
|
+
|
|
70
|
+
Current: Adding try-catch blocks and validation...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 5. **Quality Assurance**
|
|
74
|
+
|
|
75
|
+
Automated checks:
|
|
76
|
+
- Linting and formatting
|
|
77
|
+
- Test execution
|
|
78
|
+
- Type checking
|
|
79
|
+
- Dependency validation
|
|
80
|
+
- Performance analysis
|
|
81
|
+
|
|
82
|
+
### 6. **Smart Recovery**
|
|
83
|
+
|
|
84
|
+
If issues arise:
|
|
85
|
+
- Diagnostic analysis
|
|
86
|
+
- Suggestion generation
|
|
87
|
+
- Fallback strategies
|
|
88
|
+
- Manual intervention points
|
|
89
|
+
- Learning from failures
|
|
90
|
+
|
|
91
|
+
### 7. **Post-Implementation**
|
|
92
|
+
|
|
93
|
+
After completion:
|
|
94
|
+
- Generate PR description
|
|
95
|
+
- Update documentation
|
|
96
|
+
- Log lessons learned
|
|
97
|
+
- Suggest follow-up tasks
|
|
98
|
+
- Update task relationships
|
|
99
|
+
|
|
100
|
+
Result: High-quality, production-ready implementations.
|