@taskset/cli 6.0.0 → 6.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/CHANGELOG.md +14 -0
- package/README.md +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +184 -105
- package/docs/_meta.ts +4 -0
- package/docs/agent-closeout.md +69 -0
- package/docs/agents/_meta.ts +1 -0
- package/docs/agents/commands.md +27 -3
- package/docs/agents/index.md +22 -8
- package/docs/agents/llms.txt +9 -2
- package/docs/agents/query-recipes.md +76 -0
- package/docs/agents/workflows.md +16 -6
- package/docs/cli-reference.md +31 -12
- package/docs/configuration.md +21 -1
- package/docs/document-types.md +40 -14
- package/docs/getting-started.md +6 -1
- package/docs/index.md +8 -2
- package/docs/maintainers/product/vision.md +3 -1
- package/docs/memory-model.md +58 -0
- package/docs/security-compliance-tracking.md +107 -0
- package/docs/task-files.md +1 -1
- package/docs/taxonomy-cookbook.md +59 -0
- package/package.json +3 -3
- package/skills/taskset/SKILL.md +58 -39
- package/skills/taskset/references/document-modeling-examples.md +53 -2
- package/skills/taskset-implement/SKILL.md +9 -6
- package/skills/taskset-implement/references/architecture/product-and-source.md +12 -2
- package/skills/taskset-implement/references/architecture/storage-and-snapshots.md +5 -2
- package/src/cli.ts +145 -102
package/docs/agents/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Operate Taskset as an agent
|
|
3
|
-
description: Plan, research, decide, and track repository work with the Taskset CLI, skill, and JSON contracts.
|
|
3
|
+
description: Plan, research, decide, operate, and track repository work with the Taskset CLI, skill, and JSON contracts.
|
|
4
4
|
contentType: How-to
|
|
5
5
|
navLabel: For Agents
|
|
6
6
|
---
|
|
@@ -9,7 +9,7 @@ navLabel: For Agents
|
|
|
9
9
|
|
|
10
10
|
Use this page when you are an agent operating Taskset in a repository. Humans should start with [Getting started](../getting-started.md). Maintainer architecture lives under [Maintainer docs](../maintainers/index.md).
|
|
11
11
|
|
|
12
|
-
Taskset is not only a task tracker. You use it to capture plans, research, decisions, flows, runbooks, and the tasks that execute them in one Git-native graph.
|
|
12
|
+
Taskset is not only a task tracker. You use it to capture plans, research, decisions, flows, runbooks, lessons, concerns, audits, and the tasks that execute them in one Git-native graph.
|
|
13
13
|
|
|
14
14
|
## Load the skill first
|
|
15
15
|
|
|
@@ -51,18 +51,23 @@ No config file is required. `taskset init` creates `.taskset/` only. Pass `--con
|
|
|
51
51
|
| Evidence, options, or a recommendation | `research` |
|
|
52
52
|
| A lasting architectural or product choice | `decision` / `adr` |
|
|
53
53
|
| A repeatable recovery or ops procedure | `runbook` |
|
|
54
|
+
| A recurring mistake or correct pattern | `lesson` |
|
|
55
|
+
| An open residual risk | `concern` |
|
|
56
|
+
| A structured inventory or spot-check | `audit` |
|
|
54
57
|
| Scoped execution with status and owners | `task` |
|
|
58
|
+
| Multi-task program health | parent task + `taskset task program` |
|
|
55
59
|
|
|
56
|
-
Link documents and tasks with `--related`. Keep one-off scratch in the task body.
|
|
60
|
+
Link documents and tasks with `--related`. Keep one-off scratch in the task body. See [Memory model](../memory-model.md) for anti-examples.
|
|
57
61
|
|
|
58
62
|
## Core operating rules
|
|
59
63
|
|
|
60
64
|
- Treat `.taskset/tasks/` and kind-specific document directories as the source of truth
|
|
61
65
|
- Mutate through CLI commands when a command exists
|
|
62
|
-
-
|
|
66
|
+
- Use short hex ids such as `a1b2c3` in commands and `--related`. Filename sequence prefixes are display-only.
|
|
67
|
+
- Markdown hyperlinks to files must use repository-relative paths (for example [document types](../document-types.md)), not bare hex ids
|
|
63
68
|
- Prefer `--json` for handoffs
|
|
64
69
|
- Create follow-up tasks or checklist subtasks for newly discovered work
|
|
65
|
-
- Create research, decision, runbook, story, or
|
|
70
|
+
- Create research, decision, runbook, story, flow, lesson, concern, or audit documents when work produces reusable evidence, lasting choices, recurring patterns, or residual risks
|
|
66
71
|
- Keep statuses current mid-work
|
|
67
72
|
|
|
68
73
|
## Command map
|
|
@@ -73,27 +78,36 @@ Link documents and tasks with `--related`. Keep one-off scratch in the task body
|
|
|
73
78
|
| Validate repository | `taskset doctor --json` |
|
|
74
79
|
| List or search tasks | `taskset task list --search "terms" --json` |
|
|
75
80
|
| List or search documents | `taskset document list research --search "terms" --json` |
|
|
81
|
+
| Open concerns on a path | `taskset document list concern --directory apps/foo --status active --json` |
|
|
82
|
+
| Lessons by search | `taskset document list lesson --search "casl" --json` |
|
|
76
83
|
| Show one entity | `taskset task show your_task_id_here --json` |
|
|
77
84
|
| Create executable work | `taskset task create --title "Describe the work"` |
|
|
78
85
|
| Create durable memory | `taskset document create research --title "Evaluate options" --related your_task_id_here` |
|
|
86
|
+
| Create a lesson | `taskset document create lesson --title "…" --severity high --related your_task_id_here` |
|
|
87
|
+
| Create a concern | `taskset document create concern --title "…" --class authz --related your_task_id_here` |
|
|
88
|
+
| Program health | `taskset task program your_parent_task_id_here --json` |
|
|
79
89
|
| Change status | `taskset task status your_task_id_here doing` |
|
|
80
90
|
| Impact query | `taskset task list --file path/or/dir --impact --json` |
|
|
81
91
|
| Repair and rebuild | `taskset sync --json` |
|
|
82
92
|
|
|
83
|
-
Full contracts: [CLI reference](../cli-reference.md)
|
|
93
|
+
Full contracts: [CLI reference](../cli-reference.md), [Agent command contracts](commands.md), and [Query recipes](query-recipes.md).
|
|
84
94
|
|
|
85
95
|
## Workflow checklist
|
|
86
96
|
|
|
87
97
|
1. Confirm the repository root with `taskset config --json`
|
|
88
98
|
2. Search existing tasks and documents before creating duplicates
|
|
89
|
-
3. Capture durable evidence or
|
|
99
|
+
3. Capture durable evidence, decisions, lessons, or concerns as documents mid-work
|
|
90
100
|
4. Create or update tasks for executable delivery
|
|
91
101
|
5. Resolve ownership before mutating assigned work
|
|
92
|
-
6. Keep statuses current, then re-validate
|
|
102
|
+
6. Keep statuses current, then re-validate with `taskset doctor --json`
|
|
93
103
|
|
|
94
104
|
## Related pages
|
|
95
105
|
|
|
96
106
|
- [Agent workflows](workflows.md)
|
|
97
107
|
- [Agent command contracts](commands.md)
|
|
108
|
+
- [Query recipes](query-recipes.md)
|
|
109
|
+
- [Memory model](../memory-model.md)
|
|
110
|
+
- [Agent closeout](../agent-closeout.md)
|
|
111
|
+
- [Security tracking](../security-compliance-tracking.md)
|
|
98
112
|
- [Document types](../document-types.md)
|
|
99
113
|
- [Task files](../task-files.md)
|
package/docs/agents/llms.txt
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# Taskset
|
|
2
2
|
|
|
3
|
-
> Git-native Markdown workspace for planning, research, decisions, operations, and delivery.
|
|
3
|
+
> Git-native Markdown workspace for planning, research, decisions, operations, residual risk, and delivery.
|
|
4
4
|
|
|
5
|
-
Taskset stores stories, flows, research, decisions, runbooks, and tasks under `.taskset/`. The CLI is published as `@taskset/cli` and runs through package runners or a global install. Config files are optional.
|
|
5
|
+
Taskset stores stories, flows, research, decisions, runbooks, lessons, concerns, audits, and tasks under `.taskset/`. The CLI is published as `@taskset/cli` and runs through package runners or a global install. Config files are optional.
|
|
6
6
|
|
|
7
7
|
## For agents
|
|
8
8
|
|
|
9
9
|
- [Operate Taskset as an agent](https://taskset.false.foundation/docs/agents)
|
|
10
10
|
- [Follow agent workflows](https://taskset.false.foundation/docs/agents/workflows)
|
|
11
11
|
- [Use Taskset command contracts](https://taskset.false.foundation/docs/agents/commands)
|
|
12
|
+
- [Query operational memory](https://taskset.false.foundation/docs/agents/query-recipes)
|
|
12
13
|
- [Choose a document type](https://taskset.false.foundation/docs/document-types)
|
|
14
|
+
- [Choose memory layers](https://taskset.false.foundation/docs/memory-model)
|
|
15
|
+
- [Agent closeout contract](https://taskset.false.foundation/docs/agent-closeout)
|
|
16
|
+
- [Security and compliance tracking](https://taskset.false.foundation/docs/security-compliance-tracking)
|
|
13
17
|
- [Understand task files](https://taskset.false.foundation/docs/task-files)
|
|
14
18
|
- [CLI reference](https://taskset.false.foundation/docs/cli-reference)
|
|
15
19
|
|
|
@@ -18,6 +22,7 @@ Taskset stores stories, flows, research, decisions, runbooks, and tasks under `.
|
|
|
18
22
|
- [Keep the whole delivery story beside the code](https://taskset.false.foundation/docs)
|
|
19
23
|
- [Start a Taskset repository](https://taskset.false.foundation/docs/getting-started)
|
|
20
24
|
- [Configure Taskset defaults](https://taskset.false.foundation/docs/configuration)
|
|
25
|
+
- [Taxonomy cookbook](https://taskset.false.foundation/docs/taxonomy-cookbook)
|
|
21
26
|
|
|
22
27
|
## Optional offline skill
|
|
23
28
|
|
|
@@ -26,3 +31,5 @@ After install, load `node_modules/@taskset/cli/skills/taskset/SKILL.md`, or inst
|
|
|
26
31
|
```text
|
|
27
32
|
npx skills add FalseFoundation/taskset --skill taskset
|
|
28
33
|
```
|
|
34
|
+
|
|
35
|
+
Offline docs also ship at `node_modules/@taskset/cli/docs/`. Prefer repository-relative `.md` filepaths for Markdown hyperlinks; use short hex entity ids only in CLI commands and `--related`.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Query operational memory
|
|
3
|
+
description: Copy-paste --json recipes for program blockers and open security concerns.
|
|
4
|
+
contentType: Reference
|
|
5
|
+
navLabel: Query Recipes
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Query operational memory
|
|
9
|
+
|
|
10
|
+
Prefer `--json` for agent handoffs. Use short hex IDs in commands and
|
|
11
|
+
`--related`. Filename sequence prefixes are display-only. Markdown hyperlinks
|
|
12
|
+
to files must use repository-relative paths (see [commands](commands.md)).
|
|
13
|
+
|
|
14
|
+
## Open concerns on a path
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
taskset document list concern --directory apps/foo --status active --json
|
|
18
|
+
taskset document list concern --label security --status active --json
|
|
19
|
+
taskset document list concern --class authz --status active --json
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Lessons by search or severity
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
taskset document list lesson --search "casl capability" --json
|
|
26
|
+
taskset document list lesson --severity high --json
|
|
27
|
+
taskset document show <lesson-id> --type lesson --json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Audits and research
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
taskset document list audit --status ready --json
|
|
34
|
+
taskset document list research --status ready --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Program health
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
taskset task program <parent-id> --json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Useful fields:
|
|
44
|
+
|
|
45
|
+
- `children.byStatus` / `children.openIds`
|
|
46
|
+
- `blockedDependencies`
|
|
47
|
+
- `relatedOpenConcerns`
|
|
48
|
+
- `relatedResearchNotAccepted`
|
|
49
|
+
- `checklist`
|
|
50
|
+
- `closeoutReady`
|
|
51
|
+
|
|
52
|
+
## Closeout gaps
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
taskset doctor --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Interpret:
|
|
59
|
+
|
|
60
|
+
| Code | Meaning |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| `missing-template-heading` | lesson/concern/audit body missing required `##` section |
|
|
63
|
+
| `missing-reference` | related/dependsOn target ID does not exist |
|
|
64
|
+
| `unknown-taxonomy` | label/project/class outside allowlist |
|
|
65
|
+
| `closeout-gap` | done task labeled for lesson without a related lesson |
|
|
66
|
+
| `missing-owner` | active concern without owner (when configured) |
|
|
67
|
+
| `stale-research` | ready research older than N days without follow-up task |
|
|
68
|
+
|
|
69
|
+
## Create trail in one change
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
taskset document create concern --title "Telegram capability must not grant CASL" --class authz --related <task-id> --json
|
|
73
|
+
taskset document create lesson --title "Capability flags are enablement only" --severity high --related <concern-or-task-id> --json
|
|
74
|
+
taskset task program <parent-id> --json
|
|
75
|
+
taskset doctor --json
|
|
76
|
+
```
|
package/docs/agents/workflows.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Follow agent workflows in Taskset
|
|
3
|
-
description: Ownership checks, mid-work updates,
|
|
3
|
+
description: Ownership checks, mid-work updates, operational memory, and monorepo habits for agent operators.
|
|
4
4
|
contentType: How-to
|
|
5
5
|
navLabel: Agent Workflows
|
|
6
6
|
---
|
|
@@ -25,9 +25,11 @@ Matching ownership does not override blockers. A generic instruction such as “
|
|
|
25
25
|
- Create child tasks (`--parent`) or checklist items (`- [ ]`) for newly discovered work
|
|
26
26
|
- Check off finished checklist items as `- [x]`
|
|
27
27
|
- Mark finished child tasks `done`
|
|
28
|
-
- Create research, decision, runbook, story, or
|
|
29
|
-
- Link documents and tasks with `--related`
|
|
30
|
-
-
|
|
28
|
+
- Create research, decision, runbook, story, flow, lesson, concern, or audit documents when evidence, lasting choices, recurring patterns, or residual risks appear
|
|
29
|
+
- Link documents and tasks with `--related` (short hex ids in CLI flags)
|
|
30
|
+
- When linking to those files in Markdown prose, use the repository-relative filepath
|
|
31
|
+
- Update a primary skill when the session designates one and a lasting lesson emerges; if a lesson uses `--related-skill`, update those skill paths in the same change
|
|
32
|
+
- For multi-task programs, inspect health with `taskset task program <parent-id> --json`
|
|
31
33
|
|
|
32
34
|
Do not leave discovered work only in chat.
|
|
33
35
|
|
|
@@ -35,8 +37,11 @@ Do not leave discovered work only in chat.
|
|
|
35
37
|
|
|
36
38
|
1. Confirm acceptance criteria are met
|
|
37
39
|
2. Confirm every tracked subtask is finished or intentionally resolved
|
|
38
|
-
3.
|
|
39
|
-
4.
|
|
40
|
+
3. Confirm related lessons/concerns/audits exist when the work produced them
|
|
41
|
+
4. Set the parent task to `done` only after children and checklists are complete
|
|
42
|
+
5. Run `taskset doctor --json` when the change touched contracts, taxonomy, or many files
|
|
43
|
+
|
|
44
|
+
See [Agent closeout](../agent-closeout.md) for the full contract and optional config gates.
|
|
40
45
|
|
|
41
46
|
## Monorepo habits
|
|
42
47
|
|
|
@@ -44,7 +49,12 @@ Do not leave discovered work only in chat.
|
|
|
44
49
|
- Record `--depends-on` only for real execution prerequisites
|
|
45
50
|
- Attach the narrowest accurate `--file` or `--directory` scopes
|
|
46
51
|
- Validate the changed package and affected dependents
|
|
52
|
+
- Reuse taxonomy labels and projects; do not invent one-off tags when allowlists exist
|
|
47
53
|
|
|
48
54
|
## Batch and sync
|
|
49
55
|
|
|
50
56
|
Use `taskset document batch manifest.json --json` for multi-document jobs. Use `taskset sync --json` after upgrades or when filenames, ids, or generated views need repair.
|
|
57
|
+
|
|
58
|
+
## Discovery recipes
|
|
59
|
+
|
|
60
|
+
Copy-paste JSON recipes for open concerns, lessons, and program blockers live in [Query recipes](query-recipes.md).
|
package/docs/cli-reference.md
CHANGED
|
@@ -7,7 +7,7 @@ navLabel: CLI Reference
|
|
|
7
7
|
|
|
8
8
|
# Look up Taskset CLI commands
|
|
9
9
|
|
|
10
|
-
The `taskset` command is a thin adapter over `@taskset/core` for the full Taskset surface: stories, flows, research, decisions, runbooks, and tasks. It parses arguments, validates options, calls core operations, and renders human or JSON output.
|
|
10
|
+
The `taskset` command is a thin adapter over `@taskset/core` for the full Taskset surface: stories, flows, research, decisions, runbooks, lessons, concerns, audits, and tasks. It parses arguments, validates options, calls core operations, and renders human or JSON output.
|
|
11
11
|
|
|
12
12
|
Invoke it with `npx @taskset/cli`, `pnpm dlx @taskset/cli`, `yarn dlx @taskset/cli`, `bunx @taskset/cli`, a project binary, or a global install. Examples below use `taskset` directly.
|
|
13
13
|
|
|
@@ -82,13 +82,14 @@ Human output is the config file path when a config exists, or `defaults (<root-d
|
|
|
82
82
|
taskset doctor [--json] [--cwd <path>]
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
Validates the repository without modifying files. It scans canonical task
|
|
86
|
-
metadata, paths,
|
|
85
|
+
Validates the repository without modifying files. It scans canonical task and
|
|
86
|
+
document metadata, paths, graph relationships, required template headings for
|
|
87
|
+
operational kinds, taxonomy allowlists, and optional closeout gaps.
|
|
87
88
|
|
|
88
89
|
Human success output:
|
|
89
90
|
|
|
90
91
|
```text
|
|
91
|
-
Taskset repository is valid (<count> tasks)
|
|
92
|
+
Taskset repository is valid (<count> tasks, <count> documents)
|
|
92
93
|
```
|
|
93
94
|
|
|
94
95
|
Human failure output is tab-separated:
|
|
@@ -97,8 +98,8 @@ Human failure output is tab-separated:
|
|
|
97
98
|
<code> <path-or-> <message> <remediation>
|
|
98
99
|
```
|
|
99
100
|
|
|
100
|
-
JSON output is the full doctor result, including `valid`, `taskCount`,
|
|
101
|
-
diagnostics.
|
|
101
|
+
JSON output is the full doctor result, including `valid`, `taskCount`,
|
|
102
|
+
`documentCount`, and diagnostics. Warnings do not fail the command; errors do.
|
|
102
103
|
|
|
103
104
|
### `generate`
|
|
104
105
|
|
|
@@ -375,6 +376,19 @@ remove those inbound references and delete the target in one mutation.
|
|
|
375
376
|
Human output is the deleted task ID. JSON output contains `deleted: true`
|
|
376
377
|
alongside the deleted task record.
|
|
377
378
|
|
|
379
|
+
### `task program`
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
taskset task program <parent-id> [--json] [--cwd <path>]
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Summarizes a parent task as a program rollup: child counts by status, open child
|
|
386
|
+
IDs, blocked dependency edges, related open concerns, related research not yet
|
|
387
|
+
accepted, parent checklist completion, and `closeoutReady`.
|
|
388
|
+
|
|
389
|
+
Human output is one tab-separated summary line. JSON output is the full rollup
|
|
390
|
+
object.
|
|
391
|
+
|
|
378
392
|
### `task migrate-ids`
|
|
379
393
|
|
|
380
394
|
```bash
|
|
@@ -403,7 +417,8 @@ sent to stderr.
|
|
|
403
417
|
## Document Commands
|
|
404
418
|
|
|
405
419
|
`document` may be shortened to `doc`. Supported types are `story`, `flow`,
|
|
406
|
-
`decision`, `research`,
|
|
420
|
+
`decision`, `research`, `runbook`, `lesson`, `concern`, and `audit`. Aliases:
|
|
421
|
+
`adr` / `dr` → `decision`; `antipattern` → `lesson`.
|
|
407
422
|
|
|
408
423
|
```bash
|
|
409
424
|
taskset document create <type> --title <title> [metadata options]
|
|
@@ -417,15 +432,19 @@ taskset document delete <document-id> [--type <type>] [--remove-dependencies] [-
|
|
|
417
432
|
```
|
|
418
433
|
|
|
419
434
|
Create uses the type-specific template unless `--body` is supplied and accepts
|
|
420
|
-
the same metadata options as `task create
|
|
421
|
-
|
|
422
|
-
|
|
435
|
+
the same metadata options as `task create`, plus lesson/concern options:
|
|
436
|
+
`--severity`, repeatable `--related-skill`, repeatable `--pack`, `--class`, and
|
|
437
|
+
`--cadence`. Lesson/concern/audit templates are validated for required headings.
|
|
438
|
+
Import preserves the Markdown body and infers type from a recognized parent
|
|
439
|
+
directory when possible (`lessons/`, `concerns/`, `audits/` included). It copies
|
|
440
|
+
by default; `--move` deletes the source only after the canonical document is
|
|
423
441
|
written successfully.
|
|
424
442
|
|
|
425
443
|
List, show, update, status, and delete mirror the task commands, including
|
|
426
444
|
search, filters, sort, impact, derived relationships, clear flags, and
|
|
427
|
-
guarded deletion. Document
|
|
428
|
-
`superseded`, and
|
|
445
|
+
guarded deletion. Document list also accepts `--class` and `--severity`. Document
|
|
446
|
+
statuses are `draft`, `ready`, `active`, `accepted`, `superseded`, and
|
|
447
|
+
`archived`.
|
|
429
448
|
|
|
430
449
|
Batch manifests contain an array of `create`, `import`, `update`, and `export`
|
|
431
450
|
operations. Work is paced with bounded concurrency, results preserve manifest
|
package/docs/configuration.md
CHANGED
|
@@ -16,6 +16,9 @@ Add `taskset.config.ts` when you need at least one of these:
|
|
|
16
16
|
- A repository `project.name`
|
|
17
17
|
- Different task creation defaults
|
|
18
18
|
- A reduced or reordered status or priority vocabulary
|
|
19
|
+
- Closeout gates for parent/child completion, open concerns, or required lessons
|
|
20
|
+
- Taxonomy allowlists for labels, projects, or concern classes
|
|
21
|
+
- Extra doctor checks for ownerless concerns or stale research
|
|
19
22
|
|
|
20
23
|
Create one during init:
|
|
21
24
|
|
|
@@ -41,6 +44,19 @@ export default defineConfig({
|
|
|
41
44
|
statuses: ['todo', 'doing', 'blocked', 'done', 'canceled'],
|
|
42
45
|
priorities: ['low', 'medium', 'high', 'urgent'],
|
|
43
46
|
},
|
|
47
|
+
closeout: {
|
|
48
|
+
enforceChildCompletion: false,
|
|
49
|
+
blockDoneWithOpenConcerns: false,
|
|
50
|
+
requireLessonWhenLabeled: [],
|
|
51
|
+
},
|
|
52
|
+
taxonomy: {
|
|
53
|
+
// omit allowlists for permissive behavior
|
|
54
|
+
mode: 'error',
|
|
55
|
+
},
|
|
56
|
+
doctor: {
|
|
57
|
+
activeConcernRequiresOwner: false,
|
|
58
|
+
// staleResearchDays: 14,
|
|
59
|
+
},
|
|
44
60
|
})
|
|
45
61
|
```
|
|
46
62
|
|
|
@@ -51,10 +67,14 @@ export default defineConfig({
|
|
|
51
67
|
- `tasks.statuses` selects and orders the active status vocabulary from Taskset’s canonical values
|
|
52
68
|
- `tasks.priorities` selects and orders the active priority vocabulary from Taskset’s canonical values
|
|
53
69
|
- `urgent` is the highest supported priority
|
|
70
|
+
- `closeout.*` defaults to off / empty so existing repositories keep current done transitions
|
|
71
|
+
- `taxonomy.labels`, `projects`, and `concernClasses` are optional allowlists; omit them to stay permissive
|
|
72
|
+
- `taxonomy.mode` is `error` or `warn` when an allowlist is configured
|
|
73
|
+
- `doctor.activeConcernRequiresOwner` and `doctor.staleResearchDays` add optional diagnostics
|
|
54
74
|
- Unknown fields, invalid enum values, empty names, and duplicate default labels or vocabulary values are rejected
|
|
55
75
|
- The config file is trusted project TypeScript and may use erasable syntax supported by your Node version
|
|
56
76
|
|
|
57
|
-
The config identifies behavior. It is not task storage. Canonical task state remains under `.taskset
|
|
77
|
+
The config identifies behavior. It is not task storage. Canonical task and document state remains under `.taskset/`.
|
|
58
78
|
|
|
59
79
|
## Discovery
|
|
60
80
|
|
package/docs/document-types.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Choose a Taskset document type
|
|
3
|
-
description: Canonical stories, flows, decisions, research, and
|
|
3
|
+
description: Canonical stories, flows, decisions, research, runbooks, lessons, concerns, and audits.
|
|
4
4
|
contentType: Conceptual
|
|
5
5
|
navLabel: Document Types
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Choose a Taskset document type
|
|
9
9
|
|
|
10
|
-
Documents are how Taskset keeps product and
|
|
10
|
+
Documents are how Taskset keeps product, engineering, and operational memory: what to build, what you learned, what you decided, how to recover, which mistakes not to repeat, and which residual risks remain open. Use them when the material should outlive a single task. Each type has strict common frontmatter and a body template suited to its purpose. Documents share planning, people, path, and relationship fields with tasks, and use document-specific statuses.
|
|
11
11
|
|
|
12
12
|
| Type | Directory | Template focus |
|
|
13
13
|
| --- | --- | --- |
|
|
@@ -16,6 +16,9 @@ Documents are how Taskset keeps product and engineering memory: what to build, w
|
|
|
16
16
|
| `decision` (`adr`, `dr`) | `.taskset/decisions/` | context, decision, alternatives, consequences |
|
|
17
17
|
| `research` | `.taskset/research/` | question, sources, findings, recommendation |
|
|
18
18
|
| `runbook` | `.taskset/runbooks/` | symptoms, checks, actions, rollback, escalation |
|
|
19
|
+
| `lesson` (`antipattern`) | `.taskset/lessons/` | trigger, incorrect/correct pattern, severity, prevention |
|
|
20
|
+
| `concern` | `.taskset/concerns/` | summary, class, trust boundary, residual risk, cadence |
|
|
21
|
+
| `audit` | `.taskset/audits/` | scope, method, findings, residual items, follow-ups |
|
|
19
22
|
|
|
20
23
|
Create a document from its template:
|
|
21
24
|
|
|
@@ -23,15 +26,33 @@ Create a document from its template:
|
|
|
23
26
|
taskset document create story --title "Member signs in via SSO"
|
|
24
27
|
taskset document create flow --title "Recover a delayed deposit"
|
|
25
28
|
taskset document create adr --title "Use transactional outbox"
|
|
26
|
-
taskset document create research --title "Evaluate
|
|
29
|
+
taskset document create research --title "Evaluate cloud providers" --related your_task_id_here
|
|
27
30
|
taskset document create runbook --title "Recover consumer lag"
|
|
31
|
+
taskset document create lesson --title "Capability flags are enablement only" --severity high --related your_task_id_here
|
|
32
|
+
taskset document create concern --title "Telegram capability must not grant CASL" --class authz --cadence on-release
|
|
33
|
+
taskset document create audit --title "Public route inventory"
|
|
28
34
|
```
|
|
29
35
|
|
|
30
36
|
Document IDs are immutable 5-6 character lowercase hex values. Filenames keep a
|
|
31
37
|
per-type display sequence and title slug, for example
|
|
32
38
|
`.taskset/flows/0000001-member-signs-in-via-sso-a1b2c3.md`. Agents and commands
|
|
33
|
-
|
|
34
|
-
the
|
|
39
|
+
use the short `id` in CLI flags and frontmatter relationships. The sequence
|
|
40
|
+
prefix is display metadata only. Markdown hyperlinks to the file must use the
|
|
41
|
+
repository-relative filepath. Disposable metadata indexes for that kind live
|
|
42
|
+
beside the files in `.taskset/flows/.generated/`.
|
|
43
|
+
|
|
44
|
+
Default statuses: `decision` → `accepted`; `runbook`, `lesson`, and `concern` →
|
|
45
|
+
`active`; other kinds → `draft`.
|
|
46
|
+
|
|
47
|
+
## Kind-specific metadata
|
|
48
|
+
|
|
49
|
+
| Kind | Options |
|
|
50
|
+
| --- | --- |
|
|
51
|
+
| `lesson` | `--severity low\|medium\|high\|critical`, repeatable `--related-skill`, repeatable `--pack` |
|
|
52
|
+
| `concern` | `--class security\|privacy\|money\|authz\|concurrency\|ops\|compliance\|other`, `--cadence <value>` |
|
|
53
|
+
|
|
54
|
+
Clear lesson/concern scalars and arrays on update with `--clear-severity`,
|
|
55
|
+
`--clear-related-skills`, `--clear-packs`, `--clear-class`, and `--clear-cadence`.
|
|
35
56
|
|
|
36
57
|
## Query And Mutation
|
|
37
58
|
|
|
@@ -39,6 +60,8 @@ Documents support the same command surface as tasks:
|
|
|
39
60
|
|
|
40
61
|
```bash
|
|
41
62
|
taskset document list research --search "queue" --owner platform --impact
|
|
63
|
+
taskset document list concern --directory apps/foo --status active --class authz --json
|
|
64
|
+
taskset document list lesson --search "casl" --severity high --json
|
|
42
65
|
taskset document show <document-id> --type research --include-derived --json
|
|
43
66
|
taskset document update <document-id> --status ready --label infra --file packages/core
|
|
44
67
|
taskset document status <document-id> accepted --type decision
|
|
@@ -52,21 +75,23 @@ Statuses are `draft`, `ready`, `active`, `accepted`, `superseded`, and
|
|
|
52
75
|
## Import Existing Markdown
|
|
53
76
|
|
|
54
77
|
Use `document import` when a repository already has material under paths such
|
|
55
|
-
as `docs/stories`, `docs/flows`, `docs/adr`, `docs/research`,
|
|
56
|
-
`docs/
|
|
78
|
+
as `docs/stories`, `docs/flows`, `docs/adr`, `docs/research`, `docs/runbooks`,
|
|
79
|
+
`docs/lessons`, `docs/concerns`, or `docs/audits`:
|
|
57
80
|
|
|
58
81
|
```bash
|
|
59
82
|
taskset document import docs/flows/0001-sign-in.md
|
|
60
83
|
taskset document import docs/architecture/use-postgres.md --type decision
|
|
84
|
+
taskset document import docs/lessons/capability.md --move
|
|
61
85
|
taskset document import docs/runbooks/consumer-lag.md --move
|
|
62
86
|
```
|
|
63
87
|
|
|
64
88
|
The type is inferred from recognized parent directory names when `--type` is
|
|
65
89
|
omitted. `adr`, `dr`, `decision`, and `decisions` all normalize to `decision`.
|
|
66
|
-
The first H1 supplies the title
|
|
67
|
-
frontmatter is replaced with Taskset's
|
|
68
|
-
body is preserved. Import copies by
|
|
69
|
-
after the canonical file has been
|
|
90
|
+
`antipattern` / `lessons` normalize to `lesson`. The first H1 supplies the title
|
|
91
|
+
unless `--title` is passed. Existing frontmatter is replaced with Taskset's
|
|
92
|
+
canonical metadata while the Markdown body is preserved. Import copies by
|
|
93
|
+
default; `--move` removes the source only after the canonical file has been
|
|
94
|
+
written successfully.
|
|
70
95
|
|
|
71
96
|
Use `document list [type]`, `document show <id>`, and `--json` for inspection
|
|
72
97
|
and automation. Sequences are per type, so pass `--type` to `document show`
|
|
@@ -98,6 +123,7 @@ migrates legacy task and document IDs to short hex IDs, normalizes
|
|
|
98
123
|
`{sequence}-{slug}-{id}.md` filenames, repairs duplicate sequence prefixes by
|
|
99
124
|
`createdAt`, rewrites repository text references, refreshes data `.gitignore`
|
|
100
125
|
rules for scoped `.generated/` directories, removes legacy global
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
126
|
+
generated directories, and rebuilds disposable views.
|
|
127
|
+
|
|
128
|
+
For the chooser between task bodies and document kinds, see
|
|
129
|
+
[Memory model](memory-model.md).
|
package/docs/getting-started.md
CHANGED
|
@@ -74,7 +74,10 @@ taskset task list
|
|
|
74
74
|
taskset document list --json
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
You can read every file directly in the editor without the CLI.
|
|
77
|
+
You can read every file directly in the editor without the CLI. Use short hex
|
|
78
|
+
`id` values in commands and `--related`. Filename sequence prefixes are display
|
|
79
|
+
metadata only. Markdown hyperlinks to entity or docs files must use the
|
|
80
|
+
repository-relative filepath (for example [document types](document-types.md)).
|
|
78
81
|
|
|
79
82
|
## Query and validate the graph
|
|
80
83
|
|
|
@@ -100,7 +103,9 @@ Completed and canceled tasks are terminal. Deletion fails while another task dep
|
|
|
100
103
|
## Next
|
|
101
104
|
|
|
102
105
|
- [Choose a document type](document-types.md)
|
|
106
|
+
- [Choose memory layers](memory-model.md)
|
|
103
107
|
- [Understand task files](task-files.md)
|
|
104
108
|
- [Configure defaults](configuration.md)
|
|
105
109
|
- [Use the complete CLI reference](cli-reference.md)
|
|
106
110
|
- [Follow the agent guide](agents/index.md)
|
|
111
|
+
- [Query recipes for agents](agents/query-recipes.md)
|
package/docs/index.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Keep the whole delivery story beside the code
|
|
3
|
-
description: Taskset stores plans, research, decisions, runbooks, and tasks as Markdown in your repository for agents and humans.
|
|
3
|
+
description: Taskset stores plans, research, decisions, runbooks, lessons, concerns, audits, and tasks as Markdown in your repository for agents and humans.
|
|
4
4
|
contentType: Landing
|
|
5
5
|
navLabel: Overview
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Keep the whole delivery story beside the code
|
|
9
9
|
|
|
10
|
-
Taskset is a local-first delivery workspace. You keep stories, research, decisions, flows, runbooks, and executable tasks as Markdown under `.taskset/`, so agents and humans share one reviewable source of truth.
|
|
10
|
+
Taskset is a local-first delivery workspace. You keep stories, research, decisions, flows, runbooks, lessons, concerns, audits, and executable tasks as Markdown under `.taskset/`, so agents and humans share one reviewable source of truth.
|
|
11
11
|
|
|
12
12
|
Install the CLI as `@taskset/cli` from npm. Run it with `npx`, `pnpm dlx`, `yarn dlx`, `bunx`, a project dependency, or a global install.
|
|
13
13
|
|
|
@@ -17,6 +17,7 @@ Install the CLI as `@taskset/cli` from npm. Run it with `npx`, `pnpm dlx`, `yarn
|
|
|
17
17
|
- **Learn**: research that captures evidence and recommendations
|
|
18
18
|
- **Decide**: decisions and ADRs that lock lasting choices
|
|
19
19
|
- **Operate**: runbooks that make recovery safe to repeat
|
|
20
|
+
- **Remember**: lessons, concerns, and audits for recurring patterns and residual risk
|
|
20
21
|
- **Deliver**: tasks that carry ownership, status, dependencies, and code impact
|
|
21
22
|
|
|
22
23
|
Documents preserve memory. Tasks move work. Relationships keep the graph honest.
|
|
@@ -37,7 +38,12 @@ The CLI initializes repositories, manages optional configuration, creates and qu
|
|
|
37
38
|
|
|
38
39
|
- [Start a Taskset repository](getting-started.md)
|
|
39
40
|
- [Choose a document type](document-types.md)
|
|
41
|
+
- [Choose memory layers](memory-model.md)
|
|
42
|
+
- [Track security and compliance](security-compliance-tracking.md)
|
|
43
|
+
- [Follow the agent closeout contract](agent-closeout.md)
|
|
44
|
+
- [Control taxonomy](taxonomy-cookbook.md)
|
|
40
45
|
- [Understand task files](task-files.md)
|
|
41
46
|
- [Configure defaults when you need them](configuration.md)
|
|
42
47
|
- [Look up every CLI command](cli-reference.md)
|
|
43
48
|
- [Read agent workflows and contracts](agents/index.md)
|
|
49
|
+
- [Copy-paste agent query recipes](agents/query-recipes.md)
|
|
@@ -61,7 +61,9 @@ The current surface includes:
|
|
|
61
61
|
|
|
62
62
|
- repository initialization and optional configuration
|
|
63
63
|
- tasks with lifecycle, dependencies, search, and impact queries
|
|
64
|
-
- stories, flows, decisions, research,
|
|
64
|
+
- stories, flows, decisions, research, runbooks, lessons, concerns, and audits
|
|
65
|
+
with the same query and mutation family, plus program rollups and optional
|
|
66
|
+
closeout gates
|
|
65
67
|
- validation, diagnostics, generated views, snapshots, and sync
|
|
66
68
|
- packaged agent skills and dual-audience documentation
|
|
67
69
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Choose Taskset memory layers
|
|
3
|
+
description: When to use task bodies versus research, decisions, runbooks, lessons, and concerns.
|
|
4
|
+
contentType: Conceptual
|
|
5
|
+
navLabel: Memory Model
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Choose Taskset memory layers
|
|
9
|
+
|
|
10
|
+
Taskset keeps three memory layers in one `.taskset/` store:
|
|
11
|
+
|
|
12
|
+
| Layer | Kinds | Question it answers |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| Delivery | tasks (+ checklist subtasks) | What work is open, blocked, or done? |
|
|
15
|
+
| Decision | research, decision/adr, runbook, story, flow | What did we learn, choose, or need to operate? |
|
|
16
|
+
| Operational | lesson, concern, audit | What recurring mistakes, open risks, and spot-checks must future agents respect? |
|
|
17
|
+
|
|
18
|
+
Do not invent freeform kinds such as `note`, `rfc`, `epic`, or `spec`. Map those intents onto the kinds above.
|
|
19
|
+
|
|
20
|
+
## Quick chooser
|
|
21
|
+
|
|
22
|
+
| Situation | Put it here |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| One-off execution steps for the current outcome | Task body checklist |
|
|
25
|
+
| Independently owned or sequenced deliverable | Child task (`--parent`) |
|
|
26
|
+
| Options, evidence, recommendation still forming | `research` |
|
|
27
|
+
| Lasting architectural or product choice | `decision` / `adr` |
|
|
28
|
+
| Repeatable recovery or ops procedure | `runbook` |
|
|
29
|
+
| User outcome / journey context | `story` / `flow` |
|
|
30
|
+
| Recurring mistake or correct pattern future agents must not rediscover | `lesson` (`antipattern` alias) |
|
|
31
|
+
| Open residual risk (security, authz, money, ops, …) | `concern` |
|
|
32
|
+
| Structured inventory or spot-check pass/fail evidence | `audit` |
|
|
33
|
+
|
|
34
|
+
## Anti-examples
|
|
35
|
+
|
|
36
|
+
Bad: close a security task with the lesson only in chat or the finished task body.
|
|
37
|
+
|
|
38
|
+
Good: create a `lesson`, `--related` the task (and concern if any), and if `--related-skill` is set, update that skill in the same change.
|
|
39
|
+
|
|
40
|
+
Bad: track “remaining authz risk” as an unfinished checklist item forever.
|
|
41
|
+
|
|
42
|
+
Good: create a `concern` with class, trust boundary, residual risk, and review cadence; keep it `active` until mitigated or formally `accepted`.
|
|
43
|
+
|
|
44
|
+
Bad: dump an ADR program into one epic-shaped Markdown note.
|
|
45
|
+
|
|
46
|
+
Good: use a parent task as the program root, child tasks for workstreams, related `concern` / `research` / `audit` documents for residual risk and evidence, and `taskset task program <parent-id> --json` for rollup.
|
|
47
|
+
|
|
48
|
+
Bad: edit a consumer primary skill automatically from Taskset.
|
|
49
|
+
|
|
50
|
+
Good: store the lesson in Taskset; update the skill only when the consumer opts in via `--related-skill` (or an explicit later promote helper). Taskset never auto-edits skills by default.
|
|
51
|
+
|
|
52
|
+
## Related docs
|
|
53
|
+
|
|
54
|
+
- [Document types](document-types.md)
|
|
55
|
+
- [Security and compliance tracking](security-compliance-tracking.md)
|
|
56
|
+
- [Agent closeout contract](agent-closeout.md)
|
|
57
|
+
- [Taxonomy cookbook](taxonomy-cookbook.md)
|
|
58
|
+
- [Query recipes for agents](agents/query-recipes.md)
|