backlog.md 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.
Files changed (162) hide show
  1. package/.backlog/archive/drafts/readme.md +3 -0
  2. package/.backlog/archive/drafts/task-41 - temporary-test-task.md +13 -0
  3. package/.backlog/archive/readme.md +6 -0
  4. package/.backlog/archive/tasks/readme.md +3 -0
  5. package/.backlog/archive/tasks/task-41 - cli-migrate-terminal-ui-to-bblessed.md +14 -0
  6. package/.backlog/config.yml +7 -0
  7. package/.backlog/decisions/readme.md +7 -0
  8. package/.backlog/docs/readme.md +20 -0
  9. package/.backlog/drafts/readme.md +3 -0
  10. package/.backlog/drafts/task-26 - docs-add-board-export-step-to-agent-dod.md +21 -0
  11. package/.backlog/drafts/task-28 - add-code-of-conduct.md +20 -0
  12. package/.backlog/drafts/task-30 - create-changelog.md +19 -0
  13. package/.backlog/milestones/m-0 - project-setup.md +8 -0
  14. package/.backlog/milestones/m-1 - cli.md +8 -0
  15. package/.backlog/milestones/m-2 - cli-kanban.md +8 -0
  16. package/.backlog/milestones/m-3 - gui.md +8 -0
  17. package/.backlog/milestones/m-4 - gui-kanban.md +8 -0
  18. package/.backlog/milestones/m-5 - gui-advanced.md +12 -0
  19. package/.backlog/milestones/readme.md +3 -0
  20. package/.backlog/readme.md +5 -0
  21. package/.backlog/tasks/readme.md +37 -0
  22. package/.backlog/tasks/task-1 - cli-setup-core-project.md +23 -0
  23. package/.backlog/tasks/task-10 - gui-init-packaging.md +23 -0
  24. package/.backlog/tasks/task-11 - gui-kanban-board.md +26 -0
  25. package/.backlog/tasks/task-12 - gui-advanced.md +25 -0
  26. package/.backlog/tasks/task-13 - cli-add-agent-instruction-prompt.md +53 -0
  27. package/.backlog/tasks/task-13.1 - cli-agent-instruction-file-selection.md +40 -0
  28. package/.backlog/tasks/task-14 - gui-introduction-screens.md +21 -0
  29. package/.backlog/tasks/task-15 - improve-tasks-readme-with-generic-example-and-cli-reference.md +20 -0
  30. package/.backlog/tasks/task-16 - improve-docs-readme-with-generic-example-and-cli-reference.md +20 -0
  31. package/.backlog/tasks/task-17 - improve-drafts-readme-with-generic-example-and-cli-reference.md +20 -0
  32. package/.backlog/tasks/task-18 - improve-decisions-readme-with-generic-example-and-cli-reference.md +20 -0
  33. package/.backlog/tasks/task-19 - cli-fix-default-task-status-and-remove-draft-from-statuses.md +55 -0
  34. package/.backlog/tasks/task-2 - cli-core-logic-library.md +28 -0
  35. package/.backlog/tasks/task-20 - add-agent-guideline-to-mark-tasks-in-progress-on-start.md +32 -0
  36. package/.backlog/tasks/task-21 - kanban-board-vertical-layout.md +31 -0
  37. package/.backlog/tasks/task-22 - cli-prevent-double-dash-in-task-filenames.md +24 -0
  38. package/.backlog/tasks/task-23 - cli-kanban-board-order-tasks-by-id-asc.md +30 -0
  39. package/.backlog/tasks/task-24 - handle-subtasks-in-the-kanban-view.md +38 -0
  40. package/.backlog/tasks/task-24.1 - cli-kanban-board-milestone-view.md +19 -0
  41. package/.backlog/tasks/task-25 - cli-export-kanban-board-to-readme.md +28 -0
  42. package/.backlog/tasks/task-27 - add-contributing-guidelines.md +27 -0
  43. package/.backlog/tasks/task-29 - add-github-templates.md +28 -0
  44. package/.backlog/tasks/task-3 - cli-implement-backlog-init.md +63 -0
  45. package/.backlog/tasks/task-31 - update-readme-for-open-source.md +26 -0
  46. package/.backlog/tasks/task-32 - cli-hide-empty-'no-status'-column.md +31 -0
  47. package/.backlog/tasks/task-33 - cli-export-milestones-board-as-roadmap.md +20 -0
  48. package/.backlog/tasks/task-34 - split-readme.md-for-users-and-contributors.md +26 -0
  49. package/.backlog/tasks/task-35 - finalize-package.json-metadata-for-publishing.md +24 -0
  50. package/.backlog/tasks/task-36 - cli-prompt-for-project-name-in-init.md +24 -0
  51. package/.backlog/tasks/task-37 - cli-board-view-open-tasks-in-ide.md +19 -0
  52. package/.backlog/tasks/task-38 - cli-improved-agent-selection-for-init.md +25 -0
  53. package/.backlog/tasks/task-39 - cli-fix-empty-agent-instruction-files-on-init.md +31 -0
  54. package/.backlog/tasks/task-4 - cli-task-management-commands.md +28 -0
  55. package/.backlog/tasks/task-4.1 - cli-task-create.md +27 -0
  56. package/.backlog/tasks/task-4.10 - use-cli-to-mark-tasks-done.md +51 -0
  57. package/.backlog/tasks/task-4.11 - docs-add-definition-of-done-to-agent-guidelines.md +23 -0
  58. package/.backlog/tasks/task-4.12 - cli-handle-task-id-conflicts-across-branches.md +53 -0
  59. package/.backlog/tasks/task-4.13 - cli-fix-config-command-local-global-logic.md +58 -0
  60. package/.backlog/tasks/task-4.2 - cli-task-list-view.md +25 -0
  61. package/.backlog/tasks/task-4.3 - cli-task-edit.md +24 -0
  62. package/.backlog/tasks/task-4.4 - cli-task-archive-transition.md +27 -0
  63. package/.backlog/tasks/task-4.5 - cli-init-prompts-for-reporter-name-and-global-local-config.md +28 -0
  64. package/.backlog/tasks/task-4.6 - cli-add-empty-assignee-array-field-for-new-tasks.md +35 -0
  65. package/.backlog/tasks/task-4.7 - cli-parse-unquoted-created_date.md +40 -0
  66. package/.backlog/tasks/task-4.8 - cli-enforce-description-header.md +48 -0
  67. package/.backlog/tasks/task-4.9 - cli-normalize-task-id-inputs.md +66 -0
  68. package/.backlog/tasks/task-40 - cli-board-command-defaults-to-view.md +38 -0
  69. package/.backlog/tasks/task-41 - cli-migrate-terminal-ui-to-bblessed.md +93 -0
  70. package/.backlog/tasks/task-41.1 - cli-bblessed-init-wizard.md +42 -0
  71. package/.backlog/tasks/task-41.2 - cli-bblessed-task-view.md +44 -0
  72. package/.backlog/tasks/task-41.3 - cli-bblessed-doc-view.md +45 -0
  73. package/.backlog/tasks/task-41.4 - cli-bblessed-board-view.md +49 -0
  74. package/.backlog/tasks/task-41.5 - cli-audit-remaining-ui-for-bblessed.md +55 -0
  75. package/.backlog/tasks/task-42 - visual-hierarchy.md +54 -0
  76. package/.backlog/tasks/task-43 - remove-duplicate-acceptance-criteria-and-style-metadata.md +56 -0
  77. package/.backlog/tasks/task-44 - checklist-alignment.md +24 -0
  78. package/.backlog/tasks/task-45 - safe-line-wrapping.md +23 -0
  79. package/.backlog/tasks/task-46 - split-pane-layout.md +24 -0
  80. package/.backlog/tasks/task-47 - sticky-header-in-detail-view.md +43 -0
  81. package/.backlog/tasks/task-48 - footer-hint-line.md +21 -0
  82. package/.backlog/tasks/task-49 - status-styling.md +53 -0
  83. package/.backlog/tasks/task-5 - cli-docs-decisions.md +57 -0
  84. package/.backlog/tasks/task-50 - borders-&-padding.md +22 -0
  85. package/.backlog/tasks/task-51 - code-path-styling.md +23 -0
  86. package/.backlog/tasks/task-52 - cli-filter-tasks-list-by-status-or-assignee.md +29 -0
  87. package/.backlog/tasks/task-6 - cli-packaging.md +65 -0
  88. package/.backlog/tasks/task-6.1 - cli-local-installation-support-for-bunx-npx.md +49 -0
  89. package/.backlog/tasks/task-6.2 - cli-github-actions-for-build-&-publish.md +64 -0
  90. package/.backlog/tasks/task-7 - cli-kanban-view.md +60 -0
  91. package/.backlog/tasks/task-7.1 - cli-kanban-board-detect-remote-task-status.md +62 -0
  92. package/.backlog/tasks/task-8 - gui-project-setup.md +21 -0
  93. package/.backlog/tasks/task-9 - gui-task-crud.md +24 -0
  94. package/.cursorrules +223 -0
  95. package/.gitattributes +2 -0
  96. package/.github/ISSUE_TEMPLATE/bug_report.md +25 -0
  97. package/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
  98. package/.github/PULL_REQUEST_TEMPLATE.md +8 -0
  99. package/.github/workflows/ci.yml +36 -0
  100. package/.husky/pre-commit +1 -0
  101. package/AGENTS.md +65 -0
  102. package/CLAUDE.md +87 -0
  103. package/CONTRIBUTING.md +19 -0
  104. package/DEVELOPMENT.md +37 -0
  105. package/LICENSE +21 -0
  106. package/biome.json +31 -0
  107. package/bun.lock +152 -0
  108. package/cli/.cursorrules-xh86jabm.md +82 -0
  109. package/cli/AGENTS-xh86jabm.md +82 -0
  110. package/cli/CLAUDE-xh86jabm.md +82 -0
  111. package/cli/backlog +0 -0
  112. package/cli/cli.js +19622 -0
  113. package/cli/index.js +2 -0
  114. package/docs/npm-publishing.md +69 -0
  115. package/package.json +47 -0
  116. package/readme.md +97 -0
  117. package/scripts/build.js +73 -0
  118. package/src/agent-instructions.ts +54 -0
  119. package/src/board.ts +263 -0
  120. package/src/cli.ts +806 -0
  121. package/src/constants/index.ts +48 -0
  122. package/src/core/backlog.ts +183 -0
  123. package/src/core/remote-tasks.ts +168 -0
  124. package/src/file-system/operations.ts +515 -0
  125. package/src/git/operations.ts +189 -0
  126. package/src/guidelines/.cursorrules.md +82 -0
  127. package/src/guidelines/AGENTS.md +82 -0
  128. package/src/guidelines/CLAUDE.md +82 -0
  129. package/src/guidelines/index.ts +7 -0
  130. package/src/index.ts +30 -0
  131. package/src/markdown/parser.ts +145 -0
  132. package/src/markdown/serializer.ts +71 -0
  133. package/src/test/agent-instructions.test.ts +62 -0
  134. package/src/test/board.test.ts +291 -0
  135. package/src/test/build.test.ts +28 -0
  136. package/src/test/checklist.test.ts +273 -0
  137. package/src/test/cli.test.ts +1300 -0
  138. package/src/test/code-path.test.ts +204 -0
  139. package/src/test/core.test.ts +330 -0
  140. package/src/test/filesystem.test.ts +435 -0
  141. package/src/test/git.test.ts +26 -0
  142. package/src/test/heading.test.ts +102 -0
  143. package/src/test/line-wrapping.test.ts +252 -0
  144. package/src/test/local-install.test.ts +34 -0
  145. package/src/test/markdown.test.ts +526 -0
  146. package/src/test/parallel-loading.test.ts +160 -0
  147. package/src/test/parent-id-normalization.test.ts +48 -0
  148. package/src/test/remote-id-conflict.test.ts +60 -0
  149. package/src/test/status-icon.test.ts +93 -0
  150. package/src/types/blessed.d.ts +14 -0
  151. package/src/types/index.ts +55 -0
  152. package/src/types/raw.d.ts +4 -0
  153. package/src/ui/board.ts +322 -0
  154. package/src/ui/checklist.ts +103 -0
  155. package/src/ui/code-path.ts +113 -0
  156. package/src/ui/heading.ts +121 -0
  157. package/src/ui/loading.ts +216 -0
  158. package/src/ui/status-icon.ts +53 -0
  159. package/src/ui/task-list.ts +168 -0
  160. package/src/ui/task-viewer.ts +640 -0
  161. package/src/ui/tui.ts +301 -0
  162. package/tsconfig.json +26 -0
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: task-20
3
+ title: Add agent guideline to mark tasks In Progress on start
4
+ status: Done
5
+ assignee: []
6
+ reporter: '@MrLesk'
7
+ created_date: '2025-06-09'
8
+ updated_date: '2025-06-09'
9
+ labels:
10
+ - agents
11
+ dependencies: []
12
+ ---
13
+
14
+ ## Description
15
+
16
+ Update the AI agent guideline files to ensure that whenever an agent starts working on a task they immediately mark the task as **In Progress**, assign it to themselves, and push the change.
17
+
18
+ ## Acceptance Criteria
19
+
20
+ - [x] `AGENTS.md` mentions setting status to `In Progress`, assigning the task, and pushing.
21
+ - [x] `CLAUDE.md` mentions the same instruction.
22
+ - [x] `.cursorrules` mentions the same instruction.
23
+ - [x] Task committed to repository.
24
+
25
+ ## Implementation Notes
26
+
27
+ * Added new guideline bullet in `AGENTS.md` instructing agents to set the task to `In Progress`, assign themselves, and push when beginning work.
28
+ * Mirrored the same instruction in `CLAUDE.md:41` under **AI Agent Integration** section.
29
+ * Updated `.cursorrules` within the Project-Specific Rules section to include the requirement.
30
+ * All three files now consistently instruct agents to mark tasks as "In Progress" and assign themselves when starting work.
31
+ * This ensures proper task tracking and prevents multiple agents from working on the same task simultaneously.
32
+ * Implementation follows the established pattern of maintaining consistency across all agent instruction files.
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: task-21
3
+ title: Kanban board vertical layout
4
+ status: Done
5
+ assignee: []
6
+ reporter: '@MrLesk'
7
+ created_date: '2025-06-09'
8
+ updated_date: '2025-06-09'
9
+ completed_date: '2025-06-09'
10
+ labels: []
11
+ dependencies: []
12
+ ---
13
+
14
+ ## Description
15
+
16
+ Add a visualization to the Kanban board where all status columns are displayed vertically in a single column. Include both `--layout vertical` and a shortcut `--vertical` option for convenience.
17
+
18
+ ## Acceptance Criteria
19
+
20
+ - [x] Vertical Kanban view with all statuses in a single column
21
+ - [x] Support `--layout vertical` option for `backlog board view` command
22
+ - [x] Support `--vertical` shortcut option for `backlog board view` command
23
+ - [x] Documentation updated if necessary
24
+
25
+ ## Implementation Notes
26
+
27
+ - Added `BoardLayout` type and support for `vertical` layout in `generateKanbanBoard`.
28
+ - Introduced `--layout` option for `backlog board view` command.
29
+ - Added `--vertical` shortcut flag that overrides `--layout` when specified.
30
+ - Updated logic to prioritize `--vertical` flag over `--layout` option.
31
+ - Updated tests and documentation to cover the new layout options.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: task-22
3
+ title: 'CLI: Prevent double dash in task filenames'
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ labels: []
9
+ dependencies: []
10
+ ---
11
+
12
+ ## Description
13
+
14
+ Ensure generated task filenames never contain consecutive dashes
15
+
16
+ ## Acceptance Criteria
17
+ - [x] Filenames generated by the CLI do not contain consecutive dashes
18
+ - [x] Task committed to the repository
19
+
20
+ ## Implementation Notes
21
+ - Updated `sanitizeFilename` utility to collapse repeated dashes and trim leading
22
+ or trailing dashes.
23
+ - Added regression test ensuring filenames created for tasks never contain
24
+ consecutive dashes.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: task-23
3
+ title: 'CLI: Kanban board order tasks by ID ASC'
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ completed_date: '2025-06-09'
9
+ labels: []
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Sort tasks within each status column by numeric task ID in ascending order when rendering the board.
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - [x] Tasks in each status column are sorted by numeric task ID ascending.
20
+ - [x] Sorting occurs after collecting tasks from all sources (local or remote, if implemented).
21
+ - [x] Board output consistently displays tasks in ascending order regardless of branch order.
22
+
23
+ ## Implementation Notes
24
+
25
+ - Added `idSegments` helper function to parse task IDs into numeric segments for proper sorting.
26
+ - Implemented `compareIds` function that compares tasks by their numeric ID segments, handling both simple IDs (task-1, task-2) and complex decimal IDs (task-4.1, task-4.2).
27
+ - Tasks are sorted using `list.slice().sort(compareIds)` within each status column in the `generateKanbanBoard` function.
28
+ - Sorting works correctly with both horizontal and vertical board layouts.
29
+ - Added comprehensive test "sorts tasks by numeric id within each status" to verify task-2 appears before task-10.
30
+ - Successfully resolved merge conflicts with vertical layout and export functionality while preserving all features.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: task-24
3
+ title: Handle subtasks in the Kanban view
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ completed_date: '2025-06-09'
9
+ labels: []
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Display subtasks indented with pipes | and em dashes — under their parent task. Subtask IDs show the pipe prefix while titles are cleanly spaced. Includes configurable column width settings for optimal display formatting.
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - [x] Subtasks appear under their parent task in the Kanban board
20
+ - [x] Pipes and em dashes visually indent subtasks for clarity
21
+ - [x] Subtask IDs prefixed with ` |—` (2 spaces + pipe + em dash)
22
+ - [x] Subtask titles indented with 6 spaces total for optimal alignment
23
+ - [x] Column width configurable via `max_column_width` in config.yml
24
+
25
+ ## Implementation Notes
26
+
27
+ * Updated `generateKanbanBoard()` in `src/board.ts` to group subtasks under
28
+ their parent when both share the same status.
29
+ * Subtasks use enhanced formatting: IDs prefixed with ` |—` (2 spaces + pipe + em dash),
30
+ titles indented with 6 spaces total for optimal visual alignment.
31
+ * Added configurable column width via `maxColumnWidth` parameter and `max_column_width`
32
+ in config.yml (default: 20 for terminal, 80 for export).
33
+ * Added new unit test `nests subtasks under their parent when statuses match`
34
+ in `src/test/board.test.ts`.
35
+ * Successfully integrated subtask functionality with ID sorting (task 23), vertical layout (task 21), and export features (task 25).
36
+ * Enhanced sorting to use `compareIds` for both parent tasks and subtasks, ensuring proper numeric ordering.
37
+ * Subtask functionality works seamlessly across all board layouts (horizontal/vertical) and export operations.
38
+ * Board export supports both terminal and markdown formats with proper column width constraints.
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: task-24.1
3
+ title: 'CLI: Kanban board milestone view'
4
+ status: In Progress
5
+ assignee: @codex
6
+ created_date: '2025-06-09'
7
+ labels: []
8
+ dependencies: []
9
+ parent_task_id: task-24
10
+ ---
11
+
12
+ ## Description
13
+
14
+ Add a backlog board view --milestones or -m to view the board based on milestones
15
+
16
+ ## Acceptance Criteria
17
+
18
+ - [ ] `backlog board view --milestones` or `-m` groups tasks by milestone
19
+ - [ ] Documentation updated if necessary
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: task-25
3
+ title: 'CLI: Export Kanban board to README'
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ labels: []
9
+ dependencies: []
10
+ ---
11
+
12
+ ## Description
13
+
14
+ Implement new command backlog board export to append the board to README.md or specified output file.
15
+
16
+ ## Acceptance Criteria
17
+
18
+ - [x] `backlog board export` writes the kanban board to `readme.md` if it exists.
19
+ - [x] Provide `--output <path>` option to save board to another file.
20
+ - [x] Automatically create the file if the specified path does not exist.
21
+ - [x] Appended content preserves existing file contents and adds the board at the end.
22
+
23
+ ## Implementation Notes
24
+
25
+ - Added `exportKanbanBoardToFile()` in `src/board.ts` to handle writing the board to a file.
26
+ - New `board export` command in `src/cli.ts` gathers tasks (including remote) and uses this helper.
27
+ - Supports `--output` option and defaults to `readme.md`.
28
+ - Ensures output file exists and appends the board while preserving content.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: task-27
3
+ title: Add CONTRIBUTING guidelines
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ labels:
9
+ - docs
10
+ - github
11
+ dependencies: []
12
+ ---
13
+
14
+ ## Description
15
+
16
+ Create CONTRIBUTING.md with guidelines for contributing to Backlog.md.
17
+
18
+ ## Acceptance Criteria
19
+ - [x] CONTRIBUTING.md explains how to open issues and PRs
20
+ - [x] Describes running tests and linting
21
+ - [x] Task committed to repository
22
+
23
+ ## Implementation Notes
24
+ - Added `CONTRIBUTING.md` with sections on opening issues and submitting
25
+ pull requests.
26
+ - Documented test and lint commands (`bun test` and `npx biome check .`).
27
+ - Linked to the new guidelines from `readme.md`.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: task-29
3
+ title: Add GitHub templates
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ labels:
9
+ - github
10
+ - docs
11
+ dependencies: []
12
+ ---
13
+
14
+ ## Description
15
+
16
+ Create issue and pull request templates under .github/.
17
+
18
+ ## Acceptance Criteria
19
+ - [x] Bug report and feature request templates added
20
+ - [x] Pull request template added referencing task IDs
21
+ - [x] Task committed to repository
22
+
23
+ ## Implementation Notes
24
+
25
+ - Added `.github/ISSUE_TEMPLATE` with bug and feature request templates.
26
+ - Created `PULL_REQUEST_TEMPLATE.md` requesting Backlog task references.
27
+ - Documented templates in `readme.md`.
28
+
@@ -0,0 +1,63 @@
1
+ ---
2
+ id: task-3
3
+ title: "CLI: Implement `backlog init` Command"
4
+ status: Done
5
+ assignee: @MrLesk
6
+ reporter: @MrLesk
7
+ created_date: 2025-06-04
8
+ labels: ["cli", "command"]
9
+ milestone: "M1 - CLI"
10
+ dependencies: ["task-2"]
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Implement the `backlog init <project-name>` command in the CLI. This command will set up the `.backlog` directory structure and a `config.yml` in the current Git repository.
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - [x] `backlog init <project-name>` command creates all necessary subdirectories within `.backlog`.
20
+ - [x] `backlog init <project-name>` creates an initial commit for the `.backlog` structure.
21
+ - [x] Command provides appropriate user feedback.
22
+
23
+ ## Implementation Summary
24
+
25
+ ✅ **CLI Implementation Recovered & Complete**
26
+
27
+ ### Features Recovered
28
+ - **Command Line Interface**: Built with Commander.js for argument parsing
29
+ - **Git Integration**: Automatically detects git repositories and offers to initialize if missing
30
+ - **Directory Structure**: Creates complete `.backlog` directory hierarchy
31
+ - **Configuration**: Generates `config.yml` with project name and default settings
32
+ - **Git Commit**: Automatically commits the initial backlog structure
33
+ - **User Feedback**: Provides clear success messages and error handling
34
+
35
+ ### Technical Details
36
+ - **Entry Point**: `src/cli.ts` contains the CLI implementation
37
+ - **Build System**: Compiles to `cli/index.js` for distribution
38
+ - **Package Scripts**:
39
+ - `bun run cli` - Run CLI from source
40
+ - `bun run build` - Build distributable CLI
41
+ - **Testing**: Comprehensive test suite with 5 integration tests
42
+ - **Dependencies**: Added `commander@14.0.0` for CLI parsing
43
+
44
+ ### Usage
45
+ ```bash
46
+ # From source
47
+ bun src/cli.ts init "My Project"
48
+
49
+ # Built version
50
+ ./cli/index.js init "My Project"
51
+
52
+ # Help
53
+ bun src/cli.ts --help
54
+ ```
55
+
56
+ ### Test Coverage
57
+ - ✅ Initializes backlog project in existing git repo
58
+ - ✅ Creates all required directories
59
+ - ✅ Handles project names with special characters
60
+ - ✅ Works when git repo exists
61
+ - ✅ Creates initial commit with backlog structure
62
+
63
+ All **62 tests passing** including 5 CLI integration tests.
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: task-31
3
+ title: Update README for open source
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ labels:
9
+ - docs
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Add installation badges, link to license and contributing guide. Document global install and example usage.
16
+
17
+ ## Acceptance Criteria
18
+ - [x] README highlights MIT license and contribution guidelines
19
+ - [x] Includes npm and bun install badges
20
+ - [x] Provides quick start example
21
+ - [x] Task committed to repository
22
+
23
+ ## Implementation Notes
24
+ - Added npm and bun badge images with links in `readme.md`.
25
+ - Inserted license and contribution links near the top of the README.
26
+ - Added new Quick Start section showing global install and example commands.
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: task-32
3
+ title: 'CLI: Hide empty ''No Status'' column'
4
+ status: Done
5
+ assignee: []
6
+ created_date: '2025-06-09'
7
+ updated_date: '2025-06-09'
8
+ labels:
9
+ - cli
10
+ - bug
11
+ dependencies: []
12
+ ---
13
+
14
+ ## Description
15
+
16
+ When viewing the kanban board with `backlog board view`, an empty **No Status** column is always displayed even if no tasks lack a status. The board should only include this column when there are tasks without a defined status.
17
+
18
+ ## Acceptance Criteria
19
+
20
+ - [x] The board does not render the **No Status** column when there are no tasks missing a status.
21
+ - [x] Regression test verifies the column is hidden when unused.
22
+ - [x] Task committed to the repository.
23
+
24
+ ## Implementation Notes
25
+
26
+ * The functionality was already implemented in `generateKanbanBoard()` in `src/board.ts:71-78`.
27
+ * The code filters out empty status groups using `(groups.get(s)?.length ?? 0) > 0` condition.
28
+ * This ensures only status columns with actual tasks are displayed in both horizontal and vertical layouts.
29
+ * Regression test `omits 'No Status' column when all tasks have status` exists in `src/test/board.test.ts:77-93`.
30
+ * The implementation works for both terminal and markdown export formats.
31
+ * All existing functionality is preserved while improving the UI by hiding unnecessary empty columns.
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: task-33
3
+ title: 'CLI: Export milestones board as roadmap'
4
+ status: To Do
5
+ assignee: []
6
+ created_date: '2025-06-10'
7
+ labels: []
8
+ dependencies: []
9
+ milestone: "M2 - CLI Kanban Board"
10
+ ---
11
+
12
+ ## Description
13
+
14
+ Implement board export for milestones, enabling an overview of tasks by milestone as a roadmap. Add --title / -t option to set a custom title.
15
+
16
+ ## Acceptance Criteria
17
+
18
+ - [ ] `backlog board export --milestones` exports tasks grouped by milestone as a roadmap
19
+ - [ ] Add `--title` or `-t` option to specify a custom heading in the exported file
20
+ - [ ] Documentation updated with usage examples
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: task-34
3
+ title: Split readme.md for users and contributors
4
+ status: Done
5
+ assignee:
6
+ - "@codex"
7
+ created_date: '2025-06-09'
8
+ labels:
9
+ - docs
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Split the current README.md into two separate files: one focused on how to use the Backlog.md CLI, and another covering how to run the project locally for contributors.
16
+
17
+ ## Acceptance Criteria
18
+ - [x] README for users explains how to install and use Backlog.md CLI
19
+ - [x] Separate documentation describes how to run the project locally for contributors
20
+ - [x] Both docs link to each other from the repository root
21
+ - [x] Task committed to repository
22
+
23
+ ## Implementation Notes
24
+ - Created `DEVELOPMENT.md` with instructions for running and testing the project locally.
25
+ - Removed development sections from `readme.md` and added a link to the new document.
26
+ - Added reciprocal link back to `readme.md` from `DEVELOPMENT.md`.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: task-35
3
+ title: Finalize package.json metadata for publishing
4
+ status: Done
5
+ assignee:
6
+ - '@codex'
7
+ created_date: '2025-06-09'
8
+ updated_date: '2025-06-10'
9
+ labels: []
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Add full author and repository information to package.json for npm publishing.
16
+
17
+ ## Acceptance Criteria
18
+ - [x] `author` field defined
19
+ - [x] `repository` URL set
20
+ - [x] `bugs` URL set
21
+ - [x] `homepage` field set
22
+ - [x] `keywords` array includes relevant terms
23
+ - [x] `license` field confirmed
24
+ - [x] `npm publish --dry-run` succeeds with no warnings
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: task-36
3
+ title: 'CLI: Prompt for project name in init'
4
+ status: Done
5
+ assignee:
6
+ - '@codex'
7
+ created_date: '2025-06-10'
8
+ updated_date: '2025-06-10'
9
+ labels: []
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Allow `backlog init` to run without specifying a project name. When omitted, the CLI should prompt for the name before proceeding.
16
+
17
+ ## Acceptance Criteria
18
+ - [x] `backlog init` works without project name parameter
19
+ - [x] When project name is missing, CLI prompts for it before initialization
20
+ - [x] Task committed to repository
21
+
22
+ ## Implementation Notes
23
+ - Updated `src/cli.ts` to accept optional project name and prompt when omitted.
24
+ - Added integration test covering prompt behavior in `src/test/cli.test.ts`.
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: task-37
3
+ title: 'CLI: Board view open tasks in IDE'
4
+ status: In Progress
5
+ assignee:
6
+ - '@AI'
7
+ created_date: '2025-06-10'
8
+ labels: []
9
+ dependencies: []
10
+ ---
11
+
12
+
13
+ ## Description
14
+
15
+ Add clickable links to each task id in the board view that open the task file in the user's default IDE.
16
+
17
+ ## Acceptance Criteria
18
+ - [ ] Every task id displayed in the board is a hyperlink that opens the task file in the configured IDE when clicked.
19
+ - [ ] Provide a --no-links option to disable hyperlink generation.
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: task-38
3
+ title: 'CLI: Improved Agent Selection for Init'
4
+ status: Done
5
+ assignee:
6
+ - '@AI'
7
+ created_date: '2025-06-10'
8
+ updated_date: '2025-06-10'
9
+ labels: []
10
+ dependencies: []
11
+ ---
12
+
13
+ ## Description
14
+ Implement interactive checkbox-style selection for agents during 'backlog init'. Users should select one or multiple agents using space or enter, similar to modern CLI tools.
15
+
16
+ ## Acceptance Criteria
17
+ - [x] Interactive checkbox UI replaces current agent selection
18
+ - [x] Users can select one or multiple agents using space and confirm with enter
19
+ - [x] Works consistently across Node and Bun runtimes
20
+ - [x] Task committed to repository
21
+
22
+ ## Implementation Notes
23
+ - Added `prompts` dependency for interactive CLI prompts.
24
+ - Replaced numeric input with `multiselect` checkbox prompt in `src/cli.ts`.
25
+ - Supports selecting multiple agent instruction files with space/enter.
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: task-39
3
+ title: 'CLI: fix empty agent instruction files on init'
4
+ status: Done
5
+ assignee:
6
+ - '@codex'
7
+ reporter: '@MrLesk'
8
+ created_date: '2025-06-10'
9
+ updated_date: '2025-06-10'
10
+ labels:
11
+ - cli
12
+ - bug
13
+ dependencies: []
14
+ ---
15
+
16
+ ## Description
17
+
18
+ Backlog init should populate selected agent instruction files with default content instead of creating empty files.
19
+
20
+ ## Acceptance Criteria
21
+
22
+ - [x] Selected agent instruction files contain default guideline text after running `backlog init`
23
+ - [x] Automated test verifies non-empty content is written to each created file
24
+
25
+ ## Implementation Notes
26
+
27
+ - Imported guideline constants may resolve to file paths when bundled. Added
28
+ `_loadAgentGuideline` helper to read file contents when needed.
29
+ - `addAgentInstructions` now loads guideline text before writing files, ensuring
30
+ non-empty content in `AGENTS.md`, `CLAUDE.md`, and `.cursorrules`.
31
+ - Updated CLI and tests to verify content length instead of specific words.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: task-4
3
+ title: 'CLI: Task Management Commands'
4
+ status: Done
5
+ assignee: []
6
+ reporter: '@MrLesk'
7
+ created_date: '2025-06-04'
8
+ updated_date: '2025-06-09'
9
+ completed_date: '2025-06-09'
10
+ labels:
11
+ - cli
12
+ - command
13
+ milestone: M1 - CLI
14
+ dependencies:
15
+ - task-3
16
+ ---
17
+
18
+ ## Description
19
+
20
+ Implement comprehensive task management functionality including creation, listing, viewing, editing, and archiving of tasks and drafts. This encompasses all user-facing CLI commands for task lifecycle management.
21
+
22
+ ## Implementation Notes
23
+
24
+ - Subtasks **task-4.1** through **task-4.13** introduced complete CLI support for task and draft management.
25
+ - Commands include `task create`, `task list`, `task view`, `task edit`, `task archive`, `task demote`, and draft variants.
26
+ - Tasks can be created as subtasks using the `--parent` option and moved between draft and active states.
27
+ - Metadata updates such as status and labels persist correctly through the `edit` command.
28
+ - Extensive tests and documentation were added in each subtask to ensure reliability.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: task-4.1
3
+ title: "CLI: Task Creation Commands"
4
+ status: Done
5
+ assignee: @MrLesk
6
+ reporter: @MrLesk
7
+ created_date: 2025-06-04
8
+ labels: ["cli", "command"]
9
+ milestone: "M1 - CLI"
10
+ dependencies: ["task-3"]
11
+ parent_task_id: task-4
12
+ ---
13
+
14
+ ## Description
15
+
16
+ Implement commands for creating tasks, drafts, and subtasks:
17
+
18
+ - `backlog task create` to add active tasks.
19
+ - `backlog draft create` to create tasks in draft mode.
20
+ - `backlog task create --parent <task-id>` to create a subtask under an existing task.
21
+
22
+ ## Acceptance Criteria
23
+
24
+ - [x] Commands create Markdown files in the correct directories.
25
+ - [x] Required metadata is captured from flags or prompts.
26
+ - [x] Subtasks are saved using decimal IDs under `.backlog/tasks/`.
27
+ - [x] Changes are committed with a descriptive message.
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: task-4.10
3
+ title: 'CLI: enforce Agents to use backlog CLI to mark tasks Done'
4
+ status: Done
5
+ assignee: []
6
+ reporter: @MrLesk
7
+ created_date: '2025-06-08'
8
+ updated_date: '2025-06-09'
9
+ labels:
10
+ - cli
11
+ - agents
12
+ dependencies: []
13
+ parent_task_id: task-4
14
+ ---
15
+
16
+ ## Description
17
+
18
+ Update agent guidelines so that after implementing and testing a task, they use the backlog CLI to set the task status to **Done**.
19
+
20
+ ## Acceptance Criteria
21
+ - [x] Documentation instructs agents to run `backlog task edit <task-id> --status Done` after testing.
22
+ - [x] Example usage included in AGENTS.md, CLAUDE.md and .cursorrules files
23
+
24
+ ## Implementation Notes
25
+
26
+ **Task 4.10 Implementation Summary:**
27
+
28
+ 1. **Review Found Complete Implementation:**
29
+ - All agent guidance files already included the CLI command instruction
30
+ - Implementation was found to be complete during merge conflict resolution
31
+
32
+ 2. **Documentation Updates Applied:**
33
+ - **AGENTS.md**: Added CLI command instruction in guidelines section and Definition of Done
34
+ - **CLAUDE.md**: Added CLI command instruction in AI Agent Integration section
35
+ - **.cursorrules**: Added CLI command instruction in Task Management section
36
+
37
+ 3. **Consistent Command Format:**
38
+ - All files now include the same command: `backlog task edit <task-id> --status Done`
39
+ - Command is presented in code blocks for clarity
40
+ - Instructions emphasize using this after implementing and testing tasks
41
+
42
+ 4. **Merge Conflict Resolution:**
43
+ - Resolved conflict in AGENTS.md by combining task 4.10 implementation with Definition of Done from main
44
+ - Ensured CLI command appears both in guidelines and Definition of Done for consistency
45
+
46
+ 5. **Quality Assurance:**
47
+ - All 105 tests pass
48
+ - Code passes all Biome linting and formatting checks
49
+ - All agent guidance files now consistently instruct using the Backlog CLI
50
+
51
+ All AI agents working with this project are now properly guided to mark tasks as Done using the CLI command, ensuring consistent workflow and proper task status management.