tspl-cli 0.1.1 → 0.1.3

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 (2) hide show
  1. package/README.md +426 -66
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,128 +1,488 @@
1
1
  # tspl
2
2
 
3
- `tspl` is the command-line tool for the TSPL AI feature-development tool. It reads your repositories (no AI, nothing leaves your machine), turns a task into a clear brief, plans the change with you, enforces the approved plan while an AI tool builds it, runs the tests and opens the pull request.
3
+ `tspl` is the command-line tool for the TSPL AI feature-development tool. It takes a task, finds the code it touches, plans the change with you, has people approve the plan, then lets an AI tool build it, runs the tests, gets a separate AI review and opens the pull request.
4
+
5
+ - **Your code stays on your machine.** tspl reads your repositories locally, with no AI and no tokens. The server keeps only tasks, plans, approvals, reports and AI usage, never code.
6
+ - **People stay in control.** Nothing is built until the developer, and then the PM, approve the plan. While a build runs, git hooks refuse commits and pushes that touch files outside the approved plan.
7
+ - **Done means tested.** A task is ready only when every required check passed on the exact commits of the pull request, and the server decides that, not the AI.
4
8
 
5
9
  ```text
6
10
  npm i -g tspl-cli → tspl setup → tspl init → tspl task new "…" → tspl t-xxxx → tspl plan approve t-xxxx → tspl task run t-xxxx
7
11
  ```
8
12
 
