Skip to content

Commit 3d5eece

Browse files
mafulafunkclaude
andcommitted
Clean up project and fix various issues
- Replace template README with project-specific German version - Fix package.json author (Yuki Hattori -> Martin Funk) - Fix typo in CheatSheet.md (Selection -> Selektion) - Add shell example to Umbenennung slide - Use portable shebang (#!/usr/bin/env bash) in shell scripts - Add error handling (set -euo pipefail) to shell scripts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 30aa5fe commit 3d5eece

12 files changed

Lines changed: 270 additions & 113 deletions

File tree

.beads/.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SQLite databases
2+
*.db
3+
*.db?*
4+
*.db-journal
5+
*.db-wal
6+
*.db-shm
7+
8+
# Daemon runtime files
9+
daemon.lock
10+
daemon.log
11+
daemon.pid
12+
bd.sock
13+
sync-state.json
14+
last-touched
15+
16+
# Local version tracking (prevents upgrade notification spam after git ops)
17+
.local_version
18+
19+
# Legacy database files
20+
db.sqlite
21+
bd.db
22+
23+
# Worktree redirect file (contains relative path to main repo's .beads/)
24+
# Must not be committed as paths would be wrong in other clones
25+
redirect
26+
27+
# Merge artifacts (temporary files from 3-way merge)
28+
beads.base.jsonl
29+
beads.base.meta.json
30+
beads.left.jsonl
31+
beads.left.meta.json
32+
beads.right.jsonl
33+
beads.right.meta.json
34+
35+
# Sync state (local-only, per-machine)
36+
# These files are machine-specific and should not be shared across clones
37+
.sync.lock
38+
sync_base.jsonl
39+
40+
# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
41+
# They would override fork protection in .git/info/exclude, allowing
42+
# contributors to accidentally commit upstream issue databases.
43+
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
44+
# are tracked by git by default since no pattern above ignores them.

.beads/README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Beads - AI-Native Issue Tracking
2+
3+
Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
4+
5+
## What is Beads?
6+
7+
Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
8+
9+
**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
10+
11+
## Quick Start
12+
13+
### Essential Commands
14+
15+
```bash
16+
# Create new issues
17+
bd create "Add user authentication"
18+
19+
# View all issues
20+
bd list
21+
22+
# View issue details
23+
bd show <issue-id>
24+
25+
# Update issue status
26+
bd update <issue-id> --status in_progress
27+
bd update <issue-id> --status done
28+
29+
# Sync with git remote
30+
bd sync
31+
```
32+
33+
### Working with Issues
34+
35+
Issues in Beads are:
36+
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
37+
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
38+
- **Branch-aware**: Issues can follow your branch workflow
39+
- **Always in sync**: Auto-syncs with your commits
40+
41+
## Why Beads?
42+
43+
**AI-Native Design**
44+
- Built specifically for AI-assisted development workflows
45+
- CLI-first interface works seamlessly with AI coding agents
46+
- No context switching to web UIs
47+
48+
🚀 **Developer Focused**
49+
- Issues live in your repo, right next to your code
50+
- Works offline, syncs when you push
51+
- Fast, lightweight, and stays out of your way
52+
53+
🔧 **Git Integration**
54+
- Automatic sync with git commits
55+
- Branch-aware issue tracking
56+
- Intelligent JSONL merge resolution
57+
58+
## Get Started with Beads
59+
60+
Try Beads in your own projects:
61+
62+
```bash
63+
# Install Beads
64+
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
65+
66+
# Initialize in your repo
67+
bd init
68+
69+
# Create your first issue
70+
bd create "Try out Beads"
71+
```
72+
73+
## Learn More
74+
75+
- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
76+
- **Quick Start Guide**: Run `bd quickstart`
77+
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
78+
79+
---
80+
81+
*Beads: Issue tracking that moves at the speed of thought*

.beads/config.yaml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Beads Configuration File
2+
# This file configures default behavior for all bd commands in this repository
3+
# All settings can also be set via environment variables (BD_* prefix)
4+
# or overridden with command-line flags
5+
6+
# Issue prefix for this repository (used by bd init)
7+
# If not set, bd init will auto-detect from directory name
8+
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
9+
# issue-prefix: ""
10+
11+
# Use no-db mode: load from JSONL, no SQLite, write back after each command
12+
# When true, bd will use .beads/issues.jsonl as the source of truth
13+
# instead of SQLite database
14+
# no-db: false
15+
16+
# Disable daemon for RPC communication (forces direct database access)
17+
# no-daemon: false
18+
19+
# Disable auto-flush of database to JSONL after mutations
20+
# no-auto-flush: false
21+
22+
# Disable auto-import from JSONL when it's newer than database
23+
# no-auto-import: false
24+
25+
# Enable JSON output by default
26+
# json: false
27+
28+
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
29+
# actor: ""
30+
31+
# Path to database (overridden by BEADS_DB or --db)
32+
# db: ""
33+
34+
# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
35+
# auto-start-daemon: true
36+
37+
# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
38+
# flush-debounce: "5s"
39+
40+
# Git branch for beads commits (bd sync will commit to this branch)
41+
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
42+
# This setting persists across clones (unlike database config which is gitignored).
43+
# Can also use BEADS_SYNC_BRANCH env var for local override.
44+
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
45+
# sync-branch: "beads-sync"
46+
47+
# Multi-repo configuration (experimental - bd-307)
48+
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
49+
# repos:
50+
# primary: "." # Primary repo (where this database lives)
51+
# additional: # Additional repos to hydrate from (read-only)
52+
# - ~/beads-planning # Personal planning repo
53+
# - ~/work-planning # Work planning repo
54+
55+
# Integration settings (access with 'bd config get/set')
56+
# These are stored in the database, not in this file:
57+
# - jira.url
58+
# - jira.project
59+
# - linear.url
60+
# - linear.api-key
61+
# - github.org
62+
# - github.repo

.beads/issues.jsonl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{"id":"sql-in-the-shell-1dc","title":"Add missing .puppeteer.js file","description":"GitHub Action referenziert .puppeteer.js (Zeile 35), aber die Datei existiert nicht im Repo","status":"closed","priority":2,"issue_type":"bug","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:02.038285+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:44:37.545813+01:00","closed_at":"2026-01-11T13:44:37.545813+01:00","close_reason":"Not needed anymore - Marp CLI 4.x has built-in browser support"}
22
{"id":"sql-in-the-shell-518","title":"Modernize GitHub Actions workflow","description":"Node 12 und veraltete Actions (checkout@v1, setup-node@v1) auf aktuelle Versionen updaten","status":"closed","priority":1,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:43.341427+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:44:37.429751+01:00","closed_at":"2026-01-11T13:44:37.429751+01:00","close_reason":"Updated to Node 20, actions v4, removed Puppeteer dependency"}
3-
{"id":"sql-in-the-shell-68a","title":"Add package-lock.json to repository","description":"package-lock.json sollte eingecheckt werden fuer reproduzierbare Builds","status":"open","priority":3,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:02.147685+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:38:02.147685+01:00"}
4-
{"id":"sql-in-the-shell-71n","title":"Use portable shebang in shell scripts","description":"cartesian.sh und crt.sh: #!/bin/bash -\u003e #!/usr/bin/env bash fuer bessere Portabilitaet","status":"open","priority":4,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:01.811854+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:38:01.811854+01:00"}
5-
{"id":"sql-in-the-shell-9h6","title":"Add error handling to cartesian.sh","description":"Fehlerbehandlung hinzufuegen: set -e, Pruefung ob Dateien existieren","status":"open","priority":3,"issue_type":"feature","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:01.92679+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:38:01.92679+01:00"}
6-
{"id":"sql-in-the-shell-b7e","title":"Fix package.json author metadata","description":"Author ist noch 'Yuki Hattori' vom Original-Template, sollte auf Martin Funk geaendert werden","status":"open","priority":3,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:43.226369+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:37:43.226369+01:00"}
7-
{"id":"sql-in-the-shell-c02","title":"Fix typo: Selection -\u003e Selektion in CheatSheet.md","description":"Zeile 24: 'Selection' sollte 'Selektion' heissen (Konsistenz zur Praesentation)","status":"open","priority":4,"issue_type":"bug","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.426674+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:37:52.426674+01:00"}
8-
{"id":"sql-in-the-shell-ez8","title":"Update ZEIT Now references to Vercel","description":"ZEIT Now heisst jetzt Vercel - README und Deployment-Optionen aktualisieren","status":"open","priority":4,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:02.261645+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:38:02.261645+01:00"}
9-
{"id":"sql-in-the-shell-gx2","title":"Add shell command example to Umbenennung slide","description":"PITCHME.md:113-118 - Die Slide 'Umbenennung' hat keinen Shell-Befehl-Vergleich wie die anderen Slides","status":"open","priority":3,"issue_type":"feature","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.550599+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:37:52.550599+01:00"}
10-
{"id":"sql-in-the-shell-lwa","title":"Replace template README with project-specific content","description":"README.md ist komplett vom marp-cli-example Template, sollte eigenen Inhalt haben","status":"open","priority":2,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.292815+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:37:52.292815+01:00"}
11-
{"id":"sql-in-the-shell-mfu","title":"Verify Matt Might inspiration link","description":"PITCHME.md:173 - Link http://matt.might.net/articles/sql-in-the-shell/ pruefen ob noch erreichbar","status":"open","priority":4,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.666943+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:37:52.666943+01:00"}
3+
{"id":"sql-in-the-shell-68a","title":"Add package-lock.json to repository","description":"package-lock.json sollte eingecheckt werden fuer reproduzierbare Builds","status":"closed","priority":3,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:02.147685+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:45:20.54646+01:00","closed_at":"2026-01-11T13:45:20.54646+01:00","close_reason":"Committed with dependency update"}
4+
{"id":"sql-in-the-shell-71n","title":"Use portable shebang in shell scripts","description":"cartesian.sh und crt.sh: #!/bin/bash -\u003e #!/usr/bin/env bash fuer bessere Portabilitaet","status":"closed","priority":4,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:01.811854+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.28892+01:00","closed_at":"2026-01-11T13:47:02.28892+01:00","close_reason":"Changed to #!/usr/bin/env bash with set -euo pipefail"}
5+
{"id":"sql-in-the-shell-9h6","title":"Add error handling to cartesian.sh","description":"Fehlerbehandlung hinzufuegen: set -e, Pruefung ob Dateien existieren","status":"closed","priority":3,"issue_type":"feature","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:01.92679+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.414688+01:00","closed_at":"2026-01-11T13:47:02.414688+01:00","close_reason":"Added set -euo pipefail"}
6+
{"id":"sql-in-the-shell-b7e","title":"Fix package.json author metadata","description":"Author ist noch 'Yuki Hattori' vom Original-Template, sollte auf Martin Funk geaendert werden","status":"closed","priority":3,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:43.226369+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.044978+01:00","closed_at":"2026-01-11T13:47:02.044978+01:00","close_reason":"Changed to Martin Funk"}
7+
{"id":"sql-in-the-shell-c02","title":"Fix typo: Selection -\u003e Selektion in CheatSheet.md","description":"Zeile 24: 'Selection' sollte 'Selektion' heissen (Konsistenz zur Praesentation)","status":"closed","priority":4,"issue_type":"bug","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.426674+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.167577+01:00","closed_at":"2026-01-11T13:47:02.167577+01:00","close_reason":"Fixed: Selection -\u003e Selektion"}
8+
{"id":"sql-in-the-shell-ez8","title":"Update ZEIT Now references to Vercel","description":"ZEIT Now heisst jetzt Vercel - README und Deployment-Optionen aktualisieren","status":"closed","priority":4,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:38:02.261645+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.790558+01:00","closed_at":"2026-01-11T13:47:02.790558+01:00","close_reason":"Not needed - removed template README with ZEIT Now references"}
9+
{"id":"sql-in-the-shell-gx2","title":"Add shell command example to Umbenennung slide","description":"PITCHME.md:113-118 - Die Slide 'Umbenennung' hat keinen Shell-Befehl-Vergleich wie die anderen Slides","status":"closed","priority":3,"issue_type":"feature","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.550599+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.536597+01:00","closed_at":"2026-01-11T13:47:02.536597+01:00","close_reason":"Added awk example"}
10+
{"id":"sql-in-the-shell-lwa","title":"Replace template README with project-specific content","description":"README.md ist komplett vom marp-cli-example Template, sollte eigenen Inhalt haben","status":"closed","priority":2,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.292815+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:01.917969+01:00","closed_at":"2026-01-11T13:47:01.917969+01:00","close_reason":"Replaced with project-specific German README"}
11+
{"id":"sql-in-the-shell-mfu","title":"Verify Matt Might inspiration link","description":"PITCHME.md:173 - Link http://matt.might.net/articles/sql-in-the-shell/ pruefen ob noch erreichbar","status":"closed","priority":4,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:52.666943+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:47:02.658486+01:00","closed_at":"2026-01-11T13:47:02.658486+01:00","close_reason":"Link works fine"}
1212
{"id":"sql-in-the-shell-vc2","title":"Update Marp CLI from ^0.17.0 to latest","description":"Die aktuelle Version ist ~4.x, das Projekt nutzt eine sehr alte Version","status":"closed","priority":1,"issue_type":"chore","owner":"Martin@MartinFunk.de","created_at":"2026-01-11T13:37:43.10327+01:00","created_by":"Martin Funk","updated_at":"2026-01-11T13:43:23.961855+01:00","closed_at":"2026-01-11T13:43:23.961855+01:00","close_reason":"Updated to ^4.2.3"}

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
# Use bd merge for beads JSONL files
3+
.beads/issues.jsonl merge=beads

AGENTS.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Agent Instructions
2+
3+
This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started.
4+
5+
## Quick Reference
6+
7+
```bash
8+
bd ready # Find available work
9+
bd show <id> # View issue details
10+
bd update <id> --status in_progress # Claim work
11+
bd close <id> # Complete work
12+
bd sync # Sync with git
13+
```
14+
15+
## Landing the Plane (Session Completion)
16+
17+
**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
18+
19+
**MANDATORY WORKFLOW:**
20+
21+
1. **File issues for remaining work** - Create issues for anything that needs follow-up
22+
2. **Run quality gates** (if code changed) - Tests, linters, builds
23+
3. **Update issue status** - Close finished work, update in-progress items
24+
4. **PUSH TO REMOTE** - This is MANDATORY:
25+
```bash
26+
git pull --rebase
27+
bd sync
28+
git push
29+
git status # MUST show "up to date with origin"
30+
```
31+
5. **Clean up** - Clear stashes, prune remote branches
32+
6. **Verify** - All changes committed AND pushed
33+
7. **Hand off** - Provide context for next session
34+
35+
**CRITICAL RULES:**
36+
- Work is NOT complete until `git push` succeeds
37+
- NEVER stop before pushing - that leaves work stranded locally
38+
- NEVER say "ready to push when you are" - YOU must push
39+
- If push fails, resolve and retry until it succeeds
40+

CheatSheet.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ marp: true
2121
- Bonus: Sortierung
2222
- `awk -F ',' 'OFS="," {print $2, $1, $3}' Customer_A.csv | sort --field-separator=',' --key=2`
2323

24-
## Selection
24+
## Selektion
2525

2626
- `SELECT * FROM Customers WHERE Country LIKE '%ada%';`
2727
- `cat Customer_A.csv | grep ada`

PITCHME.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ Relationenalgebra auf der Kommandozeile
116116
> \rho_{[\mathrm{neu}\leftarrow\mathrm{alt}]}(R):= \{t'|t'(R-\mathrm{alt})=t(R-\mathrm{alt}) \land t'(\mathrm{neu})=t(\mathrm{alt})\}
117117
> $$
118118
119+
- `awk -F ',' '{print $2, $1}' R`
120+
119121
---
120122

121123
![bg](#148)

0 commit comments

Comments
 (0)