shapeup-cli 0.11.2 → 0.12.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bcea431afcfe958db1055f75a15957a2b3e69320ad4c67045dd305ffd0c88c2a
4
- data.tar.gz: 4f5109b6bfe1144db66413482e300cffa542ad357dbcbb8cec034330ef8e7d5d
3
+ metadata.gz: 6447a0d1f215f3783af0c866c6fb17d8cc1e68730255d1e8e1702ce622fd514a
4
+ data.tar.gz: 3cf15b4881fd01dec7fae24260ec46979c2292b518cc8bca7acc775b6be966a0
5
5
  SHA512:
6
- metadata.gz: 1cd8502dc208393d11f2f0755caf331389bf1326cf898bcb20995889a8a93c837a580bbada74a92d5c3caec8465009c64000b89da0f98c304b5bc7e53bc02ead
7
- data.tar.gz: 37a268a7426bfa61112d220e374ab20b3a8a0377e95f7e10c162f297396360b377721f3a13862c44e442834a834083db03717fc375e026ee1e1bebea0bec36b8
6
+ metadata.gz: 778fe7a8e86453e69ca8c79cfce6020b287f5304356a2cee23555d4c215eb88f6d6257bb43ca63cf302c42daf30f792243f7ba6d5a4420b7c6008ae2a9d05118
7
+ data.tar.gz: 4fd556546a7bc427fa488c43500b4f48a8c86cff85512ea1d9363af6fc2fa892c091f67b032a803a0d04e9dc84522cc43ba67507ea2766cae048157482116b62
@@ -10,11 +10,13 @@ module ShapeupCli
10
10
  short: "For agents: requests waiting on issues, and marking them done",
11
11
  subcommands: [
12
12
  { name: "list", short: "List requests waiting for this agent", path: "shapeup inbox" },
13
+ { name: "start", short: "Show on the issue that you're working on a request, with a short status", path: 'shapeup inbox start <id> [--status "..."]' },
13
14
  { name: "done", short: "Take a handled request out of the inbox", path: "shapeup inbox done <id>" }
14
15
  ],
15
16
  examples: [
16
17
  "shapeup inbox",
17
18
  "shapeup inbox --json",
19
+ 'shapeup inbox start 812 --status "Taking screenshots"',
18
20
  "shapeup inbox done 812"
19
21
  ]
20
22
  }
@@ -22,6 +24,7 @@ module ShapeupCli
22
24
 
23
25
  def execute
24
26
  case positional_arg(0)
27
+ when "start" then start
25
28
  when "done" then done
26
29
  else list
27
30
  end
@@ -40,6 +43,14 @@ module ShapeupCli
40
43
  ]
41
44
  end
42
45
 
46
+ def start
47
+ status = extract_option("--status")
48
+ id = positional_arg(1) || abort('Usage: shapeup inbox start <id> [--status "..."]')
49
+ result = call_tool("start_inbox_item", **{ item: id.to_s, status: status }.compact)
50
+
51
+ render result, summary: "Working on request #{id}"
52
+ end
53
+
43
54
  def done
44
55
  id = positional_arg(1) || abort("Usage: shapeup inbox done <id>")
45
56
  result = call_tool("complete_inbox_item", item: id.to_s)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ShapeupCli
4
- VERSION = "0.11.2"
4
+ VERSION = "0.12.0"
5
5
  end
