Skip to content

feat(triggers): unified trigger configuration system with auto-deploy migration#597

Merged
zbigniewsobiecki merged 1 commit intodevfrom
feat/unified-trigger-config-system
Mar 1, 2026
Merged

feat(triggers): unified trigger configuration system with auto-deploy migration#597
zbigniewsobiecki merged 1 commit intodevfrom
feat/unified-trigger-config-system

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Summary

  • Introduces a definition-driven trigger configuration system
  • Replaces legacy per-integration trigger config with a unified model
  • Adds automatic trigger migration on deploy to dev/prod

Key Changes

Unified Trigger CLI Commands

  • Add cascade projects trigger-set - unified command replacing pm-trigger-set and review-trigger-set
  • Add cascade projects trigger-list - list configured triggers for a project
  • Add cascade projects trigger-discover - discover available triggers from agent definitions
  • Remove deprecated pm-trigger-set and review-trigger-set commands

Definition-Based Trigger System

  • Add triggers array to agent YAML definitions (implementation.yaml, review.yaml, respond-to-ci.yaml)
  • Triggers use category-prefixed format: {category}:{event-name} (e.g., pm:card-moved, scm:check-suite-success)
  • Support for configurable parameters (string, email, boolean, select types)

Trigger Config Resolution

  • Rewrite config-resolver.ts to merge definition defaults with DB overrides
  • Resolution order: DB config > definition default

Auto-Deploy Migration

  • Add tools/migrate-triggers.ts script for migrating legacy triggers
  • Migration runs automatically after drizzle schema migrations
  • Migration is idempotent (skips existing configs)

Test plan

  • Run npm test - all 3680 tests pass
  • Run npm run lint and npm run typecheck - pass
  • CI passes on this PR
  • After merge to dev, verify migration runs in GitHub Actions logs
  • Verify agent_trigger_configs table is populated correctly

🤖 Generated with Claude Code

… migration

Introduces a definition-driven trigger configuration system that replaces
the legacy per-integration trigger config approach with a unified model.

Unified Trigger CLI Commands:
- Add `cascade projects trigger-set` - replaces pm-trigger-set and review-trigger-set
- Add `cascade projects trigger-list` - list configured triggers for a project
- Add `cascade projects trigger-discover` - discover triggers from agent definitions
- Remove deprecated `pm-trigger-set` and `review-trigger-set` commands

Definition-Based Trigger System:
- Add `triggers` array to agent YAML definitions
- Add `SupportedTrigger` schema with event, label, parameters, providers
- Add `TriggerParameter` schema (string, email, boolean, select types)
- Use category-prefixed format: `{category}:{event-name}`

Trigger Config Resolution:
- Rewrite `config-resolver.ts` to merge definition defaults with DB overrides
- Add `isTriggerEnabled()`, `getTriggerParameters()`, `resolveTriggerConfigs()`
- Resolution order: DB config > definition default

Dashboard Integration:
- Add `getProjectTriggersView` tRPC endpoint for composite trigger data
- Add `DefinitionTriggerToggles` component for triggers with parameters
- Add `TriggerParameterInput` component for parameter editing
- Simplify `trigger-agent-mapping.ts` to re-export from shared types

Auto-Deploy Migration:
- Add `tools/migrate-triggers.ts` for migrating legacy triggers
- Add `tool:migrate-triggers` npm script
- Add trigger migration step to deploy.yml and deploy-dev.yml workflows
- Migration runs after drizzle schema migrations, is idempotent

Tests & Documentation:
- Add tests for shared trigger types (`triggerTypes.test.ts`)
- Expand tests for trigger utility functions (`triggerAgentMapping.test.ts`)
- Update CLAUDE.md with new CLI commands and trigger format docs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@zbigniewsobiecki zbigniewsobiecki merged commit 13acc78 into dev Mar 1, 2026
6 checks passed
@zbigniewsobiecki zbigniewsobiecki deleted the feat/unified-trigger-config-system branch March 1, 2026 20:20
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.

1 participant