boringpm 0.1.2 → 0.1.4
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/README.md +58 -47
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
# CLI
|
|
1
|
+
# boringpm CLI
|
|
2
2
|
|
|
3
3
|
Project manager CLI for scripts, automation, and agent workflows.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
npm i -g boringpm
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Command
|
|
12
|
+
|
|
13
|
+
When installed globally, use:
|
|
8
14
|
|
|
9
15
|
- `boringpm`
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
If you're running from source in this repo, use `npm run dev -- <command>` from `cli/`.
|
|
18
|
+
|
|
19
|
+
By default, `boringpm` uses `https://boringpm.onrender.com` as the API URL.
|
|
20
|
+
You can override it with `PM_API_URL` or `--api-url`.
|
|
21
|
+
|
|
22
|
+
## Development scripts
|
|
12
23
|
|
|
13
24
|
```bash
|
|
14
25
|
npm run dev -- --help
|
|
@@ -21,10 +32,10 @@ npm run build
|
|
|
21
32
|
Interactive login with persisted token:
|
|
22
33
|
|
|
23
34
|
```bash
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
boringpm login
|
|
36
|
+
boringpm whoami
|
|
37
|
+
boringpm project list
|
|
38
|
+
boringpm logout
|
|
28
39
|
```
|
|
29
40
|
|
|
30
41
|
This stores auth session data in:
|
|
@@ -44,96 +55,96 @@ If multiple projects have the same name, use the project ID.
|
|
|
44
55
|
|
|
45
56
|
```bash
|
|
46
57
|
# Create and manage teams
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
boringpm team create "Engineering Team"
|
|
59
|
+
boringpm team list
|
|
60
|
+
boringpm team view <team-id>
|
|
61
|
+
boringpm team update <team-id> --name "New Team Name"
|
|
51
62
|
|
|
52
63
|
# Add and remove team members (owner only)
|
|
53
|
-
|
|
54
|
-
|
|
64
|
+
boringpm team add-member <team-id> <user-id>
|
|
65
|
+
boringpm team remove-member <team-id> <user-id>
|
|
55
66
|
|
|
56
67
|
# List projects in a team
|
|
57
|
-
|
|
68
|
+
boringpm team projects <team-id>
|
|
58
69
|
|
|
59
70
|
# Delete team (owner only, blocked if projects exist)
|
|
60
|
-
|
|
71
|
+
boringpm team delete <team-id>
|
|
61
72
|
```
|
|
62
73
|
|
|
63
74
|
## Project management examples
|
|
64
75
|
|
|
65
76
|
```bash
|
|
66
77
|
# Create project (optionally linked to team)
|
|
67
|
-
|
|
68
|
-
|
|
78
|
+
boringpm project create "My Project"
|
|
79
|
+
boringpm project create "Team Project" --team <team-id>
|
|
69
80
|
|
|
70
81
|
# View projects
|
|
71
|
-
|
|
72
|
-
|
|
82
|
+
boringpm project list
|
|
83
|
+
boringpm project view minigta
|
|
73
84
|
```
|
|
74
85
|
|
|
75
86
|
## Single-entity view examples
|
|
76
87
|
|
|
77
88
|
```bash
|
|
78
|
-
|
|
79
|
-
|
|
89
|
+
boringpm plan view <plan-id>
|
|
90
|
+
boringpm task view <task-id>
|
|
80
91
|
```
|
|
81
92
|
|
|
82
93
|
## Spec-first workflow examples
|
|
83
94
|
|
|
84
95
|
```bash
|
|
85
96
|
# Create and approve spec first
|
|
86
|
-
|
|
87
|
-
|
|
97
|
+
boringpm plan create minigta "Auth hardening spec" --content "..."
|
|
98
|
+
boringpm plan approve <plan-id>
|
|
88
99
|
|
|
89
100
|
# Create task linked to approved spec
|
|
90
|
-
|
|
101
|
+
boringpm task create minigta "Implement auth guard" --plan <plan-id>
|
|
91
102
|
```
|
|
92
103
|
|
|
93
104
|
## Agent workflow examples
|
|
94
105
|
|
|
95
106
|
```bash
|
|
96
107
|
# See only tasks assigned to you in one project
|
|
97
|
-
|
|
108
|
+
boringpm task list minigta --mine
|
|
98
109
|
|
|
99
110
|
# See your tasks across all visible projects
|
|
100
|
-
|
|
111
|
+
boringpm task mine --status in_progress
|
|
101
112
|
|
|
102
113
|
# Claim a specific task
|
|
103
|
-
|
|
114
|
+
boringpm task claim <task-id>
|
|
104
115
|
|
|
105
116
|
# Claim the next pending task in the project
|
|
106
|
-
|
|
117
|
+
boringpm task next minigta
|
|
107
118
|
|
|
108
119
|
# Add test scenarios and record results
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
120
|
+
boringpm task test-add minigta <task-id> "happy path" --steps "..." --expected "..."
|
|
121
|
+
boringpm task tests minigta <task-id>
|
|
122
|
+
boringpm task test-result minigta <task-id> <scenario-id> pass --evidence "CI run #123"
|
|
112
123
|
|
|
113
124
|
# Move task to testing, then complete with note
|
|
114
|
-
|
|
115
|
-
|
|
125
|
+
boringpm task move <task-id> testing
|
|
126
|
+
boringpm task done <task-id> --note "Implemented endpoint + tests"
|
|
116
127
|
|
|
117
128
|
# Forced completion requires waiver metadata
|
|
118
|
-
|
|
129
|
+
boringpm task done <task-id> --force --waiver-reason "prod incident" --approved-by lead-user-id
|
|
119
130
|
|
|
120
131
|
# Release assignment (defaults to pending when in_progress/testing)
|
|
121
|
-
|
|
132
|
+
boringpm task release <task-id>
|
|
122
133
|
|
|
123
134
|
# Add or read task comments
|
|
124
|
-
|
|
125
|
-
|
|
135
|
+
boringpm task comment minigta <task-id> "started implementation"
|
|
136
|
+
boringpm task comments minigta <task-id>
|
|
126
137
|
|
|
127
138
|
# Legacy alias (also clears assignee)
|
|
128
|
-
|
|
139
|
+
boringpm task unclaim <task-id>
|
|
129
140
|
|
|
130
141
|
# Delete commands prompt for confirmation by default
|
|
131
|
-
|
|
132
|
-
|
|
142
|
+
boringpm task delete <task-id>
|
|
143
|
+
boringpm plan delete <plan-id>
|
|
133
144
|
|
|
134
145
|
# Use --force / -f for non-interactive runs
|
|
135
|
-
|
|
136
|
-
|
|
146
|
+
boringpm task delete <task-id> --force
|
|
147
|
+
boringpm plan delete <plan-id> -f
|
|
137
148
|
```
|
|
138
149
|
|
|
139
150
|
## Completion gate
|
|
@@ -158,13 +169,13 @@ export PM_AUTH_TOKEN=<token>
|
|
|
158
169
|
### 2) Per-command token
|
|
159
170
|
|
|
160
171
|
```bash
|
|
161
|
-
|
|
172
|
+
boringpm --token <token> project list
|
|
162
173
|
```
|
|
163
174
|
|
|
164
175
|
### 3) Raw auth endpoints
|
|
165
176
|
|
|
166
177
|
```bash
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
178
|
+
boringpm auth send-link you@company.com
|
|
179
|
+
boringpm auth verify you@company.com <code>
|
|
180
|
+
boringpm auth me --token <token>
|
|
170
181
|
```
|
package/dist/index.js
CHANGED
|
@@ -154,8 +154,8 @@ const program = new Command();
|
|
|
154
154
|
program
|
|
155
155
|
.name("boringpm")
|
|
156
156
|
.description("Project manager CLI")
|
|
157
|
-
.version("0.1.
|
|
158
|
-
.option("--api-url <url>", "Project manager API base URL", process.env.PM_API_URL ?? "
|
|
157
|
+
.version("0.1.4")
|
|
158
|
+
.option("--api-url <url>", "Project manager API base URL", process.env.PM_API_URL ?? "https://boringpm.onrender.com")
|
|
159
159
|
.option("--token <token>", "Auth token (overrides PM_AUTH_TOKEN and stored token)")
|
|
160
160
|
.option("--actor-name <name>", "Display name for notifications (overrides PM_ACTOR_NAME)");
|
|
161
161
|
program
|