slack-term 1.43.0 → 1.44.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.
package/README.md CHANGED
@@ -125,6 +125,11 @@ slack react "<permalink>" eyes --remove # take a reaction back
125
125
  # one tap on an existing pill, no emoji picker. Same two-step confirm gate as send.
126
126
  # A ❓ "その他 (other)" pill always follows the choices: pressing it means "none of
127
127
  # these" and the answer comes as a reply (exit 5), not as the ❓ itself.
128
+ # --explain (or SLACK_TERM_ASK_EXPLAIN=1) adds an ℹ️ "説明して (explain)" pill after ❓:
129
+ # pressing it asks YOU to explain in the thread and is never an answer — the question
130
+ # stays open. --wait/--waitFor say so on stderr and may post ONE thread note (once per
131
+ # question) saying an explanation is coming; --explain-exit makes that exit 7.
132
+ # --pending only reports a ℹ️ press — it posts nothing.
128
133
  # The instructions are posted in ja or en: --lang / SLACK_TERM_LANG, else the
129
134
  # answerers' Slack locale, else the question's own language, else $LANG, else ja.
130
135
  slack ask "@bob" "本番に出してよい?" "出してよい" "待って"
package/SKILL.md CHANGED
@@ -178,6 +178,16 @@ without losing clicks. A reaction is durable state anyone can read back later.
178
178
  (`1️⃣ … 2️⃣ … 3️⃣ … ❓ その他 — スレッドで返信`) and seeds it after the keycaps. Pressing it
179
179
  is not an answer — `--wait` notes it on stderr and keeps waiting for the reply, which
180
180
  arrives as free text (exit `5`).
181
+ - **ℹ️ is the "explain first" pill** — offered with `--explain` (or
182
+ `SLACK_TERM_ASK_EXPLAIN=1`; `--no-explain` overrides), listed under ❓ and seeded after
183
+ it. ❓ means "none fit, my answer follows"; ℹ️ means "I can't answer yet — explain".
184
+ It **never answers or closes** the question: no ✅, the pills stay. `--wait`/`--waitFor`
185
+ print who pressed it on stderr (`--json`: `explain: [user ids]`) and may post ONE thread
186
+ note per question saying an explanation is coming (the thread is the record — re-presses
187
+ and re-runs post nothing more). Then explain in the thread and keep collecting.
188
+ `--explain-exit` stops with exit `7` (stdout empty; `--json` `status: "explain"`) on the
189
+ run that posts that note, so a `--timeout 0` poller hears about it once. Only the
190
+ question's audience counts; bots and the asker are ignored.
181
191
  - **The instructions are posted in `ja` or `en`.** `--lang` (or `SLACK_TERM_LANG`) decides;
182
192
  otherwise the answerers' Slack locale when they all share one, else the language the
183
193
  question is written in, else the system locale, else `ja`. The confirm gate prints the
@@ -187,7 +197,7 @@ without losing clicks. A reaction is durable state anyone can read back later.
187
197
  - **Exit codes** are the contract: `0` answered (the answer alone on stdout), `2` nobody
188
198
  replied, `3` transport/config failure, `4` a reply matched several choices (stdout
189
199
  empty), `6` the question was **voided** (stop waiting), `5` a **free-text reply** that picked none of the offered choices — the reply
190
- text is on stdout. Everything human-facing goes to stderr, so
200
+ text is on stdout. `7` (only with `--explain-exit`) — ℹ️ pressed, explain and collect again. Everything human-facing goes to stderr, so
191
201
  `ANS=$(slack ask … --wait)` is safe.
192
202
  - **A reply that chooses nothing is delivered, but is not a decision.** When choices were
193
203
  offered, only a reaction, the choice text, or its number is a decision (`0`). A reply
@@ -254,7 +264,8 @@ an answer can be pressed and nobody ever hears about it.
254
264
  collected, and lists the ones somebody answered — grouped by the asking session, with
255
265
  the agent pid and whether it is still alive (pid running, started before the ask, same
256
266
  CLI), and per item the exact `collect:` line to run (cursor included). It is read-only —
257
- nothing is posted, edited, stamped or relayed. Collecting is that `slack ask --waitFor=…`
267
+ nothing is posted, edited, stamped or relayed (an ℹ️ explain request is reported on
268
+ stderr, but its thread note is left to `--wait`/`--waitFor`). Collecting is that `slack ask --waitFor=…`
258
269
  line: an answer it hands over (exit 0) takes the ask off the list; a free-text reply it
259
270
  hands over (exit 5) is not reported again, but a pill pressed after it is.
260
271