Switchboard is a Go project.
- Language: Go 1.25+
- Build:
just build·just test·just lint·just fmt
cmd/switchboard/ # Entry point
internal/ # Internal packages
Git workflow: Gitflow. develop is the default branch. Branch from and
PR into develop. Alpha releases are cut automatically from develop.
Stable releases are cut from main via version tags (v*). Do not push
directly to main.
just fmt # gofumpt formatting (run before every commit)
just lint # golangci-lint — must pass with zero warnings
just test # go test ./... -v
just test-race # Race detector — run before pushing@.claude/rules/_index.md
Read charter.md before any substantive work. It contains:
- Current bedrock (what's committed)
- Current frontier (what's under exploration)
- Current graveyard (what's been ruled out)
- Read charter.md (orient)
- Identify the highest-value open question — or capture new ideas in _kos/ideas/
- Write an Exploration Brief in _kos/probes/
- Do the probe work
- Write a finding in _kos/findings/
- Harvest: update affected nodes, move files if confidence changed
- Update charter.md if bedrock changed
Cross-repo questions belong in the orchestrator's _kos/, not here.
Ideas live in _kos/ideas/ as markdown files. Generative, possibly contradictory, no commitment. When an idea crystallizes, extract into a frontier question + brief.
Nodes live in _kos/nodes/[confidence]/[id].yaml Schema follows kos schema v0.3. One node per file. Filename = node id.
Moving a file between confidence directories IS the promotion. Always accompany with a commit message explaining the evidence.
Before starting the next cycle, verify:
- Finding written and committed
- Charter updated if bedrock changed
- Frontier questions updated (closed, opened, or revised)
- Exploration briefs marked complete or carried forward