AI Skill Report Card

Setting Up WSL Dev Environment

C+64·Nov 11, 2026·Source: Web

Looking at this task, I need to identify distinct skill areas that Claude would need for this Unity→Prowl parity project. Let me break down the workflow into discrete, reusable skills.



name: setting-up-wsl-dev-environment description: Installs and verifies system dependencies, Node.js, .NET SDK, REA, and GitHub CLI on WSL/Ubuntu for a cross-platform development project. Use when bootstrapping a new project environment, verifying tool versions, or diagnosing missing/outdated dependencies on WSL before any coding begins.

12 / 15
Bash
# Verify core system deps for pkg in git curl unzip procps jq; do dpkg -s "$pkg" >/dev/null 2>&1 && echo "OK: $pkg" || echo "MISSING: $pkg" done

Install missing ones with sudo apt-get update && sudo apt-get install -y <pkg>.

Recommendation▾
The submission contains multiple distinct skills concatenated together and the last one is cut off mid-sentence — submit and evaluate each skill as a separate file for proper grading
13 / 15

Progress:

  • Step 1: Confirm working directory lives under /mnt/c/... (never ~ or ext4 /home)
  • Step 2: Install/verify base system packages (git, curl, unzip, procps, jq)
  • Step 3: Verify Node.js version meets requirement (e.g. >= 22.23.4 or >= 24.22.1); install via nvm/fnm if too old
  • Step 4: Verify/install target SDK (e.g. .NET 10) and confirm dotnet --version
  • Step 5: Verify gh CLI installed and gh auth status authenticated
  • Step 6: Verify git config user.name / user.email set, set them if absent
  • Step 7: Configure core.autocrlf=input and .gitattributes (* text=auto eol=lf) on any repo under /mnt/c
  • Step 8: Report full version table to the user before proceeding

Step details

Working directory check (always first). Never create files until the exact Windows-backed path is confirmed. If unknown, stop and ask — do not guess or default to ~.

Node version check:

Bash
node --version # If below requirement: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install --lts

SDK check (example .NET):

Bash
dotnet --version dotnet --list-sdks

If missing, download install script from the official source, run with --install-dir pointing to a path under the project's Windows-mounted tree if sandboxing is required, otherwise standard location is fine since the SDK itself is tooling, not project content.

GitHub auth check:

Bash
gh --version gh auth status

If not authenticated, do not attempt to authenticate silently — present the exact command (gh auth login) and wait.

Git identity:

Bash
git config --global user.name git config --global user.email

If either is empty, ask the user for values rather than inventing placeholders.

CRLF safety for Windows-mounted repos:

Bash
git config core.autocrlf input cat > .gitattributes <<'EOF' * text=auto eol=lf EOF
Recommendation▾
Complete the truncated 'reverse-engineering-unity-api-with-rea' skill — it ends abruptly without finishing the workflow, best practices, or pitfalls sections
  • Always print a summary table (tool / required version / found version / status) before declaring the environment ready.
  • Treat any install that downloads >~100MB (SDKs, engine binaries, IDEs) as requiring explicit user confirmation first.
  • Prefer version managers (nvm, fnm) over system package manager for language runtimes to avoid sudo conflicts and allow per-project overrides.
  • Re-run the full verification table after any install step — don't assume success.
  • Installing or caching anything under ~ or native /home ext4 when the project must live under /mnt/c — this silently creates a split environment that breaks later.
  • Proceeding past a failed step with a "workaround" instead of stopping to ask.
  • Forgetting procps on Linux — many Node-based agent tools silently fail without it (missing ps).
  • Assuming gh auth login can be run non-interactively on your behalf — it requires user action.


name: setting-up-rea-mcp-server description: Installs rea-agents globally, registers the REA MCP server with a code agent (opencode or manual registration), and runs readiness/doctor checks. Use when onboarding REA for static assembly analysis, when an agent isn't in REA's supported list, or when verifying REA is operational before starting investigation work.

12 / 15
Bash
npm install --global rea-agents npx rea-agents setup npx rea-agents doctor # or equivalent readiness command — paste full output to user

Do not proceed to any analysis until the doctor/readiness command reports fully green.

Recommendation▾
Add concrete input/output examples (e.g., actual REA command output, actual doctor-check output, actual DLL catalog results) rather than only showing command invocations without results
13 / 15

Progress:

  • Step 1: Confirm Node.js version satisfies REA's requirement (delegate to environment-setup skill if not)
  • Step 2: npm install --global rea-agents
  • Step 3: npx rea-agents setup — attempt automatic agent registration
  • Step 4: If the target agent (e.g. opencode) isn't in REA's supported list, fall back to manual MCP registration
  • Step 5: Run readiness/doctor command, capture and report full output verbatim
  • Step 6: Only proceed to feature work once readiness is green

Manual MCP registration (when agent unsupported)

  1. Read docs/getting-started/installation.md#mcp-registry from the morluto/rea repository for the exact MCP server command/args/env schema.
  2. Locate the target agent's config file inside the project directory (never in a global/home dotfile location unless that's the agent's only supported mechanism).
  3. Add an MCP server entry following the agent's own schema, e.g. for opencode's config:
