trekoon 0.2.6 → 0.2.8

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 (40) hide show
  1. package/README.md +102 -708
  2. package/docs/ai-agents.md +198 -0
  3. package/docs/commands.md +226 -0
  4. package/docs/machine-contracts.md +253 -0
  5. package/docs/plans/2026-03-15-trekoon-board-design.md +13 -0
  6. package/docs/quickstart.md +207 -0
  7. package/package.json +3 -1
  8. package/src/board/assets/app.js +1498 -0
  9. package/src/board/assets/components/AppShell.js +17 -0
  10. package/src/board/assets/components/BoardTopbar.js +78 -0
  11. package/src/board/assets/components/ClampedText.js +31 -0
  12. package/src/board/assets/components/EpicRow.js +62 -0
  13. package/src/board/assets/components/EpicsOverview.js +43 -0
  14. package/src/board/assets/components/WorkspaceHeader.js +70 -0
  15. package/src/board/assets/components/assetMap.js +65 -0
  16. package/src/board/assets/index.html +76 -0
  17. package/src/board/assets/main.js +27 -0
  18. package/src/board/assets/manifest.json +12 -0
  19. package/src/board/assets/state/actions.js +334 -0
  20. package/src/board/assets/state/api.js +126 -0
  21. package/src/board/assets/state/store.js +172 -0
  22. package/src/board/assets/styles/board.css +1127 -0
  23. package/src/board/assets/utils/dom.js +308 -0
  24. package/src/board/install.ts +196 -0
  25. package/src/board/open-browser.ts +131 -0
  26. package/src/board/routes.ts +299 -0
  27. package/src/board/server.ts +184 -0
  28. package/src/board/snapshot.ts +277 -0
  29. package/src/board/types.ts +43 -0
  30. package/src/commands/board.ts +158 -0
  31. package/src/commands/epic.ts +104 -3
  32. package/src/commands/help.ts +52 -13
  33. package/src/commands/init.ts +29 -0
  34. package/src/commands/subtask.ts +78 -1
  35. package/src/commands/task.ts +113 -7
  36. package/src/domain/mutation-service.ts +116 -0
  37. package/src/domain/tracker-domain.ts +261 -5
  38. package/src/domain/types.ts +51 -0
  39. package/src/runtime/cli-shell.ts +5 -0
  40. package/src/storage/path.ts +36 -0
