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
2 changes: 1 addition & 1 deletion .codex/environments/environment.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS IS AUTOGENERATED. DO NOT EDIT MANUALLY
version = 1
name = "ClawDnD"
name = "WorldOS"

[setup]
script = ""
Expand Down
2 changes: 1 addition & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Coverage configuration for WorldOS / ClawDnD (QA Lab Phase-1, additive).
# Coverage configuration for WorldOS (QA Lab Phase-1, additive).
#
# Report-only: this file controls what coverage.py measures and which paths it
# omits. It deliberately does NOT set fail_under -- coverage stays advisory so
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WorldOS / ClawDnD — minimal, OPT-IN pre-commit config (inner-loop friction-cutter).
# WorldOS — minimal, OPT-IN pre-commit config (inner-loop friction-cutter).
#
# This is intentionally TINY and ADDITIVE: it does NOT run the test suite on every commit
# (the 16GB host OOMs on parallel test workers — full/heavy runs always go to GitHub CI). It
Expand Down
4 changes: 2 additions & 2 deletions agents/companion-agent.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
name: companion-agent
description: The ClawDnD AI companion as a standalone agent persona — a D&D party member with its own character sheet, voice, and agency. Tier-1 fork seed; in Tier 2 this is forked into an isolated OpenClaw sub-session of the user's own agent so the companion keeps the user's agent identity plus its own campaign memory.
description: The WorldOS AI companion as a standalone agent persona — a D&D party member with its own character sheet, voice, and agency. Tier-1 fork seed; in Tier 2 this is forked into an isolated OpenClaw sub-session of the user's own agent so the companion keeps the user's agent identity plus its own campaign memory.
---

You are the player's companion in a ClawDnD campaign — a full party member, not a sidekick or narrator. You have your own character sheet (in the `clawdnd-engine`), your own voice, and your own personality, goals, and opinions.
You are the player's companion in a WorldOS campaign — a full party member, not a sidekick or narrator. You have your own character sheet (in the `clawdnd-engine`), your own voice, and your own personality, goals, and opinions.

## Your agency
- **Take your own tactical turns in combat.** When initiative reaches you, decide and act yourself: call the engine's combat tools against your own sheet and roll through the engine like everyone else. Don't wait to be told what to do.
Expand Down
4 changes: 2 additions & 2 deletions commands/campaign-new.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
description: Start a brand-new ClawDnD campaign — create your character, meet your AI companion, and begin an adventure.
description: Start a brand-new WorldOS campaign — create your character, meet your AI companion, and begin an adventure.
argument-hint: "[campaign name or theme] (optional; defaults to the \"Cellar Rats\" starter)"
---
The player wants to start a NEW ClawDnD campaign.
The player wants to start a NEW WorldOS campaign.

Arguments (optional campaign name / theme): $ARGUMENTS

Expand Down
2 changes: 1 addition & 1 deletion commands/save.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: Save your campaign now — a durable checkpoint you can quit and re
---
The player wants to save.

ClawDnD writes campaign state to disk after every beat, so progress is rarely lost. To honor an explicit save:
WorldOS writes campaign state to disk after every beat, so progress is rarely lost. To honor an explicit save:
1. Make sure any pending changes from the current beat are flushed through `clawdnd-engine` — HP, conditions, inventory, XP, quest and NPC facts, and position.
2. Call `get_state` to confirm the persisted snapshot is current and complete.
3. Tell the player it's safe to quit, and that `/session-start` will pick up exactly here with a recap.
Expand Down
2 changes: 1 addition & 1 deletion commands/session-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: Begin or resume play — loads your campaign, recaps "Previously on…", and hands the table to the DM.
argument-hint: "[campaign id] (optional; defaults to your most recent campaign)"
---
The player wants to start or resume a ClawDnD session.
The player wants to start or resume a WorldOS session.

Target campaign (optional id): $ARGUMENTS

Expand Down
2 changes: 1 addition & 1 deletion commands/voice-toggle.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ argument-hint: "[on|off] (optional; toggles if omitted)"
---
The player wants to change voice output: $ARGUMENTS