JSON
{ "mcp": { "rea": { "command": "npx", "args": ["rea-agents", "mcp-server"], "enabled": true } } }

(Verify exact command/args against the installation doc — do not guess the invocation.) 4. Restart/reload the agent session so it picks up the new MCP registration. 5. Confirm the MCP tool surface is visible to the agent (list available tools) before trusting it for analysis.

Recommendation▾
Ensure each skill file has only one frontmatter block and one coherent topic to avoid confusing tooling that parses skill files individually
  • Always paste the full, unedited readiness/doctor output to the user — don't summarize it as "looks fine."
  • Keep REA config scoped to the project directory, consistent with the project's "nothing lives outside the Windows-mounted project folder" rule.
  • Treat REA setup as a one-time phase per project; don't re-run setup speculatively mid-task.
  • Writing MCP config to a global/home location "because it's easier" — violates project isolation rules.
  • Declaring REA ready based on install success alone, without actually running the readiness check.
  • Skipping the manual registration path and declaring the agent "unsupported, can't proceed" without trying the documented fallback.


name: locating-unity-managed-assemblies description: Finds and catalogs Unity's managed DLLs (UnityEngine..dll, UnityEditor..dll) on disk from an existing Unity Hub installation, or requests the needed version/path from the user. Use when preparing targets for REA static analysis of Unity's CIL assemblies, or when a specific Unity module/version can't be found locally.

12 / 15
Bash
find "/mnt/c/Program Files/Unity/Hub/Editor" -maxdepth 1 -mindepth 1 -type d 2>/dev/null # For a given version: VER="2022.3.50f1" ls "/mnt/c/Program Files/Unity/Hub/Editor/$VER/Editor/Data/Managed/"
13 / 15

Progress:

  • Step 1: Search standard Unity Hub install locations under /mnt/c/Program Files/Unity/Hub/Editor/*/Editor/Data/Managed/
  • Step 2: If found, list installed versions and confirm which one matches the target feature's Unity version
  • Step 3: If not found, stop and ask the user: install via Unity Hub (which version?) or supply a path to existing DLLs
  • Step 4: Once located, catalog relevant assemblies (UnityEngine.CoreModule.dll, UnityEngine.PhysicsModule.dll, UnityEditor.*.dll, etc.) relevant to the current feature
  • Step 5: Copy or reference these DLLs from a path under the project's /mnt/c working tree (an ignored, non-committed subfolder) rather than analyzing them in place, to keep REA inputs reproducible

Common managed assembly locations by concern

ConcernTypical assembly
Core (GameObject, Transform, Component, MonoBehaviour)UnityEngine.CoreModule.dll
Physics (Rigidbody, Collider, Raycast)UnityEngine.PhysicsModule.dll
Physics 2DUnityEngine.Physics2DModule.dll
AnimationUnityEngine.AnimationModule.dll
UIUnityEngine.UIModule.dll, UnityEngine.UI.dll
Editor-only APIsUnityEditor.CoreModule.dll and related UnityEditor.*.dll
AudioUnityEngine.AudioModule.dll
Input (new)Unity.InputSystem.dll
  • Always confirm the exact Unity version against the feature being analyzed — API surface and defaults can change across versions, which matters for "exact semantics" claims in the evidence report.
  • Keep a local manifest file (e.g. Docs/Evidence/_assemblies.json or similar within the ignored artifacts area) listing which DLL + version was used as source, so every evidence report can cite it precisely.
  • Never commit Unity DLLs to the repo — they're proprietary binaries.
  • Assuming any installed Unity version is "close enough" without checking — minor version differences can change default values and edge-case behavior.
  • Searching only /mnt/c/Program Files/Unity/Hub/Editor without checking for non-standard custom install paths the user might have.
  • Forgetting to ask before triggering a multi-GB Unity Hub install.


name: reverse-engineering-unity-api-with-rea description: Uses REA to statically analyze Unity's managed CIL assemblies and produce an evidence-based report distinguishing observed facts, inferred behavior, and unknowns. Use when investigating the exact semantics, defaults, edge cases, and execution order of a specific Unity feature before reimplementing it elsewhere.

12 / 15

Given a feature name (e.g. "Rigidbody.AddForce"), investigate in this order:

  1. Locate the declaring type and assembly via REA's inventory/metadata tools.
  2. Pull the full member signature (overloads, default parameter values, access modifiers).
  3. Decompile/inspect IL for the method body to understand actual logic, not just the public contract.
  4. Trace references: what does this method call internally, what calls it, what fields/state does it touch.
  5. Check related types (enums, structs, attributes) that shape behavior (e.g. ForceMode, RigidbodyConstraints).
13 / 15

Progress:

  • Step 1: Identify target assembly and fully-qualified type/member name
  • Step 2: Extract signature(s): parameters, defaults, overloads, return type, visibility, attributes
  • Step 3: Inspect IL body for the member(s) to understand real
0
Grade C+AI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
12/15
Workflow
13/15
Examples
9/20
Completeness
5/20
Format
13/15
Conciseness
12/15