Skip to main content

Configuration file

Ship Spec looks for configuration in this order:

  1. shipspec.json
  2. .shipspecrc
  3. .shipspecrc.json

Precedence: CLI flags > environment variables > configuration file > defaults.

Example schema

{
"projectPath": ".",
"vectorDbPath": ".ship-spec/lancedb",
"ignorePatterns": ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/*.lock", "**/build/**", "**/.ship-spec/**"],
"llm": {
"provider": "openrouter",
"modelName": "google/gemini-3-flash-preview",
"temperature": 0,
"maxRetries": 3,
"timeout": 60000,
"maxContextTokens": 16000,
"reservedOutputTokens": 4000
},
"embedding": {
"provider": "openrouter",
"modelName": "mistralai/codestral-embed-2505",
"dimensions": "auto",
"maxRetries": 3
},
"checkpoint": {
"enabled": false,
"type": "memory",
"sqlitePath": ".ship-spec/checkpoint.db"
},
"productionalize": {
"webSearch": { "provider": "tavily" },
"sast": { "enabled": false, "tools": ["semgrep", "gitleaks", "trivy"] },
"coreCategories": ["security", "soc2", "code-quality", "dependencies", "testing", "configuration"]
}
}

Key fields:

  • projectPath / vectorDbPath — where to run and store LanceDB
  • ignorePatterns — glob patterns excluded from indexing
  • llm / embedding — provider, model, retries, token budgets
  • checkpoint — enable persistence (memory or sqlite)
  • productionalize — web search provider, SAST toggle and tools, core categories