13
+ ## Contents
14
+
15
+ 1. [Requirements](#requirements)
16
+ 2. [Install](#1-install)
17
+ 3. [Configure your computer](#2-configure-your-computer)
18
+ 4. [Accounts and organizations](#3-accounts-and-organizations)
19
+ 5. [Set up a project](#4-set-up-a-project)
20
+ 6. [Work on a task, step by step](#5-work-on-a-task-step-by-step)
21
+ 7. [Use tspl from your AI tool](#6-use-tspl-from-your-ai-tool)
22
+ 8. [Team, roles and projects](#7-team-roles-and-projects)
23
+ 9. [AI engines](#8-ai-engines)
24
+ 10. [Command reference](#9-command-reference)
25
+ 11. [Files and settings](#10-files-and-settings)
26
+ 12. [Troubleshooting](#11-troubleshooting)
27
+ 13. [Update and uninstall](#12-update-and-uninstall)
28
+
9
29
  ## Requirements
10
30
 
11
- - Node 22 or newer
12
- - git
13
- - A TSPL account and the address of your TSPL API (ask your team)
14
- - An AI tool such as Claude Code, Codex, Cursor or Gemini, using your own subscription
31
+ - **Node 22 or newer** (`node --version`)
32
+ - **git**
33
+ - **A TSPL account.** Ask your organization's owner or admin to add you. You get a temporary password and choose your own at the first login.
34
+ - **An AI tool** you are signed in to with your own subscription: Claude Code, Codex CLI, Gemini CLI, Antigravity, Cursor or VS Code Copilot
35
+ - **GitHub CLI** (`gh`), for automatic draft pull requests on GitHub. Optional.
36
+
37
+ The TSPL API address is:
15
38
 
16
- ## 1. Install (once per computer)
39
+ ```text
40
+ https://aitool-api.techivies.com
41
+ ```
42
+
43
+ ## 1. Install
44
+
45
+ Do this once per computer.
17
46
 
18
47
  ```bash
19
48
  npm install -g tspl-cli
20
49
  tspl --version
21
50
  ```
22
51
 
23
- Update later with `npm install -g tspl-cli@latest`.
52
+ This installs the `tspl` command for your whole computer.
53
+
54
+ ## 2. Configure your computer
55
+
56
+ Do this once per computer. You can rerun it at any time, and nothing is lost.
57
+
58
+ ```bash
59
+ tspl setup --api https://aitool-api.techivies.com --connect claude
60
+ ```
61
+
62
+ `tspl setup` goes through these steps and ends with a list of what is ready and what still needs you:
63
+
64
+ 1. **Checks Node and git.**
65
+ 2. **Logs you in** to the TSPL API with your email and password. The API address is remembered, so you never type it again.
66
+ 3. **Chooses your AI engines,** the AI tool tspl uses for each step (see [AI engines](#8-ai-engines)). It finds Claude, Codex, Gemini and Ollama if they are installed.
67
+ 4. **Tests the engines** (optional). It sends one tiny prompt to check that each engine is signed in.
68
+ 5. **Connects your AI tool,** so you can type `/tspl` inside it. Use `--connect` with one or more of: `claude`, `codex`, `gemini`, `antigravity`, `cursor`, `vscode`.
69
+
70
+ `tspl setup` options:
71
+
72
+ | Option | What it does |
73
+ | --- | --- |
74
+ | `--api <url>` | TSPL API address |
75
+ | `--email <email>` | your email, so you are not asked |
76
+ | `--org <slug>` | the organization, if you belong to several |
77
+ | `--connect <tools...>` | the AI tools to connect |
78
+ | `-y, --yes` | keep existing choices and ask nothing |
79
+
80
+ **Restart your AI tool after setup** so it loads tspl.
24
81
 
25
- ## 2. Configure (once per computer)
82
+ **For GitHub pull requests,** sign the GitHub CLI in once:
26
83
 
27
84
  ```bash
28
- tspl setup --api https://<your-tspl-api> --connect claude
29
- tspl whoami
85
+ gh auth login
86
+ gh auth status
30
87
  ```
31
88
 
32
- `tspl setup` walks you through:
89
+ **Check that everything works:**
33
90
 
34
- - logging in to the TSPL API with your email and password
35
- - choosing which AI engine does each step
36
- - connecting your AI tool: the `/tspl` command, the edit lock and the MCP plug-in
91
+ ```bash
92
+ tspl whoami # you, your organization, your role and the API address
93
+ tspl engines test # each AI engine answers
94
+ ```
37
95
 
38
- Connect other tools with `--connect codex cursor gemini antigravity vscode`, or later with `tspl connect <tool>`. Restart your AI tool after connecting it.
96
+ ## 3. Accounts and organizations
39
97
 
40
- Several organizations:
98
+ ```bash
99
+ tspl login # log in (uses the saved API address)
100
+ tspl login --api https://aitool-api.techivies.com --email you@company.com
101
+ tspl login --org <slug> # log in to a specific organization
102
+ tspl whoami # who is logged in, which organization and API
103
+ tspl password # change your password
104
+ tspl forgot-password --email you@company.com # get a temporary password (no email is sent)
105
+ tspl logout # log out the account in use
106
+ tspl logout --all # log out every account on this computer
107
+ ```
108
+
109
+ One person can belong to several organizations, or have several accounts:
41
110
 
42
111
  ```bash
43
- tspl login --org <slug> # log in to a specific organization
44
- tspl org use <slug> # switch to one you are already logged in to
112
+ tspl org list # organizations you are logged in to; * is the one in use
113
+ tspl org use <slug> # switch organization
114
+ tspl account # menu: switch, add another login, or log out
115
+ tspl account list # saved logins
116
+ tspl account use <email-or-organization>
45
117
  ```
46
118
 
47
- ## 3. Set up a project (once per project folder)
119
+ ## 4. Set up a project
48
120
 
49
- Run inside the project folder:
121
+ Do this once per project folder. Run it inside the folder of your project: one repository, or a folder that contains several repositories.
50
122
 
51
123
  ```bash
52
124
  cd path/to/your/project
125
+ git status --short # commit or stash your work first
53
126
  tspl init
54
127
  ```
55
128
 
56
- This links the folder to a TSPL project, finds its test and lint checks, and saves `.tspl/project.json`. Commit that file so the whole team shares the same rules. tspl then reads the code into a local map (no AI, nothing uploaded).
129
+ `tspl init` does the following:
130
+
131
+ 1. **Links the folder to a TSPL project.** It recognizes your repositories by their git history, so folder names and git hosts don't matter. If the project doesn't exist yet, it offers to create it (owner, admin or PM only). If it finds new repositories, it offers to add them.
132
+ 2. **Finds your checks.** It reads your package scripts, without running them, and asks you to confirm which ones are the real **test**, **lint**, **typecheck** and **build** commands, and which are required.
133
+ 3. **Asks about pull requests:** the GitHub repository, the target branch and the CI policy.
134
+ 4. **Offers browser tests.** For web apps without browser tests, it offers to set up Playwright. Skip this with `--no-e2e`.
135
+ 5. **Saves the shared project files** in `.tspl/`.
136
+ 6. **Tells you** whether a tested pull request is possible for this project.
137
+
138
+ Then commit the shared files, so everyone on the team uses the same rules:
139
+
140
+ ```bash
141
+ git add .tspl
142
+ git commit -m "Configure TSPL workflow"
143
+ ```
144
+
145
+ `tspl init` options:
146
+
147
+ | Option | What it does |
148
+ | --- | --- |
149
+ | `[folder]` | the project folder, if not the current folder |
150
+ | `--org <slug>` | the organization, if you are logged in to several |
151
+ | `--project <slug>` | add this folder to an existing project |
152
+ | `--name <name>` | the project name, if a new project is created |
153
+ | `--manifest-home <repo>` | for a folder of several repos: the repo that holds `.tspl/` |
154
+ | `--no-e2e` | don't set up browser tests |
155
+ | `-y, --yes` | accept supported suggestions without asking |
156
+
157
+ Running `tspl` with no arguments in a project folder sets the folder up if needed, or lists its open tasks with the next command for each.
158
+
159
+ **Teammates** don't run `tspl init` again. They install tspl, run `tspl setup`, open the same folder and run `tspl`. The project and the `.tspl/` files are already there.
160
+
161
+ ## 5. Work on a task, step by step
162
+
163
+ A task goes through these statuses:
164
+
165
+ ```text
166
+ draft → plan-review → pm-review → approved → building → done
167
+ ↘ changes-requested (from either review) ↙
168
+ ```
169
+
170
+ Replace `t-xxxx` below with your task id.
171
+
172
+ ### Step 1: Create the task (developer or PM)
173
+
174
+ ```bash
175
+ tspl task new "Add a forgot password link to the login page"
176
+ ```
177
+
178
+ Other ways to create one:
179
+
180
+ ```bash
181
+ tspl task new --ticket TEST-1 "Add About page" # with a ticket id
182
+ tspl task new TEST-1 --file ticket.md # ticket text from a file
183
+ tspl task new "..." --yes # save without the review menu (scripts)
184
+ ```
185
+
186
+ What happens:
187
+
188
+ 1. tspl guesses the **type** (feature, change or bug) and asks only for what is missing: what should change, who it's for, where it is, and for bugs, the steps and the expected result. The answer options come from your code.
189
+ 2. You write the **done-when checks**, the acceptance criteria. Each becomes a test case (`TC1`, `TC2`, …) that has to pass later.
190
+ 3. tspl **finds the code** the task touches across all repositories, using no AI, and shows the files and how sure it is.
191
+ 4. A menu lets you **save**, **edit a field**, **add words and search again**, or **ask the AI once** for better keywords and checks.
192
+ 5. It saves the task and prints its **id**, for example `t-mfx2a1-9c3e`.
193
+
194
+ Manage tasks:
195
+
196
+ ```bash
197
+ tspl task list # tasks on this computer
198
+ tspl task show t-xxxx # brief: card, done-when checks, files found
199
+ tspl task edit t-xxxx # change the task and save it again
200
+ tspl find "forgot password" # just search the code, without making a task (no AI)
201
+ ```
202
+
203
+ ### Step 2: Confirm the scope (PM)
204
+
205
+ If your project uses scope confirmation, a PM, admin or owner checks that the task is clear and in scope:
206
+
207
+ ```bash
208
+ tspl task scope t-xxxx # confirm
209
+ tspl task scope t-xxxx --back --note "Missing the mobile view" # send it back
210
+ ```
211
+
212
+ This can also be done in the web console.
213
+
214
+ ### Step 3: Plan (developer and AI)
215
+
216
+ ```bash
217
+ tspl t-xxxx
218
+ ```
219
+
220
+ You can also type `/tspl t-xxxx` in your AI tool. The plan is made in three parts:
221
+
222
+ 1. **The AI reads the brief and compares 2–3 approaches,** with one recommendation.
223
+ 2. **You choose an approach.** The AI never chooses for you. To pick one from a terminal:
224
+ ```bash
225
+ tspl task choose t-xxxx <option-id> --version <n>
226
+ ```
227
+ 3. **The AI writes the plan:** the files to edit, create and remove in each repo, and a test for every done-when check, with the command that runs it. tspl checks the plan against the code: the files exist, new files sit with files of the same kind, names follow the project's style, and every done-when check has a test.
228
+
229
+ Look at the plan:
230
+
231
+ ```bash
232
+ tspl plan show t-xxxx # in the terminal
233
+ tspl plan show t-xxxx --page # as a page in your browser
234
+ ```
235
+
236
+ ### Step 4: Approve the plan (developer, then PM)
237
+
238
+ ```bash
239
+ tspl plan approve t-xxxx # approve
240
+ tspl plan approve t-xxxx --note "Looks good"
241
+ tspl plan reject t-xxxx --note "Also update the reset page" # send it back
242
+ tspl plan list # plans waiting for your decision
243
+ ```
244
+
245
+ The approval rules:
246
+
247
+ - **The developer approves first, then the PM.** The PM must be a different person from the developer who approved. An owner or admin may approve their own plan, and it is recorded as self-approved.
248
+ - **Approvals are made by people,** in a terminal or the web console. `tspl plan approve` refuses to run inside an AI tool.
249
+ - **An approval counts only for that plan version.** If the plan changes, it has to be approved again.
250
+ - A project can turn off PM approval: `tspl project set-approval <project> off`.
251
+
252
+ While a plan waits for approval, Claude Code is not allowed to edit files in the project's repositories.
253
+
254
+ ### Step 5: Build, test, review and open the pull request
255
+
256
+ ```bash
257
+ tspl task run t-xxxx
258
+ ```
259
+
260
+ Before writing any code, tspl asks:
261
+
262
+ 1. **Which branch each repository starts from.** Pick it from the list, or type to filter.
263
+ 2. **The name of the new branch,** for example `feature/forgot-password`.
264
+
265
+ Skip the questions with:
266
+
267
+ ```bash
268
+ tspl task run t-xxxx --base main --branch feature/forgot-password
269
+ ```
270
+
271
+ Then it goes through these stages by itself:
272
+
273
+ | Stage | What happens |
274
+ | --- | --- |
275
+ | `implementing` | The AI writes the code, touching only the files in the approved plan |
276
+ | `testing` | tspl runs the project's required checks and the plan's tests |
277
+ | `repairing` | If something fails, the AI fixes it. There are at most 2 repair rounds in total |
278
+ | `reviewing` | A separate, fresh AI session reviews the changes |
279
+ | `awaiting-delivery` | tspl asks you to confirm the push: repository, branch, target and title |
280
+ | `creating-pr` | Pushes the branch and opens a draft pull request |
281
+ | `awaiting-ci` | Waits for the required CI checks on GitHub |
282
+ | `ready` | Everything passed on the same commits, and the server marks the task done |
283
+
284
+ Options for `tspl task run`:
285
+
286
+ | Option | What it does |
287
+ | --- | --- |
288
+ | `--base <branch>` | branch every repo starts from |
289
+ | `--branch <name>` | name of the new branch |
290
+ | `--confirm-delivery` | confirm the push and pull request in advance, without being asked |
291
+ | `-w, --wait` | when it stops for an approval, a manual check or CI, wait and continue by itself |
292
+ | `--stage <stage>` | retry one stage: `implementing`, `testing`, `reviewing`, `awaiting-delivery`, `creating-pr` or `awaiting-ci` |
293
+
294
+ If it stops, run the same command again. It continues where it stopped and does not ask for the branch again.
295
+
296
+ ```bash
297
+ tspl task run t-xxxx # resume
298
+ tspl task watch t-xxxx # same as run --wait
299
+ tspl task status t-xxxx # stage, checks, review, pull requests and the next command
300
+ tspl task run t-xxxx --stage testing # rerun the checks, then continue
301
+ tspl task run t-xxxx --stage reviewing # rerun the review, then continue
302
+ ```
303
+
304
+ ### Step 6: Check by hand what no test can prove
305
+
306
+ Some done-when checks can't be proven by an automatic test. Check them yourself on the tested commits, then record it with proof:
307
+
308
+ ```bash
309
+ tspl task verify t-xxxx --check 2 --note "Checked on Safari" --file screenshot.png
310
+ ```
311
+
312
+ `--file` accepts png, jpg, webp, webm and mp4 files.
313
+
314
+ ### Step 7: Review and merge
315
+
316
+ The pull request stays a **draft** until the required CI passes, and then it is marked ready. Review it and merge it on GitHub as usual. tspl never merges, deploys or changes branch protection.
57
317
 
58
- Running `tspl` with no arguments sets the folder up if needed, or shows its open tasks.
318
+ For a git host other than GitHub, tspl gives you a compare link instead:
59
319
 
60
- ## 4. Work on a task
320
+ ```bash
321
+ tspl build push t-xxxx # push the branch of every repo on the plan
322
+ ```
323
+
324
+ ### Stop, change or delete a task
61
325
 
62
326
  ```bash
63
- tspl task new "Add a Contact page at /contact" # answer a few questions; prints the task id, e.g. t-xxxx
64
- tspl t-xxxx # compare approaches, pick one, write the plan
65
- tspl plan show t-xxxx # files to edit, create and remove, and tests
66
- tspl plan approve t-xxxx # developer approves, then the PM approves
67
- tspl task run t-xxxx # code, run checks, repair, review, draft pull requests, CI
327
+ tspl build stop t-xxxx # stop and lift the edit lock (branches are kept)
328
+ tspl plan amend t-xxxx # cancel the stopped run so a new plan version can be made
329
+ tspl task delete t-xxxx --reason "duplicate"
68
330
  ```
69
331
 
70
- Other ways to start a task:
332
+ Use `stop` and `amend` only when the plan really has to change, not for every failure. A new plan version needs new approvals.
333
+
334
+ ### Build by hand instead of `task run`
71
335
 
72
336
  ```bash
73
- tspl task new --ticket TEST-1 "Add About page" # with a ticket id
74
- tspl task new --file ticket.txt # ticket text from a file
337
+ tspl build start t-xxxx --branch feature/x # create the branch in every repo on the plan
338
+ tspl build start t-xxxx --open # same, then open a fresh AI session with only the build brief
339
+ tspl build check t-xxxx # compare the commits with the approved plan (also for CI)
340
+ tspl build status # builds in progress on this computer
75
341
  ```
76
342
 
77
- `tspl task run` asks which branch each repo starts from and the name of the new branch. Skip the questions with:
343
+ `build start` first stops if any repository has uncommitted changes. Add `--from-current` to start from the branch each repo has checked out instead of the base branch.
344
+
345
+ ## 6. Use tspl from your AI tool
346
+
347
+ After `tspl connect <tool>` and a restart of the tool, open it in your project folder and type:
348
+
349
+ ```text
350
+ /tspl Add a forgot password link to the login page
351
+ /tspl t-xxxx
352
+ ```
353
+
354
+ The AI uses tspl's tools to read the brief, compare approaches, submit the plan and build. It cannot approve plans; you do that in a terminal or the web console, then tell the AI "approved".
78
355
 
79
356
  ```bash
80
- tspl task run t-xxxx --base main --branch feature/contact-page
357
+ tspl connect claude # Claude Code: /tspl, edit lock and AI usage tracking
358
+ tspl connect codex # Codex CLI
359
+ tspl connect gemini # Gemini CLI
360
+ tspl connect antigravity # Antigravity CLI
361
+ tspl connect cursor # Cursor
362
+ tspl connect vscode # VS Code Copilot agent
363
+ tspl connect claude --remove # take tspl out again
81
364
  ```
82
365
 
83
- Run `tspl task run t-xxxx` again to resume after a stop. To retry one stage, add `--stage testing` or `--stage reviewing`.
366
+ The edit lock and the AI usage record work only in Claude Code. The git hooks that enforce the plan work with every tool.
84
367
 
85
- From your AI tool, type `/tspl <what should change>` to do the same steps there.
368
+ ## 7. Team, roles and projects
86
369
 
87
- ## Everyday commands
370
+ **Roles:**
88
371
 
89
- | What | Command |
372
+ | Role | Can do |
90
373
  | --- | --- |
91
- | Where a task is and the next command | `tspl task status t-xxxx` |
92
- | Tasks on this computer | `tspl task list` |
93
- | Show a task brief | `tspl task show t-xxxx` |
94
- | Change a task | `tspl task edit t-xxxx` |
95
- | Plans waiting for a decision | `tspl plan list` |
96
- | Send a plan back | `tspl plan reject t-xxxx --note "..."` |
97
- | PM confirms scope / sends it back | `tspl task scope t-xxxx` / `tspl task scope t-xxxx --back --note "..."` |
98
- | Keep going through approvals and CI | `tspl task watch t-xxxx` |
99
- | Builds in progress | `tspl build status` |
100
- | Stop a build and lift its edit lock | `tspl build stop t-xxxx` |
101
- | Allow a new plan after a stop | `tspl plan amend t-xxxx` |
102
- | Delete a task | `tspl task delete t-xxxx --reason "..."` |
103
- | Who is logged in | `tspl whoami` |
104
- | AI engine per step | `tspl engines` |
105
-
106
- ## Team and projects
107
-
108
- ```bash
109
- tspl project list # projects you can see
110
- tspl member list # people and their roles
111
- tspl member add <email> # owner or admin
112
- tspl member role <email> <role>
113
- tspl project add-member <project> <email>
374
+ | `owner` | everything; add owners and admins; delete projects |
375
+ | `admin` | see all projects, manage the team, delete projects |
376
+ | `pm` | in their projects: confirm scope, give the PM approval, add project members |
377
+ | `developer` | in their projects: create tasks, plan, approve as developer, build |
378
+ | `viewer` | read only |
379
+
380
+ **People** (owner or admin):
381
+
382
+ ```bash
383
+ tspl member list
384
+ tspl member add dev@company.com --name "Dev Name" --role developer # gets a temporary password
385
+ tspl member role dev@company.com pm
386
+ tspl member remove dev@company.com
387
+ ```
388
+
389
+ New accounts get a temporary password. Pass it on privately; the person chooses their own at the first login.
390
+
391
+ **Projects:**
392
+
393
+ ```bash
394
+ tspl project list # projects you can see
395
+ tspl project show <project> # repos and where they are on this computer
396
+ tspl project add-member <project> <email> # owner, admin or PM
114
397
  tspl project remove-member <project> <email>
398
+ tspl project set-branch <project> <repo> <branch> # which branch is read and built on
399
+ tspl project set-approval <project> on|off # whether plans need PM approval (default on)
400
+ tspl project remove-repo <project> <repo> # archived, not deleted
401
+ tspl project rm <project> # delete for everyone (owner or admin)
402
+ tspl unlink [project] # forget repo locations on this computer only
115
403
  ```
116
404
 
117
- ## Where tspl keeps data
405
+ ## 8. AI engines
406
+
407
+ tspl uses your own AI subscription. Choose which engine does each step:
408
+
409
+ ```bash
410
+ tspl engines # see the current choice
411
+ tspl engines set plan claude # engine for planning help
412
+ tspl engines set build claude --model opus # engine for building, with a model
413
+ tspl engines test # check every engine is signed in
414
+ ```
118
415
 
119
- - `~/.tspl`: your login, settings and the local code map of each repo. The map is built from git and never uploaded.
120
- - `.tspl/project.json` in your project: the project's checks and settings, meant to be committed.
121
- - The TSPL server stores tasks, plans, approvals, reports and AI usage, never your code.
416
+ The steps are `plan`, `build`, `verify` and `bulk`. The engines are `claude`, `codex`, `gemini` and `ollama`.
122
417
 
123
- ## Help
418
+ ## 9. Command reference
419
+
420
+ | Command | What it does |
421
+ | --- | --- |
422
+ | `tspl` | set up this folder, or list its open tasks |
423
+ | `tspl t-xxxx` | continue a task from wherever it is |
424
+ | `tspl setup` | configure this computer |
425
+ | `tspl init` | set up a project folder |
426
+ | `tspl login` / `logout` / `whoami` | log in, log out, show who is logged in |
427
+ | `tspl account` / `org` | switch accounts or organizations |
428
+ | `tspl password` / `forgot-password` | change or reset your password |
429
+ | `tspl connect <tool>` | add tspl to an AI tool |
430
+ | `tspl engines` | choose and test AI engines |
431
+ | `tspl find "<text>"` | find the code a task is about (no AI) |
432
+ | `tspl analyze` | re-read the code of this project (no AI; usually automatic) |
433
+ | `tspl task new` / `list` / `show` / `edit` / `delete` | manage tasks |
434
+ | `tspl task scope` | PM confirms or sends back the scope |
435
+ | `tspl task choose` | choose an approach before planning |
436
+ | `tspl task run` / `watch` / `status` | build a task, follow it, see where it is |
437
+ | `tspl task verify` | record a check you did by hand |
438
+ | `tspl plan list` / `show` / `approve` / `reject` / `amend` | review and decide on plans |
439
+ | `tspl build start` / `status` / `check` / `push` / `stop` | manual build commands |
440
+ | `tspl member ...` | people and roles |
441
+ | `tspl project ...` | projects, repos, branches and members |
442
+ | `tspl unlink` | forget repo locations on this computer |
443
+
444
+ Every command has its own help:
124
445
 
125
446
  ```bash
126
447
  tspl --help
127
- tspl <command> --help
448
+ tspl task run --help
128
449
  ```
450
+
451
+ ## 10. Files and settings
452
+
453
+ | Where | What | Shared? |
454
+ | --- | --- | --- |
455
+ | `~/.tspl/` | your login, settings, engine choice, where your repos are, and the local code map | No, this computer only |
456
+ | `.tspl/project.json` | the project's repos, checks (test, lint, typecheck, build), repair limits and pull request settings | Yes, commit it |
457
+ | `.tspl/instructions.md` | the project's rules for the AI; existing `CLAUDE.md` or `AGENTS.md` files are referenced, never rewritten | Yes, commit it |
458
+ | TSPL server | tasks, plans, approvals, reports, evidence and AI usage, never code | Your organization |
459
+
460
+ - To keep tspl's settings somewhere else, set `TSPL_HOME=/path`.
461
+ - The code map is built from git on your computer and refreshed in the background, reading only changed files. It is never uploaded.
462
+ - `.tspl/project.json` contains no tokens and no paths from your computer.
463
+
464
+ ## 11. Troubleshooting
465
+
466
+ | Problem | Fix |
467
+ | --- | --- |
468
+ | `Cannot reach the TSPL API` | check your internet connection, then `tspl whoami`; the address should be `https://aitool-api.techivies.com` |
469
+ | `You are logged in to …, not …` | run `tspl login --api https://aitool-api.techivies.com` |
470
+ | Login expired | run `tspl login` |
471
+ | Forgot your password | run `tspl forgot-password --email you@company.com` |
472
+ | `tspl needs Node 22 or newer` | install Node 22+ from https://nodejs.org, then reinstall tspl |
473
+ | `/tspl` doesn't show in your AI tool | run `tspl connect <tool>` and restart the tool |
474
+ | `plan approve` refuses to run | run it in a normal terminal, not inside an AI tool |
475
+ | Build won't start: uncommitted changes | commit or stash your work, then run again |
476
+ | Commit or push refused by a tspl hook | the file isn't in the approved plan; change the plan with `tspl plan amend`, or stop with `tspl build stop` |
477
+ | No pull request is opened | run `gh auth login`; for other git hosts use the compare link |
478
+ | The task stopped | run `tspl task status t-xxxx`; it prints the exact next command |
479
+ | An engine doesn't answer | run `tspl engines test`, then sign in to that AI tool |
480
+
481
+ ## 12. Update and uninstall
482
+
483
+ ```bash
484
+ npm install -g tspl-cli@latest # update
485
+ npm uninstall -g tspl-cli # uninstall
486
+ ```
487
+
488
+ Uninstalling keeps `~/.tspl` (your login and settings). Delete that folder to remove everything.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tspl-cli",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "TSPL command-line tool: learns your code, plans changes with you, builds, tests and opens pull requests",
5
5
  "keywords": [
6
6
  "tspl",