backlog.md 0.1.0 → 0.1.3

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 (165) hide show
  1. package/bin/backlog-darwin-arm64/backlog +0 -0
  2. package/bin/backlog-darwin-x64/backlog +0 -0
  3. package/bin/backlog-linux-arm64/backlog +0 -0
  4. package/{cli → bin/backlog-linux-x64}/backlog +0 -0
  5. package/bin/backlog-win32-x64/backlog.exe +0 -0
  6. package/cli.js +62 -0
  7. package/package.json +57 -46
  8. package/.backlog/archive/drafts/readme.md +0 -3
  9. package/.backlog/archive/drafts/task-41 - temporary-test-task.md +0 -13
  10. package/.backlog/archive/readme.md +0 -6
  11. package/.backlog/archive/tasks/readme.md +0 -3
  12. package/.backlog/archive/tasks/task-41 - cli-migrate-terminal-ui-to-bblessed.md +0 -14
  13. package/.backlog/config.yml +0 -7
  14. package/.backlog/decisions/readme.md +0 -7
  15. package/.backlog/docs/readme.md +0 -20
  16. package/.backlog/drafts/readme.md +0 -3
  17. package/.backlog/drafts/task-26 - docs-add-board-export-step-to-agent-dod.md +0 -21
  18. package/.backlog/drafts/task-28 - add-code-of-conduct.md +0 -20
  19. package/.backlog/drafts/task-30 - create-changelog.md +0 -19
  20. package/.backlog/milestones/m-0 - project-setup.md +0 -8
  21. package/.backlog/milestones/m-1 - cli.md +0 -8
  22. package/.backlog/milestones/m-2 - cli-kanban.md +0 -8
  23. package/.backlog/milestones/m-3 - gui.md +0 -8
  24. package/.backlog/milestones/m-4 - gui-kanban.md +0 -8
  25. package/.backlog/milestones/m-5 - gui-advanced.md +0 -12
  26. package/.backlog/milestones/readme.md +0 -3
  27. package/.backlog/readme.md +0 -5
  28. package/.backlog/tasks/readme.md +0 -37
  29. package/.backlog/tasks/task-1 - cli-setup-core-project.md +0 -23
  30. package/.backlog/tasks/task-10 - gui-init-packaging.md +0 -23
  31. package/.backlog/tasks/task-11 - gui-kanban-board.md +0 -26
  32. package/.backlog/tasks/task-12 - gui-advanced.md +0 -25
  33. package/.backlog/tasks/task-13 - cli-add-agent-instruction-prompt.md +0 -53
  34. package/.backlog/tasks/task-13.1 - cli-agent-instruction-file-selection.md +0 -40
  35. package/.backlog/tasks/task-14 - gui-introduction-screens.md +0 -21
  36. package/.backlog/tasks/task-15 - improve-tasks-readme-with-generic-example-and-cli-reference.md +0 -20
  37. package/.backlog/tasks/task-16 - improve-docs-readme-with-generic-example-and-cli-reference.md +0 -20
  38. package/.backlog/tasks/task-17 - improve-drafts-readme-with-generic-example-and-cli-reference.md +0 -20
  39. package/.backlog/tasks/task-18 - improve-decisions-readme-with-generic-example-and-cli-reference.md +0 -20
  40. package/.backlog/tasks/task-19 - cli-fix-default-task-status-and-remove-draft-from-statuses.md +0 -55
  41. package/.backlog/tasks/task-2 - cli-core-logic-library.md +0 -28
  42. package/.backlog/tasks/task-20 - add-agent-guideline-to-mark-tasks-in-progress-on-start.md +0 -32
  43. package/.backlog/tasks/task-21 - kanban-board-vertical-layout.md +0 -31
  44. package/.backlog/tasks/task-22 - cli-prevent-double-dash-in-task-filenames.md +0 -24
  45. package/.backlog/tasks/task-23 - cli-kanban-board-order-tasks-by-id-asc.md +0 -30
  46. package/.backlog/tasks/task-24 - handle-subtasks-in-the-kanban-view.md +0 -38
  47. package/.backlog/tasks/task-24.1 - cli-kanban-board-milestone-view.md +0 -19
  48. package/.backlog/tasks/task-25 - cli-export-kanban-board-to-readme.md +0 -28
  49. package/.backlog/tasks/task-27 - add-contributing-guidelines.md +0 -27
  50. package/.backlog/tasks/task-29 - add-github-templates.md +0 -28
  51. package/.backlog/tasks/task-3 - cli-implement-backlog-init.md +0 -63
  52. package/.backlog/tasks/task-31 - update-readme-for-open-source.md +0 -26
  53. package/.backlog/tasks/task-32 - cli-hide-empty-'no-status'-column.md +0 -31
  54. package/.backlog/tasks/task-33 - cli-export-milestones-board-as-roadmap.md +0 -20
  55. package/.backlog/tasks/task-34 - split-readme.md-for-users-and-contributors.md +0 -26
  56. package/.backlog/tasks/task-35 - finalize-package.json-metadata-for-publishing.md +0 -24
  57. package/.backlog/tasks/task-36 - cli-prompt-for-project-name-in-init.md +0 -24
  58. package/.backlog/tasks/task-37 - cli-board-view-open-tasks-in-ide.md +0 -19
  59. package/.backlog/tasks/task-38 - cli-improved-agent-selection-for-init.md +0 -25
  60. package/.backlog/tasks/task-39 - cli-fix-empty-agent-instruction-files-on-init.md +0 -31
  61. package/.backlog/tasks/task-4 - cli-task-management-commands.md +0 -28
  62. package/.backlog/tasks/task-4.1 - cli-task-create.md +0 -27
  63. package/.backlog/tasks/task-4.10 - use-cli-to-mark-tasks-done.md +0 -51
  64. package/.backlog/tasks/task-4.11 - docs-add-definition-of-done-to-agent-guidelines.md +0 -23
  65. package/.backlog/tasks/task-4.12 - cli-handle-task-id-conflicts-across-branches.md +0 -53
  66. package/.backlog/tasks/task-4.13 - cli-fix-config-command-local-global-logic.md +0 -58
  67. package/.backlog/tasks/task-4.2 - cli-task-list-view.md +0 -25
  68. package/.backlog/tasks/task-4.3 - cli-task-edit.md +0 -24
  69. package/.backlog/tasks/task-4.4 - cli-task-archive-transition.md +0 -27
  70. package/.backlog/tasks/task-4.5 - cli-init-prompts-for-reporter-name-and-global-local-config.md +0 -28
  71. package/.backlog/tasks/task-4.6 - cli-add-empty-assignee-array-field-for-new-tasks.md +0 -35
  72. package/.backlog/tasks/task-4.7 - cli-parse-unquoted-created_date.md +0 -40
  73. package/.backlog/tasks/task-4.8 - cli-enforce-description-header.md +0 -48
  74. package/.backlog/tasks/task-4.9 - cli-normalize-task-id-inputs.md +0 -66
  75. package/.backlog/tasks/task-40 - cli-board-command-defaults-to-view.md +0 -38
  76. package/.backlog/tasks/task-41 - cli-migrate-terminal-ui-to-bblessed.md +0 -93
  77. package/.backlog/tasks/task-41.1 - cli-bblessed-init-wizard.md +0 -42
  78. package/.backlog/tasks/task-41.2 - cli-bblessed-task-view.md +0 -44
  79. package/.backlog/tasks/task-41.3 - cli-bblessed-doc-view.md +0 -45
  80. package/.backlog/tasks/task-41.4 - cli-bblessed-board-view.md +0 -49
  81. package/.backlog/tasks/task-41.5 - cli-audit-remaining-ui-for-bblessed.md +0 -55
  82. package/.backlog/tasks/task-42 - visual-hierarchy.md +0 -54
  83. package/.backlog/tasks/task-43 - remove-duplicate-acceptance-criteria-and-style-metadata.md +0 -56
  84. package/.backlog/tasks/task-44 - checklist-alignment.md +0 -24
  85. package/.backlog/tasks/task-45 - safe-line-wrapping.md +0 -23
  86. package/.backlog/tasks/task-46 - split-pane-layout.md +0 -24
  87. package/.backlog/tasks/task-47 - sticky-header-in-detail-view.md +0 -43
  88. package/.backlog/tasks/task-48 - footer-hint-line.md +0 -21
  89. package/.backlog/tasks/task-49 - status-styling.md +0 -53
  90. package/.backlog/tasks/task-5 - cli-docs-decisions.md +0 -57
  91. package/.backlog/tasks/task-50 - borders-&-padding.md +0 -22
  92. package/.backlog/tasks/task-51 - code-path-styling.md +0 -23
  93. package/.backlog/tasks/task-52 - cli-filter-tasks-list-by-status-or-assignee.md +0 -29
  94. package/.backlog/tasks/task-6 - cli-packaging.md +0 -65
  95. package/.backlog/tasks/task-6.1 - cli-local-installation-support-for-bunx-npx.md +0 -49
  96. package/.backlog/tasks/task-6.2 - cli-github-actions-for-build-&-publish.md +0 -64
  97. package/.backlog/tasks/task-7 - cli-kanban-view.md +0 -60
  98. package/.backlog/tasks/task-7.1 - cli-kanban-board-detect-remote-task-status.md +0 -62
  99. package/.backlog/tasks/task-8 - gui-project-setup.md +0 -21
  100. package/.backlog/tasks/task-9 - gui-task-crud.md +0 -24
  101. package/.cursorrules +0 -223
  102. package/.gitattributes +0 -2
  103. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -25
  104. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -15
  105. package/.github/PULL_REQUEST_TEMPLATE.md +0 -8
  106. package/.github/workflows/ci.yml +0 -36
  107. package/.husky/pre-commit +0 -1
  108. package/AGENTS.md +0 -65
  109. package/CLAUDE.md +0 -87
  110. package/CONTRIBUTING.md +0 -19
  111. package/DEVELOPMENT.md +0 -37
  112. package/biome.json +0 -31
  113. package/bun.lock +0 -152
  114. package/cli/.cursorrules-xh86jabm.md +0 -82
  115. package/cli/AGENTS-xh86jabm.md +0 -82
  116. package/cli/CLAUDE-xh86jabm.md +0 -82
  117. package/cli/cli.js +0 -19622
  118. package/cli/index.js +0 -2
  119. package/docs/npm-publishing.md +0 -69
  120. package/scripts/build.js +0 -73
  121. package/src/agent-instructions.ts +0 -54
  122. package/src/board.ts +0 -263
  123. package/src/cli.ts +0 -806
  124. package/src/constants/index.ts +0 -48
  125. package/src/core/backlog.ts +0 -183
  126. package/src/core/remote-tasks.ts +0 -168
  127. package/src/file-system/operations.ts +0 -515
  128. package/src/git/operations.ts +0 -189
  129. package/src/guidelines/.cursorrules.md +0 -82
  130. package/src/guidelines/AGENTS.md +0 -82
  131. package/src/guidelines/CLAUDE.md +0 -82
  132. package/src/guidelines/index.ts +0 -7
  133. package/src/index.ts +0 -30
  134. package/src/markdown/parser.ts +0 -145
  135. package/src/markdown/serializer.ts +0 -71
  136. package/src/test/agent-instructions.test.ts +0 -62
  137. package/src/test/board.test.ts +0 -291
  138. package/src/test/build.test.ts +0 -28
  139. package/src/test/checklist.test.ts +0 -273
  140. package/src/test/cli.test.ts +0 -1300
  141. package/src/test/code-path.test.ts +0 -204
  142. package/src/test/core.test.ts +0 -330
  143. package/src/test/filesystem.test.ts +0 -435
  144. package/src/test/git.test.ts +0 -26
  145. package/src/test/heading.test.ts +0 -102
  146. package/src/test/line-wrapping.test.ts +0 -252
  147. package/src/test/local-install.test.ts +0 -34
  148. package/src/test/markdown.test.ts +0 -526
  149. package/src/test/parallel-loading.test.ts +0 -160
  150. package/src/test/parent-id-normalization.test.ts +0 -48
  151. package/src/test/remote-id-conflict.test.ts +0 -60
  152. package/src/test/status-icon.test.ts +0 -93
  153. package/src/types/blessed.d.ts +0 -14
  154. package/src/types/index.ts +0 -55
  155. package/src/types/raw.d.ts +0 -4
  156. package/src/ui/board.ts +0 -322
  157. package/src/ui/checklist.ts +0 -103
  158. package/src/ui/code-path.ts +0 -113
  159. package/src/ui/heading.ts +0 -121
  160. package/src/ui/loading.ts +0 -216
  161. package/src/ui/status-icon.ts +0 -53
  162. package/src/ui/task-list.ts +0 -168
  163. package/src/ui/task-viewer.ts +0 -640
  164. package/src/ui/tui.ts +0 -301
  165. package/tsconfig.json +0 -26