ClawDnD's voice backend is chosen when the MCP servers launch (`CLAWDND_TTS_BACKEND` — `kokoro` for spoken audio, `null` for silent/text-only), so you can't relaunch it mid-session. Honor this as a **session preference**:
WorldOS's voice backend is chosen when the MCP servers launch (`CLAWDND_TTS_BACKEND` — `kokoro` for spoken audio, `null` for silent/text-only), so you can't relaunch it mid-session. Honor this as a **session preference**:

- **off / silent:** stop calling `clawdnd-voice` `speak`. Keep narrating and voicing characters in **text only**, still labeling each speaker so the player knows who's talking. Confirm voice is off.
- **on / voiced:** resume calling `clawdnd-voice` `speak(text, voice_id)` for narration, NPCs, and the companion in their own voices. If the active backend is `null`, tell the player to set `CLAWDND_TTS_BACKEND=kokoro` and restart the session for actual audio.
Expand Down
2 changes: 1 addition & 1 deletion commands/world-play.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ Do this:
5. Activate the **dungeon-master** skill and run its **"Generating a world live"** mode: drop the party at a starting option; generate each scene on arrival and PERSIST it (`add_location`, `create_character`, `remember`); pull canon on demand with `lookup_lore`; let the standing threads move on their own (weave in the `world_beats` from `travel_to`/`downtime`/`world_tick`); hold the story-craft bar (felt menace, a wounded companion, the unforgettable beat).
6. `start_session` (for the recap + continuity) and `end_session` when the player stops.

This is ClawDnD at its best — an epic, living world you inhabit, different every time. Make it sing.
This is WorldOS at its best — an epic, living world you inhabit, different every time. Make it sing.
2 changes: 1 addition & 1 deletion content/campaigns/cellar-rats/adventure.json
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,6 @@
"conditions_in_play": ["Prone (Wolf knockdown, DC 11 STR)", "Grappled (optional vermin-swarm hazard)", "Frightened (DM may apply via the Long Thing's presence as a narrative dread, optional)"]
},
"pacing_for_one_hour": "Scene 1 ~10 min (hook + bargain), Scene 2 ~10 min (descent + trap + fork), Scene 3 ~12 min (wolf fight), Scene 4 ~10 min (Quill + twist), Scene 5 ~15 min (climax + seal), Conclusion ~3 min. Trim the optional vermin swarm and run Grett's crew at 2 goblins to stay inside the hour for a smaller party.",
"originality_note": "This adventure is 100% original prose written for ClawDnD and is shippable under CC-BY. It uses only SRD 5.2 mechanics and the bundled Goblin/Wolf/Bandit stat blocks. No published or copyrighted adventure text is reproduced."
"originality_note": "This adventure is 100% original prose written for WorldOS and is shippable under CC-BY. It uses only SRD 5.2 mechanics and the bundled Goblin/Wolf/Bandit stat blocks. No published or copyrighted adventure text is reproduced."
}
}
6 changes: 3 additions & 3 deletions content/campaigns/cellar-rats/adventure.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Cellar Rats

> *A ClawDnD starter adventure. Levels 1–2 · one ~1-hour session · 3–4 players + companion.*
> *A WorldOS starter adventure. Levels 1–2 · one ~1-hour session · 3–4 players + companion.*

**The Sodden Crown is the only inn for a day's walk, and something has moved into its flooded cellar. The owner blames rats. The scratching in the walls is far too big for rats.**

This is a grounded, low-level dungeon crawl with a soft heart: a band of goblins has tunneled up into a tavern cellar — but they aren't raiders. They're refugees, fleeing something far worse still down in the drowned dark below. The "infestation" the party is hired to exterminate is a frightened family. The real monster is the one nobody ever quite sees.

It runs in about an hour and hits every beat a ClawDnD session should: a social hook, an exploration crawl with a trap and a choice, a memorable turncoat NPC whose attitude can flip, and two combats built from the bundled Goblin and Wolf stat blocks.
It runs in about an hour and hits every beat a WorldOS session should: a social hook, an exploration crawl with a trap and a choice, a memorable turncoat NPC whose attitude can flip, and two combats built from the bundled Goblin and Wolf stat blocks.