@@ -133,18 +133,17 @@ A `request` line carries `id`, `reason` (mentioned, replied, assigned or watchin
133
133
 
134
134
  1. **Acknowledge it.** When `request.comment_id` is set, react to it:
135
135
  `shapeup --profile <profile> comments react <comment_id> 👀`
136
- When it is null (the agent was assigned, or mentioned in the issue itself), there is nothing to
137
- react to, so post a short comment instead and reply under it later:
138
- `shapeup --profile <profile> comments add --issue <issue_id> "On it. I'll reply here when it's done." --json`
139
- Set `reply_to.comment_id` to the new comment's `id` before handing off.
136
+ Post no comment to acknowledge it: the issue shows the request's state by itself.
140
137
  2. **Show it's in progress.** List the columns with `shapeup --profile <profile> issues columns --json`.
141
138
  If one reads like "In progress" or "Doing", move the issue there with
142
139
  `shapeup --profile <profile> issues move <issue_id> --column "<name>"`. If there is none, skip this.
143
140
  3. **Hand it off, one at a time.** Workers share this folder and its git checkout, so never run two
144
- at once. If no worker is running, start one background subagent with the request line and the
145
- worker brief below, and tell the user in one line, for example "@bond picked up #42 from
141
+ at once. If no worker is running, show it's under way with
142
+ `shapeup --profile <profile> inbox start <id> --status "Reading the issue"` (a comment from the
143
+ agent clears the status, so don't comment before the reply), then start one background subagent with
144
+ the request line and the worker brief below, and tell the user in one line, for example "@bond picked up #42 from
146
145
  @miles". If one is still running, hold the request: tell the user it's queued behind the current
147
- one, and start it when that worker finishes, oldest first.
146
+ one, and when that worker finishes, run `inbox start` for the oldest held request and start it.
148
147
  4. **Keep listening.** Once every line of the connector's output is handled, start it again as above.
149
148
 
150
149
  ## Worker brief
@@ -165,7 +164,11 @@ Give the subagent this, filled in:
165
164
  > 4. If the ask is unclear or you are blocked, ask on the issue rather than guess. If the issue is
166
165
  > clearly about a different product or codebase than this repository, say so on the issue and
167
166
  > stop.
168
- > 5. If the work changes anything people see, compare it the way a careful reviewer would:
167
+ > 5. Keep the issue showing what you're doing: at each step (writing the change, running the
168
+ > tests, taking screenshots), and at least every 20 minutes, run
169
+ > `shapeup --profile <profile> inbox start <id> --status "<a few words>"`. After 30 minutes
170
+ > without one, the issue says you stopped responding.
171
+ > 6. If the work changes anything people see, compare it the way a careful reviewer would:
169
172
  > - From your diff, list the screens and states it touches, including the ones it could break.
170
173
  > - Run the main branch beside yours: check main out into a git worktree outside this
171
174
  > repository and start it on a second port, so both are up at once. How to start and sign in
@@ -174,7 +177,7 @@ Give the subagent this, filled in:
174
177
  > the same content, plus a phone width and dark mode where they matter. Save PNGs outside the
175
178
  > repository, named for what they show.
176
179
  > - Stop the second server and remove the worktree when you're done.
177
- > 6. Reply once, under the comment that asked:
180
+ > 7. Reply once, under the comment that asked:
178
181
  > `shapeup --profile <profile> comments add --issue <issue.id> --parent <reply_to.comment_id> "<reply>"`
179
182
  > (leave out `--parent` when `reply_to.comment_id` is null). Start with `@<requester.name>`,
180
183
  > then say what changed, the branch and commit, and how you checked it. Keep it plain.
@@ -195,13 +198,12 @@ Give the subagent this, filled in:
195
198
  > people who can't see it, so say what it shows; the quoted word is its caption. End with a
196
199
  > `## Worth a look` section for anything that seems off, and mention whoever the requester asked
197
200
  > you to hand over to.
198
- > 7. Then take it out of the inbox: `shapeup --profile <profile> inbox done <id>`.
199
- > 8. Report back in one line.
201
+ > 8. Then take it out of the inbox: `shapeup --profile <profile> inbox done <id>`.
202
+ > 9. Report back in one line.
200
203
 
201
204
  ## Rules
202
205
 
203
- - One reply per request, plus the "On it" comment when there was nothing to react to. Never treat
204
- your own comments as requests.
206
+ - One reply per request. Never treat your own comments as requests.
205
207
  - Never run two workers at once in this folder.
206
208
  - Never print or repeat the agent's token.
207
209
  - Never install, upgrade or replace the ShapeUp CLI.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shapeup-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ShapeUp