Part of the AI back-office PRD — human channel: the gateway is THE fleet channel when available (operator direction 2026-07); cluster-served so approvals never wait for the laptop.
Deliverables
Daily digest (morning): items awaiting approval, quarantined items, aging unresolved work, heartbeat summary, upcoming deadlines (D-30/D-7/D-1 from the fleet calendar — erp#54/#60). An empty day still sends "all green" — a missing digest is itself the alarm (the fleet's silence-alarm watchdogs key on it).
Approval cards: one decision per card — approve / edit / reject-with-reason (Telegram inline buttons); the decision + reason flow back to the queue item and are journaled (rejection reasons feed the fleet's golden sets — erp#39).
Allowlisted chat ids only (existing auth layer); card payloads show the essentials (supplier, ref, amounts, VAT bucket, source-document link) — the "edit" path can bounce to a prefilled form or just reject-with-comment in v1.
Fallback path documented: gateway down → fleet queues, digest falls back to plain email.
Acceptance: a real erp manifest rehearsal produces a card; tapping approve triggers the gated promote flow (or its stub); the reject reason lands in the journal.
Execution — Blocked by: #1 (the queue) · Blocks: erp#47's preferred channel, erp#52, erp#48/#59 digest legs · Human gates: operator's Telegram chat id allowlisted (one-time). Start:claude --worktree digest-cards from the telegram-gateway repo root (owner arcodange); read the existing handlers + auth layer first. Done means: evidence comment here (card screenshot/log + journaled decision round-trip) → PR merged with Closes #2.
Part of the **AI back-office PRD** — [human channel](https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office/agent-architecture.md): the gateway is THE fleet channel when available (operator direction 2026-07); cluster-served so approvals never wait for the laptop.
**Deliverables**
- **Daily digest** (morning): items awaiting approval, quarantined items, aging unresolved work, heartbeat summary, upcoming deadlines (D-30/D-7/D-1 from the fleet calendar — erp#54/#60). An empty day still sends "all green" — **a missing digest is itself the alarm** (the fleet's silence-alarm watchdogs key on it).
- **Approval cards**: one decision per card — approve / edit / reject-with-reason (Telegram inline buttons); the decision + reason flow back to the queue item and are journaled (rejection reasons feed the fleet's golden sets — erp#39).
- Allowlisted chat ids only (existing auth layer); card payloads show the essentials (supplier, ref, amounts, VAT bucket, source-document link) — the "edit" path can bounce to a prefilled form or just reject-with-comment in v1.
- Fallback path documented: gateway down → fleet queues, digest falls back to plain email.
**Acceptance:** a real erp manifest rehearsal produces a card; tapping approve triggers the gated promote flow (or its stub); the reject reason lands in the journal.
---
**Execution** — Blocked by: #1 (the queue) · Blocks: erp#47's preferred channel, erp#52, erp#48/#59 digest legs · Human gates: operator's Telegram chat id allowlisted (one-time).
**Start:** `claude --worktree digest-cards` from the **telegram-gateway** repo root (owner `arcodange`); read the existing handlers + auth layer first.
**Done means:** evidence comment here (card screenshot/log + journaled decision round-trip) → PR merged with `Closes #2`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the AI back-office PRD — human channel: the gateway is THE fleet channel when available (operator direction 2026-07); cluster-served so approvals never wait for the laptop.
Deliverables
Acceptance: a real erp manifest rehearsal produces a card; tapping approve triggers the gated promote flow (or its stub); the reject reason lands in the journal.
Execution — Blocked by: #1 (the queue) · Blocks: erp#47's preferred channel, erp#52, erp#48/#59 digest legs · Human gates: operator's Telegram chat id allowlisted (one-time).
Start:
claude --worktree digest-cardsfrom the telegram-gateway repo root (ownerarcodange); read the existing handlers + auth layer first.Done means: evidence comment here (card screenshot/log + journaled decision round-trip) → PR merged with
Closes #2.