pidge-cli 0.15.0 → 0.15.1
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/CHANGELOG.md +4 -0
- package/bin/pidge.js +19 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.15.1 — #274-D skill polish
|
|
4
|
+
|
|
5
|
+
skill polish — catalog-first actions, write-for-the-lock-screen (banner = title+body; body_markdown is detail-only), good-report guidance; gold examples now set a plain --body.
|
|
6
|
+
|
|
3
7
|
## 0.15.0 — #274 CLI redesign (F1)
|
|
4
8
|
|
|
5
9
|
-m/--body-markdown-file input chain, --gated, English hello, --template off the help menu (still accepted), nag knows v46, --wait defaults to 60 min for decisions.
|
package/bin/pidge.js
CHANGED
|
@@ -1748,6 +1748,13 @@ Every send is **a TYPE + a markdown body + an OPTIONAL response**. The TYPE (one
|
|
|
1748
1748
|
|
|
1749
1749
|
⭐ \`important\` is the default. On the fence between informing and asking, pick \`important\`. \`message\` is only for a true no-action FYI. (\`fyi\`/\`report\`/\`ask\`/\`alert\` still work as silent aliases → message/important/important/urgent.) Run \`pidge <type> --help\` for each one's flags.
|
|
1750
1750
|
|
|
1751
|
+
## Write for the lock screen (what the human actually sees)
|
|
1752
|
+
|
|
1753
|
+
The banner shows your **\`--title\`** and **\`--body\`** (plain text). **\`--body-markdown\` does NOT appear on the banner** — it's the in-app detail screen only. So:
|
|
1754
|
+
- **Always give a concise \`--body\`** — the one-line human-readable gist. A title-only send can show as an empty banner (just your channel name).
|
|
1755
|
+
- Put the rich part (tables, lists, code, an image) in **\`--body-markdown\`** (and/or \`--image\`) — the human sees it when they tap in.
|
|
1756
|
+
- A good send: **title = the answer at a glance · body = the few facts they need to decide/act · body-markdown = the rich detail · ONE ask.** Never ship a title-only notification.
|
|
1757
|
+
|
|
1751
1758
|
## Approval has two paths — know which one you're in
|
|
1752
1759
|
|
|
1753
1760
|
**Path A — YOU request it (\`pidge approval\`).** You decided this needs a human sign-off. \`pidge approval\` = \`important\` + an **Approve** (Face-ID gated) / **Reject** pair + \`--wait\`. You send it, you block, and you get \`chosen_action.action_id: "grant"\` (approved) or \`"deny"\` (rejected) back. Use it for money, deletions, irreversible actions.
|
|
@@ -1760,7 +1767,7 @@ Every send is **a TYPE + a markdown body + an OPTIONAL response**. The TYPE (one
|
|
|
1760
1767
|
|
|
1761
1768
|
Asking for a reply is orthogonal to the type — you don't need \`approval\` to get a button.
|
|
1762
1769
|
- **Free text** is always available; the human can write back on anything.
|
|
1763
|
-
- **Buttons**
|
|
1770
|
+
- **Buttons** — reach for a BUILT-IN catalog action FIRST; they're tappable right on the lock-screen banner. Decisions: \`--actions yes,no\` · \`approve,reject\` · \`accept,decline\` · \`later\`; plus \`done\`, \`snooze\`, \`reply\`. Use \`--custom-action id:label\` ONLY when none fit — **custom labels (and any destructive/Face-ID action) render detail-only**, so the human must open the app to answer instead of tapping the banner.
|
|
1764
1771
|
- **Face ID** on a consequential action: \`--gated\` injects one confirm-with-Face-ID button (use it for money/deletion). It does NOT change loudness — pair with a louder profile if it must also be loud. A flag, not a type.
|
|
1765
1772
|
- **send-and-go vs wait** — the choice that decides how YOU work:
|
|
1766
1773
|
- *send-and-go* (default): fire and continue; the answer arrives later in \`pidge listen --all\`.
|
|
@@ -1779,12 +1786,14 @@ Need a TYPED reply (a time/value/name)? \`--actions reply\` ALONE — never \`ye
|
|
|
1779
1786
|
6. **Don't spam to signal importance.** Consolidate into one markdown body; use \`--collapse-key\` for self-replacing progress, \`--thread\` only for follow-ups over time.
|
|
1780
1787
|
7. **Be listening when the answer lands, or you lose it.** Ack only AFTER the work is durably done.
|
|
1781
1788
|
8. **English only, phone-friendly markdown.** Narrow tables (they render), no emoji-spam.
|
|
1789
|
+
9. **Banner-first + catalog-first.** Give a real \`--body\` (the banner shows title+body, never body-markdown), and fit decisions into a catalog action (\`yes,no\`/\`approve,reject\`) before inventing a custom label (custom = a tap-through, not a banner tap).
|
|
1782
1790
|
|
|
1783
1791
|
## Gold examples (full commands)
|
|
1784
1792
|
|
|
1785
1793
|
Pendency with a real table → \`important\`:
|
|
1786
1794
|
\`\`\`bash
|
|
1787
1795
|
pidge important --title "Weekly metrics ready" \\
|
|
1796
|
+
--body "Signups 1,204 (+8%) · churn 1.9% (−0.3pp) · table inside" \\
|
|
1788
1797
|
--body-markdown $'| Metric | This week | Δ |\\n|---|---|---|\\n| Signups | 1,204 | +8% |\\n| Churn | 1.9% | −0.3pp |' \\
|
|
1789
1798
|
--actions reply
|
|
1790
1799
|
\`\`\`
|
|
@@ -1792,7 +1801,8 @@ pidge important --title "Weekly metrics ready" \\
|
|
|
1792
1801
|
Blocking decision → ask→wait loop (handle exit 3):
|
|
1793
1802
|
\`\`\`bash
|
|
1794
1803
|
pidge important --title "Run the schema migration?" \\
|
|
1795
|
-
--body
|
|
1804
|
+
--body "Drops legacy_orders (412k rows), not reversible. Safe mid-deploy?" \\
|
|
1805
|
+
--body-markdown "Dropping \\\`legacy_orders\\\` (412k rows, archived 2025). **Not reversible.** Safe to run mid-deploy?" \\
|
|
1796
1806
|
--actions yes,no --wait --timeout 3600
|
|
1797
1807
|
# exit 0 → read chosen_action.action_id (yes|no); exit 3 → no answer, treat as NO / hold, re-ask
|
|
1798
1808
|
\`\`\`
|
|
@@ -1800,19 +1810,22 @@ pidge important --title "Run the schema migration?" \\
|
|
|
1800
1810
|
Agent-initiated approval (money) → \`pidge approval\`:
|
|
1801
1811
|
\`\`\`bash
|
|
1802
1812
|
pidge approval --title "Place \\$4,200 purchase order?" \\
|
|
1803
|
-
--body
|
|
1813
|
+
--body "Acme · PO #4471 · \\$4,200 — moves real money" \\
|
|
1814
|
+
--body-markdown "Vendor: Acme · PO #4471 · **\\$4,200**, moves real money." \\
|
|
1804
1815
|
--wait --timeout 3600
|
|
1805
1816
|
# = important + Approve(Face ID)/Reject + wait; chosen_action.action_id: grant|deny
|
|
1806
1817
|
\`\`\`
|
|
1807
1818
|
|
|
1808
1819
|
Time-anchored → \`event\` (needs \`--event-at\` in the human's tz):
|
|
1809
1820
|
\`\`\`bash
|
|
1810
|
-
pidge event --event-at "2026-06-30T15:00:00-03:00" --title "Call with accountant"
|
|
1821
|
+
pidge event --event-at "2026-06-30T15:00:00-03:00" --title "Call with accountant" \\
|
|
1822
|
+
--body "3pm tomorrow with the accountant"
|
|
1811
1823
|
\`\`\`
|
|
1812
1824
|
|
|
1813
1825
|
Long markdown without shell-quoting pain → pipe it:
|
|
1814
1826
|
\`\`\`bash
|
|
1815
|
-
generate_report | pidge important --title "Report ready"
|
|
1827
|
+
generate_report | pidge important --title "Report ready" \\
|
|
1828
|
+
--body "Q2 report ready — revenue, churn, and 3 risks inside" --body-markdown-file - --actions reply
|
|
1816
1829
|
\`\`\`
|
|
1817
1830
|
|
|
1818
1831
|
## Gotchas we already paid for
|
|
@@ -1823,6 +1836,7 @@ generate_report | pidge important --title "Report ready" --body-markdown-file -
|
|
|
1823
1836
|
- **The ask reply-vs-yes/no trap.** \`--actions yes,no,reply\` lets the human dodge a typed answer with one tap — use \`--actions reply\` alone when you need text.
|
|
1824
1837
|
- **\`event\` is quiet today** — \`event --event-at\` schedules; the countdown LA-as-primitive is still being built.
|
|
1825
1838
|
- **content_template still parses as input** (back-compat) but is OFF the menu — if a legacy habit sends \`--template report\`, it silently maps; don't rely on it, don't teach it.
|
|
1839
|
+
- **The banner ≠ the detail screen.** Lock-screen banner = \`title\` + \`body\` (plain). \`body_markdown\`/images render only when the human taps in. A send with only \`--title\` can look empty on the lock screen — always include a \`--body\`.
|
|
1826
1840
|
|
|
1827
1841
|
## How it intrudes (profiles — the human owns them)
|
|
1828
1842
|
|