grokkit/todo/queued/workon.md

46 lines
2.4 KiB
Markdown
Raw Normal View History

# `grokkit workon`
**Description**: Automates the initiation of new todo item and fix development.
1. selects a todo item out of the todo queue and moves it to the "doing" folder;
2. creates a branch based on the item;
3. generates a plan for implementation (amending it to the todo item under the heading "Work Plan");
4. commits the plan to the branch.
5. [optional] logs the beginning of the work using `cnadd` (if available).
6. [optional] opens the branch in the IDE (specified in the config).
**Assumptions**:
Grokkit is being customized to suit my own development workflow. So, there are a number of features that may not be translatable to other developers' habits. As such, this feature assumes that the repository has a "todo" folder with a "queued", "doing" and "completed" subfolder, that function as the in-situ ticketing system. If the "todo" folder is not present, grokkit will create it.
Also, if no IDE is specified in the config, the feature will default to not opening the editor. If `cnadd` is not available, the feature will default to not logging the beginning of the work.
**Benefits**:
1. Boosts productivity by automating routine tasks.
2. Makes it easier to track the progress of the work.
3. Makes feature development more uniform and consistent.
**Usage**:
```
grokkit workon <todo_item_title> [[-m '<custom_commit_message>'] [-f]] | [-c]
```
**Arguments**:
- `<todo_item_title>`: The item to be worked on.
- If this is a todo, then there should be a Markdown entry in the queued folder with the same name, which will be moved to the doing folder. That should also be the name of the branch.
- If this is a fix, then use the argument as a branch name and as the name of a markdown file to be created, where the Work Plan will be stored in the "doing" folder.
- In both instances, If spaces are present, replace them with dashes.
- `-m '<custom_commit_message>'`: custom commit message to use for the branch. Default is "Start working on <todo_item_title>".
- `-f`: This signifies a "fix" rather than a todo item (the default is always a todo item)
- `-c`: "completes" the work item (note: cannot be used with other flags). This means:
- If it is a todo, it will be moved to the "completed" folder, and the index readme will be updated.
- If it is a fix, the work plan will be moved to the "completed folder". No index update is necessary.
- In either case, the update will be committed to the branch.
**High-level implementation**:
1. TBD