[add] Openwolf
This commit is contained in:
@@ -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
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,3 +3,4 @@ __pycache__/
|
|||||||
*.pyo
|
*.pyo
|
||||||
save.qzl
|
save.qzl
|
||||||
vosk-model-*/
|
vosk-model-*/
|
||||||
|
.wolf
|
||||||
|
|||||||
Vendored
+4
@@ -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"
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user