# DeepSeek Harness Game Studios ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Version](https://img.shields.io/badge/version-0.1.6-orange.svg) ![Agents](https://img.shields.io/badge/agents-49-purple.svg) ![Skills](https://img.shields.io/badge/skills-76-green.svg) ![Hooks](https://img.shields.io/badge/hooks-14-orange.svg) ![Rules](https://img.shields.io/badge/rules-13-blue.svg) ![Port of CCGS](https://img.shields.io/badge/port%20of-CCGS%20v1.1.2-lightgrey.svg) [![English](https://img.shields.io/badge/lang-English-blue.svg)](README.md) [![简体中文](https://img.shields.io/badge/lang-%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87-red.svg)](README.zh-CN.md) [Install](#install) · [Implementation status](#implementation-status) · [Project structure](#project-structure) · [Testing your customizations](#testing-your-own-customizations) · [Verification](#verification) · [License](#license) Turn a single DeepSeek Harness session into a full game development studio. **49 agents. 76 skills. One coordinated AI team.** This is a **port of [Claude Code Game Studios](https://github.com/Donchitos/Claude-Code-Game-Studios) (CCGS)** to DeepSeek Harness (DSH) — not a rewrite from scratch: the skills, agents, rules and docs come from upstream (MIT); this repository provides the DSH-native runtime (Node hooks, skill generation, machine-level install, plugin bridge). ## Provenance | | | |---|---| | Upstream project | [`Donchitos/Claude-Code-Game-Studios`](https://github.com/Donchitos/Claude-Code-Game-Studios) | | Upstream version this port tracks | **v1.1.2** (commit `b21fa0f`, 2026-09-29) | | Upstream license | **MIT** (Copyright © 2026 Donchitos) — reused here | | This repository | `deepseek-harness-game-studios` (DSGS) **v0.1.4** | | Port strategy | Dual stack, one source: `.claude/` is the content source (upstream text, kept verbatim); `.dsh/**` is generated by `tools/build-dsh.mjs` | Upstream targets Claude Code (`.claude/`, `.sh` hooks, `bash` one-liners, `@path` imports). None of that runs under DSH (no `bash` tool, piped child processes are denied by the sandbox, `@path` is not expanded), so instead of editing upstream content we generate a DSH-runnable equivalent and prove **no content loss**. > This repository **is the plugin package**. The framework it installs is bundled under `payload/` — you never need to look at it. ## Install ### ① GUI `Plugins` → `Add plugin` → paste `https://github.com/HYClub/deepseek-harness-game-studios` → **Install** → **restart `dsh web`**. ### ② Command line ```pwsh dsh plugin --profile web add https://github.com/HYClub/deepseek-harness-game-studios ``` Then **restart `dsh web`**. On first load the plugin installs the framework at machine level (`~/.dsh/dsgs` plus user-level bootstrap skills). After that: ``` new working directory → new session → type /start ``` `/start` checks whether the workspace is initialised; if not it initialises it first, then walks you through onboarding. ## What the plugin writes to your machine (and how to undo it) | Path | What | |---|---| | `~/.dsh/dsgs/**` | framework payload (skills, agents, rules, hooks, tools, docs, instruction files) | | `~/.dsh/skills/dsgs-init/SKILL.md`, `~/.dsh/skills/start/SKILL.md` | user-level bootstrap skills | It never touches a project directory and never overwrites project files. To undo: ```pwsh Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh\dsgs" Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh\skills\dsgs-init","$env:USERPROFILE\.dsh\skills\start" # then uninstall the plugin and restart dsh web ``` ## Implementation status ### ✅ Implemented (all measured) | Item | Status | Notes | |---|---|---| | Skills | ✅ | all 74 upstream skills ported, each invocable as `/name` | | Agent role cards | ✅ | 49, as `.dsh/agents/.md` + delegation conventions | | Rules | ✅ | 13, including an equivalent for upstream's path-scoped rule engine: a PostToolUse hook injects the matching rule text after each write/edit | | Hooks | ✅ | 12 upstream scripts → 14 Node rewrites, bridged via `dsh-hooks-claude-code`; all 9 upstream events covered | | Hooks actually run | ✅ | mount 10/10 · protocol 12/12 · live events 6/9 | | Config resolution | ✅ | `project.yaml` single source; Node ports of `resolve_config` / `__call resolve_setting` | | Helper scripts | ✅ | every upstream `.sh` has a Node port (`.dsh/scripts/*.mjs`) that runs inside the sandbox | | Content fidelity | ✅ | 258 files / 42,895 lines: 96.0% verbatim, 3.1% documented rewrites, 0.5% structural, 0.4% fuzzy, **0 unexplained loss** | | Machine-level install | ✅ | the plugin ships the payload and installs it on first load; `/start` initialises an empty workspace (measured: 928 items) | | `/statusline` | ✅ | studio status line `stage · posture · epic > story · Sprint n/m · engine` (+13 unit tests) | | Nested delegation | ✅ | `subagent.maxDepth: 2` — parent → child → grandchild verified (DSH default is 1) | | One-package install | ✅ | one package = hook bridge + status line projection + payload self-install | | DSGS-only skills | ✅ | `statusline`, `dsgs-install` (not in upstream) | ### ❌ Not implemented / no equivalent (with reasons and substitutes) | Item | Status | Why | Substitute | |---|---|---|---| | Docked status bar above the composer | ❌ | DSH's client roster only lists `@deepseek-ai/*` packages (measured: 60+ entries, ours absent even with a `dsh.client` declaration) | `/statusline` skill + `node .dsh/statusline.mjs`; the runtime half (turns/tokens/cache/context %) is already covered by DSH's own status bar | | Pre-action reminders on PreToolUse | ❌ | `tools/pre-execute` only carries `allow/deny/cancel/ask`; `additionalContexts` is read from the final tool result; `agent.inject()` mid-execution has no effect | `validate-commit` / `validate-push` are also registered on **PostToolUse** (reminder arrives after the action); set the plugin row `advisory: deny` to block before the action | | 3 hook events cannot be triggered from a prompt | ⚠️ | `Notification`, `PreCompact`, `PostCompact` have no DSH event source | mapping implemented and unit-tested, verified at mount level only (live coverage 6/9) | | Per-agent tool allowlists / agent auto-discovery | ❌ | DSH's `subagent` does not accept a per-agent tool set and has no agent registry | role cards + `toolFilter` / `persona` conventions | | `@path` imports | ❌ | DSH does not expand imports | `.dsh/docs/studio-rules.md` (merged), read on demand | | `!`cmd`` pre-execution lines | ❌ | DSH has no pre-execution | rewritten as a "prerequisite command" block the model runs itself | | Byte-for-byte bash ↔ Node parity | ⚠️ | `python3` in this machine's Git Bash is a Store placeholder | 2 named SKIPs, 1 case byte-identical | ## Project Structure ``` .claude/ # Upstream content source (MIT, kept verbatim) settings.json # Hooks, permissions, safety rules agents/ # 49 agent definitions skills/ # 74 skills (one directory per skill) hooks/ # 14 scripts — 12 event hooks + yaml-helper.sh rules/ # 13 path-scoped coding standards statusline.sh # Upstream status line (kept as reference) docs/ # workflow catalog, 39 templates, guidance .dsh/ # Generated by tools/build-dsh.mjs — do not edit by hand agents/ skills/ rules/ hooks/ scripts/ docs/ tools/ # Generator, verifiers, Node ports, plugin, installers dsh-src/ # Hand-written DSH-only overlay (merged into .dsh/) DSGS Skill Testing Framework/ # QA for the skills and agents themselves design/ src/ assets/ tests/ prototypes/ production/ # Your project ``` ## Testing your own customizations DSGS is a template you are meant to edit. `DSGS Skill Testing Framework/` is how you check that an edited or newly written skill still holds up — a catalog of all skills and agents, per-category quality rubrics, behavioral specs, and templates for writing specs of your own. ``` /skill-test static [name] # structural linter /skill-test category [name] # category-specific quality rubric /skill-test spec [name] # behavioral spec assertions /skill-test audit # coverage report across skills and agents /skill-improve [name] # test-fix-retest loop; keeps or reverts on score change ``` It tests the *framework*, never your game — game tests live in `tests/`. ## Verification ```pwsh pwsh -File tools/verify-port.ps1 # 7 steps: generate → structure → refs → fidelity → hooks → mount → suites node tools/check-dsh.mjs # skills=76 agents=49 rules=13 hooks=14 errors=0 warnings=0 node tools/verify-fidelity.mjs # unexplained 0 / no content loss (258 files, 42,895 lines) node tools/verify-hooks-mount.mjs # 10/10 mount cases node tools/verify-hooks-bridge.mjs # 12/12 node tools/verify-hooks-events.mjs # 6/9 live + 3 mount-only ``` ## Supporting this project (and upstream) DSGS is a port; the original work — 74 skills, 49 agents, 13 rules and all the documentation — was written by the **upstream author**, and their own support links live in the [upstream repository](https://github.com/Donchitos/Claude-Code-Game-Studios). If this project saves you time, please support **them** first. Issues and contributions about the DSH port itself belong in this repository. ## License MIT License — see [LICENSE](LICENSE). Upstream copyright © 2026 Donchitos; the port layer (generator, Node hooks, plugin, installers, DSGS-only skills) is released under the same license.