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.
- package/.backlog/archive/drafts/readme.md +3 -0
- package/.backlog/archive/drafts/task-41 - temporary-test-task.md +13 -0
- package/.backlog/archive/readme.md +6 -0
- package/.backlog/archive/tasks/readme.md +3 -0
- package/.backlog/archive/tasks/task-41 - cli-migrate-terminal-ui-to-bblessed.md +14 -0
- package/.backlog/config.yml +7 -0
- package/.backlog/decisions/readme.md +7 -0
- package/.backlog/docs/readme.md +20 -0
- package/.backlog/drafts/readme.md +3 -0
- package/.backlog/drafts/task-26 - docs-add-board-export-step-to-agent-dod.md +21 -0
- package/.backlog/drafts/task-28 - add-code-of-conduct.md +20 -0
- package/.backlog/drafts/task-30 - create-changelog.md +19 -0
- package/.backlog/milestones/m-0 - project-setup.md +8 -0
- package/.backlog/milestones/m-1 - cli.md +8 -0
- package/.backlog/milestones/m-2 - cli-kanban.md +8 -0
- package/.backlog/milestones/m-3 - gui.md +8 -0
- package/.backlog/milestones/m-4 - gui-kanban.md +8 -0
- package/.backlog/milestones/m-5 - gui-advanced.md +12 -0
- package/.backlog/milestones/readme.md +3 -0
- package/.backlog/readme.md +5 -0
- package/.backlog/tasks/readme.md +37 -0
- package/.backlog/tasks/task-1 - cli-setup-core-project.md +23 -0
- package/.backlog/tasks/task-10 - gui-init-packaging.md +23 -0
- package/.backlog/tasks/task-11 - gui-kanban-board.md +26 -0
- package/.backlog/tasks/task-12 - gui-advanced.md +25 -0
- package/.backlog/tasks/task-13 - cli-add-agent-instruction-prompt.md +53 -0
- package/.backlog/tasks/task-13.1 - cli-agent-instruction-file-selection.md +40 -0
- package/.backlog/tasks/task-14 - gui-introduction-screens.md +21 -0
- package/.backlog/tasks/task-15 - improve-tasks-readme-with-generic-example-and-cli-reference.md +20 -0
- package/.backlog/tasks/task-16 - improve-docs-readme-with-generic-example-and-cli-reference.md +20 -0
- package/.backlog/tasks/task-17 - improve-drafts-readme-with-generic-example-and-cli-reference.md +20 -0
- package/.backlog/tasks/task-18 - improve-decisions-readme-with-generic-example-and-cli-reference.md +20 -0
- package/.backlog/tasks/task-19 - cli-fix-default-task-status-and-remove-draft-from-statuses.md +55 -0
- package/.backlog/tasks/task-2 - cli-core-logic-library.md +28 -0
- package/.backlog/tasks/task-20 - add-agent-guideline-to-mark-tasks-in-progress-on-start.md +32 -0
- package/.backlog/tasks/task-21 - kanban-board-vertical-layout.md +31 -0
- package/.backlog/tasks/task-22 - cli-prevent-double-dash-in-task-filenames.md +24 -0
- package/.backlog/tasks/task-23 - cli-kanban-board-order-tasks-by-id-asc.md +30 -0
- package/.backlog/tasks/task-24 - handle-subtasks-in-the-kanban-view.md +38 -0
- package/.backlog/tasks/task-24.1 - cli-kanban-board-milestone-view.md +19 -0
- package/.backlog/tasks/task-25 - cli-export-kanban-board-to-readme.md +28 -0
- package/.backlog/tasks/task-27 - add-contributing-guidelines.md +27 -0
- package/.backlog/tasks/task-29 - add-github-templates.md +28 -0
- package/.backlog/tasks/task-3 - cli-implement-backlog-init.md +63 -0
- package/.backlog/tasks/task-31 - update-readme-for-open-source.md +26 -0
- package/.backlog/tasks/task-32 - cli-hide-empty-'no-status'-column.md +31 -0
- package/.backlog/tasks/task-33 - cli-export-milestones-board-as-roadmap.md +20 -0
- package/.backlog/tasks/task-34 - split-readme.md-for-users-and-contributors.md +26 -0
- package/.backlog/tasks/task-35 - finalize-package.json-metadata-for-publishing.md +24 -0
- package/.backlog/tasks/task-36 - cli-prompt-for-project-name-in-init.md +24 -0
- package/.backlog/tasks/task-37 - cli-board-view-open-tasks-in-ide.md +19 -0
- package/.backlog/tasks/task-38 - cli-improved-agent-selection-for-init.md +25 -0
- package/.backlog/tasks/task-39 - cli-fix-empty-agent-instruction-files-on-init.md +31 -0
- package/.backlog/tasks/task-4 - cli-task-management-commands.md +28 -0
- package/.backlog/tasks/task-4.1 - cli-task-create.md +27 -0
- package/.backlog/tasks/task-4.10 - use-cli-to-mark-tasks-done.md +51 -0
- package/.backlog/tasks/task-4.11 - docs-add-definition-of-done-to-agent-guidelines.md +23 -0
- package/.backlog/tasks/task-4.12 - cli-handle-task-id-conflicts-across-branches.md +53 -0
- package/.backlog/tasks/task-4.13 - cli-fix-config-command-local-global-logic.md +58 -0
- package/.backlog/tasks/task-4.2 - cli-task-list-view.md +25 -0
- package/.backlog/tasks/task-4.3 - cli-task-edit.md +24 -0
- package/.backlog/tasks/task-4.4 - cli-task-archive-transition.md +27 -0
- package/.backlog/tasks/task-4.5 - cli-init-prompts-for-reporter-name-and-global-local-config.md +28 -0
- package/.backlog/tasks/task-4.6 - cli-add-empty-assignee-array-field-for-new-tasks.md +35 -0
- package/.backlog/tasks/task-4.7 - cli-parse-unquoted-created_date.md +40 -0
- package/.backlog/tasks/task-4.8 - cli-enforce-description-header.md +48 -0
- package/.backlog/tasks/task-4.9 - cli-normalize-task-id-inputs.md +66 -0
- package/.backlog/tasks/task-40 - cli-board-command-defaults-to-view.md +38 -0
- package/.backlog/tasks/task-41 - cli-migrate-terminal-ui-to-bblessed.md +93 -0
- package/.backlog/tasks/task-41.1 - cli-bblessed-init-wizard.md +42 -0
- package/.backlog/tasks/task-41.2 - cli-bblessed-task-view.md +44 -0
- package/.backlog/tasks/task-41.3 - cli-bblessed-doc-view.md +45 -0
- package/.backlog/tasks/task-41.4 - cli-bblessed-board-view.md +49 -0
- package/.backlog/tasks/task-41.5 - cli-audit-remaining-ui-for-bblessed.md +55 -0
- package/.backlog/tasks/task-42 - visual-hierarchy.md +54 -0
- package/.backlog/tasks/task-43 - remove-duplicate-acceptance-criteria-and-style-metadata.md +56 -0
- package/.backlog/tasks/task-44 - checklist-alignment.md +24 -0
- package/.backlog/tasks/task-45 - safe-line-wrapping.md +23 -0
- package/.backlog/tasks/task-46 - split-pane-layout.md +24 -0
- package/.backlog/tasks/task-47 - sticky-header-in-detail-view.md +43 -0
- package/.backlog/tasks/task-48 - footer-hint-line.md +21 -0
- package/.backlog/tasks/task-49 - status-styling.md +53 -0
- package/.backlog/tasks/task-5 - cli-docs-decisions.md +57 -0
- package/.backlog/tasks/task-50 - borders-&-padding.md +22 -0
- package/.backlog/tasks/task-51 - code-path-styling.md +23 -0
- package/.backlog/tasks/task-52 - cli-filter-tasks-list-by-status-or-assignee.md +29 -0
- package/.backlog/tasks/task-6 - cli-packaging.md +65 -0
- package/.backlog/tasks/task-6.1 - cli-local-installation-support-for-bunx-npx.md +49 -0
- package/.backlog/tasks/task-6.2 - cli-github-actions-for-build-&-publish.md +64 -0
- package/.backlog/tasks/task-7 - cli-kanban-view.md +60 -0
- package/.backlog/tasks/task-7.1 - cli-kanban-board-detect-remote-task-status.md +62 -0
- package/.backlog/tasks/task-8 - gui-project-setup.md +21 -0
- package/.backlog/tasks/task-9 - gui-task-crud.md +24 -0
- package/.cursorrules +223 -0
- package/.gitattributes +2 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +25 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +8 -0
- package/.github/workflows/ci.yml +36 -0
- package/.husky/pre-commit +1 -0
- package/AGENTS.md +65 -0
- package/CLAUDE.md +87 -0
- package/CONTRIBUTING.md +19 -0
- package/DEVELOPMENT.md +37 -0
- package/LICENSE +21 -0
- package/biome.json +31 -0
- package/bun.lock +152 -0
- package/cli/.cursorrules-xh86jabm.md +82 -0
- package/cli/AGENTS-xh86jabm.md +82 -0
- package/cli/CLAUDE-xh86jabm.md +82 -0
- package/cli/backlog +0 -0
- package/cli/cli.js +19622 -0
- package/cli/index.js +2 -0
- package/docs/npm-publishing.md +69 -0
- package/package.json +47 -0
- package/readme.md +97 -0
- package/scripts/build.js +73 -0
- package/src/agent-instructions.ts +54 -0
- package/src/board.ts +263 -0
- package/src/cli.ts +806 -0
- package/src/constants/index.ts +48 -0
- package/src/core/backlog.ts +183 -0
- package/src/core/remote-tasks.ts +168 -0
- package/src/file-system/operations.ts +515 -0
- package/src/git/operations.ts +189 -0
- package/src/guidelines/.cursorrules.md +82 -0
- package/src/guidelines/AGENTS.md +82 -0
- package/src/guidelines/CLAUDE.md +82 -0
- package/src/guidelines/index.ts +7 -0
- package/src/index.ts +30 -0
- package/src/markdown/parser.ts +145 -0
- package/src/markdown/serializer.ts +71 -0
- package/src/test/agent-instructions.test.ts +62 -0
- package/src/test/board.test.ts +291 -0
- package/src/test/build.test.ts +28 -0
- package/src/test/checklist.test.ts +273 -0
- package/src/test/cli.test.ts +1300 -0
- package/src/test/code-path.test.ts +204 -0
- package/src/test/core.test.ts +330 -0
- package/src/test/filesystem.test.ts +435 -0
- package/src/test/git.test.ts +26 -0
- package/src/test/heading.test.ts +102 -0
- package/src/test/line-wrapping.test.ts +252 -0
- package/src/test/local-install.test.ts +34 -0
- package/src/test/markdown.test.ts +526 -0
- package/src/test/parallel-loading.test.ts +160 -0
- package/src/test/parent-id-normalization.test.ts +48 -0
- package/src/test/remote-id-conflict.test.ts +60 -0
- package/src/test/status-icon.test.ts +93 -0
- package/src/types/blessed.d.ts +14 -0
- package/src/types/index.ts +55 -0
- package/src/types/raw.d.ts +4 -0
- package/src/ui/board.ts +322 -0
- package/src/ui/checklist.ts +103 -0
- package/src/ui/code-path.ts +113 -0
- package/src/ui/heading.ts +121 -0
- package/src/ui/loading.ts +216 -0
- package/src/ui/status-icon.ts +53 -0
- package/src/ui/task-list.ts +168 -0
- package/src/ui/task-viewer.ts +640 -0
- package/src/ui/tui.ts +301 -0
- 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,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,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.
|