Skip to content

Feat/slack contract events spec update - #1029

Open
vicajohn wants to merge 4 commits into
Core-Foundry:mainfrom
vicajohn:feat/slack-contract-events-spec-update
Open

vicajohn wants to merge 4 commits into
Core-Foundry:mainfrom
vicajohn:feat/slack-contract-events-spec-update

Conversation

@vicajohn

Copy link
Copy Markdown
Contributor

closes #953

Overview

Related Issue

Closes #

Changes

Verification

# e.g.
cd dashboard && npm test
cd listener && npm run typecheck && npm test
cd contract/contracts/hello-world && cargo test

How to Test

Checklist

  • Branch is up to date with main
  • Tests added/updated and all pass locally
  • cargo fmt --all run (if Rust changes)
  • npm run lint passes (if TypeScript changes)
  • Documentation updated if behavior changed

…hensive design

Add complete specification for Slack integration featuring:

Requirements (20 total):
- Multiple event type support (TaskCreated, WorkSubmitted, CompletionAnnounced, etc.)
- Slack Block Kit message formatting with round-trip validation
- Delivery adapter with exponential backoff retry logic
- Secure credential management via environment variables
- Channel routing with conditional rules and dead-letter support
- Comprehensive testing and validation
- Graceful degradation when Slack unavailable
- Structured JSON logging for observability

Design:
- Modular architecture: Formatter, Validator, Router, Delivery Adapter
- 55 testable correctness properties for formal verification
- Dual-model testing: property-based + unit tests
- Error classification and retry strategy (exponential backoff with jitter)
- Secure credential handling (env vars only, no secrets in logs)
- Queue management for graceful degradation

Implementation Plan (42 tasks):
- Phase 1-4: Infrastructure, Formatters, Validator, Credentials
- Phase 5-7: Router, Delivery Adapter, Event Processor
- Phase 8-10: Integration tests, documentation, final verification

Acceptance Criteria Met:
✅ Supported events produce valid Slack messages (Block Kit compliance, 55 properties)
✅ Formatting is tested (property-based tests, 90%+ coverage)
✅ Provider credentials remain outside source control (env vars, .env in .gitignore)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Slack Notification Delivery

1 participant