← Files LongbridgeARCHIVED FILE
references/alert.md
5.43 KB · Sep 30, 2026 · 23:19 UTC
# longbridge-alert
⚠️ **Mutating skill**: changes the user's price-alert state on Longbridge. No money is involved, but the change is persistent and will affect future push notifications.
## Two-step protocol (mandatory)
Every mutation must run as **two distinct turns**:
1. **Preview** — describe exactly what you are about to do (symbol, target price, direction `rise`/`fall`, alert id for delete/enable/disable), in the user's language. **Do not run the CLI yet.**
2. **Wait for explicit confirmation** containing "确认 / yes / 是的 / confirm". If the user replies anything ambiguous, ask again — do **not** assume consent.
3. **Execute** — only after step 2, run the actual `longbridge alert <subcommand> ...` command.
> The Longbridge CLI's `delete` subcommand prints its own confirmation prompt — let it run; do not pipe `yes` or pass any flag that bypasses it. For `add` / `enable` / `disable`, this skill's preview-then-confirm protocol is the SKILL-layer gate.
## CLI subcommands
`longbridge alert` carries one read mode (no subcommand) and four write subcommands. **Always run `longbridge alert <subcommand> --help` first if you are not 100% sure of the current flag spelling, defaults, or argument order** — this protects against version drift.
| Action | CLI invocation (typical shape — verify with `--help` before use) |
| -------------------------- | -------------------------------------------------------------------------------------- |
| List all alerts | `longbridge alert --format json` |
| List alerts for one symbol | `longbridge alert <SYMBOL> --format json` |
| Add a price alert | `longbridge alert add <SYMBOL> --price <PRICE> --direction <rise\|fall> --format json` |
| Delete an alert by id | `longbridge alert delete <ALERT_ID> --format json` |
| Enable an alert | `longbridge alert enable <ALERT_ID> --format json` |
| Disable an alert | `longbridge alert disable <ALERT_ID> --format json` |
> The `delete` subcommand has a built-in confirmation prompt. Let it run interactively in your environment.
If the user gives a **symbol** but no alert id for delete/enable/disable, first run `longbridge alert <SYMBOL> --format json` to look up the id, then quote the id back in your preview before asking for confirmation.
## Preview templates (LLM)
> 即将{动作}:{plan 摘要}。是否确认执行?
>
> About to {action}: {plan summary}. Confirm?
>
> 即將{動作}:{plan 摘要}。是否確認執行?
Examples:
- _"即将设置 NVDA.US 在 200 美元时提醒,价格上穿触发。是否确认执行?"_
- _"About to add a price alert on TSLA.US at 250 USD, triggered when price falls below. Confirm?"_
- _"即將刪除提醒 486469(NVDA.US @ 200,上穿)。是否確認執行?"_
- _"即将停用提醒 486469。是否确认?"_
If the user did not specify a direction (rise vs fall), **ask** — do not default. If the user did not specify a price, ask. Never invent values.
## OAuth scope
Price alerts are tied to the user's Longbridge account but do not place trades, so the **basic login scope** is sufficient — `longbridge auth login` without trade scope works. If the call returns `unauthorized`, tell the user to re-run `longbridge auth login` and complete the OAuth flow.
## Error handling
| Situation | LLM response |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Shell `command not found: longbridge` | Tell the user to install [longbridge-terminal](https://github.com/longportapp/longbridge-terminal); MCP fallback can apply (see below) but **only after user confirmation** — never use MCP to bypass the preview / confirm protocol. |
| stderr contains `not logged in` / `unauthorized` | Tell the user to run `longbridge auth login`. |
| Bad `<ALERT_ID>` (not found) | Re-run the list command (`longbridge alert --format json`) and re-check the id. |
| `direction` flag rejected | Run `longbridge alert add --help` to confirm the current accepted values (typically `rise` / `fall`); surface the help excerpt to the user. |
| Other stderr | Surface verbatim. **Do not silently retry** — if a mutating call failed, ask the user before any second attempt. |
SHA-256: 07df0a03108c1ecf042f8821c2b5e9a5298ab5e781abfffa53b2322d4d3b2825