@nickmeriano/task 0.7.0 → 0.8.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/README.md +12 -7
- package/dist/check.d.ts +42 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +364 -0
- package/dist/check.js.map +1 -0
- package/dist/check.test.d.ts +9 -0
- package/dist/check.test.d.ts.map +1 -0
- package/dist/check.test.js +209 -0
- package/dist/check.test.js.map +1 -0
- package/dist/claim.d.ts +56 -3
- package/dist/claim.d.ts.map +1 -1
- package/dist/claim.js +164 -9
- package/dist/claim.js.map +1 -1
- package/dist/claim.test.js +168 -14
- package/dist/claim.test.js.map +1 -1
- package/dist/cli.js +504 -93
- package/dist/cli.js.map +1 -1
- package/dist/file-store.d.ts +41 -15
- package/dist/file-store.d.ts.map +1 -1
- package/dist/file-store.js +197 -99
- package/dist/file-store.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/overview.d.ts +43 -0
- package/dist/overview.d.ts.map +1 -0
- package/dist/overview.js +53 -0
- package/dist/overview.js.map +1 -0
- package/dist/overview.test.d.ts +8 -0
- package/dist/overview.test.d.ts.map +1 -0
- package/dist/overview.test.js +47 -0
- package/dist/overview.test.js.map +1 -0
- package/dist/promote.test.d.ts +14 -0
- package/dist/promote.test.d.ts.map +1 -0
- package/dist/promote.test.js +106 -0
- package/dist/promote.test.js.map +1 -0
- package/dist/search.d.ts +32 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +66 -0
- package/dist/search.js.map +1 -0
- package/dist/search.test.d.ts +2 -0
- package/dist/search.test.d.ts.map +1 -0
- package/dist/search.test.js +53 -0
- package/dist/search.test.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -2
- package/dist/server.js.map +1 -1
- package/dist/store.d.ts +16 -50
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +0 -368
- package/dist/store.js.map +1 -1
- package/dist/store.test.d.ts +1 -2
- package/dist/store.test.d.ts.map +1 -1
- package/dist/store.test.js +77 -48
- package/dist/store.test.js.map +1 -1
- package/dist/ticket-doc.d.ts +55 -2
- package/dist/ticket-doc.d.ts.map +1 -1
- package/dist/ticket-doc.js +177 -7
- package/dist/ticket-doc.js.map +1 -1
- package/dist/types.d.ts +67 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +97 -31
- package/src/check.test.ts +271 -0
- package/src/check.ts +454 -0
- package/src/claim.test.ts +202 -14
- package/src/claim.ts +194 -10
- package/src/cli.ts +510 -89
- package/src/file-store.ts +217 -111
- package/src/index.ts +4 -2
- package/src/overview.test.ts +51 -0
- package/src/overview.ts +90 -0
- package/src/promote.test.ts +131 -0
- package/src/search.test.ts +64 -0
- package/src/search.ts +91 -0
- package/src/server.ts +11 -2
- package/src/store.test.ts +89 -57
- package/src/store.ts +18 -431
- package/src/ticket-doc.ts +210 -10
- package/src/types.ts +71 -14
- package/ui/dist/assets/{index-oJzomUDL.js → index-BJmOsOdR.js} +76 -76
- package/ui/dist/assets/index-BoqQlqSU.css +1 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-CXW8uT5f.css +0 -1
package/dist/ticket-doc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-doc.js","sourceRoot":"","sources":["../src/ticket-doc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAe,MAAM,YAAY,CAAA;AAwB5D,kFAAkF;AAClF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAS9C;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAA;IAChB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACrD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,2DAA2D,CAAC,CAAA;IACjG,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACnC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,6CAA6C,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAQ;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,0CAA0C,IAAI,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;AACvE,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,GAAW;IACrC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa,EAAE,QAAgB;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,KAAK,GAAG,qBAAqB,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IACnF,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,KAAK,GAAG,+CAA+C,CAAC,CAAA;AAC7F,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,KAAiB,CAAA;IAC1B,CAAC;IACD,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,KAAK,GAAG,gDAAgD,CAAC,CAAA;AAC9F,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACxE,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;QACpC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;KACzD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,gBAAgB,CACxB,GAAG,KAAK,qBAAqB,MAAM,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxE,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACzC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnF,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,gCAAgC,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,gBAAgB,CAAC,GAAG,KAAK,+CAA+C,CAAC,CAAA;IACrF,CAAC;IACD,OAAO;QACL,KAAK;QACL,WAAW;QACX,MAAM;QACN,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;QACpC,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC/E,UAAU,EAAE,UAAU,KAAK,IAAI;QAC/B,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC;QAC/C,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;QAClC,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrD,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;KAClD,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,IAAI,CAAC,MAA2B;IACvC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1D,IAAI,GAAG,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC5E,IAAI,GAAG,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACnD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC1E,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IACvC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IACvC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IACvC,IAAI,GAAG,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IACpD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AAChC,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACjC,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC9C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,GAAG,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC5D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAc;IAC3D,MAAM,OAAO,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;IACxF,MAAM,IAAI,GAAG,MAAM;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACf,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"ticket-doc.js","sourceRoot":"","sources":["../src/ticket-doc.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,7 +10,12 @@ export interface Task {
|
|
|
10
10
|
description: string;
|
|
11
11
|
status: Status;
|
|
12
12
|
tags: string[];
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Slug of the goal this task belongs to — at most one. Tags answer "what
|
|
15
|
+
* kind" (many); the goal answers "where is this going" (one). Something that
|
|
16
|
+
* wants to live in two goals is a tag.
|
|
17
|
+
*/
|
|
18
|
+
goal: string | null;
|
|
14
19
|
/** This ticket can't be finished by an agent alone. */
|
|
15
20
|
needsHuman: boolean;
|
|
16
21
|
/**
|
|
@@ -34,36 +39,84 @@ export interface Task {
|
|
|
34
39
|
archived?: boolean;
|
|
35
40
|
}
|
|
36
41
|
export interface Comment {
|
|
37
|
-
/**
|
|
38
|
-
* Stable opaque id. On file-backed boards it's the comment's filename stem
|
|
39
|
-
* (e.g. "2026-08-15T165943-claude"); on legacy SQLite boards, the rowid as a
|
|
40
|
-
* string.
|
|
41
|
-
*/
|
|
42
|
+
/** Stable opaque id — the comment's filename stem (e.g. "2026-08-15T165943-claude"). */
|
|
42
43
|
id: string;
|
|
43
44
|
taskId: string;
|
|
44
45
|
author: string;
|
|
45
46
|
body: string;
|
|
46
47
|
createdAt: string;
|
|
47
48
|
}
|
|
49
|
+
/** How this board's tickets get claimed — see `claim.ts` for the mechanics. */
|
|
50
|
+
export interface ClaimsConfig {
|
|
51
|
+
/**
|
|
52
|
+
* Branch namespace `task claim` creates claim branches under — committed
|
|
53
|
+
* with the board on purpose, so every worker and every clone agree on what
|
|
54
|
+
* "claimed" looks like. Defaults to "task/claim/"; repos whose workers are
|
|
55
|
+
* Claude Code cloud sessions set "claude/task/", the one prefix that
|
|
56
|
+
* runtime can push without extra ceremony. Must agree across a repo's
|
|
57
|
+
* boards (`task check` lints it) — workflows match claim branches by
|
|
58
|
+
* pattern, and one repo with two patterns matches neither reliably.
|
|
59
|
+
*/
|
|
60
|
+
branchPrefix?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Repo-wide cap on open claims: `task claim` refuses (exit 2) while this
|
|
63
|
+
* many claim branches exist on origin, `--force` overrides. Read from the
|
|
64
|
+
* repo's *root* board only — a WIP cap per board is no cap at all.
|
|
65
|
+
*/
|
|
66
|
+
maxOpenCount?: number;
|
|
67
|
+
}
|
|
48
68
|
export interface ProjectConfig {
|
|
49
69
|
name: string;
|
|
50
70
|
/** Uppercase id prefix, e.g. "PHO" → PHO-1, PHO-2, … */
|
|
51
71
|
prefix: string;
|
|
52
72
|
version: number;
|
|
53
73
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* Claude Code cloud sessions set "claude/task/", the one prefix that
|
|
58
|
-
* runtime can push without extra ceremony.
|
|
74
|
+
* Pre-0.8 spelling of `claims.branchPrefix`, still read (the shared lock
|
|
75
|
+
* convention must not strand in-flight claims across a version bump).
|
|
76
|
+
* `task check` nags about it; `--fix` migrates it.
|
|
59
77
|
*/
|
|
60
78
|
claimPrefix?: string;
|
|
79
|
+
claims?: ClaimsConfig;
|
|
80
|
+
/**
|
|
81
|
+
* Root board only: the repo's automation-visible boards, by id prefix, in
|
|
82
|
+
* priority order. This is *selection scope* — where `claim --next` and
|
|
83
|
+
* `list --claimable` look — not permission: explicit-id claims work on any
|
|
84
|
+
* board regardless. Absent → automation sees the nearest board only, so a
|
|
85
|
+
* vendored board can't opt itself in.
|
|
86
|
+
*/
|
|
87
|
+
boards?: string[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* A goal: a titled, described destination that tasks belong to. Progress is
|
|
91
|
+
* always derived from its tasks — a goal has no stored status on purpose,
|
|
92
|
+
* because a second state machine is a second thing that can lie.
|
|
93
|
+
*/
|
|
94
|
+
export interface Goal {
|
|
95
|
+
/** Filename stem under `.task/goals/` — the stable identity tickets reference. */
|
|
96
|
+
slug: string;
|
|
97
|
+
title: string;
|
|
98
|
+
/** The strategic why. Tickets keep the how; this is the context they share. */
|
|
99
|
+
description: string;
|
|
100
|
+
createdAt: string;
|
|
101
|
+
updatedAt: string;
|
|
102
|
+
/** Set (to true) only on goals living in `.task/goals/archive/`. */
|
|
103
|
+
archived?: boolean;
|
|
104
|
+
}
|
|
105
|
+
export interface GoalInput {
|
|
106
|
+
title: string;
|
|
107
|
+
/** Derived from the title when omitted. */
|
|
108
|
+
slug?: string;
|
|
109
|
+
description?: string;
|
|
110
|
+
}
|
|
111
|
+
export interface GoalPatch {
|
|
112
|
+
title?: string;
|
|
113
|
+
description?: string;
|
|
61
114
|
}
|
|
62
115
|
export interface TaskFilter {
|
|
63
116
|
statuses?: Status[];
|
|
64
117
|
/** Any-of: a task matches if it carries at least one of these tags. */
|
|
65
118
|
tags?: string[];
|
|
66
|
-
|
|
119
|
+
goal?: string;
|
|
67
120
|
/** undefined = don't filter on it at all. */
|
|
68
121
|
needsHuman?: boolean;
|
|
69
122
|
/** true = list the archive instead of the board. */
|
|
@@ -74,7 +127,7 @@ export interface TaskInput {
|
|
|
74
127
|
description?: string;
|
|
75
128
|
status?: Status;
|
|
76
129
|
tags?: string[];
|
|
77
|
-
|
|
130
|
+
goal?: string | null;
|
|
78
131
|
needsHuman?: boolean;
|
|
79
132
|
blocks?: number[];
|
|
80
133
|
blockedBy?: number[];
|
|
@@ -85,7 +138,7 @@ export interface TaskPatch {
|
|
|
85
138
|
description?: string;
|
|
86
139
|
status?: Status;
|
|
87
140
|
tags?: string[];
|
|
88
|
-
|
|
141
|
+
goal?: string | null;
|
|
89
142
|
needsHuman?: boolean;
|
|
90
143
|
/**
|
|
91
144
|
* Full replacement, like `tags` — the store reconciles the relation table
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,eAAO,MAAM,QAAQ,iEAMX,CAAA;AACV,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,MAAM,WAAW,IAAI;IACnB,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS;IACT,MAAM;IACN,aAAa;IACb,MAAM;IACN,UAAU;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS;IACT,MAAM;IACN,aAAa;IACb,MAAM;IACN,UAAU;CACF,CAAA;AAiKV,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAQ,QAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nickmeriano/task",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A task manager that lives in your repo — plain-text tickets in .task/, a zero-dependency CLI for humans and agents, and a live kanban/table UI via `task serve`.",
|
|
6
6
|
"license": "MIT",
|
package/skill/SKILL.md
CHANGED
|
@@ -34,21 +34,39 @@ for parsing.
|
|
|
34
34
|
## Commands
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
task list [--status s1,s2] [--tag a,b] [--
|
|
38
|
-
task show <id> --json # full task + comments
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
task list [--status s1,s2] [--tag a,b] [--goal g] [--needs-human] [--all] --json
|
|
38
|
+
task show <id> --json # full task + comments + its goal's
|
|
39
|
+
# title and description, inlined
|
|
40
|
+
task search <query> [--archived] --json # match titles, descriptions, comments;
|
|
41
|
+
# --archived searches the archive too
|
|
42
|
+
task add "Title" [--description text | --description-file path|-] [--status s]
|
|
43
|
+
[--tags a,b] [--goal g] [--needs-human] --json
|
|
44
|
+
# long markdown descriptions: write a
|
|
45
|
+
# file (or pipe stdin with -) instead
|
|
46
|
+
# of fighting shell quoting — never
|
|
47
|
+
# hand-edit ticket files
|
|
48
|
+
task update <id> [--title t] [--description text | --description-file path|-]
|
|
49
|
+
[--status s] [--tags a,b] [--goal g]
|
|
50
|
+
[--needs-human | --no-needs-human] --json
|
|
51
|
+
task move <id> <status> # the one status API — every plain
|
|
52
|
+
# status change goes through it
|
|
53
|
+
task promote <id> --json # backlog → todo — the human "build
|
|
54
|
+
# this" call; see "Promotion" below
|
|
46
55
|
task link <id> --blocked-by <id> # mark a dependency (or --blocks)
|
|
47
56
|
task unlink <id> --blocked-by <id> # remove one (or --blocks)
|
|
48
57
|
task update <id> --pr <url> # attach a pull request (appends)
|
|
58
|
+
task goal add "Title" [--slug s] [--description text] --json
|
|
59
|
+
task goal list [--archived] --json # every goal + derived done/total counts
|
|
60
|
+
task goal show <slug> --json # the goal, its description, its tasks
|
|
61
|
+
task goal update <slug> [--title t] [--description text] --json
|
|
62
|
+
task goal archive <slug> # refused while it has open tasks
|
|
63
|
+
task goal delete <slug> # refused while any live task references it
|
|
49
64
|
task claim <id> # claim a ticket before working it
|
|
50
|
-
task claim --
|
|
65
|
+
task claim --next --json # claim the top claimable ticket in one call
|
|
66
|
+
task claim --release <id> --comment "why" # abandon a claim, reason required
|
|
51
67
|
task list --claimable --json # the claim queue, top entry = next up
|
|
68
|
+
task overview --json # one screen of board health
|
|
69
|
+
task instructions # print these conventions (this file)
|
|
52
70
|
task comment <id> "text" --author claude
|
|
53
71
|
task delete <id>
|
|
54
72
|
task boards --json # every board in the repo, with prefixes
|
|
@@ -56,6 +74,8 @@ task archive <id> --json # done/canceled ticket -> .task/archive/
|
|
|
56
74
|
task archive --all --json # archive everything done or canceled
|
|
57
75
|
task unarchive <id> --json # put one back on the board
|
|
58
76
|
task whoami # who comments are attributed to
|
|
77
|
+
task check [--fix] --json # lint the board files (dangling refs,
|
|
78
|
+
# bad files); --fix repairs mechanically
|
|
59
79
|
```
|
|
60
80
|
|
|
61
81
|
`task publish` and `task unpublish` also exist — they give the board a URL so
|
|
@@ -68,7 +88,14 @@ and wait for a human, so **never run either on your own initiative**; suggest
|
|
|
68
88
|
`TAS-12` works from any directory. `task boards --json` lists them all.
|
|
69
89
|
- Statuses: `backlog` `todo` `in_progress` `done` `canceled`.
|
|
70
90
|
- `--tag a,b` matches a task carrying *either* tag, not both.
|
|
71
|
-
- Clear a field by passing it empty: `--tags ""`, `--
|
|
91
|
+
- Clear a field by passing it empty: `--tags ""`, `--goal ""`, `--prs ""`.
|
|
92
|
+
- Long markdown goes through **stdin**, not shell quoting and never a
|
|
93
|
+
hand-edited ticket file — `task update NIC-12 --description-file - <<'EOF'
|
|
94
|
+
… EOF`. This path is byte-faithful: what you pipe is exactly what's stored
|
|
95
|
+
(the web UI's rich-text editor, by contrast, re-serializes markdown on
|
|
96
|
+
save). To append (e.g. a plan), read the current text from `--json` first
|
|
97
|
+
and pipe back original + addition — the flag replaces the whole
|
|
98
|
+
description.
|
|
72
99
|
- `task list` hides done/canceled by default; `--all` shows everything, and
|
|
73
100
|
`--archived` lists the archive instead of the board.
|
|
74
101
|
- Archiving is history, not deletion: only done/canceled tickets qualify,
|
|
@@ -85,24 +112,54 @@ ordering ("this can't land until X does"), record it with `task link` instead
|
|
|
85
112
|
of prose in a comment. Blocked tasks wear a red "Blocked" badge on the board
|
|
86
113
|
until every blocker is done or canceled.
|
|
87
114
|
|
|
115
|
+
**Promotion.** `backlog` → `todo` is the human "build this" decision, and
|
|
116
|
+
`task promote <id>` is its verb. There is no quality gate — a one-line
|
|
117
|
+
backlog ticket promotes, because planning happens at claim time, not before.
|
|
118
|
+
Blocked or needs-human tickets still promote (the hold is reported, in
|
|
119
|
+
`holds` with `--json`): those are claim-time gates that `claim` and
|
|
120
|
+
`--claimable` enforce live, so promoting a blocked ticket just queues it
|
|
121
|
+
behind its blockers. Prefer `promote` over `update --status todo` / `move`
|
|
122
|
+
for this transition — it refuses non-backlog sources and reports holds.
|
|
123
|
+
**Never promote on your own initiative**; a person promotes.
|
|
124
|
+
|
|
88
125
|
**Claiming.** On a board worked by several sessions (scheduled agents, other
|
|
89
126
|
humans), `task claim <id>` is the lock that keeps two workers off the same
|
|
90
|
-
ticket: it branches `<
|
|
91
|
-
(`
|
|
92
|
-
ticket to `in_progress` as the branch's first commit, and pushes. The
|
|
93
|
-
existing on origin *is* the claim — atomic, because the push only
|
|
94
|
-
the branch doesn't exist yet. Exit codes: `0` claimed (you're on
|
|
95
|
-
start working), `1` already claimed (pick another ticket), `2`
|
|
96
|
-
(not todo, blocked, needs-human,
|
|
97
|
-
if you're about to implement a `todo` ticket
|
|
98
|
-
`
|
|
99
|
-
`git ls-remote origin '<
|
|
127
|
+
ticket: it branches `<branchPrefix><prefix>-<n>` off origin's default branch
|
|
128
|
+
(`claims.branchPrefix` in `.task/config.json`, default `task/claim/`), flips
|
|
129
|
+
the ticket to `in_progress` as the branch's first commit, and pushes. The
|
|
130
|
+
branch existing on origin *is* the claim — atomic, because the push only
|
|
131
|
+
succeeds if the branch doesn't exist yet. Exit codes: `0` claimed (you're on
|
|
132
|
+
the branch, start working), `1` already claimed (pick another ticket), `2`
|
|
133
|
+
not claimable (not todo, blocked, needs-human, dirty tree, or at the claim
|
|
134
|
+
cap). **Claim before you work**: if you're about to implement a `todo` ticket
|
|
135
|
+
in a repo that claims (a `claims` block in the config, or claims visible in
|
|
136
|
+
`git ls-remote origin '<branchPrefix>*'`), run `task claim <id>` first so no
|
|
100
137
|
scheduled run picks it up under you — and do the whole ticket on the claim
|
|
101
|
-
branch, `task done` + `--pr` included, so the merge lands code and status
|
|
102
|
-
together. `
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
138
|
+
branch, `task move <id> done` + `--pr` included, so the merge lands code and status
|
|
139
|
+
together. Never edit `claims.branchPrefix` on your own initiative — it's the
|
|
140
|
+
shared lock convention, and changing it strands every in-flight claim.
|
|
141
|
+
|
|
142
|
+
`task claim --next --json` claims the top claimable ticket in one call and is
|
|
143
|
+
the first move of a scheduled worker: it walks the selection scope in
|
|
144
|
+
priority order, retries past lost races internally, and exits `0` claimed
|
|
145
|
+
(printing the ticket), `1` queue empty (stop cleanly — no work), `2`
|
|
146
|
+
preconditions failed. The scope comes from the root board's top-level
|
|
147
|
+
`"boards"` list in `.task/config.json` (board prefixes, list order =
|
|
148
|
+
priority; absent → the nearest board only); `--board TAS` (repeatable)
|
|
149
|
+
overrides it. The list is selection scope, not permission — an explicit
|
|
150
|
+
`task claim <id>` works on any board. `task list --claimable --json` is the
|
|
151
|
+
same queue without the claim.
|
|
152
|
+
|
|
153
|
+
The root board's `claims.maxOpenCount` is a repo-wide WIP cap: while that
|
|
154
|
+
many claim branches exist on origin, every new claim is refused (exit `2`).
|
|
155
|
+
Don't reach for `--force` on your own initiative — the cap usually means
|
|
156
|
+
merge or release something first.
|
|
157
|
+
|
|
158
|
+
**Releasing.** `task claim --release <id> --comment "why"` abandons a claim:
|
|
159
|
+
it deletes the branch on both sides, then records the required comment on the
|
|
160
|
+
ticket (attributed like `task comment`, left uncommitted in your working
|
|
161
|
+
tree) so the next worker inherits what was tried instead of rediscovering it.
|
|
162
|
+
Say what you attempted and where it went wrong, not just "releasing".
|
|
106
163
|
|
|
107
164
|
**Pull requests.** When you open a PR for a task, attach it:
|
|
108
165
|
`task update <id> --pr <url>`. Put the task id in the PR title too (e.g.
|
|
@@ -112,7 +169,7 @@ changing it strands every in-flight claim.
|
|
|
112
169
|
## How to work with the board
|
|
113
170
|
|
|
114
171
|
**Starting work.** Before picking up a request, check `task list --json` —
|
|
115
|
-
the work may already be tracked. If it is, `task
|
|
172
|
+
the work may already be tracked. If it is, `task move <id> in_progress` so the board
|
|
116
173
|
shows it moving. If it isn't and the work is more than a quick edit, create a
|
|
117
174
|
task first: the user watching the board should be able to tell what you're
|
|
118
175
|
doing without reading your transcript.
|
|
@@ -124,7 +181,7 @@ new work you're not going to do now (a bug, a refactor, a follow-up), don't
|
|
|
124
181
|
let it evaporate: `task add` it to `backlog` or `todo` with enough description
|
|
125
182
|
that someone else could pick it up cold.
|
|
126
183
|
|
|
127
|
-
**Finishing.** `task
|
|
184
|
+
**Finishing.** `task move <id> done` only when the work is actually done — code
|
|
128
185
|
written, checks passing. If you're stopping partway, leave it `in_progress`
|
|
129
186
|
with a comment saying exactly where you stopped and what's left. If the work
|
|
130
187
|
turned out to be unnecessary, `task move <id> canceled` with a comment saying
|
|
@@ -149,9 +206,18 @@ webhook", not "webhook bug". Descriptions carry the context you'd want if you
|
|
|
149
206
|
picked the task up cold: the file paths involved, the constraint that makes it
|
|
150
207
|
non-obvious, the definition of done. Tags are lowercase single words
|
|
151
208
|
(`api`, `infra`, `ui`, `bug`) — reuse the repo's existing tags
|
|
152
|
-
(`task list --all --json` shows what's in use) before inventing new ones.
|
|
153
|
-
|
|
154
|
-
|
|
209
|
+
(`task list --all --json` shows what's in use) before inventing new ones.
|
|
210
|
+
|
|
211
|
+
**Goals.** A goal is a titled, described destination (`task goal add`); a task
|
|
212
|
+
belongs to **at most one**. The split to keep straight: the goal answers
|
|
213
|
+
"where is this going" (one), tags answer "what kind" (many) — something that
|
|
214
|
+
wants to live in two goals is a tag. The goal's description carries the
|
|
215
|
+
strategic why that its tickets share; keep each ticket self-sufficient for the
|
|
216
|
+
how, and put the shared context in the goal instead of pasting it into every
|
|
217
|
+
ticket (`task show` inlines it automatically). Goals have no status — progress
|
|
218
|
+
is derived from their tasks — and `task goal archive` shelves a finished one
|
|
219
|
+
once nothing open references it. Don't mint goals casually: if it doesn't
|
|
220
|
+
deserve a description, it's a tag.
|
|
155
221
|
|
|
156
222
|
## The UI
|
|
157
223
|
|