Skip to content

omniroadmap-core

Core interfaces and canonical types for the omniroadmap ecosystem — a common, tool-agnostic representation of roadmap/product-management data (features, epics, initiatives, releases, objectives) that adapters for specific SaaS tools convert into.

This package follows the omni*-core pattern (see github.com/plexusone/omnillm-core for the canonical example): a small interface, canonical types, a provider registry, sentinel/structured errors, and a provider/providertest conformance suite every adapter runs against itself. It deliberately has near-zero dependencies — heavy layers (storage, sync, export) live in the batteries-included omniroadmap repo, never here.

The Provider interface

type Provider interface {
    Name() string
    Close() error
    Capabilities() Capabilities

    ListItems(ctx context.Context, req *ListItemsRequest) (*ListItemsResponse, error)
    GetItem(ctx context.Context, req *GetItemRequest) (*Item, error)
    ListReleases(ctx context.Context, req *ListReleasesRequest) (*ListReleasesResponse, error)
    ListStatuses(ctx context.Context, req *ListStatusesRequest) (*ListStatusesResponse, error)
    ListCustomFieldDefinitions(ctx context.Context, req *ListCustomFieldDefinitionsRequest) (*ListCustomFieldDefinitionsResponse, error)
}

Read-only by design (v0.x) — the ecosystem's consumers explore and visualize; writes happen in each tool's own SDK.

Where adapters live

Unlike omni-openai/omni-anthropic (separate repos wrapping a pre-existing official third-party SDK), the roadmap-tool SDKs in this ecosystem are built from scratch — no official Go SDK exists for Aha!, ProductBoard, or JPD — so their adapters live as an embedded omniroadmap/ subpackage inside the SDK repo itself, mirroring elevenlabs-go/omnivoice/ and opik-go/integrations/omnillm/:

Provider Location
aha github.com/grokify/aha-go/omniroadmap
aha-studio github.com/grokify/aha-studio/omniroadmap
productboard github.com/grokify/productboard-go/omniroadmap
jpd github.com/grokify/go-atlassian/omniroadmap

Next steps