project-logbook 1.2.0 → 1.4.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 (226) hide show
  1. package/README.md +2 -0
  2. package/dist/commands/answer.d.ts +1 -0
  3. package/dist/commands/answer.js +41 -0
  4. package/dist/commands/answer.js.map +1 -0
  5. package/dist/commands/answers.d.ts +6 -0
  6. package/dist/commands/answers.js +37 -0
  7. package/dist/commands/answers.js.map +1 -0
  8. package/dist/commands/ask.d.ts +1 -0
  9. package/dist/commands/ask.js +30 -0
  10. package/dist/commands/ask.js.map +1 -0
  11. package/dist/commands/build.js +25 -6
  12. package/dist/commands/build.js.map +1 -1
  13. package/dist/commands/deprecate-qna.d.ts +1 -0
  14. package/dist/commands/deprecate-qna.js +33 -0
  15. package/dist/commands/deprecate-qna.js.map +1 -0
  16. package/dist/commands/log.js +2 -0
  17. package/dist/commands/log.js.map +1 -1
  18. package/dist/commands/new-helpers.d.ts +0 -1
  19. package/dist/commands/new-helpers.js +6 -3
  20. package/dist/commands/new-helpers.js.map +1 -1
  21. package/dist/commands/release.js +2 -0
  22. package/dist/commands/release.js.map +1 -1
  23. package/dist/commands/start.js +90 -21
  24. package/dist/commands/start.js.map +1 -1
  25. package/dist/commands/status.js +6 -0
  26. package/dist/commands/status.js.map +1 -1
  27. package/dist/commands/unanswered.d.ts +1 -0
  28. package/dist/commands/unanswered.js +25 -0
  29. package/dist/commands/unanswered.js.map +1 -0
  30. package/dist/commands/watch.d.ts +15 -0
  31. package/dist/commands/watch.js +153 -0
  32. package/dist/commands/watch.js.map +1 -0
  33. package/dist/index.js +44 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/lib/autolink.d.ts +5 -0
  36. package/dist/lib/autolink.js +36 -2
  37. package/dist/lib/autolink.js.map +1 -1
  38. package/dist/lib/build-helpers.d.ts +10 -1
  39. package/dist/lib/build-helpers.js +27 -4
  40. package/dist/lib/build-helpers.js.map +1 -1
  41. package/dist/lib/build-steps.js +2 -1
  42. package/dist/lib/build-steps.js.map +1 -1
  43. package/dist/lib/config.d.ts +16 -0
  44. package/dist/lib/config.js +17 -0
  45. package/dist/lib/config.js.map +1 -1
  46. package/dist/lib/custom-card-renderer.js +2 -1
  47. package/dist/lib/custom-card-renderer.js.map +1 -1
  48. package/dist/lib/entry-href.d.ts +7 -0
  49. package/dist/lib/entry-href.js +8 -0
  50. package/dist/lib/entry-href.js.map +1 -0
  51. package/dist/lib/markdown-processors.d.ts +2 -1
  52. package/dist/lib/post-template.js +3 -3
  53. package/dist/lib/post-template.js.map +1 -1
  54. package/dist/lib/template-helpers.d.ts +2 -1
  55. package/dist/lib/template-helpers.js +32 -2
  56. package/dist/lib/template-helpers.js.map +1 -1
  57. package/dist/lib/template-types.d.ts +14 -0
  58. package/dist/lib/templates.js +14 -4
  59. package/dist/lib/templates.js.map +1 -1
  60. package/dist/linters/index.js +2 -0
  61. package/dist/linters/index.js.map +1 -1
  62. package/dist/linters/jira-prefix.js +32 -16
  63. package/dist/linters/jira-prefix.js.map +1 -1
  64. package/dist/linters/qna.d.ts +3 -0
  65. package/dist/linters/qna.js +120 -0
  66. package/dist/linters/qna.js.map +1 -0
  67. package/dist/templates/about-watch.md +29 -0
  68. package/dist/templates/hub.css +677 -0
  69. package/dist/templates/hub.js +743 -0
  70. package/dist/templates/qna.md +11 -0
  71. package/dist/templates/steer.txt +2 -0
  72. package/dist/templates/styles.css +53 -0
  73. package/dist/utils/id.d.ts +1 -1
  74. package/dist/utils/id.js +4 -1
  75. package/dist/utils/id.js.map +1 -1
  76. package/dist/utils/qna.d.ts +46 -0
  77. package/dist/utils/qna.js +157 -0
  78. package/dist/utils/qna.js.map +1 -0
  79. package/dist/watch/__tests__/git-utils.test.d.ts +1 -0
  80. package/dist/watch/__tests__/git-utils.test.js +17 -0
  81. package/dist/watch/__tests__/git-utils.test.js.map +1 -0
  82. package/dist/watch/collector.d.ts +14 -0
  83. package/dist/watch/collector.js +33 -0
  84. package/dist/watch/collector.js.map +1 -0
  85. package/dist/watch/collectors/acli.d.ts +15 -0
  86. package/dist/watch/collectors/acli.js +197 -0
  87. package/dist/watch/collectors/acli.js.map +1 -0
  88. package/dist/watch/collectors/entries.d.ts +9 -0
  89. package/dist/watch/collectors/entries.js +90 -0
  90. package/dist/watch/collectors/entries.js.map +1 -0
  91. package/dist/watch/collectors/git.d.ts +12 -0
  92. package/dist/watch/collectors/git.js +58 -0
  93. package/dist/watch/collectors/git.js.map +1 -0
  94. package/dist/watch/collectors/glab.d.ts +10 -0
  95. package/dist/watch/collectors/glab.js +273 -0
  96. package/dist/watch/collectors/glab.js.map +1 -0
  97. package/dist/watch/collectors/index.d.ts +10 -0
  98. package/dist/watch/collectors/index.js +21 -0
  99. package/dist/watch/collectors/index.js.map +1 -0
  100. package/dist/watch/collectors/jira.d.ts +3 -0
  101. package/dist/watch/collectors/jira.js +111 -0
  102. package/dist/watch/collectors/jira.js.map +1 -0
  103. package/dist/watch/collectors/type-guards.d.ts +17 -0
  104. package/dist/watch/collectors/type-guards.js +35 -0
  105. package/dist/watch/collectors/type-guards.js.map +1 -0
  106. package/dist/watch/collectors/types.d.ts +37 -0
  107. package/dist/watch/collectors/types.js +9 -0
  108. package/dist/watch/collectors/types.js.map +1 -0
  109. package/dist/watch/dashboard-html.d.ts +11 -0
  110. package/dist/watch/dashboard-html.js +81 -0
  111. package/dist/watch/dashboard-html.js.map +1 -0
  112. package/dist/watch/dashboard-script.d.ts +12 -0
  113. package/dist/watch/dashboard-script.js +20 -0
  114. package/dist/watch/dashboard-script.js.map +1 -0
  115. package/dist/watch/dashboard-styles.d.ts +12 -0
  116. package/dist/watch/dashboard-styles.js +20 -0
  117. package/dist/watch/dashboard-styles.js.map +1 -0
  118. package/dist/watch/dashboard.d.ts +12 -0
  119. package/dist/watch/dashboard.js +50 -0
  120. package/dist/watch/dashboard.js.map +1 -0
  121. package/dist/watch/git-utils.d.ts +36 -0
  122. package/dist/watch/git-utils.js +117 -0
  123. package/dist/watch/git-utils.js.map +1 -0
  124. package/dist/watch/hub-state.d.ts +39 -0
  125. package/dist/watch/hub-state.js +57 -0
  126. package/dist/watch/hub-state.js.map +1 -0
  127. package/dist/watch/hub.d.ts +2 -0
  128. package/dist/watch/hub.js +252 -0
  129. package/dist/watch/hub.js.map +1 -0
  130. package/dist/watch/log-utils.d.ts +13 -0
  131. package/dist/watch/log-utils.js +24 -0
  132. package/dist/watch/log-utils.js.map +1 -0
  133. package/dist/watch/notify.d.ts +18 -0
  134. package/dist/watch/notify.js +45 -0
  135. package/dist/watch/notify.js.map +1 -0
  136. package/dist/watch/state.d.ts +38 -0
  137. package/dist/watch/state.js +36 -0
  138. package/dist/watch/state.js.map +1 -0
  139. package/dist/watch/strategies/behind-default.d.ts +5 -0
  140. package/dist/watch/strategies/behind-default.js +21 -0
  141. package/dist/watch/strategies/behind-default.js.map +1 -0
  142. package/dist/watch/strategies/idle.d.ts +5 -0
  143. package/dist/watch/strategies/idle.js +21 -0
  144. package/dist/watch/strategies/idle.js.map +1 -0
  145. package/dist/watch/strategies/in-progress.d.ts +5 -0
  146. package/dist/watch/strategies/in-progress.js +21 -0
  147. package/dist/watch/strategies/in-progress.js.map +1 -0
  148. package/dist/watch/strategies/index.d.ts +34 -0
  149. package/dist/watch/strategies/index.js +148 -0
  150. package/dist/watch/strategies/index.js.map +1 -0
  151. package/dist/watch/strategies/jira-not-in-review.d.ts +2 -0
  152. package/dist/watch/strategies/jira-not-in-review.js +29 -0
  153. package/dist/watch/strategies/jira-not-in-review.js.map +1 -0
  154. package/dist/watch/strategies/jira-still-open.d.ts +2 -0
  155. package/dist/watch/strategies/jira-still-open.js +31 -0
  156. package/dist/watch/strategies/jira-still-open.js.map +1 -0
  157. package/dist/watch/strategies/mr-approval-optional.d.ts +5 -0
  158. package/dist/watch/strategies/mr-approval-optional.js +21 -0
  159. package/dist/watch/strategies/mr-approval-optional.js.map +1 -0
  160. package/dist/watch/strategies/mr-approved.d.ts +5 -0
  161. package/dist/watch/strategies/mr-approved.js +21 -0
  162. package/dist/watch/strategies/mr-approved.js.map +1 -0
  163. package/dist/watch/strategies/mr-conflicts.d.ts +5 -0
  164. package/dist/watch/strategies/mr-conflicts.js +21 -0
  165. package/dist/watch/strategies/mr-conflicts.js.map +1 -0
  166. package/dist/watch/strategies/mr-draft.d.ts +5 -0
  167. package/dist/watch/strategies/mr-draft.js +21 -0
  168. package/dist/watch/strategies/mr-draft.js.map +1 -0
  169. package/dist/watch/strategies/mr-open-comments.d.ts +5 -0
  170. package/dist/watch/strategies/mr-open-comments.js +21 -0
  171. package/dist/watch/strategies/mr-open-comments.js.map +1 -0
  172. package/dist/watch/strategies/narrative-missing.d.ts +5 -0
  173. package/dist/watch/strategies/narrative-missing.js +21 -0
  174. package/dist/watch/strategies/narrative-missing.js.map +1 -0
  175. package/dist/watch/strategies/no-mr.d.ts +5 -0
  176. package/dist/watch/strategies/no-mr.js +21 -0
  177. package/dist/watch/strategies/no-mr.js.map +1 -0
  178. package/dist/watch/strategies/pipeline-failed.d.ts +5 -0
  179. package/dist/watch/strategies/pipeline-failed.js +21 -0
  180. package/dist/watch/strategies/pipeline-failed.js.map +1 -0
  181. package/dist/watch/strategies/pipeline-running.d.ts +5 -0
  182. package/dist/watch/strategies/pipeline-running.js +21 -0
  183. package/dist/watch/strategies/pipeline-running.js.map +1 -0
  184. package/dist/watch/strategies/ready-for-release.d.ts +7 -0
  185. package/dist/watch/strategies/ready-for-release.js +35 -0
  186. package/dist/watch/strategies/ready-for-release.js.map +1 -0
  187. package/dist/watch/strategies/ready-to-commit.d.ts +5 -0
  188. package/dist/watch/strategies/ready-to-commit.js +21 -0
  189. package/dist/watch/strategies/ready-to-commit.js.map +1 -0
  190. package/dist/watch/strategies/ready-to-push.d.ts +5 -0
  191. package/dist/watch/strategies/ready-to-push.js +21 -0
  192. package/dist/watch/strategies/ready-to-push.js.map +1 -0
  193. package/dist/watch/strategies/released.d.ts +6 -0
  194. package/dist/watch/strategies/released.js +21 -0
  195. package/dist/watch/strategies/released.js.map +1 -0
  196. package/dist/watch/strategies/squash-merged.d.ts +6 -0
  197. package/dist/watch/strategies/squash-merged.js +21 -0
  198. package/dist/watch/strategies/squash-merged.js.map +1 -0
  199. package/dist/watch/strategies/types.d.ts +31 -0
  200. package/dist/watch/strategies/types.js +12 -0
  201. package/dist/watch/strategies/types.js.map +1 -0
  202. package/dist/watch/strategies/unstaged-changes.d.ts +5 -0
  203. package/dist/watch/strategies/unstaged-changes.js +21 -0
  204. package/dist/watch/strategies/unstaged-changes.js.map +1 -0
  205. package/dist/watch/strategies/wrong-branch.d.ts +6 -0
  206. package/dist/watch/strategies/wrong-branch.js +26 -0
  207. package/dist/watch/strategies/wrong-branch.js.map +1 -0
  208. package/dist/watch/types.d.ts +211 -0
  209. package/dist/watch/types.js +25 -0
  210. package/dist/watch/types.js.map +1 -0
  211. package/dist/watch/watcher-fs.d.ts +39 -0
  212. package/dist/watch/watcher-fs.js +105 -0
  213. package/dist/watch/watcher-fs.js.map +1 -0
  214. package/dist/watch/watcher-http.d.ts +19 -0
  215. package/dist/watch/watcher-http.js +47 -0
  216. package/dist/watch/watcher-http.js.map +1 -0
  217. package/dist/watch/watcher.d.ts +4 -0
  218. package/dist/watch/watcher.js +185 -0
  219. package/dist/watch/watcher.js.map +1 -0
  220. package/package.json +8 -2
  221. package/src/templates/about-watch.md +29 -0
  222. package/src/templates/hub.css +677 -0
  223. package/src/templates/hub.js +743 -0
  224. package/src/templates/qna.md +11 -0
  225. package/src/templates/steer.txt +2 -0
  226. package/src/templates/styles.css +53 -0