---

Expand Down Expand Up @@ -259,4 +259,4 @@ The companion (`companion-default`) is a *character*, not a rules engine — giv

---

*This adventure is 100% original prose written for ClawDnD, shippable under CC-BY 4.0. It uses only SRD 5.2 mechanics and the bundled Goblin / Wolf / Bandit stat blocks (System Reference Document 5.2 © Wizards of the Coast, CC-BY-4.0; see `data/srd/ATTRIBUTION.md`). No published or copyrighted adventure text is reproduced.*
*This adventure is 100% original prose written for WorldOS, shippable under CC-BY 4.0. It uses only SRD 5.2 mechanics and the bundled Goblin / Wolf / Bandit stat blocks (System Reference Document 5.2 © Wizards of the Coast, CC-BY-4.0; see `data/srd/ATTRIBUTION.md`). No published or copyrighted adventure text is reproduced.*
2 changes: 1 addition & 1 deletion content/campaigns/embergloom-pact/adventure.json
Original file line number Diff line number Diff line change
Expand Up @@ -885,6 +885,6 @@
},
"the_embergloom_note": "The Embergloom — the buried entity — is NEVER fully seen and NEVER fought. It is the ashfall's true source and the rite's prize: a presence of grey hunger felt as rising ash, ember-light, and mounting dread. Its WAKING is the campaign's failure state (the Act 3 rite-clock); its RE-SEALING is the victory. Do NOT stat it. Velandra (Wight stats) is the human anchor the party actually fights; the Embergloom is the reason the fight matters.",
"pacing": "Designed as a ~4-session arc (one act per ~80-min session, or a long single sitting). Act 1 ~ levels 1-2 (hook + mill + cult). Act 2 ~ levels 2-4 (barrow + reveal + seal). Act 3 ~ levels 4-5 (descent + crypt climax). Use the per-scene scaling notes to tune each fight to party size, and prefer milestone leveling (2 / 3-4 / 5) for clean act breaks.",
"originality_note": "This campaign is 100% original prose written for ClawDnD and is shippable under the root WorldOS license unless a separate content license is stated. It uses only SRD 5.2 mechanics and the bundled SRD creature stat blocks (Cultist, Skeleton, Bandit Captain, Specter, Ogre, Wight). No published or copyrighted adventure text, names, places, or plot is reproduced; the town of Cinderhollow, the Embergloom entity, Sister Velandra Coir, Brother Toll, and all NPCs and locations are original creations."
"originality_note": "This campaign is 100% original prose written for WorldOS and is shippable under the root WorldOS license unless a separate content license is stated. It uses only SRD 5.2 mechanics and the bundled SRD creature stat blocks (Cultist, Skeleton, Bandit Captain, Specter, Ogre, Wight). No published or copyrighted adventure text, names, places, or plot is reproduced; the town of Cinderhollow, the Embergloom entity, Sister Velandra Coir, Brother Toll, and all NPCs and locations are original creations."
}
}
2 changes: 1 addition & 1 deletion content/campaigns/embergloom-pact/adventure.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The Embergloom Pact

*A ClawDnD showcase campaign — SRD 5.2, levels 1 → 5, ~4 sessions.*
*A WorldOS showcase campaign — SRD 5.2, levels 1 → 5, ~4 sessions.*
*100% original prose on SRD primitives. Ships under the root WorldOS license unless a separate content license is stated.*

---
Expand Down
4 changes: 2 additions & 2 deletions data/srd/ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The SRD 5.2.1 is licensed under the **Creative Commons Attribution 4.0
International License** (CC-BY-4.0), available at
https://creativecommons.org/licenses/by/4.0/legalcode.

ClawDnD includes and adapts this material under that license. The following
WorldOS includes and adapts this material under that license. The following
attribution is required by CC-BY-4.0 and must be retained:

> This work includes material from the System Reference Document 5.2.1 ("SRD 5.2.1")
Expand All @@ -17,5 +17,5 @@ attribution is required by CC-BY-4.0 and must be retained:
> International License, available at
> https://creativecommons.org/licenses/by/4.0/legalcode.

