Skip to content

Configuration

LumenFlow is configured via workspace.yaml in your project root (software_delivery block).

software_delivery:
  lanes:
    definitions:
      - name: 'Framework: Core'
        code_paths: ['src/**']
  gates:
    format: true
    lint: true
    typecheck: true
    test: true

Directory paths configuration

FieldTypeDefaultDescription
appsWebstring""
worktreesstring"worktrees/"
aistring"ai/"
claudestring".claude/"
docsstring"docs/"
packagesstring"packages/"
toolsstring"tools/"
memoryBankstring"memory-bank/"
wuDirstring"docs/tasks/wu"
initiativesDirstring"docs/tasks/initiatives"
backlogPathstring"docs/tasks/backlog.md"
statusPathstring"docs/tasks/status.md"
skillsDirstring".claude/skills"
agentsDirstring".claude/agents"
adrDirstring"docs/architecture-decisions"
plansDirstring"docs/plans"
templatesDirstring".lumenflow/templates"
onboardingDirstring"docs/_frameworks/lumenflow...
completeGuidePathstring"docs/_frameworks/lumenflow...
quickRefPathstring"docs/_frameworks/lumenflow...
startingPromptPathstring"docs/_frameworks/lumenflow...
sizingGuidePathstring"docs/_frameworks/lumenflow...
governancePathstring"docs/governance/project-go...
safeGitPathstring"scripts/safe-git"

State paths configuration (.lumenflow directory structure)

FieldTypeDefaultDescription
basestring".lumenflow"
stateDirstring".lumenflow/state"
archiveDirstring".lumenflow/archive"
stampsDirstring".lumenflow/stamps"
mergeLockstring".lumenflow/merge.lock"
telemetrystring".lumenflow/telemetry"
flowLogstring".lumenflow/flow.log"
sessionsstring".lumenflow/sessions"
incidentsstring".lumenflow/incidents"
commandsLogstring".lumenflow/commands.log"
eventArchivalobject[object Object]

Git configuration

FieldTypeDefaultDescription
mainBranchstring"main"
defaultRemotestring"origin"
laneBranchPrefixstring"lane/"
tempBranchPrefixstring"tmp/"
realGitPathstring"/usr/bin/git"
maxBranchDriftinteger20
branchDriftWarninginteger15
branchDriftInfointeger10
requireRemotebooleantrue
agentBranchPatternsstring[][]
agentBranchPatternsOverridestring[]-
disableAgentPatternRegistrybooleanfalse
push_retryobject[object Object]

WU (Work Unit) configuration

FieldTypeDefaultDescription
idPatternstring"^WU-\d+$"
minDescriptionLengthinteger50
maxCommitSubjectinteger100
defaultPrioritystring"P2"
defaultStatusstring"ready"
defaultTypestring"feature"
briefobject[object Object]

Quality gates configuration

FieldTypeDefaultDescription
maxEslintWarningsinteger100
enableCoveragebooleantrue
minCoveragenumber90
enableSafetyCriticalTestsbooleantrue
enableInvariantsbooleantrue
executionobject-
commandsobject[object Object]
ignore_patternsstring[]-
lane_health”warn” | “error” | “off”"warn"
co_changeobject[][]
include_builtin_co_change_defaultsbooleantrue

Memory layer configuration

FieldTypeDefaultDescription
directorystring"memory-bank/"
sessionTtlinteger604800000
checkpointTtlinteger2592000000
enableAutoCleanupbooleantrue
progress_signalsobject-
signalCleanupobject[object Object]
delegation_context_max_sizeinteger4096
spawn_context_max_sizeunknown-
enforcementobject-
decayobject-

Progress signals configuration for sub-agent coordination (WU-1203)

FieldTypeDefaultDescription
enabledbooleanfalse
frequencyinteger0
on_milestonebooleantrue
on_tests_passbooleantrue
before_gatesbooleantrue
on_blockedbooleantrue
auto_checkpointbooleanfalse

UI configuration

FieldTypeDefaultDescription
errorBoxWidthinteger70
statusPreviewLinesinteger5
readinessBoxWidthinteger50

YAML serialization configuration

FieldTypeDefaultDescription
lineWidthinteger100

Agents configuration

FieldTypeDefaultDescription
defaultClientstring"claude-code"
clientsobject[object Object]
methodologyobject[object Object]

Methodology defaults (agent-facing project defaults)

FieldTypeDefaultDescription
enabledbooleantrue
enforcement”required” | “recommended”"required"
principlesstring[]["TDD","Hexagonal Architect...
notesstring-

Client configuration (per-client settings)

FieldTypeDefaultDescription
preambleunknown-
skillsDirstring-
agentsDirstring-
blocksobject[][]
skillsobject-
enforcementobject-
capabilities_mapobject-

LumenFlow supports different package managers and test runners. Configure these at the top level of your config file:

FieldTypeDefaultDescription
package_manager"pnpm" | "npm" | "yarn" | "bun""pnpm"Package manager for CLI operations
test_runner"vitest" | "jest" | "mocha""vitest"Test runner for incremental test detection
build_commandstring"pnpm --filter @lumenflow/cli build"Custom build command for CLI bootstrap
version: '2.0'

# WU-1356: Framework agnostic settings
package_manager: npm
test_runner: jest
build_command: npm run build

gates:
  commands:
    test_full: npm test
    test_docs_only: npm test -- --testPathPattern=docs
    test_incremental: npm test -- --onlyChanged
version: '2.0'

package_manager: yarn
test_runner: jest
build_command: yarn nx build @lumenflow/cli

gates:
  commands:
    test_full: yarn nx run-many --target=test --all
    test_docs_only: yarn nx test docs
    test_incremental: yarn nx affected --target=test
version: '2.0'

package_manager: bun
test_runner: vitest
build_command: bun run --filter @lumenflow/cli build

gates:
  commands:
    test_full: bun test
    test_incremental: bun test --changed

Config values can be overridden via environment variables:

LUMENFLOW_MAIN_BRANCH=develop pnpm wu:done --id WU-001
VariableOverrides
LUMENFLOW_CONFIGConfig file path
LUMENFLOW_MAIN_BRANCHgit.mainBranch
LUMENFLOW_WU_SPECSdirectories.wuDir

Validate your config:

pnpm exec lumenflow validate