@@ -0,0 +1,11 @@
1
+ ---
2
+ id: {{id}}
3
+ status: asked
4
+ dateAsked: {{dateAsked}}
5
+ ---
6
+
7
+ ### Question
8
+ {{question}}
9
+
10
+ ### Answer
11
+
@@ -6,6 +6,7 @@ Do NOT run `logbook new` or `logbook release` — these are prompter responsibil
6
6
  Phase 1: Understand
7
7
  1. Read `ticket.md` in the active entry. This is your source of truth for requirements.
8
8
  2. Review `AGENTS.md` and `CONTRIBUTING.md` if you need architectural or workflow context.
9
+ 3. Check existing QnAs with `logbook answers` or check open questions with `logbook unanswered`.
9
10
 
10
11
  Phase 2: Execute & Trace
11
12
 
@@ -29,6 +30,7 @@ You MUST log your work continuously using `logbook log "<message>"`. This is not
29
30
  3. **One message per command call.** For multiple entries, call the command multiple times.
30
31
  4. Do NOT reconstruct the log at the end. If the log is empty when you finish, you did it wrong.
31
32
  5. Stick to the active entry; never modify past entries in the logbook folder.
33
+ 6. For short technical questions and findings, record them via `logbook ask "<question>"` and resolve them with `logbook answer <id> "<answer>"`.
32
34
 
