# Daily Note — 2026-05-25

## Key Events
- 

## Decisions
- 

## Promotions (to durable knowledge)
- 

## Open Loops
- 

## Candidate Promotions (auto)
- 

<!-- AUTO_PROMOTIONS_START -->
## Candidate Promotions (auto)
_Generated: 2026-05-25 02:00:04 PDT_

### From memory/* (today + yesterday)
- 7:- Received `sermon-telegram-relay` YAML from Braden defining Telegram notification templates for weekly sermon capture. Template includes `success`, `partial`, and `failure` message bodies with required fields, and explicitly scopes message sending to `ops-maintainer` only. Decision/rerun authority remains with Dorian in the main session.
- 8:- Received `sermon-cron-config` YAML for weekly sermon capture scheduling. Proposed cron: `weekly-sermon-capture`, Sundays at `07:00 America/Los_Angeles`, output channel `telegram`, retry policy `max_attempts: 2` with `300s` backoff, and failure relay payload. Workflow intent: fetch Church Center home page, extract three downstream resources, run one combined LLM pass, create a Notion Notes DB page under Bible, then relay completion status.
- 10:- Dispatched Systems Architect for the Lobster stdin-reference patch and received review artifacts. Confirmed against the installed Lobster `README.md` and runtime: `stdin:` accepts `$stepId.stdout` or `$stepId.json`; `.stdout` is raw prior-step stdout text, while `.json` is the parsed JSON value when stdout is valid JSON and is reserialized when passed into shell-step stdin. Because all downstream Node steps in the sermon workflow do their own `JSON.parse(fs.readFileSync(0,'utf8'))`, the review artifact switches every workflow `stdin:` handoff to `.stdout`. Review artifacts prepared: `tmp/sermon-automation.stdinfix-review.lobster` and `tmp/sermon-cron-config.stdinfix-review.yaml`. Cron review artifact updates the invocation shape to `lobster run --file ... --args-json '{"execution_date":"YYYY-MM-DD"}'` and removes the old `SUNDAY_DATE: $(date ...)` env injection, but there is still an unresolved OpenClaw-cron-side ambiguity about the exact token/source that should supply `YYYY-MM-DD` automatically at schedule time.
- 14:- Built review-only stdin/cron patch artifacts: [tmp/sermon-automation.stdinfix-review.lobster](/Users/openclaw/.openclaw/workspace/tmp/sermon-automation.stdinfix-review.lobster) and [tmp/sermon-cron-config.stdinfix-review.yaml](/Users/openclaw/.openclaw/workspace/tmp/sermon-cron-config.stdinfix-review.yaml). Confirmed from installed Lobster docs/runtime that workflow `stdin:` step refs use `$stepId.stdout` or `$stepId.json`, with `.stdout` = raw stdout text and `.json` = parsed JSON value when stdout is valid JSON. Updated all workflow `stdin:` refs to `.stdout` because downstream Node shell steps explicitly `JSON.parse(stdin)` and need raw text. Patched cron review artifact to use `lobster run --file ... --args-json` shape and removed the old `SUNDAY_DATE: $(date ...)` env injection. Remaining ambiguity: no local OpenClaw cron YAML doc was found that proves an exact runtime placeholder/token for auto-populating `execution_date` inside the cron job itself, so the review artifact documents the required `--args-json` invocation shape rather than asserting an unverified cron templating variable.
- 2:- Sent [tmp/sermon-cron-config.stdinfix-review.yaml](/Users/openclaw/.openclaw/workspace/tmp/sermon-cron-config.stdinfix-review.yaml) separately into the Telegram thread because the earlier attachment did not come through.

### Open corrections
- 2026-03-02 — Telegram routing: use only current DM thread; never legacy Gizmo thread.
<!-- AUTO_PROMOTIONS_END -->

<!-- AUTO_PENDING_STATUS_START -->
## Pending Promotion Status (auto)
- Open pending promotions: 7
- Conversation intent status: OPEN (resolve or dismiss pending items before closure)
<!-- AUTO_PENDING_STATUS_END -->

<!-- AUTO_CRITICAL_FACTS_START -->
## Critical Facts Retrieval Check (auto)
# Critical Facts Check
- [PASS] telegram_single_thread_rule: Telegram must use only current DM thread; no legacy Gizmo thread.
- [PASS] telegram_confirm_policy: Non-reminder/non-memory-ingestion state changes require CONFIRM (with explicit Notion single-task exception).
- [PASS] timezone_set: Braden timezone is captured.

Summary: 3/3 passed
<!-- AUTO_CRITICAL_FACTS_END -->