ClawDnD uses only SRD content. It does not include or redistribute any non-SRD,
WorldOS uses only SRD content. It does not include or redistribute any non-SRD,
copyrighted Wizards of the Coast material.
4 changes: 2 additions & 2 deletions data/srd/LICENSE-DATA.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ this data is redistributed:

This dataset has been **converted from the original SRD 5.2.1 document into
structured JSON** by the Open5e project (the conversion source below), and is
vendored here unmodified from that source. ClawDnD's rules server further
vendored here unmodified from that source. WorldOS's rules server further
*adapts* these records at load time (field normalization into a lookup index);
the on-disk JSON under `data/srd/srd524/` is a verbatim copy of the upstream
Open5e files.
Expand All @@ -67,7 +67,7 @@ data project, which converts the SRD into machine-readable JSON:
above.

Open5e's conversion work is gratefully acknowledged. Open5e is not affiliated
with, nor does it endorse, ClawDnD.
with, nor does it endorse, WorldOS.

## Scope of what is vendored

Expand Down
2 changes: 1 addition & 1 deletion data/srd/bg-midtier/ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ https://www.dndbeyond.com/srd, licensed under the **Creative Commons Attribution
## Flavor / Names / Descriptions

All creature names and flavor material (names, world context, thematic framing)
are original works by the ClawDnD project authors, written from scratch to evoke
are original works by the WorldOS project authors, written from scratch to evoke
the Baldur's Gate region. They do not reproduce any copyrighted game text,
product-identity text, or wiki content.
2 changes: 1 addition & 1 deletion qa/lib_beat_driver.sh
Original file line number Diff line number Diff line change
Expand Up @@ -957,7 +957,7 @@ clawdnd_coldopen_retry_msg() {
printf '%s' "$base_msg"
return 0
fi
printf '%s' "You are the Dungeon Master for a solo ClawDnD adventure. Activate and follow your \`dungeon-master\` skill — run its \"Generating a world live\" mode and hold its craft bar (mechanics sourced from the engine, NPCs speak, the world pushes back, scenes played not logged).
printf '%s' "You are the Dungeon Master for a solo WorldOS adventure. Activate and follow your \`dungeon-master\` skill — run its \"Generating a world live\" mode and hold its craft bar (mechanics sourced from the engine, NPCs speak, the world pushes back, scenes played not logged).

A previous cold-open attempt already minted THIS session's campaign, so the world ALREADY EXISTS — RESUME it, do NOT start over:
- This session's campaign ALREADY EXISTS: use campaign_id=$live_cid for EVERY engine call. DO NOT call start_world(\"$world\") — it would mint a NEW campaign id and ORPHAN this save (the player's seated party would vanish).
Expand Down
2 changes: 1 addition & 1 deletion scripts/launch_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ clawdnd_missing_commands() {
command -v "$cmd" >/dev/null 2>&1 || missing+=("$cmd")
done
if [ "${#missing[@]}" -gt 0 ]; then
echo "ClawDnD cannot start yet: missing command(s): ${missing[*]}" >&2
echo "WorldOS cannot start yet: missing command(s): ${missing[*]}" >&2
echo >&2
echo "Install the missing tools, then double-click the launcher again." >&2
echo "Required for dashboard play: python3, claude, uv, jq, curl." >&2
Expand Down
2 changes: 1 addition & 1 deletion scripts/license_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def _check_ingested_attribution(tracked: list[str]) -> list[str]:
"""Every committed INGESTED record must carry its per-source attribution (it's wiki-derived
CC-BY-SA, not the WorldOS license) — the docs promise it, so the gate enforces it instead of trusting memory.
JSON records (characters/areas) need non-empty `license` + `attribution` (a wiki-derived one
also carries `source_url`, but original ClawDnD exemplars legitimately have none); wiki lore
also carries `source_url`, but original WorldOS exemplars legitimately have none); wiki lore
.md needs a Source/license footer. Authored lore under lore/*.md is exempt — it's our prose."""
errors: list[str] = []
for f in tracked:
Expand Down
Loading
Loading