33
35
  Phase 3: Synthesize
34
36
  1. When implementation is finished, write the narrative in `index.md`.
@@ -578,6 +578,16 @@ footer .build-time a:hover {
578
578
  color: #4b5563;
579
579
  }
580
580
 
581
+ .tag-asked {
582
+ background: #fef3c7;
583
+ color: #92400e;
584
+ }
585
+
586
+ .tag-answered {
587
+ background: #dcfce7;
588
+ color: #166534;
589
+ }
590
+
581
591
  /* Timeline card tag styling */
582
592
  .timeline-card .tags-wrapper {
583
593
  margin-top: 0.5rem;
@@ -1017,3 +1027,46 @@ article img[src$='.svg'] {
1017
1027
  .timeline-card--adr .tags-wrapper {
1018
1028
  margin-top: 0.5rem;
1019
1029
  }
1030
+
1031
+ /* QnA card styles */
1032
+ .qna-card {
1033
+ display: block;
1034
+ background: var(--card-bg, #ffffff);
1035
+ border: 1px solid var(--border, #e5e7eb);
1036
+ border-radius: 8px;
1037
+ padding: 1.25rem 1.5rem;
1038
+ margin-bottom: 1.5rem;
1039
+ }
1040
+
1041
+ .qna-card.unanswered {
1042
+ border-left: 4px solid #f59e0b;
1043
+ }
1044
+
1045
+ .qna-card.answered {
1046
+ border-left: 4px solid #10b981;
1047
+ }
1048
+
1049
+ .qna-meta {
1050
+ font-size: 0.8125rem;
1051
+ color: var(--text-muted);
1052
+ margin-bottom: 0.75rem;
1053
+ display: flex;
1054
+ align-items: center;
1055
+ gap: 0.5rem;
1056
+ flex-wrap: wrap;
1057
+ }
1058
+
1059
+ .qna-card h3 {
1060
+ font-size: 0.95rem;
1061
+ font-weight: 700;
1062
+ margin: 0.75rem 0 0.25rem 0;
1063
+ text-transform: uppercase;
1064
+ letter-spacing: 0.05em;
1065
+ color: var(--text-muted);
1066
+ }
1067
+
1068
+ .qna-card .markdown-body {
1069
+ color: var(--text);
1070
+ font-size: 0.9375rem;
1071
+ line-height: 1.6;
1072
+ }