Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 9 additions & 40 deletions .omc/project-memory.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.0.0",
"lastScanned": 1777897422303,
"lastScanned": 1778506113057,
"projectRoot": "/home/galadriel/Documents/Cline/risus-cli",
"techStack": {
"languages": [
Expand Down Expand Up @@ -30,7 +30,7 @@
},
"build": {
"buildCommand": null,
"testCommand": "pytest tests/unit -q 2>&1",
"testCommand": "pytest",
"lintCommand": "ruff check",
"devCommand": null,
"scripts": {}
Expand All @@ -55,20 +55,11 @@
},
"customNotes": [],
"directoryMap": {
"__pycache__": {
"path": "__pycache__",
"purpose": null,
"fileCount": 1,
"lastAccessed": 1777897422278,
"keyFiles": [
"risus.cpython-312.pyc"
]
},
"build": {
"path": "build",
"purpose": "Build output",
"fileCount": 3,
"lastAccessed": 1777897422295,
"lastAccessed": 1778506113053,
"keyFiles": [
"README.md",
"entitlements.plist",
Expand All @@ -79,28 +70,19 @@
"path": "client",
"purpose": null,
"fileCount": 4,
"lastAccessed": 1777897422300,
"lastAccessed": 1778506113054,
"keyFiles": [
"__init__.py",
"config.py",
"state.py",
"ws_client.py"
]
},
"dist": {
"path": "dist",
"purpose": "Distribution/build output",
"fileCount": 1,
"lastAccessed": 1777897422301,
"keyFiles": [
"risus"
]
},
"docker": {
"path": "docker",
"purpose": null,
"fileCount": 1,
"lastAccessed": 1777897422301,
"lastAccessed": 1778506113055,
"keyFiles": [
"server.Dockerfile"
]
Expand All @@ -109,27 +91,14 @@
"path": "docs",
"purpose": "Documentation",
"fileCount": 0,
"lastAccessed": 1777897422301,
"lastAccessed": 1778506113055,
"keyFiles": []
},
"risus_cli.egg-info": {
"path": "risus_cli.egg-info",
"purpose": null,
"fileCount": 5,
"lastAccessed": 1777897422301,
"keyFiles": [
"PKG-INFO",
"SOURCES.txt",
"dependency_links.txt",
"requires.txt",
"top_level.txt"
]
},
"server": {
"path": "server",
"purpose": null,
"fileCount": 9,
"lastAccessed": 1777897422301,
"lastAccessed": 1778506113055,
"keyFiles": [
"__init__.py",
"app.py",
Expand All @@ -142,14 +111,14 @@
"path": "specs",
"purpose": null,
"fileCount": 0,
"lastAccessed": 1777897422302,
"lastAccessed": 1778506113055,
"keyFiles": []
},
"tests": {
"path": "tests",
"purpose": "Test files",
"fileCount": 1,
"lastAccessed": 1777897422302,
"lastAccessed": 1778506113056,
"keyFiles": [
"__init__.py"
]
Expand Down
48 changes: 48 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,51 @@ For additional context about technologies to be used, project structure,
shell commands, and other important information, read the current plan at
`specs/007-client-screen-sync/plan.md`.
<!-- SPECKIT END -->


<!-- BEGIN BEADS INTEGRATION v:1 profile:minimal hash:ca08a54f -->
## Beads Issue Tracker

This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full workflow context and commands.

### Quick Reference

```bash
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work
bd close <id> # Complete work
```

### Rules

- Use `bd` for ALL task tracking — do NOT use TodoWrite, TaskCreate, or markdown TODO lists
- Run `bd prime` for detailed command reference and session close protocol
- Use `bd remember` for persistent knowledge — do NOT use MEMORY.md files

## Session Completion

**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.

**MANDATORY WORKFLOW:**

1. **File issues for remaining work** - Create issues for anything that needs follow-up
2. **Run quality gates** (if code changed) - Tests, linters, builds
3. **Update issue status** - Close finished work, update in-progress items
4. **PUSH TO REMOTE** - This is MANDATORY:
```bash
git pull --rebase
bd dolt push
git push
git status # MUST show "up to date with origin"
```
5. **Clean up** - Clear stashes, prune remote branches
6. **Verify** - All changes committed AND pushed
7. **Hand off** - Provide context for next session

**CRITICAL RULES:**
- Work is NOT complete until `git push` succeeds
- NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds
<!-- END BEADS INTEGRATION -->
8 changes: 8 additions & 0 deletions beads-backup.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{"_type":"issue","id":"risus-cli-el-maestro-d0l","title":"Update risus-combat skill: Health Hausregel integrieren","description":"Kritisch: Skill trackt noch Wuerfel-Verluste (Standard Risus), aber Hausregel trennt Health von Cliches. State Block, Defeat-Bedingung, Team-Verluste muessen auf Health umgestellt werden. Malus-Schwellen fehlen. Zone-Bewegungsregeln fehlen.","status":"closed","priority":1,"issue_type":"task","assignee":"galadriel","owner":"galadriel@example.com","created_at":"2026-05-06T23:13:41Z","created_by":"galadriel","updated_at":"2026-05-11T13:05:33Z","started_at":"2026-05-06T23:15:06Z","closed_at":"2026-05-06T23:15:37Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-95u","title":"Roll dice for active cliche of a character","description":"As a player, I want to roll dice for the active cliche of a character so I can quickly report the dice throwing result to the game master. The roll should use the cliche's dice pool (number of dice equal to the cliche's rating).","status":"open","priority":2,"issue_type":"feature","owner":"galadriel@example.com","created_at":"2026-05-11T13:31:03Z","created_by":"galadriel","updated_at":"2026-05-11T13:31:03Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-o9l","title":"macOS release archive: executable only, no folder hierarchy","description":"The release archive for the macOS version shall only contain the executable without any folder hierarchy. Currently the archive may include nested directories; it should be a flat archive with just the binary.","status":"open","priority":2,"issue_type":"task","owner":"galadriel@example.com","created_at":"2026-05-11T13:29:52Z","created_by":"galadriel","updated_at":"2026-05-11T13:29:52Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-el-maestro-17o","title":"Update risus-coach skill: filename fix + ingestion + token optimization","description":"Probleme: (1) SR6E Dateiname falsch fehlt registriert. (2) Hausregeln.md nicht in Ingestion-Liste. (3) Rolle falsch als Game Master beschrieben. (4) Ingestion-Anweisung vage. (5) Keine Health-Hausregel im Quick-Reference. Ziel: Token-optimiert, präzise Instruktionen.","status":"closed","priority":2,"issue_type":"task","assignee":"galadriel","owner":"galadriel@example.com","created_at":"2026-05-06T23:13:35Z","created_by":"galadriel","updated_at":"2026-05-11T13:05:33Z","started_at":"2026-05-06T23:15:38Z","closed_at":"2026-05-06T23:15:56Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-10e","title":"Feature: Health Status tracking im Battle Tracker","description":"Der Battle Tracker soll Health Status separat von den Cliché-Würfeln tracken. Hintergrund: Hausregel vom 2026-05-06 trennt Health vom Cliché (Health = höchstes Cliché + 3). Health sinkt im Kampf, nicht das Cliché. Benötigt: (1) Health-Anzeige pro Charakter (aktuell / max), (2) Möglichkeit Health zu ändern (+ / - Buttons oder Eingabe), (3) Automatischer Malus-Hinweis bei Health \u003c= 4 (-1 Würfel) und \u003c= 2 (-2 Würfel).","status":"open","priority":2,"issue_type":"feature","owner":"galadriel@example.com","created_at":"2026-05-06T23:03:30Z","created_by":"galadriel","updated_at":"2026-05-11T13:06:15Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-6w5","title":"Bug: Save zeigt fehlerhaften Lock-Error trotz Erfolg","description":"Beim Speichern erscheint Fehlermeldung: 'Error: lock required — \\n locked by unlocked or unlocked'. Danach speichert das System trotzdem erfolgreich. Zwei Probleme: (1) '\\n' wird als Literal angezeigt statt als Zeilenumbruch — String-Formatierungsfehler. (2) Lock-Status-Text 'locked by unlocked or unlocked' ist sinnlos — vermutlich fehlerhafter Zustandsvergleich oder falsche Variable im Lock-Status-String.","notes":"Workaround: Neustart der App behebt das Problem temporär.","status":"closed","priority":2,"issue_type":"bug","owner":"galadriel@example.com","created_at":"2026-05-06T20:19:09Z","created_by":"galadriel","updated_at":"2026-05-11T16:03:25Z","closed_at":"2026-05-11T16:03:25Z","close_reason":"Unable to reproduce","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-glp","title":"Bug: Switch Cliche nur einmal verwendbar","description":"'Switch Cliche' kann nur einmal pro Session ausgeführt werden. Danach friert die Funktion ein. Neustart des Programms behebt das Problem temporär. Root cause unbekannt — vermutlich State wird nach erstem Switch nicht zurückgesetzt.","status":"closed","priority":2,"issue_type":"bug","owner":"galadriel@example.com","created_at":"2026-05-06T19:58:12Z","created_by":"galadriel","updated_at":"2026-05-11T16:03:26Z","closed_at":"2026-05-11T16:03:26Z","close_reason":"Unable to reproduce","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"risus-cli-el-maestro-dg3","title":"Update risus-session-summary skill: Duplikate entfernen + cleanup","description":"Git-Protokoll im Skill dupliziert AGENTS.md. Hausregeln-Referenz koennte direkter sein. Minor token-Optimierungen.","status":"closed","priority":3,"issue_type":"task","assignee":"galadriel","owner":"galadriel@example.com","created_at":"2026-05-06T23:13:42Z","created_by":"galadriel","updated_at":"2026-05-11T13:05:34Z","started_at":"2026-05-06T23:15:57Z","closed_at":"2026-05-06T23:16:34Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0}
Loading