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