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
14 changes: 7 additions & 7 deletions .claude/skills/worldos-dev/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: worldos-dev
description: Develop, test, and QA the WorldOS plugin (the living-world D&D 5e engine). Use when implementing an engine/content/QA change, running or scoring a playtest, delegating a build to a subagent, or resuming the project after a compaction. Encodes the exact dev loop (worktree → additive change → single-process LEXAR pytest → PR → squash-admin merge → prune), the QA loop (duo / combat-sprint runners + the 3 lenses + behavioral gate), and the load-bearing engine invariants. Read WorldOS-RUNBOOK.md first for full context.
description: Develop, test, and QA the WorldOS plugin (the living-world D&D 5e engine). Use when implementing an engine/content/QA change, running or scoring a playtest, delegating a build to a subagent, or resuming the project after a compaction. Encodes the exact dev loop (worktree → additive change → focused single-process pytest → PR → merge → prune), the QA loop (duo / combat-sprint runners + the 3 lenses + behavioral gate), and the load-bearing engine invariants. Read WorldOS-RUNBOOK.md first for full context.
---

# WorldOS Dev
Expand Down Expand Up @@ -29,17 +29,17 @@ universe-system that generates worlds. Source-available commercial product, BG-f
touch agents `main`/`operations`.

## THE DEV LOOP (exact)
Test policy: **GitHub-CI-first; local only on LEXAR; SINGLE-PROCESS** (main disk ~4.3 GB
free — parallel workers OOM the host). This repo is on LEXAR, so local single-process is OK.
Test policy: **GitHub-CI-first for broad validation; focused local tests for fast feedback.**
Keep Python tests single-process unless the lane explicitly supports parallel execution.

1. **Worktree off main** (keeps the engine/content/QA lane disjoint from the sibling
macOS/OpenWorlds lane). Implement **additively** (honor every invariant).
2. **Single-process test** (warm the venv first on a fresh worktree):
```bash
uv run --directory servers/engine python -m pytest <relpath> -q -p no:xdist
```
**NEVER pass `-n` / use xdist** — parallel workers OOM the host. Run focused files for
the change; run the full `servers/engine/tests` before merge.
Run focused files for the change; rely on GitHub CI for broad validation unless the
full local suite is explicitly needed.
3. **Push + open the PR** with a HEREDOC body:
```bash
gh pr create --title "…" --body "$(cat <<'EOF'
Expand All @@ -49,8 +49,8 @@ free — parallel workers OOM the host). This repo is on LEXAR, so local single-
```
**DO NOT pipe `gh pr create` through `tail` inside an `&&` chain** — it masks a transient
failure and silently skips the merge (bit us on #185). Verify the returned PR URL.
4. **Merge (local-gate):** `gh pr merge --squash --admin` — GitHub Actions is degraded
repo-wide; we gate on local single-process pytest + `license_check`, CI reconciles post-merge.
4. **Merge only after checks pass.** Use the repository's normal PR merge path and treat
local `license_check` + focused pytest as pre-push confidence, not a replacement for CI.
5. **Sync + clean:**
```bash
git pull --ff-only origin main
Expand Down
18 changes: 16 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@
/play-state/

# QA harness runtime artifacts — sandboxed playtest state, transcripts, logs.
# The harness scripts/rubric/config (qa/*.sh, qa/*.py, qa/*.json, qa/*.txt, qa/*.md)
# ARE committed; only these run outputs are ignored.
# The harness scripts/rubric/config are committed. Local machine overrides and run
# outputs are ignored; the portable MCP template is qa/qa.mcp.example.json.
/qa/state/
/qa/state-oc/
/qa/transcripts/
/qa/runs/
/qa/*.err
/qa/smoke*.json
/qa/qa.mcp.json
# The on-demand findings ledger (qa/collect_findings.py output) — a regenerable digest of
# local QA run scores, derived from the ignored qa/transcripts/. The collector script IS
# committed; its output is not.
Expand Down Expand Up @@ -57,6 +59,18 @@ venv/
.cache/
/state/audio/

# Local operator / agent artifacts. Public repo guidance should live in tracked docs;
# machine-specific Claude/Codex notes stay local.
/CLAUDE.md
.claude/local.json
.claude/settings.local.json
.claude/*.local.json
.claude.local/
.aider*
*.har
*.trace
*.tmp

# OS / editor
.DS_Store
.idea/
Expand Down
8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ CI-green PRs so nothing broke mid-flight:
- **Identity (#296):** plugin id `clawdnd` → **`worldos`**; the macOS app is now
`WorldOSApp` / `WorldOS.app`; author `electricsheephq`; repo moved to
`github.com/electricsheephq/WorldOS` (prior owner paths may redirect).
README, CLAUDE.md, docs, and the dev skill (`worldos-dev`) rebranded.
README, public docs, and the dev skill (`worldos-dev`) rebranded.
- **Code + docs (#299):** ClawDnD → WorldOS across source and documentation; **zero
ClawDnD references remain in `servers/engine`**.
- **Env compatibility (#300, non-breaking):** a shared resolver now prefers
Expand Down Expand Up @@ -134,9 +134,9 @@ signatures).
longer calls `getcwd()` on an external/removable volume — a kernel-level enumeration
that some security scanners hang on `open$NOCANCEL`. `server.py` resolves all of its
assets from `__file__`, so the cwd change is transparent to it.
- **Repo can be checked out anywhere.** Verified by cloning into `~/ClawDnD-val` on
internal disk in parallel with the LEXAR worktree; the build + the test suites + the
whole OpenWorlds screen set all run identically from either location.
- **Repo can be checked out anywhere.** Verified by cloning into a clean checkout in
parallel with another worktree; the build + the test suites + the whole OpenWorlds
screen set all run identically from either location.

### Fixed

Expand Down
105 changes: 0 additions & 105 deletions CLAUDE.md

This file was deleted.

Loading
Loading