@taskless/cli 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +79 -14
  2. package/dist/index.js +6704 -6406
  3. package/package.json +3 -1
package/README.md CHANGED
@@ -32,14 +32,23 @@ Outputs CLI version, tool status, and login info as JSON to stdout:
32
32
  ### `taskless init`
33
33
 
34
34
  Launches an interactive wizard that detects supported tool directories in the
35
- current project (`.claude/`, `.opencode/`, `.cursor/`, `.agents/`), lets you
36
- pick which ones to install into, optionally includes the `taskless-ci` skill,
37
- and walks through the auth tradeoff before writing anything. Running `taskless`
38
- with no subcommand in a TTY also launches this wizard.
35
+ current project (`.claude/`, `.opencode/`, `.cursor/`, `.agents/`), asks which
36
+ tools to enable Taskless for, and walks through the auth tradeoff before
37
+ writing anything. Running `taskless` with no subcommand in a TTY also launches
38
+ this wizard. Without a TTY, bare `taskless` prints a short context preamble
39
+ followed by the topic index from `taskless help`.
39
40
 
40
- For CI and scripted installs, pass `--no-interactive` to skip all prompts.
41
- This installs every mandatory skill to every detected tool, or falls back to
42
- `.agents/skills/` when no tools are detected:
41
+ In v0.7+, there is exactly one skill (`taskless`) and one command (`tskl`) —
42
+ no opt-in selection needed.
43
+
44
+ The skill and command content is written **once** to a canonical store in
45
+ `.taskless/skills/` and `.taskless/commands/`. Each enabled tool directory
46
+ receives only a thin reference stub — an ordinary file with a delegating body,
47
+ never a symlink — so there is a single source of truth and no drift between
48
+ copies. Stale layouts from earlier versions (full per-tool copies, symlinks)
49
+ are converged into stubs automatically on the next `init`/`update`.
50
+
51
+ For CI and scripted installs, pass `--no-interactive` to skip all prompts:
43
52
 
44
53
  ```bash
45
54
  taskless init # interactive wizard (default in a TTY)
@@ -48,8 +57,41 @@ taskless init --no-interactive # scripted install, no prompts
48
57
 
49
58
  The wizard records what it installed in `.taskless/taskless.json` so later
50
59
  runs can compute a diff and surgically remove files that are no longer
51
- selected. Cancelling the wizard at any step (Ctrl-C) aborts cleanly with no
52
- filesystem changes.
60
+ selected. Upgrading from v0.6 automatically removes the obsolete per-task
61
+ skills and commands during this diff. Cancelling the wizard at any step
62
+ (Ctrl-C) aborts cleanly with no filesystem changes.
63
+
64
+ ### `taskless onboard`
65
+
66
+ Post-install discovery flow that helps a fresh user go from zero rules to a
67
+ useful starter set. Run it after `taskless init`. The CLI prints an
68
+ agent-facing recipe that walks the host AI tool through scanning the
69
+ codebase, agent-memory files (CLAUDE.md / AGENTS.md / .cursorrules),
70
+ recent PR review comments (when `gh` is available), and issue tracker
71
+ tickets (when a relevant MCP is wired in) for high-signal rule
72
+ candidates, then surfaces them as a bullet list the user can choose to
73
+ materialize via `taskless rule create`.
74
+
75
+ ```bash
76
+ taskless onboard # print the recipe (refused if already complete)
77
+ taskless onboard --force # re-run even when previously marked complete
78
+ taskless onboard --mark-complete # record completion in .taskless/taskless.json
79
+ # (invoked by the agent after explicit user
80
+ # confirmation; never automatically)
81
+ ```
82
+
83
+ Onboarding state lives in `.taskless/taskless.json` as
84
+ `install.onboarded` — a 3-state optional field (absent / `false` / `true`).
85
+ Only the agent writes it, and only with the user's explicit confirmation.
86
+ `taskless init` does not set it. Pass `--force` to re-run regardless of the
87
+ current value.
88
+
89
+ After a successful `taskless init`, the CLI prints a one-line trailer
90
+ pointing the user at this command. The trailer wording adapts to the
91
+ install plan: when the install included slash commands (Claude Code or
92
+ Cursor), it mentions `/tskl onboard` along with the Taskless skill and the
93
+ bare CLI; when the install only wrote skills (OpenCode, Codex, the
94
+ `.agents/` fallback), it mentions the skill and the bare CLI only.
53
95
 
54
96
  ### `taskless check`
55
97
 
@@ -77,29 +119,52 @@ If every supplied path is missing, the command exits 0 with empty results.
77
119
 
78
120
  Authenticate with taskless.io using the device flow. Tokens are stored in `~/.config/taskless/auth.json`.
79
121
 
80
- ### `taskless rules create`
122
+ ### `taskless rule create`
81
123
 
82
124
  Generate ast-grep rules via the taskless.io API. Reads a JSON request from stdin, submits it, polls for results, and writes rule and test files to `.taskless/rules/` and `.taskless/rule-tests/`.
83
125
 
84
126
  ```bash
85
- echo '{"prompt": "detect console.log usage"}' | taskless rules create
86
- echo '{"prompt": "find innerHTML assignments", "language": "typescript"}' | taskless rules create --json
127
+ echo '{"prompt": "detect console.log usage"}' | taskless rule create
128
+ echo '{"prompt": "find innerHTML assignments", "language": "typescript"}' | taskless rule create --json
87
129
  ```
88
130
 
89
131
  Requires authentication and a `.taskless/taskless.json` with `orgId` and `repositoryUrl`.
90
132
 
91
- ### `taskless rules delete <id>`
133
+ ### `taskless rule delete <id>`
92
134
 
93
135
  Remove a rule file and its associated test files from disk. No authentication required.
94
136
 
95
137
  ```bash
96
- taskless rules delete no-console-log
138
+ taskless rule delete no-console-log
97
139
  ```
98
140
 
99
141
  ### `taskless --help`
100
142
 
101
143
  Lists available subcommands.
102
144
 
145
+ ### `taskless help [topic]`
146
+
147
+ Returns agent-facing recipes. With no args, prints the topic index. With a
148
+ topic (e.g. `taskless help rule create`), prints the full step-by-step recipe
149
+ for that operation, including an embedded JSON Schema for any `--from` input
150
+ and a table of stable error codes. Append `--anonymous` to fetch the
151
+ local-only variant where one exists (currently `rule create`/`rule improve`).
152
+
153
+ Recipes are how the consolidated `taskless` skill stays small while still
154
+ covering every operation — the skill body is a router that fetches the
155
+ relevant recipe on demand.
156
+
157
+ ### `--anonymous` flag
158
+
159
+ Recognized on every command. Behavior matrix:
160
+
161
+ - `rule create` / `rule improve` — exits with a pointer to
162
+ `taskless help <topic> --anonymous`. The local-only flow runs in the agent
163
+ per the recipe variant.
164
+ - `info` — skips the API/auth probe; reports local state only.
165
+ - `auth login` — rejected (auth commands cannot be anonymous).
166
+ - All others — accepted as no-op.
167
+
103
168
  ## For skill authors
104
169
 
105
170
  Skills should detect the package manager by checking for lock files and invoke the CLI accordingly: