Skip to content

Configuration Schema

Safe to commit to version control.

{
"catalyst": {
"projectKey": "acme",
"repository": {
"org": "acme-corp",
"name": "api"
},
"project": {
"ticketPrefix": "ACME",
"name": "Acme Corp API"
},
"linear": {
"stateMap": {
"backlog": "Backlog",
"todo": "Todo",
"research": "In Progress",
"planning": "In Progress",
"inProgress": "In Progress",
"inReview": "In Review",
"done": "Done",
"canceled": "Canceled"
}
},
"thoughts": {
"user": null
}
}
}
FieldTypeDescription
catalyst.projectKeystringLinks to secrets config file
catalyst.repository.orgstringGitHub organization
catalyst.repository.namestringRepository name
catalyst.project.ticketPrefixstringLinear ticket prefix (e.g., “ACME”)
catalyst.project.namestringHuman-readable project name
catalyst.linear.stateMapobjectMaps workflow phases to Linear states
catalyst.thoughts.userstring|nullHumanLayer thoughts user name
KeyWhen UsedDefault
backlogInitial ticket stateBacklog
todoAcknowledged, unstartedTodo
research/research-codebaseIn Progress
planning/create-planIn Progress
inProgress/implement-planIn Progress
inReview/describe-pr, /create-prIn Review
done/merge-prDone
canceledManual cancellationCanceled

Set any key to null to skip that automatic transition.

Secrets Config (~/.config/catalyst/config-{projectKey}.json)

Section titled “Secrets Config (~/.config/catalyst/config-{projectKey}.json)”

Never committed. One file per project.

{
"linear": {
"apiToken": "lin_api_...",
"teamKey": "ACME",
"defaultTeam": "ACME"
},
"sentry": {
"org": "acme-corp",
"project": "acme-web",
"authToken": "sntrys_..."
},
"railway": {
"token": "...",
"projectId": "..."
},
"posthog": {
"apiKey": "phc_...",
"projectId": "12345"
},
"exa": {
"apiKey": "..."
}
}
IntegrationRequired FieldsUsed By
LinearapiToken, teamKeycatalyst-dev, catalyst-pm
Sentryorg, project, authTokencatalyst-debugging
Railwaytoken, projectIdcatalyst-dev
PostHogapiKey, projectIdcatalyst-analytics
ExaapiKeycatalyst-dev (external research)

Workflow Context (.claude/.workflow-context.json)

Section titled “Workflow Context (.claude/.workflow-context.json)”

Auto-managed. Not committed to git.

{
"lastUpdated": "2025-10-26T10:30:00Z",
"currentTicket": "PROJ-123",
"mostRecentDocument": {
"type": "plans",
"path": "thoughts/shared/plans/...",
"created": "2025-10-26T10:30:00Z",
"ticket": "PROJ-123"
},
"workflow": {
"research": [],
"plans": [],
"handoffs": [],
"prs": []
}
}

This file is automatically updated by Claude Code hooks when you write to thoughts/shared/. Commands use it to auto-discover recent documents.