Files
openprose__prose/packages/std/delivery/slack-notifier.prose.md
irl-dan 4bc41a93bb launch readiness: green CI publish path, front-door, taxonomy migration
Get the Reactor packages mergeable + publishable and the launch surfaces coherent.

CI / publish (ci-reactor-package.yml):
- Drop the deleted reactor-cradle from the workflow and remove the obsolete .mjs
  release-gate suite (.github/scripts/*reactor*.mjs + tests) entirely.
- Add per-package pack + publish jobs for @openprose/reactor, @openprose/reactor-cli,
  and @openprose/reactor-devtools (idempotent, version-from-package.json,
  reactor-v* tag-gated, provenance). The two CLI packages now have a release path.
- Fix the dangling cradle reference in tools/cli build-release-tarball.mjs;
  regenerate pnpm-lock.yaml.

Install / first-run:
- reactor-cli: @openprose/reactor moved peer -> dependency (a global install now
  pulls the SDK); @openai/agents + zod become optional peers (keyless install stays light).
- SDK README: replace non-existent *V0 imports with the real exports
  (verifyReceipt / LedgerReceipt / inspectReceiptProof / projectReceiptProof).
- CLI README + http-server comment: correct the trigger route to POST /trigger/<node>.

Front-door + taxonomy:
- Promote the Reactor-forward launch README; add the technical report at
  docs/reactor/v0.1/report.md (replacing the stale v0.1).
- Migrate SKILL.md and all packages/std + packages/co contracts off the retired
  taxonomy (kind: service -> function, kind: system deleted, ### Ensures -> ### Maintains,
  ### Criteria/### Services folded) onto the Reactor model.

Prune the dead cradle-importing examples: drop flat-tokens and
release-readiness/reactor-package-example (keeping release-readiness/src, which is tested).

Gates: build, test:reactor:offline, test:examples (10/0), test:skill (252/252) all green offline.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 18:45:39 -07:00

1.6 KiB

name, kind
name kind
slack-notifier function

Shape

  • self:
    • format content for Slack
    • deliver via webhook or API
  • delegates: none
  • prohibited:
    • modifying the content substance — you format and deliver
    • you do not edit research or analysis

Parameters

  • content: structured output to deliver
  • channel: Slack channel name
  • format: (optional, default "summary+attachment") one of "summary+attachment", "full", "alert"

Returns

Returns the delivery confirmation. delivered carries the confirmation with timestamp and permalink, and attachment_url links to the uploaded file — present only when format is "summary+attachment". The returned value postcondition: a successful return means the content was posted to the named channel and delivered reflects the actual Slack timestamp and permalink.

Errors

  • webhook-failed: the Slack webhook returned a non-2xx status or was unreachable
  • channel-not-found: the specified channel does not exist or the bot lacks permission to post there

Environment

  • SLACK_WEBHOOK_URL: webhook for posting messages
  • SLACK_BOT_TOKEN: (required for "summary+attachment" format which uploads files via the Slack API; optional for "full" and "alert" which use webhook only)

Strategies

  • when format is "summary+attachment": post a concise summary in the message body and attach the full content as a file (requires SLACK_BOT_TOKEN for file upload)
  • when format is "full": post the entire content inline via webhook
  • when format is "alert": post a short notification with a link to the full content via webhook