From fc18af576e9b39a339aacb845b2d4d94b1faeecc Mon Sep 17 00:00:00 2001 From: Seppe De Loore Date: Sun, 5 Apr 2026 20:16:35 +0200 Subject: [PATCH] [add] Openwolf --- .claude/rules/openwolf.md | 15 ++++++++ .claude/settings.json | 72 +++++++++++++++++++++++++++++++++++++++ .gitignore | 1 + .vscode/settings.json | 4 +++ CLAUDE.md | 28 +++++++++------ 5 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 .claude/rules/openwolf.md create mode 100644 .claude/settings.json diff --git a/.claude/rules/openwolf.md b/.claude/rules/openwolf.md new file mode 100644 index 0000000..9785410 --- /dev/null +++ b/.claude/rules/openwolf.md @@ -0,0 +1,15 @@ +--- +description: OpenWolf protocol enforcement — active on all files +globs: **/* +--- + +- Check .wolf/anatomy.md before reading any project file +- Check .wolf/cerebrum.md Do-Not-Repeat list before generating code +- After writing or editing files, update .wolf/anatomy.md and append to .wolf/memory.md +- After receiving a user correction, update .wolf/cerebrum.md immediately (Preferences, Learnings, or Do-Not-Repeat) +- LEARN from every interaction: if you discover a convention, user preference, or project pattern, add it to .wolf/cerebrum.md. Low threshold — when in doubt, log it. +- BEFORE fixing any bug or error: read .wolf/buglog.json for known fixes +- AFTER fixing any bug, error, failed test, failed build, or user-reported problem: ALWAYS log to .wolf/buglog.json with error_message, root_cause, fix, and tags +- If you edit a file more than twice in a session, that likely indicates a bug — log it to .wolf/buglog.json +- When the user asks to check/evaluate UI design: run `openwolf designqc` to capture screenshots, then read them from .wolf/designqc-captures/ +- When the user asks to change/pick/migrate UI framework: read .wolf/reframe-frameworks.md, ask decision questions, recommend a framework, then execute with the framework's prompt diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..0e5a4cd --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,72 @@ +{ + "hooks": { + "SessionStart": [ + { + "matcher": "", + "hooks": [ + { + "type": "command", + "command": "node \"$CLAUDE_PROJECT_DIR/.wolf/hooks/session-start.js\"", + "timeout": 5 + } + ] + } + ], + "PreToolUse": [ + { + "matcher": "Read", + "hooks": [ + { + "type": "command", + "command": "node \"$CLAUDE_PROJECT_DIR/.wolf/hooks/pre-read.js\"", + "timeout": 5 + } + ] + }, + { + "matcher": "Write|Edit|MultiEdit", + "hooks": [ + { + "type": "command", + "command": "node \"$CLAUDE_PROJECT_DIR/.wolf/hooks/pre-write.js\"", + "timeout": 5 + } + ] + } + ], + "PostToolUse": [ + { + "matcher": "Read", + "hooks": [ + { + "type": "command", + "command": "node \"$CLAUDE_PROJECT_DIR/.wolf/hooks/post-read.js\"", + "timeout": 5 + } + ] + }, + { + "matcher": "Write|Edit|MultiEdit", + "hooks": [ + { + "type": "command", + "command": "node \"$CLAUDE_PROJECT_DIR/.wolf/hooks/post-write.js\"", + "timeout": 10 + } + ] + } + ], + "Stop": [ + { + "matcher": "", + "hooks": [ + { + "type": "command", + "command": "node \"$CLAUDE_PROJECT_DIR/.wolf/hooks/stop.js\"", + "timeout": 10 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 674926a..a6a2876 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ __pycache__/ *.pyo save.qzl vosk-model-*/ +.wolf diff --git a/.vscode/settings.json b/.vscode/settings.json index a850ddb..14e9101 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,7 @@ { "cSpell.words": [ "ACTORBIT", + "aplay", "CONTBIT", "DARKBIT", "DOORBIT", @@ -16,11 +17,13 @@ "NDESCBIT", "ONBIT", "OPENBIT", + "OPENWOLF", "OUTSIDEBIT", "prosser", "prsa", "prsi", "prso", + "pycache", "READBIT", "REVISITBIT", "RLANDBIT", @@ -35,6 +38,7 @@ "TRYTAKEBIT", "VEHBIT", "vogon", + "vosk", "VOWELBIT", "WEARBIT", "WORNBIT" diff --git a/CLAUDE.md b/CLAUDE.md index 0cb5fb6..2de28d4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,3 +1,9 @@ +# OpenWolf + +@.wolf/OPENWOLF.md + +This project uses OpenWolf for context management. Read and follow .wolf/OPENWOLF.md every session. Check .wolf/cerebrum.md before generating code. Check .wolf/anatomy.md before reading files. + # CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. @@ -25,18 +31,18 @@ This produces a `.z5` story file playable in any Z-machine interpreter (Frotz, L **Source files by function:** -| File | Purpose | -|------|---------| -| `s4.zil` | Main file; game title, file includes, property defaults | +| File | Purpose | +| ------------- | -------------------------------------------------------------------------------------- | +| `s4.zil` | Main file; game title, file includes, property defaults | | `globals.zil` | Global variables, directions, meta-objects (ROOMS, IT, NOT-HERE-OBJECT, LOCAL-GLOBALS) | -| `parser.zil` | Text parser — tokenizing input, resolving nouns/adjectives, disambiguation | -| `syntax.zil` | Vocabulary: BUZZ words, SYNONYMs, direction aliases, verb SYNTAX definitions | -| `verbs.zil` | Verb handler routines (`V-TAKE`, `V-DROP`, `V-EXAMINE`, etc.) and game commands | -| `misc.zil` | Utility routines, interrupt/clock system, macros | -| `earth.zil` | Earth locations — Arthur's bedroom, front of house, pub, country lane | -| `vogon.zil` | Vogon ship — hold, guard's room, airlock, poetry appreciation | -| `heart.zil` | Heart of Gold — bridge, engine room, corridors, Infinite Improbability Drive | -| `unearth.zil` | Off-Earth locations — Traal (Ravenous Bugblatter Beast), Damogran, Magrathea | +| `parser.zil` | Text parser — tokenizing input, resolving nouns/adjectives, disambiguation | +| `syntax.zil` | Vocabulary: BUZZ words, SYNONYMs, direction aliases, verb SYNTAX definitions | +| `verbs.zil` | Verb handler routines (`V-TAKE`, `V-DROP`, `V-EXAMINE`, etc.) and game commands | +| `misc.zil` | Utility routines, interrupt/clock system, macros | +| `earth.zil` | Earth locations — Arthur's bedroom, front of house, pub, country lane | +| `vogon.zil` | Vogon ship — hold, guard's room, airlock, poetry appreciation | +| `heart.zil` | Heart of Gold — bridge, engine room, corridors, Infinite Improbability Drive | +| `unearth.zil` | Off-Earth locations — Traal (Ravenous Bugblatter Beast), Damogran, Magrathea | **Assembly files (`.xzap`):** `s4.xzap` is the assembly include order; `s4freq.xzap` defines frequently-used strings (Huffman-compressed). `s4.errors` is the assembler output log.