251148c3ff
## Summary - add repository-wide quality tooling and verification scaffolding, including CI workflows, pnpm workspace setup, ESLint/Prettier/markdown checks, and generated-output verification helpers - reorganize skill sources and generation flow by introducing canonical `_source` variants, generator/manifests, reusable helper abstractions, and shared web-automation/browser utilities - clean up and expand documentation so the root README flows into docs and skill docs, with clearer development, reviewer, installer, and workflow guidance ## Notable changes - docs flow and consistency cleanup across `README.md`, `docs/README.md`, and related docs - new scripts for `check`, docs verification, generated-file verification, shell portability, and safe directory replacement - refactors in Atlassian and web-automation skill runtimes to reduce duplication and centralize reusable code - changelog, development documentation, and CI surface updates ## Test Plan - [ ] `pnpm run check` - [ ] review generated/manifests and skill sync outputs - [ ] smoke-check docs flow from `README.md` to `docs/README.md` to skill docs ## Notes - this branch currently includes tracked `skills/web-automation/shared/node_modules` content that should be reviewed carefully as potentially noisy/accidental committed artifacts Co-authored-by: Stefano Fiorini <stefano.fiorini@firsthorizon.com> Reviewed-on: #1
162 lines
4.4 KiB
Markdown
162 lines
4.4 KiB
Markdown
# TELEGRAM-NOTIFICATIONS
|
|
|
|
## Purpose
|
|
|
|
Shared setup for Telegram notifications used by reviewer-driven skills such as
|
|
`create-plan`, `implement-plan`, and `do-task`, both for completion and for
|
|
pauses that need user attention.
|
|
|
|
## Requirements
|
|
|
|
- Telegram bot token in `TELEGRAM_BOT_TOKEN`
|
|
- Telegram chat id in `TELEGRAM_CHAT_ID`
|
|
- Notification helper installed beside the shared reviewer runtime:
|
|
- Codex: `~/.codex/skills/reviewer-runtime/notify-telegram.sh`
|
|
- Claude Code: `~/.claude/skills/reviewer-runtime/notify-telegram.sh`
|
|
- OpenCode: `~/.config/opencode/skills/reviewer-runtime/notify-telegram.sh`
|
|
- Cursor: `.cursor/skills/reviewer-runtime/notify-telegram.sh`
|
|
or `~/.cursor/skills/reviewer-runtime/notify-telegram.sh`
|
|
- Pi: `.pi/skills/reviewer-runtime/pi/notify-telegram.sh`
|
|
or `~/.pi/agent/skills/reviewer-runtime/pi/notify-telegram.sh`
|
|
|
|
## Install
|
|
|
|
The helpers ship from `skills/reviewer-runtime/` (non-Pi) and
|
|
`skills/reviewer-runtime/pi/` (Pi) together with `run-review.sh`.
|
|
|
|
### Codex
|
|
|
|
```bash
|
|
mkdir -p ~/.codex/skills/reviewer-runtime
|
|
cp skills/reviewer-runtime/run-review.sh \
|
|
skills/reviewer-runtime/notify-telegram.sh \
|
|
~/.codex/skills/reviewer-runtime/
|
|
chmod +x ~/.codex/skills/reviewer-runtime/*.sh
|
|
```
|
|
|
|
### Claude Code
|
|
|
|
```bash
|
|
mkdir -p ~/.claude/skills/reviewer-runtime
|
|
cp skills/reviewer-runtime/run-review.sh \
|
|
skills/reviewer-runtime/notify-telegram.sh \
|
|
~/.claude/skills/reviewer-runtime/
|
|
chmod +x ~/.claude/skills/reviewer-runtime/*.sh
|
|
```
|
|
|
|
### OpenCode
|
|
|
|
```bash
|
|
mkdir -p ~/.config/opencode/skills/reviewer-runtime
|
|
cp skills/reviewer-runtime/run-review.sh \
|
|
skills/reviewer-runtime/notify-telegram.sh \
|
|
~/.config/opencode/skills/reviewer-runtime/
|
|
chmod +x ~/.config/opencode/skills/reviewer-runtime/*.sh
|
|
```
|
|
|
|
### Cursor
|
|
|
|
Repo-local install:
|
|
|
|
```bash
|
|
mkdir -p .cursor/skills/reviewer-runtime
|
|
cp skills/reviewer-runtime/run-review.sh \
|
|
skills/reviewer-runtime/notify-telegram.sh \
|
|
.cursor/skills/reviewer-runtime/
|
|
chmod +x .cursor/skills/reviewer-runtime/*.sh
|
|
```
|
|
|
|
Global install:
|
|
|
|
```bash
|
|
mkdir -p ~/.cursor/skills/reviewer-runtime
|
|
cp skills/reviewer-runtime/run-review.sh \
|
|
skills/reviewer-runtime/notify-telegram.sh \
|
|
~/.cursor/skills/reviewer-runtime/
|
|
chmod +x ~/.cursor/skills/reviewer-runtime/*.sh
|
|
```
|
|
|
|
### Pi
|
|
|
|
Pi uses a separate set of helpers from `skills/reviewer-runtime/pi/` that are
|
|
optimized for the Pi agent environment. See
|
|
[PI-COMMON-REVIEWER.md](./PI-COMMON-REVIEWER.md) for full details.
|
|
|
|
Global install:
|
|
|
|
```bash
|
|
mkdir -p ~/.pi/agent/skills/reviewer-runtime/pi
|
|
cp -R skills/reviewer-runtime/pi/* ~/.pi/agent/skills/reviewer-runtime/pi/
|
|
chmod +x ~/.pi/agent/skills/reviewer-runtime/pi/*.sh
|
|
```
|
|
|
|
Repo-local install:
|
|
|
|
```bash
|
|
mkdir -p .pi/skills/reviewer-runtime/pi
|
|
cp -R skills/reviewer-runtime/pi/* .pi/skills/reviewer-runtime/pi/
|
|
chmod +x .pi/skills/reviewer-runtime/pi/*.sh
|
|
```
|
|
|
|
## Verify Installation
|
|
|
|
### Verify: Non-Pi agents
|
|
|
|
```bash
|
|
test -x ~/.codex/skills/reviewer-runtime/notify-telegram.sh || true
|
|
test -x ~/.claude/skills/reviewer-runtime/notify-telegram.sh || true
|
|
test -x ~/.config/opencode/skills/reviewer-runtime/notify-telegram.sh || true
|
|
test -x .cursor/skills/reviewer-runtime/notify-telegram.sh \
|
|
|| test -x ~/.cursor/skills/reviewer-runtime/notify-telegram.sh || true
|
|
```
|
|
|
|
### Verify: Pi
|
|
|
|
```bash
|
|
test -x .pi/skills/reviewer-runtime/pi/notify-telegram.sh \
|
|
|| test -x ~/.pi/agent/skills/reviewer-runtime/pi/notify-telegram.sh || true
|
|
```
|
|
|
|
## Configure Telegram
|
|
|
|
Export the required variables before running a skill that sends Telegram
|
|
notifications:
|
|
|
|
```bash
|
|
export TELEGRAM_BOT_TOKEN="<bot-token>"
|
|
export TELEGRAM_CHAT_ID="<chat-id>"
|
|
```
|
|
|
|
Optional:
|
|
|
|
```bash
|
|
export TELEGRAM_API_BASE_URL="https://api.telegram.org"
|
|
```
|
|
|
|
## Test the Helper
|
|
|
|
Non-Pi agents example:
|
|
|
|
```bash
|
|
TELEGRAM_BOT_TOKEN="<bot-token>" \
|
|
TELEGRAM_CHAT_ID="<chat-id>" \
|
|
skills/reviewer-runtime/notify-telegram.sh --message "Telegram notification test"
|
|
```
|
|
|
|
Pi example:
|
|
|
|
```bash
|
|
TELEGRAM_BOT_TOKEN="<bot-token>" \
|
|
TELEGRAM_CHAT_ID="<chat-id>" \
|
|
skills/reviewer-runtime/pi/notify-telegram.sh --message "Pi Telegram test"
|
|
```
|
|
|
|
## Rules
|
|
|
|
- Telegram is the only supported notification path for these skills.
|
|
- Notification failures are non-blocking, but they must be surfaced to the user.
|
|
- Before stopping for any user interaction, approval, or manual decision, send a
|
|
Telegram summary first if configured.
|
|
- Skills should report when Telegram is not configured instead of silently
|
|
pretending a notification was sent.
|