add-integration

Solid

Add a new third-party integration (Jira/Linear-style) — per-workspace credentials, 90s auth-health poller, settings page, link/import buttons. Use when scaffolding a new external service integration.

AI & Automation 494 stars 68 forks Updated today AGPL-3.0

Install

View on GitHub

Quality Score: 87/100

Stars 20%
90
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Adding a new third-party integration ## Planner Entry Load `/spec-driven-development` for a substantial integration. The primary session plans, investigates existing patterns, and may directly implement a small localized slice. Delegate only independent backend, frontend, test, or documentation packets whose isolation clearly helps; workers do not spawn. Jira and Linear are the model: per-workspace credentials, a 90s auth-health poller, a settings page with status banner + reconnect CTA, link/import buttons that gate on availability. New integrations should **reuse the shared shapes** rather than copying either. ## Backend (`apps/backend/internal/<name>/`) - Mirror the package layout: `service.go`, `store.go`, `client.go`, `provider.go`, `handlers.go`, `models.go`, `poller.go`. Expose `Provide(writer, reader *sqlx.DB, secrets SecretStore, eventBus bus.EventBus, log *logger.Logger) (*Service, func() error, error)`. Pass `nil` for `eventBus` when the integration doesn't publish events; both Jira and Linear take and use it for issue-watch publishing. - Use `internal/integrations/secretadapter` instead of writing your own upsert wrapper around `secrets.SecretStore`. The adapter satisfies any per-integration `SecretStore` interface shaped as `{Reveal, Set, Delete, Exists}`. - Use `internal/integrations/healthpoll` for the auth-health loop. Implement the `Prober` interface (`ListConfiguredWorkspaces` + `RecordAuthHealth`) on a small adapter and let `healthpoll.New("name", pr...

Details

Author
kdlbs
Repository
kdlbs/kandev
Created
6 months ago
Last Updated
today
Language
Go
License
AGPL-3.0

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category