@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
package/docs/configuration.md
CHANGED
|
@@ -1,13 +1,32 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description:
|
|
2
|
+
title: Configure Taskset defaults
|
|
3
|
+
description: Optionally add taskset.config.ts to overlay defaults and vocabulary on a `.taskset/` repository.
|
|
4
|
+
contentType: How-to
|
|
5
|
+
navLabel: Configuration
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# Configure Taskset defaults
|
|
7
9
|
|
|
8
|
-
Taskset
|
|
9
|
-
|
|
10
|
-
file
|
|
10
|
+
Taskset repositories are identified by a `.taskset/` directory. `taskset.config.ts` is optional. When the file is absent, built-in statuses, priorities, and creation defaults apply.
|
|
11
|
+
|
|
12
|
+
## When to add a config file
|
|
13
|
+
|
|
14
|
+
Add `taskset.config.ts` when you need at least one of these:
|
|
15
|
+
|
|
16
|
+
- A repository `project.name`
|
|
17
|
+
- Different task creation defaults
|
|
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
|
|
22
|
+
|
|
23
|
+
Create one during init:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
taskset init --config
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or author the file beside `.taskset/`:
|
|
11
30
|
|
|
12
31
|
```typescript
|
|
13
32
|
import { defineConfig } from '@taskset/cli'
|
|
@@ -25,37 +44,40 @@ export default defineConfig({
|
|
|
25
44
|
statuses: ['todo', 'doing', 'blocked', 'done', 'canceled'],
|
|
26
45
|
priorities: ['low', 'medium', 'high', 'urgent'],
|
|
27
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
|
+
},
|
|
28
60
|
})
|
|
29
61
|
```
|
|
30
62
|
|
|
31
63
|
## Contract
|
|
32
64
|
|
|
33
|
-
- `project.name` is optional repository metadata
|
|
34
|
-
- `tasks.defaults.status`, `priority`, and `labels` are optional defaults
|
|
35
|
-
|
|
36
|
-
- `tasks.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- `
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- Unknown fields, invalid enum values, empty names, and duplicate default
|
|
47
|
-
labels or vocabulary values are rejected.
|
|
48
|
-
- The config file is executable trusted project code and may use erasable
|
|
49
|
-
TypeScript syntax supported by the repository's Node version.
|
|
50
|
-
|
|
51
|
-
The config identifies behavior; it is not task storage. Canonical task state
|
|
52
|
-
remains under `.taskset/tasks/`, regardless of configuration.
|
|
65
|
+
- `project.name` is optional repository metadata
|
|
66
|
+
- `tasks.defaults.status`, `priority`, and `labels` are optional creation defaults
|
|
67
|
+
- `tasks.statuses` selects and orders the active status vocabulary from Taskset’s canonical values
|
|
68
|
+
- `tasks.priorities` selects and orders the active priority vocabulary from Taskset’s canonical values
|
|
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
|
|
74
|
+
- Unknown fields, invalid enum values, empty names, and duplicate default labels or vocabulary values are rejected
|
|
75
|
+
- The config file is trusted project TypeScript and may use erasable syntax supported by your Node version
|
|
76
|
+
|
|
77
|
+
The config identifies behavior. It is not task storage. Canonical task and document state remains under `.taskset/`.
|
|
53
78
|
|
|
54
79
|
## Discovery
|
|
55
80
|
|
|
56
|
-
|
|
57
|
-
`.taskset/tasks/`. Other commands require a discoverable config and report an
|
|
58
|
-
error when run outside a Taskset repository.
|
|
81
|
+
Commands started in nested directories walk upward until they find `.taskset/`. If `taskset.config.ts` exists at that root, Taskset loads and validates it. Otherwise it uses built-in defaults.
|
|
59
82
|
|
|
60
|
-
Use `taskset config --json` to inspect the discovered root and resolved
|
|
61
|
-
defaults.
|
|
83
|
+
Use `taskset config --json` to inspect the discovered root, whether a config file is present, and the resolved defaults.
|
package/docs/document-types.md
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description: Canonical stories, flows, decisions, research, and
|
|
2
|
+
title: Choose a Taskset document type
|
|
3
|
+
description: Canonical stories, flows, decisions, research, runbooks, lessons, concerns, and audits.
|
|
4
|
+
contentType: Conceptual
|
|
5
|
+
navLabel: Document Types
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# Choose a Taskset document type
|
|
7
9
|
|
|
8
|
-
Taskset
|
|
9
|
-
into a task lifecycle. Each type has strict common frontmatter and a body
|
|
10
|
-
template suited to its purpose. Documents use the same planning, people, path,
|
|
11
|
-
and relationship metadata fields as tasks, with document-specific statuses.
|
|
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.
|
|
12
11
|
|
|
13
12
|
| Type | Directory | Template focus |
|
|
14
13
|
| --- | --- | --- |
|
|
@@ -17,6 +16,9 @@ and relationship metadata fields as tasks, with document-specific statuses.
|
|
|
17
16
|
| `decision` (`adr`, `dr`) | `.taskset/decisions/` | context, decision, alternatives, consequences |
|
|
18
17
|
| `research` | `.taskset/research/` | question, sources, findings, recommendation |
|
|
19
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 |
|
|
20
22
|
|
|
21
23
|
Create a document from its template:
|
|
22
24
|
|
|
@@ -24,13 +26,33 @@ Create a document from its template:
|
|
|
24
26
|
taskset document create story --title "Member signs in via SSO"
|
|
25
27
|
taskset document create flow --title "Recover a delayed deposit"
|
|
26
28
|
taskset document create adr --title "Use transactional outbox"
|
|
27
|
-
taskset document create research --title "Evaluate
|
|
29
|
+
taskset document create research --title "Evaluate cloud providers" --related your_task_id_here
|
|
28
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"
|
|
29
34
|
```
|
|
30
35
|
|
|
31
|
-
IDs
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
Document IDs are immutable 5-6 character lowercase hex values. Filenames keep a
|
|
37
|
+
per-type display sequence and title slug, for example
|
|
38
|
+
`.taskset/flows/0000001-member-signs-in-via-sso-a1b2c3.md`. Agents and commands
|
|
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`.
|
|
34
56
|
|
|
35
57
|
## Query And Mutation
|
|
36
58
|
|
|
@@ -38,6 +60,8 @@ Documents support the same command surface as tasks:
|
|
|
38
60
|
|
|
39
61
|
```bash
|
|
40
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
|
|
41
65
|
taskset document show <document-id> --type research --include-derived --json
|
|
42
66
|
taskset document update <document-id> --status ready --label infra --file packages/core
|
|
43
67
|
taskset document status <document-id> accepted --type decision
|
|
@@ -51,21 +75,23 @@ Statuses are `draft`, `ready`, `active`, `accepted`, `superseded`, and
|
|
|
51
75
|
## Import Existing Markdown
|
|
52
76
|
|
|
53
77
|
Use `document import` when a repository already has material under paths such
|
|
54
|
-
as `docs/stories`, `docs/flows`, `docs/adr`, `docs/research`,
|
|
55
|
-
`docs/
|
|
78
|
+
as `docs/stories`, `docs/flows`, `docs/adr`, `docs/research`, `docs/runbooks`,
|
|
79
|
+
`docs/lessons`, `docs/concerns`, or `docs/audits`:
|
|
56
80
|
|
|
57
81
|
```bash
|
|
58
82
|
taskset document import docs/flows/0001-sign-in.md
|
|
59
83
|
taskset document import docs/architecture/use-postgres.md --type decision
|
|
84
|
+
taskset document import docs/lessons/capability.md --move
|
|
60
85
|
taskset document import docs/runbooks/consumer-lag.md --move
|
|
61
86
|
```
|
|
62
87
|
|
|
63
88
|
The type is inferred from recognized parent directory names when `--type` is
|
|
64
89
|
omitted. `adr`, `dr`, `decision`, and `decisions` all normalize to `decision`.
|
|
65
|
-
The first H1 supplies the title
|
|
66
|
-
frontmatter is replaced with Taskset's
|
|
67
|
-
body is preserved. Import copies by
|
|
68
|
-
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.
|
|
69
95
|
|
|
70
96
|
Use `document list [type]`, `document show <id>`, and `--json` for inspection
|
|
71
97
|
and automation. Sequences are per type, so pass `--type` to `document show`
|
|
@@ -82,8 +108,8 @@ safe for automation.
|
|
|
82
108
|
[
|
|
83
109
|
{ "action": "create", "input": { "type": "story", "title": "Member upgrades" } },
|
|
84
110
|
{ "action": "import", "sourcePath": "docs/flows/checkout.md", "options": { "type": "flow" } },
|
|
85
|
-
{ "action": "update", "id": "
|
|
86
|
-
{ "action": "export", "id": "
|
|
111
|
+
{ "action": "update", "id": "a1b2c3", "type": "story", "input": { "status": "ready" } },
|
|
112
|
+
{ "action": "export", "id": "a1b2c3", "type": "story", "targetPath": "exports/member-upgrades.md" }
|
|
87
113
|
]
|
|
88
114
|
```
|
|
89
115
|
|
|
@@ -93,8 +119,11 @@ taskset sync --concurrency 8
|
|
|
93
119
|
```
|
|
94
120
|
|
|
95
121
|
`taskset sync` creates missing document-kind directories inside `.taskset`,
|
|
96
|
-
migrates legacy task
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
122
|
+
migrates legacy task and document IDs to short hex IDs, normalizes
|
|
123
|
+
`{sequence}-{slug}-{id}.md` filenames, repairs duplicate sequence prefixes by
|
|
124
|
+
`createdAt`, rewrites repository text references, refreshes data `.gitignore`
|
|
125
|
+
rules for scoped `.generated/` directories, removes legacy global
|
|
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
|
@@ -1,99 +1,111 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description:
|
|
2
|
+
title: Start a Taskset repository
|
|
3
|
+
description: Install the CLI, initialize `.taskset/`, and capture your first plan, decision, and task in any language repository.
|
|
4
|
+
contentType: Tutorial
|
|
5
|
+
navLabel: Getting Started
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# Start a Taskset repository
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
current pre-alpha release is intended for local repository use.
|
|
10
|
+
This guide initializes Taskset in a repository and walks one delivery loop: capture intent, record research or a decision, then track the work. You do not need a JavaScript app, and you do not need `taskset.config.ts`.
|
|
10
11
|
|
|
11
12
|
## Requirements
|
|
12
13
|
|
|
13
|
-
- Node.js 24 or newer
|
|
14
|
-
-
|
|
14
|
+
- Node.js 24 or newer to run the published CLI
|
|
15
|
+
- Any Git repository or project root you can write to
|
|
15
16
|
|
|
16
|
-
## Install
|
|
17
|
+
## Install the CLI
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
Pick one install style:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx @taskset/cli@latest --help
|
|
23
|
+
```
|
|
20
24
|
|
|
21
25
|
```bash
|
|
22
26
|
pnpm add --save-dev @taskset/cli
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
```bash
|
|
30
|
+
npm install --global @taskset/cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The package exposes the `taskset` executable. Package runners work in repositories that never declare a Node dependency.
|
|
26
34
|
|
|
27
|
-
## Initialize
|
|
35
|
+
## Initialize the repository
|
|
28
36
|
|
|
29
|
-
Run
|
|
37
|
+
Run init from the repository root, or from a nested directory when Git or workspace markers identify the root:
|
|
30
38
|
|
|
31
39
|
```bash
|
|
32
|
-
|
|
40
|
+
taskset init
|
|
33
41
|
```
|
|
34
42
|
|
|
35
43
|
This creates:
|
|
36
44
|
|
|
37
45
|
```text
|
|
38
|
-
taskset.config.ts
|
|
39
46
|
.taskset/
|
|
40
47
|
├── .gitignore
|
|
41
|
-
|
|
48
|
+
├── tasks/
|
|
49
|
+
├── stories/
|
|
50
|
+
├── flows/
|
|
51
|
+
├── decisions/
|
|
52
|
+
├── research/
|
|
53
|
+
└── runbooks/
|
|
42
54
|
```
|
|
43
55
|
|
|
44
|
-
|
|
45
|
-
remains the canonical project state. The nested ignore file excludes
|
|
46
|
-
`.taskset/cache/`, per-entity `.generated/` directories, and `.taskset/snapshots/`.
|
|
47
|
-
Snapshots are non-authoritative safety checkpoints; tasks remain canonical.
|
|
48
|
-
|
|
49
|
-
## Create And Inspect Work
|
|
56
|
+
Add an optional config file only when you need custom task defaults:
|
|
50
57
|
|
|
51
58
|
```bash
|
|
52
|
-
|
|
53
|
-
pnpm taskset task list
|
|
54
|
-
pnpm taskset task show <task-id>
|
|
55
|
-
pnpm taskset task update <task-id> --status doing
|
|
59
|
+
taskset init --config
|
|
56
60
|
```
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
The nested ignore file excludes `.taskset/cache/`, per-entity `.generated/` directories, and `.taskset/snapshots/`. Snapshots are non-authoritative safety checkpoints. Markdown under `.taskset/` remains canonical.
|
|
63
|
+
|
|
64
|
+
## Capture intent, then track delivery
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
Start with the durable context, then create the task that implements it:
|
|
61
67
|
|
|
62
68
|
```bash
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
taskset document create story --title "Member signs in via SSO"
|
|
70
|
+
taskset document create research --title "Compare SSO providers" --related your_story_id_here
|
|
71
|
+
taskset document create adr --title "Use OIDC for member SSO" --related your_research_id_here
|
|
72
|
+
taskset task create --title "Add SSO callback handler" --related your_decision_id_here --file packages/api/src/auth.ts
|
|
73
|
+
taskset task list
|
|
74
|
+
taskset document list --json
|
|
66
75
|
```
|
|
67
76
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
non-mutating pass.
|
|
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)).
|
|
73
81
|
|
|
74
|
-
##
|
|
82
|
+
## Query and validate the graph
|
|
75
83
|
|
|
76
84
|
```bash
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
taskset task list --status doing --label core --json
|
|
86
|
+
taskset document list research --search "SSO" --json
|
|
87
|
+
taskset task list --file packages/api --impact --json
|
|
88
|
+
taskset doctor
|
|
80
89
|
```
|
|
81
90
|
|
|
82
|
-
|
|
91
|
+
File and directory filters use repository-relative containment. With `--impact`, list output groups direct matches and work that transitively depends on them. `doctor` reports readable format and graph failures in one non-mutating pass.
|
|
83
92
|
|
|
84
|
-
##
|
|
93
|
+
## Finish or remove work
|
|
85
94
|
|
|
86
95
|
```bash
|
|
87
|
-
|
|
88
|
-
|
|
96
|
+
taskset task status your_task_id_here done
|
|
97
|
+
taskset document status your_research_id_here accepted --type research
|
|
98
|
+
taskset task delete your_task_id_here
|
|
89
99
|
```
|
|
90
100
|
|
|
91
|
-
Completed and canceled tasks are terminal. Deletion fails while another task
|
|
92
|
-
depends on the target. Use `--remove-dependencies` only when Taskset should
|
|
93
|
-
remove those inbound references and the task together.
|
|
101
|
+
Completed and canceled tasks are terminal. Deletion fails while another task depends on the target. Use `--remove-dependencies` only when Taskset should remove those inbound references and the task together.
|
|
94
102
|
|
|
95
103
|
## Next
|
|
96
104
|
|
|
97
|
-
- [
|
|
98
|
-
- [
|
|
105
|
+
- [Choose a document type](document-types.md)
|
|
106
|
+
- [Choose memory layers](memory-model.md)
|
|
99
107
|
- [Understand task files](task-files.md)
|
|
108
|
+
- [Configure defaults](configuration.md)
|
|
109
|
+
- [Use the complete CLI reference](cli-reference.md)
|
|
110
|
+
- [Follow the agent guide](agents/index.md)
|
|
111
|
+
- [Query recipes for agents](agents/query-recipes.md)
|
package/docs/index.md
CHANGED
|
@@ -1,37 +1,49 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description:
|
|
2
|
+
title: Keep the whole delivery story beside the code
|
|
3
|
+
description: Taskset stores plans, research, decisions, runbooks, lessons, concerns, audits, and tasks as Markdown in your repository for agents and humans.
|
|
4
|
+
contentType: Landing
|
|
5
|
+
navLabel: Overview
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# Keep the whole delivery story beside the code
|
|
7
9
|
|
|
8
|
-
Taskset is
|
|
9
|
-
to accelerate software delivery and give development teams immediate awareness
|
|
10
|
-
of the work surrounding their code.
|
|
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
|
-
|
|
13
|
-
history, branches, review, and collaboration. Taskset supplies a consistent
|
|
14
|
-
domain model and interfaces over those files.
|
|
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.
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
## What belongs in Taskset
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
- **Plan**: stories and flows that define outcomes and journeys
|
|
17
|
+
- **Learn**: research that captures evidence and recommendations
|
|
18
|
+
- **Decide**: decisions and ADRs that lock lasting choices
|
|
19
|
+
- **Operate**: runbooks that make recovery safe to repeat
|
|
20
|
+
- **Remember**: lessons, concerns, and audits for recurring patterns and residual risk
|
|
21
|
+
- **Deliver**: tasks that carry ownership, status, dependencies, and code impact
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
- Developers can operate locally without a mandatory service.
|
|
22
|
-
- Humans and AI agents inspect the same project context.
|
|
23
|
-
- CLI, TUI, MCP, editor, Kanban, and reporting views share one source of truth.
|
|
24
|
-
- Monorepo projects and code relationships are first-class.
|
|
23
|
+
Documents preserve memory. Tasks move work. Relationships keep the graph honest.
|
|
25
24
|
|
|
26
|
-
##
|
|
25
|
+
## What you get
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
- Project knowledge stays in the repository it describes
|
|
28
|
+
- Markdown remains readable without Taskset installed
|
|
29
|
+
- Agents and humans inspect the same plans, decisions, and work
|
|
30
|
+
- CLI, skills, and future interfaces share one domain model
|
|
31
|
+
- Monorepo paths and code relationships are first-class
|
|
31
32
|
|
|
32
|
-
##
|
|
33
|
+
## What the CLI covers
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
The CLI initializes repositories, manages optional configuration, creates and queries tasks and documents, runs diagnostics, builds generated views, snapshots state, and syncs the tree after upgrades or repairs.
|
|
36
|
+
|
|
37
|
+
## Choose your path
|
|
38
|
+
|
|
39
|
+
- [Start a Taskset repository](getting-started.md)
|
|
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)
|
|
45
|
+
- [Understand task files](task-files.md)
|
|
46
|
+
- [Configure defaults when you need them](configuration.md)
|
|
47
|
+
- [Look up every CLI command](cli-reference.md)
|
|
48
|
+
- [Read agent workflows and contracts](agents/index.md)
|
|
49
|
+
- [Copy-paste agent query recipes](agents/query-recipes.md)
|
|
@@ -1,70 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "ADR 0001: Documentation Platform"
|
|
3
|
-
description: Render canonical
|
|
3
|
+
description: Render canonical documentation through the Taskset website for humans, agents, and maintainers.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# ADR 0001: Documentation Platform
|
|
7
7
|
|
|
8
8
|
- Status: Accepted
|
|
9
9
|
- Date: 2026-06-12
|
|
10
|
+
- Updated: 2026-10-03
|
|
10
11
|
|
|
11
12
|
## Context
|
|
12
13
|
|
|
13
|
-
Taskset needs one documentation source that is readable on Git hosts and can
|
|
14
|
-
also power a documentation website. User guidance and repository maintenance
|
|
15
|
-
material have different audiences and should remain visibly separated.
|
|
14
|
+
Taskset needs one documentation source that is readable on Git hosts and can also power a documentation website. Human usage guidance, agent operating contracts, and repository maintenance material have different audiences and should remain visibly separated.
|
|
16
15
|
|
|
17
16
|
## Decision
|
|
18
17
|
|
|
19
|
-
- Keep canonical
|
|
20
|
-
- Keep
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
- Render top-level usage docs and `docs/maintainers/` through separate route
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
- Isolate usage docs, maintainer docs, and blog layouts and MDX component sets
|
|
31
|
-
by route.
|
|
32
|
-
- Keep the Nextra configuration and layout close to the upstream defaults.
|
|
33
|
-
|
|
34
|
-
Nextra supports App Router content-directory routing and typed `_meta.ts`
|
|
35
|
-
navigation:
|
|
36
|
-
|
|
37
|
-
- <https://nextra.site/docs/file-conventions/content-directory>
|
|
38
|
-
- <https://nextra.site/docs/docs-theme/start>
|
|
18
|
+
- Keep canonical documentation in the root `docs/` directory
|
|
19
|
+
- Keep human usage pages at the top level of `docs/`
|
|
20
|
+
- Keep agent operating guidance under `docs/agents/`, with root `AGENTS.md` and packaged `skills/` as offline entrypoints
|
|
21
|
+
- Keep contributor, product, architecture, ADR, testing, and technology material under `docs/maintainers/`
|
|
22
|
+
- Publish an agent discovery index at `apps/www/public/llms.txt` (served as `/llms.txt`); copy it into the packaged CLI docs for offline use
|
|
23
|
+
- Use plain Markdown by default and MDX only for interactive pages
|
|
24
|
+
- Build `apps/www` with Next.js App Router, Nextra, and the stock Nextra docs and blog themes
|
|
25
|
+
- Expose root `docs/` as the app’s Nextra `content` directory through a repository-relative symlink
|
|
26
|
+
- Render top-level usage docs (including `docs/agents/`) and `docs/maintainers/` through separate route layouts and page maps
|
|
27
|
+
- Keep chronological release and project posts under `apps/www/posts/`
|
|
28
|
+
- Follow the [Vercel writing guidelines](https://github.com/vercel-labs/writing-guidelines) for public prose voice and structure
|
|
39
29
|
|
|
40
30
|
## Why
|
|
41
31
|
|
|
42
|
-
This
|
|
43
|
-
without a custom content loader, and keeps user documentation readable in its
|
|
44
|
-
canonical location. Moving maintainer material into a dedicated
|
|
45
|
-
`docs/maintainers/` section prevents the root README and user pages from
|
|
46
|
-
becoming contributor handbooks.
|
|
32
|
+
This keeps one Markdown source of truth while matching how agent-first tools expose denser contracts beside human onboarding. Maintainer material stays out of the primary product navigation. Agent pages and `llms.txt` give coding agents a short index without inventing a second product truth.
|
|
47
33
|
|
|
48
34
|
## Implementation Contract
|
|
49
35
|
|
|
50
|
-
`apps/www/content` points to `../../docs`. The usage docs catch-all route loads
|
|
51
|
-
top-level content and excludes `docs/maintainers/` from its page map. The
|
|
52
|
-
`/maintainers` route loads the same content directory with a maintainer-rooted
|
|
53
|
-
page map. The app may generate `.next/`, search data, and static output, but
|
|
54
|
-
none of those become documentation source.
|
|
55
|
-
|
|
56
|
-
`apps/www/posts/` is the source for blog Markdown. An app-local registry maps
|
|
57
|
-
each post to `/posts/[slug]` so static export can enumerate routes without
|
|
58
|
-
copying posts into `docs/`. The global MDX component file contains only base
|
|
59
|
-
Nextra components; docs and blog routes apply their own theme components.
|
|
36
|
+
`apps/www/content` points to `../../docs`. The usage docs catch-all route loads top-level content, including `docs/agents/`, and excludes `docs/maintainers/` from its page map. The `/maintainers` route loads the same content directory with a maintainer-rooted page map. Root `AGENTS.md` is repository-local agent guidance and may be linked from docs, but docs remain canonical for published pages. Do not place non-Markdown discovery files such as `llms.txt` under `docs/`; Nextra imports the content tree as modules and only Markdown/MDX pages belong there.
|
|
60
37
|
|
|
61
38
|
## Consequences
|
|
62
39
|
|
|
63
|
-
- Documentation changes are reviewable without building the site
|
|
64
|
-
- Blog posts are reviewable as app-local Markdown without a CMS
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
- Maintainer documentation is reviewed from `docs/maintainers/` and remains in
|
|
69
|
-
its own `/maintainers` navigation section.
|
|
70
|
-
- Broken links and invalid frontmatter should fail CI.
|
|
40
|
+
- Documentation changes are reviewable without building the site
|
|
41
|
+
- Blog posts are reviewable as app-local Markdown without a CMS
|
|
42
|
+
- New agent pages belong under `docs/agents/` and appear in usage navigation
|
|
43
|
+
- Maintainer documentation remains in its own `/maintainers` navigation section
|
|
44
|
+
- Broken links and invalid frontmatter should fail CI
|
|
@@ -5,8 +5,7 @@ description: Repository setup, Taskset dogfooding, pull requests, and completion
|
|
|
5
5
|
|
|
6
6
|
# Contributing
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
expanding the number of interfaces.
|
|
8
|
+
Keep the core file format and workflow coherent when you change interfaces, packages, or docs.
|
|
10
9
|
|
|
11
10
|
## Start Here
|
|
12
11
|
|
|
@@ -27,7 +26,7 @@ Use the Node and pnpm versions declared by `.nvmrc` and `packageManager`.
|
|
|
27
26
|
|
|
28
27
|
## Develop Taskset With Taskset
|
|
29
28
|
|
|
30
|
-
The repository dogfoods Taskset. Use the root `taskset.config.ts`, the CLI, and
|
|
29
|
+
The repository dogfoods Taskset. Use the root `.taskset/` data, optional `taskset.config.ts`, the CLI, and
|
|
31
30
|
canonical `.taskset/tasks/` files to plan and inspect work. When the CLI
|
|
32
31
|
supports the required operation, update the task through the CLI instead of
|
|
33
32
|
editing generated or derived state.
|