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,49 @@
1
+ ---
2
+ id: task-6.1
3
+ title: 'CLI: Local installation support for bunx/npx'
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
+ dependencies: []
12
+ parent_task_id: task-6
13
+ ---
14
+
15
+ ## Description
16
+
17
+ Allow installing Backlog.md locally in JS projects so agents can run bunx/npx backlog create when global install isn't available.
18
+
19
+ ## Acceptance Criteria
20
+
21
+ - [x] Remove `"private": true` from package.json to allow publishing
22
+ - [x] Configure proper package name/scope for npm registry
23
+ - [x] Test and verify `npx backlog` and `bunx backlog` work from any project directory
24
+ - [x] Update documentation with local installation instructions
25
+
26
+ ## Implementation Notes
27
+
28
+ **Package Configuration:**
29
+ - `package.json` configured for npm publishing with proper `name`, `version` (0.1.0), and `bin` entry
30
+ - `bin` field points to `./cli/index.js` enabling global CLI access after installation
31
+ - Build script creates both Node.js bundle and compiled binary for distribution flexibility
32
+
33
+ **Local Installation Support:**
34
+ - Package installable via `npm install backlog.md --save-dev` or `bun add -d backlog.md`
35
+ - CLI accessible through `npx backlog` and `bunx backlog` commands
36
+ - Works from any directory within the project after local installation
37
+
38
+ **Documentation:**
39
+ - `readme.md` includes comprehensive local installation section (lines 15-30)
40
+ - Documents both npm and bun installation methods
41
+ - Provides clear usage examples for npx/bunx execution
42
+
43
+ **Test Coverage:**
44
+ - `local-install.test.ts` automatically tests both execution methods
45
+ - Creates temporary project, builds tarball, installs locally, and verifies CLI functionality
46
+ - Tests confirm `--help` output contains expected "Backlog project management CLI" text
47
+ - Both npx and bunx execution paths validated in isolated environment
48
+
49
+ The implementation ensures seamless local installation for projects where global CLI installation isn't available, particularly useful for AI agents working in constrained environments.
@@ -0,0 +1,64 @@
1
+ ---
2
+ id: task-6.2
3
+ title: 'CLI: GitHub Actions for Build & Publish'
4
+ status: Done
5
+ assignee: []
6
+ reporter: '@MrLesk'
7
+ created_date: '2025-06-09'
8
+ updated_date: '2025-06-09'
9
+ labels:
10
+ - ci
11
+ dependencies: []
12
+ parent_task_id: task-6
13
+ ---
14
+
15
+ ## Description
16
+
17
+ Set up continuous integration for the CLI. Use GitHub Actions to build the project with Bun, run tests, and publish the package to npm (and by extension Yarn) when a release tag is pushed.
18
+
19
+ ## Acceptance Criteria
20
+
21
+ - [x] Workflow builds the CLI with `bun build` and runs tests
22
+ - [x] Publishing step deploys to npm using `NODE_AUTH_TOKEN`
23
+ - [x] Trigger on version tags like `v*.*.*`
24
+ - [x] Documentation updated with release instructions
25
+
26
+ ## Implementation Notes
27
+
28
+ **GitHub Actions Workflow (.github/workflows/ci.yml):**
29
+ - Created comprehensive CI/CD pipeline with name "Build and Publish"
30
+ - **Triggers**: Main branch pushes, pull requests, and version tags matching `v*.*.*` pattern
31
+ - **Environment**: Runs on `ubuntu-latest` with Bun runtime setup via `oven-sh/setup-bun@v1`
32
+ - **Build Process**: Executes `bun install`, `bun run build`, and `bun test` in sequence
33
+ - **Publishing**: Conditional publishing to npm only when tags are pushed (`startsWith(github.ref, 'refs/tags/')`)
34
+
35
+ **Build & Test Pipeline:**
36
+ - **Dependencies**: `bun install` installs all project dependencies
37
+ - **Build**: `bun run build` executes complex build script creating both Node.js bundle and compiled binary
38
+ - **Testing**: `bun test` runs entire test suite (122+ tests) to ensure quality before publishing
39
+ - **Build Artifacts**: Creates `cli/index.js` (Node.js entry point) and `cli/backlog` (standalone binary)
40
+
41
+ **NPM Publishing Configuration:**
42
+ - Uses `npm publish --access public` for publishing to npm registry
43
+ - Authenticates via `NODE_AUTH_TOKEN` environment variable from GitHub secrets
44
+ - Package configured with `"name": "backlog.md"` and proper `bin` entry pointing to `./cli/index.js`
45
+ - Version controlled via `package.json` version field (currently 0.1.0)
46
+
47
+ **Documentation & Release Process (readme.md:245-257):**
48
+ - Added comprehensive "Release" section with step-by-step instructions
49
+ - **Process**: Update version in package.json → Commit changes → Create git tag → Push tag
50
+ - **Automation**: Git tag push automatically triggers GitHub Actions workflow
51
+ - **Security**: Workflow uses repository `NODE_AUTH_TOKEN` secret for secure npm publishing
52
+
53
+ **Quality Assurance:**
54
+ - Workflow validates build process before any publishing attempt
55
+ - All tests must pass before package publication
56
+ - Conditional publishing prevents accidental releases from non-tag pushes
57
+ - Multi-trigger setup enables CI validation on PRs and main branch changes
58
+
59
+ **Future Considerations:**
60
+ - Workflow ready for production use with proper security practices
61
+ - Supports semantic versioning via git tags (v1.0.0, v2.1.3, etc.)
62
+ - Can be enhanced with version consistency validation and artifact retention if needed
63
+
64
+ The implementation provides a complete automated CI/CD pipeline that builds, tests, and publishes the Backlog.md CLI package to npm whenever a version tag is pushed, ensuring quality releases with minimal manual intervention.
@@ -0,0 +1,60 @@
1
+ ---
2
+ id: task-7
3
+ title: "Kanban Board: Implement CLI Text-Based Kanban Board View"
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: ["cli", "command"]
11
+ milestone: "M2 - CLI Kanban Board"
12
+ dependencies: ["task-3"]
13
+ ---
14
+
15
+ ## Description
16
+
17
+ Design and implement a CLI command (`backlog board view` or similar) that reads tasks from `.backlog/tasks/` and displays them in a simple text-based Kanban board format in the terminal. Columns should be derived from task statuses.
18
+
19
+ ## Acceptance Criteria
20
+
21
+ - [x] Command parses task files and groups them by status.
22
+ - [x] Output is a readable text-based representation of the Kanban board.
23
+ - [x] Columns are dynamically generated.
24
+
25
+ ## Implementation Notes
26
+
27
+ **Core Implementation (src/board.ts):**
28
+ - `generateKanbanBoard()` function creates text-based kanban board from task array
29
+ - Dynamically groups tasks by status using Map for efficient lookup
30
+ - Respects configured status order from project config (`config.yml`)
31
+ - Auto-adjusts column widths based on longest content (status name or task title)
32
+ - Handles empty task lists by showing configured status columns
33
+ - Supports tasks with missing/empty status under "No Status" column
34
+
35
+ **CLI Integration (src/cli.ts:380-399):**
36
+ - Added `backlog board view` command with proper help documentation
37
+ - Loads tasks from filesystem and project configuration
38
+ - Gracefully handles empty projects with "No tasks found" message
39
+ - Integrates with existing Core/FileSystem infrastructure
40
+
41
+ **Algorithm Features:**
42
+ - Column-based layout with proper padding and separators
43
+ - Maintains visual alignment with calculated column widths
44
+ - Status ordering: configured statuses first, then any unrecognized statuses
45
+ - Clean table format: header row, separator line, task rows
46
+ - Multi-line task display: task ID on first line, title on second line
47
+ - Empty rows between tasks for improved readability
48
+ - Screen-friendly format that accommodates long task titles
49
+
50
+ **Test Coverage (src/test/board.test.ts + src/test/cli.test.ts):**
51
+ - Unit tests for core board generation function (5 test cases)
52
+ - Integration tests for CLI board command (2 test cases)
53
+ - Edge cases: empty tasks, no status, long titles, status ordering
54
+ - Comprehensive verification of board structure and content
55
+
56
+ **Export Integration (src/index.ts:25):**
57
+ - Function exported for reuse in other modules
58
+ - Follows project's modular architecture pattern
59
+
60
+ The implementation provides a professional text-based kanban view that works seamlessly with the existing CLI infrastructure and maintains visual consistency across different terminal widths.
@@ -0,0 +1,62 @@
1
+ ---
2
+ id: task-7.1
3
+ title: 'CLI: Kanban board detect remote task status'
4
+ status: Done
5
+ assignee: []
6
+ reporter: @MrLesk
7
+ created_date: '2025-06-09'
8
+ updated_date: '2025-06-09'
9
+ labels: []
10
+ dependencies: []
11
+ parent_task_id: task-7
12
+ ---
13
+
14
+ ## Description
15
+
16
+ Improve the Kanban board command so it checks all branches on the `origin`
17
+ remote for task updates before rendering the board. Use `git fetch` to get the
18
+ latest references and then iterate through each branch to collect task files
19
+ using `git ls-tree`. Retrieve each task file with `git show` and merge the most
20
+ recent status into the board view. If multiple branches contain the same task,
21
+ adopt the frontmatter from the task that supplies the latest status so fields
22
+ like `title` and `assignee` remain current.
23
+
24
+ Status conflicts can occur when the same task has different status values in
25
+ multiple branches. In that case always display the last status found in the
26
+ iteration order and respect the status sequence defined in `config.yml`.
27
+ All frontmatter fields should also come from the task file that provided the
28
+ chosen status.
29
+
30
+ ## Acceptance Criteria
31
+
32
+ - [x] `backlog board view` fetches and scans every branch under `origin` for task files.
33
+ - [x] The displayed status for each task reflects the most recent entry across all branches.
34
+ - [x] Status columns follow the configured order and fall back to the last seen status on conflicts, copying the full frontmatter from the task that provided the displayed status.
35
+
36
+ ## Implementation Notes
37
+
38
+ Added remote task status detection to the CLI kanban board view. Key technical details:
39
+
40
+ **Git Operations Enhanced:**
41
+ - Added `fetchRemote()`, `listRemoteBranches()`, `listFilesInTree()`, and `showFile()` methods to `GitOperations` class in `src/git/operations.ts`
42
+ - These methods use git commands: `fetch`, `branch -r`, `ls-tree -r --name-only`, and `show` respectively
43
+
44
+ **Board View Logic (src/cli.ts:428-454):**
45
+ - Fetches latest remote references using `core.gitOps.fetchRemote()`
46
+ - Iterates through all remote branches from `core.gitOps.listRemoteBranches()`
47
+ - For each branch, scans `.backlog/tasks` directory using `core.gitOps.listFilesInTree()`
48
+ - Retrieves and parses task files using `core.gitOps.showFile()` and `parseTask()`
49
+ - Merges task status based on configured status order - later statuses override earlier ones
50
+ - Preserves all frontmatter (title, assignee, etc.) from the task providing the winning status
51
+ - Gracefully handles remote access errors (offline scenarios, missing remotes)
52
+
53
+ **Status Conflict Resolution:**
54
+ - Uses `statuses.indexOf()` to determine status progression order from config.yml
55
+ - Condition `newIdx > currentIdx || currentIdx === -1 || newIdx === currentIdx` ensures the most advanced status wins
56
+ - When status indices are equal, the last seen task (iteration order) takes precedence
57
+ - Entire task object is replaced (not just status) to maintain frontmatter consistency
58
+
59
+ **Testing:**
60
+ - Comprehensive test in `src/test/cli.test.ts` verifies remote status merging with bare git repositories
61
+ - Test creates a feature branch with updated task status and verifies main branch picks up the advanced status
62
+
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: task-8
3
+ title: "GUI: Setup GUI Project Structure"
4
+ status: "To Do"
5
+ assignee: []
6
+ reporter: @MrLesk
7
+ created_date: 2025-06-04
8
+ labels: ["gui", "setup"]
9
+ milestone: "M3 - GUI"
10
+ dependencies: ["task-7"]
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Initialize the GUI project using Tauri. Integrate the core logic library. Set up basic window layout and navigation placeholders.
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - [ ] GUI project created with Tauri.
20
+ - [ ] Core logic library successfully imported and usable.
21
+ - [ ] Basic application window opens.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: task-9
3
+ title: "GUI: Implement GUI Task Creation/Editing Forms"
4
+ status: "To Do"
5
+ assignee: []
6
+ reporter: @MrLesk
7
+ created_date: 2025-06-04
8
+ labels: ["gui"]
9
+ milestone: "M3 - GUI"
10
+ dependencies: ["task-8"]
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Create forms/modals in the GUI for:
16
+
17
+ - Creating new tasks (as active tasks or draft).
18
+ - Editing existing tasks (all fields from frontmatter and description).
19
+ - All operations should use the core logic library to update Markdown files and commit.
20
+
21
+ ## Acceptance Criteria
22
+
23
+ - [ ] Task creation form works and saves new tasks.
24
+ - [ ] Task editing form loads existing task data and saves changes.
package/.cursorrules ADDED
@@ -0,0 +1,223 @@
1
+ # Cursor Agent Rules for Backlog.md Project
2
+ # These rules are designed to ensure high-quality contributions and maintain project consistency
3
+
4
+ ## Table of Contents
5
+ 1. Project Structure and Navigation
6
+ 2. Task Management
7
+ 3. Documentation
8
+ 4. Code Quality and Testing
9
+ 5. Git Workflow
10
+ 6. AI Agent Guidelines
11
+ 7. Configuration Management
12
+ 8. Review and Communication
13
+ 9. Error Handling and Logging
14
+ 10. Performance and Security
15
+ 11. Maintenance and Dependencies
16
+ 12. Accessibility and Internationalization
17
+ 13. Version Control and Releases
18
+ 14. Emergency Procedures
19
+ 15. Project-Specific Rules
20
+ 16. Definition of Done
21
+ 17. Glossary
22
+ 18. Templates and Examples
23
+
24
+ ---
25
+
26
+ ## 1. Project Structure and Navigation
27
+ 1.1 Always check the project structure in `AGENTS.md` before making changes
28
+ 1.2 Follow the directory structure under `.backlog/` (see [Project Structure](./AGENTS.md#structure))
29
+ - Never modify files outside the designated project directories
30
+ - Always verify file locations before making changes
31
+
32
+ ## 2. Task Management
33
+ - Always check .backlog/tasks/ for current tasks before starting work
34
+ - Reference task IDs in all commit messages and PR titles
35
+ - Follow the task status workflow defined in config.yml
36
+ - Never modify task files directly - use the backlog CLI commands
37
+ - When creating new tasks, ensure they follow the established format
38
+ - Subtasks must use decimal numbering (e.g., task-4.1) to indicate their parentage.
39
+ - Subtasks are created using the CLI with the --parent <task-id> flag; the next decimal ID is assigned automatically.
40
+ - Always reference subtasks by their full decimal ID in commit messages, PR titles, and documentation.
41
+ - Subtasks are stored in the same .backlog/tasks/ directory as main tasks.
42
+ - After completing and testing a task, set its status to Done via CLI:
43
+
44
+ ```bash
45
+ backlog task edit <task-id> --status Done
46
+ ```
47
+
48
+ ## 3. Documentation
49
+ 3.1 All documentation must be in Markdown format
50
+ 3.2 Update relevant `readme.md` files when making changes
51
+ 3.3 Document architectural decisions in `.backlog/decisions/`
52
+ 3.4 Maintain clear and concise documentation
53
+ 3.5 Include examples in documentation where appropriate
54
+
55
+ ## 4. Code Quality and Testing
56
+ - Ensure all code changes are properly tested
57
+ - Follow the project's coding style and conventions
58
+ - Write clear, self-documenting code
59
+ - Include appropriate error handling
60
+ - Add comments for complex logic
61
+
62
+ ## 5. Git Workflow
63
+ - Always check git status before committing
64
+ - Use branch names that reflect the task being worked on (tasks/<task-id> feature description)
65
+ - Keep commits atomic and focused
66
+ - Write clear, descriptive commit messages
67
+ - Reference task IDs in commit messages
68
+
69
+ ## 6. AI Agent Guidelines
70
+ 6.1 Always verify task requirements before implementation
71
+ 6.2 Use semantic search to understand existing code
72
+ 6.3 Check for similar implementations before creating new features
73
+ 6.4 Document any assumptions in PR descriptions and `.backlog/decisions/`
74
+ 6.5 Consider edge cases and error scenarios
75
+
76
+ ## 7. Configuration Management
77
+ - Never modify config.yml directly
78
+ - Use backlog config commands for configuration changes
79
+ - Maintain backward compatibility when possible
80
+ - Document configuration changes in decisions/
81
+
82
+ ## 8. Review and Communication
83
+ - Ensure all changes are properly documented
84
+ - Verify that changes don't break existing functionality
85
+ - Check for potential security implications
86
+ - Consider performance impact of changes
87
+ - Validate against project requirements
88
+ - Use clear and professional language in comments and documentation
89
+ - Document any questions or concerns in task comments
90
+ - Keep commit messages and PR descriptions informative
91
+ - Reference relevant documentation when making changes
92
+
93
+ ## 9. Error Handling and Logging
94
+ - Implement proper error handling for all new features
95
+ - Include appropriate logging
96
+ - Consider user experience in error scenarios
97
+ - Document error cases and recovery procedures
98
+
99
+ ## 10. Performance and Security
100
+ - Consider performance implications of changes
101
+ - Optimize code when necessary
102
+ - Document performance considerations
103
+ - Test with realistic data volumes
104
+ - Follow security best practices
105
+ - Validate all user inputs
106
+ - Consider potential security implications
107
+ - Document security-related decisions
108
+
109
+ ## 11. Maintenance and Dependencies
110
+ - Keep dependencies up to date
111
+ - Remove deprecated code
112
+ - Maintain backward compatibility
113
+ - Document maintenance procedures
114
+ - Document all new dependencies
115
+ - Justify dependency additions
116
+ - Consider impact on project size
117
+ - Check for license compatibility
118
+
119
+ ## 12. Accessibility and Internationalization
120
+ - Ensure all features are accessible
121
+ - Follow accessibility guidelines
122
+ - Test with accessibility tools
123
+ - Document accessibility considerations
124
+ - Support multiple languages where appropriate
125
+ - Use proper character encoding
126
+ - Consider cultural differences
127
+ - Document internationalization requirements
128
+
129
+ ## 13. Version Control and Releases
130
+ - Follow semantic versioning
131
+ - Document breaking changes
132
+ - Maintain changelog
133
+ - Tag releases appropriately
134
+
135
+ ## 14. Emergency Procedures
136
+ - Document emergency procedures
137
+ - Know how to rollback changes
138
+ - Have backup procedures
139
+ - Document recovery steps
140
+
141
+ ## 15. Project-Specific Rules
142
+ - Follow Backlog.md CLI conventions
143
+ - Use proper task status transitions
144
+ - Maintain task history
145
+ - Follow project naming conventions
146
+ - Use appropriate labels for tasks
147
+ - Keep task descriptions clear and complete
148
+ - Include a `## Description` section and `## Acceptance Criteria` checklist in each task
149
+ - Write relevant tests when implementing new functionality or fixing bugs
150
+ - Follow the established workflow
151
+ - When starting work on a task, set its status to `In Progress`, assign yourself, and push the change before continuing
152
+ - Use proper task prioritization
153
+ - Maintain task dependencies
154
+ - Follow project branching strategy
155
+
156
+ ## 16. Definition of Done
157
+ A task is **Done** only when **all** of the following hold:
158
+
159
+ 1. **Acceptance criteria** checklist in the task file is fully checked.
160
+ 2. **Automated tests** (unit + integration) cover new logic and CI passes.
161
+ 3. **Static analysis**: linter & formatter succeed (when available).
162
+ 4. **Documentation**:
163
+ - Docs updated.
164
+ - Task file appended with a `## Implementation Notes` section summarising approach, trade‑offs and follow‑ups.
165
+ 5. **Review**: code reviewed.
166
+ 6. **Task hygiene**: status set to **Done** via CLI.
167
+ 7. **No regressions**: performance, security and licence checks green.
168
+
169
+ ## 17. Glossary
170
+ - Add a glossary of project-specific terms and acronyms
171
+ - Add "Subtask" entry: decimal numbering, CLI creation, referencing, and storage
172
+
173
+ ## 18. Templates and Examples
174
+ - Add a `docs/` directory for guides (onboarding, semantic search, coding style, etc.)
175
+ - Automate rule enforcement where possible (e.g., with pre-commit hooks, CI checks)
176
+ - Regularly review and update rules to reflect project evolution and lessons learned
177
+
178
+ # Code Review
179
+ - Review code for:
180
+ - Functionality
181
+ - Performance
182
+ - Security
183
+ - Maintainability
184
+ - Documentation
185
+ - Testing
186
+ - Accessibility
187
+ - Internationalization
188
+
189
+ # Emergency Procedures
190
+ - Document emergency procedures
191
+ - Know how to rollback changes
192
+ - Have backup procedures
193
+ - Document recovery steps
194
+
195
+ # Project-Specific Rules
196
+ - Follow Backlog.md CLI conventions
197
+ - Use proper task status transitions
198
+ - Maintain task history
199
+ - Follow project naming conventions
200
+ - Use appropriate labels for tasks
201
+ - Keep task descriptions clear and complete
202
+ - Follow the established workflow
203
+ - Use proper task prioritization
204
+ - Maintain task dependencies
205
+ - Follow project branching strategy
206
+
207
+ ## Backlog.md Tool - CLI usage
208
+ | Purpose | Command |
209
+ |---------|---------|
210
+ | Create task | `backlog task create "Add OAuth"` |
211
+ | Create sub task | `backlog task create --parent 14 "Add Google auth"` |
212
+ | List tasks | `backlog task list` |
213
+ | View detail | `backlog task 7` |
214
+ | Edit | `backlog task edit 7 -a @sara -l auth,backend` |
215
+ | Archive | `backlog task archive 7` |
216
+ | Draft flow | `backlog draft create "Spike GraphQL"` → `backlog draft promote 3.1` |
217
+ | Demote to draft| `backlog task demote <id>` |
218
+
219
+ ## Backlog.md Tool - Tips for AI Agents
220
+ - Keep tasks **small, atomic, and testable**; create subtasks liberally.
221
+ - Prefer **idempotent** changes so reruns remain safe.
222
+ - Leave **breadcrumbs** in `## Implementation Notes`; humans may continue your thread.
223
+ - If uncertain, **draft a new task** describing the ambiguity rather than guessing.
package/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Create a bug report to help us improve
4
+ title: "[Bug]: "
5
+ labels: bug
6
+ ---
7
+
8
+ **Describe the bug**
9
+ A clear and concise description of what the bug is.
10
+
11
+ **To Reproduce**
12
+ Steps to reproduce the behavior:
13
+ 1. Go to '...'
14
+ 2. Click on '...'
15
+ 3. See error
16
+
17
+ **Expected behavior**
18
+ A clear and concise description of what you expected to happen.
19
+
20
+ **Environment**
21
+ - OS: [e.g., Windows 11]
22
+ - Node version: [e.g., 20]
23
+
24
+ **Additional context**
25
+ Add any other context about the problem here.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest a new feature or enhancement
4
+ title: "[Feature]: "
5
+ labels: enhancement
6
+ ---
7
+
8
+ **Is your feature request related to a problem? Please describe.**
9
+ A clear description of what problem you want to solve.
10
+
11
+ **Describe the solution you'd like**
12
+ A clear and concise description of what you want to happen.
13
+
14
+ **Additional context**
15
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,8 @@
1
+ ## Summary
2
+ Briefly explain the purpose of this pull request.
3
+
4
+ ## Related Tasks
5
+ List task IDs this PR closes, e.g. `closes task-29`.
6
+
7
+ ## Testing
8
+ Describe how you tested your changes.
@@ -0,0 +1,36 @@
1
+ name: Build and Publish
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags:
7
+ - 'v*.*.*'
8
+ pull_request:
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: oven-sh/setup-bun@v1
16
+ - run: bun install
17
+ - run: bun run build
18
+ - run: bun test
19
+
20
+ publish:
21
+ needs: build
22
+ runs-on: ubuntu-latest
23
+ if: startsWith(github.ref, 'refs/tags/')
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: oven-sh/setup-bun@v1
27
+ - uses: actions/setup-node@v4
28
+ with:
29
+ node-version: '20'
30
+ registry-url: 'https://registry.npmjs.org'
31
+ - run: bun install
32
+ - run: bun run build
33
+ - name: Publish to npm
34
+ run: npm publish --access public
35
+ env:
36
+ NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
@@ -0,0 +1 @@
1
+ bun lint-staged
package/AGENTS.md ADDED
@@ -0,0 +1,65 @@
1
+ # Project structure
2
+
3
+ backlog.md/ (Root folder for "Backlog.md" project)
4
+ └── .backlog/ ("Backlog.md" folder for managing tasks and docs)
5
+ ├── drafts/ (list of tasks that are not ready to be implemented)
6
+ ├── tasks/ (list of tasks that are ready to be implemented)
7
+ ├── archive/ (tasks that are no longer relevant)
8
+ │ ├── tasks/
9
+ │ └── drafts/
10
+ ├── docs/ (project documentation)
11
+ ├── decisions/ (team decisions regarding architecture/technologies)
12
+ └── config.yml ("Backlog.md" configuration file)
13
+
14
+ Instructions for using the Backlog.md tool are available in the `readme.md` file in the root folder.
15
+
16
+ Each folder contains a `readme.md` file with instructions on how to use the Backlog.md tool for that specific folder.
17
+
18
+ ## AI Agent Guidelines
19
+
20
+ - Use the markdown task files under `.backlog/tasks/` to decide what to implement.
21
+ - Reference the task `id` in commit messages and PR titles when closing a task.
22
+ - Subtasks use decimal numbering (e.g., `task-4.1`). Reference these IDs the same way.
23
+ - Each task must include a `## Description` section followed by a `## Acceptance Criteria` checklist.
24
+ - Include relevant tests when implementing new functionality or fixing bugs.
25
+ - Keep all project documentation in Markdown format and update the related `readme.md` files when necessary.
26
+ - Ensure the working tree is clean (`git status`) before committing changes.
27
+ - The branch name should reflect the task being worked on, e.g., `<task-id> feature description`.
28
+ - When beginning work on a task, immediately set its status to `In Progress`, assign yourself as the `assignee`, and push the change.
29
+ - After implementing and testing a task, mark it as **Done** using the CLI:
30
+
31
+ ```bash
32
+ backlog task edit <task-id> --status Done
33
+ ```
34
+
35
+ ## Definition of Done
36
+
37
+ A task is **Done** only when **all** of the following hold:
38
+
39
+ 1. **Acceptance criteria** checklist in the task file is fully checked.
40
+ 2. **Automated tests** (unit + integration) cover new logic and CI passes.
41
+ 3. **Static analysis**: linter & formatter succeed (when available).
42
+ 4. **Documentation**:
43
+ - Docs updated.
44
+ - Task file appended with a `## Implementation Notes` section summarising approach, trade‑offs and follow‑ups.
45
+ 5. **Review**: code reviewed.
46
+ 6. **Task hygiene**: status set to **Done** via CLI.
47
+ 7. **No regressions**: performance, security and licence checks green.
48
+
49
+ ## Backlog.md Tool - CLI usage
50
+ | Purpose | Command |
51
+ |---------|---------|
52
+ | Create task | `backlog task create "Add OAuth"` |
53
+ | Create sub task | `backlog task create --parent 14 "Add Google auth"` |
54
+ | List tasks | `backlog task list` |
55
+ | View detail | `backlog task 7` |
56
+ | Edit | `backlog task edit 7 -a @sara -l auth,backend` |
57
+ | Archive | `backlog task archive 7` |
58
+ | Draft flow | `backlog draft create "Spike GraphQL"` → `backlog draft promote 3.1` |
59
+ | Demote to draft| `backlog task demote <id>` |
60
+
61
+ ## Backlog.md Tool - Tips for AI Agents
62
+ - Keep tasks **small, atomic, and testable**; create subtasks liberally.
63
+ - Prefer **idempotent** changes so reruns remain safe.
64
+ - Leave **breadcrumbs** in `## Implementation Notes`; humans may continue your thread.
65
+ - If uncertain, **draft a new task** describing the ambiguity rather than guessing.