[add] Openwolf

This commit is contained in:
2026-04-05 20:16:35 +02:00
parent 81e9760e5c
commit fc18af576e
5 changed files with 109 additions and 11 deletions
+15
View File
@@ -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
+72
View File
@@ -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
}
]
}
]
}
}
+1
View File
@@ -3,3 +3,4 @@ __pycache__/
*.pyo *.pyo
save.qzl save.qzl
vosk-model-*/ vosk-model-*/
.wolf
+4
View File
@@ -1,6 +1,7 @@
{ {
"cSpell.words": [ "cSpell.words": [
"ACTORBIT", "ACTORBIT",
"aplay",
"CONTBIT", "CONTBIT",
"DARKBIT", "DARKBIT",
"DOORBIT", "DOORBIT",
@@ -16,11 +17,13 @@
"NDESCBIT", "NDESCBIT",
"ONBIT", "ONBIT",
"OPENBIT", "OPENBIT",
"OPENWOLF",
"OUTSIDEBIT", "OUTSIDEBIT",
"prosser", "prosser",
"prsa", "prsa",
"prsi", "prsi",
"prso", "prso",
"pycache",
"READBIT", "READBIT",
"REVISITBIT", "REVISITBIT",
"RLANDBIT", "RLANDBIT",
@@ -35,6 +38,7 @@
"TRYTAKEBIT", "TRYTAKEBIT",
"VEHBIT", "VEHBIT",
"vogon", "vogon",
"vosk",
"VOWELBIT", "VOWELBIT",
"WEARBIT", "WEARBIT",
"WORNBIT" "WORNBIT"
+17 -11
View File
@@ -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 # CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. 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:** **Source files by function:**
| File | Purpose | | File | Purpose |
|------|---------| | ------------- | -------------------------------------------------------------------------------------- |
| `s4.zil` | Main file; game title, file includes, property defaults | | `s4.zil` | Main file; game title, file includes, property defaults |
| `globals.zil` | Global variables, directions, meta-objects (ROOMS, IT, NOT-HERE-OBJECT, LOCAL-GLOBALS) | | `globals.zil` | Global variables, directions, meta-objects (ROOMS, IT, NOT-HERE-OBJECT, LOCAL-GLOBALS) |
| `parser.zil` | Text parser — tokenizing input, resolving nouns/adjectives, disambiguation | | `parser.zil` | Text parser — tokenizing input, resolving nouns/adjectives, disambiguation |
| `syntax.zil` | Vocabulary: BUZZ words, SYNONYMs, direction aliases, verb SYNTAX definitions | | `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 | | `verbs.zil` | Verb handler routines (`V-TAKE`, `V-DROP`, `V-EXAMINE`, etc.) and game commands |
| `misc.zil` | Utility routines, interrupt/clock system, macros | | `misc.zil` | Utility routines, interrupt/clock system, macros |
| `earth.zil` | Earth locations — Arthur's bedroom, front of house, pub, country lane | | `earth.zil` | Earth locations — Arthur's bedroom, front of house, pub, country lane |
| `vogon.zil` | Vogon ship — hold, guard's room, airlock, poetry appreciation | | `vogon.zil` | Vogon ship — hold, guard's room, airlock, poetry appreciation |
| `heart.zil` | Heart of Gold — bridge, engine room, corridors, Infinite Improbability Drive | | `heart.zil` | Heart of Gold — bridge, engine room, corridors, Infinite Improbability Drive |
| `unearth.zil` | Off-Earth locations — Traal (Ravenous Bugblatter Beast), Damogran, Magrathea | | `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. **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.