@@ -0,0 +1,207 @@
1
+ # Quickstart
2
+
3
+ Use this guide for the shortest path from an empty repo to an active Trekoon
4
+ workflow.
5
+
6
+ ## Understand the storage model first
7
+
8
+ Trekoon is local-first, but inside git repos and worktrees it is **repo-shared**.
9
+ Every worktree for the same repository resolves to one shared `.trekoon`
10
+ directory and one shared `.trekoon/trekoon.db` database.
11
+
12
+ - `worktreeRoot` identifies the current checkout.
13
+ - `sharedStorageRoot` identifies the repository root that owns `.trekoon`.
14
+ - `databaseFile` points at the shared SQLite database.
15
+ - `.trekoon` stays gitignored because the DB is operational state, not source
16
+ code.
17
+
18
+ Outside git repos, Trekoon falls back to the current working directory.
19
+
20
+ ## Initialize
21
+
22
+ ```bash
23
+ trekoon init
24
+ trekoon --version
25
+ ```
26
+
27
+ If an agent is driving the workflow, use the machine-readable form:
28
+
29
+ ```bash
30
+ trekoon --toon init
31
+ trekoon --toon sync status
32
+ ```
33
+
34
+ Bootstrap rules:
35
+
36
+ - Run `trekoon --toon init` once per repository to create or re-bootstrap the
37
+ shared storage root and install the bundled board runtime under
38
+ `.trekoon/board`.
39
+ - Run `trekoon --toon sync status` before agent work to inspect diagnostics.
40
+ - If diagnostics report `recoveryRequired`, a tracked or ignored mismatch, or an
41
+ ambiguous recovery path, stop and repair setup before continuing.
42
+
43
+ ## Open the local board
44
+
45
+ After `trekoon init`, you can browse and update the same repo-shared Trekoon
46
+ state in the browser:
47
+
48
+ ```bash
49
+ trekoon board open
50
+ trekoon board update
51
+ ```
52
+
53
+ For day-to-day use, treat `trekoon board open` as the one-command entry point.
54
+ It both verifies the runtime files and launches the board. Reach for
55
+ `trekoon board update` only when you need to refresh the copied runtime without
56
+ opening the browser.
57
+
58
+ What these commands do:
59
+
60
+ - `trekoon board open` ensures bundled board assets are installed, starts a
61
+ loopback-only server on `127.0.0.1`, opens the browser, and prints a fallback
62
+ URL you can paste manually if launch fails
63
+ - `trekoon board update` refreshes the runtime assets in `.trekoon/board`
64
+ without opening a browser or starting the server
65
+
66
+ Why the board uses a local server instead of a bare HTML file:
67
+
68
+ - the UI needs live reads and writes against Trekoon data, not a static export
69
+ - the server binds only to `127.0.0.1`
70
+ - each `board open` call generates a per-session token used by the browser/API
71
+ - bundled assets are copied from the CLI package into `.trekoon/board`, so the
72
+ board works without a separate frontend install or local build step
73
+
74
+ Current runtime expectations for operators:
75
+
76
+ - the served HTML, styles, and board app files come from the local
77
+ `.trekoon/board` runtime directory
78
+ - the current shell also pulls Vue from `unpkg.com`, Tailwind from
79
+ `cdn.tailwindcss.com`, and Google-hosted fonts/icons at page load time
80
+ - if those hosts are unavailable, the command still starts the loopback server
81
+ and prints the fallback URL, but the shell may not fully hydrate in the
82
+ browser until network access is available again
83
+
84
+ Current layout behavior:
85
+
86
+ - the topbar is a compact navbar with workspace identity, Epics and Board
87
+ navigation, debounced search, theme toggle, and workspace info
88
+ - on wide displays, expect a three-surface workspace: epic switcher sidebar,
89
+ task workspace, and task inspector
90
+ - on medium and small displays, secondary surfaces collapse into stacked panels
91
+ or drawer-style views so the board remains navigable on narrower widths
92
+ - the page scrolls naturally as one document; modal overlays lock body scroll
93
+ while open
94
+ - task cards show truncated descriptions; clicking a card opens the task detail
95
+ modal with the full description and edit controls
96
+ - search filters client-side across titles, descriptions, statuses, and subtask
97
+ content with a 180ms debounce
98
+
99
+ Verification checklist for operators:
100
+
101
+ 1. Open the board with `trekoon board open` and confirm the first view is the
102
+ epic overview with all epics listed and scrollable.
103
+ 2. Click an epic card and confirm you enter the board workspace with the topbar
104
+ showing the active epic context.
105
+ 3. Type in search and verify results filter as you type; confirm focus stays in
106
+ the search input while typing.
107
+ 4. Click a task card and confirm the task detail modal opens with the full
108
+ description, edit form, and subtask list.
109
+ 5. On desktop width, confirm the epic switcher sidebar, workspace, and detail
110
+ panel can all be visible simultaneously.
111
+ 6. Resize to a narrow viewport and confirm the layout stacks cleanly without
112
+ horizontal overflow.
113
+ 7. Close modals and confirm you return to the previous board context.
114
+
115
+ ## Create an epic, task, and subtask
116
+
117
+ ```bash
118
+ trekoon epic create --title "Agent backlog stabilization" --description "Track stabilization work" --status todo
119
+ trekoon task create --title "Implement sync status" --description "Add status reporting" --epic <epic-id> --status todo
120
+ trekoon subtask create --task <task-id> --title "Add cursor model" --status todo
121
+ ```
122
+
123
+ Useful follow-up reads:
124
+
125
+ ```bash
126
+ trekoon task list
127
+ trekoon task list --status done
128
+ trekoon task list --limit 25
129
+ trekoon task list --all --view compact
130
+ ```
131
+
132
+ ## Prefer one-shot planning when the graph is already known
133
+
134
+ If you already know the epic tree, create the epic, tasks, subtasks, and
135
+ dependencies in one call:
136
+
137
+ ```bash
138
+ trekoon epic create \
139
+ --title "Batch command rollout" \
140
+ --description "Ship one-shot planning workflows" \
141
+ --task "task-a|First task|First description|todo" \
142
+ --task "task-b|Second task|Second description|todo" \
143
+ --subtask "@task-a|sub-a|First subtask|Subtask description|todo" \
144
+ --dep "@task-b|@task-a" \
145
+ --dep "@sub-a|@task-a"
146
+ ```
147
+
148
+ Use this when:
149
+
150
+ - the epic does not exist yet
151
+ - later records need to reference earlier records with `@temp-key`
152
+ - you want one atomic create step and one machine response with mappings and
153
+ counts
154
+
155
+ ## Add dependencies
156
+
157
+ ```bash
158
+ trekoon dep add <task-id> <depends-on-id>
159
+ trekoon dep list <task-id>
160
+ ```
161
+
162
+ ## Use batch commands for larger updates
163
+
164
+ When one call needs to create or link multiple records, prefer the transactional
165
+ batch commands:
166
+
167
+ | Need | Command |
168
+ | --- | --- |
169
+ | Create multiple tasks under one epic | `trekoon task create-many --epic <epic-id> --task ...` |
170
+ | Create multiple subtasks under one task | `trekoon subtask create-many <task-id> --subtask ...` |
171
+ | Add multiple dependency edges | `trekoon dep add-many --dep ...` |
172
+ | Expand an existing epic with linked records | `trekoon epic expand <epic-id> ...` |
173
+
174
+ These commands validate the whole batch before applying changes, so a bad input
175
+ fails the whole operation instead of leaving partial state behind.
176
+
177
+ ## Close or reopen a whole tree in one update
178
+
179
+ When you need to manually finish or reopen an entire epic or task tree, use the
180
+ positional-ID cascade form of `update --all`:
181
+
182
+ ```bash
183
+ trekoon epic update <epic-id> --all --status done
184
+ trekoon epic update <epic-id> --all --status todo
185
+ trekoon task update <task-id> --all --status done
186
+ trekoon task update <task-id> --all --status todo
187
+ trekoon subtask update <subtask-id> --all --status done
188
+ ```
189
+
190
+ Rules:
191
+
192
+ - `epic update <id> --all --status done|todo` updates the epic and all
193
+ descendants atomically
194
+ - `task update <id> --all --status done|todo` updates the task and all
195
+ descendant subtasks atomically
196
+ - `subtask update <id> --all --status done|todo` is accepted for consistency,
197
+ but it only updates that one subtask
198
+ - Positional-ID cascade mode is status-only; do not combine it with `--append`,
199
+ `--description`, `--title`, or `--ids`
200
+ - If any epic/task descendant is blocked by an unresolved external dependency,
201
+ the whole cascade fails with no partial writes
202
+
203
+ ## What to read next
204
+
205
+ - [Command reference](commands.md)
206
+ - [AI agents and the Trekoon skill](ai-agents.md)
207
+ - [Machine contracts](machine-contracts.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trekoon",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "AI-first local issue tracker CLI.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,9 @@
9
9
  },
10
10
  "files": [
11
11
  "bin",
12
+ "docs",
12
13
  "src",
14
+ "src/board/assets",
13
15
  ".agents/skills/trekoon/SKILL.md",
14
16
  "README.md",
15
17
  "LICENSE"