@@ -1,57 +0,0 @@
1
- ---
2
- id: task-5
3
- title: "CLI: Implement Docs & Decisions CLI Commands (Basic)"
4
- status: Done
5
- assignee: []
6
- reporter: @MrLesk
7
- created_date: 2025-06-04
8
- labels: ["cli", "command"]
9
- milestone: "M1 - CLI"
10
- dependencies: ["task-3"]
11
- ---
12
-
13
- ## Description
14
-
15
- Implement basic CLI commands for managing documentation and decision logs:
16
-
17
- - `backlog doc create <title> -p <path>` (to create a new documentation file)
18
- - `backlog doc create <title> --path <path>` (to create a new documentation file)
19
- - `backlog doc create <title>` (to create a new documentation file in the root folder)
20
- - `backlog doc list`
21
- - `backlog decision create <title>`
22
- - `backlog decision list`
23
-
24
- ## Acceptance Criteria
25
-
26
- - [x] Creation and listing commands functional for docs and decisions.
27
- - [x] Files are created in the correct `.backlog/docs/` and `.backlog/decisions/` directories.
28
-
29
- ## Implementation Notes
30
-
31
- All CLI commands for docs and decisions have been successfully implemented:
32
-
33
- **Document Commands (src/cli.ts:380-412):**
34
- - `backlog doc create <title>` - Creates docs in `.backlog/docs/` with auto-generated IDs
35
- - `backlog doc create <title> -p <path>` - Creates docs in subdirectories within `.backlog/docs/`
36
- - `backlog doc list` - Lists all documents with ID and title
37
- - Documents use proper YAML frontmatter with id, title, type, created_date fields
38
-
39
- **Decision Commands (src/cli.ts:414-447):**
40
- - `backlog decision create <title>` - Creates decision logs in `.backlog/decisions/`
41
- - `backlog decision create <title> -s <status>` - Creates decisions with custom status (default: "proposed")
42
- - `backlog decision list` - Lists all decisions with ID and title
43
- - Decisions use structured template with Context, Decision, Consequences sections
44
-
45
- **Core Functionality:**
46
- - Auto-incremental ID generation for both docs and decisions
47
- - Proper YAML frontmatter serialization via gray-matter library
48
- - Git auto-commit integration for created files
49
- - File sanitization for cross-platform compatibility
50
- - Comprehensive test coverage in cli.test.ts (lines 862-893)
51
-
52
- **File Structure:**
53
- - Documents: `.backlog/docs/{optional-path}/filename.md`
54
- - Decisions: `.backlog/decisions/decision-{id} - {title}.md`
55
- - Both support subdirectories and maintain consistent naming conventions
56
-
57
- All tests pass (33/33) confirming full functionality and adherence to acceptance criteria.
@@ -1,22 +0,0 @@
1
- ---
2
- id: task-50
3
- title: Borders & padding
4
- status: Done
5
- assignee: []
6
- created_date: '2025-06-11'
7
- updated_date: '2025-06-13'
8
- labels:
9
- - enhancement
10
- dependencies: []
11
- ---
12
-
13
- ## Description
14
-
15
- Goal: Give the detail view breathing room.
16
-
17
- Detailed work:
18
- - Wrap the entire detail pane in a box with border.type:\line\ and padding.left = 1.
19
-
20
- ## Acceptance Criteria
21
- - [x] Snapshot shows 1-char margin at left.
22
- - [x] Border stays inside the right pane (not full-width).
@@ -1,23 +0,0 @@
1
- ---
2
- id: task-51
3
- title: Code-path styling
4
- status: Done
5
- assignee: []
6
- created_date: '2025-06-11'
7
- updated_date: '2025-06-13'
8
- labels:
9
- - enhancement
10
- dependencies: []
11
- ---
12
-
13
- ## Description
14
-
15
- Goal: Make file paths stand out and easier to scan.
16
-
17
- Detailed work:
18
- - In the markdown transform, detect back-ticked paths like \.
19
- - Render them dim grey and place each on its own line if not already isolated.
20
-
21
- ## Acceptance Criteria
22
- - [x] Regex captures 100% of code paths in test fixture.
23
- - [x] Visual diff shows dim-grey paths, separated from surrounding prose.
@@ -1,29 +0,0 @@
1
- ---
2
- id: task-52
3
- title: 'CLI: Filter tasks list by status or assignee'
4
- status: Done
5
- assignee:
6
- - '@codex'
7
- created_date: '2025-06-13'
8
- updated_date: '2025-06-13'
9
- labels: []
10
- dependencies: []
11
- ---
12
-
13
- ## Description
14
-
15
- Add filtering options to task list command
16
-
17
- ## Acceptance Criteria
18
- - [x] `backlog task list --status "To Do"` filters by status
19
- - [x] `backlog task list --assignee user` filters by assignee
20
-
21
- ## Implementation Notes
22
-
23
- Added filtering options to `backlog task list` command in `src/cli.ts:253-268`:
24
- - `--status <status>`: Filters tasks by exact status match
25
- - `--assignee <assignee>`: Filters tasks by assignee (checks if user is in assignee array)
26
-
27
- Both filters can be used together. Works with `--plain` and interactive UI modes.
28
-
29
- Tests added in `src/test/cli.test.ts:265-339` verify both filtering options.
@@ -1,65 +0,0 @@
1
- ---
2
- id: task-6
3
- title: "CLI: Argument Parsing, Help, and Packaging"
4
- status: Done
5
- assignee: []
6
- reporter: @MrLesk
7
- created_date: 2025-06-04
8
- labels: ["cli", "command"]
9
- milestone: "M1 - CLI"
10
- dependencies: ["task-3"]
11
- ---
12
-
13
- ## Description
14
-
15
- Implement robust CLI argument parsing (e.g., using `commander.js` or `yargs`).
16
- Provide helpful `--help` messages for all commands.
17
- Use `bun build --compile` to create a standalone executable.
18
- Define `bin` script in `package.json` for npm distribution.
19
-
20
- ## Acceptance Criteria
21
-
22
- - [x] All commands have clear help messages.
23
- - [x] CLI arguments are parsed correctly.
24
- - [x] `bun build --compile` produces a working executable.
25
- - [x] `package.json` configured for CLI publishing.
26
-
27
- ## Implementation Notes
28
-
29
- **CLI Framework & Argument Parsing (src/cli.ts:7-11):**
30
- - Implemented using Commander.js for robust argument parsing and command structure
31
- - All commands provide comprehensive help messages with `--help` flag
32
- - Supports command aliases (e.g., `task` and `tasks`)
33
- - Proper option parsing with short and long flags (e.g., `-d, --description`)
34
-
35
- **Help System:**
36
- - Main CLI help: `backlog --help` shows all available commands
37
- - Command-specific help: `backlog task --help`, `backlog doc --help`, etc.
38
- - Subcommand help: `backlog task create --help` shows create-specific options
39
- - All help messages include clear descriptions and usage examples
40
-
41
- **Build System (package.json:24):**
42
- - Dual build process: Node.js distribution + standalone executable
43
- - `bun build --compile` creates platform-specific binary (`cli/backlog`)
44
- - Node.js wrapper script (`cli/index.js`) for npm distribution
45
- - Automatic executable permissions (`chmod +x`) for both formats
46
-
47
- **NPM Distribution (package.json:6-8):**
48
- - `bin` field configured to point to `./cli/index.js`
49
- - Enables global installation via `npm install -g backlog.md`
50
- - Entry point uses ES modules with dynamic import for compatibility
51
-
52
- **Testing Coverage:**
53
- - `src/test/build.test.ts` validates compiled executable functionality
54
- - Tests verify help output and binary execution
55
- - All 111 tests pass including build verification
56
- - CLI integration tests cover all command argument parsing
57
-
58
- **Key Features Verified:**
59
- - Complex argument parsing: multi-flag commands work correctly
60
- - Help system: comprehensive documentation for all commands
61
- - Executable compilation: `./cli/backlog --help` functions properly
62
- - NPM compatibility: `./cli/index.js` works as distribution entry point
63
- - Cross-platform: builds succeed and tests pass on current platform
64
-
65
- This implementation provides a professional CLI experience with both standalone and npm distribution options.
@@ -1,49 +0,0 @@
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.
@@ -1,64 +0,0 @@
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.
@@ -1,60 +0,0 @@
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.
@@ -1,62 +0,0 @@
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
-
@@ -1,21 +0,0 @@
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.
@@ -1,24 +0,0 @@
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.