GForth implementation of the kb kanban tool.
Part of the Language Choice as Superpower research spike.
A text-first, CLI kanban board tool. Same spec implemented in 6 languages to evaluate which languages give AI agents the best leverage. Forth tests the hypothesis that a minimal, stack-based, extensible language gives agents radical composability.
See SPEC.md for the full specification. Key points:
- Text-first: The data file is the source of truth — human-readable, git-diffable, agent-friendly
- CLI interface:
kb add,kb move,kb ls,kb board,kb show, etc. - Methodology-agnostic: Lanes and flow, not Scrum opinions
- Format freedom: If Forth suggests a more natural data format (stack-oriented DSL?), propose it
- Extension exercise: After core works, add
blockedstatus (auto-derived from deps) andkb blockedcommand
- Language: GForth 0.7.3
- Dependencies: Standard ANS Forth only (no external libraries)
- Run:
./kb <command>orgforth kb.fs -e "main bye" -- <command>
# Add items
./kb add task "Implement feature"
./kb add bug "Fix login issue"
./kb add spike "Research options"
# Move through workflow
./kb move KAN-001 doing
./kb move KAN-001 review
./kb move KAN-001 done
# View items
./kb ls # List all items
./kb ls --lane=backlog # Filter by lane
./kb show KAN-001 # Show item details
./kb board # Visual board view
./kb blocked # Show blocked itemsHuman-readable text file (kb.dat):
# Kanban data file
board: default
lanes: backlog doing review done
item[ KAN-001
type: task
title: Implement feature
status: doing
tags: backend urgent
deps: KAN-002
created: 2025-02-14
]item
- Minimal, composable, bottom-up — a Forth word is a capability
- The dictionary is the API — agents extend the language itself as they build
- Tiny footprint, radical transparency — the whole system fits in your head (or context window)
- Stack-based computation may suit certain data transformation patterns
- 988 lines of GForth code
- 100 word definitions (functions)
- Key architectural decision: Using variables instead of return stack for state in loops (Forth's
?do...loopuses the return stack, conflicting withr@)
- Core: parser, serializer, internal model
- CLI: add, move, ls, board, show
- Extension: blocked status + kb blocked command
- Evaluation notes captured