@taskset/cli 5.1.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 +30 -0
- package/README.md +21 -22
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +212 -113
- package/docs/_meta.ts +5 -0
- package/docs/agent-closeout.md +69 -0
- package/docs/agents/_meta.ts +6 -0
- package/docs/agents/commands.md +94 -0
- package/docs/agents/index.md +113 -0
- package/docs/agents/llms.txt +35 -0
- package/docs/agents/query-recipes.md +76 -0
- package/docs/agents/workflows.md +60 -0
- package/docs/cli-reference.md +53 -34
- package/docs/configuration.md +53 -31
- package/docs/document-types.md +53 -24
- package/docs/getting-started.md +61 -49
- package/docs/index.md +37 -25
- package/docs/maintainers/architecture/decisions/0001-documentation-platform.md +21 -47
- package/docs/maintainers/development/contributing.md +2 -3
- package/docs/maintainers/development/documentation.md +32 -49
- package/docs/maintainers/index.md +1 -3
- package/docs/maintainers/product/vision.md +27 -33
- package/docs/memory-model.md +58 -0
- package/docs/security-compliance-tracking.md +107 -0
- package/docs/task-files.md +19 -13
- package/docs/taxonomy-cookbook.md +59 -0
- package/package.json +4 -4
- package/skills/taskset/SKILL.md +89 -57
- package/skills/taskset/references/document-modeling-examples.md +53 -2
- package/skills/taskset-implement/SKILL.md +26 -17
- package/skills/taskset-implement/references/architecture/documentation-and-generated.md +3 -1
- package/skills/taskset-implement/references/architecture/ownership-and-dependencies.md +2 -1
- package/skills/taskset-implement/references/architecture/product-and-source.md +22 -11
- package/skills/taskset-implement/references/architecture/storage-and-snapshots.md +5 -2
- package/skills/taskset-implement/references/conventions/naming-and-packages.md +1 -1
- package/skills/taskset-implement/references/conventions/task-files.md +9 -4
- package/skills/taskset-implement/references/workflows/environment-and-pnpm.md +4 -3
- package/src/cli.ts +174 -112
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Follow the agent closeout contract
|
|
3
|
+
description: Subtasks done, related docs created, taxonomy valid, optional lesson and skill promotion.
|
|
4
|
+
contentType: How-to
|
|
5
|
+
navLabel: Agent Closeout
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Follow the agent closeout contract
|
|
9
|
+
|
|
10
|
+
Before marking a Taskset task `done`, agents must leave the repository in a state another agent can trust.
|
|
11
|
+
|
|
12
|
+
## Required
|
|
13
|
+
|
|
14
|
+
1. Every checklist item for the outcome is checked (`- [x]`), or intentionally removed with rationale.
|
|
15
|
+
2. Every child task is `done` or `canceled` (not left `todo` / `doing` / `blocked`).
|
|
16
|
+
3. Durable outputs exist as documents when the work produced them:
|
|
17
|
+
- evidence → `research`
|
|
18
|
+
- lasting choice → `decision` / `adr`
|
|
19
|
+
- procedure → `runbook`
|
|
20
|
+
- product context → `story` / `flow`
|
|
21
|
+
- recurring mistake → `lesson`
|
|
22
|
+
- residual risk → `concern`
|
|
23
|
+
- inventory / spot-check → `audit`
|
|
24
|
+
4. Documents and tasks are linked with `--related` (short hex IDs in CLI flags).
|
|
25
|
+
5. Markdown prose that points at those files uses repository-relative filepaths, not bare hex ids.
|
|
26
|
+
6. Labels and projects reuse repository taxonomy; do not invent one-off tags when an allowlist exists.
|
|
27
|
+
7. `taskset doctor --json` reports no errors for the paths you touched.
|
|
28
|
+
|
|
29
|
+
## Optional config gates
|
|
30
|
+
|
|
31
|
+
When enabled in `taskset.config.ts`, core blocks `done` transitions that violate:
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
closeout: {
|
|
35
|
+
enforceChildCompletion: true,
|
|
36
|
+
blockDoneWithOpenConcerns: true,
|
|
37
|
+
requireLessonWhenLabeled: ['requires-lesson'],
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Defaults are off so existing repositories keep current behavior.
|
|
42
|
+
|
|
43
|
+
## Skill promotion bridge
|
|
44
|
+
|
|
45
|
+
Lessons may declare skill targets:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
taskset document create lesson \
|
|
49
|
+
--title "…" \
|
|
50
|
+
--related-skill .agents/skills/foo/SKILL.md \
|
|
51
|
+
--related <task-id>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Contract:
|
|
55
|
+
|
|
56
|
+
- Taskset stores the lesson evidence and correct pattern.
|
|
57
|
+
- The consumer primary skill stores lasting how-to.
|
|
58
|
+
- Agents update the skill in the same change when `--related-skill` is present.
|
|
59
|
+
- Taskset does not auto-edit skills unless a future promote helper is explicitly applied with config opt-in.
|
|
60
|
+
|
|
61
|
+
## Program closeout
|
|
62
|
+
|
|
63
|
+
For multi-task programs:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
taskset task program <parent-id> --json
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Treat `closeoutReady: false` as a signal to finish children, accept or archive open concerns, accept research, and complete checklist items before marking the parent done.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Use Taskset command contracts
|
|
3
|
+
description: Machine-oriented contracts for discovery, JSON output, clear flags, search, and identifiers.
|
|
4
|
+
contentType: Reference
|
|
5
|
+
navLabel: Agent Commands
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Use Taskset command contracts
|
|
9
|
+
|
|
10
|
+
This page quotes the contracts agents should rely on. For the full human reference, see [CLI reference](../cli-reference.md).
|
|
11
|
+
|
|
12
|
+
## Discovery and defaults
|
|
13
|
+
|
|
14
|
+
| Fact | Contract |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| Repository marker | Nearest ancestor `.taskset/` directory |
|
|
17
|
+
| Optional config | `taskset.config.ts` beside that root |
|
|
18
|
+
| Missing config | Built-in statuses, priorities, and defaults |
|
|
19
|
+
| `taskset config --json` | Includes `rootDirectory`, `configPath`, `hasConfig`, `dataDirectory`, `config` |
|
|
20
|
+
| `taskset init` | Creates `.taskset/`; `--config` writes optional config |
|
|
21
|
+
|
|
22
|
+
## Output and exit codes
|
|
23
|
+
|
|
24
|
+
- Stdout carries requested output
|
|
25
|
+
- Stderr carries diagnostics and generation warnings
|
|
26
|
+
- Exit `0` means success
|
|
27
|
+
- Exit `1` means repository or domain failure
|
|
28
|
+
- Exit `2` means usage or validation failure
|
|
29
|
+
|
|
30
|
+
## Identifiers and file links
|
|
31
|
+
|
|
32
|
+
- Entity `id` values are immutable 5–6 character lowercase hex strings
|
|
33
|
+
- Filenames are `{sequence}-{slug}-{id}.md`
|
|
34
|
+
- Commands, frontmatter relationships, and JSON handoffs use the short `id`
|
|
35
|
+
- Filename sequence prefixes are display metadata only—never identity
|
|
36
|
+
- Markdown hyperlinks to docs, skills, or `.taskset/` entities must use the
|
|
37
|
+
repository-relative filepath (include the `.md` file). Do not use a bare hex
|
|
38
|
+
id as a link target.
|
|
39
|
+
|
|
40
|
+
## Array updates and clear flags
|
|
41
|
+
|
|
42
|
+
Array options replace the whole stored array. Repeat the singular option once per desired value. Clear with the exact plural flag:
|
|
43
|
+
|
|
44
|
+
- `--clear-dependencies`
|
|
45
|
+
- `--clear-labels`
|
|
46
|
+
- `--clear-assignees`
|
|
47
|
+
- `--clear-reviewers`
|
|
48
|
+
- `--clear-related`
|
|
49
|
+
- `--clear-files`
|
|
50
|
+
- `--clear-directories`
|
|
51
|
+
- `--clear-projects`
|
|
52
|
+
- `--clear-parent`
|
|
53
|
+
- `--clear-owner`
|
|
54
|
+
- `--clear-severity`
|
|
55
|
+
- `--clear-related-skills`
|
|
56
|
+
- `--clear-packs`
|
|
57
|
+
- `--clear-class`
|
|
58
|
+
- `--clear-cadence`
|
|
59
|
+
|
|
60
|
+
Do not guess a clear flag from the singular setter name.
|
|
61
|
+
|
|
62
|
+
## Search and impact
|
|
63
|
+
|
|
64
|
+
- `--search` is token-aware: every normalized term must match title or body
|
|
65
|
+
- Terms may appear in any order
|
|
66
|
+
- `--impact` expands file, directory, or dependency matches to dependent work
|
|
67
|
+
|
|
68
|
+
## Document kinds
|
|
69
|
+
|
|
70
|
+
Use only these kinds:
|
|
71
|
+
|
|
72
|
+
- `story`
|
|
73
|
+
- `flow`
|
|
74
|
+
- `decision` (`adr`, `dr` aliases)
|
|
75
|
+
- `research`
|
|
76
|
+
- `runbook`
|
|
77
|
+
- `lesson` (`antipattern` alias)
|
|
78
|
+
- `concern`
|
|
79
|
+
- `audit`
|
|
80
|
+
|
|
81
|
+
Document statuses are `draft`, `ready`, `active`, `accepted`, `superseded`, and `archived`.
|
|
82
|
+
|
|
83
|
+
Lesson options: `--severity`, repeatable `--related-skill`, repeatable `--pack`.
|
|
84
|
+
Concern options: `--class`, `--cadence`. List filters include `--class` and `--severity`.
|
|
85
|
+
|
|
86
|
+
## Program rollup
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
taskset task program <parent-id> --json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Returns child status counts, blocked deps, related open concerns, research not yet accepted, checklist completion, and `closeoutReady`.
|
|
93
|
+
|
|
94
|
+
Copy-paste recipes: [Query recipes](query-recipes.md).
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Operate Taskset as an agent
|
|
3
|
+
description: Plan, research, decide, operate, and track repository work with the Taskset CLI, skill, and JSON contracts.
|
|
4
|
+
contentType: How-to
|
|
5
|
+
navLabel: For Agents
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Operate Taskset as an agent
|
|
9
|
+
|
|
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
|
+
|
|
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
|
+
|
|
14
|
+
## Load the skill first
|
|
15
|
+
|
|
16
|
+
Prefer the packaged skill before inventing workflow:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx skills add FalseFoundation/taskset --skill taskset
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Project and global skill installs both work. After a project npm install, offline copies also live at `node_modules/@taskset/cli/skills/taskset/SKILL.md`.
|
|
23
|
+
|
|
24
|
+
## Invoke the CLI
|
|
25
|
+
|
|
26
|
+
Do not assume `pnpm taskset`. Use whichever runner the environment provides:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx @taskset/cli document list --json
|
|
30
|
+
npx @taskset/cli task list --json
|
|
31
|
+
pnpm dlx @taskset/cli doctor --json
|
|
32
|
+
yarn dlx @taskset/cli document show your_document_id_here --json
|
|
33
|
+
bunx @taskset/cli sync --json
|
|
34
|
+
taskset task list --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Discover the repository
|
|
38
|
+
|
|
39
|
+
1. Walk upward for `.taskset/`
|
|
40
|
+
2. Load optional `taskset.config.ts` at that root when present
|
|
41
|
+
3. Otherwise use built-in defaults
|
|
42
|
+
|
|
43
|
+
No config file is required. `taskset init` creates `.taskset/` only. Pass `--config` when the repository wants an optional TypeScript overlay.
|
|
44
|
+
|
|
45
|
+
## Choose the right artifact
|
|
46
|
+
|
|
47
|
+
| If the work produces… | Create… |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| A user outcome or acceptance criteria | `story` |
|
|
50
|
+
| A journey with variants and checks | `flow` |
|
|
51
|
+
| Evidence, options, or a recommendation | `research` |
|
|
52
|
+
| A lasting architectural or product choice | `decision` / `adr` |
|
|
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` |
|
|
57
|
+
| Scoped execution with status and owners | `task` |
|
|
58
|
+
| Multi-task program health | parent task + `taskset task program` |
|
|
59
|
+
|
|
60
|
+
Link documents and tasks with `--related`. Keep one-off scratch in the task body. See [Memory model](../memory-model.md) for anti-examples.
|
|
61
|
+
|
|
62
|
+
## Core operating rules
|
|
63
|
+
|
|
64
|
+
- Treat `.taskset/tasks/` and kind-specific document directories as the source of truth
|
|
65
|
+
- Mutate through CLI commands when a command exists
|
|
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
|
|
68
|
+
- Prefer `--json` for handoffs
|
|
69
|
+
- Create follow-up tasks or checklist subtasks for newly discovered work
|
|
70
|
+
- Create research, decision, runbook, story, flow, lesson, concern, or audit documents when work produces reusable evidence, lasting choices, recurring patterns, or residual risks
|
|
71
|
+
- Keep statuses current mid-work
|
|
72
|
+
|
|
73
|
+
## Command map
|
|
74
|
+
|
|
75
|
+
| Goal | Command |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| Inspect root and defaults | `taskset config --json` |
|
|
78
|
+
| Validate repository | `taskset doctor --json` |
|
|
79
|
+
| List or search tasks | `taskset task list --search "terms" --json` |
|
|
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` |
|
|
83
|
+
| Show one entity | `taskset task show your_task_id_here --json` |
|
|
84
|
+
| Create executable work | `taskset task create --title "Describe the work"` |
|
|
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` |
|
|
89
|
+
| Change status | `taskset task status your_task_id_here doing` |
|
|
90
|
+
| Impact query | `taskset task list --file path/or/dir --impact --json` |
|
|
91
|
+
| Repair and rebuild | `taskset sync --json` |
|
|
92
|
+
|
|
93
|
+
Full contracts: [CLI reference](../cli-reference.md), [Agent command contracts](commands.md), and [Query recipes](query-recipes.md).
|
|
94
|
+
|
|
95
|
+
## Workflow checklist
|
|
96
|
+
|
|
97
|
+
1. Confirm the repository root with `taskset config --json`
|
|
98
|
+
2. Search existing tasks and documents before creating duplicates
|
|
99
|
+
3. Capture durable evidence, decisions, lessons, or concerns as documents mid-work
|
|
100
|
+
4. Create or update tasks for executable delivery
|
|
101
|
+
5. Resolve ownership before mutating assigned work
|
|
102
|
+
6. Keep statuses current, then re-validate with `taskset doctor --json`
|
|
103
|
+
|
|
104
|
+
## Related pages
|
|
105
|
+
|
|
106
|
+
- [Agent workflows](workflows.md)
|
|
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)
|
|
112
|
+
- [Document types](../document-types.md)
|
|
113
|
+
- [Task files](../task-files.md)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Taskset
|
|
2
|
+
|
|
3
|
+
> Git-native Markdown workspace for planning, research, decisions, operations, residual risk, and delivery.
|
|
4
|
+
|
|
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
|
+
|
|
7
|
+
## For agents
|
|
8
|
+
|
|
9
|
+
- [Operate Taskset as an agent](https://taskset.false.foundation/docs/agents)
|
|
10
|
+
- [Follow agent workflows](https://taskset.false.foundation/docs/agents/workflows)
|
|
11
|
+
- [Use Taskset command contracts](https://taskset.false.foundation/docs/agents/commands)
|
|
12
|
+
- [Query operational memory](https://taskset.false.foundation/docs/agents/query-recipes)
|
|
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)
|
|
17
|
+
- [Understand task files](https://taskset.false.foundation/docs/task-files)
|
|
18
|
+
- [CLI reference](https://taskset.false.foundation/docs/cli-reference)
|
|
19
|
+
|
|
20
|
+
## For humans
|
|
21
|
+
|
|
22
|
+
- [Keep the whole delivery story beside the code](https://taskset.false.foundation/docs)
|
|
23
|
+
- [Start a Taskset repository](https://taskset.false.foundation/docs/getting-started)
|
|
24
|
+
- [Configure Taskset defaults](https://taskset.false.foundation/docs/configuration)
|
|
25
|
+
- [Taxonomy cookbook](https://taskset.false.foundation/docs/taxonomy-cookbook)
|
|
26
|
+
|
|
27
|
+
## Optional offline skill
|
|
28
|
+
|
|
29
|
+
After install, load `node_modules/@taskset/cli/skills/taskset/SKILL.md`, or install with:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
npx skills add FalseFoundation/taskset --skill taskset
|
|
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
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Follow agent workflows in Taskset
|
|
3
|
+
description: Ownership checks, mid-work updates, operational memory, and monorepo habits for agent operators.
|
|
4
|
+
contentType: How-to
|
|
5
|
+
navLabel: Agent Workflows
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Follow agent workflows in Taskset
|
|
9
|
+
|
|
10
|
+
These workflows assume the CLI is available and `.taskset/` already exists. Initialize with `taskset init` when it does not. Use documents for durable memory and tasks for execution; link them so later agents inherit the full story.
|
|
11
|
+
|
|
12
|
+
## Before you execute a task
|
|
13
|
+
|
|
14
|
+
1. Run `taskset task show your_task_id_here --json`
|
|
15
|
+
2. Resolve `git config --get user.name`
|
|
16
|
+
3. Compare owner and assignees with that identity
|
|
17
|
+
4. Pause for confirmation when another person owns or is exclusively assigned the task
|
|
18
|
+
5. Check unresolved dependencies and blockers before status changes
|
|
19
|
+
|
|
20
|
+
Matching ownership does not override blockers. A generic instruction such as “work on the next task” does not override another person’s assignment.
|
|
21
|
+
|
|
22
|
+
## While you execute
|
|
23
|
+
|
|
24
|
+
- Set the active task to `doing` when work starts
|
|
25
|
+
- Create child tasks (`--parent`) or checklist items (`- [ ]`) for newly discovered work
|
|
26
|
+
- Check off finished checklist items as `- [x]`
|
|
27
|
+
- Mark finished child tasks `done`
|
|
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`
|
|
33
|
+
|
|
34
|
+
Do not leave discovered work only in chat.
|
|
35
|
+
|
|
36
|
+
## Close-out
|
|
37
|
+
|
|
38
|
+
1. Confirm acceptance criteria are met
|
|
39
|
+
2. Confirm every tracked subtask is finished or intentionally resolved
|
|
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.
|
|
45
|
+
|
|
46
|
+
## Monorepo habits
|
|
47
|
+
|
|
48
|
+
- Prefer declared package names and existing Taskset projects over directory-name guesses
|
|
49
|
+
- Record `--depends-on` only for real execution prerequisites
|
|
50
|
+
- Attach the narrowest accurate `--file` or `--directory` scopes
|
|
51
|
+
- Validate the changed package and affected dependents
|
|
52
|
+
- Reuse taxonomy labels and projects; do not invent one-off tags when allowlists exist
|
|
53
|
+
|
|
54
|
+
## Batch and sync
|
|
55
|
+
|
|
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
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: CLI
|
|
2
|
+
title: Look up Taskset CLI commands
|
|
3
3
|
description: Complete reference for the taskset command-line interface.
|
|
4
|
+
contentType: Reference
|
|
5
|
+
navLabel: CLI Reference
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
# CLI
|
|
8
|
+
# Look up Taskset CLI commands
|
|
7
9
|
|
|
8
|
-
The `taskset` command is a thin adapter over `@taskset/core
|
|
9
|
-
arguments, validates command options, calls core operations, and renders human
|
|
10
|
-
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
|
-
|
|
13
|
-
dependency. The examples below use `taskset` directly for brevity.
|
|
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.
|
|
14
13
|
|
|
15
14
|
## Common Behavior
|
|
16
15
|
|
|
@@ -46,12 +45,10 @@ Exit codes:
|
|
|
46
45
|
### `init`
|
|
47
46
|
|
|
48
47
|
```bash
|
|
49
|
-
taskset init [--cwd <path>]
|
|
48
|
+
taskset init [--config] [--cwd <path>]
|
|
50
49
|
```
|
|
51
50
|
|
|
52
|
-
Initializes a Taskset repository
|
|
53
|
-
`taskset.config.ts`, `.taskset/tasks/`, and `.taskset/.gitignore` when they do
|
|
54
|
-
not already exist.
|
|
51
|
+
Initializes a Taskset repository. The command resolves a root from an existing `.taskset/`, Git or workspace markers, or the working directory, then creates `.taskset/` task and document directories plus `.taskset/.gitignore` when they do not already exist. Pass `--config` to also write optional `taskset.config.ts`.
|
|
55
52
|
|
|
56
53
|
Human output:
|
|
57
54
|
|
|
@@ -65,15 +62,15 @@ Initialized Taskset in <root-directory>
|
|
|
65
62
|
taskset config [--json] [--cwd <path>]
|
|
66
63
|
```
|
|
67
64
|
|
|
68
|
-
Discovers the nearest `taskset.config.ts`
|
|
69
|
-
directory.
|
|
65
|
+
Discovers the nearest `.taskset/` directory by walking upward from the working directory. Optional `taskset.config.ts` at that root overlays defaults when present.
|
|
70
66
|
|
|
71
|
-
Human output is the config file path. JSON output contains:
|
|
67
|
+
Human output is the config file path when a config exists, or `defaults (<root-directory>)` when it does not. JSON output contains:
|
|
72
68
|
|
|
73
69
|
```json
|
|
74
70
|
{
|
|
75
71
|
"rootDirectory": "...",
|
|
76
72
|
"configPath": "...",
|
|
73
|
+
"hasConfig": false,
|
|
77
74
|
"dataDirectory": "...",
|
|
78
75
|
"config": {}
|
|
79
76
|
}
|
|
@@ -85,13 +82,14 @@ Human output is the config file path. JSON output contains:
|
|
|
85
82
|
taskset doctor [--json] [--cwd <path>]
|
|
86
83
|
```
|
|
87
84
|
|
|
88
|
-
Validates the repository without modifying files. It scans canonical task
|
|
89
|
-
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.
|
|
90
88
|
|
|
91
89
|
Human success output:
|
|
92
90
|
|
|
93
91
|
```text
|
|
94
|
-
Taskset repository is valid (<count> tasks)
|
|
92
|
+
Taskset repository is valid (<count> tasks, <count> documents)
|
|
95
93
|
```
|
|
96
94
|
|
|
97
95
|
Human failure output is tab-separated:
|
|
@@ -100,8 +98,8 @@ Human failure output is tab-separated:
|
|
|
100
98
|
<code> <path-or-> <message> <remediation>
|
|
101
99
|
```
|
|
102
100
|
|
|
103
|
-
JSON output is the full doctor result, including `valid`, `taskCount`,
|
|
104
|
-
diagnostics.
|
|
101
|
+
JSON output is the full doctor result, including `valid`, `taskCount`,
|
|
102
|
+
`documentCount`, and diagnostics. Warnings do not fail the command; errors do.
|
|
105
103
|
|
|
106
104
|
### `generate`
|
|
107
105
|
|
|
@@ -311,7 +309,7 @@ Human output is the serialized task Markdown. JSON output contains:
|
|
|
311
309
|
|
|
312
310
|
```json
|
|
313
311
|
{
|
|
314
|
-
"relativePath": ".taskset/tasks/0000001-short-title.md",
|
|
312
|
+
"relativePath": ".taskset/tasks/0000001-short-title-a1b2c3.md",
|
|
315
313
|
"metadata": {},
|
|
316
314
|
"body": "...",
|
|
317
315
|
"derived": {}
|
|
@@ -378,17 +376,31 @@ remove those inbound references and delete the target in one mutation.
|
|
|
378
376
|
Human output is the deleted task ID. JSON output contains `deleted: true`
|
|
379
377
|
alongside the deleted task record.
|
|
380
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
|
+
|
|
381
392
|
### `task migrate-ids`
|
|
382
393
|
|
|
383
394
|
```bash
|
|
384
395
|
taskset task migrate-ids [--json] [--cwd <path>]
|
|
385
396
|
```
|
|
386
397
|
|
|
387
|
-
Atomically converts legacy `TS-` task IDs to
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
398
|
+
Atomically converts legacy `TS-` and sequential task IDs to immutable short hex
|
|
399
|
+
IDs, normalizes filenames to `{sequence}-{slug}-{id}.md`, repairs duplicate
|
|
400
|
+
sequence prefixes by `createdAt`, and rewrites canonical relationships plus
|
|
401
|
+
references in repository text files. Dependencies, Git internals, build output,
|
|
402
|
+
caches, generated views, indexes, and snapshots are excluded. Human output is a
|
|
403
|
+
tab-separated old-to-new mapping; JSON emits the same mapping as objects.
|
|
392
404
|
|
|
393
405
|
### `sync`
|
|
394
406
|
|
|
@@ -396,14 +408,17 @@ old-to-new mapping; JSON emits the same mapping as objects.
|
|
|
396
408
|
taskset sync [--concurrency <count>] [--json] [--cwd <path>]
|
|
397
409
|
```
|
|
398
410
|
|
|
399
|
-
Ensures every canonical document directory exists under `.taskset`,
|
|
400
|
-
legacy task
|
|
401
|
-
|
|
411
|
+
Ensures every canonical document directory exists under `.taskset`, migrates
|
|
412
|
+
legacy task and document IDs to short hex IDs, normalizes filenames, repairs
|
|
413
|
+
duplicate sequence prefixes by `createdAt`, rewrites repository text
|
|
414
|
+
references, and rebuilds generated views. Progress counts and percentages are
|
|
415
|
+
sent to stderr.
|
|
402
416
|
|
|
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
|